Changer de menu - RPG-LIVE

end def update_command if Input.trigger?(Input::B). $game_system.se_play($data_system.cancel_se). $scene = Scene_Map.new return end if Input.trigger?(
444KB taille 2 téléchargements 301 vues
RPG-LIVE.NEUF.FR

Changer de menu Scripts de GuardianForce Marcoest

10.08.2007

Voici un script pour changer le menu de votrer jeu.

Aperçu du script Script testé, il fonctionne. Vous pouvez remplacez le script Scene_Menu, ou créer un nouveau script nommé Menu_Bis. Mettez-y le code cidessous. # =============================================== # b y Xk 8 # Scr ipt téléc har gé sur RPG -cr éatio n - www.rpg-cre ation .com # Ce scri pt ne doi t pas être uti lisé avec de b att lers ani més # I nstall ation : remplacez juste le scr ipt s cene_ men u par ce scri pt # =============================================== c lass Scene _Me nu de f initi ali ze(me nu_i ndex = 0) @ menu _index = me nu_i nde x en d

@c omman d_windo w.dis ab le_i tem( 0) @c omman d_windo w.dis ab le_i tem( 1) @c omman d_windo w.dis ab le_i tem( 2) @c omman d_windo w.dis ab le_i tem( 3) en d i f $g ame_s ystem.save_disab led @c omman d_windo w.dis ab le_i tem( 4 ) en d @ playtime _wi ndo w = X PlayTi me. new @ playtime _wi ndo w.x = 640

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

de f main @s prite set = Spr iteset_ Map.ne w s 1 = $dat a_s ystem.wor ds.ite m s 2 = $dat a_s ystem.wor ds.ski ll s 3 = $dat a_s ystem.wor ds.eq uip s 4 = "S tat ut" s 5 = "S au veg arder " s 6 = "Quitte r" @c omman d_windo w = Xcommand .ne w( 640, [s 1, s 2, s3, s 4, s 5, s6]) @c omman d_windo w.index = @me nu_in dex @c omman d_windo w.x = -640 @c omman d_windo w.opacit y = 220 i f $g ame_ party.actors .si ze == 0

@ playtime _wi ndo w.y = 64 @ playtime _wi ndo w.o pacity = 220 @ gold_ win dow = XGo ld.ne w @ gold_ win dow.x = 640 @ gold_ win dow.y = 320 @ gold_ win dow.o paci ty = 220 @ loc atio n_windo w = X loc ation .ne w @ loc atio n_windo w.x = 640 @ loc atio n_windo w.y = 160 @ loc atio n_windo w.opacity = 220 @st atu s_windo w = Xst atus .ne w @st atu s_windo w.x = - 400 @st atu s_windo w.y = 64 @st atu s_windo w.opacity = 220 @re alti me_windo w = Xt ime .ne w @re alti me_windo w.x = 640 @re alti me_windo w.y = 224 @re alti me_windo w.opacity = 220 @t it le_windo w = Xt itle.ne w @t it le_windo w.x = 640 @t it le_windo w.y = 384 @t it le_windo w.opacit y = 220 Gr aphics.t rans ition loo p do Gr aphics.update In pu t.u pdate u pd ate i f $scene != se lf bre ak en d en d

de f update @c omman d_windo w. u pdate i f @comman d_ win dow.x < 0 @c omman d_windo w.x += 40 en d @ playtime _wi ndo w.update i f @playti me_windo w.x > 400 @ playtime _wi ndo w.x - = 40 en d @ gold_ win dow.u pdate i f @realti me_ win dow.x == 400 i f @go ld_ win do w.x > 400 @ gold_ win dow.x - = 40 en d en d @st atu s_windo w.update i f @stat us_ window.x < 0 @st atu s_windo w.x += 20 en d @ loc atio n_windo w.update i f @playti me_windo w.x == 400 i f @lo catio n_ win dow.x > 400 @ loc atio n_windo w.x - = 40

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

Gr aphics.free ze @c omman d_windo w.dis pose @ playtime _wi ndo w.dis pose @ gold_ win dow.dis pose @st atu s_windo w.dis pose @ loc atio n_windo w.dis pose @re alti me_windo w.dis pose @s prite set.dispo se @t it le_windo w.dis pose en d

en d en d @re alti me_windo w.u pdate i f @lo catio n_ win dow.x == 400 i f @realti me_ win dow.x > 400 @re alti me_windo w.x - = 40 en d en d @t it le_windo w.u pdate i f @go ld_ win do w.x == 400 i f @tit le_ win dow.x > 400 @t it le_windo w.x - = 40 en d en d i f @tit le_ win dow.x == 400 i f @comman d_ win dow.opacity > 180 @c omman d_windo w.opacit y -= 20 en d i f @playti me_windo w.opacity > 180 @ playtime _wi ndo w.o pacity -= 20 en d i f @lo catio n_ win dow.opacit y > 180 @ loc atio n_windo w.opacity -= 20 en d i f @realti me_ win dow.opacit y > 180 @re alti me_windo w.opacity -= 20 en d i f @go ld_ win do w.o pac ity > 180 @ gold_ win dow.o paci ty -= 20 en d i f @tit le_ win dow.opacit y > 180 @t it le_windo w.opacit y -= 20 en d i f @stat us_ window.opacity > 180 @st atu s_windo w.opacity - = 20 en d en d i f @comman d_ win dow.acti ve u pd ate_co mman d ret urn en d i f @stat us_ window.ac tive u pd ate_st atus ret urn en d en d de f update_command i f I nput.tr igger? (In put:: B) $game_sys tem.se_play( $data_s ystem .c ance l_se) $scene = Sce ne_ Map.ne w ret urn en d

c ase @co mman d_windo w.inde x when 0 $game_sys tem.se_play( $data_s ystem .dec ision_se ) $scene = Sce ne_Ite m2.new when 1 $game_sys tem.se_play( $data_s ystem .dec ision_se ) @c omman d_windo w.act ive = false @st atu s_windo w.acti ve = tr ue @st atu s_windo w.inde x = 0 when 2 $game_sys tem.se_play( $data_s ystem .dec ision_se )

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

i f I nput.tr igger? (In put:: C) i f $g ame_ party.actors .si ze == 0 and @ comm an d_ win do w.i nde x < 4 $game_sys tem.se_play( $data_s ystem .bu zzer _se) ret urn en d

@c omman d_windo w.act ive = false @st atu s_windo w.acti ve = tr ue @st atu s_windo w.inde x = 0 when 3 $game_sys tem.se_play( $data_s ystem .dec isio n_se ) @c omman d_windo w.act ive = false @st atu s_windo w.acti ve = tr ue @st atu s_windo w.inde x = 0 when 4 i f $g ame_s ystem.save_disab led $game_sys tem.se_play( $data_s ystem .bu zzer _se) ret urn en d $game_sys tem.se_play( $data_s ystem .dec ision_se ) $scene = Sce ne_ S ave.new when 5 $game_sys tem.se_play( $data_s ystem .dec ision_se ) $scene = Sce ne_ En d2.ne w en d ret urn en d en d de f update_st atus i f I nput.tr igger? (In put:: B) $game_sys tem.se_play( $data_s ystem .c ance l_se) @c omman d_windo w.act ive = t rue @st atu s_windo w.a cti ve = fals e @st atu s_windo w.inde x = - 1 ret urn en d i f I nput.tr igger? (In put:: C) c ase @co mman d_windo w.inde x when 1 i f $g ame_ party.actors [@st atus_ wi ndo w.i nde x].restri ction >= 2 $game_sys tem.se_play( $data_s ystem .bu zzer _se) ret urn en d $game_sys tem.s e_play( $data_s ystem .dec ision_se ) $scene = Xs ki llS cene.ne w( @stat us_ win dow.in dex) when 2 $game_sys tem.se_play( $data_s ystem .dec ision_se ) $scene = Sce ne_ Equ ip2.ne w(@st atu s_windo w. index ) when 3 $game_sys tem.se_play( $data_s ystem .dec ision_se ) $scene = Sce n e_St atus 2.ne w(@st atu s_windo w. index ) en d ret urn en d en d en d c lass X Play Time < Win dow_B ase

de f re fres h se lf.co ntents .c lear se lf.co ntents .font .co lor = sy stem_co lor se lf.co ntents .dr aw_text( 4, 0, 120, 32, "Tem ps ") @to tal_sec = Graphics .frame_co unt / G raphics. fr ame _rate hour = @tot al_sec / 60 / 60 m in = @to tal_sec / 60 % 6 0 sec = @total_s ec % 60 te xt = sprint f( "% 02d:% 02d: %02d ", hour, min , sec) se lf.co ntents .font .co lor = no rm al_co lor se lf.co ntents .dr aw_text( 4, 32, 120, 32, text , 2)

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

de f initi ali ze su per( 0, 0, 240, 96) se lf.co ntents = Bitmap.new( widt h - 32, heig ht - 32) se lf.co ntents .font .n ame = $font face se lf.co ntents .font .size = $font s ize re fres h en d

en d de f update su per i f G raphics .frame_cou nt / Gr aphics. fr ame_r ate != @to tal_sec re fres h en d en d en d

c lass XGo ld < Win dow_ Base de f initi ali ze su per( 0, 0, 240, 64) se lf.co ntents = Bitmap.new( widt h - 32, heig ht - 32) se lf.co ntents .font .n ame = $font face se lf.co ntents .font .size = $fonts ize re fres h en d de f re fres h se lf.co ntents .c lear c x = conte nts.te xt_si ze( $dat a_syste m. word s.go ld).widt h se lf.co ntents .font .co lor = no rm al_co lor se lf.co ntents .dr aw_text( 4, 0, 120 -c x- 2, 32, $g ame_part y.go ld.to_ s, 2) se lf.co ntents .font .co lor = sy stem_co lor se lf.co ntents .dr aw_text( 124 -cx , 0, c x, 32, $d ata_syste m. words .go ld , 2) en d en d

c lass Xtit le < W indo w_B ase de f initi ali ze su per( 0, 0, 240, 96) se lf.co ntents = Bitmap.new( widt h - 32, heig ht - 32) se lf.co ntents .font .n ame = "Ti mes Ne w Rom an " se lf.co ntents .font .size = 30 re fres h en d de f re fres h se lf.co ntents .c lear se lf.co ntents .font .n ame = "Ti mes Ne w Rom an " se lf.co ntents .font .co lor = no rm al_co lor se lf.co ntents .font .size = 30 se lf.co ntents .dr aw_text( 4, 0, 120, 32, "Ton t itre ic i") se lf.co ntents .font .n ame = $font face se lf.co ntents .font .co lor = sy stem_co lor se lf.co ntents .font .size = 14 se lf.co ntents .dr aw_text( 4, 0, 120, 100, "Appu iez que [Ec hap]") en d de f update su per re fres h en d en d

de f initi ali ze su per( 0, 0, 240, 96) se lf.co ntents = Bitmap.new( widt h - 32, heig ht - 32) se lf.co ntents .font .n ame = $font face se lf.co ntents .font .size = $fonts ize re fres h en d de f re fres h se lf.co ntents .c lear se lf.co ntents .font .co lor = sy stem_co lor se lf.co ntents .font .size = $fonts ize

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

c lass Xti me < Win dow_Base

se lf.co ntents .dr aw_text( 4, 0, 120, 32, "Tem ps rée l") @t ime_str ing = Time .no w te xt = @ti me_stri ng.s tr fti me( "%A %H :% M:%S ") se lf.co ntents .font .size = 18 se lf.co ntents .font .co lor = no rm al_co lor se lf.co ntents .dr aw_text( 4, 32, 120, 32, text , 2) en d de f update su per re fres h en d en d c lass X location < W indow_B ase de f initi ali ze su per( 0, 0, 240, 64) se lf.co ntents = Bitmap.new( widt h - 32, heig ht - 32) re fres h en d de f re fres h se lf.co ntents .font .n ame = $font face se lf.co ntents .font .size = $fonts ize se lf.co ntents .c lear se lf.co ntents .font .co lor = sy stem_co lor se lf.co ntents .font .co lor = no rm al_co lor $m aps = lo ad_ dat a( "D ata/MapIn fos .rx dat a") @ map_i d = $game_map.map_id @c urrmap = $maps[@map_id ]. name se lf.co ntents .font .size = 16 se lf.co ntents .dr aw_text( 4, 0, 64, 32, @ currm ap) en d en d c lass Xcurso r < Win dow_B ase attr_re ader :in dex attr_re ader : help_ win dow de f initi ali ze(x, y , widt h, heig ht) su per( x, y, wi dt h, hei ght) @ item_ max = 1 @c olumn _max = 1 @ inde x = - 1 en d de f inde x=(in dex) @ inde x = in dex i f se lf.acti ve and @ he lp_win dow != ni l u pd ate_ he lp en d u pd ate_c ursor_rec t en d

i f se lf.acti ve and @ he lp_win dow != ni l u pd ate_ he lp en d en d de f update_cursor _rect ro w = @i nde x / @co lu mn_ max cu rsor_ widt h = 26 x = @in dex / @ co lumn_max * 90 - se lf.ox y = 2 se lf.c ursor_rec t.set( x, y, cu rsor_ widt h, 26)

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

de f he lp_ win dow=( he lp_win dow) @ he lp_ win dow = he lp_ win dow

en d de f update su per i f se lf.acti ve and @item_max > 0 an d @i ndex >= 0 i f I nput.re pe at?(In pu t:: RIGH T) i f ( @ro w_max == 1 and In put .tri gger?(I nput: : RIGHT )) or @ inde x < @ite m_max - @co lu mn_ max $game_sys tem.se_play( $data_s ystem .curso r_se) @ inde x = (@i nde x + @colu mn_m ax ) % @ item_ max en d en d i f I nput.re pe at?(In pu t::LEFT) i f ( @ro w_max == 1 and In put .tri gger?(I nput:: LEFT )) or @ inde x >= @co lu mn_max $game_sys tem.se_play( $data_s ystem .curso r_se) @ inde x = (@i nde x - @co lu mn_ max + @ite m_m ax) % @item_ max en d en d i f I nput.re pe at?(In pu t::DOW N) i f @co lumn_max >= 2 and @in dex < @item_ max - 1 $game_sys tem.se_play( $data_s ystem .curso r_se) @ inde x += 1 en d en d i f I nput.re pe at?(In pu t::UP) i f @co lumn_max >= 2 and @in dex > 0 $game_sys tem.se_play( $data_s ystem .curso r_se) @ inde x - = 1 en d en d i f I nput.re pe at?(In pu t:: R) i f se lf.top_ row + ( self.page _row_ max - 1) < (se lf.ro w_m ax - 1) $game_sys tem.se_play( $data_s ystem .curso r_se) @ inde x = [@in dex + se lf.page_item _m ax, @ite m_m ax - 1]. min se lf.to p_ro w += se lf.page_ro w_ max en d en d i f I nput.re pe at?(In pu t::L) i f se lf.top_ row > 0 $game_sys tem.se_play( $data_s ystem .curso r_se) @ inde x = [@in dex - se lf.page_it e m_m ax , 0].m ax se lf.to p_ro w - = se lf.page_ro w_m ax en d en d en d i f se lf.acti ve and @ he lp_win dow != ni l u pd ate_ he lp en d u pd ate_c ursor_rec t en d en d

de f initi ali ze( widt h, comman ds) su per( 0, 0, widt h, 64) @ item_ max = com mands.si ze @c omman ds = commands ro w_max = 1 co lu mn_ max = 7 se lf.co ntents = Bitmap.new( widt h - 32, @ite m_m ax - 32) se lf.co ntents .font .n ame = $font face se lf.co ntents .font .size = 12 re fres h

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

c lass Xcommand < Xc ursor

se lf.i nde x = 0 en d de f re fres h se lf.co ntents .c lear for i in 0...@ item_ max dr aw_ite m(i , normal_co lor) en d en d de f dr aw_ item( inde x, color) se lf.co ntents .font .co lor = co lor rect = Rect .ne w( 90 * in dex + 29, -2, se lf.co ntents .wi dt h - 8, 30) se lf.co ntents .fi ll_rect(r ect , Co lor .ne w( 0, 0, 0, 0)) bit map1 = RPG: : Cac he.icon (' 034 -Ite m 03') bit map2 = RPG:: Cac he.icon (' 045 -Sk ill02') bit map3 = RPG:: Cac he.icon (' 013 -Bo dy 01') bit map4 = RPG:: Cac he.icon (' 040 -Ite m 09') bit map5 = RPG:: Cac he.icon (' 038 -Ite m 07') bit map6 = RPG:: Cac he.icon (' 048 -Sk ill05') se lf.co ntents .b lt( 0, 2 , bitmap1, Rect. ne w( 0, 0, 24, 24), o pacity ) se lf.co ntents .b lt( 90, 2, bit map2, Rect .ne w( 0, 0, 24, 24), o pacity ) se lf.co ntents .b lt( 180, 2, bit map3, Rect .ne w( 0, 0, 24, 24), o pacity ) se lf.co ntents .b lt( 270, 2, bit map4, Rect .ne w( 0, 0, 24, 24), o pacity ) se lf.co ntents .b lt( 360, 2, bit map5, Rect .ne w( 0, 0, 24, 24), o pacity ) se lf.co ntents .b lt( 450, 2, bit map6, Rect .ne w( 0, 0, 24, 24), o pacity ) se lf.co ntents .dr aw_text(rect , @co mm an ds[i nde x]) en d de f dis ab le_ite m(in dex) dr aw_ite m(in dex, di sab led_co lor) en d en d c lass G ame_ Actor < Game_B att ler de f no w_exp ret urn @e xp - @e xp_ lis t[@ le vel] en d de f next _exp ret urn @e xp_ list[@ leve l+1] > 0 ? @ex p_ list [@ leve l+1] - @ex p_ list [@ leve l] : 0 en d en d c lass Win do w_B aseX < Win do w_B ase

plus_x = 0 r ate_x = 0 plus_y = 25 plus_ widt h = 0 r ate_ widt h = 100 heig ht = 10 align 1 = 1 align 2 = 2 align 3 = 0 gr ade 1 = 1 gr ade 2 = 0 co lor 1 = Color.ne w( 0, 0, 0, 192) co lor 2 = Color.ne w( 255, 255, 192, 192) co lor 3 = Color.ne w( 0, 0, 0, 192) co lor 4 = Color.ne w( 64, 0, 0, 192) co lor 5 = Color.ne w( 80 - 24 * rate , 80 * r ate , 14 * r ate, 192) co lor 6 = Color.ne w( 240 - 72 * rate , 240 * r ate, 62 * rate, 192) i f actor .maxhp != 0 hp = ( widt h + plus_ width) * actor .hp * r ate_ widt h / 100 / actor .m ax hp e lse

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

alias :dr aw_ actor _hp_or igi nal :dr a w_ actor _hp de f dr aw_ actor _hp( actor , x, y , widt h = 144) i f actor .maxhp != 0 r ate = actor.hp.to _f / actor .m ax hp e lse r ate = 0 en d

hp = 0 en d g aug e_rect( x + plus_x + widt h * r ate_ x / 100, y + plus_y , widt h, plus_ widt h + wi dth * r ate_ widt h / 100, heig ht, hp, align 1, ali gn 2, alig n 3, co lor 1, color2, co lor 3, color 4, co lor 5, co lor 6, grade 1, grade 2) dr aw_actor_ hp_orig inal(actor, x, y, wi dt h) en d alias :dr aw_ actor _sp_o rigi nal :dr aw_ actor _sp de f dr aw_ actor _sp( actor , x, y , widt h = 144) i f actor .m axs p != 0 r ate = actor.s p.t o_ f / actor .m axs p e lse r ate = 1 en d plus_x = 0 r ate_x = 0 plus_y = 25 plus_ widt h = 0 r ate_ widt h = 100 heig ht = 10 align 1 = 1 align 2 = 2 align 3 = 0 gr ade 1 = 1 gr ade 2 = 0 co lor 1 = Color.ne w( 0, 0, 0, 192) co lor 2 = Color.ne w( 255, 255, 192, 192) co lor 3 = Color.ne w( 0, 0, 0, 192) co lor 4 = Color.ne w( 0, 64, 0, 192) co lor 5 = Color.ne w( 14 * r ate, 80 - 24 * rate , 80 * r ate, 192) co lor 6 = Color.ne w( 62 * r ate, 240 - 72 * r ate , 240 * r ate, 192) i f actor .maxs p != 0 s p = ( widt h + plus_ wi dt h) * actor .sp * r ate_ wid t h / 100 / actor .m axs p e lse s p = ( widt h + plus_ wi dt h) * r ate_ wid th / 100 en d g aug e_rect( x + plus_x + widt h * r ate_ x / 100, y + plus_y , widt h, plus_ widt h + wi dth * r ate_ widt h / 100, heig ht, s p, align 1, ali gn 2, alig n 3, co lor 1, color2, co lor 3, color 4, co lor 5, co lor 6, grade 1, grade 2) dr aw_actor_s p_orig in al(actor, x, y, wi dt h) en d alias :dr aw_ actor _exp_orig in al :dr aw_acto r_ex p de f dr aw_ actor _exp(actor , x, y, wi dt h = 204)

plus_x = 0 r ate_x = 0 plus_y = 25 plus_ widt h = 0 r ate_ widt h = 100 heig ht = 10 align 1 = 1 align 2 = 2 align 3 = 0 gr ade 1 = 1 gr ade 2 = 0 co lor 1 = Color.ne w( 0, 0, 0, 192) co lor 2 = Color.ne w( 255, 255, 192, 192) co lor 3 = Color.ne w( 0, 0, 0, 192)

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

i f actor .next_exp != 0 r ate = actor .now_ exp.to_ f / actor. next_ ex p e lse r ate = 1 en d

co lor 4 = Color.ne w( 64, 0, 0, 192) co lor 5 = Color.ne w( 80 * r ate, 80 - 80 * rate ** 2, 80 - 80 * r ate , 192) co lor 6 = Color.ne w( 240 * r ate, 240 - 240 * r ate ** 2, 240 - 240 * r ate, 192) i f actor .next_exp != 0 e xp = ( wi dt h + plus_width) * actor. no w_ex p * rate_ wid th / 100 / actor .ne xt_exp e lse e xp = ( wi dt h + plus_width) * r ate_ widt h / 100 en d g aug e_rect( x + plus_x + widt h * r ate_ x / 100, y + plus_y , widt h, plus_ widt h + wi dth * r ate_ widt h / 100, heig ht, e xp, ali gn 1, align2, alig n3, co lor 1, color2, co lor 3, color 4, co lor 5, co lor 6, grade 1, grade 2) dr aw_actor_e xp_or igin al( actor , x , y) en d de f gauge_rec t(x, y , rect_widt h, widt h, heig ht , g auge , ali gn 1, alig n2, align 3, co lor 1, color2, co lor 3, color 4, c o lor 5, co lor 6, grade 1, grade 2) c ase align 1 when 1 x += ( rect_ widt h - wi dt h) / 2 when 2 x += rec t_widt h - wi dt h en d c ase align 2 when 1 y - = hei g ht / 2 when 2 y - = hei g ht en d se lf.co ntents .fi ll_rect( x, y, wi dt h, he ig ht, co lor1) se lf.co ntents .fi ll_rect( x + 1, y + 1, widt h - 2, heig ht - 2, co lor 2) i f align 3 == 0 i f g rade1 == 2 gr ade 1 = 3 en d i f g rade2 == 2 gr ade 2 = 3 en d en d i f ( alig n3 == 1 and grade1 == 0) or gr ade 1 > 0 co lor = co lor 3 co lor 3 = co lor 4 co lor 4 = co lor en d i f ( alig n3 = = 1 and grade2 == 0) or gr ade 2 > 0 co lor = co lor 5 co lor 5 = co lor 6 co lor 6 = co lor en d

se lf.co ntents .gr adation _rect (x + 2, y + 2, g auge - 4, heig ht - 4, co lor 5, color6, gr ade 2) en d en d c lass Bit map de f gradation_re ct(x, y , widt h, heig ht , co lor 1, color 2, alig n = 0) i f align == 0 for i in x...x + wi dt h re d = co lor1.red + (co lor2.re d - co lor 1.re d) * (i - x ) / ( widt h - 1) gre en = co lor 1.g reen + (co lor 2.green - co lor 1.green ) * (i - x) / ( wid th - 1) b lue = colo r1.b lue +

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

se lf.co ntents .gr adation _rect (x + 2, y + 2, widt h - 4, heig ht - 4, co lor 3, color4, gr ade 1) i f align 3 == 1 x += wi dt h - g auge en d

(co lor 2.b lue - co lor 1.b lue) * ( i - x ) / (widt h - 1) alpha = co lor1.alpha + (co lor 2.alpha - colo r1.alpha) * (i - x ) / ( widt h - 1) co lor = Co lor.ne w(red, green , b lue , alpha) fi ll_rect (i, y, 1, he ig ht, color) en d e lsi f align == 1 for i in y ...y + heig ht re d = co lor1.red + (co lor 2.red - colo r1.red) * (i - y) / ( hei g ht - 1) gre en = co lor 1.g reen + (co lor 2.green - co lor 1.green ) * (i - y) / ( heig ht - 1) b lue = colo r1.b lue + (co lor 2.b lue - co lor 1.b lue) * ( i - y) / ( heig ht - 1) alpha = co lor1.alpha + (co lor 2.alpha - colo r1.alpha) * (i - y) / ( heig ht - 1) co lor = Co lor.new(red, green , b lue , alpha) fi ll_rect (x, i, wi dt h, 1, color) en d e lsi f align == 2 for i in x...x + wi dt h for j i n y...y + heig ht re d = co lor1.red + (co lor2.re d - co lor 1.re d) * (( i - x) / (widt h - 1.0) + (j - y ) / ( heig ht - 1.0)) / 2 gre en = co lor 1.g reen + (co lor 2. green - co lor 1.green ) * (( i - x) / (widt h - 1.0) + (j - y ) / ( heig ht - 1.0)) / 2 b lue = colo r1.b lue + (c olor 2.blue - co lor 1.b lue) * (( i - x) / (widt h - 1.0) + (j - y ) / ( heig ht - 1.0)) / 2 alpha = co lor1.alpha + (co lor 2. alpha - co lor 1. alpha) * (( i - x) / (widt h - 1.0) + (j - y ) / ( heig ht - 1.0)) / 2 co lor = Co lor.new(red, green , b lue , alpha) set_ pi xe l(i, j, co lor) en d en d

mo du le RPG c lass Sprite < ::S prite de f damage(v alue , criti cal) d ispose _damage i f v alue .is_ a?(Nu meric ) d am age_ strin g = value.abs .to_s e lse d am age_ strin g = value.to_s en d bit map = Bi tmap.ne w( 160, 48) bit map.fo nt.name = "Ari al B lack " bit map.fo nt.s ize = 32 bit map.fo nt.colo r.set( 0, 0, 0) bit map.dr aw_ text( - 1, 12-1, 160, 36, damage_string , 1) bit map.dr aw_ text( +1, 12 - 1, 160, 36, damage_string , 1) bit map.dr aw_ text( - 1, 12+1, 160, 36, d am age_ strin g, 1) bit map.dr aw_ text( +1, 12+1, 160, 36, d am age_ strin g, 1)

RPG-LIVE.NEUF.FR

/ 2 / 2 / 2 / 2

RPG-LIVE.NEUF.FR

e lsi f align == 3 for i in x...x + wi dt h for j i n y...y + heig ht re d = co lor1.red + (co lor2.re d - co lor 1.re d) * (( x + widt h - i) / ( width - 1.0) + (j - y) / ( hei g ht - 1. 0)) gre en = co lor 1.g reen + (co lor 2. green - co lor 1.green ) * (( x + widt h - i) / ( width - 1.0) + (j - y) / ( hei g ht - 1. 0)) b lue = colo r1.b lue + (c olor 2.blue - co lor 1.b lue) * (( x + widt h - i) / ( width - 1.0) + (j - y) / ( hei g ht - 1. 0)) alpha = co lor1.alpha + (co lor 2. alpha - co lor 1. alpha) * (( x + widt h - i) / ( width - 1.0) + (j - y) / ( hei g ht - 1. 0)) co lor = Co lor.new(red, green , b lue , alpha) set_ pi xe l(i, j, co lor) en d en d en d en d en d

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

i f v alue .is_ a?(Nu meric ) an d v alue < 0 bit map.fo nt.colo r.se t( 176, 255, 144) e lse bit map.fo nt.colo r.set( 255, 255, 255) en d bit map.dr aw_ text( 0, 12, 160, 36, d am age_s tring , 1) i f cr itic al bit map.fo nt.s ize = 20 bit map.fo nt.colo r.set( 0, 0, 0) bit map.dr aw_ text( - 1, - 1, 160, 20, "CRIT IQU E", 1) bit map.dr aw_ text( +1 , -1, 160, 20, "CRI TIQU E", 1) bit map.dr aw_ text( - 1, +1, 160, 20, "CRI TIQU E", 1) bit map.dr aw_ text( +1, +1, 160, 20, "CRI TIQU E", 1) bit map.fo nt.colo r.set( 255, 255, 255) bit map.dr aw_ text( 0, 0, 160, 20, "CRI TIQU E", 1) en d @_ damage_s prite = ::S prite .ne w @_ damage_s prite .bitmap = bit map @_ damage_s prite .ox = 80 + se lf. vie wport .ox @_ damage_s prite .oy = 20 + se lf. vie wport .oy @_ damage_s prite .x = se lf.x + se lf.v iewport .rect .x @_ damage_s prite .y = se lf.y - se lf.o y / 2 + se lf.vie wport.re ct.y @_ damage_s prite .z = 3 000 @_ damage_durat ion = 40 en d de f an imation( ani mation, hit) d ispose _an imation @_ an imation = ani mat ion ret urn i f @_animation == n il @_ an imation_ hi t = hit @_ an imation_ dur ation = @_ an im ation . frame_m ax animatio n_n ame = @_animatio n. ani matio n_n ame animatio n_ hue = @ _an imation .anim ation _hue bit map = RPG:: Cac he.animatio n(anim atio n_n ame, ani mati on_ hue) i f @@_re fere nce_cou nt.inc lude?( bitm ap) @ @_re ferenc e_cou nt[b itmap] += 1 e lse @ @_re ferenc e_cou nt[b itmap] = 1 en d @_ an imation_s prites = [] i f @_animati on .po sition != 3 or not @@_ ani mations .inc lude?( ani mation) for i in 0..15 s prite = : :Spri te.ne w s prite .bitmap = bit map s prite .visib le = false @_ an imation_s prites .push(s prite ) en d u nless @@ _an imations .inc lu de?( ani matio n) @ @_animation s.pus h( animatio n) en d en d u pd ate_ ani mat ion en d de f loo p_ ani mat ion( ani mation) ret urn i f ani mat ion == @_ loo p_anim atio n d ispose _lo op_ ani mat ion @_ loo p_ ani mat ion = animatio n ret urn i f @_ loop_ an imation == n il @_ loo p_ ani mat ion_i ndex = 0 animatio n_n ame = @_loop_anim atio n . anim atio n_name animatio n_ hue = @ _lo op_anim atio n. ani mati on_ hue bit map = RPG:: Cac he.animatio n(anim atio n_n ame, ani mati on_ hue) i f @@_re fere nce_cou nt.inc lude?( bitm ap) @ @_re ferenc e_cou nt[b itmap] += 1 e lse @ @_re ferenc e_cou nt[b itmap] = 1 en d @_ loo p_ ani mat ion_s prites = [] for i in 0..15 s prite = : :Spri te.ne w s prite .bitmap = bit map s prite .visib le = false @_ loo p_ ani mat ion_s prites.pus h(spr ite) en d

u pd ate_ loo p_ animatio n en d de f an imation_se t_spr ites(s prites , ce ll_d at a, positio n) for i in 0..15 s prite = s prites [i ] patt ern = ce ll_dat a[i , 0] i f s prite == n il or patter n == ni l or pattern == - 1 s prite .visib le = false i f s prite != ni l ne xt en d s prite .visib le = t rue s prite .src_rect .set( pattern % 5 * 192, pattern / 5 * 192, 192, 192) i f positio n == 3 i f se lf.vie wpor t != ni l s prite .x = se lf.vie wport .rect .widt h / 2 s prite .y = se lf.v iewport .rect .heig ht - 160 e lse s prite .x = 320 s prite .y = 240 en d e lse s prite .x = se lf.x + se lf.vi ewpor t.rect .x se lf.o x + se lf.src_ rect.wi dt h / 2 s prite .y = se lf.y + s elf.viewpor t.rect .y se lf.o y + se lf.src_re ct.heig ht / 2 s prite .y - = se lf.src _rect.hei ght / 4 i f pos ition == 0 s prite .y += se lf.src_re ct.hei ght / 4 i f pos ition == 2 en d s prite .x += ce ll_data[i , 1] s prite .y += ce ll_data[i , 2] s prite .z = 2000 s prite .ox = 96 s prite .oy = 96 s prite .zoo m_x = ce ll_ dat a[i, 3] / 100. 0 s prite .zoo m_y = ce ll_dat a[i, 3] / 100. 0 s prite .an g le = ce ll_data[i, 4] s prite .mirror = (ce ll_data[i , 5] == 1) s prite .opacit y = ce ll_data[i, 6] * se lf.o pac ity / 255.0 s prite .b lend_t y pe = ce ll_data[i, 7] en d en d en d en d c lass Xst atusse lect < Windo w_ BaseX attr_re ader :in dex attr_re ader : help_ win dow de f initi ali ze(x, y , widt h, heig ht) su per( x, y, wi dt h, hei ght) @ item_ max = 1 @c olumn _max = 1 @ inde x = - 1 en d

i f se lf.acti ve and @ he lp_win dow != ni l u pd ate_ he lp en d u pd ate_c ursor_rec t en d de f row_ max ret urn ( @item_max + @co lu mn_m ax - 1) / @co lum n_m ax en d de f top_ row ret urn se lf.o y / 32

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

de f inde x=(in dex) @ inde x = in dex

en d de f top_ row=(ro w) i f ro w < 0 ro w = 0 en d i f ro w > ro w_max - 1 ro w = ro w_max - 1 en d se lf.o y = row * 32 en d de f page_ro w_ max ret urn (se lf.heig ht - 32) / 32 en d de f page_i tem_ max ret urn page_ro w_max * @c olumn _m ax en d de f he lp_ win dow=( he lp_win dow) @ he lp_ win dow = he lp_ win do w i f se lf.acti ve and @ he lp_win dow != ni l u pd ate_ he lp en d en d de f update_cursor _rect i f @inde x < 0 se lf.c ursor_rec t.empt y ret urn en d ro w = @i nde x / @co lu mn_ max i f ro w < se lf.to p_ro w se lf.to p_ro w = ro w en d i f ro w > se lf.to p_ro w + (se lf.pa ge_ro w_m ax - 1) se lf.to p_ro w = ro w - (se lf.page_ro w_ max - 1) en d cu rsor_ widt h = 32 x = @in dex % @co lu mn_max * (cursor_ wi dt h + 32) y = @in dex / @c olumn _max * 32 - se lf.oy se lf.c ursor_rec t.set( x, y, cu rsor_ widt h, 32) en d

i f se lf.acti ve and @item_max > 0 an d @i ndex >= 0 i f I nput.re pe at?(In pu t::DOW N) i f ( @co lumn_max == 1 and In put. trigg er?(In put ::DOW N)) or @ inde x < @ite m_max - @co lu mn_ max $game_sys tem.se_play( $data_s ystem .curso r_se) @ inde x = (@i nde x + @colu mn_m ax ) % @ item_ max en d en d i f I nput.re pe at?(In pu t::UP) i f ( @co lumn_max == 1 and In put. trigg er?(In put ::UP)) or @ inde x >= @co lu mn_max $game_sys tem.se_play( $data_s ystem .curso r_se) @ inde x = (@i nde x - @co lu mn_ max + @ite m_m ax) % @item_ max

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

de f update su per

en d en d i f I nput.re pe at?(In pu t:: RIGH T) i f @co lumn_max >= 2 and @in dex < @item_ max - 1 $game_sys tem.se_play( $data_s ystem .curso r_se) @ inde x += 1 en d en d i f I nput.re pe at?(In pu t::LEFT) i f @co lumn_max >= 2 and @in dex > 0 $game_sys tem.se_play( $data_s ystem .curso r_se) @ inde x - = 1 en d en d i f I nput.re pe at?(In pu t:: R) i f se lf.top_ row + ( self.page _row_ max - 1) < (se lf.ro w_m ax - 1) $game_sys tem.se_play( $data_s ystem .curso r_se) @ inde x = [@in dex + se lf.page_item _m ax, @ite m_m ax - 1]. min se lf.to p_ro w += se lf.page_ro w_ max en d en d i f I nput.re pe at?(In pu t::L) i f se lf.top_ row > 0 $game_sys tem.se_play( $data_s ystem .curso r_se) @ inde x = [@in dex - se lf.page_ite m_m ax , 0].m ax se lf.to p_ro w - = se lf.page_ro w_m ax en d en d en d i f se lf.acti ve and @ he lp_win dow != ni l u pd ate_ he lp en d u pd ate_c ursor_rec t en d en d c lass Xst atus < Xst atusselect

de f re fres h se lf.co ntents .c lear @ item_ max = $game_party .actors.s ize for i in 0...$g ame_ par ty.actors .si ze x = 64 y = i * 90 actor = $game_ part y.actors [i ] dr aw_actor_ face( actor, x + 200, y + 79) dr aw_actor_gr aphic( actor , x - 50, y + 80) se lf.co ntents .font .size = 18 dr aw_actor_n ame (acto r, x - 60, y + 4) se lf.co ntents .font .co lor = sy stem_co lor se lf.co ntents .dr aw_text(x - 5, y + 2, 120, 32, ' - ') se lf.co ntents .font .co lor = no rm al_co lor dr aw_actor_c lass(actor, x + 75, y + 4) dr aw_a ctor_ leve l( actor , x + 5, y + 4) dr aw_actor_st ate( actor , x + 135, y + 4) dr aw_actor_e xp( actor , x - 35, y + 54) dr aw_actor_ hp(actor, x - 35, y + 32)

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

de f initi ali ze su per( 0, 0, 400, 416) se lf.co ntents = Bitmap.new( widt h - 32, heig ht - 32) se lf.co ntents .font .n ame = $font face se lf.co ntents .font .size = $fonts ize re fres h se lf. acti ve = false se lf.i nde x = -1 en d

dr aw_actor_s p( actor, x + 115, y + 32) en d en d de f update_cursor _rect i f @inde x < 0 se lf.c ursor_rec t .empt y e lse se lf.c ursor_rec t.set( 1, @in dex * 90 + 33, 26, 48) en d en d de f dr aw_ actor _face( actor , x , y) face = RPG:: Cac he .b att ler( actor .c har acter _name, actor. char acter_ hu e) fw = face .widt h fh = 90 src_ rect = Rect.new(3, - 1, fw, fh) o pac ity = 180 se lf.co ntents .b lt( x - fw / 23, y - fh, face, sr c_rect , o pac ity) en d en d c lass Win do w_He lpI temSki ll < W indo w_B ase de f initi ali ze su per( 0, 0, 320, 64) se lf.co ntents = Bitmap.new( widt h - 32, heig ht - 32) se lf.co ntents .font .n ame = $font face se lf.co nt ents .font .size = $fonts ize en d de f set_text(text, align = 0) i f te xt != @te xt or align != @ align se lf.co ntents .c lear se lf.co ntents .font .co lor = no rm al_co lor se lf.co ntents .font .size = 18 se lf.co ntents .dr aw_text( 4, 0, se lf. wid th - 40, 32, tex t, ali gn ) @t ext = te xt @ alig n = alig n @ actor = ni l en d se lf. visib le = tr ue en d

de f set_ene my(e nemy ) te xt = ene my.name st ate_te xt = make_b att ler_st ate_te xt(e nemy , 112, false ) i f st ate_te xt != "" te xt += " " + st ate_te xt en d set_t ext(t ext , 1) en d en d c lass Xski ll < Wi ndo w_Se lect ab le de f initi ali ze(actor) su per( 0, 128, 320, 352) @ actor = actor

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

de f set_actor( actor) i f actor != @ actor se lf.co ntents .c lear dr aw_actor_n ame (acto r, 4, 0) dr aw_actor_st ate( actor , 140, 0) dr aw_actor_ hp(actor, 284, 0) dr aw_actor_s p( actor , 460, 0) @ actor = actor @t ext = n il se lf. visib le = tr ue en d en d

@c olumn _max = 1 re fres h se lf.i nde x = 0 i f $g ame_te mp.in _bat tle se lf. y = 64 se lf. hei g ht = 256 se lf.b ack _opacit y = 160 en d en d de f ski ll ret urn @ data[se lf.in dex] en d de f re fres h i f se lf.conten ts != ni l se lf.co ntents .di spose se lf.co ntents = ni l en d @ dat a = [] for i in 0...@ actor .ski lls.si ze ski ll = $data_ski lls[@actor .ski lls[i]] i f s ki ll != ni l @ dat a.pus h(ski ll) en d en d @ item_ max = @dat a.si ze i f @item_ max > 0 se lf.co ntents = Bitmap.new( widt h - 32, row_m ax * 32) se lf.co ntents .font .n ame = $font face se lf.co ntents .font .size = $fonts ize for i in 0...@ item_ max dr aw_ite m(i) en d en d en d de f dr aw_ item( inde x) ski ll = @ data[in dex] i f @acto r .ski ll_c an_ use?(ski ll.id) se lf.co ntents .font .co lor = no rm al_co lor e lse se lf.co ntents .font .co lor = disable d_co lor en d x = 4 + i nde x % 1 * ( 288 + 32) y = i nde x / 1 * 32 rect = Rect .ne w( x, y , se lf.widt h / @co lum n_m ax - 32, 32) se lf.co ntents .fi ll_rect (r ect , Co lor .ne w( 0, 0, 0, 0)) bit map = RPG:: Cac he.i con (ski ll.ic on_n ame ) o pac ity = se lf.co ntents .font .co lor == nor mal_co lor ? 255 : 128 se lf.co ntents .b lt( x, y + 4, bit map, Re ct.n ew( 0, 0, 24, 24) , opacit y) se lf.co ntents .dr aw_text(x + 28, y , 204, 32, ski l l. name , 0) se lf.co ntents .dr aw_text(x + 232, y , 48, 32, ski ll. sp_cost .to_s , 2) en d

c lass Win do w_Ski llSt atus2 < Win do w_B ase de f initi ali ze(actor) su per( 0, 64, 320, 64) se lf.co ntents = Bitmap.new( widt h - 32, heig ht - 32) se lf.co ntents .font .n ame = $font face se lf.co ntents .font .size = 18 @ actor = actor re fres h en d de f re fres h

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

de f update_ he lp @ he lp_ win dow.set_te xt(se lf.s ki ll == n il ? "" : self.ski ll.descri ptio n) en d en d

se lf.co ntents .c lear dr aw_actor_n ame (@actor , 4, 0) dr aw_actor_st ate(@ actor , 60, 0) dr aw_actor_s p(@ actor , 130, 0) en d en d c lass Win do w_Item2 < W in dow_Se lectable de f initi ali ze su per( 0, 64, 320, 416) @c olumn _max = 1 re fres h se lf.i nde x = 0 i f $g ame_te mp.in _bat tle se lf. y = 64 se lf. hei g ht = 256 se lf.b ack _opacit y = 160 en d en d de f item ret urn @ data[se lf.in dex] en d de f re fres h i f se lf.conten ts != ni l se lf.co ntents .di spose se lf.co ntents = ni l en d @ dat a = [] for i in 1...$data_items .size i f $g ame_ party.item_ number (i) > 0 @ dat a.pus h($dat a_ite ms[i]) en d en d u nless $game_temp.in_b att le for i in 1...$data_we apons.size i f $g ame_ party.we apo n_nu mber(i ) > 0 @ dat a.pus h($dat a_ weapons [i ]) en d en d

@ item_ max = @dat a.si ze i f @item_ max > 0 se lf.co ntents = Bitmap.new( widt h - 32, row_m ax * 32) se lf.co ntents .font .n ame = $font face se lf.co ntents .font .size = $fonts ize for i in 0...@ item_ max dr aw_ite m(i) en d en d en d de f dr aw_ item( inde x) ite m = @ dat a[inde x] c ase ite m when RPG:: Item n umber = $g ame_ party .item_nu mber(it em. id) when RPG:: Weapon n umber = $g ame_ party .we apo n_nu mber( item .id) when RPG:: Ar mor n umber = $g ame_ party .armor_nu mber( item .id) en d

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

for i in 1...$data_ar mors.si ze i f $g ame_ party.armo r_number(i) > 0 @ dat a.pus h($dat a_ armors [i ]) en d en d en d

i f it em.is_a? (RPG::Ite m) and $game_ part y.it em _c an_ use?( item .id) se lf.co ntents .font .co lor = no rm al_co lor e lse se lf.co ntents .font .co lor = disable d_co lor en d x = 4 + i nde x % 1 * ( 288 + 32) y = i nde x / 1 * 32 rect = Rect .ne w( x, y , se lf.widt h / @co lum n_m ax - 32, 32) se lf.co ntents .fi ll_rect(r ect , C o lor .ne w( 0, 0, 0, 0)) bit map = RPG:: Cac he.i con (item .icon _name) o pac ity = se lf.co ntents .font .co lor == nor mal_co lor ? 255 : 128 se lf.co ntents .b lt( x, y + 4, bit map, Re ct.n ew( 0, 0, 24, 24) , opacit y) se lf.co ntents .dr aw_text(x + 28, y , 212, 32, ite m.n ame , 0) se lf.co ntents .dr aw_text(x + 240, y , 16, 32, ":", 1) se lf.co ntents .dr aw_text(x + 256, y , 24, 32, n umber .to_s , 2) en d de f update_ he lp @ he lp_ win dow.set_te xt(se lf.i tem == ni l ? "" : se lf. ite m.d escri ption) en d en d c lass Xski llSce ne de f initi ali ze(ac tor_in dex = 0, e qui p_in dex = 0) @ actor_ inde x = actor_inde x en d de f main @s prite set = Spr iteset_ Map.ne w @ actor = $g ame_ party.actors [@ actor_ inde x] @ he lp_ win dow = Windo w_He lpItemS ki ll.ne w @ he lp_ win dow.back_o pacit y = 160 @ he lp_ win dow.x = - 320 @st atu s_windo w = Wi ndo w_Ski llSt atus 2. new(@ actor ) @st atu s_windo w.bac k_opacity = 160 @st atu s_windo w.x = - 320 @s ki ll_windo w = Xsk ill.ne w(@ actor ) @s ki ll_windo w.bac k_opacit y = 160 @s ki ll_windo w.he lp_ windo w = @ he lp_ win dow @s ki ll_windo w.x = - 320 @t arge t_windo w = Wi ndo w_T arget 2.ne w @t arge t_windo w.visib le = false @t arge t_windo w.act ive = fals e @t arge t_windo w.bac k_opac ity = 160 @t arge t_windo w.y = 480 Gr aphics.t rans ition

Gr aphics.free ze @ he lp_ win dow.dis pose @st atu s_windo w.dis pose @s ki ll_windo w.dis pose @t arge t_windo w.dis pose @s prite set.dispo se en d de f update @ he lp_ win dow.u pdate i f @help_ win dow.x < 0 @ he lp_ win dow.x += 10 en d

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

loo p do Gr aphics.update In pu t.u pdate u pd ate i f $scene != se lf bre ak en d en d

@st atu s_windo w.update i f @stat us_ window.x < 0 @st atu s_windo w.x += 10 en d @s ki ll_windo w.updat e i f @ski ll_ windo w.x < 0 @s ki ll_windo w.x += 10 en d @t arge t_windo w.update i f @tar get_ win dow.y > 0 @t arge t_windo w.y - = 15 en d i f @ski ll_ windo w.act ive u pd ate_s ki ll ret urn en d i f @tar get_ win dow. ac tive u pd ate_t arge t ret urn en d en d de f update_ski ll i f I nput.tr igger? (In put:: B) $game_sys tem.se_play( $data_s ystem .c ance l_se) $scene = Sce ne_ Menu .new( 1) ret urn en d i f I nput.tr igger? (In put:: C) @s ki ll = @ski ll_ win dow.ski ll i f @ski ll == ni l or no t @ actor .ski ll_c an_ use?(@s ki ll.i d) $game_sys tem.se_play( $data_s ystem .bu zzer _se) ret urn en d

i f @ski ll.sco pe == 4 || @ski ll.scope == 6 @t arge t_windo w.inde x = - 1 e lsi f @ ski ll.sco pe == 7 @t arge t_windo w.inde x = @ actor_ inde x - 10 e lse @t arge t_windo w.inde x = 0 en d e lse i f @ski ll.co mmon _event _i d > 0 $game_te mp.common_e vent _id = @ ski ll.co mmon _eve nt_i d $game_sys tem.se_play( @ski ll.men u_se) @ actor .sp -= @ski ll.s p_cost @st atu s_windo w.re fres h @s ki ll_windo w.r efres h @t arge t_windo w.re fres h $scene = Sce ne_ Map.ne w ret urn en d en d ret urn en d i f I nput.tr igger? (In put:: R) $game_sys tem.se_play( $data_s ystem .curso r_se) @ actor_ inde x += 1 @ actor_ inde x % = $game_part y. actors .size $scene = Sce ne_Ski ll.ne w( @acto r_in dex) ret urn en d

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

$game_sys tem.se_play( $data_s ystem .dec ision_se ) i f @ski ll.sco pe >= 3 @s ki ll_windo w.acti ve = fals e @t arge t_windo w.x = 320 @t arge t_windo w.y = 480 @t arge t_wi ndo w.visib le = true @t arge t_windo w.act ive = tr ue

i f I nput.tr igger? (In put:: L) $game_sys tem.se_play( $data_s ystem .curso r _se) @ actor_ inde x += $g ame_part y. actors .size - 1 @ actor_ inde x % = $game_part y. actors .size $scene = Sce ne_Ski ll.ne w( @acto r_in dex) ret urn en d en d de f update_target i f I nput.tr igger? (In put:: B) $game_sys tem.se_play( $data_s ystem .c ance l_se) @s ki ll_windo w.acti ve = true @t arge t_windo w.visib le = false @t arge t_windo w.act ive = fals e i f @ski ll_ windo w.act ive = true @t arge t_windo w.y = 480 en d ret urn en d i f I nput.tr igger? (In put:: C) u nless @ actor.s ki ll_can_use ?(@sk ill.id) $game_sys tem.se_play( $data_s ys tem .bu zzer _se) ret urn en d i f @tar get_ win dow.in dex == - 1 use d = false for i in $game_ par ty.actors use d |= i.s ki ll_ effe ct(@ actor , @sk ill) en d en d i f @tar get_ win dow.in dex = 0 t arget = $g ame_ party.actors [@t arget_ wi ndo w.i nde x] use d = t arget .ski ll_e ffect( @acto r, @s ki ll) en d i f used $game_sys tem.se_play( @ski ll.men u_se) @ actor .sp -= @ski ll.s p_cost @st atu s_windo w.re fres h @s ki ll_windo w.r efres h @t arge t_windo w.re fres h

i f @ski ll.co mmon _event _id > 0 $game_te mp.common_e vent _id = @ ski ll.co mmon _eve nt_i d $scene = Sce ne_ Map.ne w ret urn en d en d u nless use d $game_sys tem.se_play( $data_s ystem .bu zzer _se) en d ret urn en d en d en d c lass Win do w_Target 2 < Wi ndo w_Se lect ab le

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

i f $g ame_ party.all_de ad? $scene = Sce ne_G ameo ver .ne w ret urn en d

de f initi ali ze su per( 0, 0, 320, 400) se lf.co ntents = Bitmap.new( widt h - 32, heig ht - 32) se lf.co ntents .font .n ame = $font face se lf.co ntents .font .size = 18 se lf. z += 10 @ item_ max = $game_party .actors.s ize re fres h en d de f re fres h se lf.co ntents .c lear for i in 0...$g ame_ par ty.actors .si ze x = 4 y = i * 90 actor = $game_ part y.actors [i ] dr aw_actor_ face( actor, x, y + 70) dr aw_actor_ face2(ac tor, x + 200, y + 95) dr aw_actor_n ame (acto r, x + 40, y) dr aw_actor_c lass(actor, x + 200, y + 32) dr aw_actor_ leve l( actor , x + 200, y + 64) dr aw_actor_st ate( actor , x + 100, y) dr aw_actor_ hp(actor, x + 40, y + 32) dr aw_actor_s p( actor, x + 40, y + 64) en d en d de f dr aw_ actor _face( actor , x , y) bit map = RPG:: Cac he.c har acter( actor .c har acter _name, acto r.c harac ter_ hue) c w = bit map.r ect.wi dt h / 4 c h = bi tmap.rect.he ig ht / 4 src_ rect = Rect.new(0, 0, c w, ch) se lf.co ntents .b lt( x - c w / 23 , y - c h, b itm ap, src_rect) en d de f dr aw_ actor _face 2( actor , x , y) face = RPG:: Cac he .b att ler( actor .c har acter _name, actor. char acter_ hu e) fw = face .widt h fh = 90 src_ rect = Rect.new(3, - 1, fw, fh) o pac ity = 160 se lf.co ntents .b lt( x - fw / 23, y - fh, face, sr c_rect , o pac ity) en d de f update_cursor _rect i f @inde x 0 @t arge t_windo w.y - = 15 en d i f @item_ wi ndo w.acti ve u pd ate_i tem ret urn en d i f @tar get_ win dow.ac tive u pd ate_t arge t ret urn en d en d de f update_ite m i f I nput.tr igger? (In put:: B) $game_sys tem.se_play( $data_s ystem .c ance l_se) $scene = Sce ne_ Menu .new( 0) ret urn en d

u nless $game_party .ite m_c an_ use?(@ item .id) $game_sys tem.se_play( $data_s ystem .bu zzer _se) ret urn en d $game_sys tem.se_play( $data_s ystem .dec ision_se ) i f @item.sco pe >= 3 @ item_ win do w.active = fal s e @t arge t_windo w.x = 320 @t arge t_windo w.y = 480 @t arge t_windo w.visib le = true @t arge t_windo w.act ive = tr ue i f @item.sco pe == 4 || @ite m.sco pe == 6 @t arge t_windo w.inde x = - 1 e lse @t arge t_windo w.inde x = 0 en d e lse

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

i f I nput.tr igger? (In put:: C) @ item = @ item_ wi ndo w.ite m u nless @ite m.is _a? (RPG ::Ite m) $game_sys tem.se_play( $data_s ystem .bu zzer _se) ret urn en d

i f @item.common_e vent_id > 0 $game_te mp.common_e vent _id = @ item .com mon_eve nt_i d $game_sys tem.se_play( @ite m. menu_s e) i f @item.cons umab le $game_ part y.lose_ item(@ item .id , 1) @ item_ win do w.draw_item(@ite m_ wind ow.in dex) en d $scene = Sce ne_ Map.ne w ret urn en d en d ret urn en d en d de f update_target i f I nput.tr igger? (In put:: B) $game_sys tem.se_play( $data_s ystem .c ance l_se) u nless $game_party .ite m_c an_ use?(@ item .id) @ item_ win do w.re fres h en d @ item_ win do w.active = true @t arge t_windo w.visib le = false @t arge t_windo w.act ive = fals e @t arge t_windo w.y = 480 ret urn en d i f I nput.tr igger? (In put:: C) i f $g ame_ party.item_ number (@ite m.i d) == 0 $game_sys tem.se_play( $data_s ystem .bu zzer _se) ret urn en d i f @tar get_ win dow.in dex == - 1 use d = false for i in $game_ par ty.actors use d |= i.it em_e ffect (@item) en d en d i f @tar get_ win dow.in dex >= 0 t arget = $g ame_ party.actors [@t arget_ wi ndo w.i nde x] use d = t arget .item_e ffe ct( @item ) en d

@t arge t_windo w.re fres h i f $g ame_ party.all_de ad? $scene = Sce ne_G ameo ver .ne w ret urn en d i f @item.common_e vent_id > 0 $game_te mp.common_e vent _id = @ item .com mon_eve nt_i d $scene = Sce ne_ Map.ne w ret urn en d en d u nless use d $game_sys tem.se_play( $data_s ystem .bu zzer _se) en d ret urn en d

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

i f used $game_sys tem.se_play( @ite m. menu_s e) i f @item.cons umab le $game_ part y.lose_ item(@ item .id , 1) @ item_ win do w.draw_item(@ite m_ wind ow.in dex) en d

en d en d c lass Win do w_Status 2 < Wi ndo w_B ase de f initi ali ze(actor) su per( 0, 0, 430, 370) se lf.co ntents = Bitmap.new( widt h - 32, heig ht - 32) se lf.co ntents .font .n ame = $font face se lf.co ntents .font .size = $fonts ize @ actor = actor re fres h en d de f re fres h se lf.co ntents .c lear dr aw_actor_gr aphic(@ actor , 20, 45) dr aw_actor_ face(@ actor , 270, 250) dr aw_actor_n ame (@actor , 4 + 40, 10) dr aw_actor_c lass(@ actor, 4 + 160 + 40, 10) dr aw_actor_ leve l( @act or, 96 + 40, 10) dr aw_actor_st ate(@ actor , 244+ 40, 10) se lf.co ntents .font .size = 18 dr aw_actor_ hp(@ actor , 0, 100, 172) dr aw_actor_s p(@ actor , 0, 116, 172) dr aw_actor_ par amet er(@ actor , 0, 160, 0) dr aw_actor_ par amet er(@ a ctor , 0, 224 - 32, 1) dr aw_actor_ par amet er(@ actor , 0, 256 - 32, 2) dr aw_actor_ par amet er(@ actor , 0, 304 - 32, 3) dr aw_actor_ par amet er(@ actor , 0, 336 - 32, 4) dr aw_actor_ par amet er(@ actor , 0 + 200, 304 - 32, 5) dr aw_actor_ par amet er(@ actor , 0 + 200, 336 - 32, 6) se lf.co ntents .font .co lor = sy stem_co lor se lf.co ntents .dr aw_text( 0, 48, 80, 32, "EXP") se lf.co ntents .dr aw_text( 0, 64, 80, 32, "N EXT ") se lf.co ntents .font .co lor = no rm al_co lor se lf.co ntents .dr aw_text( 0 + 80, 48, 84, 32, @ac tor.e xp_s , 2) se lf.co ntents .dr aw_text( 0 + 80, 64, 84, 32, @ac tor.ne xt_rest _ex p_s, se lf.co ntents .font .co lor = sy stem_co lor se lf.co ntents .dr aw_text( 200, 48, 96, 32, "Equ ipment ") dr aw_ite m_n ame( $dat a_weapons [@ actor .we apon_i d], 200 + 4, 80) dr aw_ite m_n ame( $dat a_armors [@ acto r .ar mor 1_id ], 200 + 4, 128) dr aw_ite m_n ame( $dat a_armors [@ actor .ar mor 2_id ], 200 + 4, 304 dr aw_ite m_n ame( $dat a_armors [@ actor .ar mor 3_id ], 200 + 4, 352 dr aw_ite m_n ame( $dat a_armors [@ actor .ar mor 4_id ], 200 + 4, 400 en d

2)

128) 128) 128)

de f dr aw_ actor _fac e( actor , x , y) face = RPG:: Cac he .b att ler( actor .c har acter _name, actor. char acter_ hu e) fw = face .widt h fh = fac e.heig ht src_ rect = Rect.new(3, - 1, fw, fh) o pac ity = 120 se lf.co ntents .b lt( x - fw / 23, y - fh, face, sr c_rect , o pac ity) en d en d

de f main @s prite set = Spr iteset_ Map.ne w @ actor = $g ame_ party.actors [@ actor_ inde x] @st atu s_windo w = Wi ndo w_St atus 2. new(@actor) @st atu s_windo w.bac k_opacity = 160 @st atu s_windo w.x = - 430 Gr aphics.t rans ition loo p do Gr aphics.update In pu t.u pdate u pd ate

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

c lass Sce ne _Stat us2 de f initi ali ze(actor_in dex = 0, e qui p_in dex = 0) @ actor_ inde x = actor_inde x en d

i f $scene != se lf bre ak en d en d Gr aphics.free ze @st atu s_windo w.dis pose @s prite set.dispo se en d de f update i f @stat us_ window.x < 0 @st atu s_windo w. x +=10 en d i f I nput.tr igger? (In put:: B) $game_sys tem.se_play( $data_s ystem .c ance l_se) $scene = Sce ne_ Menu .new( 3) ret urn en d i f I nput.tr igger? (In put:: R) $game_sys tem.se_play( $data_s ystem .curso r_se) @ actor_ inde x += 1 @ actor_ inde x % = $game_part y. acto rs .size $scene = Sce ne_St atus .new(@ actor_ inde x) ret urn en d i f I nput.tr igger? (In put:: L) $game_sys tem.se_play( $data_s ystem .curso r_se) @ actor_ inde x += $g ame_part y. actors .size - 1 @ actor_ inde x % = $game_part y. actors .size $scene = Sce ne_St atus .new(@ acto r_ inde x) ret urn en d en d en d

de f main @s prite set = Spr iteset_ Map.ne w s 1 = "To Tit le" s 2 = "S hutdo wn " s 3 = "Cance l" @c omman d_windo w2 = Wi ndo w_ Com man d. new(192, [s 1, s 2, s 3]) @c omman d_windo w2.x = - 192 @c omman d_windo w2.y = 240 - @co mm and_ wi ndow2. heig ht / 2 @c omman d_windo w2.back_o pacity = 160 Gr aphics.t rans ition loo p do Gr aphics.update In pu t.u pdate u pd ate i f $scene != se lf bre ak en d en d Gr aphics.free ze @c omman d_windo w2.dispose @s prite set.dispo se i f $scene .is_ a?(Sce ne_T i tle) Gr aphics.t rans ition Gr aphics.free ze en d en d de f update @c omman d_windo w2.update i f@ comman d_ window2.x < 320 - @com mand_ win do w2. widt h / 2 @c omman d_windo w2.x += 10 en d

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

c lass Scene _End2

i f I nput.tr igger? (In put:: B) $game_sys tem.se_play( $data_s ystem .c ance l_se) $scene = Sce ne_ Menu .new( 8) ret urn en d i f I nput.tr igger? (In put:: C) c ase @co mman d_windo w2.i nde x when 0 $game_sys tem.se_play( $data_s ystem .dec ision_se ) Audi o.bg m_ fade( 800) Audi o.bgs _ fade( 800) Audi o.me _fade( 800) $scene = Sce ne_Title.ne w when 1 $game_sys tem.se_play( $data_s ystem .dec ision_se ) Audi o.bg m_ fade( 800) Audi o.bgs _ fade( 800) Audi o.me _fade( 800) $scene = ni l when 2 $game_sys tem.se_play( $data_s ystem .dec ision_se ) $scene = Sce ne_ Menu .new( 8) en d ret urn en d en d en d c lass Win do w_ Equi pL eft2 < Wi ndo w_B ase de f initi ali ze(actor) su per( 0, 64, 272, 416) se lf.co ntents = Bitmap.new( widt h - 32, heig ht - 32) se lf.co ntents .font .n ame = $font face se lf.co ntents .font .size = $fonts ize @ actor = actor re fres h en d

i f @ne w_pde f != ni l se lf.co ntents .font .co lor = sy stem_co lor se lf.co ntents .dr aw_text( 160, 96, 40, 32, "» ", 1) se lf.co ntents .font .co lor = no rm al_co lor se lf.co ntents .dr aw_text( 200, 96, 36, 32, @ne w_ pdef.t o_s, 2) en d i f @ne w_mde f != ni l se lf.co ntents .font .c o lor = sy stem_co lor se lf.co ntents .dr aw_text( 160, 128, 40, 32, "»", 1) se lf.co ntents .font .co lor = no rm al_co lor se lf.co ntents .dr aw_text( 200, 128, 36, 32, @ ne w_mde f.to_s , 2) en d en d de f set_ne w_ par ame ters(ne w_ atk , ne w_ pde f, ne w_m de f) se lf.co ntents .fon t .n ame = $font face i f @ne w_at k != ne w_atk or @ne w_pde f != ne w_ pde f or @ne w_m de f != ne w_m de f @ new_at k = ne w_at k

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

de f re fres h se lf.co ntents .c lear dr aw_actor_gr aphic(@ actor , 20, 58) dr aw_actor_ face(@ actor , 136, 360) dr aw_actor_n ame (@actor , 52, 0) dr aw_actor_ leve l( @act or, 52, 32) dr aw_actor_ par amet er(@ actor , 4, 64, 0) dr aw_actor_ par amet er(@ actor , 4, 96, 1) dr aw_actor_ par amet er(@ actor , 4, 128, 2) i f @ne w_at k != ni l se lf.co ntents .font .n ame = "Ar ial" se lf.co ntents .font .co lor = sy stem_co lor se lf.co ntents .dr aw_text( 160, 64, 40, 32, "» ", 1) se lf.co ntents .font .co lor = no rm al_co lor se lf.co ntents .dr aw_text( 200, 64, 36, 32, @ne w_atk.to_s , 2) en d

@ new_pde f = ne w_pde f @ new_mde f = new_mde f re fres h en d en d de f dr aw_ actor _face( actor , x , y) face = RPG:: Cac he .b att ler( actor .c har acter _nam e, actor. char acter_ hu e) fw = face .widt h fh = fac e.heig ht src_ rect = Rect.new(3, - 1, fw, fh) se lf.co ntents .b lt( x - fw / 23, y - fh, face, sr c_rect) en d en d c lass Win do w_ Equi pRig ht 2 < Wi ndo w_Se lect ab le de f initi ali ze(actor) su per( 272, 64, 368, 192) se lf.co ntents = Bitmap.new( widt h - 32, heig ht - 32) se lf.co ntents .font .n ame = $font face se lf.co ntents .font .size = $fonts ize @ actor = actor re fres h se lf.i nde x = 0 en d de f item ret urn @ data[se lf.in dex] en d de f re fres h se lf.co ntents .c lear @ dat a = [] @ dat a.pus h($dat a_ weapons [@ actor .weapon_i d]) @ dat a.pus h($dat a_ armors [@ actor. ar mor1_id ]) @ dat a.pus h($dat a_ armors [@ actor. ar mor2_id ]) @ dat a.pus h($dat a_ armors [@ actor. ar mor3_id ]) @ dat a.pus h($dat a_ armors [@ actor. ar mor4_id ]) @ item_ max = @dat a.si ze se lf.co ntents .font .co lor = sy stem_co lor se lf.co ntents .dr aw_text( 4, 32 * 0, 92, 32, $d at a_syste m. words .weapon) se lf.co ntents .dr aw_text( 4, 32 * 1, 92, 32, $d at a_syste m. words .ar mor 1) se lf.co ntents .dr aw_text( 4, 32 * 2, 92, 32, $d at a_syste m. words .ar mor 2) se lf.co ntents .dr aw_text( 4, 32 * 3, 92, 32, $d at a_syste m. words .ar mor 3) se lf.co ntents .dr aw_text( 5, 32 * 4, 92, 32, $d at a_syste m. words .ar mor 4) dr aw_ite m_n ame( @data[0], 92, 32 * 0) dr aw_ite m_n ame( @data[1], 92, 32 * 1) dr aw_ite m_n ame( @data[2], 92, 32 * 2) dr aw_ite m_n ame( @data[3], 92, 32 * 3) dr aw_ite m_n ame( @data[4], 92, 32 * 4) en d de f update_ he lp @ he lp_ win dow.set_te xt(se lf.i tem == ni l ? "" : se lf. ite m.d escri ption) en d en d

de f initi ali ze(actor, e quip_ty pe) su per( 272, 256, 368, 224) @ actor = actor @e qui p_ty pe = eq uip_ty pe @c olumn _max = 1 re fres h se lf. acti ve = false se lf.i nde x = -1 en d de f item ret urn @ data[se lf.in dex] en d

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

c lass Win do w_ Equi pIte m2 < Win do w_Se lect ab le

de f re fres h i f se lf.conten ts != ni l se lf.co ntents .di spose se lf.co ntents = ni l en d @ dat a = [] i f @equi p_t ype == 0 weapon_ set = $dat a_c lasses [@ actor. class_i d]. weapon_set for i in 1...$data_we apons.size i f $g ame_ party.we apo n_nu mber(i ) > 0 an d weapon_set .inc lude?( i) @ dat a.pus h($dat a_ weapons [i ]) en d en d en d i f @equi p_t ype != 0 armor_se t = $dat a_c lasses [@ actor. class_i d].ar mor_set for i in 1...$data_ar mors.si ze i f $g ame_ party.armo r_number(i) > 0 an d ar mor_set .inc lu de?(i ) i f $d ata_ar mors[i].kin d == @eq ui p_ty pe - 1 @ dat a.pus h($dat a_ armors [i ]) en d en d en d en d @ dat a. pus h(ni l) @ item_ max = @dat a.si ze se lf.co ntents = Bitmap.new( widt h - 32, row_m ax * 32) se lf.co ntents .font .n ame = $font face se lf.co ntents .font .size = $fonts ize for i in 0...@ item_ max - 1 dr aw_ite m(i) en d en d de f dr aw_ item( inde x) ite m = @ dat a[inde x] x = 4 + i nde x % 2 * ( 288 + 32) y = i nde x / 2 * 32 c ase ite m when RPG:: Weapon n umber = $g ame_ party .we apo n_nu mber( item .id) when RPG:: Ar mor n umber = $g ame_ party .armor_nu mber( item .id) en d bit map = RPG:: Cac he.i con (item .icon _name) se lf.co ntents .b lt( x, y + 4, bit map, Re ct.n ew( 0, 0, 24, 24)) se lf.co ntents .font .co lor = no rm al_co lor se lf.co ntents .dr aw_text(x + 28, y , 212, 32, ite m.n ame , 0) se lf.co ntents .dr aw_text(x + 240, y , 16, 32, ":", 1) se lf.co ntents .dr aw_text(x + 256, y , 24, 32, n umber .to_s , 2) en d

c lass Scene _Equi p2 de f initi ali ze(actor_in dex = 0, e qui p_in dex = 0) @ actor_ inde x = actor_inde x @e qui p_in dex = e qui p_inde x en d de f main @s prite set = Spr iteset_ Map.ne w @ actor = $g ame_ party.actors [@ actor_ inde x] @ he lp_ win dow = Windo w_He lp.n ew @ he lp_ win dow.back_o pacit y = 160

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

de f update_ he lp @ he lp_ win dow.set_te xt(se lf.i tem == ni l ? "" : se lf. ite m.d escri ption) en d en d

@ he lp_ win dow.y = - 100 @ le ft_ wi ndo w = Win do w_Eq uipLe ft 2.ne w( @acto r) @ le ft_ wi ndo w.b ack_ opacit y = 160 @ le ft_ wi ndo w.x = -280 @r ig ht_ win dow = Win dow_ Equ ipRig ht 2.ne w(@ actor) @r ig ht_ win dow.b ack_o pacit y = 160 @r ig ht_ win dow.x = 642 @ item_ win do w1 = Window_ Equ ipIte m 2.ne w( @ac tor , 0) @ item_ win do w1.b ack_o pacity = 160 @ item_ win do w1.y = 486 @ item_ win do w2 = Window_ Equ ipIte m 2.ne w( @ac tor , 1) @ item_ win do w2.b ack_o pacity = 160 @ item_ win do w2.y = 486 @ item_ win do w3 = Window_ Equ ipIte m 2.ne w( @ac tor , 2) @ item_ win do w3.b ack_o pacity = 160 @ item_ win do w3.y = 486 @ item_ win do w4 = Window_ Equ ipIte m 2.ne w( @ac tor , 3) @ item_ win do w4.b ack_o pacity = 160 @ item_ win do w4.y = 486 @ item_ win do w5 = Window_ Equ ipIte m 2.ne w( @ac tor , 4) @ item_ win do w5.b ack_o pacity = 160 @ item_ win do w5.y = 486 @r ig ht_ win dow.he lp_ wi ndo w = @ he lp_ win dow @ item_ win do w1.he lp_ win dow = @ he lp_ wi ndo w @ item_ win do w2.he lp_ win dow = @ he lp_ wi ndo w @ item_ win do w3.he lp_ win dow = @ he lp_ wi ndo w @ item_ win do w4.he lp_ win dow = @ he lp_ wi ndo w @ item_ win do w5.he lp_ win dow = @ he lp_ wi ndo w @r ig ht_ win dow.in dex = @e qui p_in dex re fres h Gr aphics.t rans ition loo p do Gr aphics.update In pu t.u pdate u pd ate i f $scene != se lf bre ak en d en d Gr aphics.free ze @ he lp_ win dow.dis pose @ le ft_ wi ndo w.dispose @r ig ht_ win dow.di spose @ item_ win do w1.dis pose @ item_ win do w2.dis pose @ item_ win do w3.dis pose @ item_ win do w4.dis pose @ item_ win do w5.dis pose @s prite set.dispo se en d de f re fres h @ item_ win do w1.vis ib le @ item_ win do w2.vis ib le @ item_ win do w3.vis ib le @ item_ win do w4.vis ib le @ item_ win do w5.vis ib le

= = = = =

( @rig ht_ wi ndo w.i nde x ( @rig ht_ wi ndo w.i nde x ( @rig ht_ wi ndo w.i nde x ( @rig ht_ wi ndo w.i nde x ( @rig ht_ wi ndo w.i nde x

== == == == ==

0) 1) 2) 3) 4)

c ase @r ig ht_ win dow.in dex when 0 @ item_ win do w = @ite m_win dow1 when 1 @ item_ win do w = @ite m_win dow2 when 2 @ item_ win do w = @ite m_win dow3 when 3 @ item_ win do w = @ite m_win dow4 when 4 @ item_ win do w = @ite m_win dow5

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

ite m 1 = @rig ht _wi ndo w.ite m

en d i f @rig ht_ win do w.active @ le ft_ wi ndo w.set _ne w_parameters( ni l, n il, ni l) en d i f @item_ wi ndo w.acti ve ite m 2 = @ite m_windo w.item las t_ hp = @acto r.hp las t_sp = @ac tor.s p @ actor .equi p( @rig ht_ win dow.in dex , ite m2 == n il ? 0 : item 2. id) ne w_ atk = @actor .a tk ne w_ pde f = @acto r.pde f ne w_ mde f = @ actor .mde f @ actor .equi p( @rig ht_ win dow.in dex , ite m1 == n il ? 0 : item 1. id) @ actor .hp = last_ hp @ actor .sp = last_s p @ le ft_ wi ndo w.set _ne w_parameters( new_ atk , ne w_ pde f, ne w_m de f) en d en d de f update i f @help_ win dow.y < 0 @ he lp_ win dow.y += 10 en d @ le ft_ wi ndo w.u pdate i f @le ft _wi ndo w.x < 0 @ le ft_ wi ndo w.x += 10 en d @r ig ht_ win dow.u pdate i f @rig ht_ win do w.x > 272 @r ig ht_ win dow.x - = 10 en d @ item_ win do w.u pdate i f @item_ wi ndo w1.y > 256 @ item_ win do w1.y - = 10 en d i f @item_ wi ndo w2.y > 256 @ item_ win do w2.y - = 10 en d i f @item_ wi ndo w3.y > 256 @ item_ win do w3.y - = 10 en d i f @item_ wi ndo w4.y > 256 @ item_ win do w4.y - = 10 en d i f @item_ wi ndo w5.y > 256 @ item_ win do w5.y - = 10 en d re fres h i f @rig ht_ win do w.active u pd ate_r ig ht ret urn en d

de f update_rig ht i f I nput.tr igger? (In put:: B) $game_sys tem.se_play( $data_s ystem .c ance l_se) $scene = Sce ne_ Menu .new( 2) ret urn en d i f I nput.tr igger? (In put:: C) i f @actor .eq uip_ fix?( @rig ht_ wi ndo w.i nde x) $game_sys tem.se_play( $data_s ystem .bu zzer _se)

RPG-LIVE.NEUF.FR

RPG-LIVE.NEUF.FR

i f @item_ wi ndo w.acti ve u pd ate_i tem ret urn en d en d

ret urn en d $game_sys tem.se_play( $data_s ystem .dec ision_se ) @r ig ht_ win dow.active = false @ item_ win do w.active = true @ item_ win do w.i ndex = 0 ret urn en d i f I nput.tr igger? (I n put:: R) $game_sys tem.se_play( $data_s ystem .curso r_se) @ actor_ inde x += 1 @ actor_ inde x % = $game_part y. actors .size $scene = Sce ne_ Equ ip.new(@ actor_ inde x, @rig ht_win dow.in dex) ret urn en d i f I nput.tr igger? (In put:: L) $game_sys tem.se_play( $data_s ystem .cur so r_se) @ actor_ inde x += $g ame_part y. actors .size - 1 @ actor_ inde x % = $game_part y. actors .size $scene = Sce ne_ Equ ip.new(@ actor_ inde x, @rig ht_win dow.in dex) ret urn en d en d de f update_ite m i f I nput.tr igger? (In put:: B) $game_sys tem.se_play( $data_s ystem .c ance l_se) @r ig ht_ win dow.active = tr ue @ item_ win do w.active = fals e @ item_ win do w.i ndex = -1 ret urn en d

RPG-LIVE.NEUF.FR

i f I nput.tr igger? (In put:: C) $game_sys tem.se_play( $data_s ystem .equ ip_s e) ite m = @ite m_ win dow.item @ actor .equi p( @rig ht_ win dow.in dex , ite m == ni l ? 0 : item .id) @r ig ht_ win dow.active = tr ue @ item_ win do w.active = fals e @ item_ win do w.i ndex = -1 @r ig ht_ win dow.re fres h @ item_ win do w.re fres h ret urn en d en d en d

RPG-LIVE.NEUF.FR