Últimos temas
» [Juego completo] [MV] VoteMe
por Turbiosoft.acho Lun Abr 22, 2019 7:53 pm

» Efectos de estado estilo Pokémon [VX ace]
por juantru Lun Abr 22, 2019 5:12 pm

» Chronicles from the Past
por Ruben_modder Dom Abr 21, 2019 8:19 pm

» [rm2k3] Peke: ZombieWorld V2.0¡Nueva DEMO!
por EdwarPlay Dom Abr 21, 2019 7:43 pm

» Problema con el nombre del juego rpg maker vx ace
por Muzgar Dom Abr 21, 2019 6:50 pm

» Zaza no konpasu (La Brújula de Zaza) [VXACE]
por Pocari Dom Abr 21, 2019 12:11 pm

» [Engine Vx Ace] Galileo Engine V1.4 [Completo]: "Física de Rebote"
por IvalteK_Dev Dom Abr 21, 2019 1:53 am

» [Proyecto] Tempestad e ímpetu
por Frägarach Sáb Abr 20, 2019 4:32 am

» The Misticals Yian's Dreamstales
por liendre Vie Abr 19, 2019 7:42 pm

» [Publicidad] Batafrai II
por Muzgar Miér Abr 17, 2019 11:52 pm

» [Publicidad] Batafrai
por Muzgar Miér Abr 17, 2019 11:28 pm

» Error de Script en batalla (MUY IMPORTANTE)
por fatyguero Mar Abr 16, 2019 11:24 am


KChangeSkill XP

Ir abajo

KChangeSkill XP Empty KChangeSkill XP

Mensaje por kyonides el Sáb Ene 26, 2019 9:52 am

KChangeSkill XP

por Kyonides-Arkanthes


Introducción

Este script les permite hacer sufrir a los héroes en el caso de que les hayan infligido un estado negativo o extraño como "mala idea" o "extremista" o "aleatorio" o "autocura". La idea es que si tienen el primer o el segundo estado, malgasten sus puntos en lanzar técnicas o hechizos demasiado débiles o muy fuertes por n cantidad de turnos. En otras palabras, si el jugador elige una habilidad durante ese turno, verá cómo se desperdician los PM.

Script

Código:
# * KChangeSkill XP
#   Scripter : Kyonides-Arkanthes
#   2019-01-26

#   This script will let you automatically change the skill the player chooses
#   whenever the current hero has not gotten rid of an unusual status.

#   Available Options  #

#   Weak or Strong or Random or Weak Healing Skill

#   Warning!  #
#   Two of Scene_Battle original methods have been overwritten, namely
#   update_phase3_skill_select and update_phase3_item_select.

module KChangeSkill
  EFFECTIVENESS = 75
  STATE_IDS = { 17 => :weak, 18 => :strong, 19 => :random, 20 => :healing }
end

class Scene_Battle
  def update_phase3_skill_select
    @skill_window.visible = true
    @skill_window.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      end_skill_select
      return
    elsif Input.trigger?(Input::C)
      @skill = @skill_window.skill
      unless @skill and @active_battler.skill_can_use?(@skill.id)
        return $game_system.se_play($data_system.buzzer_se)
      end
      $game_system.se_play($data_system.decision_se)
      effective = KChangeSkill::EFFECTIVENESS > rand(100)
      sid = effective ? get_skill_id(true) : @skill.id
      @active_battler.current_action.skill_id = sid
      @state_kind = @pos = nil
      @skill_window.visible = false
      check_skill_scope
    end
  end

  def check_skill_scope
    if @skill.scope == 1
      start_enemy_select
    elsif @skill.scope == 3 or @skill.scope == 5
      start_actor_select
    else
      end_skill_select
      phase3_next_actor
    end
  end

  def update_phase3_item_select
    @item_window.visible = true
    @item_window.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      end_item_select
      return
    elsif Input.trigger?(Input::C)
      @item = @item_window.item
      unless $game_party.item_can_use?(@item.id)
        return $game_system.se_play($data_system.buzzer_se)
      end
      $game_system.se_play($data_system.decision_se)
      sid = 0
      if KChangeSkill::EFFECTIVENESS > rand(100)
        sid = get_skill_id
        @active_battler.current_action.skill_id = sid
      end
      @item_window.visible = false
      if sid == 0
        @active_battler.current_action.item_id = @item.id
        check_item_scope
      else
        @skill = $data_skills[sid]
        check_skill_scope
        @state_kind = nil
        @skill = nil
        @pos = nil
      end
    end
  end

  def check_item_scope
    if @item.scope == 1
      start_enemy_select
    elsif @item.scope == 3 or @item.scope == 5
      start_actor_select
    else
      end_item_select
      phase3_next_actor
    end
  end

  def get_skill_id(found_id=nil)
    sid = found_id ? @skill.id : 0
    @active_battler.states.each do |state_id|
      next unless (@state_kind = KChangeSkill::STATE_IDS[state_id])
      @pos = case @state_kind
      when :weak, :heal then 0
      when :strong then -1
      when :random then rand(@active_battler.skills.size)
      end
      break
    end
    return sid unless @state_kind
    skills = @active_battler.skills.map {|skid| SkillPower.new(skid) }
    skills = skills.sort_by{|sd| sd.power }
    if @state_kind == :heal
      heal_skills = skills.select{|s| s.can_heal }
      return heal_skills[0].id unless heal_skills.empty?
    end
    return skills[@pos].id
  end
end

class SkillPower
  def initialize(new_id)
    @id = new_id
    pow = $data_skills[@id].power
    @power = pow.abs
    @can_heal = pow < 0
  end
  attr_reader :id, :power, :can_heal
end

Términos de Uso

Pueden usarlos en cualquier clase de juego, pero sí pediré un pago módico en caso de que se trate de un juego comercial. Siempre deben incluirme en los créditos de sus juegos y demos.

kyonides
PJ Recurrente
PJ Recurrente

Masculino
Costa Rica
RPG Maker : Xp
Mensajes : 96
Monedas : 250
Reputación : 2

Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.