Alchemy Pot
Descrizione
Questo script simula il pentolone alchemico di Dragon Quest VIII.
Per chi non lo conoscesse il pentolone alchemico permette di "buttare" nel pentolone oggetti per crearne uno nuovo.
Screenshot
Script
<div class="de1"><span class="co1">#==============================================================================</span></div><div class="de1"><span class="co1"># ** Alchemy Pot</span></div><div class="de1"><span class="co1">#------------------------------------------------------------------------------</span></div><div class="de1"><span class="co1"># Autore: The Sleeping Leonhart</span></div><div class="de1"><span class="co1"># Versione: 1.4</span></div><div class="de1"><span class="co1"># Data di rilascio: 10/07/2001</span></div><div class="de1"><span class="co1">#------------------------------------------------------------------------------</span></div><div class="de1"><span class="co1"># Descrizione:</span></div><div class="de1"><span class="co1"># Questo script simula il pentolone alchemico di Dragon Quest VIII.</span></div><div class="de1"><span class="co1"># Per chi non lo conoscesse il pentolone alchemico permette di "buttare"</span></div><div class="de1"><span class="co1"># nel pentolone oggetti per crearne uno nuovo.</span></div><div class="de1"><span class="co1">#------------------------------------------------------------------------------</span></div><div class="de1"><span class="co1"># Version:</span></div><div class="de1"><span class="co1"># 1.0 (07/10/2008): Versione Base.</span></div><div class="de1"><span class="co1"># 1.1 (06/12/2008): Aggiunta l'opzione Failure Item.</span></div><div class="de1"><span class="co1"># 1.2 (08/12/2008): Ora si possono vedere immediatamente i risultati.</span></div><div class="de1"><span class="co1"># 1.3 (09/12/2008): Aggiunto un time meter.</span></div><div class="de1"><span class="co1"># Aggiunto un filtro per gli oggetti inusabili.</span></div><div class="de1"><span class="co1"># 1.4 (10/07/2010): Bugfix.</span></div><div class="de1"><span class="co1">#------------------------------------------------------------------------------</span></div><div class="de1"><span class="co1"># Istruzioni:</span></div><div class="de1"><span class="co1"># Per chiamare il pentolone usate il comando script degli eventi ed inserite:</span></div><div class="de1"><span class="co1"># $scene = Scene_AlchemyPot.new</span></div><div class="de1"><span class="co1"># Premere A per passare dalla finestra di conferma a quella degli oggetti e viceversa.</span></div><div class="de1"><span class="co1"># Per personalizzare lo script andate nella sezione Configurazione e Vocabolario.</span></div><div class="de1"><span class="co1">#==============================================================================</span></div><div class="de1"> </div><div class="de1"><span class="co1">#==============================================================================</span></div><div class="de1"><span class="co1"># Configuration</span></div><div class="de1"><span class="co1">#=============================================================================</span></div><div class="de1"><span class="kw1">module</span> AlchemyPot</div><div class="de1"> <span class="co1">#=====NON TOCCARE=========================================================</span></div><div class="de1"> i = load_data<span class="br0">(</span><span class="st0">"Data/Items.rvdata"</span><span class="br0">)</span></div><div class="de1"> w = load_data<span class="br0">(</span><span class="st0">"Data/Weapons.rvdata"</span><span class="br0">)</span></div><div class="de1"> a = load_data<span class="br0">(</span><span class="st0">"Data/Armors.rvdata"</span><span class="br0">)</span></div><div class="de1"> <span class="co1">#=========================================================================</span></div><div class="de1"> </div><div class="de1"> <span class="co1">#=========================================================================</span></div><div class="de1"> <span class="co1"># Formula: Imposta le formule del pentolone.</span></div><div class="de1"> <span class="co1">#-------------------------------------------------------------------------</span></div><div class="de1"> <span class="co1"># Sintassi:</span></div><div class="de1"> <span class="co1"># Formula[iId1, ...] = [iId2, time]</span></div><div class="de1"> <span class="co1"># Parametri:</span></div><div class="de1"> <span class="co1"># iId1: id degli ingredienti, usate i[id] per gli oggetti, w[id] per le armi,</span></div><div class="de1"> <span class="co1"># a[id] per le armature. id č il numero dell'oggetto nel database.</span></div><div class="de1"> <span class="co1"># iId2: id dell'oggetto ottenuto, usate i[id] per gli oggetti, w[id] per le armi,</span></div><div class="de1"> <span class="co1"># a[id] per le armature. id č il numero dell'oggetto nel database.</span></div><div class="de1"> <span class="co1"># time: numero di minuti richiesti per la ricetta.</span></div><div class="de1"> <span class="co1">#=========================================================================</span></div><div class="de1"> Formula = <span class="br0">{</span><span class="br0">}</span></div><div class="de1"> Formula<span class="br0">[</span><span class="br0">[</span>i<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span>, i<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span><span class="br0">]</span><span class="br0">]</span> = <span class="br0">[</span>i<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span>, <span class="nu0">1</span><span class="br0">]</span></div><div class="de1"> Formula<span class="br0">[</span><span class="br0">[</span>i<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span>, w<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span><span class="br0">]</span><span class="br0">]</span> = <span class="br0">[</span>w<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span>, <span class="nu0">2</span><span class="br0">]</span></div><div class="de1"> Formula<span class="br0">[</span><span class="br0">[</span>a<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span>, w<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span><span class="br0">]</span><span class="br0">]</span> = <span class="br0">[</span>a<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span>, <span class="nu0">4</span><span class="br0">]</span></div><div class="de1"> <span class="co1">#=========================================================================</span></div><div class="de1"> <span class="co1"># UnusableItem: Definisce gli oggetti che non possono essere messi nel pentolone</span></div><div class="de1"> <span class="co1">#-------------------------------------------------------------------------</span></div><div class="de1"> <span class="co1"># Sintax:</span></div><div class="de1"> <span class="co1"># UnusableItem = [iId, ...]</span></div><div class="de1"> <span class="co1"># Parameter:</span></div><div class="de1"> <span class="co1"># iId: id degli ingredienti, usate i[id] per gli oggetti, w[id] per le armi,</span></div><div class="de1"> <span class="co1"># a[id] per le armature. id č il numero dell'oggetto nel database.</span></div><div class="de1"> <span class="co1">#=========================================================================</span></div><div class="de1"> UnusableItem = <span class="br0">[</span>i<span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span>, w<span class="br0">[</span><span class="nu0">5</span><span class="br0">]</span>, a<span class="br0">[</span><span class="nu0">4</span><span class="br0">]</span><span class="br0">]</span></div><div class="de1"> <span class="co1">#=========================================================================</span></div><div class="de1"> <span class="co1"># MaxItem: Numero massimo di oggetti inserbili nel pentolone.</span></div><div class="de1"> <span class="co1">#-------------------------------------------------------------------------</span></div><div class="de1"> <span class="co1"># Sintassi:</span></div><div class="de1"> <span class="co1"># MaxItem = n</span></div><div class="de1"> <span class="co1"># Parametri:</span></div><div class="de1"> <span class="co1"># n: Numero massimo di oggetti inserbili nel pentolone.</span></div><div class="de1"> <span class="co1">#=========================================================================</span></div><div class="de1"> MaxItem = <span class="nu0">5</span></div><div class="de1"> <span class="co1">#=========================================================================</span></div><div class="de1"> <span class="co1"># FailureItem: Imposta gli ogetti ottenuti se si sbaglia formula</span></div><div class="de1"> <span class="co1">#-------------------------------------------------------------------------</span></div><div class="de1"> <span class="co1"># Sintassi:</span></div><div class="de1"> <span class="co1"># FailureItem = [iId, ...]</span></div><div class="de1"> <span class="co1"># Parametri:</span></div><div class="de1"> <span class="co1"># iId: id dell'oggetto ottenuto, usate i[id] per gli oggetti, w[id] per le armi,</span></div><div class="de1"> <span class="co1"># a[id] per le armature. id č il numero dell'oggetto nel database.</span></div><div class="de1"> <span class="co1">#=========================================================================</span></div><div class="de1"> FailureItem = <span class="br0">[</span>i<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span>, w<span class="br0">[</span><span class="nu0">4</span><span class="br0">]</span>, a<span class="br0">[</span><span class="nu0">5</span><span class="br0">]</span><span class="br0">]</span></div><div class="de1"> <span class="co1">#=========================================================================</span></div><div class="de1"> <span class="co1"># FailureTime: Imposta il tempo per creare l'oggetto sbagliato</span></div><div class="de1"> <span class="co1">#-------------------------------------------------------------------------</span></div><div class="de1"> <span class="co1"># Sintassi:</span></div><div class="de1"> <span class="co1"># FailureItem = time</span></div><div class="de1"> <span class="co1"># Parametri:</span></div><div class="de1"> <span class="co1"># time: numero di minuti richiesti per la ricetta.</span></div><div class="de1"> <span class="co1">#=========================================================================</span></div><div class="de1"> FailureTime = <span class="nu0">1</span></div><div class="de1"> <span class="co1">#=========================================================================</span></div><div class="de1"> <span class="co1"># TimeMeter: Imposta le immagini per la barra del tempo</span></div><div class="de1"> <span class="co1">#-------------------------------------------------------------------------</span></div><div class="de1"> <span class="co1"># Sintassi:</span></div><div class="de1"> <span class="co1"># TimeMeter = [emptymeter, fullmeter] o nil</span></div><div class="de1"> <span class="co1"># Parametri:</span></div><div class="de1"> <span class="co1"># emptymeter = picture che rappresenta la barra del tempo vuota</span></div><div class="de1"> <span class="co1"># fullmeter = picture che rappresenta la barra del tempo piena</span></div><div class="de1"> <span class="co1"># nil = mettere nil per non visualizzare la barra del tempo</span></div><div class="de1"> <span class="co1">#=========================================================================</span></div><div class="de1"> TimeMeter = <span class="kw2">nil</span></div><div class="de1"><span class="kw1">end</span></div><div class="de1"> </div><div class="de1"><span class="co1">#==============================================================================</span></div><div class="de1"><span class="co1"># Vocabolario</span></div><div class="de1"><span class="co1">#=============================================================================</span></div><div class="de1"><span class="kw1">module</span> Vocab</div><div class="de1"> <span class="co1">#Pulsante di Conferma</span></div><div class="de1"> AlchemyPotGo = <span class="st0">"Avvia"</span></div><div class="de1"> <span class="co1">#Pulsante di uscita</span></div><div class="de1"> AlchemyPotExit = <span class="st0">"Esci"</span></div><div class="de1"> <span class="co1">#Formula Corretta</span></div><div class="de1"> AlchemyPotRightFormula = <span class="st0">"Credo che possa funzionare!"</span></div><div class="de1"> <span class="co1">#Formula Inesistente</span></div><div class="de1"> AlchemyPotWrongFormula = <span class="st0">"Non credo che possa funzionare!"</span></div><div class="de1"> <span class="co1">#Ricetta Terminata</span></div><div class="de1"> AlchemyPotFormulaFinished = <span class="st0">"La ricetta č pronta!"</span></div><div class="de1"> <span class="co1">#Ricetta non Terminata</span></div><div class="de1"> AlchemyPotFormulaNotFinished = <span class="st0">"La ricetta non č ancora pronta!"</span></div><div class="de1"> <span class="co1">#Oggetto ottenuto</span></div><div class="de1"> AlchemyPotObtained = <span class="st0">"Hai ottenuto:"</span></div><div class="de1"><span class="kw1">end</span></div><div class="de1"> </div><div class="de1"><span class="kw1">class</span> Game_Party</div><div class="de1"> attr_accessor <span class="re3">:alchemy_pot</span></div><div class="de1"> <span class="kw1">alias</span> tslalchemypot_gameparty_initialize initialize</div><div class="de1"> <span class="kw1">def</span> initialize</div><div class="de1"> tslalchemypot_gameparty_initialize</div><div class="de1"> <span class="re1">@alchemy_pot</span> = <span class="br0">[</span><span class="br0">]</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"><span class="kw1">end</span></div><div class="de1"> </div><div class="de1"><span class="kw1">class</span> Window_Base</div><div class="de1"> <span class="kw1">def</span> draw_graphical_bar<span class="br0">(</span>x, y, barravuota, barrapiena, corrente, max<span class="br0">)</span></div><div class="de1"> barra_vuota = Bitmap.<span class="me1">new</span><span class="br0">(</span><span class="st0">"Graphics/Pictures/"</span><span class="sy0">+</span>barravuota<span class="br0">)</span></div><div class="de1"> barra_piena = Bitmap.<span class="me1">new</span><span class="br0">(</span><span class="st0">"Graphics/Pictures/"</span><span class="sy0">+</span>barrapiena<span class="br0">)</span></div><div class="de1"> taglio = corrente.<span class="me1">to_f</span> <span class="sy0">/</span> max.<span class="me1">to_f</span></div><div class="de1"> cwp = barra_piena.<span class="me1">width</span></div><div class="de1"> cwv = barra_vuota.<span class="me1">width</span></div><div class="de1"> chp = barra_piena.<span class="me1">height</span></div><div class="de1"> chv = barra_vuota.<span class="me1">height</span></div><div class="de1"> taglio = taglio<span class="sy0">*</span>cwp</div><div class="de1"> src_rect = Rect.<span class="me1">new</span><span class="br0">(</span><span class="nu0">0</span>, <span class="nu0">0</span>, taglio, chp<span class="br0">)</span></div><div class="de1"> <span class="kw2">self</span>.<span class="me1">contents</span>.<span class="me1">blt</span><span class="br0">(</span><span class="nu0">32</span><span class="sy0">+</span>x<span class="sy0">-</span>cwp<span class="sy0">/</span><span class="nu0">4</span>, <span class="nu0">18</span><span class="sy0">+</span>y<span class="sy0">-</span>chp<span class="sy0">/</span><span class="nu0">2</span>, barra_piena, src_rect<span class="br0">)</span></div><div class="de1"> src_rect = Rect.<span class="me1">new</span><span class="br0">(</span>taglio, <span class="nu0">0</span>, cwv<span class="sy0">-</span>taglio, chv<span class="br0">)</span></div><div class="de1"> <span class="kw2">self</span>.<span class="me1">contents</span>.<span class="me1">blt</span><span class="br0">(</span><span class="nu0">32</span><span class="sy0">+</span>x<span class="sy0">-</span>cwv<span class="sy0">/</span><span class="nu0">4</span><span class="sy0">+</span>taglio, <span class="nu0">18</span><span class="sy0">+</span>y<span class="sy0">-</span>chv<span class="sy0">/</span><span class="nu0">2</span>, barra_vuota, src_rect<span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"><span class="kw1">end</span></div><div class="de1"> </div><div class="de1"><span class="kw1">class</span> Window_AlchemyPotItem <span class="sy0"><</span> Window_Selectable</div><div class="de1"> <span class="kw1">def</span> initialize</div><div class="de1"> <span class="kw1">super</span><span class="br0">(</span><span class="nu0">32</span>, <span class="nu0">80</span>, <span class="nu0">292</span>, <span class="nu0">292</span><span class="br0">)</span></div><div class="de1"> <span class="re1">@column_max</span> = <span class="nu0">10</span></div><div class="de1"> <span class="kw2">self</span>.<span class="me1">index</span> = <span class="nu0">0</span></div><div class="de1"> refresh</div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">def</span> item</div><div class="de1"> <span class="kw2">return</span> <span class="re1">@data</span><span class="br0">[</span><span class="kw2">self</span>.<span class="me1">index</span><span class="br0">]</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">def</span> <span class="kw1">include</span>?<span class="br0">(</span>item<span class="br0">)</span></div><div class="de1"> <span class="kw2">return</span> <span class="kw2">false</span> <span class="kw1">if</span> item == <span class="kw2">nil</span></div><div class="de1"> <span class="kw1">if</span> <span class="re0">$game_temp</span>.<span class="me1">in_battle</span></div><div class="de1"> <span class="kw2">return</span> <span class="kw2">false</span> <span class="kw1">unless</span> item.<span class="me1">is_a</span>?<span class="br0">(</span><span class="re2">RPG::Item</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw2">return</span> <span class="kw2">true</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">def</span> item_rect<span class="br0">(</span>index<span class="br0">)</span></div><div class="de1"> rect = Rect.<span class="me1">new</span><span class="br0">(</span><span class="nu0">0</span>, <span class="nu0">0</span>, <span class="nu0">0</span>, <span class="nu0">0</span><span class="br0">)</span></div><div class="de1"> rect.<span class="me1">width</span> = <span class="nu0">24</span></div><div class="de1"> rect.<span class="me1">height</span> = <span class="nu0">24</span></div><div class="de1"> rect.<span class="me1">x</span> = index <span class="sy0">%</span> <span class="re1">@column_max</span> <span class="sy0">*</span> <span class="nu0">26</span></div><div class="de1"> rect.<span class="me1">y</span> = index <span class="sy0">/</span> <span class="re1">@column_max</span> <span class="sy0">*</span> <span class="nu0">26</span></div><div class="de1"> <span class="kw2">return</span> rect</div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">def</span> enable?<span class="br0">(</span>item<span class="br0">)</span></div><div class="de1"> <span class="kw2">return</span> <span class="re0">$game_party</span>.<span class="me1">item_can_use</span>?<span class="br0">(</span>item<span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">def</span> refresh</div><div class="de1"> <span class="re1">@data</span> = <span class="br0">[</span><span class="br0">]</span></div><div class="de1"> <span class="kw1">for</span> item <span class="kw1">in</span> <span class="re0">$game_party</span>.<span class="me1">items</span></div><div class="de1"> <span class="kw1">next</span> <span class="kw1">unless</span> <span class="kw1">include</span>?<span class="br0">(</span>item<span class="br0">)</span></div><div class="de1"> <span class="re1">@data</span>.<span class="me1">push</span><span class="br0">(</span>item<span class="br0">)</span> <span class="kw1">if</span> check<span class="br0">(</span>item<span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="re1">@data</span>.<span class="me1">push</span><span class="br0">(</span><span class="kw2">nil</span><span class="br0">)</span> <span class="kw1">if</span> <span class="kw1">include</span>?<span class="br0">(</span><span class="kw2">nil</span><span class="br0">)</span></div><div class="de1"> <span class="re1">@item_max</span> = <span class="re1">@data</span>.<span class="me1">size</span></div><div class="de1"> create_contents</div><div class="de1"> <span class="kw1">for</span> i <span class="kw1">in</span> 0...@item_max</div><div class="de1"> draw_item<span class="br0">(</span>i<span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">def</span> draw_item<span class="br0">(</span>index<span class="br0">)</span></div><div class="de1"> rect = item_rect<span class="br0">(</span>index<span class="br0">)</span></div><div class="de1"> <span class="kw2">self</span>.<span class="me1">contents</span>.<span class="me1">clear_rect</span><span class="br0">(</span>rect<span class="br0">)</span></div><div class="de1"> item = <span class="re1">@data</span><span class="br0">[</span>index<span class="br0">]</span></div><div class="de1"> <span class="kw1">if</span> item != <span class="kw2">nil</span></div><div class="de1"> number = <span class="re0">$game_party</span>.<span class="me1">item_number</span><span class="br0">(</span>item<span class="br0">)</span></div><div class="de1"> x = index <span class="sy0">%</span> <span class="re1">@column_max</span> <span class="sy0">*</span> <span class="nu0">26</span></div><div class="de1"> y = index <span class="sy0">/</span> <span class="re1">@column_max</span> <span class="sy0">*</span> <span class="nu0">26</span></div><div class="de1"> draw_icon<span class="br0">(</span>item.<span class="me1">icon_index</span>, x, y<span class="br0">)</span></div><div class="de1"> <span class="kw2">self</span>.<span class="me1">contents</span>.<span class="me1">font</span>.<span class="me1">size</span> = <span class="nu0">12</span></div><div class="de1"> <span class="kw2">self</span>.<span class="me1">contents</span>.<span class="me1">draw_text</span><span class="br0">(</span><span class="nu0">10</span> <span class="sy0">+</span> x, <span class="nu0">6</span> <span class="sy0">+</span> y, <span class="nu0">24</span>, <span class="nu0">24</span>, number.<span class="me1">to_s</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">def</span> update_help</div><div class="de1"> <span class="re1">@help_window</span>.<span class="me1">set_text</span><span class="br0">(</span>item == <span class="kw2">nil</span> ? <span class="st0">""</span> : item.<span class="me1">name</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">def</span> check<span class="br0">(</span>item<span class="br0">)</span></div><div class="de1"> <span class="kw1">for</span> i <span class="kw1">in</span> <span class="re2">AlchemyPot::UnusableItem</span></div><div class="de1"> <span class="kw1">if</span> i.<span class="me1">id</span> == item.<span class="me1">id</span> <span class="kw1">and</span> i.<span class="kw1">class</span> == item.<span class="kw1">class</span></div><div class="de1"> <span class="kw2">return</span> <span class="kw2">false</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw2">return</span> <span class="kw2">true</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"><span class="kw1">end</span></div><div class="de1"> </div><div class="de1"><span class="kw1">class</span> Window_AlchemyPotPot <span class="sy0"><</span> Window_Base</div><div class="de1"> <span class="kw1">def</span> initialize</div><div class="de1"> <span class="kw1">super</span><span class="br0">(</span><span class="nu0">454</span>, <span class="nu0">80</span>, <span class="nu0">26</span> <span class="sy0">+</span> <span class="nu0">32</span>, <span class="nu0">26</span> <span class="sy0">*</span> <span class="re2">AlchemyPot::MaxItem</span> <span class="sy0">+</span> <span class="nu0">32</span><span class="br0">)</span></div><div class="de1"> refresh</div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">def</span> refresh<span class="br0">(</span>pot = <span class="br0">[</span><span class="br0">]</span><span class="br0">)</span> </div><div class="de1"> <span class="kw2">self</span>.<span class="me1">contents</span>.<span class="me1">clear</span></div><div class="de1"> <span class="re1">@data</span> = pot.<span class="me1">clone</span></div><div class="de1"> <span class="re1">@data</span>.<span class="me1">push</span><span class="br0">(</span><span class="kw2">nil</span><span class="br0">)</span> <span class="kw1">if</span> <span class="re1">@data</span> == <span class="br0">[</span><span class="br0">]</span></div><div class="de1"> <span class="re1">@item_max</span> = <span class="re1">@data</span>.<span class="me1">size</span></div><div class="de1"> create_contents</div><div class="de1"> <span class="kw1">for</span> i <span class="kw1">in</span> 0...@item_max</div><div class="de1"> draw_item<span class="br0">(</span>i<span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">def</span> draw_item<span class="br0">(</span>index<span class="br0">)</span></div><div class="de1"> item = <span class="re1">@data</span><span class="br0">[</span>index<span class="br0">]</span></div><div class="de1"> <span class="kw1">if</span> item != <span class="kw2">nil</span></div><div class="de1"> y = index <span class="sy0">*</span> <span class="nu0">26</span></div><div class="de1"> draw_icon<span class="br0">(</span>item.<span class="me1">icon_index</span>, <span class="nu0">0</span>, y<span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"><span class="kw1">end</span></div><div class="de1"> </div><div class="de1"><span class="kw1">class</span> Window_AlchemyPotResult <span class="sy0"><</span> Window_Base</div><div class="de1"> <span class="kw1">def</span> initialize</div><div class="de1"> <span class="kw1">super</span><span class="br0">(</span><span class="nu0">0</span>, <span class="nu0">180</span>, <span class="nu0">272</span>, WLH <span class="sy0">+</span> <span class="nu0">32</span><span class="br0">)</span></div><div class="de1"> <span class="kw2">self</span>.<span class="me1">width</span> = <span class="br0">[</span><span class="kw2">self</span>.<span class="me1">contents</span>.<span class="me1">text_size</span><span class="br0">(</span><span class="re2">Vocab::AlchemyPotObtained</span><span class="br0">)</span>.<span class="me1">width</span> <span class="sy0">+</span> <span class="nu0">192</span>, <span class="nu0">544</span><span class="br0">]</span>.<span class="me1">min</span></div><div class="de1"> <span class="kw2">self</span>.<span class="me1">x</span> = <span class="nu0">272</span> <span class="sy0">-</span> <span class="kw2">self</span>.<span class="me1">width</span> <span class="sy0">/</span> <span class="nu0">2</span></div><div class="de1"> create_contents</div><div class="de1"> refresh</div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">def</span> refresh<span class="br0">(</span>item = <span class="kw2">nil</span><span class="br0">)</span></div><div class="de1"> <span class="kw2">self</span>.<span class="me1">contents</span>.<span class="me1">clear</span></div><div class="de1"> <span class="kw2">self</span>.<span class="me1">contents</span>.<span class="me1">font</span>.<span class="me1">color</span> = normal_color</div><div class="de1"> <span class="kw2">self</span>.<span class="me1">contents</span>.<span class="me1">draw_text</span><span class="br0">(</span><span class="nu0">0</span>, <span class="nu0">0</span>, <span class="kw2">self</span>.<span class="me1">width</span> <span class="sy0">-</span> <span class="nu0">40</span>, WLH, <span class="re2">Vocab::AlchemyPotObtained</span><span class="br0">)</span></div><div class="de1"> draw_item_name<span class="br0">(</span>item, <span class="kw2">self</span>.<span class="me1">contents</span>.<span class="me1">text_size</span><span class="br0">(</span><span class="re2">Vocab::AlchemyPotObtained</span><span class="br0">)</span>.<span class="me1">width</span> <span class="sy0">+</span> <span class="nu0">2</span>, <span class="nu0">0</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"><span class="kw1">end</span></div><div class="de1"> </div><div class="de1"><span class="kw1">class</span> Window_PotTimeMeter <span class="sy0"><</span> Window_Base</div><div class="de1"> <span class="kw1">def</span> initialize<span class="br0">(</span>a = <span class="nu0">0</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">super</span><span class="br0">(</span><span class="nu0">180</span>, <span class="nu0">360</span>, <span class="nu0">192</span>, <span class="nu0">64</span><span class="br0">)</span></div><div class="de1"> <span class="kw2">self</span>.<span class="me1">contents</span> = Bitmap.<span class="me1">new</span><span class="br0">(</span>width <span class="sy0">-</span> <span class="nu0">32</span>, height <span class="sy0">-</span> <span class="nu0">32</span><span class="br0">)</span></div><div class="de1"> <span class="kw2">self</span>.<span class="me1">opacity</span> = <span class="nu0">0</span></div><div class="de1"> refresh<span class="br0">(</span>a<span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">def</span> refresh<span class="br0">(</span>a<span class="br0">)</span></div><div class="de1"> <span class="kw1">if</span> <span class="re2">AlchemyPot::TimeMeter</span> != <span class="kw2">nil</span></div><div class="de1"> <span class="kw2">self</span>.<span class="me1">contents</span>.<span class="me1">clear</span></div><div class="de1"> a = <span class="nu0">0</span> <span class="kw1">if</span> a == <span class="kw2">nil</span></div><div class="de1"> b = <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span></div><div class="de1"> b = <span class="br0">(</span>Graphics.<span class="me1">frame_count</span> <span class="sy0">-</span> a<span class="br0">)</span> <span class="sy0">*</span> <span class="nu0">100</span> <span class="kw1">if</span> b == <span class="kw2">nil</span></div><div class="de1"> draw_graphical_bar<span class="br0">(</span><span class="nu0">0</span>, <span class="nu0">0</span>, <span class="re2">AlchemyPot::TimeMeter</span><span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>, <span class="re2">AlchemyPot::TimeMeter</span><span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span>, Graphics.<span class="me1">frame_count</span><span class="sy0">-</span>a, b<span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"><span class="kw1">end</span></div><div class="de1"> </div><div class="de1"><span class="kw1">class</span> Scene_AlchemyPot <span class="sy0"><</span> Scene_Base</div><div class="de1"> <span class="kw1">def</span> start</div><div class="de1"> <span class="kw1">super</span></div><div class="de1"> create_menu_background</div><div class="de1"> create_command_window</div><div class="de1"> <span class="re1">@help_window</span> = Window_Help.<span class="me1">new</span></div><div class="de1"> <span class="re1">@item_window</span> = Window_AlchemyPotItem.<span class="me1">new</span></div><div class="de1"> <span class="re1">@item_window</span>.<span class="me1">help_window</span> = <span class="re1">@help_window</span></div><div class="de1"> <span class="re1">@pot_window</span> = Window_AlchemyPotPot.<span class="me1">new</span></div><div class="de1"> <span class="re1">@result_window</span> = Window_AlchemyPotResult.<span class="me1">new</span></div><div class="de1"> <span class="re1">@result_window</span>.<span class="me1">visible</span> = <span class="kw2">false</span></div><div class="de1"> <span class="re1">@meter</span> = Window_PotTimeMeter.<span class="me1">new</span><span class="br0">(</span>$game_party.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span><span class="br0">)</span></div><div class="de1"> <span class="re1">@ready</span> = <span class="kw2">false</span></div><div class="de1"> <span class="kw1">if</span> <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span> != <span class="br0">[</span><span class="br0">]</span></div><div class="de1"> <span class="kw1">if</span> <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span><span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span> == <span class="st0">"Wrong"</span></div><div class="de1"> <span class="re1">@ingredients</span> = <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span><span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span>.<span class="me1">clone</span></div><div class="de1"> item = <span class="re2">AlchemyPot::FailureItem</span><span class="br0">[</span><span class="kw3">rand</span><span class="br0">(</span><span class="re2">AlchemyPot::FailureItem</span>.<span class="me1">size</span><span class="br0">)</span><span class="br0">]</span></div><div class="de1"> <span class="kw1">else</span></div><div class="de1"> <span class="re1">@ingredients</span> = <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">clone</span></div><div class="de1"> item = <span class="re2">AlchemyPot::Formula</span><span class="br0">[</span>find_recipe<span class="br0">(</span>@ingredients<span class="br0">)</span><span class="br0">]</span><span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="re1">@pot_window</span>.<span class="me1">refresh</span><span class="br0">(</span>@ingredients<span class="br0">)</span> </div><div class="de1"> <span class="re1">@item_window</span>.<span class="me1">active</span> = <span class="kw2">false</span></div><div class="de1"> <span class="kw1">if</span> Graphics.<span class="me1">frame_count</span> <span class="sy0">-</span> <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span> <span class="sy0">></span>= <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span></div><div class="de1"> <span class="re1">@help_window</span>.<span class="me1">set_text</span><span class="br0">(</span><span class="re2">Vocab::AlchemyPotFormulaFinished</span><span class="br0">)</span></div><div class="de1"> <span class="re0">$game_party</span>.<span class="me1">gain_item</span><span class="br0">(</span>item, <span class="nu0">1</span><span class="br0">)</span></div><div class="de1"> <span class="re1">@result_window</span>.<span class="me1">refresh</span><span class="br0">(</span>item<span class="br0">)</span></div><div class="de1"> <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span> = <span class="br0">[</span><span class="br0">]</span></div><div class="de1"> <span class="re1">@ready</span> = <span class="kw2">true</span></div><div class="de1"> <span class="kw1">else</span></div><div class="de1"> <span class="re1">@help_window</span>.<span class="me1">set_text</span><span class="br0">(</span><span class="re2">Vocab::AlchemyPotFormulaNotFinished</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">else</span></div><div class="de1"> <span class="re1">@ingredients</span> = <span class="br0">[</span><span class="br0">]</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> </div><div class="de1"> <span class="kw1">def</span> terminate</div><div class="de1"> <span class="kw1">super</span></div><div class="de1"> dispose_menu_background</div><div class="de1"> dispose_command_window</div><div class="de1"> <span class="re1">@help_window</span>.<span class="me1">dispose</span></div><div class="de1"> <span class="re1">@item_window</span>.<span class="me1">dispose</span></div><div class="de1"> <span class="re1">@pot_window</span>.<span class="me1">dispose</span></div><div class="de1"> <span class="re1">@meter</span>.<span class="me1">dispose</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> </div><div class="de1"> <span class="kw1">def</span> update</div><div class="de1"> <span class="kw1">super</span></div><div class="de1"> update_menu_background</div><div class="de1"> <span class="re1">@help_window</span>.<span class="me1">update</span></div><div class="de1"> <span class="re1">@command_window</span>.<span class="me1">update</span></div><div class="de1"> <span class="re1">@item_window</span>.<span class="me1">update</span></div><div class="de1"> <span class="re1">@pot_window</span>.<span class="me1">update</span></div><div class="de1"> <span class="re1">@meter</span>.<span class="me1">update</span></div><div class="de1"> <span class="kw1">if</span> <span class="re1">@command_window</span>.<span class="me1">active</span></div><div class="de1"> update_command_selection</div><div class="de1"> <span class="kw1">elsif</span> <span class="re1">@item_window</span>.<span class="me1">active</span></div><div class="de1"> update_item_selection</div><div class="de1"> <span class="kw1">elsif</span> <span class="re1">@ready</span> <span class="kw1">and</span> <span class="re1">@result_window</span>.<span class="me1">visible</span> == <span class="kw2">false</span></div><div class="de1"> <span class="kw1">if</span> Input.<span class="me1">trigger</span>?<span class="br0">(</span><span class="re2">Input::C</span><span class="br0">)</span></div><div class="de1"> Sound.<span class="me1">play_decision</span></div><div class="de1"> <span class="re1">@result_window</span>.<span class="me1">visible</span> = <span class="kw2">true</span></div><div class="de1"> <span class="kw2">return</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">elsif</span> <span class="re1">@result_window</span>.<span class="me1">visible</span></div><div class="de1"> <span class="kw1">if</span> Input.<span class="me1">trigger</span>?<span class="br0">(</span><span class="re2">Input::C</span><span class="br0">)</span> </div><div class="de1"> Sound.<span class="me1">play_decision</span></div><div class="de1"> <span class="re1">@ingredients</span> = <span class="br0">[</span><span class="br0">]</span></div><div class="de1"> <span class="re1">@ready</span> = <span class="kw2">false</span></div><div class="de1"> <span class="re1">@result_window</span>.<span class="me1">visible</span> = <span class="kw2">false</span></div><div class="de1"> <span class="re1">@item_window</span>.<span class="me1">active</span> = <span class="kw2">true</span></div><div class="de1"> <span class="re1">@item_window</span>.<span class="me1">refresh</span></div><div class="de1"> <span class="re1">@pot_window</span>.<span class="me1">refresh</span></div><div class="de1"> <span class="kw2">return</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">else</span></div><div class="de1"> <span class="kw1">if</span> Input.<span class="me1">trigger</span>?<span class="br0">(</span><span class="re2">Input::C</span><span class="br0">)</span> </div><div class="de1"> Sound.<span class="me1">play_decision</span></div><div class="de1"> <span class="re0">$scene</span> = Scene_Map.<span class="me1">new</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">if</span> <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span> != <span class="kw2">nil</span></div><div class="de1"> <span class="re1">@meter</span>.<span class="me1">refresh</span><span class="br0">(</span>$game_party.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">if</span> Graphics.<span class="me1">frame_count</span> <span class="sy0">-</span> <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span> <span class="sy0">></span>= <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span></div><div class="de1"> <span class="re0">$scene</span> = Scene_AlchemyPot.<span class="me1">new</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> </div><div class="de1"> <span class="kw1">def</span> create_command_window</div><div class="de1"> s1 = <span class="re2">Vocab::AlchemyPotGo</span></div><div class="de1"> s2 = <span class="re2">Vocab::AlchemyPotExit</span></div><div class="de1"> <span class="re1">@command_window</span> = Window_Command.<span class="me1">new</span><span class="br0">(</span><span class="nu0">96</span>, <span class="br0">[</span>s1, s2<span class="br0">]</span><span class="br0">)</span></div><div class="de1"> <span class="re1">@command_window</span>.<span class="me1">active</span> = <span class="kw2">false</span></div><div class="de1"> <span class="re1">@command_window</span>.<span class="me1">x</span> = <span class="nu0">430</span></div><div class="de1"> <span class="re1">@command_window</span>.<span class="me1">y</span> = <span class="nu0">304</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> </div><div class="de1"> <span class="kw1">def</span> dispose_command_window</div><div class="de1"> <span class="re1">@command_window</span>.<span class="me1">dispose</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> </div><div class="de1"> <span class="kw1">def</span> update_item_selection</div><div class="de1"> <span class="kw1">if</span> Input.<span class="me1">trigger</span>?<span class="br0">(</span><span class="re2">Input::B</span><span class="br0">)</span></div><div class="de1"> Sound.<span class="me1">play_cancel</span></div><div class="de1"> <span class="kw1">if</span> <span class="re1">@ingredients</span> == <span class="br0">[</span><span class="br0">]</span></div><div class="de1"> <span class="re0">$scene</span> = Scene_Map.<span class="me1">new</span></div><div class="de1"> <span class="kw1">else</span></div><div class="de1"> <span class="re0">$game_party</span>.<span class="me1">gain_item</span><span class="br0">(</span>@ingredients.<span class="me1">pop</span>, <span class="nu0">1</span><span class="br0">)</span></div><div class="de1"> <span class="re1">@item_window</span>.<span class="me1">refresh</span></div><div class="de1"> <span class="re1">@pot_window</span>.<span class="me1">refresh</span><span class="br0">(</span>@ingredients<span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">elsif</span> Input.<span class="me1">trigger</span>?<span class="br0">(</span><span class="re2">Input::C</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">if</span> <span class="re1">@ingredients</span>.<span class="me1">size</span> <span class="sy0"><</span> <span class="re2">AlchemyPot::MaxItem</span> <span class="kw1">and</span> <span class="re1">@item_window</span>.<span class="me1">item</span> != <span class="kw2">nil</span></div><div class="de1"> Sound.<span class="me1">play_decision</span></div><div class="de1"> item = <span class="re1">@item_window</span>.<span class="me1">item</span></div><div class="de1"> <span class="re1">@ingredients</span>.<span class="me1">push</span><span class="br0">(</span>item<span class="br0">)</span></div><div class="de1"> <span class="re0">$game_party</span>.<span class="me1">gain_item</span><span class="br0">(</span>item, <span class="sy0">-</span><span class="nu0">1</span><span class="br0">)</span></div><div class="de1"> <span class="re1">@item_window</span>.<span class="me1">refresh</span></div><div class="de1"> <span class="re1">@pot_window</span>.<span class="me1">refresh</span><span class="br0">(</span>@ingredients<span class="br0">)</span></div><div class="de1"> <span class="kw1">else</span></div><div class="de1"> Sound.<span class="me1">play_buzzer</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">elsif</span> Input.<span class="me1">trigger</span>?<span class="br0">(</span><span class="re2">Input::A</span><span class="br0">)</span></div><div class="de1"> Sound.<span class="me1">play_decision</span></div><div class="de1"> <span class="re1">@item_window</span>.<span class="me1">active</span> = <span class="kw2">false</span></div><div class="de1"> <span class="re1">@command_window</span>.<span class="me1">active</span> = <span class="kw2">true</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> </div><div class="de1"> <span class="kw1">def</span> update_command_selection</div><div class="de1"> <span class="kw1">if</span> Input.<span class="me1">trigger</span>?<span class="br0">(</span><span class="re2">Input::B</span><span class="br0">)</span></div><div class="de1"> Sound.<span class="me1">play_cancel</span></div><div class="de1"> <span class="kw3">exit</span></div><div class="de1"> <span class="kw1">elsif</span> Input.<span class="me1">trigger</span>?<span class="br0">(</span><span class="re2">Input::C</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">case</span> <span class="re1">@command_window</span>.<span class="me1">index</span></div><div class="de1"> <span class="kw1">when</span> <span class="nu0">0</span></div><div class="de1"> <span class="kw1">if</span> <span class="re1">@ingredients</span>.<span class="me1">size</span> <span class="sy0">></span> <span class="nu0">1</span></div><div class="de1"> Sound.<span class="me1">play_decision</span></div><div class="de1"> start_alchemy</div><div class="de1"> <span class="kw1">else</span></div><div class="de1"> Sound.<span class="me1">play_buzzer</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">when</span> <span class="nu0">1</span></div><div class="de1"> Sound.<span class="me1">play_decision</span></div><div class="de1"> <span class="kw3">exit</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">elsif</span> Input.<span class="me1">trigger</span>?<span class="br0">(</span><span class="re2">Input::A</span><span class="br0">)</span></div><div class="de1"> Sound.<span class="me1">play_decision</span></div><div class="de1"> <span class="re1">@item_window</span>.<span class="me1">active</span> = <span class="kw2">true</span></div><div class="de1"> <span class="re1">@command_window</span>.<span class="me1">active</span> = <span class="kw2">false</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> </div><div class="de1"> <span class="kw1">def</span> <span class="kw3">exit</span></div><div class="de1"> <span class="kw1">for</span> item <span class="kw1">in</span> <span class="re1">@ingredients</span></div><div class="de1"> <span class="re0">$game_party</span>.<span class="me1">gain_item</span><span class="br0">(</span>item, <span class="nu0">1</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="re0">$scene</span> = Scene_Map.<span class="me1">new</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> </div><div class="de1"> <span class="kw1">def</span> start_alchemy</div><div class="de1"> rec = find_recipe<span class="br0">(</span>@ingredients<span class="br0">)</span></div><div class="de1"> <span class="kw1">if</span> rec != <span class="kw2">nil</span> <span class="sy0">&&</span> <span class="re2">AlchemyPot::Formula</span><span class="br0">[</span>rec<span class="br0">]</span> != <span class="kw2">nil</span></div><div class="de1"> <span class="re1">@help_window</span>.<span class="me1">set_text</span><span class="br0">(</span><span class="re2">Vocab::AlchemyPotRightFormula</span><span class="br0">)</span></div><div class="de1"> <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span> = rec.<span class="me1">clone</span></div><div class="de1"> <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span> = Graphics.<span class="me1">frame_count</span></div><div class="de1"> <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span> = <span class="re2">AlchemyPot::Formula</span><span class="br0">[</span>rec<span class="br0">]</span><span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span> <span class="sy0">*</span> Graphics.<span class="me1">frame_rate</span> <span class="sy0">*</span> <span class="nu0">60</span></div><div class="de1"> <span class="re1">@command_window</span>.<span class="me1">active</span> = <span class="kw2">false</span></div><div class="de1"> <span class="kw2">return</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="re1">@help_window</span>.<span class="me1">set_text</span><span class="br0">(</span><span class="re2">Vocab::AlchemyPotWrongFormula</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">if</span> <span class="re2">AlchemyPot::FailureItem</span>.<span class="me1">size</span> <span class="sy0">></span> <span class="nu0">0</span></div><div class="de1"> <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span> = <span class="br0">[</span><span class="st0">"Wrong"</span>, <span class="re1">@ingredients</span>.<span class="me1">clone</span><span class="br0">]</span></div><div class="de1"> <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span> = Graphics.<span class="me1">frame_count</span></div><div class="de1"> <span class="re0">$game_party</span>.<span class="me1">alchemy_pot</span><span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span> = <span class="re2">AlchemyPot::FailureTime</span> <span class="sy0">*</span> Graphics.<span class="me1">frame_rate</span> <span class="sy0">*</span> <span class="nu0">60</span></div><div class="de1"> <span class="re1">@command_window</span>.<span class="me1">active</span> = <span class="kw2">false</span></div><div class="de1"> <span class="kw2">return</span></div><div class="de1"> <span class="kw1">else</span></div><div class="de1"> <span class="kw1">for</span> item <span class="kw1">in</span> <span class="re1">@ingredients</span></div><div class="de1"> <span class="re0">$game_party</span>.<span class="me1">gain_item</span><span class="br0">(</span>item, <span class="nu0">1</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="re1">@ingredients</span> = <span class="br0">[</span><span class="br0">]</span></div><div class="de1"> <span class="re1">@item_window</span>.<span class="me1">refresh</span></div><div class="de1"> <span class="re1">@pot_window</span>.<span class="me1">refresh</span><span class="br0">(</span>@ingredients<span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> </div><div class="de1"> <span class="kw1">def</span> find_recipe<span class="br0">(</span>items<span class="br0">)</span></div><div class="de1"> <span class="kw1">for</span> i <span class="kw1">in</span> <span class="re2">AlchemyPot::Formula</span>.<span class="me1">keys</span></div><div class="de1"> formula = item_sort<span class="br0">(</span>i<span class="br0">)</span></div><div class="de1"> ingredients = item_sort<span class="br0">(</span>items<span class="br0">)</span></div><div class="de1"> <span class="kw1">if</span> formula == ingredients</div><div class="de1"> <span class="kw2">return</span> i</div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> </div><div class="de1"> <span class="kw1">def</span> item_sort<span class="br0">(</span>formula<span class="br0">)</span></div><div class="de1"> i = <span class="br0">[</span><span class="br0">]</span>; w = <span class="br0">[</span><span class="br0">]</span>; a = <span class="br0">[</span><span class="br0">]</span></div><div class="de1"> <span class="kw1">for</span> item <span class="kw1">in</span> 0...<span class="me1">formula</span>.<span class="me1">size</span></div><div class="de1"> <span class="kw1">case</span> formula<span class="br0">[</span>item<span class="br0">]</span></div><div class="de1"> <span class="kw1">when</span> <span class="re2">RPG::Item</span></div><div class="de1"> i.<span class="me1">push</span><span class="br0">(</span>formula<span class="br0">[</span>item<span class="br0">]</span>.<span class="me1">id</span><span class="br0">)</span></div><div class="de1"> i.<span class="me1">sort</span>!</div><div class="de1"> <span class="kw1">when</span> <span class="re2">RPG::Weapon</span></div><div class="de1"> w.<span class="me1">push</span><span class="br0">(</span>formula<span class="br0">[</span>item<span class="br0">]</span>.<span class="me1">id</span><span class="br0">)</span></div><div class="de1"> w.<span class="me1">sort</span>!</div><div class="de1"> <span class="kw1">when</span> <span class="re2">RPG::Armor</span></div><div class="de1"> a.<span class="me1">push</span><span class="br0">(</span>formula<span class="br0">[</span>item<span class="br0">]</span>.<span class="me1">id</span><span class="br0">)</span></div><div class="de1"> a.<span class="me1">sort</span>!</div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> formula = <span class="br0">[</span><span class="br0">]</span></div><div class="de1"> <span class="kw1">for</span> item <span class="kw1">in</span> i</div><div class="de1"> formula.<span class="me1">push</span><span class="br0">(</span>$data_items<span class="br0">[</span>item<span class="br0">]</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">for</span> item <span class="kw1">in</span> w</div><div class="de1"> formula.<span class="me1">push</span><span class="br0">(</span>$data_weapons<span class="br0">[</span>item<span class="br0">]</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw1">for</span> item <span class="kw1">in</span> a</div><div class="de1"> formula.<span class="me1">push</span><span class="br0">(</span>$data_armors<span class="br0">[</span>item<span class="br0">]</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="kw2">return</span> formula</div><div class="de1"> <span class="kw1">end</span></div><div class="de1"><span class="kw1">end</span></div></div></td></tr></table>
Istruzioni per l'uso
Per chiamare il pentolone usate il comando script degli eventi ed inserite:
<div class="de1">$scene = Scene_AlchemyPot.new</div></div></td></tr></table>Premere A per passare dalla finestra di conferma a quella degli oggetti e viceversa.(A inteso come tasto di RpgMaker non la lettera della tastiera!)
Bugs e Conflitti Noti
N/A
Altri DettagliNon bisogna mettere necessariamente gli oggetti nello stesso ordine della formula.
Modificato da Sleeping Leonhart, 12 August 2010 - 13:39 PM.