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
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 9 usuarios en línea: 0 Registrados, 0 Ocultos y 9 Invitados :: 1 Motor 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 | 
 

 KLeechSeed XP

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: KLeechSeed XP   Vie Ene 22, 2016 4:27 pm

KLeechSeed XP

por Kyonides-Arkanthos

En realidad este es un relanzamiento de un viejo script mío que nunca había publicado aquí sino solo en otros sitios.

ESTE SCRIPT HA SIDO DECLARADO OBSOLETO. Si desean utilizar estas mismas funciones, utilicen KStates XP.

El script les brinda la posibilidad de configurar mediante script el funcionamiento de 2 nuevos tipos de estados, Sanguijuela de PV y de PM. Lo interesante de este asunto es que tanto héroes como monstruos pueden colocar más de una sanguijuela durante una batalla hasta llegar al punto de desangrar o "desmanificar" a todos sus oponentes, si es que lo logra. Obviamente hay cosas que hay que configurar tanto en la pestaña de Habilidades o Skills como en las de Clases (o Jobs) y Enemigos dependiendo de a quiénes les quieran otorgar dichas habilidades.

De momento el script está en modo de prueba hasta nuevo aviso, pero son bienvenidos los que quieran verificar su funcionamiento.

Código:
#   KLeechSeed Default BS Version
#   v1.1 - 2016-01-22
#   Scripter : Kyonides-Arkanthos

module KSkill
  HPSEEDSID = 81 # ID de Técnica Sanguijuela de PV o Leech Seed
  SPSEEDSID = 82 # ID de Técnica Sanguijuela de PM o Leech Seed
  HPSEEDSID = 17 # ID de Estado Sanguijuela de PV o Seeded
  SPSEEDSID = 18 # ID de Estado Sanguijuela de PM o Seeded
end

class Game_Battler
  attr_reader :seed_damage, :leeches
  alias kyon_leech_seed_gm_battler_init initialize
  alias kyon_leech_seed_gm_battler_sk_eff skill_effect
  def initialize
    @seed_damage = 0
    clear_leeches
    kyon_leech_seed_gm_battler_init
  end

  def clear_leeches
    @leeches = { :actors => { :hp => [], :sp => [] },
                 :troop => { :hp => [], :sp => [] }  }
  end

  def clear_hp_leeches
    @leeches[:actors][:hp] = []
    @leeches[:troop][:hp] = []
  end

  def clear_sp_leeches
    @leeches[:actors][:sp] = []
    @leeches[:troop][:sp] = []
  end

  def skill_effect(user, skill)
    if result = kyon_leech_seed_gm_battler_sk_eff(user, skill)
      kind = skill.id == KSkill::HPSEEDSID ? :hp : :sp
      add_leech(kind, user)
    end # and !@states.include?(KSkill::SEEDSTATEID)
    result
  end

  def add_leech(kind, user)
    group = user.is_a?(Game_Actor)? :actors : :troop
    uix = user.index
    @leeches[group][kind] << uix if !@leeches[group][kind].include?(uix)
  end

  def slip_damage_effect
    self.damage = self.maxhp / 10
    if self.damage.abs > 0
      amp = [self.damage.abs * 15 / 100, 1].max
      self.damage += rand(amp+1) + rand(amp+1) - amp
    end
    if @states.include?(HPSEEDSID) or @states.include?(SPSEEDSID)
      @seed_damage = self.damage
    end
    self.hp -= self.damage
    return true
  end

  def hp_leech_effect(leech_hp)
    self.hp -= leech_hp
    self.damage = -leech_hp
    self.damage_pop = true
    self.clear_hp_leeches if self.hp == 0
    return true
  end

  def sp_leech_effect(leech_sp)
    self.sp -= leech_sp
    self.damage = -leech_sp
    self.damage_pop = true
    self.clear_sp_leeches if self.sp == 0
    return true
  end

  def remove_states_auto
    for i in @states_turn.keys.clone
      if @states_turn[i] > 0
        @states_turn[i] -= 1
      elsif rand(100) < $data_states[i].auto_release_prob
        remove_state(i)
      end
    end
  end
end

class Spriteset_Battle
  attr_reader :actor_sprites, :enemy_sprites
end

class Scene_Battle
  alias kyon_leech_seed_scn_battle_main main
  alias kyon_leech_seed_scn_battle_up_ph4_s1 update_phase4_step1
  def main
    kyon_leech_seed_scn_battle_main
    $game_party.actors.size.times {|n| break if $game_party.actors[n].nil?
      $game_party.actors[n].clear_leeches }
  end

  def update_phase4_step1
    @help_window.visible = false
    return if judge
    if $game_temp.forcing_battler == nil
      setup_battle_event
      return if $game_system.battle_interpreter.running?
    end
    if $game_temp.forcing_battler != nil
      @action_battlers.delete($game_temp.forcing_battler)
      @action_battlers.unshift($game_temp.forcing_battler)
    end
    if @action_battlers.size == 0
      start_phase2
      return
    end
    @animation1_id = 0
    @animation2_id = 0
    @common_event_id = 0
    @active_battler = @action_battlers.shift
    return if @active_battler.index == nil
    update_phase4_step1_slip_damage
    @active_battler.remove_states_auto
    @status_window.refresh
    @phase4_step = 2
  end

  def update_phase4_step1_slip_damage
    return unless @active_battler.hp > 0 and @active_battler.slip_damage?
    @active_battler.slip_damage_effect
    @active_battler.damage_pop = true
    damage = @active_battler.seed_damage
    if @active_battler.is_a?(Game_Actor)
      leeches = @active_battler.leeches[:troop].sort
      targets = $game_troop.enemies
    else
      leeches = @active_battler.leeches[:actors].sort
      targets = $game_party.actors
    end
    return if leeches.empty?
    if KSkill::HPSEEDSID
      leeches.each {|n| leech = targets[n]
        damage = leech.maxhp - leech.hp if leech.hp + damage > leech.maxhp
        leech.hp_leech_effect(damage)
        break if @active_battler.hp == 0  }
    elsif KSkill::SPSEEDSID
       leeches.each {|n| leech = targets[n]
        damage = leech.maxsp - leech.sp if leech.sp + damage > leech.maxsp
        leech.sp_leech_effect(damage)
        break if @active_battler.sp == 0  }
    end
  end
end
Volver arriba Ir abajo
Ver perfil de usuario http://deloquesea.mforos.com/forums/
 
KLeechSeed XP
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

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