Maker Palace

¡El Reino del RpgMaker y del Ocio!
 
ÍndiceBuscarGrupos de UsuariosScriptsRecursosTutorialesPalaceJuegosPalaceWikiFAQRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Últimos temas
» Reparación de Conjuros
por kyonides-arkanthos Jue Oct 12, 2017 12:22 am

» Screenshot del nuevo KUnits XP oon menú
por LinkLuis55 Sáb Sep 23, 2017 10:03 pm

» Dando una vuelta por acá
por LinkLuis55 Dom Ago 20, 2017 2:56 pm

» Heroes del Crimen 2 DEMO
por jasuso Mar Ago 01, 2017 12:04 am

» The Legend of Celestia II: A World of Twilight Shadows Demo
por Jlopez_96 Vie Jul 28, 2017 6:20 pm

» The Legend of Celestia: Four Cristals
por Jlopez_96 Mar Abr 25, 2017 4:59 pm

» [VXAce] Burando Doragon
por gantzer49 Dom Abr 23, 2017 7:43 pm

Recomendados
RPG en RPG Maker
La importancia de un Backup
Que requiere un sistema de Batalla para ser exitoso
9 Minutos de Juegos por fans
Guía de Subforos para Tontos de Maker Palace
Indice de Scripts Locales XP
Falcao Pearl ABS Liquid
¿Quién está en línea?
En total hay 6 usuarios en línea: 0 Registrados, 0 Ocultos y 6 Invitados :: 1 Motor de búsqueda

Ninguno

La mayor cantidad de usuarios en línea fue 179 el Mar Ago 30, 2011 10:06 pm.
MiniChat
Mejores posteadores
Raiden (3346)
 
DaviX (2740)
 
Frikilangelo (2461)
 
SagahonArturo (1806)
 
Falcao (1775)
 
kyonides-arkanthos (1768)
 
Mur-mai-der (1755)
 
Ares (1613)
 
LinkLuis55 (1558)
 
Webmaster24 (1354)
 
Afiliados
Crear foro Mundo Maker Foro de anime y RM2k3/XP/VX Computer mix
Flag Counter
free counters
Visitas


Comparte | 
 

 KTimers XP

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
kyonides-arkanthos
Lord Guru Maker
Lord Guru Maker
avatar

Cantidad de envíos : 1768
Miembro desde : 03/02/2010
Sexo : Masculino

Maker : RMXP


MensajeTema: KTimers XP   Mar Oct 30, 2012 10:29 pm

KTimers XP
v 1.0.0

por Kyonides-Arkanthos



Este script permite ayudarles a los desarrolladores que puedan crear plantas que dan frutos cada cierto tiempo o cualquier otra cosa que al cabo de un rato pueda dejarle alguna ganancia al jugador que pase por uno de estos eventos.

Lo que lo hace conveniente es que no es específico para las plantas que dan frutos o las hortalizas que ya están esperando que las cosechen. Esto permite que Uds. vean cuántos otros usos le pueden dar a mi script. Además no hay un cronómetro o temporizador visible en pantalla.


INSTRUCCIONES


Copien y peguen el script donde Uds. ya saben que deben hacerlo.

Después editan la Constante llamada STAGES. Cada Tipo de Cronómetro indica por cuántas etapas pasará la planta antes de terminar dando su fruto.

STAGES = {1 => 3, 2 => 2} # Tipo de Cronómetro => Número de etapas

Luego creen un evento de varias páginas, con tantas páginas como el Número de etapas más 1, como crearían el de una planta que da frutos, en cada página configuren el gráfico correspondiente, estos deben ir en orden de menor a mayor siendo mayor cuando ya se puede recolectar el fruto o lo que sea que obtenga el jugador.

Lo siguiente sería ir a la primera página y dejar un comentario como el de este sencillo ejemplo:

timer 1 refresh 15

que quiere decir "cronómetro (ID) 1 refresca (cada) 15 segundos"

El tiempo siempre debe colocarse en segundos, o sea, para un minuto sería 60 segundos, etc.

En la última página hagan un llamado a script que diga:

reset_timer

¡Y todo quedará listo! De lo demás se encargará el script incluso si no están en el mismo mapa.


Descarga del DEMO


SCRIPT

Código:
#  KTimers XP
#  1.0.0 - 2012-10-30
#  Scripter : Kyonides alias Kyonides-Arkanthos

#  Do you need to setup a growing plant event or anything like that?
#  Would you prefer not to watch the Game System timer on screen?
#  If so, then give this script a shot.

#  INSTRUCTIONS

#      Copy and paste this script in the script editor.
#      Then create a new multi-page event with their graphics and self switches
#      Except for the first page, you should setup a Self Switch as a page
#      starting condition on every single page.
#      Later on leave a comment on the first page:
#          timer 1 refresh 20
#      And just let the script update the event for you even if they're not on
#      the same map. When you come back, the plant will be ripe.
#      To start all over again, add the following script call
#          reset_timer

module KTimers
  TAG = /timer (\d) refresh (\d+)/ # timer (ID) refresh (seconds)
  STAGES = {1 => 3, 2 => 2}
  SWITCHES = ['A', 'B', 'C', 'D']
end

class Timer
  attr_reader :count, :count_max, :stage_max
  attr_accessor :stage
  def initialize(count, count_max, stage, stage_max)
    @count, @count_max, @stage, @stage_max = count, count_max, stage, stage_max
  end

  def reset() @count, @stage = @count_max, -1 end

  def count=(val) @count = val if @count >= 0 end

  def active?() @stage < @stage_max end

  def refresh?() @count == 0 and @stage < @stage_max end
end

class Game_System
  attr_reader :timers
  alias kyon_ktimers_gm_system_init initialize
  alias kyon_ktimers_gm_system_up update
  def initialize
    kyon_ktimers_gm_system_init
    @timers = {}
  end

  def update
    kyon_ktimers_gm_system_up
    @timers.each {|map, hsh| hsh.each {|eid, val| timer = @timers[map][eid]
      timer.count -= 1 if timer.active?
      refresh_events(timer, map, eid) if timer.refresh?} } if !@timers.empty?
  end

  def refresh_events(timer, mapid, eid)
    timer.count, timer.stage = timer.count_max, timer.stage + 1
    key = [mapid, eid, KTimersSWITCHES[timer.stage]]
    $game_self_switches[key] = true if timer.active?
    ($game_map.events[eid].refresh; return) if mapid == $game_map.map_id
    $game_map.special_events[mapid][eid].refresh
  end

  def reset_timer(mapid, eid, refresh)
    @timers[mapid][eid].reset
    k, stages = [mapid, eid], @timers[mapid][eid].stage_max
    stages.times {|n| $game_self_switches[k + [KTimersSWITCHES[n]]] = false}
  end
end

class Game_Map
  attr_reader :special_events
  alias kyon_ktimers_gm_init initialize
  alias kyon_ktimers_gm_setup setup
  def initialize
    kyon_ktimers_gm_init
    @special_events = {}
  end

  def setup(map_id)
    kyon_ktimers_gm_setup(map_id)
    setup_special_events(map_id) unless @special_events.include?(map_id)
  end

  def setup_special_events(map_id)
    @special_events[map_id], $game_system.timers[map_id] = {}, {}
    @events.map {|e| next unless e[1].list[0].code == 108
      next unless e[1].list[0].parameters[0].match(KTimers::TAG)
      param, time = e[1].list[0].parameters[0], Graphics.frame_rate
      param.gsub(KTimers::TAG, '')
      time, stages = time * $2.to_i, KTimers::STAGES[$1.to_i]
      $game_system.timers[map_id][e[0]] = Timer.new(time, time, -1, stages)
      @special_events[map_id][e[0]] = e[1] }
  end
end

class Interpreter
  def reset_timer
    map_id, event = $game_map.map_id, get_character(0)
    $game_system.reset_timer(map_id, event.id, true)
    event.refresh
  end
end
Volver arriba Ir abajo
Ver perfil de usuario http://deloquesea.mforos.com/forums/
kyonides-arkanthos
Lord Guru Maker
Lord Guru Maker
avatar

Cantidad de envíos : 1768
Miembro desde : 03/02/2010
Sexo : Masculino

Maker : RMXP


MensajeTema: Re: KTimers XP   Miér Oct 31, 2012 6:09 pm

Bueno luego de revisar el demo preferí hacerle unos ajustes al demo no al script, entre ellos estarían el eliminar archivos que ya no estaban en uso y corregir un evento de teletransportación del jugador al mapa 2 y no al 3 que ya había dejado de existir hace algunas horas, oh, y eliminar un evento que trataba de replicar lo que hace mi script. Ese evento eliminado me comprobó la razón de ser de mi script, con KTimers crear ese tipo de eventos sería mucho más simple para Uds. que hacerlo solo mediante engine y no verían ningún cronómetro (el que viene con el Maker) molesto en pantalla, el cual solo puede correr por un evento a la vez.

Ahora el demo es muy liviano, ocupa menos de 200 KB de espacio en disco duro.
Volver arriba Ir abajo
Ver perfil de usuario http://deloquesea.mforos.com/forums/
 
KTimers XP
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

Permisos de este foro:No puedes responder a temas en este foro.
Maker Palace :: RGSS Scripts :: Scripts Maker XP-
Cambiar a: