Jump to content
Rpg²S Forum

the-joker

Banned
  • Posts

    489
  • Joined

  • Last visited

Posts posted by the-joker

  1. 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
    

     

     

     

  2. - 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:
    post-996-1212865597.png
    post-996-1212865647.png

    - 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
    

     



  3. Timisci non riesco a combattere, ho provato anche a settare i tasti con f2, ma le api mi uccidono prima che riesca a capire come si attacchi.

     

    Comunque rivediti un po' le priorità delle piante e del bucato, perchè in alcuni punti ci passo sopra.

     

    L'ho solo visto di sfuggita il gioco, non preoccuparti che quando ho tempo mi metto e faccio una critica più elaborata.

×
×
  • Create New...