|
| | États élémentaux directement dans le menu | |
| | Auteur | Message |
---|
Invité Invité
| Sujet: États élémentaux directement dans le menu Lun 02 Juil 2007, 18:48 | |
| Auteur du script : MogHunterFonction: Ce script permet d'avoir un aperçut des résistances de votre personnages sur les éléments directement à partir du menu en pressant la touche " C" Voici la screen: Créer un nouveau script au dessus de main et nommer ce dernier : MOG_Element LV System V1.4 Et vous devez mettre ses deux images dans le dossier pictures de votre jeux Je trouvait que ce script était assez simpas - Code:
-
#_________________________________________________ # MOG_Element LV System V1.4 #_________________________________________________ # By Moghunter #_________________________________________________ # 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) |
| | | Invité Invité
| Sujet: Re: États élémentaux directement dans le menu Lun 02 Juil 2007, 18:48 | |
| et voici la fin du code à ajouter à la suite : - Code:
-
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 |
| | | Don Estebahn Maître du Savoir
Nombre de messages : 2145 Age : 33 Jeux Préférés : Soul Reaver, Morrowind, Way of the Samurai Date d'inscription : 18/02/2007
| Sujet: Re: États élémentaux directement dans le menu Dim 08 Juil 2007, 15:27 | |
| En effet, ce script a l'air plutôt sympa ^^ et mieux encore, il est loin d'être un des scripts modifiant le menu le plus connu, apparemment (jveux dire par là que je ne me souviens pas particulièrement l'avoir croisé quelquepart, contrairement aux scripts de menus numérotés qu'on trouve un peu partout ). Bref, je remarque surtout que ce script a été posté dans les règles de l'art! Bien illustré et expliqué en début de post, il ne manquait que l'auteur (j'ai édité). Merci à toi pour ton apport de qualité à la section, je t'ajoute 1 PA. | |
| | | Contenu sponsorisé
| Sujet: Re: États élémentaux directement dans le menu | |
| |
| | | | États élémentaux directement dans le menu | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |
|