Jump to content

AD-Blocker detected, please disable your ad-blocker when surfing in makerando.com - There is no invasive Ad.

 

Search the Community

Showing results for tags 'CBS'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Comunità
    • Cancello di Ingresso
    • Bacheca
    • Colisseum
  • DevTeam
    • CyberTeam
  • Games and Sheets RPG Maker
    • Resa Grafica
    • Concept e Bozze
    • Progetti
    • Demo and Release
    • Il Making Oltreoceano
  • Assistenza e Supporto
    • Biblioteca
    • BrainStorming
    • Chiedi Aiuto alla Comunity
    • RPG Maker Scripting
    • PlugIn e AddOn RPG Maker
    • Musica e Suoni
    • Risorse Grafiche RPG Maker
    • Mak - Resources
  • Beyond Making
    • Altri Tool

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


Website URL


ICQ


Yahoo


Skype


Location


Interests

Found 24 results

  1. Nome Script: RE Weapons System Version II (con Particle Engine) Versione: II Autore/i: Maker-Leon Informazioni: Lo script è un ABS come altri presenti in rete, ma incentrata sull'uso di armi da fuoco contro i nemici "corpo a corpo", o corpo a corpo in stile Resident Evil. Ha un sistema di munizioni, dove l'utente può impostare i proiettili massimi per cartuccia, e, tra le molte altre funzioni, i proiettili e le cartucce sono conteggiate singolarmente ...Quindi il massimo di proiettili non è 99, ma lo sarà per le cartucce =D In questo sistema, è presente il Particle Engine, noto script cui rende alcuni effetti visivi, molto più particolari e realistici. E' un ABS molto potente e ben fatto, in continuo aggiornamento da questo grande Scripter...fatene buon uso =D N.B: Sembra difficile da usare, ma se guardate bene gli script, sono di facile comprensione. Features: - HUD che mostra le cartucce, le munizioni e i punti vita (HP) - Particle Engine (sangue, esplosioni, fumo, e molo altro ancora...) - altro... Screenshots: Istruzioni: Istruzioni e script sono all'interno della demo. Demo: http://www.mediafire.com/?wvjqpqxhexjaja9
  2. Nome Script: Tankentai Sideview BS Versione: 1.00 Autore/i: Enu Informazioni: Bello il Tankentai per VX, vero? L'Autore (Enu) adesso lo stà sviluppando anche per VXA! Guardate il video per ulteriori info. Link blog originale: http://rpgex.sakura.ne.jp/home/ Screenshots: Istruzioni: Nella demo (jap) Script: v.demo (link pagina originale jap, versione più aggiornata) Demo:Qui [edit]Versione stabile rilasciata 25/04/2012[/edit]
  3. Nome Script: XAS Hero Edition ACE Versione: 0.5 Autore/i: Moghunter Informazioni: Disponibile ora anche per Ace *____* Per chi non lo sapesse lo XAS è l'ABS più potente in circolazione =P Provatelo, non ve ne pentirete...penso che ora io passerò al VX Ace http://rpgmkr.net/forum/public/style_emoticons/default/xd.gif Screenshots: Istruzioni: Le istruzioni sono elencate tutte nel sito di Moghunter: http://atelier-rgss.com/XAS/Manual.htm Demo: http://www.mediafire.com/?ck59ijidbt7s3gd
  4. Nome Script: XAS Hero Edition VX Versione: 1.0 Autore/i: Moghunter, Xiderowg Informazioni: Un sensazionale BS in tempo reale munito di schermata con equipaggiamento e barre hp/mp con dei bellissimi effetti speciali. Lo stile di combattimento riprende quello dei famosi giochi Secret of Mana, etc... Il sistema di battaglia era stato concepito per RPG Maker XP (disponibile nella sua sezione script) e trasportato adesso per VX. Screenshot: Istruzioni: Inserite tutti gli script presenti nella demo sul vostro progetto, o iniziatene uno direttamente su questa. Altre istruzioni all'interno degli script. Demo: http://www.mediafire...m65mlty8gj9a4ei Manuale in Italiano: (Un grazie a Kentaro-su) Manuale XAS - VX/VXAce
  5. Nome Script: RubySoft - Action System 2.0 Versione: 2.0 Autore/i: miguelrpg Informazioni: Ho avuto l'onore per poterlo betatestare, e vi assicuro che è davvero un sistema ben fatto e utile per chi vuole personalizzare di più il proprio progetto. Con questo sistema si ha a disposizione lo stile di alcuni dei più grandi giochi, quali Zelda, Mana etc... Le immagini comunque parleranno molto chiare, e la demo anche =) Features: Action Tools: • Lanterna • Minish (mini PG) • Ocarina • Sistema pesca Altro: • Status System avanzato • Movimento avanzato • Sistema avviso HP • Sistema ripresa HP • Sistema caverna • Action Popup – MSG • Auto Messaggi • Dash System (corsa) • Sistema Level UP • Sistema Passi • Sistema Volo • Sistema Nuoto • Sistema Snowboard • Sistema Fall (buche) • Sistema ombra HUD • HUD Imperial • Action Interactive Buttons - AIB • Action Time Gauge • Compass System (bussola) Istruzioni: Immagini e script all'interno dello script. Demo: http://www.action.onsave.com.br/RAS_2.zip Extra: http://www.action.onsave.com.br/Extras.zip Incompatibilità: Confermo che lo script non funziona con il salta titoli di Tidus (al momento dei betatest).
  6. Buondì! Stanchi dei soliti BS laterali? Tanketai vi dà la nausea? YERD, YEZ, YEM per voi sono nomi di pietanze esotiche? Provate questo nuovo BS, qualità Tomoaky. Ricrea (al 90%) il BS di FF13 su RMVX, con molta libertà di modifiche (com'è nel suo stile) e qualche extra - divertitevi con la demo che ho preparato! Un assaggio da tutubo (da un progetto francese): http://www.youtube.com/watch?v=mcn57vwG_Ug Nome Script: [VX] Final Fantasy 13 Battle System Versione: 2010/03/05 (ultima rilasciata) Autore/i: Tomoaky Informazioni: - Ricrea il sistema di battaglia di FF13 con il menu "Optima" per definire i ruoli di ciascun pg e battaglie in tempo reale in cui si controlla solo il leader del gruppo. - Altamente customizzabile! - Pieno supporto per l'AI nemica, skills, ATB e livello di Optima...e molto altro. Features: Nessuna nuova versione prevista dall'Autore. Istruzioni: Nella demo è presente un Manuale in italiano scritto da me (Kentaro). Per referenza, ho incluso anche quelli inglese e francese. Script: Oltre 3mila righe. Usate la demo. F.A.Q: D: Non ho le RTP! Non riesco ad aprire la demo! R: La demo richiede le RTP (scaricare a parte). D: Come faccio ad inserire un background come si vede nel titolo con il blur? R: Basta usare un qualsiasi script che permetta di inserire un battle background, e creare un'immagine dalle dimensioni giuste per il campo di battaglia e per i menu - è davvero molto banale. D: A chi vanno i crediti? R: Essenzialmente, a Tomoaky per aver creato lo script, Nadir per averlo tradotto in inglese. Se volete citarmi per il manuale in ita mi fa piacere, ma non è necessario: non rubate il lavoro altrui spacciandolo per vostro, però. Demo: http://www.mediafire.com/?bokaq0yzhxjp9zz Incompatibilità: N/D Note dell'Autore: blog originale: http://hikimoki.sakura.ne.jp/html/optima.html
  7. Questo script non è adatto ai newbie. Se hai appena aperto rpgmaker,e non hai almeno le basi del suo funzionamento,è sconsigliato usare questo script Il 95% degli errori che vengono segnalati su questo script è causato da un errore dell'utente o di incompatibilità fra script. Questo significa che se si verifica un errore,c'è una probabilità molto elevata che l'errore è causato da te. Assicurati di aver aggiornato gli script,alla versione più recente,e anche di leggere attentamente i commenti all'interno degli script. Per qualsiasi aiuto riguardo a questo BS,postate pure nel topic! RPG Tankentai Sideview Battle System Version 3.3b & Active Time Battle v1.1d Battle System Scripted by Enu Traduzione Versione 2.4 Continuata da Mr. Bubble Traduzione Versione Precedente by Kylock Link al sito originale dello script: ( http://rpgex.sakura.ne.jp/home/ ) Screenshots: Installazione: Leggere attentamente le istruzioni nel readme,all'interno della demo. Come Installare - le istruzioni di installazione sono nel file README,il primo script elencato nello Script Editor. Si prega di notare che per integrare pienamente questo script in un gioco già esistente,viene richiesta la copia dei file di immagini e le voci del database di gioco presenti nella demo. Link aggiornati all'ultima versione Download Demo Base: ( http://www.mediafire.com/?p7bbie9b049qf4y ) 10/07/2011 Download Demo Base con ATB: ( http://www.mediafire.com/?ldqw5vjvqflo1s9 ) 10/07/2011 Download Kaduki's Battlers Demo: ( http://www.mediafire.com/?4a9bar02m36wktq ) - 11/07/2010 [linea] Aggiornamento Battle System + Overdrive Download Demo Base con ATB + Overdrive System (grafica originale): ( http://www.mediafire.com/download.php?k2spyaayiv5sfxi ) - 27/12/2010 Download Demo Base con ATB + Overdrive System (grafica con HUD e comandi Ziifee): ( http://www.mediafire.com/download.php?l8xrl1n36d353cl ) - 27/12/2010 Patch Compatibili: KGC_EnemyGuide ( 1.74K ) KGC_HelpExtension and KGC_CategorizeSkill for ATB ( 6.9K ) Moonlight's KGC_Steal Patch ( 2.76K ) Mithran's Force Action Fix for ATB ( 2.86K ) Add-ons: 6-digit Damage Pops ( 4.67K ) Enemy Animated Battlers Add-on ( 4.01K ) Extra Transformation Skills Add-on ( 3.09K ) AlphaWhelp's Haste & Slow States for ATB v1.0 ( 6.97K ) Kylock's Dynamic Party Positions ( 3.61K ) Kylock's Stationary Enemies Add-on Compatibilità: Questo script ha molti problemi di compatibilità con altri script che interessano il sistema di battaglia. Il KCG_MPCostAlter non è compatibile con questo BS. Credits: RPG Tankentai Sideview Battle System Original Script by: Enu (http://rpgex.sakura.ne.jp/home/) Traduzione inglese by: Kylock Mr. Bubble Shu Special Thanks: Shu (for translation help) Moonlight (for her passionate bug support and many bug fixes) NightWalker (for his community support for this script) Enelvon (transformation add-on and support) Atoa (community and XP version support) AlphaWhelp (code fixes and community support) Mithran (ATB Force Action fix) blackmorning (code fix for animated enemy hue change) Enu (for making an awesome script)
  8. Nome Script: Requiem ABS 9 Versione: 9 Autore/i: Vladislaus Informazioni: Un fantastico ABS,da provare =P Istruzioni: In inglese (li sto traducendo in italiano) Demo: http://vampyrcoders.net/data/scripts/Vampyr%20SBABS.zip Aggiornamento: Download alla versione tradotta in Italiano da knight92: http://www.mediafire.com/?fqd45d8q6aoa6ba
  9. Nome Script: IEX - Yggdrasil Versione: 1.5b1 Autore/i: IceDragon Informazioni: Questo CBS (Custom Battle System) è utilizzabile insieme ad altri sistemi di battaglia...si può abilitare/disabilitare in qualsiasi momento,quindi nel gioco potremmo inserire 2 battle system. Bisogna un pò configurarlo prima dell'uso,e non è consigliato ai noob. Screenshots: Istruzioni: Tutto all'interno della demo. Demo: http://www.mediafire.com/?7ng76ujvag327em Download v1.5b1 Download v1.6 Beta
  10. Nome Script: Pong Battle System Versione: 1.0 Autore/i: mikb89 Informazioni: Questo script sostituisce il sistema di battaglia standard con uno di tipo pong. Giocatore e nemico hanno ognuno i propri blocchi e la sconfitta soggiunge quando: 1) i PV (H nell'immagine) di tutti finiscono (classica morte); 2) vengono distrutti tutti i blocchi. Features (roba che conto di aggiungere): Skill system migliorato, pallina renderizzata in modo migliore, possibilità di utilizzare immagini anziché roba renderizzata. Istruzioni: Copiate gli script "Pong Battle System" e "Barrier" situati sotto "Materials" nella demo, sotto il "Materials" del vostro progetto. Se volete potete prendervi anche la guida per la creazione skill avanzate, ma non è necessario. Potete creare composizioni specifiche settando i parametri appositamente. F.A.Q: D: Come vengono effettuati i danni? R: Ogni blocco ha dei PV (per ogni colore) che vengono sottratti considerando i valori di attacco e difesa dei giocatori attivi. Se il blocco ha un colore diverso dal rosso, quando i PV arrivano a 0, questo passa al colore precedente (in ordine: rosso, verde, blu, giallo, ciano, magenta, bianco, nero) fino ad arrivare al rosso. Finendo anche il rosso, il blocco viene distrutto arrecando danni al giocatore pari ai PV del blocco. In sintesi: -blocco verde: 10 PV -vengono tolti, il blocco diventa rosso: altri 10 PV -viene distrutto il blocco: vengono tolti 20 PV al giocatore. Se il blocco viene colpito ma non distrutto, il giocatore non subisce niente. D: Chi è il giocatore? R: Per giocatore intendo colui che muove attualmente la barretta. Sia dalla parte tua, sia da quella del nemico. Come si può vedere dall'immagine, al centro ci sono delle altre barrette. Nel caso del nemico queste si attivano non appena il giocatore attuale muore (finisce i PV). Nel caso dell'umano, puoi scegliere tu quale eroe usare premendo SHIFT + SU/GIÚ. Il semplice SU/GIÚ muove invece la barretta. D: Quanti colori! R: Sì, le barrette non sono immagini ma vengono renderizzate prendendo un colore medio dalle immagini dei face (per gli eroi) e dei battler (per i nemici). La piccola barretta azzurra che vedete nei nemici è uno slime (essendo azzurro nel VX). Ralph non viene arancione (il colore dei suoi capelli) perché ha molta faccia, che è rosa. Il colore dei blocchi dipende invece da quanti si trovano nella stessa posizione. A seconda dei parametri ogni eroe/nemico ha i suoi blocchi (tutti rossi) disposti in punti specifici. Se nel gruppo più componenti hanno quindi valori simili di qualche parametro, i blocchi avanzeranno di colore (con quattro componenti il colore non sorpasserà quindi il giallo). La pallina è renderizzata pure, e credo si capisca benissimo sia una 'o'. Sfaticato che non sono altro. D: Ma questo coso suona? R: Quando la pallina sbatte nei blocchi, nelle barrette, nei muri, vengono eseguiti rispettivamente i suoni di: danno, attacco, evasione. Lo so che l'ultimo non centra niente ma era quello che mi sembrava più adatto. Potete anche sentire il suono di miss qualora nel colpire il blocco non gli venga fatto alcun danno. D: E se al giocatore scoccia? R: I blocchi parametrici li ho messi apposta per variare sempre l'ambiente. Poi visto che le battaglie anche semplici potrebbero impiegare più tempo, magari mettetene di meno. Oppure fate nemici più vari, tanto come immagine potete mettere qualsiasi cosa. Comunque, quello che volevo dire è che, potete mettere nell'eroe la spunta 'autobattle' (dal database) e questo giocherà da solo. Potete aggiungere al party un eroe con questa caratteristica e il giocatore potrà attivarlo e disattivarlo a piacimento (sempre SHIFT + SU/GIÚ). D: Si possono fare tutte quelle cose tipiche di giochi simili? R: Dalla versione 1.0, quasi. Potete creare skill avanzate che intervengono sulla pallina. Per adesso non si può però intervenire sui blocchi né sulle barrette. Una skill avanzata di esempio è presente e consente di creare uno scudo protettivo. Potete creare roba simile facilmente, come ostacoli semoventi o effetti. Non potete far sdoppiare la pallina, né fare in modo che trapassi i blocchi, perché queste cose hanno effetto sia sulla palla in sé (che è possibile) sia su barrette/blocchi, attualmente non controllabili. E questo per le skill. Potete variare la dimensione della barretta, visto che questa è influenzata dalla difesa. Potete bloccare/confondere/automatizzare i giocatori utilizzando gli appositi stati (tipo Sleep, Confuse, Berserker). Potete eseguire animazioni su eroe e nemico (quella sull'eroe è un'aggiunta, perché sul VX non è prevista animazione sull'eroe in battaglia). D: Skill e oggetti come funzionano? R: Per quanto riguarda gli oggetti, in battaglia non c'è utilizzo. Per le skill, chi gioca può settarne due per eroe premendo Shift + freccia destra o sinistra e poi usarle con Invio (o Spazio o C) + la direzione assegnata. La creazione delle skill avviene come di consueto, l'unica cosa da dire è che le skill possono essere utilizzate continuamente e, per evitare questo, potete mettere frame vuoti nelle animazioni in modo da attendere quel tempo prima di poter richiamare una nuova skill. D: Il sistema è carino, ma come battle system mi sembra azzardato. Mi ci fai un minigame da usare a parte? R: No. Ci ho fatto il battle system e resta battle system XD D: E allora posso provare a farcelo io? R: No, non voglio. Voglio che resti un battle system, davvero. Ci ho messo solo un giorno per creare il sistema di gioco e cinque per farlo diventare un BS. Se proprio lo vuoi come minigame, dimmelo che ti passo lo script che è già pronto, ma che resti fra noi. D: Ma perché tutto questo? R: A parte il lavoro in più per portarlo a BS, il fatto è che mi piaceva l'idea di un BS un po' più particolare del solito. Il fatto di essere un minigame mi sembra invece abbastanza banale. D: Nel mio progetto ho lo script per il mouse. Posso usarlo per muovere le barrette? R: Sì, basta mettere questo script sotto quello del mouse. Demo: http://www.mediafire.com/?u5e3596sr5d1ya3 Incompatibilità: -Se dovete far morire qualcuno, toglietegli tutti i PV, ma non applicategli direttamente lo status Dead. -Se create skill avanzate che modificano la velocità della pallina, badate ai valori altrimenti la pallina potrebbe (e lo farà, N.D.Murphy) sballare. -Se iniziate la battaglia con tutti i pg morti, vi potrebbe dare errore di divisione per zero. Note dell'Autore: Resto a disposizione per ulteriori modifiche/migliorie/peggioramenti e per eventuali skill avanzate che vi vengono in mente ma non riuscite a realizzare, a patto che poi possiamo aggiungerli al pacchetto demo.
  11. Nome Script: PBS - Pokemon Battle System Versione: 1.3 Autore/i: HungrySnake Informazioni: Come da titolo, un battle system come quello dei giochi Pokèmon. Screenshots: Istruzioni: Copiate tutti gli script della demo nel vostro progetto (compreso le musiche). Altre istruzioni all'interno degli script. F.A.Q: D: All'avvio ho il seguente errore: Missing file "Battle.mp3" R: Controlla di aver copiato tutte le musiche della demo, o di avere una tua musica rinominata 'Battle.mp3' D: I file audio, devono avere gli stessi nomi di quelli inseriti nella demo? R: No. I file audio si possono rinominare come si vogliono, ma si devono cambiare anche nello script nelle seguenti linee: USIC_VICTORY_SE = RPG::SE.new("Victory", 80, 100) MUSIC_ESCAPE_BATTLE_SE = RPG::SE.new("Flee", 100, 100) MUSIC_BATTLE_SE = RPG::SE.new("Battle", 80, 100)Dove Victory, Flee e Battle sono i nomi dei file audio. D: Vorrei mostrare più di un Pokèmon nemico in battaglia, si può fare? R: Si aggiungerà questa features nella prossima versione del PBS Demo: http://www.mediafire.com/?mtrkt64vqn1qnh5
  12. Nome Script: D&D 3a Edizione Versione: 3.0 Autore/i: Nelderson, Gubid, ???nOBodY???, IceDragon, modern_algebra, Fridgecrisis, iPenguin e Dricc Informazioni: Questa demo vuole raggiungere lo scopo di creare una versione molto simile a D&D. Molto ben fatta e sicuramente da provare per chi ama il genere e vuole farci un tactics. Istruzioni: Script e istruzioni all'interno della demo. Demo: http://www.mediafire.com/?vqpas1a9uxruf2y Note dell'Autore: Per un uso commerciale, contattare tutti gli autori degli script.
  13. Nome Script: SRPG2 - tactical battle system Versione: 1.0121 Autore/i: tomoaky Informazioni: Questo battle system, riprende 3 diversi stili di battaglia: - Fire Emblem (per il parlato) - Final Fantasy Tactics (direzione dei face) - Advance Wars (effetti del terreno) Screenshots: Istruzioni: Le istruzioni sono all'interno della demo. Demo: http://www.mediafire.com/?affd1n3on9po96n Demo Tradotta: http://www.mediafire.com/?nswvn9xdb531une Incompatibilita': N/D Note dell'Autore: Il sistema di battaglia non può essere usato per progetti a fini commerciali.
  14. Nome Script: GubiD's Tactical Battle System Versione: 1.5.1 Autore/i: GubiD Informazioni: Battle System tattico ispirato a Final Fantasy... Aggiornato regolarmente. Istruzioni: Le istruzioni sono all'interno della Demo. Demo: http://www.mediafire.com/?wjhkmizmtn2
  15. Nome Script: Sideview Battle System Tankentai XP Versione: 2.2 Autore/i: Enu, Atoa Informazioni: Il BS creato da Enu anche per XP convertito da Atoa Screenshots: Istruzioni: Le istruzioni sono all'interno della demo ^^ Una cosa però.Se non utilizzate la demo come progetto di inzio,dovrete trasportare in quello nuovo,le seguenti cose: Demo: SBS Tanketai XP
  16. Nome Script: VX Battle System Versione: 1.0 Autore/i: Juunanagou, Gradient Bars by Amaranth Informazioni: Sistema di combattimento di RMVX su XP suddiviso in più script Screenshots: Istruzioni: Basta copiare i vari script sopra Main e sotto l'ultimo in modo che non facciano confusione. Potete anche sostituire quelli con lo stesso nome a quelli esistenti. Script: Window_PartyCommand: #============================================================================== # ** Window_PartyCommand #------------------------------------------------------------------------------ # This window is used to select whether to fight or escape on the battle # screen. #============================================================================== 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 @commands = ["Fight", "Escape"] @item_max = 2 @column_max = 2 draw_item(0, normal_color) draw_item(1, $game_temp.battle_can_escape ? normal_color : disabled_color) self.active = true self.visible = true self.index = 0 end #-------------------------------------------------------------------------- # * Draw Item # index : item number # color : text character color #-------------------------------------------------------------------------- def draw_item(index, color) self.contents.font.color = color rect = Rect.new(160 + 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 #-------------------------------------------------------------------------- # * Cursor Rectangle Update #-------------------------------------------------------------------------- def update_cursor_rect self.cursor_rect.set(160 + index * 160, 0, 128, 32) end end Window_BaseBattle (diverso da WindowBase, non sostituire ma aggiungere!): #============================================================================== # ** Window_Base #------------------------------------------------------------------------------ # This class is for all in-game windows. #============================================================================== class Window_BaseBattle < Window #-------------------------------------------------------------------------- # * Object Initialization # x : window x-coordinate # y : window y-coordinate # width : window width # height : window height #-------------------------------------------------------------------------- def initialize(x, y, width, height) super() @windowskin_name = $game_system.windowskin_name self.windowskin = RPG::Cache.windowskin(@windowskin_name) self.x = x self.y = y self.width = width self.height = height self.z = 100 end #-------------------------------------------------------------------------- # * Dispose #-------------------------------------------------------------------------- def dispose # Dispose if window contents bit map is set if self.contents != nil self.contents.dispose end super end #-------------------------------------------------------------------------- # * Get Text Color # n : text color number (0-7) #-------------------------------------------------------------------------- def text_color(n) case n when 0 return Color.new(255, 255, 255, 255) when 1 return Color.new(128, 128, 255, 255) when 2 return Color.new(255, 128, 128, 255) when 3 return Color.new(128, 255, 128, 255) when 4 return Color.new(128, 255, 255, 255) when 5 return Color.new(255, 128, 255, 255) when 6 return Color.new(255, 255, 128, 255) when 7 return Color.new(192, 192, 192, 255) else normal_color end end #-------------------------------------------------------------------------- # * Get Normal Text Color #-------------------------------------------------------------------------- def normal_color return Color.new(255, 255, 255, 255) end #-------------------------------------------------------------------------- # * Get Disabled Text Color #-------------------------------------------------------------------------- def disabled_color return Color.new(255, 255, 255, 128) end #-------------------------------------------------------------------------- # * Testo Nero delle barre #-------------------------------------------------------------------------- def bar_color return Color.new(0, 0, 0, 255) end #-------------------------------------------------------------------------- # * Get System Text Color #-------------------------------------------------------------------------- def system_color return Color.new(192, 224, 255, 255) end #-------------------------------------------------------------------------- # * Get Crisis Text Color #-------------------------------------------------------------------------- def crisis_color return Color.new(255, 255, 64, 255) end #-------------------------------------------------------------------------- # * Get Knockout Text Color #-------------------------------------------------------------------------- def knockout_color return Color.new(255, 64, 0) end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super # Reset if windowskin was changed if $game_system.windowskin_name != @windowskin_name @windowskin_name = $game_system.windowskin_name self.windowskin = RPG::Cache.windowskin(@windowskin_name) end end #-------------------------------------------------------------------------- # * Draw Graphic # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate #-------------------------------------------------------------------------- def draw_actor_graphic(actor, x, y) bitmap = RPG::Cache.character(actor.character_name, actor.character_hue) cw = bitmap.width / 4 ch = bitmap.height / 4 src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect) end #-------------------------------------------------------------------------- # * Draw Name # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate #-------------------------------------------------------------------------- def draw_actor_bt_name(actor, x, y) self.contents.font.color = normal_color self.contents.draw_text(x, y, 120, 32, actor.name) end #-------------------------------------------------------------------------- # * Make State Text String for Drawing # actor : actor # width : draw spot width # need_normal : Whether or not [normal] is needed (true / false) #-------------------------------------------------------------------------- def make_battler_state_text(battler, width, need_normal) # Get width of brackets brackets_width = self.contents.text_size("[]").width # Make text string for state names text = "" for i in battler.states if $data_states[i].rating >= 1 if text == "" text = $data_states[i].name else new_text = text + "/" + $data_states[i].name text_width = self.contents.text_size(new_text).width if text_width > width - brackets_width break end text = new_text end end end # If text string for state names is empty, make it [normal] if text == "" if need_normal text = "[Normal]" end else # Attach brackets text = "[" + text + "]" end # Return completed text string return text end #-------------------------------------------------------------------------- # * Draw State # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate # width : draw spot width #-------------------------------------------------------------------------- def draw_actor_bt_state(actor, x, y, width = 120) text = make_battler_state_text(actor, width, true) self.contents.font.color = actor.hp == 0 ? knockout_color : normal_color self.contents.draw_text(x, y + 16, width, 32, text) end #-------------------------------------------------------------------------- # * Draw HP # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate # width : draw spot width #-------------------------------------------------------------------------- def draw_actor_bt_hp(actor, x, y, width = 144) # Draw "HP" text string self.contents.font.color = system_color self.contents.draw_text(x + 96, y, 32, 32, $data_system.words.hp) # Calculate if there is draw space for MaxHP if width - 32 >= 108 x = x + width - 108 flag = true elsif width - 32 >= 48 x = x + width - 48 flag = false end # Draw HP self.contents.font.color = actor.hp == 0 ? knockout_color : actor.hp <= actor.maxhp / 4 ? crisis_color : bar_color self.contents.draw_text(x + 128, y, 48, 32, actor.hp.to_s, 2) # Draw MaxHP if flag self.contents.font.color = normal_color self.contents.draw_text(x + 48, y, 12, 32, "/", 1) self.contents.draw_text(x + 60, y, 48, 32, actor.maxhp.to_s) end end #-------------------------------------------------------------------------- # * Draw SP # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate # width : draw spot width #-------------------------------------------------------------------------- def draw_actor_bt_sp(actor, x, y, width = 144) # Draw "SP" text string self.contents.font.color = system_color self.contents.draw_text(x + 288, y, 32, 32, $data_system.words.sp) # Calculate if there is draw space for MaxHP if width - 32 >= 108 x = x + width - 108 flag = true elsif width - 32 >= 48 x = x + width - 48 flag = false end # Draw SP self.contents.font.color = actor.sp == 0 ? knockout_color : actor.sp <= actor.maxsp / 4 ? crisis_color : bar_color self.contents.draw_text(x + 320, y, 48, 32, actor.sp.to_s, 2) # Draw MaxSP if flag self.contents.font.color = normal_color self.contents.draw_text(x + 48, y, 12, 32, "/", 1) self.contents.draw_text(x + 60, y, 48, 32, actor.maxsp.to_s) end end # Gradient Bars Amaranth #-------------------------------------------------------------------------- # ● Draw a gradient bar # actor : actor assigned to the bar # x : X coordinate of the upper-left pixel of the bar # y : Y coordinate of the upper-left pixel of the bar # bar_width : width of the bar # bar_height : height of the bar # current : current value to compare (eg. hp, sp, exp) # max : max value to compare (eg. max hp, max sp, max exp) # color : base color to use (eg. text_color(5)) #-------------------------------------------------------------------------- def draw_bar(actor, x, y, bar_width, bar_height, current, max, color) adj_width = bar_width - 4 adj_height = bar_height - 4 self.contents.font.size = 16 # outline of bar border_color = Color.new(255, 255, 255, 255) self.contents.fill_rect(x + 3, y + 8, bar_width, bar_height, border_color) # background of bar background_color = Color.new(0, 0, 0, 255) self.contents.fill_rect(x + 5, y + 10, adj_width, adj_height, background_color) # current bar if max != 0 percent = (current * 100) / max adj_width = (adj_width * percent) / 100 for i in 1..adj_width color.red += 1 color.blue += 1 color.green += 1 self.contents.fill_rect(x + 5, y + 10, adj_width, adj_height, color) x += 1 adj_width -= 1 end end end end Window_BattleStatus: #============================================================================== # ** Window_BattleStatus #------------------------------------------------------------------------------ # This window displays the status of all party members on the battle screen. #============================================================================== class Window_BattleStatus < Window_BaseBattle #-------------------------------------------------------------------------- # * Finestra dei personaggi #-------------------------------------------------------------------------- def initialize # Riduco la larghezza della finestra a 480 per far entrare i comandi super(0, 320, 480, 180) self.contents = Bitmap.new(width - 32, height - 32) @level_up_flags = [false, false, false, false] refresh end #-------------------------------------------------------------------------- # * Dispose #-------------------------------------------------------------------------- def dispose super end #-------------------------------------------------------------------------- # * Set Level Up Flag # actor_index : actor index #-------------------------------------------------------------------------- def level_up(actor_index) @level_up_flags[actor_index] = true end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear @item_max = $game_party.actors.size for i in 0...$game_party.actors.size @leader = "" x = 40 y = i * 32 actor = $game_party.actors[i] # actor_x = i * 160 + 4 actor_x = 0 # voglio che vada in verticale e non in orizzontale actor_y = i * 32 self.contents.font.size = 22 draw_actor_bt_name(actor, actor_x, actor_y) # Refresh della barra hp draw_bar(actor, x + 90, y, 100, 16, actor.hp, actor.maxhp, text_color(2)) draw_actor_bt_hp(actor, actor_x, actor_y, 32) # Refresh della barra sp draw_bar(actor, x + 280, y, 100, 16, actor.sp, actor.maxsp, text_color(4)) draw_actor_bt_sp(actor, actor_x, actor_y, 64) if @level_up_flags[i] self.contents.font.size = 14 self.contents.font.color = normal_color self.contents.draw_text(actor_x, actor_y, 120, 32, "LEVEL UP!") else self.contents.font.size = 14 draw_actor_bt_state(actor, actor_x, actor_y) end end end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super # Slightly lower opacity level during main phase if $game_temp.battle_main_phase self.contents_opacity -= 4 if self.contents_opacity > 191 else self.contents_opacity += 4 if self.contents_opacity < 255 end end end Scene_Battle1: #============================================================================== # ** Scene_Battle (part 1) #------------------------------------------------------------------------------ # This class performs battle screen processing. #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Initialize each kind of temporary battle data $game_temp.in_battle = true $game_temp.battle_turn = 0 $game_temp.battle_event_flags.clear $game_temp.battle_abort = false $game_temp.battle_main_phase = false $game_temp.battleback_name = $game_map.battleback_name $game_temp.forcing_battler = nil # Initialize battle event interpreter $game_system.battle_interpreter.setup(nil, 0) # Prepare troop @troop_id = $game_temp.battle_troop_id $game_troop.setup(@troop_id) # Creo la command window coi 4 comandi: Attacca, Skills, Difendi, Oggetti s1 = $data_system.words.attack s2 = $data_system.words.skill s3 = $data_system.words.guard s4 = $data_system.words.item @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4]) # Sposto la command window di lato @actor_command_window.x = 480 @actor_command_window.y = 320 @actor_command_window.back_opacity = 160 @actor_command_window.active = false @actor_command_window.visible = true # Crea le altre finestre @party_command_window = Window_PartyCommand.new @help_window = Window_Help.new @help_window.back_opacity = 160 @help_window.visible = false @status_window = Window_BattleStatus.new @message_window = Window_Message.new # Make sprite set @spriteset = Spriteset_Battle.new # Initialize wait count @wait_count = 0 # Execute transition if $data_system.battle_transition == "" Graphics.transition(20) else Graphics.transition(40, "Graphics/Transitions/" + $data_system.battle_transition) end # Start pre-battle phase start_phase1 # Main loop loop do # Update game screen Graphics.update # Update input information Input.update # Frame update update # Abort loop if screen is changed if $scene != self break end end # Refresh map $game_map.refresh # Prepare for transition Graphics.freeze # Dispone le finestre attori e poi i comandi di attacco @actor_command_window.dispose @party_command_window.dispose @help_window.dispose @status_window.dispose @message_window.dispose if @skill_window != nil @skill_window.dispose end if @item_window != nil @item_window.dispose end if @result_window != nil @result_window.dispose end # Dispose of sprite set @spriteset.dispose # If switching to title screen if $scene.is_a?(Scene_Title) # Fade out screen Graphics.transition Graphics.freeze end # If switching from battle test to any screen other than game over screen if $BTEST and not $scene.is_a?(Scene_Gameover) $scene = nil end end #-------------------------------------------------------------------------- # * Determine Battle Win/Loss Results #-------------------------------------------------------------------------- def judge # If all dead determinant is true, or number of members in party is 0 if $game_party.all_dead? or $game_party.actors.size == 0 # If possible to lose if $game_temp.battle_can_lose # Return to BGM before battle starts $game_system.bgm_play($game_temp.map_bgm) # Battle ends battle_end(2) # Return true return true end # Set game over flag $game_temp.gameover = true # Return true return true end # Return false if even 1 enemy exists for enemy in $game_troop.enemies if enemy.exist? return false end end # Start after battle phase (win) start_phase5 # Return true return true end #-------------------------------------------------------------------------- # * Battle Ends # result : results (0:win 1:lose 2:escape) #-------------------------------------------------------------------------- def battle_end(result) # Clear in battle flag $game_temp.in_battle = false # Clear entire party actions flag $game_party.clear_actions # Remove battle states for actor in $game_party.actors actor.remove_states_battle end # Clear enemies $game_troop.enemies.clear # Call battle callback if $game_temp.battle_proc != nil $game_temp.battle_proc.call(result) $game_temp.battle_proc = nil end # Switch to map screen $scene = Scene_Map.new end #-------------------------------------------------------------------------- # * Battle Event Setup #-------------------------------------------------------------------------- def setup_battle_event # If battle event is running if $game_system.battle_interpreter.running? return end # Search for all battle event pages for index in 0...$data_troops[@troop_id].pages.size # Get event pages page = $data_troops[@troop_id].pages[index] # Make event conditions possible for reference with c c = page.condition # Go to next page if no conditions are appointed unless c.turn_valid or c.enemy_valid or c.actor_valid or c.switch_valid next end # Go to next page if action has been completed if $game_temp.battle_event_flags[index] next end # Confirm turn conditions if c.turn_valid n = $game_temp.battle_turn a = c.turn_a b = c.turn_b if (b == 0 and n != a) or (b > 0 and (n < 1 or n < a or n % b != a % ) next end end # Confirm enemy conditions if c.enemy_valid enemy = $game_troop.enemies[c.enemy_index] if enemy == nil or enemy.hp * 100.0 / enemy.maxhp > c.enemy_hp next end end # Confirm actor conditions if c.actor_valid actor = $game_actors[c.actor_id] if actor == nil or actor.hp * 100.0 / actor.maxhp > c.actor_hp next end end # Confirm switch conditions if c.switch_valid if $game_switches[c.switch_id] == false next end end # Set up event $game_system.battle_interpreter.setup(page.list, 0) # If this page span is [battle] or [turn] if page.span <= 1 # Set action completed flag $game_temp.battle_event_flags[index] = true end return end end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # If battle event is running if $game_system.battle_interpreter.running? # Update interpreter $game_system.battle_interpreter.update # If a battler which is forcing actions doesn't exist if $game_temp.forcing_battler == nil # If battle event has finished running unless $game_system.battle_interpreter.running? # Rerun battle event set up if battle continues unless judge setup_battle_event end end # If not after battle phase if @phase != 5 # Refresh status window @status_window.refresh end end end # Update system (timer) and screen $game_system.update $game_screen.update # If timer has reached 0 if $game_system.timer_working and $game_system.timer == 0 # Abort battle $game_temp.battle_abort = true end # Update windows @help_window.update @party_command_window.update @actor_command_window.update @status_window.update @message_window.update # Update sprite set @spriteset.update # If transition is processing if $game_temp.transition_processing # Clear transition processing flag $game_temp.transition_processing = false # Execute transition if $game_temp.transition_name == "" Graphics.transition(20) else Graphics.transition(40, "Graphics/Transitions/" + $game_temp.transition_name) end end # If message window is showing if $game_temp.message_window_showing return end # If effect is showing if @spriteset.effect? return end # If game over if $game_temp.gameover # Switch to game over screen $scene = Scene_Gameover.new return end # If returning to title screen if $game_temp.to_title # Switch to title screen $scene = Scene_Title.new return end # If battle is aborted if $game_temp.battle_abort # Return to BGM used before battle started $game_system.bgm_play($game_temp.map_bgm) # Battle ends battle_end(1) return end # If waiting if @wait_count > 0 # Decrease wait count @wait_count -= 1 return end # If battler forcing an action doesn't exist, # and battle event is running if $game_temp.forcing_battler == nil and $game_system.battle_interpreter.running? return end # Branch according to phase case @phase when 1 # pre-battle phase update_phase1 when 2 # party command phase update_phase2 when 3 # actor command phase update_phase3 when 4 # main phase update_phase4 when 5 # after battle phase update_phase5 end end end Scene_Battle2: #============================================================================== # ** Scene_Battle (part 2) #------------------------------------------------------------------------------ # This class performs battle screen processing. #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # * Start Pre-Battle Phase #-------------------------------------------------------------------------- def start_phase1 # Shift to phase 1 @phase = 1 # Clear all party member actions $game_party.clear_actions # Set up battle event setup_battle_event end #-------------------------------------------------------------------------- # * Frame Update (pre-battle phase) #-------------------------------------------------------------------------- def update_phase1 # Determine win/loss situation if judge # If won or lost: end method return end # Start party command phase start_phase2 end #-------------------------------------------------------------------------- # * Start Party Command Phase #-------------------------------------------------------------------------- def start_phase2 # Shift to phase 2 @phase = 2 # Set actor to non-selecting @actor_index = -1 @active_battler = nil # Enable party command window @party_command_window.active = true @party_command_window.visible = true # Disable actor command window @actor_command_window.active = false @actor_command_window.visible = true # Clear main phase flag $game_temp.battle_main_phase = false # Clear all party member actions $game_party.clear_actions # If impossible to input command unless $game_party.inputable? # Start main phase start_phase4 end end #-------------------------------------------------------------------------- # * Frame Update (party command phase) #-------------------------------------------------------------------------- def update_phase2 # If C button was pressed if Input.trigger?(Input::C) # Branch by party command window cursor position case @party_command_window.index when 0 # fight # Play decision SE $game_system.se_play($data_system.decision_se) # Start actor command phase start_phase3 when 1 # escape # If it's not possible to escape if $game_temp.battle_can_escape == false # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # Escape processing update_phase2_escape end return end end #-------------------------------------------------------------------------- # * Frame Update (party command phase: escape) #-------------------------------------------------------------------------- def update_phase2_escape # Calculate enemy agility average enemies_agi = 0 enemies_number = 0 for enemy in $game_troop.enemies if enemy.exist? enemies_agi += enemy.agi enemies_number += 1 end end if enemies_number > 0 enemies_agi /= enemies_number end # Calculate actor agility average actors_agi = 0 actors_number = 0 for actor in $game_party.actors if actor.exist? actors_agi += actor.agi actors_number += 1 end end if actors_number > 0 actors_agi /= actors_number end # Determine if escape is successful success = rand(100) < 50 * actors_agi / enemies_agi # If escape is successful if success # Play escape SE $game_system.se_play($data_system.escape_se) # Return to BGM before battle started $game_system.bgm_play($game_temp.map_bgm) # Battle ends battle_end(1) # If escape is failure else # Clear all party member actions $game_party.clear_actions # Start main phase start_phase4 end end #-------------------------------------------------------------------------- # * Start After Battle Phase #-------------------------------------------------------------------------- def start_phase5 # Shift to phase 5 @phase = 5 # Play battle end ME $game_system.me_play($game_system.battle_end_me) # Return to BGM before battle started $game_system.bgm_play($game_temp.map_bgm) # Initialize EXP, amount of gold, and treasure exp = 0 gold = 0 treasures = [] # Loop for enemy in $game_troop.enemies # If enemy is not hidden unless enemy.hidden # Add EXP and amount of gold obtained exp += enemy.exp gold += enemy.gold # Determine if treasure appears if rand(100) < enemy.treasure_prob if enemy.item_id > 0 treasures.push($data_items[enemy.item_id]) end if enemy.weapon_id > 0 treasures.push($data_weapons[enemy.weapon_id]) end if enemy.armor_id > 0 treasures.push($data_armors[enemy.armor_id]) end end end end # Treasure is limited to a maximum of 6 items treasures = treasures[0..5] # Obtaining EXP for i in 0...$game_party.actors.size actor = $game_party.actors[i] if actor.cant_get_exp? == false last_level = actor.level actor.exp += exp if actor.level > last_level @status_window.level_up(i) end end end # Obtaining gold $game_party.gain_gold(gold) # Obtaining treasure for item in treasures case item when RPG::Item $game_party.gain_item(item.id, 1) when RPG::Weapon $game_party.gain_weapon(item.id, 1) when RPG::Armor $game_party.gain_armor(item.id, 1) end end # Make battle result window @result_window = Window_BattleResult.new(exp, gold, treasures) # Set wait count @phase5_wait_count = 100 end #-------------------------------------------------------------------------- # * Frame Update (after battle phase) #-------------------------------------------------------------------------- def update_phase5 # If wait count is larger than 0 if @phase5_wait_count > 0 # Decrease wait count @phase5_wait_count -= 1 # If wait count reaches 0 if @phase5_wait_count == 0 # Show result window @result_window.visible = true # Clear main phase flag $game_temp.battle_main_phase = false # Refresh status window @status_window.refresh end return end # If C button was pressed if Input.trigger?(Input::C) # Battle ends battle_end(0) end end end Scene_Battle 3 #============================================================================== # ** Scene_Battle (part 3) #------------------------------------------------------------------------------ # This class performs battle screen processing. #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # * Start Actor Command Phase #-------------------------------------------------------------------------- def start_phase3 # Shift to phase 3 @phase = 3 # Set actor as unselectable @actor_index = -1 @active_battler = nil # Go to command input for next actor phase3_next_actor end #-------------------------------------------------------------------------- # * Go to Command Input for Next Actor #-------------------------------------------------------------------------- def phase3_next_actor # Loop begin # Actor blink effect OFF if @active_battler != nil @active_battler.blink = false end # If last actor if @actor_index == $game_party.actors.size-1 # Start main phase start_phase4 return end # Advance actor index @actor_index += 1 @active_battler = $game_party.actors[@actor_index] @active_battler.blink = true # Once more if actor refuses command input end until @active_battler.inputable? # Set up actor command window phase3_setup_command_window end #-------------------------------------------------------------------------- # * Go to Command Input of Previous Actor #-------------------------------------------------------------------------- def phase3_prior_actor # Loop begin # Actor blink effect OFF if @active_battler != nil @active_battler.blink = false end # If first actor if @actor_index == 0 # Start party command phase start_phase2 return end # Return to actor index @actor_index -= 1 @active_battler = $game_party.actors[@actor_index] @active_battler.blink = true # Once more if actor refuses command input end until @active_battler.inputable? # Set up actor command window phase3_setup_command_window end #-------------------------------------------------------------------------- # * Actor Command Window Setup #-------------------------------------------------------------------------- def phase3_setup_command_window # Disable party command window @party_command_window.active = false @party_command_window.visible = false # Enable actor command window @actor_command_window.active = true @actor_command_window.visible = true # Tolgo il posizionamento da qui # @actor_command_window.x = @actor_index * 160 # Set index to 0 @actor_command_window.index = 0 end #-------------------------------------------------------------------------- # * Frame Update (actor command phase) #-------------------------------------------------------------------------- def update_phase3 # If enemy arrow is enabled if @enemy_arrow != nil update_phase3_enemy_select # If actor arrow is enabled elsif @actor_arrow != nil update_phase3_actor_select # If skill window is enabled elsif @skill_window != nil update_phase3_skill_select # If item window is enabled elsif @item_window != nil update_phase3_item_select # If actor command window is enabled elsif @actor_command_window.active update_phase3_basic_command end end #-------------------------------------------------------------------------- # * Frame Update (actor command phase : basic command) #-------------------------------------------------------------------------- def update_phase3_basic_command # If B button was pressed if Input.trigger?(Input:: # Play cancel SE $game_system.se_play($data_system.cancel_se) # Go to command input for previous actor phase3_prior_actor return end # If C button was pressed if Input.trigger?(Input::C) # Branch by actor command window cursor position case @actor_command_window.index when 0 # attack # Play decision SE $game_system.se_play($data_system.decision_se) # Set action @active_battler.current_action.kind = 0 @active_battler.current_action.basic = 0 # Start enemy selection start_enemy_select when 1 # skill # Play decision SE $game_system.se_play($data_system.decision_se) # Set action @active_battler.current_action.kind = 1 # Start skill selection start_skill_select when 2 # guard # Play decision SE $game_system.se_play($data_system.decision_se) # Set action @active_battler.current_action.kind = 0 @active_battler.current_action.basic = 1 # Go to command input for next actor phase3_next_actor when 3 # item # Play decision SE $game_system.se_play($data_system.decision_se) # Set action @active_battler.current_action.kind = 2 # Start item selection start_item_select end return end end #-------------------------------------------------------------------------- # * Frame Update (actor command phase : skill selection) #-------------------------------------------------------------------------- def update_phase3_skill_select # Make skill window visible @skill_window.visible = true # Update skill window @skill_window.update # If B button was pressed if Input.trigger?(Input:: # Play cancel SE $game_system.se_play($data_system.cancel_se) # End skill selection end_skill_select return end # If C button was pressed if Input.trigger?(Input::C) # Get currently selected data on the skill window @skill = @skill_window.skill # If it can't be used if @skill == nil or not @active_battler.skill_can_use?(@skill.id) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # Set action @active_battler.current_action.skill_id = @skill.id # Make skill window invisible @skill_window.visible = false # If effect scope is single enemy if @skill.scope == 1 # Start enemy selection start_enemy_select # If effect scope is single ally elsif @skill.scope == 3 or @skill.scope == 5 # Start actor selection start_actor_select # If effect scope is not single else # End skill selection end_skill_select # Go to command input for next actor phase3_next_actor end return end end #-------------------------------------------------------------------------- # * Frame Update (actor command phase : item selection) #-------------------------------------------------------------------------- def update_phase3_item_select # Make item window visible @item_window.visible = true # Update item window @item_window.update # If B button was pressed if Input.trigger?(Input:: # Play cancel SE $game_system.se_play($data_system.cancel_se) # End item selection end_item_select return end # If C button was pressed if Input.trigger?(Input::C) # Get currently selected data on the item window @item = @item_window.item # If it can't be used unless $game_party.item_can_use?(@item.id) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # Set action @active_battler.current_action.item_id = @item.id # Make item window invisible @item_window.visible = false # If effect scope is single enemy if @item.scope == 1 # Start enemy selection start_enemy_select # If effect scope is single ally elsif @item.scope == 3 or @item.scope == 5 # Start actor selection start_actor_select # If effect scope is not single else # End item selection end_item_select # Go to command input for next actor phase3_next_actor end return end end #-------------------------------------------------------------------------- # * Frame Updat (actor command phase : enemy selection) #-------------------------------------------------------------------------- def update_phase3_enemy_select # Update enemy arrow @enemy_arrow.update # If B button was pressed if Input.trigger?(Input:: # Play cancel SE $game_system.se_play($data_system.cancel_se) # End enemy selection end_enemy_select return end # If C button was pressed if Input.trigger?(Input::C) # Play decision SE $game_system.se_play($data_system.decision_se) # Set action @active_battler.current_action.target_index = @enemy_arrow.index # End enemy selection end_enemy_select # If skill window is showing if @skill_window != nil # End skill selection end_skill_select end # If item window is showing if @item_window != nil # End item selection end_item_select end # Go to command input for next actor phase3_next_actor end end #-------------------------------------------------------------------------- # * Frame Update (actor command phase : actor selection) #-------------------------------------------------------------------------- def update_phase3_actor_select # Update actor arrow @actor_arrow.update # If B button was pressed if Input.trigger?(Input:: # Play cancel SE $game_system.se_play($data_system.cancel_se) # End actor selection end_actor_select return end # If C button was pressed if Input.trigger?(Input::C) # Play decision SE $game_system.se_play($data_system.decision_se) # Set action @active_battler.current_action.target_index = @actor_arrow.index # End actor selection end_actor_select # If skill window is showing if @skill_window != nil # End skill selection end_skill_select end # If item window is showing if @item_window != nil # End item selection end_item_select end # Go to command input for next actor phase3_next_actor end end #-------------------------------------------------------------------------- # * Start Enemy Selection #-------------------------------------------------------------------------- def start_enemy_select # Make enemy arrow @enemy_arrow = Arrow_Enemy.new(@spriteset.viewport1) # Associate help window @enemy_arrow.help_window = @help_window # Disable actor command window @actor_command_window.active = false @actor_command_window.visible = true end #-------------------------------------------------------------------------- # * End Enemy Selection #-------------------------------------------------------------------------- def end_enemy_select # Dispose of enemy arrow @enemy_arrow.dispose @enemy_arrow = nil # If command is [fight] if @actor_command_window.index == 0 # Enable actor command window @actor_command_window.active = true @actor_command_window.visible = true # Hide help window @help_window.visible = false end end #-------------------------------------------------------------------------- # * Start Actor Selection #-------------------------------------------------------------------------- def start_actor_select # Make actor arrow @actor_arrow = Arrow_Actor.new(@spriteset.viewport2) @actor_arrow.index = @actor_index # Associate help window @actor_arrow.help_window = @help_window # Disable actor command window @actor_command_window.active = false @actor_command_window.visible = true end #-------------------------------------------------------------------------- # * End Actor Selection #-------------------------------------------------------------------------- def end_actor_select # Dispose of actor arrow @actor_arrow.dispose @actor_arrow = nil end #-------------------------------------------------------------------------- # * Start Skill Selection #-------------------------------------------------------------------------- def start_skill_select # Make skill window @skill_window = Window_Skill.new(@active_battler) # Associate help window @skill_window.help_window = @help_window # Disable actor command window @actor_command_window.active = false @actor_command_window.visible = true end #-------------------------------------------------------------------------- # * End Skill Selection #-------------------------------------------------------------------------- def end_skill_select # Dispose of skill window @skill_window.dispose @skill_window = nil # Hide help window @help_window.visible = false # Enable actor command window @actor_command_window.active = true @actor_command_window.visible = true end #-------------------------------------------------------------------------- # * Start Item Selection #-------------------------------------------------------------------------- def start_item_select # Make item window @item_window = Window_Item.new # Associate help window @item_window.help_window = @help_window # Disable actor command window @actor_command_window.active = false @actor_command_window.visible = true end #-------------------------------------------------------------------------- # * End Item Selection #-------------------------------------------------------------------------- def end_item_select # Dispose of item window @item_window.dispose @item_window = nil # Hide help window @help_window.visible = false # Enable actor command window @actor_command_window.active = true @actor_command_window.visible = true end end Scene_Battle 4: #============================================================================== # ** Scene_Battle (part 4) #------------------------------------------------------------------------------ # This class performs battle screen processing. #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # * Start Main Phase #-------------------------------------------------------------------------- def start_phase4 # Shift to phase 4 @phase = 4 # Turn count $game_temp.battle_turn += 1 # Search all battle event pages for index in 0...$data_troops[@troop_id].pages.size # Get event page page = $data_troops[@troop_id].pages[index] # If this page span is [turn] if page.span == 1 # Clear action completed flags $game_temp.battle_event_flags[index] = false end end # Set actor as unselectable @actor_index = -1 @active_battler = nil # Enable party command window @party_command_window.active = false @party_command_window.visible = false # Disable actor command window @actor_command_window.active = false @actor_command_window.visible = true # Set main phase flag $game_temp.battle_main_phase = true # Make enemy action for enemy in $game_troop.enemies enemy.make_action end # Make action orders make_action_orders # Shift to step 1 @phase4_step = 1 end #-------------------------------------------------------------------------- # * Make Action Orders #-------------------------------------------------------------------------- def make_action_orders # Initialize @action_battlers array @action_battlers = [] # Add enemy to @action_battlers array for enemy in $game_troop.enemies @action_battlers.push(enemy) end # Add actor to @action_battlers array for actor in $game_party.actors @action_battlers.push(actor) end # Decide action speed for all for battler in @action_battlers battler.make_action_speed end # Line up action speed in order from greatest to least @action_battlers.sort! {|a,b| b.current_action.speed - a.current_action.speed } end #-------------------------------------------------------------------------- # * Frame Update (main phase) #-------------------------------------------------------------------------- def update_phase4 case @phase4_step when 1 update_phase4_step1 when 2 update_phase4_step2 when 3 update_phase4_step3 when 4 update_phase4_step4 when 5 update_phase4_step5 when 6 update_phase4_step6 end end #-------------------------------------------------------------------------- # * Frame Update (main phase step 1 : action preparation) #-------------------------------------------------------------------------- def update_phase4_step1 # Hide help window @help_window.visible = false # Determine win/loss if judge # If won, or if lost : end method return end # If an action forcing battler doesn't exist if $game_temp.forcing_battler == nil # Set up battle event setup_battle_event # If battle event is running if $game_system.battle_interpreter.running? return end end # If an action forcing battler exists if $game_temp.forcing_battler != nil # Add to head, or move @action_battlers.delete($game_temp.forcing_battler) @action_battlers.unshift($game_temp.forcing_battler) end # If no actionless battlers exist (all have performed an action) if @action_battlers.size == 0 # Start party command phase start_phase2 return end # Initialize animation ID and common event ID @animation1_id = 0 @animation2_id = 0 @common_event_id = 0 # Shift from head of actionless battlers @active_battler = @action_battlers.shift # If already removed from battle if @active_battler.index == nil return end # Slip damage if @active_battler.hp > 0 and @active_battler.slip_damage? @active_battler.slip_damage_effect @active_battler.damage_pop = true end # Natural removal of states @active_battler.remove_states_auto # Refresh status window @status_window.refresh # Shift to step 2 @phase4_step = 2 end #-------------------------------------------------------------------------- # * Frame Update (main phase step 2 : start action) #-------------------------------------------------------------------------- def update_phase4_step2 # If not a forcing action unless @active_battler.current_action.forcing # If restriction is [normal attack enemy] or [normal attack ally] if @active_battler.restriction == 2 or @active_battler.restriction == 3 # Set attack as an action @active_battler.current_action.kind = 0 @active_battler.current_action.basic = 0 end # If restriction is [cannot perform action] if @active_battler.restriction == 4 # Clear battler being forced into action $game_temp.forcing_battler = nil # Shift to step 1 @phase4_step = 1 return end end # Clear target battlers @target_battlers = [] # Branch according to each action case @active_battler.current_action.kind when 0 # basic make_basic_action_result when 1 # skill make_skill_action_result when 2 # item make_item_action_result end # Shift to step 3 if @phase4_step == 2 @phase4_step = 3 end end #-------------------------------------------------------------------------- # * Make Basic Action Results #-------------------------------------------------------------------------- def make_basic_action_result # If attack if @active_battler.current_action.basic == 0 # Set anaimation ID @animation1_id = @active_battler.animation1_id @animation2_id = @active_battler.animation2_id # If action battler is enemy if @active_battler.is_a?(Game_Enemy) if @active_battler.restriction == 3 target = $game_troop.random_target_enemy elsif @active_battler.restriction == 2 target = $game_party.random_target_actor else index = @active_battler.current_action.target_index target = $game_party.smooth_target_actor(index) end end # If action battler is actor if @active_battler.is_a?(Game_Actor) if @active_battler.restriction == 3 target = $game_party.random_target_actor elsif @active_battler.restriction == 2 target = $game_troop.random_target_enemy else index = @active_battler.current_action.target_index target = $game_troop.smooth_target_enemy(index) end end # Set array of targeted battlers @target_battlers = [target] # Apply normal attack results for target in @target_battlers target.attack_effect(@active_battler) end return end # If guard if @active_battler.current_action.basic == 1 # Display "Guard" in help window @help_window.set_text($data_system.words.guard, 1) return end # If escape if @active_battler.is_a?(Game_Enemy) and @active_battler.current_action.basic == 2 # Display "Escape" in help window @help_window.set_text("Escape", 1) # Escape @active_battler.escape return end # If doing nothing if @active_battler.current_action.basic == 3 # Clear battler being forced into action $game_temp.forcing_battler = nil # Shift to step 1 @phase4_step = 1 return end end #-------------------------------------------------------------------------- # * Set Targeted Battler for Skill or Item # scope : effect scope for skill or item #-------------------------------------------------------------------------- def set_target_battlers(scope) # If battler performing action is enemy if @active_battler.is_a?(Game_Enemy) # Branch by effect scope case scope when 1 # single enemy index = @active_battler.current_action.target_index @target_battlers.push($game_party.smooth_target_actor(index)) when 2 # all enemies for actor in $game_party.actors if actor.exist? @target_battlers.push(actor) end end when 3 # single ally index = @active_battler.current_action.target_index @target_battlers.push($game_troop.smooth_target_enemy(index)) when 4 # all allies for enemy in $game_troop.enemies if enemy.exist? @target_battlers.push(enemy) end end when 5 # single ally (HP 0) index = @active_battler.current_action.target_index enemy = $game_troop.enemies[index] if enemy != nil and enemy.hp0? @target_battlers.push(enemy) end when 6 # all allies (HP 0) for enemy in $game_troop.enemies if enemy != nil and enemy.hp0? @target_battlers.push(enemy) end end when 7 # user @target_battlers.push(@active_battler) end end # If battler performing action is actor if @active_battler.is_a?(Game_Actor) # Branch by effect scope case scope when 1 # single enemy index = @active_battler.current_action.target_index @target_battlers.push($game_troop.smooth_target_enemy(index)) when 2 # all enemies for enemy in $game_troop.enemies if enemy.exist? @target_battlers.push(enemy) end end when 3 # single ally index = @active_battler.current_action.target_index @target_battlers.push($game_party.smooth_target_actor(index)) when 4 # all allies for actor in $game_party.actors if actor.exist? @target_battlers.push(actor) end end when 5 # single ally (HP 0) index = @active_battler.current_action.target_index actor = $game_party.actors[index] if actor != nil and actor.hp0? @target_battlers.push(actor) end when 6 # all allies (HP 0) for actor in $game_party.actors if actor != nil and actor.hp0? @target_battlers.push(actor) end end when 7 # user @target_battlers.push(@active_battler) end end end #-------------------------------------------------------------------------- # * Make Skill Action Results #-------------------------------------------------------------------------- def make_skill_action_result # Get skill @skill = $data_skills[@active_battler.current_action.skill_id] # If not a forcing action unless @active_battler.current_action.forcing # If unable to use due to SP running out unless @active_battler.skill_can_use?(@skill.id) # Clear battler being forced into action $game_temp.forcing_battler = nil # Shift to step 1 @phase4_step = 1 return end end # Use up SP @active_battler.sp -= @skill.sp_cost # Refresh status window @status_window.refresh # Show skill name on help window @help_window.set_text(@skill.name, 1) # Set animation ID @animation1_id = @skill.animation1_id @animation2_id = @skill.animation2_id # Set command event ID @common_event_id = @skill.common_event_id # Set target battlers set_target_battlers(@skill.scope) # Apply skill effect for target in @target_battlers target.skill_effect(@active_battler, @skill) end end #-------------------------------------------------------------------------- # * Make Item Action Results #-------------------------------------------------------------------------- def make_item_action_result # Get item @item = $data_items[@active_battler.current_action.item_id] # If unable to use due to items running out unless $game_party.item_can_use?(@item.id) # Shift to step 1 @phase4_step = 1 return end # If consumable if @item.consumable # Decrease used item by 1 $game_party.lose_item(@item.id, 1) end # Display item name on help window @help_window.set_text(@item.name, 1) # Set animation ID @animation1_id = @item.animation1_id @animation2_id = @item.animation2_id # Set common event ID @common_event_id = @item.common_event_id # Decide on target index = @active_battler.current_action.target_index target = $game_party.smooth_target_actor(index) # Set targeted battlers set_target_battlers(@item.scope) # Apply item effect for target in @target_battlers target.item_effect(@item) end end #-------------------------------------------------------------------------- # * Frame Update (main phase step 3 : animation for action performer) #-------------------------------------------------------------------------- def update_phase4_step3 # Animation for action performer (if ID is 0, then white flash) if @animation1_id == 0 @active_battler.white_flash = true else @active_battler.animation_id = @animation1_id @active_battler.animation_hit = true end # Shift to step 4 @phase4_step = 4 end #-------------------------------------------------------------------------- # * Frame Update (main phase step 4 : animation for target) #-------------------------------------------------------------------------- def update_phase4_step4 # Animation for target for target in @target_battlers target.animation_id = @animation2_id target.animation_hit = (target.damage != "Miss") end # Animation has at least 8 frames, regardless of its length @wait_count = 8 # Shift to step 5 @phase4_step = 5 end #-------------------------------------------------------------------------- # * Frame Update (main phase step 5 : damage display) #-------------------------------------------------------------------------- def update_phase4_step5 # Hide help window @help_window.visible = false # Refresh status window @status_window.refresh # Display damage for target in @target_battlers if target.damage != nil target.damage_pop = true end end # Shift to step 6 @phase4_step = 6 end #-------------------------------------------------------------------------- # * Frame Update (main phase step 6 : refresh) #-------------------------------------------------------------------------- def update_phase4_step6 # Clear battler being forced into action $game_temp.forcing_battler = nil # If common event ID is valid if @common_event_id > 0 # Set up event common_event = $data_common_events[@common_event_id] $game_system.battle_interpreter.setup(common_event.list, 0) end # Shift to step 1 @phase4_step = 1 end end F.A.Q:Q: Vedo i battlers e uno finisce in fondo ai comandi! A: Dovete andare nel database e levare i battlers dei vostri personaggi. Q: Come diamine si combatte? A: Prima si da la conferma per attaccare il nemico o per scappare e poi diventano attive le finestre di comando. Quando finite di dare i comandi la finestra si "disattiva" ovvero non è possibile spostarsi tra un comando e l'altro ma diventa inusabile fino al turno successivo. Demo: http://www.mediafire.com/download/38k8b4ba27benwv/VXBattleSystem.exe Incompatibilità: Nessuna conosciuta Note dell'autore: Lo script è ad installazione automatica, o lo mettete in un unico script sopra il main e copiate tutto il codice uno sotto l'altro, oppure fate diversi script. In alternativa, aprite la demo e copiate i vari script selezionandoli - copiandoli - incollandoli sul vostro progetto. Purtroppo non sono in grado di fare codici più snelli ma so solo modificare quelli di partenza e le barre non sono mie, chissà che in futuro non mi decida a fare una versione più figa. Le cose che sono state modificate/aggiunte in genere hanno dei commenti in italiano, forse non tutto, ma la cosa funziona come si deve. Se avete domande chiedete pure. Abbiate pazienza è il mio primo script XD.
  17. Titolo: Blizz-ABS Versione: 2.84 Autore/i: Blizzard Informazioni: Questo script vi permetterà di effetuare battaglie direttamente sulla mappa. Degli esempi che usano questo sistema di battaglia,sono: Zelda,Secret of Mana,Diablo,etc etc... Questo ABS ha molte caratteristiche avanzate,ed è molto potente Sta alla vostra personalizzazione per sfruttarlo al massimo... Presenta anche molti add-ons,che pian piano posteremo ^^ Screenshots: Istruzioni: All'interno della demo. N.B:questo ABS,richiede il Microsoft .NET Framework,che potete reperire da QUI Demo: http://downloads.chaos-project.com/scripts/Blizz-ABS%202.84.zip Incompatibilità: 90% compatibile con l'SDK 1.x. 80% compatibile con l'SDK 2.x. Compatibile con ogni CMS.
  18. Nome Script: One-Player Battle System V1.03 Versione: 1.03 Autore/i: Tigurus Fay Informazioni: Una piccola modifica al battle system originale di RMXP. Ottimizzato per funzionare solo con un battler e in una 'prospettiva di spalla'. Istruzioni: Istruzioni e script sono all'interno della demo. Demo: http://www.mediafire.com/?94xj1ccrsrv8qk1 Incompatibilità: Incompatibile con altri tipi di battle system.
  19. Titolo: Kingdom Hearts ABS Versione: N/D Autore/i: Sephiroth Spawn Informazioni: ABS che riprende lo stile di battaglia del famoso Kingdom Hearts Istruzioni: All'interno della Demo Demo: http://www.mediafire.com/?uokhs0g535cac73
  20. 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.
  21. 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
  22. 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
  23. Nome Script: ABS FFXII Versione: N/D Autore/i: RTH Informazioni: Un sistema di battaglia che simula quello di FFXII. Non è ancora completo al 100%,ma c'è già la base su tutto ^^ Screenshots: Istruzioni: All'interno della demo... Demo: ABS FFXII Incompatibilità: Forse con l'SDK. Incompatibile con maggior parte degli script.
  24. Titolo: Chrono Trigger Battle System Versione: 2.0.2, ATB 1.0.0, Add-ons 7.31 Autore/i: Claimh, Blizzard, Naridar Informazioni: Questo script emula il sistema di battaglia come Chrono Trigger... Istruzioni: All'interno della demo. Demo: Chrono Trigger Battle System Font Font Incompatibilità: Incompatibile con gli altri BS(ovvio), e non è stato testato con l'SDK.
×