Últimos temas
» [MV] Jabberwock
por rojo1991 Hoy a las 3:52 am

» [Publicidad] Around me
por Turbiosoft.acho Ayer a las 12:17 pm

» ¿Como hacer que los enemigos se muevan en batalla?
por Iskachu 2000 Ayer a las 7:06 am

» Necesito un script de batalla lateral
por Greninja555 Vie Jun 14, 2019 3:42 pm

» (RMMV) Around me, crimson-stained leaves (¡Descarga disponible!)
por brrt Vie Jun 14, 2019 2:04 am

» Tutoriales engine y script VX Ace.
por micky_joe Jue Jun 13, 2019 7:49 pm

» Duda con cambio de gráficos en Ruta de Movimiento (VXAce)
por Fiquei Jue Jun 13, 2019 11:02 am

» Maker MV: como hacer respawn de misiones y objetos?
por JapoZero Jue Jun 13, 2019 7:50 am

» Zaza no konpasu (La Brújula de Zaza) [VXACE]
por Pocari Mar Jun 11, 2019 11:58 pm

» Vampiros Eternos
por elcrom Mar Jun 11, 2019 1:38 am

» Los audios importados no aparecen!!
por Shy_Cream Mar Jun 11, 2019 1:33 am

» Dudas con el combate (RPGM 2003).
por Athelstan Lun Jun 10, 2019 6:53 am


KPass XP & VX

Ir abajo

KPass XP & VX Empty KPass XP & VX

Mensaje por kyonides el Vie Ene 11, 2019 5:25 am

KPass XP & VX


por Kyonides-Arkanthes




Introducción

Este script es solo una alternativa para crear limitaciones al acceso a ciertas áreas o mapas mediante el uso de... ¡pasaportes!

Sí, ya sé que pueden existir métodos más "típicos" del maker para alcanzar lo mismo, pero me importa poco si ese es el caso. :XP:

Ni siquiera sé si habrá interesados en incluirlo en sus proyectos, de igual forma se los dejo aquí.

Código:
# * KPass XP & VX
#   Scripter : Kyonides-Arkanthes
#   2019-01-10 - Versión Mango

#  Este script trata de emular la necesidad de tener un pasaporte a mano.
#  Un pasaporte incluye lo siguiente:
#    ID:   igual a la del actor o héroe
#    AGE:  Edad, 0 por defecto
#    Name:          Nombre del actor en la base de datos, no se actualiza solo
#    Nickname:      Apodo del actor en la base de datos, no se actualiza solo
#    Father's name: Nombre del padre del actor
#    Mother's name: Nombre de la madre del actor
#    Land:          El País, vacío o pueden definirlo cuando gusten
#    Status:        Estado, vacío o pueden definirlo cuando gusten
#  Estos nombres están vacíos si nunca se configuran.
#  Todo pasaporte incluye pasos como método de expiración.

# * Llamadas a Script *

#  $game_party.passport_status?(ID_actor, estado1, etc.)
#  Incluya uno o más estados permitidos como :vip o "nongrata"
#  Fallará si el estado del actor no está incluido.

#  $game_party.has_land_permit?(ID_actor, land_to_visit)
#  ¿Tiene permiso para ingresar en ese país?

#  $game_party.passport_expired?(ID_actor)
#  ¿Ha expirado el pasaporte del actor? (En caso de que no tenga más pasos...

#  $game_party.lose_passport(ID_actor)
#  ¡Pierda el pasaporte para siempre! (Necesitará emitir otro en el futuro...)

#  $game_party.retain_passport(ID_actor)
#  ¡Permita que los agentes de aduanas retengan el pasaporte!

#  $game_party.return_passport(ID_actor)
#  ¡Permita que los agentes de aduanas regresen el pasaporte!

#  $game_party.retained_passport?(ID_actor)
#  ¿Está retenido el pasaporte del actor?

#  $game_party.make_passport(ID_actor)
#  Emita un nuevo pasaporte o renueve este.

#  KPass.no_access[Nombre_Pais] = true o false
#  Bloquee todo acceso a cierto país o no lo haga.

#  KPass.no_strangers[Nombre_Pais] = true o false
#  Bloquee todo acceso a extranjeros o no lo haga.

#  KPass.no_access[Nombre_Pais]
#  Use como condición para verificar si hay un bloqueo general para x país.

#  KPass.no_strangers?(Nombre_Pais, ID_actor)
#  Revisa si un actor extranjero puede ingresar en un país.
module KPass
  DEFAULT_EXPIRATION_STEPS = 1000 # Pasos antes de expirar
  # Pasaportes por ser emitidos al comienzo del juego
  ACTOR_DATA = ad = {} # ¡No editen esta línea!
  # ad[ID_actor] = { padre => nombre, madre => nombre, país => nombre,
  # estado => :vip o :buscado o :nongrata o :diplomatico o pueden omitirlo
  # Advertencia - Los :simbolos siempre irán en inglés.
  ad[1] = { :father => "Unknown",
            :mother => "",
            :land => "Forgotten Land" }
  ad[2] = { :father => "Anselm",
            :mother => "Lydia",
            :land => "Jolt Kingdom" }
  def self.no_access() @no_access end
  def self.no_strangers() @no_strangers end
  def self.no_access=(new_list) @no_access = new_list end
  def self.no_strangers=(new_list) @no_strangers = new_list end
  def self.no_strangers?(land, actor_id)
    $game_party.passports[actor_id].land == land and @no_strangers[land]
  end

  def self.reset_access_data
    @no_access = {}
    @no_strangers = {}
  end

  def self.restore_access_data
    @no_access = $game_party.no_access
    @no_strangers = $game_party.no_strangers
  end
end

class KPassport
  def initialize
    @id = 1
    @age = 0
    @name = ""
    @nickname = ""
    @father_name = ""
    @mother_name = ""
    @land = ""
    @status = nil
    @permits = {}
    @rejections = {}
    set_expiration
  end
  def set_expiration() @expire_steps = KPass::DEFAULT_EXPIRATION_STEPS end
  def expired?() @expire_steps == 0 end
  def decrease_steps() @expire_steps -= 1 if @expire_steps > 0 end
  attr_accessor :id, :age, :name, :nickname, :father_name, :mother_name
  attr_accessor :land, :status
  attr_reader :permits, :rejections
end

class Game_Party
  attr_reader :passports, :no_access, :no_strangers
  alias kyon_kpass_gm_party_init initialize
  alias kyon_kpass_gm_party_steps increase_steps
  def initialize
    kyon_kpass_gm_party_init
    KPass.reset_access_data
    @passports = {}
    @no_access = KPass.no_access
    @no_strangers = KPasss.no_strangers
    make_passports
  end

  def make_passports
    data = KPass::ACTOR_DATA
    ids = data.keys.sort
    ids.each do |n|
      ad = data[n]
      @passports[n] = pass = KPassport.new
      pass.id = n
      pass.name = $game_actors[n].name
      pass.father_name = ad[:father] || ""
      pass.mother_name = ad[:mother] || ""
      pass.land = ad[:land] || ""
      pass.status = ad[:status]
      pass.age = ad[:age] || 0
    end
  end

  def lose_passport(aid) @passports.delete(aid) end
  def retain_passport(aid) @retained_passports[aid] = @passports.delete(aid) end
  def return_passport(aid) @passports[aid] = @retained_passports.delete(aid) end
  def retained_passport?(aid) @retained_passports.keys.include?(aid) end

  def make_passport(aid)
    unless (pass = @passports[aid])
      @passports[aid] = pass = KPassport.new
      pass.id = aid
      pass.name = $game_actors[aid].name
    end
    pass.set_expiration
  end

  def increase_steps
    @passports.each {|pass| pass.decrease_steps }
    kyon_kpass_gm_party_steps
  end

  def passport_status?(aid, *statuses)
    return unless (pass = @passports[aid])
    statuses.include?(pass.status)
  end

  def has_land_permit?(aid, land)
    return unless (pass = @passports[aid])
    pass.permits[land]
  end

  def passport_expired?(aid)
    return true unless (pass = @passports[aid])
    pass.expired?
  end
end

class Scene_Load
  alias kyon_kpass_scn_load_on_decision on_decision
  def on_decision(filename)
    kyon_kpass_scn_load_on_decision(filename)
    KPass.restore_access_data
  end
end

Términos y Condiciones

Es de libre uso en proyectos no comerciales, a los proyectos comerciales se les aplicará una única tarifa de $15 americanos por proyecto alias juego terminado que publiquen y no se multiplicará por la cantidad de copias vendidas de sus juegos.

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.