<div class="de1"><span class="co1"># giver Scene_Title add-on - INIZIO - =============================================</span></div><div class="de1"><span class="co1">#</span></div><div class="de1"><span class="co1"># giver's Animated Chara in Title (2009-05-03)</span></div><div class="de1"><span class="co1">#</span></div><div class="de1"><span class="co1"># E' un add-on per lo script Personaggi Animati nel Menù by mikb89 @ rpg2s.net (it)</span></div><div class="de1"><span class="co1"># e non può funzionare senza di esso. Lo trovate a:</span></div><div class="de1"><span class="co1"># [url="http://www.rpg2s.net/forum/index.php?showtopic=3462"]http://www.rpg2s.net/forum/index.php?showtopic=3462[/url]</span></div><div class="de1"><span class="co1">#</span></div><div class="de1"><span class="co1">#==========================================================================</span></div><div class="de1"><span class="co1">#</span></div><div class="de1"><span class="co1"># NOTE IMPORTANTI:</span></div><div class="de1"><span class="co1">#</span></div><div class="de1"><span class="co1"># - Non esistendo un party finchè non si sceglie NUOVA PARTITA, lo script si appoggia</span></div><div class="de1"><span class="co1"># all'elenco degli actors nel DataBase per funzionare, volendo mantenere coerenza</span></div><div class="de1"><span class="co1"># con lo script originale esteso da questo Add-on</span></div><div class="de1"><span class="co1"># Quindi, qualunque chara si voglia usare per le animazioni del title, bisognerà</span></div><div class="de1"><span class="co1"># creare un actor che non parteciperà al gioco, dotato del chara che include</span></div><div class="de1"><span class="co1"># quella animazione, e non c'è bisogno di di inserire due actor dotati dello stesso</span></div><div class="de1"><span class="co1"># chara per animazioni che sfruttano due righe diverse di uno stesso chara . . .</span></div><div class="de1"><span class="co1">#</span></div><div class="de1"><span class="co1"># - Al momento si può scegliere solo se usare una riga singola del chara oppure</span></div><div class="de1"><span class="co1"># l'intero chara, e non è possibile specificare la velocità a cui si alternano i</span></div><div class="de1"><span class="co1"># fotogrammi, che risulta uguale per tutte come lo script a cui si appoggia l'add-on</span></div><div class="de1"><span class="co1">#</span></div><div class="de1"><span class="co1"># - Eventuale LAG è generabile inserendo TANTE animazioni, piuttosto che dall'uso di</span></div><div class="de1"><span class="co1"># chara molto grandi (anche se questi consumano più memoria)</span></div><div class="de1"><span class="co1">#</span></div><div class="de1"><span class="co1"># - Purtroppo, pur richiedendo solo due istruzioni aggiuntive nel (def) main della</span></div><div class="de1"><span class="co1"># Scene_Title, non ho potuto usare alias per aggiungerle, quindi ho dovuto reinserire</span></div><div class="de1"><span class="co1"># l'intero metodo in questo add-on.</span></div><div class="de1"><span class="co1"># Se il vostro Scene_Title è diverso da quello di default, dovrete inserire tale</span></div><div class="de1"><span class="co1"># coppia di istruzioni nella vostra versione di Scene_Title e cancellare la parte</span></div><div class="de1"><span class="co1"># di questo add-on che riguarda il def main della Scene</span></div><div class="de1"><span class="co1">#</span></div><div class="de1"><span class="co1"># - Le istruzioni per "configurare" le animazioni da eseguire nel Title sono all'interno</span></div><div class="de1"><span class="co1"># della classe che le gestisce</span></div><div class="de1"><span class="co1">#</span></div><div class="de1"><span class="co1"># - Per scripter con un minimo di esperienza ed intraprendenza non dovrebbe risultare</span></div><div class="de1"><span class="co1"># difficile rendere l'add-on generico in modo da sfruttarne le funzioni in altre</span></div><div class="de1"><span class="co1"># Scene simili al Title (End, Gameover, ecc.)</span></div><div class="de1"><span class="co1">#</span></div><div class="de1"><span class="co1">#==========================================================================</span></div><div class="de1"> </div><div class="de1"> </div><div class="de1"><span class="kw1">class</span> Window_TitleAnimChara <span class="sy0"><</span> Window_Base</div><div class="de1"> </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">0</span>, <span class="nu0">640</span>, <span class="nu0">480</span><span class="br0">)</span></div><div class="de1"> <span class="kw2">self</span>.<span class="me1">z</span> = <span class="nu0">100</span></div><div class="de1"> <span class="kw2">self</span>.<span class="me1">opacity</span> = <span class="nu0">0</span></div><div class="de1"> <span class="re1">@im</span> = <span class="nu0">0</span></div><div class="de1"> <span class="re1">@am</span> = <span class="nu0">0</span></div><div class="de1"> <span class="re1">@om</span> = <span class="nu0">0</span></div><div class="de1"> <span class="re1">@characters</span> = <span class="br0">[</span><span class="br0">]</span></div><div class="de1"><span class="co1">#=== DEFINIZIONE ANIMAZIONI - Inizio =============================================</span></div><div class="de1"><span class="co1"># Per aggiungere chara da usare, inserire la seguente istruzione</span></div><div class="de1"><span class="co1"># @characters.push([id_actor_database, coord_x, coord_y, riga_da_usare])</span></div><div class="de1"><span class="co1"># dove:</span></div><div class="de1"><span class="co1"># id_actor_database è la posizione dell'actor di cui si userà il chara</span></div><div class="de1"><span class="co1"># per ottenere l'animazione</span></div><div class="de1"><span class="co1"># coord_x è la posizione x (del centro orizzontale) dei fotogrammi</span></div><div class="de1"><span class="co1"># sullo schermo</span></div><div class="de1"><span class="co1"># coord_y è la posizione y (della base) dei fotogrammi sullo schermo</span></div><div class="de1"><span class="co1"># riga_da_usare è da specificare se si vuole usare solo una riga del chara</span></div><div class="de1"><span class="co1"># invece di tutti e sedici i fotogrammi che lo compongono.</span></div><div class="de1"><span class="co1"># Va da 0 (prima riga) a 3 (quarta riga), oppure nil se si</span></div><div class="de1"><span class="co1"># desidera sfruttare l'intero chara (invece di inserire nil</span></div><div class="de1"><span class="co1"># si ottiene lo stesso effetto senza inserire questo quarto</span></div><div class="de1"><span class="co1"># parametro)</span></div><div class="de1"><span class="co1"># Non esiste un limite "vero" al numero di animazioni sfruttabili, se non per il</span></div><div class="de1"><span class="co1"># rischio di un calo di performance/lag nel Title</span></div><div class="de1"><span class="co1">#---------------------------------------------------------------------------------</span></div><div class="de1"> <span class="co1"># Usa solo la prima riga del chara associato all'actor 1, in posizione 264, 240</span></div><div class="de1"> <span class="re1">@characters</span>.<span class="me1">push</span><span class="br0">(</span><span class="br0">[</span><span class="nu0">1</span>, <span class="nu0">264</span>, <span class="nu0">240</span>, <span class="nu0">0</span><span class="br0">]</span><span class="br0">)</span></div><div class="de1"> <span class="co1"># Usa solo la prima riga del chara associato all'actor 4, in posizione 344, 240</span></div><div class="de1"> <span class="re1">@characters</span>.<span class="me1">push</span><span class="br0">(</span><span class="br0">[</span><span class="nu0">4</span>, <span class="nu0">344</span>, <span class="nu0">240</span>, <span class="nu0">0</span><span class="br0">]</span><span class="br0">)</span></div><div class="de1"> <span class="co1"># Usa solo la seconda riga del chara associato all'actor 6, in posizione 80, 420</span></div><div class="de1"> <span class="re1">@characters</span>.<span class="me1">push</span><span class="br0">(</span><span class="br0">[</span><span class="nu0">6</span>, <span class="nu0">80</span>, <span class="nu0">420</span>, <span class="nu0">1</span><span class="br0">]</span><span class="br0">)</span></div><div class="de1"> <span class="co1"># Usa solo la terza riga (nuovamente) del chara associato all'actor 6, in posizione 528, 420</span></div><div class="de1"> <span class="re1">@characters</span>.<span class="me1">push</span><span class="br0">(</span><span class="br0">[</span><span class="nu0">6</span>, <span class="nu0">528</span>, <span class="nu0">420</span>, <span class="nu0">2</span><span class="br0">]</span><span class="br0">)</span></div><div class="de1"> <span class="co1"># Usa l'intero chara associato all'actor 7, in posizione 120, 196</span></div><div class="de1"> <span class="re1">@characters</span>.<span class="me1">push</span><span class="br0">(</span><span class="br0">[</span><span class="nu0">7</span>, <span class="nu0">120</span>, <span class="nu0">196</span><span class="br0">]</span><span class="br0">)</span></div><div class="de1"><span class="co1">#=== DEFINIZIONE ANIMAZIONI - Fine =============================================</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"> refresh</div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> </div><div class="de1"> <span class="kw1">def</span> refresh</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">@sec</span> = Graphics.<span class="me1">frame_count</span> <span class="sy0">/</span> <span class="br0">(</span>Graphics.<span class="me1">frame_rate</span><span class="sy0">/</span><span class="nu0">4</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">for</span> chara <span class="kw1">in</span> <span class="re1">@characters</span></div><div class="de1"> actor = <span class="re0">$data_actors</span><span class="br0">[</span>chara<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span><span class="br0">]</span></div><div class="de1"> chara_am = chara<span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span> == <span class="kw2">nil</span> ? <span class="re1">@am</span> : chara<span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span></div><div class="de1"> draw_actor_graphic<span class="br0">(</span>actor, chara<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span>, chara<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span>, <span class="re1">@im</span>, chara_am, <span class="kw2">true</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> update</div><div class="de1"> <span class="kw1">super</span></div><div class="de1"> <span class="kw1">if</span> Graphics.<span class="me1">frame_count</span> <span class="sy0">/</span> <span class="br0">(</span>Graphics.<span class="me1">frame_rate</span><span class="sy0">/</span><span class="nu0">4</span><span class="br0">)</span> != <span class="re1">@sec</span></div><div class="de1"> <span class="re1">@im</span> <span class="sy0">+</span>=<span class="nu0">1</span></div><div class="de1"> <span class="kw1">if</span> <span class="re1">@im</span> == <span class="nu0">4</span></div><div class="de1"> <span class="re1">@im</span> = <span class="nu0">0</span></div><div class="de1"> <span class="re1">@om</span> <span class="sy0">+</span>= <span class="nu0">1</span></div><div class="de1"> <span class="kw1">if</span> <span class="re1">@om</span> == <span class="nu0">3</span></div><div class="de1"> <span class="re1">@om</span> = <span class="nu0">0</span></div><div class="de1"> <span class="re1">@am</span> <span class="sy0">+</span>= <span class="nu0">1</span></div><div class="de1"> <span class="kw1">if</span> <span class="re1">@am</span> == <span class="nu0">4</span></div><div class="de1"> <span class="re1">@am</span> = <span class="nu0">0</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"> refresh</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">end</span></div><div class="de1"> </div><div class="de1"><span class="kw1">class</span> Scene_Title</div><div class="de1"> </div><div class="de1"> <span class="kw1">alias</span> animated_update update</div><div class="de1"> </div><div class="de1"> <span class="kw1">def</span> main</div><div class="de1"> <span class="co1"># If battle test</span></div><div class="de1"> <span class="kw1">if</span> <span class="re0">$BTEST</span></div><div class="de1"> battle_test</div><div class="de1"> <span class="kw2">return</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="co1"># Load database</span></div><div class="de1"> <span class="re0">$data_actors</span> = load_data<span class="br0">(</span><span class="st0">"Data/Actors.rxdata"</span><span class="br0">)</span></div><div class="de1"> <span class="re0">$data_classes</span> = load_data<span class="br0">(</span><span class="st0">"Data/Classes.rxdata"</span><span class="br0">)</span></div><div class="de1"> <span class="re0">$data_skills</span> = load_data<span class="br0">(</span><span class="st0">"Data/Skills.rxdata"</span><span class="br0">)</span></div><div class="de1"> <span class="re0">$data_items</span> = load_data<span class="br0">(</span><span class="st0">"Data/Items.rxdata"</span><span class="br0">)</span></div><div class="de1"> <span class="re0">$data_weapons</span> = load_data<span class="br0">(</span><span class="st0">"Data/Weapons.rxdata"</span><span class="br0">)</span></div><div class="de1"> <span class="re0">$data_armors</span> = load_data<span class="br0">(</span><span class="st0">"Data/Armors.rxdata"</span><span class="br0">)</span></div><div class="de1"> <span class="re0">$data_enemies</span> = load_data<span class="br0">(</span><span class="st0">"Data/Enemies.rxdata"</span><span class="br0">)</span></div><div class="de1"> <span class="re0">$data_troops</span> = load_data<span class="br0">(</span><span class="st0">"Data/Troops.rxdata"</span><span class="br0">)</span></div><div class="de1"> <span class="re0">$data_states</span> = load_data<span class="br0">(</span><span class="st0">"Data/States.rxdata"</span><span class="br0">)</span></div><div class="de1"> <span class="re0">$data_animations</span> = load_data<span class="br0">(</span><span class="st0">"Data/Animations.rxdata"</span><span class="br0">)</span></div><div class="de1"> <span class="re0">$data_tilesets</span> = load_data<span class="br0">(</span><span class="st0">"Data/Tilesets.rxdata"</span><span class="br0">)</span></div><div class="de1"> <span class="re0">$data_common_events</span> = load_data<span class="br0">(</span><span class="st0">"Data/CommonEvents.rxdata"</span><span class="br0">)</span></div><div class="de1"> <span class="re0">$data_system</span> = load_data<span class="br0">(</span><span class="st0">"Data/System.rxdata"</span><span class="br0">)</span></div><div class="de1"> <span class="co1"># Make system object</span></div><div class="de1"> <span class="re0">$game_system</span> = Game_System.<span class="me1">new</span></div><div class="de1"> <span class="co1"># Make title graphic</span></div><div class="de1"> <span class="re1">@sprite</span> = Sprite.<span class="me1">new</span></div><div class="de1"> <span class="re1">@sprite</span>.<span class="me1">bitmap</span> = <span class="re2">RPG::Cache</span>.<span class="me1">title</span><span class="br0">(</span>$data_system.<span class="me1">title_name</span><span class="br0">)</span></div><div class="de1"><span class="co1">#============================================================================</span></div><div class="de1"><span class="co1"># Copiare l'istruzione sottostante nel main del proprio Scene_Title se non è</span></div><div class="de1"><span class="co1"># quello di default</span></div><div class="de1"> <span class="re1">@anim_window</span> = Window_TitleAnimChara.<span class="me1">new</span></div><div class="de1"><span class="co1">#============================================================================</span></div><div class="de1"> <span class="co1"># Make command window</span></div><div class="de1"> s1 = <span class="st0">"New Game"</span></div><div class="de1"> s2 = <span class="st0">"Continue"</span></div><div class="de1"> s3 = <span class="st0">"Shutdown"</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">192</span>, <span class="br0">[</span>s1, s2, s3<span class="br0">]</span><span class="br0">)</span></div><div class="de1"> <span class="re1">@command_window</span>.<span class="me1">back_opacity</span> = <span class="nu0">160</span></div><div class="de1"> <span class="re1">@command_window</span>.<span class="me1">x</span> = <span class="nu0">320</span> <span class="sy0">-</span> <span class="re1">@command_window</span>.<span class="me1">width</span> <span class="sy0">/</span> <span class="nu0">2</span></div><div class="de1"> <span class="re1">@command_window</span>.<span class="me1">y</span> = <span class="nu0">288</span></div><div class="de1"> <span class="co1"># Continue enabled determinant</span></div><div class="de1"> <span class="co1"># Check if at least one save file exists</span></div><div class="de1"> <span class="co1"># If enabled, make @continue_enabled true; if disabled, make it false</span></div><div class="de1"> <span class="re1">@continue_enabled</span> = <span class="kw2">false</span></div><div class="de1"> <span class="kw1">for</span> i <span class="kw1">in</span> 0..3</div><div class="de1"> <span class="kw1">if</span> <span class="kw4">FileTest</span>.<span class="me1">exist</span>?<span class="br0">(</span><span class="st0">"Save#{i+1}.rxdata"</span><span class="br0">)</span></div><div class="de1"> <span class="re1">@continue_enabled</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"> <span class="co1"># If continue is enabled, move cursor to "Continue"</span></div><div class="de1"> <span class="co1"># If disabled, display "Continue" text in gray</span></div><div class="de1"> <span class="kw1">if</span> <span class="re1">@continue_enabled</span></div><div class="de1"> <span class="re1">@command_window</span>.<span class="me1">index</span> = <span class="nu0">1</span></div><div class="de1"> <span class="kw1">else</span></div><div class="de1"> <span class="re1">@command_window</span>.<span class="me1">disable_item</span><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> <span class="co1"># Play title BGM</span></div><div class="de1"> <span class="re0">$game_system</span>.<span class="me1">bgm_play</span><span class="br0">(</span>$data_system.<span class="me1">title_bgm</span><span class="br0">)</span></div><div class="de1"> <span class="co1"># Stop playing ME and BGS</span></div><div class="de1"> Audio.<span class="me1">me_stop</span></div><div class="de1"> Audio.<span class="me1">bgs_stop</span></div><div class="de1"> <span class="co1"># Execute transition</span></div><div class="de1"> Graphics.<span class="me1">transition</span></div><div class="de1"> <span class="co1"># Main loop</span></div><div class="de1"> <span class="kw3">loop</span> <span class="kw1">do</span></div><div class="de1"> <span class="co1"># Update game screen</span></div><div class="de1"> Graphics.<span class="me1">update</span></div><div class="de1"> <span class="co1"># Update input information</span></div><div class="de1"> Input.<span class="me1">update</span></div><div class="de1"> <span class="co1"># Frame update</span></div><div class="de1"> update</div><div class="de1"> <span class="co1"># Abort loop if screen is changed</span></div><div class="de1"> <span class="kw1">if</span> <span class="re0">$scene</span> != <span class="kw2">self</span></div><div class="de1"> <span class="kw1">break</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="co1"># Prepare for transition</span></div><div class="de1"> Graphics.<span class="me1">freeze</span></div><div class="de1"> <span class="co1"># Dispose of command window</span></div><div class="de1"> <span class="re1">@command_window</span>.<span class="me1">dispose</span></div><div class="de1"><span class="co1">#============================================================================</span></div><div class="de1"><span class="co1"># Copiare l'istruzione sottostante nel main del proprio Scene_Title se non è</span></div><div class="de1"><span class="co1"># quello di default</span></div><div class="de1"> <span class="re1">@anim_window</span>.<span class="me1">dispose</span></div><div class="de1"><span class="co1">#============================================================================</span></div><div class="de1"> <span class="co1"># Dispose of title graphic</span></div><div class="de1"> <span class="re1">@sprite</span>.<span class="me1">bitmap</span>.<span class="me1">dispose</span></div><div class="de1"> <span class="re1">@sprite</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"> animated_update</div><div class="de1"> <span class="re1">@anim_window</span>.<span class="me1">update</span></div><div class="de1"> <span class="kw1">end</span></div><div class="de1"> </div><div class="de1"><span class="kw1">end</span></div><div class="de1"><span class="co1"># giver Scene_Title add-on - FINE - =============================================</span></div></div></td></tr></table>