KEW XP - Enemigos + Armas

Ir abajo

KEW XP - Enemigos + Armas

Mensaje por kyonides el Jue Ene 24, 2019 6:32 am

KEW XP

por Kyonides-Arkanthes


Introducción

Este scriptlet les permite equipar a los monstruos con las armas que deseen. Solo requieren de un llamado a script por tipo de monstruo para conseguirlo.

Mad  Me odias, ¿no es verdad?


No, no es eso... Es que me cuesta trabajo soportar al tarado de Aluxes alias Alex alias Alexis y había que hacerle la vida de cuadritos.

Very Happy  ¡Lo hubieras dicho antes!  Razz ¡Ahora podré verlo en plena agonía!

O_o? Qué bien que te gustó la idea...

Script
Código:
# * KEW XP
#   Scripter : Kyonides-Arkanthes
#   2019-01-23

# ¡Los Enemigos pueden equipar un número cualquiera de armas!

# * Llamados a Script *

#     KEW.set_weapons(IDEnemigo, ArmaID, etc.)
#   ArmaID puede ser un número igual a 0 o superior. Con 0 se quita el arma.
#   Usenlo antes de que empiece el comando de evento de batalla. Es 1 por tipo de monstruo.

#     enemy = $game_troop.members[posicion]
#     enemy.set_weapons(ArmaID, etc.)
# o  enemy.set_weapon(posicion, ArmaID)
#   Llámenlo durante la batalla como un comando de evento de batalla.

module KEW
  WEAPON_MAX = 2
  def self.set_weapons(enemy_id, *weapons)
    return if enemy_id < 1
    @weapons[enemy_id] = weapons[0...WEAPON_MAX]
  end
  def self.get_weapons(enemy_id) @weapons[enemy_id] end
  def self.clear_weapons(enemy_id) @weapons.delete(enemy_id) end
  def self.include?(enemy_id) @weapons.keys.include?(enemy_id) end
end

class Game_Enemy
  alias kyon_enemy_weapon_gm_enemy_init initialize
  def initialize(troop_id, member_index)
    kyon_enemy_weapon_gm_enemy_init(troop_id, member_index)
    @weapons = Array.new(KEW::WEAPON_MAX, 0) # Do Not Edit This Line!
  end

  def base_str
    base = 0
    @weapons.each {|wid| base += $data_weapons[wid].str if wid > 0 }
    return $data_enemies[@enemy_id].str + base
  end

  def base_dex
    base = 0
    @weapons.each {|wid| base += $data_weapons[wid].dex if wid > 0 }
    return $data_enemies[@enemy_id].dex + base
  end

  def base_agi
    base = 0
    @weapons.each {|wid| base += $data_weapons[wid].agi if wid > 0 }
    return $data_enemies[@enemy_id].agi + base
  end

  def base_int
    base = 0
    @weapons.each {|wid| base += $data_weapons[wid].int if wid > 0 }
    return $data_enemies[@enemy_id].int + base
  end

  def base_atk
    base = 0
    @weapons.each {|wid| base += $data_weapons[wid].atk if wid > 0 }
    return $data_enemies[@enemy_id].atk + base
  end

  def base_pdef
    base = 0
    @weapons.each {|wid| base += $data_weapons[wid].pdef if wid > 0 }
    return $data_enemies[@enemy_id].pdef + base
  end

  def base_mdef
    base = 0
    @weapons.each {|wid| base += $data_weapons[wid].mdef if wid > 0 }
    return $data_enemies[@enemy_id].mdef + base
  end

  def equip_weapon(pos, wid)
    return @weapons[pos] if pos > KEW::WEAPON_MAX - 1
    @weapons[pos] = $data_weapons[wid] ? wid : 0
  end
  def equip_weapons(*new_weapons) @weapons = new_weapons.flatten end
end

class Game_Troop
  def setup(troop_id)
    @enemies = []
    troopers = $data_troops[troop_id].members
    troopers.size.times do |trooper|
      next unless $data_enemies[trooper.enemy_id]
      @enemies << monster = Game_Enemy.new(troop_id, @enemies.size)
      next unless KEW.include?(monster.id)
      monster.equip_weapons(KEW.get_weapons(monster.id))
    end
  end
end

Términos de Uso

Lo pueden utilizar en toda clase de juego, pero si se lanzan al mundo comercial, pues, tendrán que pagar una módica tarifa. No olviden incluirme en sus créditos.

kyonides
PJ Recurrente
PJ Recurrente

Masculino
Costa Rica
RPG Maker : Xp
Mensajes : 93
Monedas : 246
Reputación : 1

Volver arriba Ir abajo

Volver arriba

- Temas similares

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