Maker Palace

¡El Reino del RpgMaker y del Ocio!
 
ÍndiceBuscarGrupos de UsuariosScriptsRecursosTutorialesPalaceJuegosPalaceWikiFAQRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Temas similares
Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Últimos temas
» Reparación de Conjuros
por kyonides-arkanthos Jue Oct 12, 2017 12:22 am

» Screenshot del nuevo KUnits XP oon menú
por LinkLuis55 Sáb Sep 23, 2017 10:03 pm

» Dando una vuelta por acá
por LinkLuis55 Dom Ago 20, 2017 2:56 pm

» Heroes del Crimen 2 DEMO
por jasuso Mar Ago 01, 2017 12:04 am

» The Legend of Celestia II: A World of Twilight Shadows Demo
por Jlopez_96 Vie Jul 28, 2017 6:20 pm

» The Legend of Celestia: Four Cristals
por Jlopez_96 Mar Abr 25, 2017 4:59 pm

» [VXAce] Burando Doragon
por gantzer49 Dom Abr 23, 2017 7:43 pm

Recomendados
RPG en RPG Maker
La importancia de un Backup
Que requiere un sistema de Batalla para ser exitoso
9 Minutos de Juegos por fans
Guía de Subforos para Tontos de Maker Palace
Indice de Scripts Locales XP
Falcao Pearl ABS Liquid
¿Quién está en línea?
En total hay 6 usuarios en línea: 0 Registrados, 0 Ocultos y 6 Invitados :: 2 Motores de búsqueda

Ninguno

La mayor cantidad de usuarios en línea fue 179 el Mar Ago 30, 2011 10:06 pm.
MiniChat
Mejores posteadores
Raiden (3346)
 
DaviX (2740)
 
Frikilangelo (2461)
 
SagahonArturo (1806)
 
Falcao (1775)
 
kyonides-arkanthos (1768)
 
Mur-mai-der (1755)
 
Ares (1613)
 
LinkLuis55 (1558)
 
Webmaster24 (1354)
 
Afiliados
Crear foro Mundo Maker Foro de anime y RM2k3/XP/VX Computer mix
Flag Counter
free counters
Visitas


Comparte | 
 

 KSkill Bonus (en etapa ALFA)

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
kyonides-arkanthos
Lord Guru Maker
Lord Guru Maker
avatar

Cantidad de envíos : 1768
Miembro desde : 03/02/2010
Sexo : Masculino

Maker : RMXP


MensajeTema: KSkill Bonus (en etapa ALFA)   Mar Sep 22, 2015 4:06 pm

KSkill Bonus

Como dicen las instrucciones del script, este aún está lejos de quedar terminado. En cualquier caso preferí postearlo aquí en caso de que algún desquiciado buscador de bugs (miro directamente a cierta fruta parlanchina por ahí) se anime a ponerlo a prueba.

La idea a desarrollar es que el sistema de batallas por defecto permita que se gane o se pierda poder de daño o dinero al utilizar una técnica. Más adelante se puede pensar en otras opciones o en cómo hacerlas más interesantes según se desarrollen las cosas.

Código:
# * KSkill Bonus
#  Scripter : Kyonides-Arkanthos
#  En Etapa Alfa de desarrollo

#  Este script permite agregarle efectos secundarios a las habilidades o
#  técnicas de sus héroes. Siempre tendrán un mínimo y un máximo.

#  Solo funcionaría con un sistema de batallas típico de RMXP.

#  Opciones Disponibles para Buffs
#    :plus - Positiva, :minus - Negativa, :luck - A la Suerte, :gold - Dinero

#  En el caso de lo positivo y negativo se aplican los valores correspondientes
#  al valor del daño que recibirá el Objetivo.

module KDefaultBattle
  SKILL_EFFECTS = {}
  # Para Editar o Agregar nuevas Habilidades sigan este modelo.
  # SKILL_EFFECTS[ID] = { :buff => Opción, Mínimo => Valor, Máximo => Valor }
  SKILL_EFFECTS[7] = { :buff => :plus, :min => 10, :max => 30 }
end

class Scene_Battle
  def make_skill_action_result
    @skill = $data_skills[@active_battler.current_action.skill_id]
    # If not a forcing action
    unless @active_battler.current_action.forcing
      # If unable to use due to SP running out
      unless @active_battler.skill_can_use?(@skill.id)
        # Clear battler being forced into action
        $game_temp.forcing_battler = nil
        @phase4_step = 1 # Shift to step 1
        return
      end
    end
    # Use up SP
    @active_battler.sp -= @skill.sp_cost
    # Refresh status window
    @status_window.refresh
    # Show skill name on help window
    @help_window.set_text(@skill.name, 1)
    # Set animation ID
    @animation1_id = @skill.animation1_id
    @animation2_id = @skill.animation2_id
    # Set command event ID
    @common_event_id = @skill.common_event_id
    # Set target battlers
    set_target_battlers(@skill.scope)
    # Apply skill effect
    for target in @target_battlers
      target.skill_effect(@active_battler, @skill)
    end
  end
end

class Game_Battler
  def skill_effect(user, skill)
    self.critical = false # Clear critical flag
    # If skill scope is for ally with 1 or more HP, and your own HP = 0,
    # or skill scope is for ally with 0, and your own HP = 1 or more
    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
    # Clear effective flag
    effective = false
    # Set effective flag if common ID is effective
    effective |= skill.common_event_id > 0
    # First hit detection
    hit = skill.hit
    hit *= user.hit / 100 if skill.atk_f > 0
    hit_result = (rand(100) < hit)
    # Set effective flag if skill is uncertain
    effective |= hit < 100
    # If hit occurs
    if hit_result == true
      # Calculate power
      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
      # Calculate rate
      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)
      # Calculate basic damage
      self.damage = power * rate / 20
      # Element correction
      self.damage *= elements_correct(skill.element_set)
      self.damage /= 100
      # If damage value is strictly positive
      if self.damage > 0
        self.damage /= 2 if self.guarding? # Guard correction
      end
      # Dispersion
      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
      bonus_result = (rand(100) < self.luck)
      id = skill.id
      if KDefaultBattle::SKILL_EFFECTS.keys.include?(id)
        skill_effect = KDefaultBattle::SKILL_EFFECTS[id]
        buff = skill_effect[:buff]
        if buff == :any
          options = [:plus, :minus, :gold]
          buff = options[rand(3)]
        end
        min = skill_effect[:min]
        max = rand(skill_effect[:max] + 1)
        case buff
        when :plus
          self.damage += new_damage_value(min, max)
        when :minus
          self.damage -= new_damage_value(min, max)
        when :luck
          end_damage = new_damage_value(min, max)
          end_damage = -end_damage if (26..75).include?(rand(100))
          self.damage += end_damage
        when :gold
          if self.is_a?(Game_Actor)
            if $game_party.gold > 0
              gold = ($game_party.gold * max / 100).round
              min_gold = ($game_party.gold * min / 100).round
              gold = min_gold if gold < min_gold
              if $game_party.gold >= gold
                $game_party.lose_gold(gold)
              else
                self.damage = 0
              end
            else
              self.damage = 0
            end
          end
        end
      end
      # Second hit detection
      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)
      # Set effective flag if skill is uncertain
      effective |= hit < 100
    end
    # If hit occurs
    if hit_result == true
      # If physical attack has power other than 0
      if skill.power != 0 and skill.atk_f > 0
        remove_states_shock
        effective = true
      end
      # Substract damage from HP
      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
        # Set damage to an empty string
        self.damage = ""
        # If state is unchanged Set damage to "Miss"
        self.damage = "Miss" unless @state_changed
      end
    else # If miss occurs
      # Set damage to "Miss"
      self.damage = "Miss"
    end
    # If not in battle # Set damage to nil
    self.damage = nil unless $game_temp.in_battle
    return effective
  end

  def new_damage_value(min, max)
    init_damage = (self.damage * max / 100).round
    end_damage = [(self.damage * min / 100).round, init_damage].max
  end
end


Última edición por kyonides-arkanthos el Lun Oct 26, 2015 12:30 am, editado 1 vez
Volver arriba Ir abajo
Ver perfil de usuario http://deloquesea.mforos.com/forums/
Nyakuya
Caballero Experimentado
Caballero Experimentado
avatar

Cantidad de envíos : 225
Miembro desde : 09/10/2014
Edad : 21
Localización : Tandil
Sexo : Masculino

Maker : RMXP


MensajeTema: Re: KSkill Bonus (en etapa ALFA)   Jue Sep 24, 2015 5:08 pm

No tengo ningún problema en testearlo como desquiciado ewe

Pero una cosa, luego de que hayas conseguido terminar este script, ¿podrías considerar mi idea de Mutation System?.

Encerio no hay ningúna forma de modificar resistencia a estado o efectividad contra atributo en eventos, eso solo se puede configurar en la base de datos, por lo cual no se puede modiicar "in-game". Y este es un problema enorme para mi, puesto que no quiero que los personajes sean resistentes a nada en inicio, quiero que los puedas mejorar para que se hagan resistentes a ciertos atributos a medida que avanzás en la historia.

Entiendo si no quieres hacer el script que yo digo, pero estaria bueno entonces que se te ocurra alguna otra idea para poder hacer que con llamados de script se modifiquen "atributos" y "estados" de la data base.
Volver arriba Ir abajo
Ver perfil de usuario
Nyakuya
Caballero Experimentado
Caballero Experimentado
avatar

Cantidad de envíos : 225
Miembro desde : 09/10/2014
Edad : 21
Localización : Tandil
Sexo : Masculino

Maker : RMXP


MensajeTema: Re: KSkill Bonus (en etapa ALFA)   Miér Oct 14, 2015 1:10 am

Vuelvo a comentar. Me gustaría mucho utilizar la función de gastar dinero para ciertas habilidades de la clase ladrón, y también me gustaría poder hacer que el mago de sangre gaste vida cuando utiliza habilidades. Creo que se le podría agregar un nuevo "atributo" que se llame :health o algo así, como para que gaste un valor fijo de salud al usar la habilidad, o para que gaste un porcentaje fijo de salud al usar la habilidad.

Creo que este script va a estar muy bueno. Nunca busqué ninguno para tapar estas 2 cosas que quiero para el ladrón y el mago de sangre, y creo que este script puede ser el que me sirva para esas 2 cosas.
Volver arriba Ir abajo
Ver perfil de usuario
Contenido patrocinado




MensajeTema: Re: KSkill Bonus (en etapa ALFA)   

Volver arriba Ir abajo
 
KSkill Bonus (en etapa ALFA)
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» La ciudad del Alfa y Omega
» Home Bonus +duda
» Película: Alfa y Omega
» Nueva etapa en Cagliari
» 02.03.2011 06.03.2011 Vuelta Ciclista a la Region de Murcia ESP 2.1

Permisos de este foro:No puedes responder a temas en este foro.
Maker Palace :: RGSS Scripts :: Scripts Maker XP-
Cambiar a: