¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 PXMod::Inn el Lun Nov 12, 2012 5:45 pm

~SkyDarks

avatar
Holas! Vengo con otro aporte (y no, no es Copy-Paste) el script no es mío, pero aun así se los presento.


Nombre del Script: PXMod::Inn
Autor: Prexus
Versión: 1.0

Descripción:
Script, creado por Prexus, simula una forma de "hotel" para poder recuperar Puntos Vitales y Puntos Mágicos. Una forma de "hoteles" utilizados en RPG Makers anteriores y la mayoría de RPGs Comerciales.

Script:
Spoiler:
Código:
# ------------------------------------------------------------------- #
# PXMod::Inn                                                          #
#  By Prexus                                                        #
# Description: Mimics the Inn function of old RPG Makers and most    #
#  commercial RPGs.                                                  #
# ------------------------------------------------------------------- #

class Scene_Map
  alias pxmod_s_map_update update
  def update
    if PXMod::ENABLED
      if $inn
        if $inn.active
          $inn.update
        else
          $inn = nil
          return
        end
        $game_map.update
        $game_system.update
        $game_screen.update
        @spriteset.update
        @message_window.update
        return
      end
    end
    pxmod_s_map_update
  end
end

# ------------------------------------------------------------------- #
# Appends to Module::PXMod                                            #
#  By Prexus                                                        #
# These are parts of the script that act independantly of the default #
# RGSS coding. Its very important to PXMod to do the work this way.  #
# ------------------------------------------------------------------- #
module PXMod
  class Inn
    attr_accessor :active
    def initialize(price=0, message='Would you like to stay the night?')
      @price = price
      @message = message
      @active = true
      @wait_count = 0
      @started = false
      @message_window = PXMod::Window_InnMessage.new(@message.to_s)
      @price_window = PXMod::Window_Price.new(@price)
      @yesno_window = Window_Command.new(128, ['Yes', 'No'])
      @yesno_window.x = 512
      @yesno_window.y = 64
    end
    def update
      @message_window.update
      @price_window.update
      @yesno_window.update
      if @wait_count != 0
        @wait_count -= 1
        if @started
          if @wait_count == 0
            Audio.se_play("Audio/SE/" + PXMod::INN_SE)
            for actor in $game_party.actors
              actor.recover_all
            end
            $game_screen.start_tone_change(Tone.new(0, 0, 0, 0), 40)
            @started = false
            @wait_count = 80
          end
        else
          dispose
          return
        end
        return
      end
      if Input.trigger?(Input::B)
        $game_system.se_play($data_system.cancel_se)
        dispose
        return
      end
      if Input.trigger?(Input::C)
        case @yesno_window.index
        when 0 # Yes
          if $game_party.gold < @price
            $game_system.se_play($data_system.buzzer_se)
            return
          end
          $game_system.se_play($data_system.decision_se)
          $game_party.lose_gold(@price)
          $game_screen.start_tone_change(Tone.new(-255, -255, -255, 0), 40)
          @message_window.visible = false
          @price_window.visible = false
          @yesno_window.visible = false
          @started = true
          @wait_count = 60
        when 1 # No
          $game_system.se_play($data_system.decision_se)
          dispose
        end
        return
      end
    end
    def dispose
      @active = false
      @message_window.dispose
      @price_window.dispose
      @yesno_window.dispose
    end
  end
  class Window_InnMessage < Window_Base
    def initialize(message)
      super(0, 0, 640, 64)
      self.contents = Bitmap.new(width - 32, height - 32)
      self.contents.draw_text_shadow(4, 0, self.contents.width - 4, 32, message.to_s, 1)
    end
  end
  class Window_Price < Window_Base
    def initialize(price)
      super(416, 64, 96, 64)
      self.contents = Bitmap.new(width - 32, height - 32)
      self.contents.draw_text_shadow(4, 0, self.contents.width - 4, 32, price.to_s + ' ' + $data_system.words.gold, 1)
    end
  end
end

Instrucciones: Para utilizarlo, crea un evento (a tu imaginación) en el cual llames al Script con la siguiente línea:
Código:
$inn = PXMod::Inn.new(ñ)
Donde "ñ" es la cantidad a cobrar por la estadía en el hotel. El script lo pegas sobre Main.

Creditos: Este script está acreditado a Prexus.

Saludos, ~SkyD

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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