-
Posts
620 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by Melosx
-
-
eh lo so.. ma il proj richiedeva abilità che non avevo(mapping e pixel artist in primis) quindi ho alsciato perdere...
-
Nessuna... A parte come detto i TP e la grafica made in Ishar(pace all'anima di quel progetto...)...
-
STR33g1_Battle Status 0.5 VXAce Version
Descrizione
Conversione dello script di Star alla qualle ho aggiunto i TP...Autore
Versione VX originale: StarVersione VXAce: MelosxAllegati
Screenshot
http://i39.tinypic.com/11hrnyg.png
Istruzioni per l'uso
Copiare sotto materials e sopra main. Inserite le immagini conetenute nel rar nella cartella Graphics/SystemScript
#============================================================================== # ★RGSS2 # STR33g1_Battle Status 0.5 08/03/20 # VXAce Version by Melosx 12/03/04 # # ・STR11e has the same specifications. # ★STR11eの後付ゲージプラグインを利用することができます。 # このスクリプトより下に導入してください。 # # ◇Features # ・Different HP/MP/TP Gauge Flavor # ・"Rolling" Numbers # ・State Icon Cycle # # ◇Materials # This script requires several image skins. # Skin images are placed in the .Graphics\System folder. # # ・Main Skin # HP/MP Back Gauge Skin # No size limit. # ・HP/MP Gauge # Normally two gauges # Width = Unlimited # Height = Gauge Height(Optional) * 2 # 一列目に通常ゲージ、二列目に追尾ゲージを配置します。 # ・Numbers # 0123456789 is the order of number arrays # Width = One Frame Width(Any Size) * 10 # Height = Unlimited # ・State Skin # State Icon Main Skin # なにもステートが掛かっていない時は非表示になる仕様の為、 # Main skin is separate. # No size limit. # #============================================================================== # ■ Window_BattleStatus #============================================================================== class Window_BattleStatus < Window_Selectable # Skin File name BTSKIN_00 = "Btskin_main" # Main Skin BTSKIN_01 = "Btskin_hp" # HP(Gauge) BTSKIN_02 = "Btskin_mp" # MP(Gauge) BTSKIN_07 = "Btskin_tp" # TP(gauge) BTSKIN_04 = "Btskin_n00" # HP(Numbers) BTSKIN_05 = "Btskin_n01" # MP(Numbers) BTSKIN_08 = "Btskin_n02" # TP(Numbers) BTSKIN_03 = "Btskin_state" # State # Skin coordinates[ x, y] BTSKIN_B_XY = [ -5, 3] # Standard Coordinates BTSKIN_00XY = [ 0, 0] # Main Skin BTSKIN_01XY = [157, 14] # HP(Gauge) BTSKIN_02XY = [243, 14] # MP(Gauge) BTSKIN_07XY = [328, 14] # TP(Gauge) BTSKIN_04XY = [175, 0] # HP(Numbers) BTSKIN_05XY = [260, 0] # MP(Numbers) BTSKIN_08XY = [349, 0] # TP(Numbers) BTSKIN_03XY = [100, -10] # State Skin BTSKIN_06XY = [100, 0] # State # Various Settings BTSKIN_01GS = 2 # HP Gauge Speed (Low values are fast) BTSKIN_02GS = 4 # MP Gauge Speed(Low values are fast) BTSKIN_07GS = 4 # TP Gauge Speed(Low values are fast) BTSKIN_04SS = 8 # HP Rolling Numbers Speed(Low values are fast) BTSKIN_05SS = 2 # MP Rolling Numbers Speed(Low values are fast) BTSKIN_08SS = 4 #TP Rolling Numbers Speed(Low values are fast) BTSKIN_04NS = 4 # HP Maximum Digits BTSKIN_05NS = 4 # MP Maximum Digits BTSKIN_08NS = 3 # TP Maximum Digits BTSKIN_06WH = [24,24] # [state Width, Height] BTSKIN_06SC = 2 # State Icon Scroll Speed # (Values close to 1 are fast) # バトルステータス座標 def set_xy @x = [] @y = [] for i in 0...$game_party.battle_members.size x = 0 y = (i * 24) @x[i] = x + 16#+ STRRGSS2::ST_SX @y[i] = y + 16#+ STRRGSS2::ST_SY end end # 設定箇所ここまで @@f = false #-------------------------------------------------------------------------- # ★ エイリアス #-------------------------------------------------------------------------- alias initialize_str33 initialize def initialize(f = false) initialize_str33 unless @@f @f = @@f = true else @f = false end set_xy @s_sprite = [] @s_party = [] @s_lv = [] @opacity = 0 self.contents.dispose self.create_contents self.back_opacity = 0 self.opacity = 0 #@column_max = $game_party.actors.size @viewport = Viewport.new(0, 416-128, 416, 128) @hpgw = (Cache.system(BTSKIN_01)).width @mpgw = (Cache.system(BTSKIN_02)).width @tpgw = (Cache.system(BTSKIN_07)).width @viewport.z = self.z - 1 @state_opacity = [] @item_max = $game_party.members.size return unless @f for i in 0...@item_max draw_item(i) end update end #-------------------------------------------------------------------------- # ● リフレッシュ潰し #-------------------------------------------------------------------------- def refresh # :-) end #-------------------------------------------------------------------------- # ● ステートの描画 #-------------------------------------------------------------------------- def draw_actor_state(actor) icon = Cache.system("Iconset") w = actor.states.size * 24 w = 24 if w < 1 bitmap = Bitmap.new(w, BTSKIN_06WH[1]) count = 0 for state in actor.states icon_index = state.icon_index x = 24 * count rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24) bitmap.blt(x, 0, icon, rect) count += 1 end return bitmap end #-------------------------------------------------------------------------- # ● 名前作成 #-------------------------------------------------------------------------- def name_bitmap(actor) bitmap = Bitmap.new(100, 24) bitmap.font.size = 16 bitmap.draw_text(0, 0, 100, 24, actor.name) return bitmap end #-------------------------------------------------------------------------- # ● ステート数取得 #-------------------------------------------------------------------------- def state_size(actor) return actor.states.size end #-------------------------------------------------------------------------- # ● アイテム作成 #-------------------------------------------------------------------------- def draw_item(index) return unless @f actor = $game_party.battle_members[index] # @s_sprite[index] = [] s = @s_sprite[index] # メインスキン s[0] = Sprite.new(@viewport) s[0].bitmap = Cache.system(BTSKIN_00) s[0].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_00XY[0] s[0].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_00XY[1] s[0].z = 0 # HP s[1] = Sprite.new(@viewport) s[1].bitmap = Cache.system(BTSKIN_01) s[1].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_01XY[0] s[1].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_01XY[1] s[1].z = 4 w = s[1].bitmap.width h = s[1].bitmap.height / 2 s[1].src_rect.set(0, 0, w, h) s[2] = Sprite.new(@viewport) s[2].bitmap = Cache.system(BTSKIN_01) s[2].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_01XY[0] s[2].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_01XY[1] s[2].z = 3 s[2].src_rect.set(0, h, w, h) s[11] = 96 s[6] = Sprite_strNumbers.new(@viewport, BTSKIN_04, BTSKIN_04NS) s[6].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_04XY[0] s[6].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_04XY[1] s[6].z = 5 s[13] = actor.hp s[6].update(s[13]) # MP s[3] = Sprite.new(@viewport) s[3].bitmap = Cache.system(BTSKIN_02) s[3].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_02XY[0] s[3].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_02XY[1] s[3].z = 4 w = s[3].bitmap.width h = s[3].bitmap.height / 2 s[3].src_rect.set(0, 0, w, h) s[4] = Sprite.new(@viewport) s[4].bitmap = Cache.system(BTSKIN_02) s[4].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_02XY[0] s[4].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_02XY[1] s[4].z = 3 s[4].src_rect.set(0, h, w, h) s[12] = 56 s[7] = Sprite_strNumbers.new(@viewport, BTSKIN_05, BTSKIN_05NS) s[7].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_05XY[0] s[7].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_05XY[1] s[7].z = 5 s[14] = actor.mp s[7].update(s[14]) s[16] = Sprite.new(@viewport) s[16].bitmap = Cache.system(BTSKIN_07) s[16].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_07XY[0] s[16].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_07XY[1] s[16].z = 4 w = s[16].bitmap.width h = s[16].bitmap.height / 2 s[16].src_rect.set(0, 0, w, h) s[17] = Sprite.new(@viewport) s[17].bitmap = Cache.system(BTSKIN_07) s[17].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_07XY[0] s[17].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_07XY[1] s[17].z = 3 s[17].src_rect.set(0, h, w, h) s[20] = 56 s[18] = Sprite_strNumbers.new(@viewport, BTSKIN_08, BTSKIN_08NS) s[18].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_08XY[0] s[18].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_08XY[1] s[18].z = 5 s[19] = (actor.tp * 100).to_i s[18].update(s[19]) # ステート s[5] = Viewport.new(0, 0, BTSKIN_06WH[0], BTSKIN_06WH[1]) s[5].rect.x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_06XY[0] + @viewport.rect.x s[5].rect.y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_06XY[1] + @viewport.rect.y s[5].z = @viewport.z + 1 s[8] = Sprite.new(@viewport) s[8].bitmap = Cache.system(BTSKIN_03) s[8].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_03XY[0] s[8].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_03XY[1] s[8].z = -2 s[9] = Plane.new(s[5]) s[9].bitmap = draw_actor_state(actor) s[10] = state_size(actor) # 現在のステータスに s[11] = ((@hpgw * (actor.hp / (actor.mhp * 1.0))) + 1).truncate if actor.mmp != 0 s[12] = ((@mpgw * (actor.mp / (actor.mmp * 1.0))) + 1).truncate else s[12] = 0 end s[20] = ((@tpgw * (actor.tp_rate* 1.0)) + 1).truncate s[15] = Sprite.new(@viewport) s[15].bitmap = name_bitmap(actor) s[15].x = @x[index] + 4 s[15].y = @y[index] + 2 s[15].z = 0 s[1].src_rect.width = s[11] s[2].src_rect.width = s[11] s[3].src_rect.width = s[12] s[4].src_rect.width = s[12] s[16].src_rect.width = s[20] s[17].src_rect.width = s[20] s[6].update(s[13]) s[7].update(s[14]) s[18].update(s[19]) # 不可視に for l in [0,1,2,3,4,8,9,15,16,17] s[l].opacity = 0 end for l in [6,7,18] s[l].o = 0 end # 情報記憶 @s_lv[index] = actor.level @s_party[index] = [actor.name, actor.hp, actor.mhp, actor.mp, actor.mmp, actor.states, actor.tp] # end #-------------------------------------------------------------------------- # ● オブジェクト開放 #-------------------------------------------------------------------------- def dispose super return unless @f for i in 0...@s_sprite.size for l in [0,1,2,3,4,8,9,15,16,17] @s_sprite[i][l].bitmap.dispose @s_sprite[i][l].dispose end for l in [5,6,7,18] @s_sprite[i][l].dispose end end @@f = false end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super return unless @f for i in 0...@s_sprite.size s = @s_sprite[i] a = $game_party.battle_members[i] m = @s_party[i] @state_opacity[i] = 0 if @state_opacity[i] == nil # 不透明度アップ @state_opacity[i] += 8 if @opacity < 272 @opacity += 8 for l in [0,1,2,3,4,15,16,17] s[l].opacity = @opacity end for l in [6,7,18] s[l].o = @opacity end end # 名前更新 if a.name != m[0] s[15].bitmap.dispose s[15].bitmap = name_bitmap(a) m[0] = a.name end # HP/MP/TP更新 update_hp(s,a,m) update_mp(s,a,m) update_tp(s,a,m) # ステート更新 if s[10] > BTSKIN_06WH[0] / 24 and (Graphics.frame_count % BTSKIN_06SC) == 0 s[9].ox += 1 end if s[10] > 0 and @state_opacity[i] < 272 for l in [8,9] s[l].opacity = @state_opacity[i] end end if a.states != m[5] m[5] = a.states s[9].ox = 0 s[9].bitmap.dispose s[9].bitmap = draw_actor_state($game_party.members[i]) s[10] = state_size($game_party.members[i]) @state_opacity[i] = 0 for l in [8,9] s[l].opacity = @state_opacity[i] end end end end #-------------------------------------------------------------------------- # ● フレーム更新 (HP) #-------------------------------------------------------------------------- def update_hp(s,a,m) # HPくるくる if a.hp != s[13] c = 0; c = 1 if a.hp < a.mhp / 4; c = 2 if a.hp == 0 if s[13] > a.hp s[13] -= BTSKIN_04SS s[13] = a.hp if s[13] < a.hp else s[13] += BTSKIN_04SS s[13] = a.hp if s[13] > a.hp end s[6].update(s[13], c) end # HP if a.hp != m[1] s[11] = ((@hpgw * (a.hp / (a.mhp * 1.0))) + 1).truncate m[1] = a.hp end sr = s[1].src_rect if sr.width != s[11] sp = BTSKIN_01GS sr.width = (s[11] + (s[1].src_rect.width * (sp - 1))) / sp sr.width = 2 if sr.width <= 1 and a.hp > 0 end sr = s[2].src_rect sp = 2 if sr.width != s[1].src_rect.width and (Graphics.frame_count % sp) == 0 if sr.width < s[1].src_rect.width sr.width += 1 else sr.width -= 1 end end sr.width = 2 if sr.width <= 1 and a.hp > 0 end #-------------------------------------------------------------------------- # ● フレーム更新 (MP) #-------------------------------------------------------------------------- def update_mp(s,a,m) # MPくるくる if a.mp != s[14] c = 0; c = 1 if a.mp < a.mmp / 4 if s[14] > a.mp s[14] -= BTSKIN_05SS s[14] = a.mp if s[14] < a.mp else s[14] += BTSKIN_05SS s[14] = a.mp if s[14] > a.mp end s[7].update(s[14], c) end # MP if a.mp != m[3] if a.mmp != 0 s[12] = ((@mpgw * (a.mp / (a.mmp * 1.0))) + 1).truncate else s[12] = 0 end m[3] = a.mp end sr = s[3].src_rect if sr.width != s[12] sp = BTSKIN_02GS sr.width = (s[12] + (s[3].src_rect.width * (sp - 1))) / sp sr.width = 2 if sr.width <= 1 and a.mp > 0 end sr = s[4].src_rect sp = 2 if sr.width != s[3].src_rect.width and (Graphics.frame_count % sp) == 0 if sr.width < s[3].src_rect.width sr.width += 1 else sr.width -= 1 end end sr.width = 2 if sr.width <= 1 and a.mp > 0 end def update_tp(s,a,m) # TPくるくる if a.tp != s[19] c = 0; c = 1 if a.tp < 100 if s[19] > a.tp s[19] -= BTSKIN_08SS s[19] = a.tp if s[19] < a.tp else s[19] += BTSKIN_08SS s[19] = a.tp if s[19] > a.tp end s[18].update(s[19].to_i, c) end # TP if a.tp != m[6] if a.tp != 0 s[20] = ((@tpgw * (a.tp_rate * 1.0)) + 1).truncate else s[20] = 0 end m[6] = a.tp end sr = s[16].src_rect if sr.width != s[20] sp = BTSKIN_07GS sr.width = (s[20] + (s[16].src_rect.width * (sp - 1))) / sp sr.width = 2 if sr.width <= 1 and a.tp > 0 end sr = s[17].src_rect sp = 2 if sr.width != s[16].src_rect.width and (Graphics.frame_count % sp) == 0 if sr.width < s[16].src_rect.width sr.width += 1 else sr.width -= 1 end end sr.width = 2 if sr.width <= 1 and a.tp > 0 end end #============================================================================== # ■ Sprite_strNumber #============================================================================== class Sprite_strNumber < Sprite #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize(v, gra, n = 0) @n = n super(v) self.bitmap = Cache.system(gra) @w = self.bitmap.width/10 @h = self.bitmap.height/3 self.src_rect = Rect.new(@n*@w, 0, @w, @h) end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update(n = -1, c = 0) @n = n self.src_rect.x = @n*@w self.src_rect.y = c*@h end end #============================================================================== # ■ Sprite_strNumbers #============================================================================== class Sprite_strNumbers attr_accessor :x attr_accessor :y attr_accessor :z attr_accessor :o #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize(v, gra, n = 4, s = 0) @n = n.to_i # 桁数 @x = 0 @y = 0 @z = 0 @o = 255 @sprite = [] # 字間設定 b = Cache.system(gra) @s = b.width / 10 - s # スプライト作成 for i in 0...n @sprite[i] = Sprite_strNumber.new(v, gra) end update end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update(v = 0, c = 0) val = [] # 数値を配列に格納 for i in 0...@n if (10 ** (i)) == 0 val[i] = v % 10 else val[i] = v / (10 ** (i)) % 10 end end val = val.reverse # 先頭の0を取り除く for i in 0...@n if val[i] == 0 and @n != i + 1 val[i] = -1 else break end end # スプライト更新 for i in 0...@n @sprite[i].update(val[i], c) @sprite[i].x = @x + (i * @s) @sprite[i].y = @y @sprite[i].z = @z @sprite[i].opacity = @o end end #-------------------------------------------------------------------------- # ● 不透明度の適用 #-------------------------------------------------------------------------- def o=(val) @o = val for i in 0...@n @sprite[i].opacity = @o end end #-------------------------------------------------------------------------- # ● オブジェクト開放 #-------------------------------------------------------------------------- def dispose for i in 0...@sprite.size @sprite[i].bitmap.dispose @sprite[i].dispose end end end #============================================================================== # ■ Scene_Battle #============================================================================== class Scene_Battle def update_info_viewport return 0 end def create_status_window @status_window = Window_BattleStatus.new @status_window.x = 0 end def create_info_viewport @info_viewport = Viewport.new @info_viewport.rect.y = Graphics.height - @status_window.height @info_viewport.rect.height = @status_window.height @info_viewport.z = 100 @info_viewport.ox = 0 @status_window.viewport = @info_viewport end def create_actor_command_window @actor_command_window = Window_ActorCommand.new @actor_command_window.viewport = @info_viewport @actor_command_window.set_handler(:attack, method(:command_attack)) @actor_command_window.set_handler(:skill, method(:command_skill)) @actor_command_window.set_handler(:guard, method(:command_guard)) @actor_command_window.set_handler(:item, method(:command_item)) @actor_command_window.set_handler(:cancel, method(:prior_command)) @actor_command_window.x = 416 end def create_party_command_window @party_command_window = Window_PartyCommand.new @party_command_window.viewport = @info_viewport @party_command_window.x = 416 @party_command_window.set_handler(:fight, method(:command_fight)) @party_command_window.set_handler(:escape, method(:command_escape)) @party_command_window.unselect end endBugs e Conflitti Noti
Inserite qui il testo (obbligatorio, se non ci sono bugs o conflitti conosciuti scrivete N/A)Altri Dettagli
Funziona con Tankentai e altri SBS. -
Dovrebbe essere messo come Importante questo topic... e poi visto che cercate staff prendete qualcuno e mettetelo ad aggiornare i database script XP, VX e questo... Ma non credo lo farete...
-
Si può fare ma al momento sono occupato con l'università... Da giorno 10 in poi sono più libero...
-
Database Script
Ultimo Aggiornamento: 31/08/2014
!! AGGIORNAMENTO IN CORSO !!
Modifiche Party/Eroe - 1
- "S"cambio Gruppo - Holy87
- ??? - ???
Battle System - 4
- Tankentai Sideview BS - Enu
- Tankentai Sideview BS - Traduzione Inglese [LINK ESTERNO]
- Lune Frontal Battle System - Raizen
- Battle Engine Symphony - Yami
- ??? - ???
Battle System Add-On - 1
- VisualMidi Standar BS - Midi
- ??? - ???
Menu Personalizzati - 2
- MSX - Scene_Menu MOD
- Menu ad anello - Syvkal
- ??? - ???
Menu Add-On - 3
- MSX - Bars Type
- Inventari Multipli - Fomar0153
- Limited Inventory - TheoAllen
- ??? - ???
Modifiche Grafica - 8
- Ottimizzazione Cache - Jet
- Risoluzione HD - Kread-EX
- Midi Advanced Pictures - Midi
- Sprite Trace - Midi
- Map Effects - Zeus81
- Multi Frames - Victor
- Map Text Popup - Midi
- Autolights(VXAce Porting) - Kilock + Qualcuno Timido
- ??? - ???
Modifiche Audio - 0
-
Modifiche Gameplay - 22
- Elemental Merger
- Create Items - kingartur2(3)
- Movimenti limitati giocatore - mikb89
- Sistema Popup Generale - Holy87
- Sistema degli obbiettivi - Holy87
- Mappa del Mondo - TinuMine
- Barra generica su mappa - Holy87
- Tactis Ogre PSP Crafting System - Mr. Bubble
- CSCA Achievements - Casper Gaming???
- Veicoli Esplorabili - Qualcuno Timido
- Banca - Dekita
- Minimappa - SheolShade
- "S"cambio Gruppo - Holy87
- In-Game Character Creation - Neon Black
- MMORPG Alchemy & Extraction System - Falcao
- Rock Paper Scissors - SirBilly
- TDS Cutscene Skip - TDS
- Trading Card Game FF8 - Hikimoki + Tomoaky
- Alchemy Qualcosa - kingartur2(3)
- Display Max Gold - Hyomoto
- Item Based Quest Journal - Shadowmaster/Shadowmaster9000/Shadowpasta
- Salto - Galv
- ??? - ???
Sistemi Completi - 3
Altro - 11
- VX Font su VX Ace
- MSX - XP Character on VX/VXAce
- Skip Title
- Keyboard Input - keroro
- Logo Iniziale - Holy87
- Lune Smooth Camera Sliding - Raizen
- Word Wrapping Message Boxes - KilloZapit
- Permanent Switches & Variables - mikb89
- VGA Display - Chon
- Map Saver - Omegas7 + Woratana
- MODE 7 - MGC
- ??? - ???
Totale Script: 55 !! 30% circa del totale degli script presenti nella sezione. !! -
Per foruna ci pensa lo zio melo alla sezione dell'ace... non c'è manco un database o il template...
-
MSX - Scene_Menu MOD
Descrizione
Nuova veste del Menu.Autore
MelosxIstruzioni per l'uso
Copiare sotto Materials e sopra Main.Screenshot
http://i44.tinypic.com/rlx4ec.png
Script
#============================================================================= # ** MSX - Scene_Menu MOD #============================================================================= # Author: Melosx # Version: 2.0 Beta 1 # Release Date: 06-01-2012 => v1.0 # 13-06-2012 => v2.0 Beta 1 # #============================================================================= # * Instructions #----------------------------------------------------------------------------- # Copy the script below Materials and above Main. # #============================================================================= # * Rewrite #----------------------------------------------------------------------------- # # Window_Base: # # def draw_character # def draw_actor_graphic # def draw_gauge # #============================================================================= # * Add #----------------------------------------------------------------------------- # # Window_Base: # # def draw_actor_exp_gauge # #============================================================================== module MSX #==============================================================================# #=============================CONFIGURATION START==============================# #==============================================================================# ACTIVE_MEMBERS = 4 # Default -> 4. Number ofactive member in menu. USE_GRAPHIC = true # true/false - Use/Not use graphic USE_FACE = true # true/false - Use/Not use face. MAIN_X = 50 # General x coordinate MAIN_Y = 0 # General y coordinate # FACE FACE_X = 1 # Actor Face x coordinate FACE_Y = 1 # Actor Face y coordinate FACE_HEIGHT = 64 # Actor Face height # GRAPHIC GRAPHIC_X = 24 # Actor Graphic x coordinate GRAPHIC_Y = 52 # Actor Graphic y coordinate # GAUGE STYLE GAUGE_HEIGHT = 6 # HP/MP Gauge width GAUGE_BORDER = true # HP/MP Gauge Border # HP HP_X = 170 # Gauge x coordinate HP_Y = 20 # Gauge y coordinate HP_WIDTH = 130 # Gauge width HP_TYPE = 0 # 0 -> default; 1 -> center; 2 -> inverse; # MP MP_X = 175 # Gauge x coordinate MP_Y = 44 # Gauge y coordinate MP_WIDTH = 130 # Gauge width MP_TYPE = 0 # 0 -> default; 1 -> center; 2 -> inverse; # EXP EXP_GAUGE_X = 345 # Gauge x coordinate EXP_GAUGE_Y = 44 # Gauge y coordinate EXP_GAUGE_WIDTH = 90 # Gauge width EXP_GAUGE_HEIGHT = 6 # Gauge height EXP_INFO_X = 340 # Exp Info x coordinate EXP_INFO_Y = 18 # Exp Info y coordinate # NAME NAME_X = 0 # Name x coordinate NAME_Y = 0 # Name y coordinate # NICKNAME NICK_X = 0 # Nickname x coordinate NICK_Y = 20 # Nickname y coordinate # LEVEL LVL_X = 290 # Level x coordinate LVL_Y = 0 # Level y coordinate # CLASS CLASS_X = 100 # Class x coordinate CLASS_Y = 0 # Class y coordinate # STATE STATE_X = 50 # State x coordinate STATE_Y = 0 # State y coordinate STATE_NUMBER = 6 # Number of state #==============================================================================# #==============================CONFIGURATION END===============================# #==============================================================================# end #============================================================================== # ** Game_Party #============================================================================== class Game_Party < Game_Unit def menu_members all_members[0, MSX::ACTIVE_MEMBERS].select {|actor| actor.exist? } end end #============================================================================== # ** Scene_Menu #============================================================================== class Scene_Menu < Scene_MenuBase def start super create_command_window create_gold_window create_status_window end def create_gold_window @gold_window = Window_MenuPlus_Horz.new @gold_window.x = 0 @gold_window.y = Graphics.height - @gold_window.height end def create_status_window @status_window = Window_MenuStatus.new(0, 48) end end #============================================================================== # ** Window_MenuCommand #============================================================================== class Window_MenuCommand < Window_Command def initialize super(0, 0) self.contents.font.size = 16 select_last end def visible_line_number return 1 end def col_max return 7 end def spacing return 4 end def window_width return 544 end def window_height return 48 end end #============================================================================== # ** Window_MenuStatus #============================================================================== class Window_MenuStatus < Window_Selectable attr_reader :pending_index def initialize(x, y) super(x, y, window_width, window_height) self.contents.font.size = 16 @pending_index = -1 refresh end def window_width 544 end def window_height 320 end def draw_item(index) actor = $game_party.members[index] enabled = $game_party.menu_members.include?(actor) rect = item_rect(index) draw_item_background(index) if MSX::USE_FACE draw_actor_menu_face(actor, rect.x + MSX::FACE_X, rect.y + MSX::FACE_Y, enabled) draw_actor_simple_status(actor, rect.x + MSX::MAIN_X, rect.y + MSX::MAIN_Y) else draw_actor_simple_status(actor, rect.x + MSX::MAIN_X, rect.y + MSX::MAIN_Y) end if MSX::USE_GRAPHIC draw_actor_graphic(actor, MSX::GRAPHIC_X, rect.y + MSX::GRAPHIC_Y, enabled) end end def draw_actor_simple_status(actor, x, y) draw_actor_name(actor, x + MSX::NAME_X, y + MSX::NAME_Y) draw_actor_nickname(actor, x + MSX::NICK_X, y + MSX::NICK_Y, 160) draw_actor_level(actor, x + MSX::LVL_X, y + MSX::LVL_Y) draw_actor_icons(actor, MSX::STATE_X, MSX::STATE_Y + line_height * 2, MSX::STATE_NUMBER * 24) draw_actor_class(actor, x + MSX::CLASS_X, y + MSX::CLASS_Y) draw_actor_hp(actor, x + MSX::HP_X, y + MSX::HP_Y, MSX::HP_WIDTH, MSX::HP_TYPE) draw_actor_mp(actor, x + MSX::MP_X, y + MSX::MP_Y, MSX::MP_WIDTH, MSX::MP_TYPE) draw_actor_exp_gauge(actor, x + MSX::EXP_GAUGE_X, y + MSX::EXP_GAUGE_Y, MSX::EXP_GAUGE_WIDTH) draw_exp_info(actor, x + MSX::EXP_INFO_X, y + MSX::EXP_INFO_Y) end def draw_actor_class(actor, x, y, width = 112) change_color(system_color) draw_text(x, y, 52, line_height, "Class:") change_color(normal_color) draw_text(x + 54, y, width, line_height, actor.class.name) end def draw_exp_info(actor, x, y) self.contents.font.color = text_color(0) if actor.level != 99 s1 = actor.exp - actor.current_level_exp s2 = actor.next_level_exp - actor.current_level_exp else s1 = "-" s2 = "-" end exp = s1.to_s + " / " + s2.to_s change_color(system_color) draw_text(x, y, 100, line_height, "Experience") change_color(normal_color) draw_text(x, y + 12, 100, line_height, exp, 2) end end #============================================================================== # ** Window_Base #============================================================================== class Window_Base < Window def draw_menu_face(face_name, face_index, x, y, enabled = true) bitmap = Cache.face(face_name) rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96, 96, MSX::FACE_HEIGHT) contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha) bitmap.dispose end def draw_actor_menu_face(actor, x, y, enabled = true) draw_menu_face(actor.face_name, actor.face_index, x, y, enabled) end def draw_character(character_name, character_index, x, y, enabled=true) return unless character_name bitmap = Cache.character(character_name) sign = character_name[/^[\!\$]./] if sign && sign.include?('$') cw = bitmap.width / 3 ch = bitmap.height / 4 else cw = bitmap.width / 12 ch = bitmap.height / 8 end n = character_index src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch) contents.blt(x - cw / 2, y - ch, bitmap, src_rect, enabled ? 255 : translucent_alpha) end def draw_actor_graphic(actor, x, y, enabled=true) draw_character(actor.character_name, actor.character_index, x, y, enabled) end def draw_gauge(x, y, width, rate, color1, color2, type = 0) fill_w = (width * rate).to_i gauge_y = y + line_height - 8 if MSX::GAUGE_BORDER contents.fill_rect(x - 2, gauge_y - 2, width + 4, MSX::GAUGE_HEIGHT + 4, gauge_back_color) contents.fill_rect(x - 1, gauge_y - 1, width + 2, MSX::GAUGE_HEIGHT + 2, normal_color) end case type when 0 contents.fill_rect(x, gauge_y, width, MSX::GAUGE_HEIGHT, gauge_back_color) contents.gradient_fill_rect(x, gauge_y, fill_w, MSX::GAUGE_HEIGHT, color1, color2) when 1 gr_x = x + (width - fill_w) / 2 contents.fill_rect(x, gauge_y, width, MSX::GAUGE_HEIGHT, gauge_back_color) contents.gradient_fill_rect(gr_x, gauge_y, fill_w, MSX::GAUGE_HEIGHT, color1, color2) when 2 gr_x = x + (width - fill_w) contents.fill_rect(x, gauge_y, width, MSX::GAUGE_HEIGHT, gauge_back_color) contents.gradient_fill_rect(gr_x, gauge_y, fill_w, MSX::GAUGE_HEIGHT, color1, color2) end end def draw_actor_hp(actor, x, y, width = 124, type = 0) draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2, type) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::hp_a) draw_current_and_max_values(x, y, width, actor.hp, actor.mhp, hp_color(actor), normal_color) end def draw_actor_mp(actor, x, y, width = 124, type = 0) draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2, type) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::mp_a) draw_current_and_max_values(x, y, width, actor.mp, actor.mmp, mp_color(actor), normal_color) end def draw_actor_exp_gauge(actor, x, y, width = 100) if actor.level != 99 s1 = actor.exp - actor.current_level_exp s2 = actor.next_level_exp - actor.current_level_exp gw = width * s1 / s2 else gw = 0 end gc1 = text_color(14) gc2 = text_color(6) self.contents.fill_rect(x - 1, y - 1, width + 4, MSX::EXP_GAUGE_HEIGHT + 4, gauge_back_color) self.contents.fill_rect(x, y, width + 2, MSX::EXP_GAUGE_HEIGHT + 2, normal_color) self.contents.fill_rect(x + 1, y + 1, width, MSX::EXP_GAUGE_HEIGHT, gauge_back_color) self.contents.gradient_fill_rect(x + 1, y + 1, gw, MSX::EXP_GAUGE_HEIGHT, gc1, gc2) end end #============================================================================== # ** Window_MenuPlus_Horz #============================================================================== class Window_MenuPlus_Horz < Window_Base def initialize super(0, 0, window_width, fitting_height(1)) self.contents.font.size = 16 refresh end def update super sec = (Graphics.frame_count / Graphics.frame_rate) % 60 if sec > @total_sec % 60 or sec == 0 refresh end end def window_width return 544 end def refresh contents.clear draw_currency_value(value, currency_unit, 4, 0, 120) draw_text(4, 0, 120, line_height, "Gold:", 0) draw_text(195, 0, 120, line_height, "Steps:", 0) draw_text(390, 0, 120, line_height, "Time:", 0) change_color(normal_color) draw_text(195, 0, 120, line_height, $game_party.steps, 2) @total_sec = Graphics.frame_count / Graphics.frame_rate ora = @total_sec / 60 / 60 min = @total_sec / 60 % 60 sec = @total_sec % 60 tempo = sprintf("%02d:%02d:%02d", ora, min, sec) draw_text(390, 0, 120, line_height, tempo, 2) end def value $game_party.gold end def currency_unit Vocab::currency_unit end def open refresh super end endBugs e Conflitti Noti
N/A -
MSX - Bars Type
Descrizione
Due nuovi tipi di barra.Autore
MelosxScrenshot
http://i42.tinypic.com/10mifjt.png
Istruzioni per l'uso
Inserire lo script sopra Main e sotto MaterialsScript
#============================================================================= # ** MSX - Bars Type #============================================================================= # Autore: Melosx # Versione: 1.0 => 13-1-2012 # #============================================================================= # * Istruzioni #----------------------------------------------------------------------------- # Aggiunge due nuovi tipi di barre. Questi nuovi tipi vanno settati inserendo 0, 1 o 2 nel codice # che disegna le barre. Di default è settato 0 cioè il tipo di barra di default. # #============================================================================== class Window_Base < Window def draw_gauge(x, y, width, rate, color1, color2, type = 0) case type when 0 fill_w = (width * rate).to_i gauge_y = y + line_height - 8 contents.fill_rect(x, gauge_y, width, 6, gauge_back_color) contents.gradient_fill_rect(x, gauge_y, fill_w, 6, color1, color2) when 1 fill_w = (width * rate).to_i gauge_y = y + line_height - 8 gr_x = x + (width - fill_w) / 2 contents.fill_rect(x, gauge_y, width, 6, gauge_back_color) contents.gradient_fill_rect(gr_x, gauge_y, fill_w, 6, color1, color2) when 2 fill_w = (width * rate).to_i gauge_y = y + line_height - 8 gr_x = x + (width - fill_w) contents.fill_rect(x, gauge_y, width, 6, gauge_back_color) contents.gradient_fill_rect(gr_x, gauge_y, fill_w, 6, color1, color2) end end def draw_actor_hp(actor, x, y, width = 124, type = 0) draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2, type) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::hp_a) draw_current_and_max_values(x, y, width, actor.hp, actor.mhp, hp_color(actor), normal_color) end def draw_actor_mp(actor, x, y, width = 124, type = 0) draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2, type) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::mp_a) draw_current_and_max_values(x, y, width, actor.mp, actor.mmp, mp_color(actor), normal_color) end def draw_actor_tp(actor, x, y, width = 124, type = 0) draw_gauge(x, y, width, actor.tp_rate, tp_gauge_color1, tp_gauge_color2, type) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::tp_a) change_color(tp_color(actor)) draw_text(x + width - 42, y, 42, line_height, actor.tp.to_i, 2) end end
Bugs e Conflitti Noti
N/A -
Le mappe sono vuote dovresti riempirle... I tileset sono un miscuglio tra RTP e Mack il che non sta molto bene perchè sono stile diversi... Nel posto dove l'anima sceglie il corpo devi agiungere il bordo di luce anche alla vasca d'acqua perchè cosi non sembra avere profondita da quel lato... non capisco il senso dei lampioni nel tra gli alberi in riva ad un fiume/lago/mare... La trama per quanto poca tu ne abbia esposto sembra buona ma devi migliorare il mapping... non dico a livelli ultra ma riempire e diversificare il terreno... erba, pietre, alberi, foglie usali un po di più...
-
Per VXAce non esiste... Per XP c'è il RMX-OS mentre per VX c'è NetVX... Per far funzionare script ti serve capire come comunicano client e server...
Ti consiglio l'RMX-OS che ha alcuni script fatti apposta o resi compatibili...
-
King's bounty, dragons age, drakensang, heroes of might and magic 5, dark messiah
ecc...ecc...
-
guarda lascia l'indirizzo di casa nello script... così si sa dove uccidere in caso di problemi XD
-
ah ok perfetto... il codice per formattare il disco??? sai come ultima missione o vinci o formattone XD
-
non c'è pericolo che qualcuno possa recare danno usando sto script??? se mi spengono il pc mentre sto lavorando e passando il tempo col gioco mi incazzerei di brutto ma di brutto assai...
-
Ci ho già pensato, ma in fondo è una feature che nessuno userà, e l'ho messa solo alla fine quando non sapevo cosa mettere.
oh be va bene...
-
puoi fare in modo che controlli su che versione gira lo script...
per esempio
if File.exists?("Data/Script.rvdata") # File script del vx
$scene = nil
else # se non c'è vuol dire che sei sull'ace
SceneManager.exit
end
Sperodi aver scritto giusto il codice...
-
Bello script holy ma non è compatibile al 100% con l'ace...
In questo pezzo
#metodo per chiudere il gioco def self.terminate $scene = nil endtrovi $scene... e bene questo metodo per gestire le scene non esiste piu nell'ace ma devi usare lo SceneManager ed in questo caso il codice SceneManager.exit per chiudere il gioco....
-
infatti non trovo molto utile il mi piace...
p.s.: flame dove hai pescato quel tardis trascinato trascinato da un gatto che hai in firma??
-
non ci credo... finalmente le sezioni dell'ace... gli ultimi al mondo ma con stile...
-
devo rigiocare i primi due capitoli... cos ìmi godrò meglio il terzo XD...
-
acc se c'era ancora il ruby mi sarei offerto come programmatore... ma purtroppo posso offrirmi solo come beta tester... se vi servo sono a disposizione...
-
avevo trovatp un sistema su un proj giapponese che stavo per convertire ma l'ho perso devo ritrovarlo perche' era veramente un granbel sistema... vedro di mettere in pratoico quello che ho appreso sul vx nel vx ace... Alla prossima con il topic di Virtua Quest...
-
in download... na sono solo le rtp o anche tutto il programma??

[RGSS2-3]MSX - XP Characters on VX/VXAce
in Scripts RGSS3 (VX-Ace)
Posted