Últimos temas
» [RMVXA] Resurrected
por DorFenn Vie Nov 15, 2019 12:05 pm

» ¿Cómo puedo mandar un PDF junto a un juego?
por Muzgar Miér Nov 13, 2019 3:48 pm

» LA BRÚJULA DE ZAZA [VXACE]
por Muzgar Miér Nov 13, 2019 3:41 pm

» Duda, ayuda
por Muzgar Miér Nov 13, 2019 3:38 pm

» Sistema de parallax, tiempo, climatologia e iluminacion
por ckunx Miér Nov 13, 2019 2:37 pm

» [MV/VX/Ace] Engine "Objetivo actual" y "Hablar con el grupo"
por ckunx Miér Nov 13, 2019 2:28 pm

» error de script (HUD)
por Klayer Lun Nov 11, 2019 10:47 pm

» LMD - Lunas de Magia Divina
por Zaabos Lun Nov 11, 2019 8:56 pm

» Heartland | IGMC 2018
por DopellSerch Lun Nov 11, 2019 3:55 pm

» Hasta luego
por InvariableZ Dom Nov 10, 2019 2:41 pm

» [Publicidad] Around Me, otra vez.
por Muzgar Dom Nov 10, 2019 12:45 pm

» KBoomEffect XP
por kyonides Sáb Nov 09, 2019 1:55 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 Secundario
PJ Secundario

Masculino
Costa Rica
RPG Maker : Xp
Mensajes : 123
Monedas : 321
Reputación : 3

Volver arriba Ir abajo

Volver arriba


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