the-joker Posted June 7, 2008 Share Posted June 7, 2008 - Descrizione:Questo script permette di incrementare le proprie statistiche in un determinato elemento.- Autore: By Moghunter- Note: Più useremo una magia di fuoco, più le magie di fuoco saranno efficaci e causeranno un maggior danno. Per visualizzare l'andamento delle caratteristiche, andate nel menù e premete il tasto C.-necessita di queste due Pictures da mettere nella cartella Graphics/Pictures del vostro gioco:- Uso script: Basta semplicemente creare una nuova classe sopra main, chiamarla come volete e incollare questo: #_________________________________________________ # MOG_Element LV System V1.4 # #_________________________________________________ # Sistema de Level para o atributos de elementos. # Quanto maior o level do elemento maior será o seu # poder. # Para usar o sistema de level basta atribuir os # elementos as skills desejadas. # # O sistema permite também que as skill causem # dano crítico, para isso basta criar um atributo # com o nome de "Critical" e atribu-a a skill # desejada. #_________________________________________________ module MOG #Definição do limite maximo de level. MAXELLV = 99 #Tipo de calculo para ganhar exp. # 0 = Experiência é baseada na diferença do level do # do personagem em relação ao level do elemento. # 1 = Experiência ganha é baseada no valor definido # EXP_TYPE = 0 # Definição do valor de experiência ganha(Calculo tipo 1) EL_EXP = 10 #Defina os nomes dos atributo dos elementos, eles devem #ser iguais a do Database. # Nome do Elemento 1 EL_NAME1 = "Fire" # Nome do Elemento 2 EL_NAME2 = "Ice" # Nome do Elemento 3 EL_NAME3 = "Thunder" # Nome do Elemento 4 EL_NAME4 = "Water" # Nome do Elemento 5 EL_NAME5 = "Earth" # Nome do Elemento 6 EL_NAME6 = "Wind" # Nome do Elemento 7 EL_NAME7 = "Light" # Nome do Elemento 8 EL_NAME8 = "Darkness" #Definição do som ao fazer Level UP. ELE_LVSE = "056-Right02" #Definição da ID da animação ao fazer LVUP. EL_LVANIME = 63 end $mogscript = {} if $mogscript == nil $mogscript["elementlv"] = true ############## # Game_Actor # ############## class Game_Actor < Game_Battler include MOG attr_accessor :element1_exp attr_accessor :element2_exp attr_accessor :element3_exp attr_accessor :element4_exp attr_accessor :element5_exp attr_accessor :element6_exp attr_accessor :element7_exp attr_accessor :element8_exp attr_accessor :element1_lv attr_accessor :element2_lv attr_accessor :element3_lv attr_accessor :element4_lv attr_accessor :element5_lv attr_accessor :element6_lv attr_accessor :element7_lv attr_accessor :element8_lv alias mog30_setup setup def setup(actor_id) @element1_exp = 0 @element2_exp = 0 @element3_exp = 0 @element4_exp = 0 @element5_exp = 0 @element6_exp = 0 @element7_exp = 0 @element8_exp = 0 @element1_lv = 1 @element2_lv = 1 @element3_lv = 1 @element4_lv = 1 @element5_lv = 1 @element6_lv = 1 @element7_lv = 1 @element8_lv = 1 mog30_setup(actor_id) end def element1_exp n = [[@element1_exp, 0].max, 100].min return n end def element2_exp n = [[@element2_exp, 0].max, 100].min return n end def element3_exp n = [[@element3_exp, 0].max, 100].min return n end def element4_exp n = [[@element4_exp, 0].max, 100].min return n end def element5_exp n = [[@element5_exp, 0].max, 100].min return n end def element6_exp n = [[@element6_exp, 0].max, 100].min return n end def element7_exp n = [[@element7_exp, 0].max, 100].min return n end def element8_exp n = [[@element8_exp, 0].max, 100].min return n end def element1_lv n = [[@element1_lv, 1].max, MAXELLV].min return n end def element2_lv n = [[@element2_lv, 1].max, MAXELLV].min return n end def element3_lv n = [[@element3_lv, 1].max, MAXELLV].min return n end def element4_lv n = [[@element4_lv, 1].max, MAXELLV].min return n end def element5_lv n = [[@element5_lv, 1].max, MAXELLV].min return n end def element6_lv n = [[@element6_lv, 1].max, MAXELLV].min return n end def element7_lv n = [[@element7_lv, 1].max, MAXELLV].min return n end def element8_lv n = [[@element8_lv, 1].max, MAXELLV].min return n end end ############### # Window_Base # ############### class Window_Base < Window def draw_elementlv(actor, x, y,type) self.contents.font.color = normal_color back = RPG::Cache.picture("ELV_Back") cw = back.width ch = back.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x + 77, y - ch , back, src_rect) meter = RPG::Cache.picture("ELV_Meter") case type when 0 cw = meter.width * actor.element1_exp / 100 when 1 cw = meter.width * actor.element2_exp / 100 when 2 cw = meter.width * actor.element3_exp / 100 when 3 cw = meter.width * actor.element4_exp / 100 when 4 cw = meter.width * actor.element5_exp / 100 when 5 cw = meter.width * actor.element6_exp / 100 when 6 cw = meter.width * actor.element7_exp / 100 when 7 cw = meter.width * actor.element8_exp / 100 end ch = meter.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x + 80, y - ch - 8, meter, src_rect) self.contents.font.name = "Georgia" case type when 0 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element1_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element1_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME1.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element1_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element1_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME1.to_s) when 1 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element2_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element2_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME2.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element2_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element2_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME2.to_s) when 2 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element3_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element3_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME3.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element3_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element3_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME3.to_s) when 3 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element4_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element4_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME4.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element4_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element4_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME4.to_s) when 4 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element5_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element5_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME5.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element5_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element5_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME5.to_s) when 5 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element6_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element6_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME6.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element6_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element6_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME6.to_s) when 6 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element7_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element7_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME7.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element7_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element7_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME7.to_s) when 7 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element8_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element8_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME8.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element8_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element8_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME8.to_s) end end end ######################## # Window_Element_Level # ######################## class Window_Element_Level < Window_Base def initialize(actor) super(100, 0, 440, 480) self.contents = Bitmap.new(width - 32, height - 32) self.z = 9999 @actor = actor refresh end def refresh self.contents.clear self.contents.font.name = "Georgia" self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 50, y - 5 , 200, 50, "ELEMENT DATA") self.contents.draw_text(x + 50, y + 411 , 200, 50, "Press C to Status") self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 51, y - 4 , 200, 50, "ELEMENT DATA") self.contents.draw_text(x + 51, y + 410 , 200, 50, "Press C to Status") draw_elementlv(@actor, 40, 70,0) draw_elementlv(@actor, 40, 120,1) draw_elementlv(@actor, 40, 170,2) draw_elementlv(@actor, 40, 220,3) draw_elementlv(@actor, 40, 270,4) draw_elementlv(@actor, 40, 320,5) draw_elementlv(@actor, 40, 370,6) draw_elementlv(@actor, 40, 420,7) end end ################# # Window_Status # ################# class Window_Status < Window_Base alias mog30_refresh refresh def refresh mog30_refresh self.contents.font.name = "Georgia" self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 200, y + 416 , 250, 50, "Press C to Elemental Data") self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 201, y + 415 , 250, 50, "Press C to Elemental Data") end end ################ # Scene_Status # ################ class Scene_Status alias mog30_main main def main @actor = $game_party.actors[@actor_index] @element_window = Window_Element_Level.new(@actor) @element_window.y = -550 @element_window.visible = false mog30_main @element_window.dispose end alias mog30_update update def update mog30_update if @element_window.y < 0 @element_window.y += 20 elsif @element_window.y >= 0 @element_window.y = 0 @element_window.contents_opacity = 255 end if @element_window.visible == true if Input.trigger?(Input::B) or Input.trigger?(Input::L) or Input.trigger?(Input::R) for i in 1..30 @element_window.y -= 25 Graphics.update end end end if Input.trigger?(Input::C) and @element_window.visible == true $game_system.se_play($data_system.decision_se) @element_window.visible = false elsif Input.trigger?(Input::C) and @element_window.visible == false $game_system.se_play($data_system.decision_se) @element_window.visible = true @element_window.y = -550 end end end ################ # Game_Battler # ################ class Game_Battler include MOG def skill_effect(user, skill) self.critical = false if ((skill.scope == 3 or skill.scope == 4) and self.hp == 0) or ((skill.scope == 5 or skill.scope == 6) and self.hp >= 1) return false end effective = false effective |= skill.common_event_id > 0 hit = skill.hit if skill.atk_f > 0 hit *= user.hit / 100 end hit_result = (rand(100) < hit) effective |= hit < 100 if hit_result == true power = skill.power + user.atk * skill.atk_f / 100 if power > 0 power -= self.pdef * skill.pdef_f / 200 power -= self.mdef * skill.mdef_f / 200 power = [power, 0].max end rate = 20 rate += (user.str * skill.str_f / 100) rate += (user.dex * skill.dex_f / 100) rate += (user.agi * skill.agi_f / 100) rate += (user.int * skill.int_f / 100) if skill.element_set.include?($data_system.elements.index(EL_NAME1)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element1_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element1_lv user.element1_exp += 1 + valor else user.element1_exp += EL_EXP end if user.element1_exp > 99 and user.element1_lv < MAXELLV user.element1_exp = 0 user.element1_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end elsif skill.element_set.include?($data_system.elements.index(EL_NAME2)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element2_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element2_lv user.element2_exp += 1 + valor else user.element2_exp += EL_EXP end if user.element2_exp > 99 and user.element2_lv < MAXELLV user.element2_exp = 0 user.element2_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end elsif skill.element_set.include?($data_system.elements.index(EL_NAME3)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element3_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element3_lv user.element3_exp += 1 + valor else user.element3_exp += EL_EXP end if user.element3_exp > 99 and user.element3_lv < MAXELLV user.element3_exp = 0 user.element3_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end elsif skill.element_set.include?($data_system.elements.index(EL_NAME4)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element4_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element4_lv user.element4_exp += 1 + valor else user.element4_exp += EL_EXP end if user.element4_exp > 99 and user.element4_lv < MAXELLV user.element4_exp = 0 user.element4_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end elsif skill.element_set.include?($data_system.elements.index(EL_NAME5)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element5_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element5_lv user.element5_exp += 1 + valor else user.element5_exp += EL_EXP end if user.element5_exp > 99 and user.element5_lv < MAXELLV user.element5_exp = 0 user.element5_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end elsif skill.element_set.include?($data_system.elements.index(EL_NAME6)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element6_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element6_lv user.element6_exp += 1 + valor else user.element6_exp += EL_EXP end if user.element6_exp > 99 and user.element6_lv < MAXELLV user.element6_exp = 0 user.element6_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end elsif skill.element_set.include?($data_system.elements.index(EL_NAME7)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element7_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element7_lv user.element7_exp += 1 + valor else user.element7_exp += EL_EXP end if user.element7_exp > 99 and user.element7_lv < MAXELLV user.element7_exp = 0 user.element7_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end elsif skill.element_set.include?($data_system.elements.index(EL_NAME8)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element8_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element8_lv user.element8_exp += 1 + valor else user.element8_exp += EL_EXP end if user.element8_exp > 99 and user.element8_lv < MAXELLV user.element8_exp = 0 user.element8_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end else self.damage = power * rate / 20 end self.damage *= elements_correct(skill.element_set) self.damage /= 100 if self.damage > 0 if rand(100) < 4 * user.dex / self.agi and skill.element_set.include?($data_system.elements.index("Critical")) self.damage *= 2 self.critical = true end if self.guarding? self.damage /= 2 end end if skill.variance > 0 and self.damage.abs > 0 amp = [self.damage.abs * skill.variance / 100, 1].max self.damage += rand(amp+1) + rand(amp+1) - amp end eva = 8 * self.agi / user.dex + self.eva hit = self.damage < 0 ? 100 : 100 - eva * skill.eva_f / 100 hit = self.cant_evade? ? 100 : hit hit_result = (rand(100) < hit) effective |= hit < 100 end if hit_result == true if skill.power != 0 and skill.atk_f > 0 remove_states_shock effective = true end last_hp = self.hp self.hp -= self.damage effective |= self.hp != last_hp @state_changed = false effective |= states_plus(skill.plus_state_set) effective |= states_minus(skill.minus_state_set) if skill.power == 0 self.damage = "" unless @state_changed self.damage = "Miss" end end else self.damage = "Miss" end unless $game_temp.in_battle self.damage = nil end return effective end end "Quarantadue!" urlò Loonquawl. "Questo è tutto ciò che sai dire dopo un lavoro di sette milioni e mezzo di anni?""Ho controllato molto approfonditamente," disse il computer, "e questa è sicuramente la risposta. Ad essere sinceri, penso che il problema sia che voi non abbiate mai saputo veramente qual è la domanda." Gioco disponibile: Prophecy of Last Era - OPEN SOURCE http://www.mediafire.com/?u6aut42ks12ixgf Puoi utilizzare qualsiasi evento, mappa, chara, grafica, e programmazione contenuta nel gioco-demo.Nessun diritto di copia.Hope you enjoy.http://www.rpg2s.net/awards/bestmusician3.jpg Link to comment Share on other sites More sharing options...
BloodRain Posted June 7, 2008 Share Posted June 7, 2008 sembra interessante... però non riesco a provarlo in quanto quando lo copio me lo da tutto su una riga...come faccio? Link to comment Share on other sites More sharing options...
the-joker Posted June 7, 2008 Author Share Posted June 7, 2008 prova così: #_________________________________________________ # MOG_Element LV System V1.4 # #_________________________________________________ # Sistema de Level para o atributos de elementos. # Quanto maior o level do elemento maior será o seu # poder. # Para usar o sistema de level basta atribuir os # elementos as skills desejadas. # # O sistema permite também que as skill causem # dano crítico, para isso basta criar um atributo # com o nome de "Critical" e atribu-a a skill # desejada. #_________________________________________________ module MOG #Definição do limite maximo de level. MAXELLV = 99 #Tipo de calculo para ganhar exp. # 0 = Experiência é baseada na diferença do level do # do personagem em relação ao level do elemento. # 1 = Experiência ganha é baseada no valor definido # EXP_TYPE = 0 # Definição do valor de experiência ganha(Calculo tipo 1) EL_EXP = 10 #Defina os nomes dos atributo dos elementos, eles devem #ser iguais a do Database. # Nome do Elemento 1 EL_NAME1 = "Fire" # Nome do Elemento 2 EL_NAME2 = "Ice" # Nome do Elemento 3 EL_NAME3 = "Thunder" # Nome do Elemento 4 EL_NAME4 = "Water" # Nome do Elemento 5 EL_NAME5 = "Earth" # Nome do Elemento 6 EL_NAME6 = "Wind" # Nome do Elemento 7 EL_NAME7 = "Light" # Nome do Elemento 8 EL_NAME8 = "Darkness" #Definição do som ao fazer Level UP. ELE_LVSE = "056-Right02" #Definição da ID da animação ao fazer LVUP. EL_LVANIME = 63 end $mogscript = {} if $mogscript == nil $mogscript["elementlv"] = true ############## # Game_Actor # ############## class Game_Actor < Game_Battler include MOG attr_accessor :element1_exp attr_accessor :element2_exp attr_accessor :element3_exp attr_accessor :element4_exp attr_accessor :element5_exp attr_accessor :element6_exp attr_accessor :element7_exp attr_accessor :element8_exp attr_accessor :element1_lv attr_accessor :element2_lv attr_accessor :element3_lv attr_accessor :element4_lv attr_accessor :element5_lv attr_accessor :element6_lv attr_accessor :element7_lv attr_accessor :element8_lv alias mog30_setup setup def setup(actor_id) @element1_exp = 0 @element2_exp = 0 @element3_exp = 0 @element4_exp = 0 @element5_exp = 0 @element6_exp = 0 @element7_exp = 0 @element8_exp = 0 @element1_lv = 1 @element2_lv = 1 @element3_lv = 1 @element4_lv = 1 @element5_lv = 1 @element6_lv = 1 @element7_lv = 1 @element8_lv = 1 mog30_setup(actor_id) end def element1_exp n = [[@element1_exp, 0].max, 100].min return n end def element2_exp n = [[@element2_exp, 0].max, 100].min return n end def element3_exp n = [[@element3_exp, 0].max, 100].min return n end def element4_exp n = [[@element4_exp, 0].max, 100].min return n end def element5_exp n = [[@element5_exp, 0].max, 100].min return n end def element6_exp n = [[@element6_exp, 0].max, 100].min return n end def element7_exp n = [[@element7_exp, 0].max, 100].min return n end def element8_exp n = [[@element8_exp, 0].max, 100].min return n end def element1_lv n = [[@element1_lv, 1].max, MAXELLV].min return n end def element2_lv n = [[@element2_lv, 1].max, MAXELLV].min return n end def element3_lv n = [[@element3_lv, 1].max, MAXELLV].min return n end def element4_lv n = [[@element4_lv, 1].max, MAXELLV].min return n end def element5_lv n = [[@element5_lv, 1].max, MAXELLV].min return n end def element6_lv n = [[@element6_lv, 1].max, MAXELLV].min return n end def element7_lv n = [[@element7_lv, 1].max, MAXELLV].min return n end def element8_lv n = [[@element8_lv, 1].max, MAXELLV].min return n end end ############### # Window_Base # ############### class Window_Base < Window def draw_elementlv(actor, x, y,type) self.contents.font.color = normal_color back = RPG::Cache.picture("ELV_Back") cw = back.width ch = back.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x + 77, y - ch , back, src_rect) meter = RPG::Cache.picture("ELV_Meter") case type when 0 cw = meter.width * actor.element1_exp / 100 when 1 cw = meter.width * actor.element2_exp / 100 when 2 cw = meter.width * actor.element3_exp / 100 when 3 cw = meter.width * actor.element4_exp / 100 when 4 cw = meter.width * actor.element5_exp / 100 when 5 cw = meter.width * actor.element6_exp / 100 when 6 cw = meter.width * actor.element7_exp / 100 when 7 cw = meter.width * actor.element8_exp / 100 end ch = meter.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x + 80, y - ch - 8, meter, src_rect) self.contents.font.name = "Georgia" case type when 0 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element1_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element1_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME1.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element1_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element1_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME1.to_s) when 1 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element2_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element2_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME2.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element2_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element2_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME2.to_s) when 2 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element3_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element3_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME3.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element3_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element3_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME3.to_s) when 3 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element4_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element4_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME4.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element4_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element4_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME4.to_s) when 4 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element5_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element5_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME5.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element5_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element5_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME5.to_s) when 5 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element6_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element6_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME6.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element6_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element6_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME6.to_s) when 6 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element7_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element7_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME7.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element7_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element7_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME7.to_s) when 7 self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y - 34, 50, 32, actor.element8_exp.to_s + "%",1) self.contents.draw_text(x + 331, y - 34, 32, 32, actor.element8_lv.to_s) self.contents.draw_text(x + 301, y - 34, 32, 32, "Lv") self.contents.draw_text(x + 1, y - 34, 75, 32, MOG::EL_NAME8.to_s) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y - 35, 50, 32, actor.element8_exp.to_s + "%",1) self.contents.draw_text(x + 330, y - 35, 32, 32, actor.element8_lv.to_s) self.contents.draw_text(x + 300, y - 35, 32, 32, "Lv") self.contents.draw_text(x , y - 35, 75, 32, MOG::EL_NAME8.to_s) end end end ######################## # Window_Element_Level # ######################## class Window_Element_Level < Window_Base def initialize(actor) super(100, 0, 440, 480) self.contents = Bitmap.new(width - 32, height - 32) self.z = 9999 @actor = actor refresh end def refresh self.contents.clear self.contents.font.name = "Georgia" self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 50, y - 5 , 200, 50, "ELEMENT DATA") self.contents.draw_text(x + 50, y + 411 , 200, 50, "Press C to Status") self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 51, y - 4 , 200, 50, "ELEMENT DATA") self.contents.draw_text(x + 51, y + 410 , 200, 50, "Press C to Status") draw_elementlv(@actor, 40, 70,0) draw_elementlv(@actor, 40, 120,1) draw_elementlv(@actor, 40, 170,2) draw_elementlv(@actor, 40, 220,3) draw_elementlv(@actor, 40, 270,4) draw_elementlv(@actor, 40, 320,5) draw_elementlv(@actor, 40, 370,6) draw_elementlv(@actor, 40, 420,7) end end ################# # Window_Status # ################# class Window_Status < Window_Base alias mog30_refresh refresh def refresh mog30_refresh self.contents.font.name = "Georgia" self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 200, y + 416 , 250, 50, "Press C to Elemental Data") self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 201, y + 415 , 250, 50, "Press C to Elemental Data") end end ################ # Scene_Status # ################ class Scene_Status alias mog30_main main def main @actor = $game_party.actors[@actor_index] @element_window = Window_Element_Level.new(@actor) @element_window.y = -550 @element_window.visible = false mog30_main @element_window.dispose end alias mog30_update update def update mog30_update if @element_window.y < 0 @element_window.y += 20 elsif @element_window.y >= 0 @element_window.y = 0 @element_window.contents_opacity = 255 end if @element_window.visible == true if Input.trigger?(Input::B) or Input.trigger?(Input::L) or Input.trigger?(Input::R) for i in 1..30 @element_window.y -= 25 Graphics.update end end end if Input.trigger?(Input::C) and @element_window.visible == true $game_system.se_play($data_system.decision_se) @element_window.visible = false elsif Input.trigger?(Input::C) and @element_window.visible == false $game_system.se_play($data_system.decision_se) @element_window.visible = true @element_window.y = -550 end end end ################ # Game_Battler # ################ class Game_Battler include MOG def skill_effect(user, skill) self.critical = false if ((skill.scope == 3 or skill.scope == 4) and self.hp == 0) or ((skill.scope == 5 or skill.scope == 6) and self.hp >= 1) return false end effective = false effective |= skill.common_event_id > 0 hit = skill.hit if skill.atk_f > 0 hit *= user.hit / 100 end hit_result = (rand(100) < hit) effective |= hit < 100 if hit_result == true power = skill.power + user.atk * skill.atk_f / 100 if power > 0 power -= self.pdef * skill.pdef_f / 200 power -= self.mdef * skill.mdef_f / 200 power = [power, 0].max end rate = 20 rate += (user.str * skill.str_f / 100) rate += (user.dex * skill.dex_f / 100) rate += (user.agi * skill.agi_f / 100) rate += (user.int * skill.int_f / 100) if skill.element_set.include?($data_system.elements.index(EL_NAME1)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element1_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element1_lv user.element1_exp += 1 + valor else user.element1_exp += EL_EXP end if user.element1_exp > 99 and user.element1_lv < MAXELLV user.element1_exp = 0 user.element1_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end elsif skill.element_set.include?($data_system.elements.index(EL_NAME2)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element2_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element2_lv user.element2_exp += 1 + valor else user.element2_exp += EL_EXP end if user.element2_exp > 99 and user.element2_lv < MAXELLV user.element2_exp = 0 user.element2_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end elsif skill.element_set.include?($data_system.elements.index(EL_NAME3)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element3_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element3_lv user.element3_exp += 1 + valor else user.element3_exp += EL_EXP end if user.element3_exp > 99 and user.element3_lv < MAXELLV user.element3_exp = 0 user.element3_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end elsif skill.element_set.include?($data_system.elements.index(EL_NAME4)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element4_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element4_lv user.element4_exp += 1 + valor else user.element4_exp += EL_EXP end if user.element4_exp > 99 and user.element4_lv < MAXELLV user.element4_exp = 0 user.element4_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end elsif skill.element_set.include?($data_system.elements.index(EL_NAME5)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element5_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element5_lv user.element5_exp += 1 + valor else user.element5_exp += EL_EXP end if user.element5_exp > 99 and user.element5_lv < MAXELLV user.element5_exp = 0 user.element5_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end elsif skill.element_set.include?($data_system.elements.index(EL_NAME6)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element6_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element6_lv user.element6_exp += 1 + valor else user.element6_exp += EL_EXP end if user.element6_exp > 99 and user.element6_lv < MAXELLV user.element6_exp = 0 user.element6_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end elsif skill.element_set.include?($data_system.elements.index(EL_NAME7)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element7_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element7_lv user.element7_exp += 1 + valor else user.element7_exp += EL_EXP end if user.element7_exp > 99 and user.element7_lv < MAXELLV user.element7_exp = 0 user.element7_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end elsif skill.element_set.include?($data_system.elements.index(EL_NAME8)) and user.is_a?(Game_Actor) dmg_lv = power * 100 / 20 * user.element8_lv / MAXELLV self.damage = dmg_lv + power * rate / 20 if EXP_TYPE == 0 valor = user.level - user.element8_lv user.element8_exp += 1 + valor else user.element8_exp += EL_EXP end if user.element8_exp > 99 and user.element8_lv < MAXELLV user.element8_exp = 0 user.element8_lv += 1 Audio.se_play("Audio/SE/" + ELE_LVSE) user.animation_id = EL_LVANIME $game_player.animation_id = EL_LVANIME end else self.damage = power * rate / 20 end self.damage *= elements_correct(skill.element_set) self.damage /= 100 if self.damage > 0 if rand(100) < 4 * user.dex / self.agi and skill.element_set.include?($data_system.elements.index("Critical")) self.damage *= 2 self.critical = true end if self.guarding? self.damage /= 2 end end if skill.variance > 0 and self.damage.abs > 0 amp = [self.damage.abs * skill.variance / 100, 1].max self.damage += rand(amp+1) + rand(amp+1) - amp end eva = 8 * self.agi / user.dex + self.eva hit = self.damage < 0 ? 100 : 100 - eva * skill.eva_f / 100 hit = self.cant_evade? ? 100 : hit hit_result = (rand(100) < hit) effective |= hit < 100 end if hit_result == true if skill.power != 0 and skill.atk_f > 0 remove_states_shock effective = true end last_hp = self.hp self.hp -= self.damage effective |= self.hp != last_hp @state_changed = false effective |= states_plus(skill.plus_state_set) effective |= states_minus(skill.minus_state_set) if skill.power == 0 self.damage = "" unless @state_changed self.damage = "Miss" end end else self.damage = "Miss" end unless $game_temp.in_battle self.damage = nil end return effective end end "Quarantadue!" urlò Loonquawl. "Questo è tutto ciò che sai dire dopo un lavoro di sette milioni e mezzo di anni?""Ho controllato molto approfonditamente," disse il computer, "e questa è sicuramente la risposta. Ad essere sinceri, penso che il problema sia che voi non abbiate mai saputo veramente qual è la domanda." Gioco disponibile: Prophecy of Last Era - OPEN SOURCE http://www.mediafire.com/?u6aut42ks12ixgf Puoi utilizzare qualsiasi evento, mappa, chara, grafica, e programmazione contenuta nel gioco-demo.Nessun diritto di copia.Hope you enjoy.http://www.rpg2s.net/awards/bestmusician3.jpg Link to comment Share on other sites More sharing options...
BloodRain Posted June 7, 2008 Share Posted June 7, 2008 ok...ma per caso servono risorse grafiche???? perchè me ne chiede e peno sia questo script Link to comment Share on other sites More sharing options...
=DahiL= Posted June 7, 2008 Share Posted June 7, 2008 funge x vx? http://img145.imageshack.us/img145/3703/2597sg7.pnghttp://img229.imageshack.us/img229/9955/mozillafirefoxuser4zj.pnghttp://i213.photobucket.com/albums/cc264/badbunny699/dexterza5.pnghttp://img359.imageshack.us/img359/220/clipboard028ar.jpghttp://img402.imageshack.us/img402/9318/virgilflyvy0.gif AsD Fanhttp://i67.servimg.com/u/f67/13/07/24/89/banner12.pngProssimamente... Link to comment Share on other sites More sharing options...
the-joker Posted June 7, 2008 Author Share Posted June 7, 2008 (edited) @Si ha bisogno di queste due Pictures...vedi il primo post.@No non credo funzioni per vx...ma tu prova, non si sa mai. Edited June 7, 2008 by the-joker "Quarantadue!" urlò Loonquawl. "Questo è tutto ciò che sai dire dopo un lavoro di sette milioni e mezzo di anni?""Ho controllato molto approfonditamente," disse il computer, "e questa è sicuramente la risposta. Ad essere sinceri, penso che il problema sia che voi non abbiate mai saputo veramente qual è la domanda." Gioco disponibile: Prophecy of Last Era - OPEN SOURCE http://www.mediafire.com/?u6aut42ks12ixgf Puoi utilizzare qualsiasi evento, mappa, chara, grafica, e programmazione contenuta nel gioco-demo.Nessun diritto di copia.Hope you enjoy.http://www.rpg2s.net/awards/bestmusician3.jpg Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now