Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 4070 miembros registrados.
El último usuario registrado es Rossainz.

Nuestros miembros han publicado un total de 84128 mensajes en 11983 argumentos.

Crear un simple contador de pasos

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP Crear un simple contador de pasos

Mensaje por paulo60379 el 2016-09-17, 21:33

Wolas, otra vez yo aqui (luego de años y años).

Otra vez vengo para pedir ayuda, pero les prometo que esta vez es porque de verdad ya me harte de probar y probar xD El tema es simple (incluso debe ser SUPER simple para cualquier programador que sepa) pero mis conocimientos no alcanzan a ese nivel. Sweat

He estado por lo menos los ultimos 3 dias intentando hacer un contador de pasos. Suena ridiculo, lo se, RPG Maker XP tiene un contador de pasos, pero no consigo resetearlo y eso me cuesta la existencia.

Lo que quiero hacer es que al estar en determinados mapas se cuenten los pasos del jugador, ya que al llegar a cierta cantidad algo ocurrira. He intentado crear una variable que valga lo mismo que la cantidad de pasos en un evento comun, pero entonces no puedo resetearlo, puesto que si a esa variable posteriormente le doy el valor 0 un paso despues volvera a tener el valor que tiene los pasos.

Entonces (y ya que estaba sin internet) me puse a investigar en el tutorial de RPGM XP y aprendi sobre los tipos de variables (yay!) y sobre como cada uno de los tres tipos requiere una llamada distinta. Entonces indague entre los datos de juego y logre encontrar la variable "steps" la cual se encuentra en el script "Game_Party" y me percate de que era una "Instance variable" y que (segun lo que pone el tutorial) puede ser llamada desde cualquier modo... pero entonces... ¡¿Como la llamo?! Estuve varias horas intentando cambiarle el valor por una llamada de script y solo logre deprimirme mas y mas.

Asi que, volviendo al asunto simple y sencillo. ¿Alguien que me ayude en esto de crear un contador de pasos reseteable? ¿o modificar el valor "Steps"?. Ah, y si alguien me pudiese recomendar un buen tutorial de Ruby para RPG Maker tambien lo agradeceria.

Intente con el que trae el propio programa, pero es bien "directo" y para alguien que no entiende una de programacion es un poco dificil, mas aun cuando esta en ingles. (Si bien sé ingles y puedo comprender, no lo domino a la perfeccion y varias palabras me dejan con dudas)
avatar
paulo60379
Novato
Novato

0/3

Créditos 88

Gracias : 7

Volver arriba Ir abajo

RPG Maker XP Re: Crear un simple contador de pasos

Mensaje por Wecoc el 2016-09-17, 21:41

No tienes que resetear el número de pasos interno del maker, solo hacer una resta.
1. Obtienes el número de pasos al entrar en el mapa (variable 1)
2. Obtienes el número de pasos donde te interesa saberlo (variable 2)
3. Restas variable 2 - variable 1 para saber cuantos pasos hizo en ese mapa.
avatar
Wecoc
Administrador
Administrador



Créditos 9129

Gracias : 471

Volver arriba Ir abajo

RPG Maker XP Re: Crear un simple contador de pasos

Mensaje por paulo60379 el 2016-09-17, 22:06

Ah, el tema es que necesito que ese contador de pasos cuente para varios mapas. Me explico un poco mas.

Lo que quiero hacer es que mientras se este en cierta zona (Es decir varios mapas) se cuente los pasos del jugador, y una vez llegado a ciertos numeros (Ej: al llegar a 500, 1000 y 1500 pasos) ocurran ciertos eventos.

Pero necesito que ese contador solo cuente los pasos en ciertos mapas, no en todos, ni tampoco en uno solo. Puesto que el jugador incluso podria ir de un mapa que cuenta pasos a otro que no, y me gustaria que la cifra de pasos se mantuviese.

EDIT:
Y ademas como pretendo quitar el contador de pasos del menu de juego, tampoco me importaria trastear con él e.e
avatar
paulo60379
Novato
Novato

0/3

Créditos 88

Gracias : 7

Volver arriba Ir abajo

RPG Maker XP Re: Crear un simple contador de pasos

Mensaje por Wecoc el 2016-09-17, 22:48

Creo que seguiría siendo viable con variables y lo que dije, pero es cierto que lía mucho.
Te he hecho un script para que lo tengas más fácil.

Código:
#==============================================================================
# ** Map Step Counter
#------------------------------------------------------------------------------
#  Autor: Wecoc - No requiere créditos
#==============================================================================

class Game_Party
  
        # Counter ID => [Map IDs]
  STEP_COUNTERS = {1 => [1, 2],
                   2 => [3, 4]
                   # ...
                  }
  
  attr_reader :step_counters
  
  alias step_counter_ini initialize unless $@
  def initialize(*args)
    step_counter_ini(*args)
    @step_counters = {}
    for k in STEP_COUNTERS.keys
      @step_counters[k] = 0
    end
  end
  
  # Obtener el número de pasos del mapa actual
  def step_count(id=0)
    counter_id = get_counter_id(id)
    return 0 if undefined_steps?(id)
    return @step_counters[counter_id[0]]
  end
  
  # Definir el número de pasos del mapa actual
  def step_count=(*args)
    step = args[-1]
    id = args[-2]
    id = 0 if id == nil
    counter_id = get_counter_id(id)
    return if undefined_steps?(id)
    @step_counters[counter_id[0]] = step
  end
  
  #--------------------------------------------------------------------------
  
  # Obtener el step counter actual (método de uso interno)
  def get_counter_id(id=0)
    STEP_COUNTERS.select{|c| c[1].include?($game_map.map_id)}[id]
  end
  
  # Comprobar si el mapa actual tiene step counter (método de uso interno)
  def undefined_steps?(id=0)
    counter_id = get_counter_id(id)
    return (counter_id == nil or @step_counters[counter_id[0]] == nil)
  end
    
  # Incrementar pasos (método de uso interno)
  def increase_steps
    @steps += 1
    c = STEP_COUNTERS.select{|c| c[1].include?($game_map.map_id)}
    c.each do |counter_id|
      @step_counters[counter_id[0]] += 1
    end
  end
end

Al principio del script debes definir la id de contador para cada mapa, en el ejemplo puse que los mapas 1 y 2 usaran el contador 1 y los mapas 3 y 4 usaran el contador 2. Puedes poner tantos contadores como quieras y tantos mapas como quieras en cada contador.

Luego es muy fácil, desde evento usa:
$game_party.step_count

Eso devuelve el número de pasos actual teniendo en cuenta el mapa actual. Si el mapa no tiene contador definido devuelve 0.

Puedes poner eso tal cual en las condiciones y efectos para lo que sea, por ejemplo:
Condiciones y Efectos: Script: $game_party.step_count > 1000

También puedes igualar una variable a ese contador, aunque no creo que te haga falta:
Script: $game_variables[1] = $game_party.step_count

Finalmente si quisieras cambiar el valor del contador actual puedes hacerlo también:
Script: $game_party.step_count = 0

Y no creo que lo uses, pero teniendo en cuenta el número que le hayas asignado al principio del script, puedes obtener el contador de un id concreto aunque no estés en el mapa que pertocaría, por ejemplo para el id 2 (mapas 3 y 4) sería:
Script: $game_party.step_counters[2]

Básicamente es eso. En principio es fácil de usar, ya lo verás. El script soporta que un mismo mapa tenga más de un contador, pero luego se complica bastante, así que no te lo recomiendo.
avatar
Wecoc
Administrador
Administrador



Créditos 9129

Gracias : 471

Volver arriba Ir abajo

RPG Maker XP Re: Crear un simple contador de pasos

Mensaje por paulo60379 el 2016-09-18, 00:08

¡¡¡Wecoc te pasaste!!! Very Happy
avatar
paulo60379
Novato
Novato

0/3

Créditos 88

Gracias : 7

Volver arriba Ir abajo

RPG Maker XP Re: Crear un simple contador de pasos

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


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