Vai al contenuto

Rilevato Ad-Blocker. Per favore disabilita il tuo adblocker quando navighi su makerando.com - Non c'è nessun annuncio invasivo.

Ally

Utente
  • Numero contenuti

    1074
  • Iscritto

  • Ultima visita

  • Days Won

    17

Tutti i contenuti di Ally

  1. Nome Script: RMX-OS [RPG Maker XP Online System] Versione: v. 1.18 Autore/i: Blizzard Informazioni: Script che permette di creare Giochi multiplayer online tramite rpg maker! Istruzioni: trovate tutto all'interno della demo. Demo: http://downloads.chaos-project.com/scri ... 201.18.zip Incompatibilità: Sconsigliato con l'SDK
  2. Titolo: Mog luck system Versione: N/D Autore/i: Moghunter, Loste Informazioni: Script che associa la 'fortuna' al vostro PG nel: - Recuperare HP a fine battaglia - Causare danni critici - Vincere Oggetti Istruzioni: Inserire lo script sopra Main Script: #_________________________________________________ # MOG_Luck System V1.2 #_________________________________________________ # By Moghunter # http://www.atelier-rgss.com # #Traduzione in italiano by Loste -http://rpgmkr.net #_________________________________________________ #Aggiunge l'attributo "fortuna", che interagisce con la #possibilità di vincere oggetti o causare danni critici. #_________________________________________________ module MOG # Limite massimo di fortuna. # I Valori magiori di 100% saranno limitati a questo valore. # MAX_LUCK = {A=>B} # # A = ID del personaggio # B = valore massimo di fortuna per ogni personaggio. # # Se non definito il valore massimo sarà pari a 100%. MAX_LUCK = { 1=>60, 2=>45, 7=>23 } #_________________________________________________ #Definizione del valore iniziale di fortuna per ogni personaggio. # INILUCK = {A =>B} # # A = ID del personaggio. # B = valore iniziale della fortuna. # #Se non definito il valore sarà pari a 1. INILUCK = { 1 =>5, 2 =>3, 7 =>2 } #_________________________________________________ #Definizione dell'aumento di fortuna per ogni livello. #LKUP = {A =>B} # # A = ID del personaggio # B = Valore dell'incremento. # #Se non definito il valore sarà pari a 1. LKUP = {1 =>2, 2 =>3 } #_________________________________________________ #Calcolo della probabilità di vincere oggetti. # # false = Il calcolo della probabilità si basa sul valore più alto del gruppo. # true = Il calcolo della probabilità si basa sul valore medio del gruppo. LKITEMEDIA = true #_________________________________________________ #Quantittà % di HP recuperati. LKHPRECPER = 10 end #_________________________________________________ $mogscript = {} if $mogscript == nil $xrxs = {} if $xrxs == nil $mogscript["luck_system"] = true ############## # Game Actor # ############## class Game_Actor < Game_Battler alias mog23_setup setup def setup(actor_id) iniluck = MOG::INILUCK[actor_id] maxluck = MOG::MAX_LUCK[actor_id] if maxluck == nil @max_luck = 100 else @max_luck = maxluck end if MOG::INILUCK[actor_id] == nil @luck = 1 else @luck = iniluck end if MOG::LKUP[actor_id] == nil @luckup = 1 else @luckup = MOG::LKUP[actor_id] end mog23_setup(actor_id) end def max_luck return @max_luck end def luck if @max_luck != nil and @luck > @max_luck @luck = @max_luck else if @luck > 100 @luck = 100 end return @luck end end def exp=(exp) @exp = [[exp, 9999999].min, 0].max while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0 @level += 1 @luck += @luckup for j in $data_classes[@class_id].learnings if j.level == @level learn_skill(j.skill_id) end end end while @exp < @exp_list[@level] @level -= 1 @luck -= @luckup end @hp = [@hp, self.maxhp].min @sp = [@sp, self.maxsp].min end end ############### # Game_Enemy # ############### class Game_Enemy < Game_Battler def treasure_prob for i in 0...$game_party.actors.size actor = $game_party.actors[i] if MOG::LKITEMEDIA == true return actor.luck / $game_party.actors.size else return actor.luck end end end end ################ # Game_Battler # ################ class Game_Battler def attack_effect(attacker) self.critical = false hit_result = (rand(100) < attacker.hit) if hit_result == true atk = [attacker.atk - self.pdef / 2, 0].max self.damage = atk * (20 + attacker.str) / 20 self.damage *= elements_correct(attacker.element_set) self.damage /= 100 if self.damage > 0 if attacker.is_a?(Game_Actor) if rand(100) < attacker.luck self.damage *= 2 self.critical = true end else if rand(100) < 4 * attacker.dex / self.agi self.damage *= 2 self.critical = true end end if self.guarding? self.damage /= 2 end end if self.damage.abs > 0 amp = [self.damage.abs * 15 / 100, 1].max self.damage += rand(amp+1) + rand(amp+1) - amp end eva = 8 * self.agi / attacker.dex + self.eva hit = self.damage < 0 ? 100 : 100 - eva hit = self.cant_evade? ? 100 : hit hit_result = (rand(100) < hit) end if hit_result == true remove_states_shock self.hp -= self.damage @state_changed = false states_plus(attacker.plus_state_set) states_minus(attacker.minus_state_set) else self.damage = "Miss" self.critical = false end return true end end ############### # Window Base # ############### class Window_Base < Window def draw_actor_luck(actor, x, y) self.contents.font.color = normal_color self.contents.draw_text(x, y, 120, 32, "Luck " + actor.luck.to_s + "%") if $mogscript["menu_eva"] == true back = RPG::Cache.picture("STBAR_Back") cw = back.width ch = back.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x , y - ch + 40, back, src_rect) meter = RPG::Cache.picture("STBAR.png") cw2 = meter.width * actor.luck / actor.max_luck ch2 = meter.height src_rect2 = Rect.new(0, 0, cw2, ch2) self.contents.blt(x , y - ch + 40, meter, src_rect2) end end end ################# # Window Status # ################# class Window_Status < Window_Base alias mog23_refresh refresh def refresh mog23_refresh if $mogscript["menu_eva"] == true draw_actor_luck(@actor, 520,210) else draw_actor_luck(@actor, 325,120) end end end ################ # Scene Battle # ################ class Scene_Battle alias mog23_start_phase5 start_phase5 def start_phase5 mog23_start_phase5 for actor in $game_party.actors if rand(100) < actor.luck lkhprec = actor.maxhp * MOG::LKHPRECPER / 100 actor.hp += lkhprec actor.damage_pop = true actor.damage = -lkhprec end end @status_window.refresh end end
  3. Nome Script: GTBS - GubiD's Tactical Battle System Versione: 1.5.1.4 Autore/i: GubiD Informazioni: Uno dei più noti sistemi di battaglia che riprendono lo stile di Final Fantasy Tactics. Features: Muoversi/Attaccare in qualsiasi ordine Contatore Attacchi Possibilità di utilizzare un'altro BS Status Fantasy Sistema Summon Sistema AI (il migliore in circolazione fino adesso) Effetti luce Multislot e supporto Arma avanzata Supporto isometrico Battler animati o non (con possibilità di inserire le relative pose) Compatibilità con l'SDK Istruzioni: Ci sarebbero troppi script da postare, quindi trovate tutto all'interno della demo con le relative immagini ^^ Demo: http://www.mediafire.com/?jhmayjthmad] Incompatibilità: N/D Note dell'Autore: Il sistema di battaglia non può essere utilizzato su progetti a fini commerciali senza il permesso dell'autore.
  4. Nome Script: Credits nel menu Versione: 1.0 Autore/i: Ultima. Informazioni: Questo script o meglio dire, gruppo di script ( sono 2 più una modifica alla Scene_Title ) servono per mettere i Credits a mò di titoli di coda.. Screenshots: Istruzioni: vedete le script le separerò da 5 o più spazi vuoti nella parte del codice... dovete creare con il paint ( o altro ) un immagine tutta nera che metterete nella cartella delle windowskin che chiamerete CREDITS ... vedete le altre istruzioni nelle script.. i commenti sono messi in modo che anche chi non sapesse nulla di RGSS o ruby potesse usarla perfettamente Script: # Crediti con titoli di coda #Autore = Ultima. #Versione 1.0 #Si capisce dal nome dello script a che serve... dovrete personalizzare voi #molte cose... se non siete bravi, non preoccupatevi, leggete i commenti # ( queste cose verdi ) e seguite le istruzioni class Window_Credits < Window_Base def initialize super (0,0,1024,6768) self.windowskin = RPG::Cache.windowskin("CREDITS") self.contents = Bitmap.new (width - 32, height - 32 ) refresh end def refresh self.contents.clear # Al posto di Arial potete mettere la scrittura che più vi piace # ricordando di metterla tra le virgolette "" self.contents.font.name= "Arial" # impostate il colore che più piace ricordando ciò : ( rosso,blu,verde ) self.contents.font.color = Color.new (130,95,130) #usate questa riga prima di scrivere ogni branca principale es : PRODUTTORI self.contents.font.size= 40 #usate la parte di riga non tra parentesi quando dovete scrivere qualcosa # sia che sia una branca o un nome o un sito ecc... # la parte tra parentesi sta a indicare la posizione delle parole # il primo valore sarà la x ( per metterla al centro usate valori come # 200-250 e in base a come vi viene li cambiate, invece per metterli # a inizio rigo, usate 0 ) #il secondo valore sarà la y . la prima cosa che scrivete impostatela #con la y a 770. la distanza tra la branca ( es : PRODUTTORI ) e # chi sono effettivamente le persone che ne fanno parte deve essere #di 60. quella tra le persone della stessa branca deve essere di 40 #e quella tra l'ultima persona di una branca e una nuova branca # deve essere di 150 o 100, in base a come vi piace di più # il terzo valore è la larghezza... mettetelo sempre intorno ai 200. #il quarto cambia in base a cosa scrivete. Se scrivete una branca come #ora, scrivete 45, se scrivete una persona della branca, usate 30 #alla fine scrivete tra virgolette ciò che volete che appaia scritto self.contents.draw_text (200,770,200,45, "PRODUTTORI") #usate questa riga prima di scrivere le persone appartententi a una # branca self.contents.font.size = 25 self.contents.draw_text (250,830,200,30,"Ultima.") #questo è solo un esempio ma potrete fare cose molto più grandi e complesse # se avete dubbi contattatemi al sito Rpgmkr.net ^^ end end # aggiungere questa scena sotto la window dei crediti class Scene_Credits def main @window = Window_Credits.new Graphics.transition loop do Graphics.update Input.update update if Input.press? (Input:: $scene = Scene_Title.new end if $scene != self break end end Graphics.freeze @window.dispose end def update @window.oy += 5 @window.update end end #-------------------------------------------------------------------------- # Inserite questa parte di script nella scene title al posto di tutta la parte # dalla riga 167 fino a end prima di Battle test. Cambiare nella riga 44 #il comando "shutdown" con "Crediti" e cambiare la riga 108 in : command_credits #-------------------------------------------------------------------------- def command_credits $game_system.se_play($data_system.decision_se) #Scegliere a piacere l'audio che si sentirà duarante la visione dei crediti Audio.bgm_play("Audio/BGM/044-Positive02") $scene= Scene_Credits.new end #-------------------------- Incompatibilità:Nessuna
  5. Nome Script: Finestra Salva - Carica Versione: 1.0 Autore/i: Melosx Informazioni: Aggiunge la possibilità di scegliere se Salvare o caricare la partita sostituendo il comando salva del menu. Istruzioni: Mettetelo sopra main. Script: #============================================================================== # ** Salva/Carica - Versione XP #============================================================================= # Autore: Melosx # Versione: 1.0 # Data di creazione: 4-6-2011 => v1.0 # # # Quando si va sul comando Salva/Carica del menù questo script fa apparire una # finestra di selezione dove si sceglie se salvare o caricare una partita. # E' possibile cambiare il nome al comando modificando il valore a NOMECOMANDO. # Se l'opzione di salvataggio viene disabilitata sarà possibile solo caricare. # #============================================================================= module SC NOMECOMANDO = "Salva/Carica" end class Scene_Salva_Carica def main s1 = "Salva" s2 = "Carica" @command_window = Window_Command.new(192, [s1, s2]) @command_window.x = 320 - @command_window.width / 2 @command_window.y = 240 - @command_window.height / 2 Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @command_window.dispose end def update @command_window.update if Input.trigger?(Input:: $game_system.se_play($data_system.cancel_se) $scene = Scene_Menu.new(5) return end if $game_system.save_disabled @command_window.disable_item(0) end if Input.trigger?(Input::C) case @command_window.index when 0 if $game_system.save_disabled $game_system.se_play($data_system.buzzer_se) else comando_salva end when 1 comando_carica end return end end def comando_salva $game_system.se_play($data_system.decision_se) $scene = Scene_Save.new end def comando_carica $game_system.se_play($data_system.decision_se) $scene = Scene_Carica.new end end #============================================================================== # ** Scene_Menu #------------------------------------------------------------------------------ # * alias #============================================================================== class Scene_Menu include SC alias melosx_main main alias melosx_update_command update_command #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main s1 = $data_system.words.item s2 = $data_system.words.skill s3 = $data_system.words.equip s4 = "Status" s5 = SC::NOMECOMANDO s6 = "End Game" @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6]) @command_window.index = @menu_index if $game_party.actors.size == 0 @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end @playtime_window = Window_PlayTime.new @playtime_window.x = 0 @playtime_window.y = 224 @steps_window = Window_Steps.new @steps_window.x = 0 @steps_window.y = 320 @gold_window = Window_Gold.new @gold_window.x = 0 @gold_window.y = 416 @status_window = Window_MenuStatus.new @status_window.x = 160 @status_window.y = 0 Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @command_window.dispose @playtime_window.dispose @steps_window.dispose @gold_window.dispose @status_window.dispose end def update_command if Input.trigger?(Input:: $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new return end if Input.trigger?(Input::C) if $game_party.actors.size == 0 and @command_window.index < 4 $game_system.se_play($data_system.buzzer_se) return end case @command_window.index when 0 $game_system.se_play($data_system.decision_se) $scene = Scene_Item.new when 1 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 2 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 3 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 4 $game_system.se_play($data_system.decision_se) $scene = Scene_Salva_Carica.new when 5 $game_system.se_play($data_system.decision_se) $scene = Scene_End.new end return end end end class Scene_Carica < Scene_Load def on_cancel # Play cancel SE $game_system.se_play($data_system.cancel_se) # If called from event if $game_temp.save_calling # Clear save call flag $game_temp.save_calling = false # Switch to map screen $scene = Scene_Map.new return end # Switch to menu screen $scene = Scene_Menu.new(4) end end
  6. Ally

    Schermate High Title

    Titolo: High Title Versione: 1.0 Autore/i: Highlander Informazioni: Questo script visualizza una schermata del titolo che può essere personalizzato a proprio piacimento. In aggiunta,viene mostrato anche un logo prima del titolo. Istruzioni: All'interno della demo copiate lo script ^^ Demo: High Title
  7. Nome Script: Average Actor Level Versione: 1.0 Autore/i: game_guy Informazioni: Come sempre ci tengo a precisare che lo script non è stato scritto da me. Io l'ho semplicemente tradotto per renderlo più accessibile! Istruzioni: Le istruzioni sono tradotte all'interno dello script. Fidatevi...è di una banalità quasi offensiva! Script: #=============================================================================== # Average Actor Level # Author game_guy traduzione di Lifaen # Version 1.0 #------------------------------------------------------------------------------- # Intro: # Questo script permette, qualora durante il corso dell'avventura si aggiunga un # nuovo eroe al party, di fare in modo che questo non sia di un livello definito # nel database ma che il suo livello sia equivalente al livello medio del party! # # Features: # Permette al nuovo membro del party di essere di livello uguale alla media dei # livelli degli altri componenti. # Facile da usare. # Permette di bypassare questa funzionalità e non calcolare il livello in base # alla media dei livelli del party. # # Istruzioni: # In un call script inserite questo comando: # a_add_actor(actor_id) # actor_id = id dell'eroe nel database # di cui calcolare il livello in base alla media. # # Note: # Tutto ciò può anche essere fatto comodamente ad eventi ma chissenefrega. Mi # piace rendere le cose più semplici! # # Crediti: # game_guy ~ per aver fatto lo script #=============================================================================== class Game_Party alias gg_average_levels add_actor def add_actor(actor_id, average=false) if average actor = $game_actors[actor_id] level = 0 for i in 0...$game_party.actors.size level += $game_actors[$game_party.actors[i].id].level end level = level / $game_party.actors.size actor.level = level end gg_average_levels(actor_id) end end class Game_Actor attr_accessor :level end class Interpreter def a_add_actor(id) $game_party.add_actor(id, true) end end Demo:Non necessaria Note dell'Autore: Come lo stesso autore scrive nello script tutto ciò si può comodamente fare tramite eventi! Ma a lui piace rendere le cose più facili! XD
  8. Nome Script: Monster Areas Script Versione: 1.0 Autore/i: game_guy Informazioni: Lo scrip non è assolutamente realizzato da me! L'autore è game_guy. All'interno dello script ci sono poi ringraziamenti speciali a: Blizzard, Winkio, Fantasist, Zeriab (scusate ma è il primo script che posto! ;P). Io ho semplicemnte tradotto le parti di settaggio...così da renderlo più facile ed accessibile anch a chi non conosca la lingua o semplicemente non abbia volgia di mettersi a tradurre! XD Istruzioni: Creare una nuova classe sopra il 'Main' e chiamarla 'Monster Areas'. Incollarci dentro lo script ed il gioco è fatto. Le istruzioni sono all'interno! Script: #================================ # Map Areas # Author game_guy (Ronnie Mooney) traduzione di Lifaen # Version 1.0 #------------------------------------------------------------------------------- # Descrizione: # Facile da configurare (Lengthy though) # Suddivisione in aree illimitata per ogni mappa # Permette di configurare solo le mappe di cui abbiamo bisogno # # Istruzioni # Le istruzioni seguono all'interno dello script. # # Crediti # game_guy ~ for making it # Enterbrain ~ adding this feature in the old makers # # People who are being uncredited because of reason explained # Enterbrain ~ for removing this feature in the new makers # # Ringraziamenti speciali: # Blizzard # Winkio # Fantasist # Zeriab # These guys had the most impact on me and helped me the most when it came to # scripting. Without them and their knowledge I would have made this script # alot more complicated. Hell I'd probably still be an eventer if it wasn't for # them inspiring me to try and be a scripter. I learned most of the tricks I # know from them. Thanks guys =D # #=============================================================================== module GG_Areas Maps = [] #================================ # Mappe # Prima di tutto è necessario aggiungere una nuova linea sotto # 'aggiungi una nuova linea qui sotto' e scrivere # Map[map_id] = [] # map_id è l'id della mappa a cui vuoi assegnare determinate aree # (leggi sotto per l'area setup) #================================ Maps[1] = [] #================================ # Sotto la nuova linea e mappa assegnata devi aggiungere altre scritte. # Quindi vai avanti e scrivi: # Maps[map_id][area_id] = [x_start, y_start, widh, height, [troops]] # -map_id = id della mappa nell'editor # -area_id = numero dell'area (dev'essere differente per ogni area della mappa) # -x_start = la cordinata x dove l'area inizia sulla mappa # -y_start = la cordinata y dove l'area inizia sulla mappa # -width = larghezza dell'area (in tiles) # -height = altezza dell'area (in tiles) # (Guarda l'esempio sotto) #================================ # Mappa numero 1, area number 1 inizia dalle coordinate # di (x 0, y 0). La larghezza è 7 tiles, l'altezza è # 7 tiles. I numeri delle troops sono 1 2 and 3: ovvero, qui incontrerete # gruppi di nemici corrispondenti ai numeri 1, 2 e 3 nel database (sezione troops). # Steso discorso per le aree seguenti della stessa mappa ;P #================================ Maps[1][1] = [0, 0, 7, 7, [1, 2, 3]] Maps[1][2] = [7, 0, 7, 7, [4, 5, 6]] Maps[1][3] = [14, 0, 6, 7, [7, 8, 9]] Maps[1][4] = [0, 8, 7, 7, [10, 11, 12]] Maps[1][5] = [7, 8, 7, 7, [13, 14, 15]] Maps[1][6] = [14, 8, 6, 7, [16, 17, 18]] # 'Aggiungi una nuova linea qui sotto' end class Game_Player < Game_Character alias gg_upd_areas_player_lat update def update gg_upd_areas_player_lat areas = GG_Areas::Maps[$game_map.map_id] return if areas == nil areas.each{|a| if a != nil && @x >= a[0] && @x <= a[0] + a[2] - 1 if @y >= a[1] && @y <= a[3] + a[1] - 1 $game_map.map.encounter_list = a[4] end end} end end class Game_Map attr_accessor :map end Demo: N/D Incompatibilita': N/D
  9. Titolo: CTB di Charlie Fleed Versione: 3.1 (4-7-2010) Autore: Charlie Fleed Informazioni: Questo sistema di battaglia è ispirato al gioco FFX. Esso include invocazioni, comandi di battaglia individuali, e molte altre funzioni. Mi auguro che lo troviate di vostro gradimento, e vi invito a segnalare eventuali bug, postare i vostri commenti e suggerimenti. Screenshots: Istruzioni: Si prega di fare riferimento al documento pdf presente all'interno della demo. Demo: CTB by Charlie Fleed v3.1 with Kartika font (mediafire) CTB by Charlie Fleed v3.1 with Kartika font (google) Note dell'autore: Questo sistema non usa l'SDK. Si prega di non richiedere una versione compatibile con l'SDK, non ne verranno rilasciate. La pubblicazione di questo sistema su altri siti è consentita a condizione che: 1) venga inserito un link a questa pagina; 2) venga riportato l'indirizzo della demo presente in questa pagina (non è consentito fare upload del file su servizi di sharing, non è consentito che venga postato lo script in formato testuale); 3) vangano riportate le condizioni di utilizzo specificate di seguito. Condizioni di utilizzo: L'utilizzo del sistema di battaglia è consentito e gratuito per giochi di carattere NON commerciale, a condizione che sia dato credito al sottoscritto in quanto autore del sistema o autore del sistema originale se viene usata una versione modificata dello stesso. Per l'utilizzo in giochi di carattere commerciale si prega di contattarmi. Questi termini si applicano anche a tutte le precedenti versioni del sistema, incluse quelle sotto il nome "CTB by Charlie Lee". Il sistema di battaglia utilizza lo script "Minkoff's Animated Battlers - Enhanced" creato da DerVVulfman. Per le condizioni di utilizzo relative a tale script si prega di fare riferimento alla pagina http://rmvxp.com/thread-510.html
  10. Titolo: Sistema Platform Versione: N/D Autore/i: Floa Informazioni: Se volete fare un platform,questo è lo script giusto Screenshots: Istruzioni: All'interno della Demo Demo: http://www.4shared.com/file/28964960/5e ... d=301d7a6c
  11. Titolo: Vx To Xp Char Converter Versione: 1.0 Autore/i: game_guy Informazioni: Converte Chara VX in Chara XP Screenshots: Istruzioni: Mettete il file nella cartella giusta e avviate il gioco e convertirà automaticamente... Ah se all'avvio vi da errore è perchè dovete creare la cartella 3x4 che serve per mettere i file a un chara.. le conversioni le trovate nella cartella Converted... Script: #=============================================================================== #=============================================================================== # Vx To Xp Char Converter # Version 1.0 # Author game_guy #------------------------------------------------------------------------------- # Intro # Converts the little vx guys to xp format. # # Features # Converts the 12x8 frame chars (ones with 8 people) # Converts the 3x4 frame chars (the single person) # # Instructions # Just place character files in the Chars/12x8 folder for 12x8 chars. # Place files in Chars/3x4 folder for 3x4 chars. # Then run the game, it'll convert it for you. # # Credits # game_guy ~ for making it # Fantasist ~ teaching me how to get files from folder, and how to use bitmap to # png code # 66rpg ~ for their bitmap to png code # #=============================================================================== =begin ============================================================================== Bitmap to PNG By 轮回者 ============================================================================== 对Bitmap对象直接使用 bitmap_obj.make_png(name[, path]) name:保存文件名 path:保存路径 感谢66、夏娜、金圭子的提醒和帮助! ============================================================================== =end module Zlib class Png_File < GzipWriter #-------------------------------------------------------------------------- # ● 主处理 #-------------------------------------------------------------------------- def make_png(bitmap_Fx,mode) @mode = mode @bitmap_Fx = bitmap_Fx self.write(make_header) self.write(make_ihdr) self.write(make_idat) self.write(make_iend) end #-------------------------------------------------------------------------- # ● PNG文件头数据块 #-------------------------------------------------------------------------- def make_header return [0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a].pack("C*") end #-------------------------------------------------------------------------- # ● PNG文件情报头数据块(IHDR) #-------------------------------------------------------------------------- def make_ihdr ih_size = [13].pack("N") ih_sign = "IHDR" ih_width = [@bitmap_Fx.width].pack("N") ih_height = [@bitmap_Fx.height].pack("N") ih_bit_depth = [8].pack("C") ih_color_type = [6].pack("C") ih_compression_method = [0].pack("C") ih_filter_method = [0].pack("C") ih_interlace_method = [0].pack("C") string = ih_sign + ih_width + ih_height + ih_bit_depth + ih_color_type + ih_compression_method + ih_filter_method + ih_interlace_method ih_crc = [Zlib.crc32(string)].pack("N") return ih_size + string + ih_crc end #-------------------------------------------------------------------------- # ● 生成图像数据(IDAT) #-------------------------------------------------------------------------- def make_idat header = "\x49\x44\x41\x54" case @mode # 请54~ when 1 data = make_bitmap_data#1 else data = make_bitmap_data end data = Zlib::Deflate.deflate(data, 8) crc = [Zlib.crc32(header + data)].pack("N") size = [data.length].pack("N") return size + header + data + crc end #-------------------------------------------------------------------------- # ● 从Bitmap对象中生成图像数据 mode 1(请54~) #-------------------------------------------------------------------------- def make_bitmap_data1 w = @bitmap_Fx.width h = @bitmap_Fx.height data = [] for y in 0...h data.push(0) for x in 0...w color = @bitmap_Fx.get_pixel(x, y) red = color.red green = color.green blue = color.blue alpha = color.alpha data.push(red) data.push(green) data.push(blue) data.push(alpha) end end return data.pack("C*") end #-------------------------------------------------------------------------- # ● 从Bitmap对象中生成图像数据 mode 0 #-------------------------------------------------------------------------- def make_bitmap_data gz = Zlib::GzipWriter.open('hoge.gz') t_Fx = 0 w = @bitmap_Fx.width h = @bitmap_Fx.height data = [] for y in 0...h data.push(0) for x in 0...w t_Fx += 1 if t_Fx % 10000 == 0 Graphics.update end if t_Fx % 100000 == 0 s = data.pack("C*") gz.write(s) data.clear #GC.start end color = @bitmap_Fx.get_pixel(x, y) red = color.red green = color.green blue = color.blue alpha = color.alpha data.push(red) data.push(green) data.push(blue) data.push(alpha) end end s = data.pack("C*") gz.write(s) gz.close data.clear gz = Zlib::GzipReader.open('hoge.gz') data = gz.read gz.close File.delete('hoge.gz') return data end #-------------------------------------------------------------------------- # ● PNG文件尾数据块(IEND) #-------------------------------------------------------------------------- def make_iend ie_size = [0].pack("N") ie_sign = "IEND" ie_crc = [Zlib.crc32(ie_sign)].pack("N") return ie_size + ie_sign + ie_crc end end end #============================================================================== # ■ Bitmap #------------------------------------------------------------------------------ #  关联到Bitmap。 #============================================================================== class Bitmap #-------------------------------------------------------------------------- # ● 关联 #-------------------------------------------------------------------------- def make_png(name="like", path="",mode=0) make_dir(path) if path != "" Zlib::Png_File.open("temp.gz") {|gz| gz.make_png(self,mode) } Zlib::GzipReader.open("temp.gz") {|gz| $read = gz.read } f = File.open(path + name + ".png","wb") f.write($read) f.close File.delete('temp.gz') end #-------------------------------------------------------------------------- # ● 生成保存路径 #-------------------------------------------------------------------------- def make_dir(path) dir = path.split("/") for i in 0...dir.size unless dir == "." add_dir = dir[0..i].join("/") begin Dir.mkdir(add_dir) rescue end end end end end module GameGuy def self.vxconvert(file) begin char = GameGuy.character(file, 0) rescue $skipped += 1 return end width = char.width / 4 height = char.height / 2 vxwidth = width / 3 index = 0 xx = 0 yy = 0 unless FileTest.directory?("Converted/#{file}/") Dir.mkdir("Converted/#{file}/") end loop do bitmap = Bitmap.new(width + vxwidth, height) rect1 = Rect.new(xx+vxwidth, yy, vxwidth, height) bitmap.blt(0, 0, char, rect1) rect2 = Rect.new(xx, yy, width, height) bitmap.blt(vxwidth, 0, char, rect2) bitmap.make_png("#{file} #{index}", "Converted/#{file}/") bitmap.dispose bitmap = nil if index == 7 $converted += 1 break end index += 1 case index when 0,4 xx = width*0 when 1,5 xx = width*1 when 2,6 xx = width*2 when 3,7 xx = width*3 end if index == 4 yy = height end end end def self.svxconvert(file) begin char = GameGuy.scharacter(file, 0) rescue $skipped += 1 return end width = char.width / 3 height = char.height bitmap = Bitmap.new(width * 4, height) rect1 = Rect.new(width, 0, width, height) bitmap.blt(0, 0, char, rect1) rect2 = Rect.new(0, 0, width * 3, height) bitmap.blt(width, 0, char, rect2) unless FileTest.directory?("Converted/#{file}/") Dir.mkdir("Converted/#{file}/") end bitmap.make_png("#{file}", "Converted/#{file}/") $converted += 1 end end module GameGuy @cache = {} def self.load_bitmap(folder_name, filename, hue = 0) path = folder_name + filename if not @cache.include?(path) or @cache[path].disposed? if filename != "" @cache[path] = Bitmap.new(path) else @cache[path] = Bitmap.new(32, 32) end end if hue == 0 @cache[path] else key = [path, hue] if not @cache.include?(key) or @cache[key].disposed? @cache[key] = @cache[path].clone @cache[key].hue_change(hue) end @cache[key] end end def self.character(filename, hue) self.load_bitmap("Chars/12x8/", filename, hue) end def self.scharacter(filename, hue) self.load_bitmap("Chars/3x4/", filename, hue) end end begin unless FileTest.directory?("Converted") Dir.mkdir("Converted") end $time = Time.now $converted = 0 $skipped = 0 @names = [] dir = Dir.new('Chars/12x8/') dir.entries.each {|file| next unless file.include?('.png') @names.push(file); GameGuy.character(file, 0)} for i in [email protected] GameGuy.vxconvert(@names[i]) end @names = [] dir = Dir.new('Chars/3x4/') dir.entries.each {|file| next unless file.include?('.png') @names.push(file); GameGuy.scharacter(file, 0)} for i in [email protected] GameGuy.svxconvert(@names[i]) end print "Converted #{$converted} files in #{Time.now - $time} seconds" + "\n" + "Total Skipped Files: #{$skipped}" exit end Demo:Download Incompatibilita: Nessuna incompatibilità riscontrata.
  12. Titolo: Zelda Engine Final Beta 3 Versione: 3 Autore/i: All'interno dell Demo Informazioni: Questo SDK,simula in tutto e per tutto il vecchio gioco per snes di Zelda O_O Screenshots: Istruzioni: All'interno della Demo. Demo: http://www.4shared.com/file/92136723/de ... doop_.html
  13. Titolo: Musica Personalizzata nel Menù Versione: N/D Autore/i: Raziel Informazioni: Permette di far eseguire il BGM che preferite quando si entra nel Menù Istruzioni: Come al solito create una niova classe sopra Main e incollateci lo script. Poi nello script dove vi è scritto BGM = "001-Battle01", sostituite "001-Battle01" con il nome del vostro file musicale preferito. Script: class Scene_Menu BGM = "001-Battle01" alias raz_music_menu_main main alias raz_music_menu_uc update_command def main $game_temp.map_bgm = $game_system.playing_bgm Audio.bgm_play("Audio/BGM/" + BGM, 100, 100) raz_music_menu_main end def update_command if Input.trigger?(Input:: $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new Audio.bgm_stop $game_system.bgm_play($game_temp.map_bgm) return end raz_music_menu_uc end end Demo:Nessuna Demo Incompatibilita: N/D
  14. Titolo: Sk's PicTitle Versione: 1.0 Autore/i: Shocks Informazioni: Una modifica al titolo standard con immagini ^^ Screenshots: Istruzioni: Tutto il necessario all'interno della Demo. Vi lascio anche lo script Script: #============================================================================== # Sk's PicTitle # Feito por: Shocks # ReinoRPG - www.reinorpg.com #------------------------------------------------------------------------------ # DESCRIÇÃO #------------------------------------------------------------------------------ # Esse script torna a tela de título customizada por imagens. #------------------------------------------------------------------------------ # INSTRUÇÕES #------------------------------------------------------------------------------ # Adicionar abaixo da Scene_Title original, a configuração deve # ser feita no módulo abaixo. #============================================================================== module Config_Title #------------------------------------------------------------------------------ # Configuração #------------------------------------------------------------------------------ # *Title representa "\Graphics\Titles". # Title que representa o comando "Novo Jogo". NEW_GAME = "PicTitle_NovoJogo" # Title que representa o comando "Continuar". CONTINUE = "PicTitle_Continuar" # Title que representa o comando "Continuar" desabilitado. CONTINUR = "PicTitle_DContinuar" # Title que representa o comando "Sair". EXITGAME = "PicTitle_Sair" # Som do cursor. "Data" para o configurado no Database. CURSOR = "105-Heal01" # Som da escolha. "Data" para o configurado no Database. OK = "Data" #------------------------------------------------------------------------------ # Fim da Configuração #------------------------------------------------------------------------------ end class Scene_Title #-------------------------------------------------------------------------- # Processamento Principal #-------------------------------------------------------------------------- def main # Se estiver em Teste de Batalha if $BTEST battle_test return end # Carregar o Banco de Dados $data_actors = load_data("Data/Actors.rxdata") $data_classes = load_data("Data/Classes.rxdata") $data_skills = load_data("Data/Skills.rxdata") $data_items = load_data("Data/Items.rxdata") $data_weapons = load_data("Data/Weapons.rxdata") $data_armors = load_data("Data/Armors.rxdata") $data_enemies = load_data("Data/Enemies.rxdata") $data_troops = load_data("Data/Troops.rxdata") $data_states = load_data("Data/States.rxdata") $data_animations = load_data("Data/Animations.rxdata") $data_tilesets = load_data("Data/Tilesets.rxdata") $data_common_events = load_data("Data/CommonEvents.rxdata") $data_system = load_data("Data/System.rxdata") # Criar um Sistema $game_system = Game_System.new # Criar um gráfico de título @sprite = Sprite.new @sprite.bitmap = RPG::Cache.title(Config_Title::NEW_GAME) @index_comando = 1 # O comando Continuar (s2) tem uma determinante # Aqui é checado se existe algum arquivo de save # Se estiver habilitado, tornar @continue_enabled verdadeiro; se estiver # desabilitado, tornar falso @continue_enabled = false for i in 0..3 if FileTest.exist?("Save#{i+1}.rxdata") @continue_enabled = true end end # Reproduzir BGM de Título $game_system.bgm_play($data_system.title_bgm) # Parar de reproduzir BGS e ME Audio.me_stop Audio.bgs_stop # Executar transição Graphics.transition # Loop principal loop do # Atualizar a tela de jogo Graphics.update # Atualizar a entrada de informações Input.update # Atualizar o frame update # Abortar o loop caso a tela tenha sido alterada if $scene != self break end end # Preparar para transição Graphics.freeze # Exibir o gráfico de Título @sprite.bitmap.dispose @sprite.dispose end #-------------------------------------------------------------------------- # Atualização do Frame #-------------------------------------------------------------------------- def update if Input.trigger?(Input::UP) if @index_comando == 1 @index_comando = 3 else @index_comando -= 1 end atualizar_comando = true end if Input.trigger?(Input::DOWN) if @index_comando == 3 @index_comando = 1 else @index_comando += 1 end atualizar_comando = true end if atualizar_comando == true if Config_Title::CURSOR == "Data" $game_system.se_play($data_system.cursor_se) else Audio.se_play("Audio/SE/" + Config_Title::CURSOR, 90, 100) end @sprite.bitmap = RPG::Cache.title(Config_Title::NEW_GAME) if @index_comando == 1 @sprite.bitmap = RPG::Cache.title(Config_Title::CONTINUE) if @index_comando == 2 @sprite.bitmap = RPG::Cache.title(Config_Title::CONTINUR) if @index_comando == 2 and @continue_enabled == false @sprite.bitmap = RPG::Cache.title(Config_Title::EXITGAME) if @index_comando == 3 atualizar_comando = false end # Se o botão C for pressionado if Input.trigger?(Input::C) command_new_game if @index_comando == 1 command_continue if @index_comando == 2 command_shutdown if @index_comando == 3 end end #-------------------------------------------------------------------------- # Comando: Novo Jogo #-------------------------------------------------------------------------- def command_new_game # Reproduzir SE de OK if Config_Title::OK == "Data" $game_system.se_play($data_system.decision_se) else Audio.se_play("Audio/SE/" + Config_Title::OK, 90, 100) end # Parar BGM Audio.bgm_stop # Aqui o contador de frames é resetado para que se conte o Tempo de Jogo Graphics.frame_count = 0 # Criar cada tipo de objetos do jogo $game_temp = Game_Temp.new $game_system = Game_System.new $game_switches = Game_Switches.new $game_variables = Game_Variables.new $game_self_switches = Game_SelfSwitches.new $game_screen = Game_Screen.new $game_actors = Game_Actors.new $game_party = Game_Party.new $game_troop = Game_Troop.new $game_map = Game_Map.new $game_player = Game_Player.new # Configurar Grupo Inicial $game_party.setup_starting_members # Configurar posição inicial no mapa $game_map.setup($data_system.start_map_id) # Aqui o Jogador é movido até a posição inical configurada $game_player.moveto($data_system.start_x, $data_system.start_y) # Atualizar Jogador $game_player.refresh # Rodar, de acordo com o mapa, a BGM e a BGS $game_map.autoplay # Atualizar mapa (executar processos paralelos) $game_map.update # Mudar para a tela do mapa $scene = Scene_Map.new end #-------------------------------------------------------------------------- # Comando: Continuar #-------------------------------------------------------------------------- def command_continue # Se Continuar estiver desabilitado unless @continue_enabled # Reproduzir SE de erro $game_system.se_play($data_system.buzzer_se) return end # Reproduzir SE de OK if Config_Title::OK == "Data" $game_system.se_play($data_system.decision_se) else Audio.se_play("Audio/SE/" + Config_Title::OK, 90, 100) end # Mudar para a tela de Carregar arquivos $scene = Scene_Load.new end #-------------------------------------------------------------------------- # Comando: Sair #-------------------------------------------------------------------------- def command_shutdown # Reproduzir SE de OK if Config_Title::OK == "Data" $game_system.se_play($data_system.decision_se) else Audio.se_play("Audio/SE/" + Config_Title::OK, 90, 100) end # Diminuir o volume de BGM, BGS e ME Audio.bgm_fade(800) Audio.bgs_fade(800) Audio.me_fade(800) # Sair $scene = nil end #-------------------------------------------------------------------------- # Teste de Batalha #-------------------------------------------------------------------------- def battle_test # Carregar Banco de Dados para o Teste de Batalha $data_actors = load_data("Data/BT_Actors.rxdata") $data_classes = load_data("Data/BT_Classes.rxdata") $data_skills = load_data("Data/BT_Skills.rxdata") $data_items = load_data("Data/BT_Items.rxdata") $data_weapons = load_data("Data/BT_Weapons.rxdata") $data_armors = load_data("Data/BT_Armors.rxdata") $data_enemies = load_data("Data/BT_Enemies.rxdata") $data_troops = load_data("Data/BT_Troops.rxdata") $data_states = load_data("Data/BT_States.rxdata") $data_animations = load_data("Data/BT_Animations.rxdata") $data_tilesets = load_data("Data/BT_Tilesets.rxdata") $data_common_events = load_data("Data/BT_CommonEvents.rxdata") $data_system = load_data("Data/BT_System.rxdata") # Aqui o contador de frames é resetado para que se conte o Tempo de Jogo Graphics.frame_count = 0 # Criar cada tipo de objetos do jogo $game_temp = Game_Temp.new $game_system = Game_System.new $game_switches = Game_Switches.new $game_variables = Game_Variables.new $game_self_switches = Game_SelfSwitches.new $game_screen = Game_Screen.new $game_actors = Game_Actors.new $game_party = Game_Party.new $game_troop = Game_Troop.new $game_map = Game_Map.new $game_player = Game_Player.new # Configurar Grupo para o Teste de Batalha $game_party.setup_battle_test_members # Definir o ID do Grupo de Inimigos, a possibilidade de fuga e o Fundo de # Batalha $game_temp.battle_troop_id = $data_system.test_troop_id $game_temp.battle_can_escape = true $game_map.battleback_name = $data_system.battleback_name # Reproduzri SE de início de batalha $game_system.se_play($data_system.battle_start_se) # Reproduzir BGM de batalha $game_system.bgm_play($game_system.battle_bgm) # Mudar para a tela de batalha $scene = Scene_Battle.new end end Demo:http://www.4shared.com/file/245701731/d ... Title.html
  15. Titolo: Star Ocean 3 Custom Menu System Versione: N/D Autore/i: Desconhecido Informazioni: Un menù che riprende quello di SO 3 =P Screenshots: Istruzioni: All'interno della Demo. Demo: http://www.mediafire.com/?ziq9m12fdzy
  16. Ally

    HUD Nome Mappa

    Titolo: Nome Mappa Versione: N/D Autore/i: Fronty Informazioni: Script che permette di visualizzare il nome della mappa ^^ Istruzioni: Istruzioni e script all'interno della Demo Demo: http://www.mediafire.com/?a18b97rdt9jzw6z
  17. Titolo: Smooth Scrolling Versione: N/D Autore/i: Toby Zerner Informazioni: Un sistema 'speciale' di spostamento dello schermo...un pò difficile da spiegare,provatelo Istruzioni: All'interno della Demo Demo: http://www.mediafire.com/?6n2mxbumemt
  18. Ally

    CBS HBS Wild Arms 44

    Titolo: HBS Wild Arms 44 Versione: N/D Autore/i: Rotimikid Informazioni: Un Battle System che richiama lo stile di Wild Arms 4 Istruzioni: All'interno della Demo Demo: http://www.4shared.com/file/26839749/be ... d=301d7a6c
  19. Titolo: Limitare Oggetti Versione: N/D Autore/i: Moghunter Informazioni: Script che permette di limitare la quantità di oeggetti posseduti... Istruzioni: All'interno della Demo Demo: http://www.atelier-rgss.com/RGSS/Demos/ ... _Limit.exe
  20. Titolo: Schermo intero automatico Versione: 1.0 Autore/i: Sconosciuto Informazioni: Questo script fà partire il gioco diretamente in full Screen. Istruzioni: Copiatelo nella classe Main, subito dopo Begin. Script: $win_event = Win32API.new 'user32', 'keybd_event', %w(l l l l), '' $win_event.call(18,1,0,0) $win_event.call(13,1,0,0) $win_event.call(18,1,2,0) $win_event.call(13,1,2,0) Incompatibilita:Per qualche strano motivo se utilizzato sulla versione 1.01 di Rpg Maker xp, sballa tutti i tasti della tastiera, rendendo impossibile giocare. Da utilizzare con le versioni 1.02 o successive del programma
  21. Titolo: Opzioni aggiuntive al Gameover Versione: N/D Autore/i: Rubymatt Informazioni: Dopo il Game Over Apparira una finestra con le seguenti opzioni - Carica Partita - Ritorna al Titolo - Esci dal Gioco Istruzioni: Copiare lo script sotto Scene_GameOver Poi andate nella classe Scene_GameOver e sotituite il codice alla linea 56 con $scene = Scene_GameoverMenu.new Script: #Scene_GameoverMenu #by Rubymatt class Scene_GameoverMenu def main s1 = "Carica Partita" s2 = "Ritorna Ai Titoli" s3 = "Esci Dal Gioco" @command_window = Window_Command.new(192, [s1, s2, s3]) @command_window.back_opacity = 160 @command_window.x = 320 - @command_window.width / 2 @command_window.y = 100 @continue_enabled = false for i in 0..3 if FileTest.exist?("Save#{i+1}.sav") @continue_enabled = true end end if @continue_enabled @command_window.index = 1 else @command_window.disable_item(0) end Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @command_window.dispose end def update @command_window.update if Input.trigger?(Input::C) case @command_window.index when 0 command_continue when 1 $game_system.se_play($data_system.decision_se) $scene = Scene_Title.new when 2 command_shutdown end end end def command_continue unless @continue_enabled $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) $scene = Scene_Load.new end def command_shutdown $game_system.se_play($data_system.decision_se) Audio.bgm_fade(800) Audio.bgs_fade(800) Audio.me_fade(800) $scene = nil end end
  22. Titolo: Particle Engine Versione: N/D Autore/i: arevulopapo, Near Fantastica Informazioni: Uno dei migliori script (insieme ad altri) presenti per rpgmaker. Simula degli effetti veramente utili e fighi °° Istruzioni: All'interno della Demo Demo: http://www.mediafire.com/?f0b5gdmxwtg
  23. Titolo: Caricamento alla GTA Versione: N/D Autore/i: Kjr Informazioni: Uno script che simula il caricamento di GTA Screenshots: Istruzioni: All'interno della Demo Demo: http://www.mediafire.com/?dnnzk2qxj3t
  24. Titolo: Configurazioni Avanzate Versione: N/D Autore/i: Sleeping Leonhart Informazioni: Ottimo sistema di configurazione del gioco,che permette di cambiare il sistema audio,video etc... Screenshots: Istruzioni: All'interno della Demo Demo: http://www.mediafire.com/?d0ywjwmj1yh
  25. Titolo: Auto-Battle Versione: N/D Autore/i: Thousand Dragoon Informazioni: Questo script permette di usare il comando di battaglia automatica =) Istruzioni: Inserire lo script sopra Main... Script: #Este script coloca o comando de auto-batalha em suas lutas, fazendo que seus personagens ataquem sozinhos. #Este script é muito simples de ser usado, acima do Main (no editor de scripts) clique com o botão direito e inserir. Díª o nome de Auto_Battle e cole o código abaixo no script. #Pronto já pode ser usado. #============================================================================== # ¦ Auto_Battle #------------------------------------------------------------------------------ # Edited from default scripts by Thousand Dragoon Link and Sir_KnightDragoon # Comments by Thousand Dragoon Link #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ? Renewal of a frame (party command phase) #-------------------------------------------------------------------------- def update_phase2 if Input.trigger?(Input::C) case @party_command_window.index when 0 # Fight # Determine if a SE is performed. $game_system.se_play($data_system.decision_se) start_phase3 when 1 # Escape. # escape is not possible if $game_temp.battle_can_escape == false $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) update_phase2_escape when 2 # Auto-Battle $game_system.se_play($data_system.decision_se) update_phase2_auto end return end end #-------------------------------------------------------------------------- # Renewal of a frame (party command phase : auto) #-------------------------------------------------------------------------- def update_phase2_auto loop do if @actor_index == $game_party.actors.size-1 start_phase4 return end @actor_index += 1 $game_party.actors[@actor_index].current_action.kind = 0 $game_party.actors[@actor_index].current_action.basic = 0 $game_party.actors[@actor_index].current_action.decide_random_target_for_actor end end end class Window_PartyCommand < Window_Selectable #-------------------------------------------------------------------------- # object initialization #-------------------------------------------------------------------------- def initialize super(0, 0, 640, 64) self.contents = Bitmap.new(width - 32, height - 32) self.back_opacity = 160 self.contents.font.name = $fontface self.contents.font.size = $fontsize #Change the commands to what you want them to say @commands = ["Combatti", "Fuga", "Auto-Battle"] @item_max = 3 @column_max = 3 draw_item(0, normal_color) draw_item(1, $game_temp.battle_can_escape ? normal_color : disabled_color) draw_item(2, normal_color) self.active = false self.visible = false self.index = 0 end #-------------------------------------------------------------------------- def draw_item(index, color) self.contents.font.color = color rect = Rect.new(80 + index * 160 + 4, 0, 128 - 10, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) self.contents.draw_text(rect, @commands[index], 1) end #-------------------------------------------------------------------------- # Renewal of the rectangle cursor #-------------------------------------------------------------------------- def update_cursor_rect self.cursor_rect.set(80 + index * 160, 0, 128, 32) end end
×