Fíjate en las capturas, son pocos condicionales e interruptores.
Si usas el nuevo 2003, te será incluso más fácil leer el código.

    Si ese engine es el que no usa dynrpg no creo que vaya bien.
    Tengo otro mejor pero no subido, usa varias comprobaciones para garantizar que no se suba la velocidad x2 o baje.
    Es sacado de un juego de un fan, tampoco lo hice yo. Le mandé un correo pero del 2002 el ejemplo. Difícil que me responda solo por preguntar si puedo usarlo. No requiere parches externos. Es un evento común.

    yo tambien utilizo un evento comun para correr en el juego que estoy haciendo, y no da problemas!

      Haze Vermillion
      Si, me alegro que te funcione y eso pero, cómo hago yo el evento común?
      El tema es que yo no sé hacerlo xD
      Por eso pregunto si alguien me puede enseñar (dejando como un mini tutorial o algo de guía).
      Mí pregunta no va de si funciona o no. Sé que funciona haciendo tal y tal cosa, pero el tema es que yo no sé cómo tengo que hacer xD
      ¿Cómo tengo que poner las condiciones, cuántas variables tengo que poner y cómo debo configurarlo?, etc. (De forma detallada claro. Porque había visto antes alguien que lo explicaba pero... Era difícil de entenderlo, en el sentido en que fue escrito como: "variable condición, tecla de acción. Interruptor de apagado activado... Luego otra vez lo mismo, y fin" y... Pues yo no le entendí nada xD )

      No he tocado mucho la parte de variables, y antes de hacer cualquier cosa (ya que mí tiempo es muy poco ahora, y mí acceso al internet también), pues estaba buscando algo de ayuda.
      xD

      Si alguien es tan amable de tomarse el tiempo de hacerme un mini tutorial o de pasarme algún link de uno que esté bien explicado se lo agradecería (también estará incluido en los créditos del juego, por la ayuda -independientemente de que pase un link o escriba un tutorial. Van a estar el nombre de los dos, obvio- :3)

      Si no... Bueno, no importa xD
      Sé que no muchos usan el 2k3 xD
      Pero como ví que la comunidad estaba bastante activa, asique pues, yo pregunté nomás... Gracias igual w

      Primero habría que sabe si tu juego tiene etapas donde el personaje jugador se mueva a otras velocidades diferentes, para que no afecte a la velocidad "normal" y velocidad "de correr", ya que el cambio de velocidad es relativo al que tiene en un momento dado.

      Una posible técnica para "reiniciar" la velocidad sería bajando al mínimo la velocidad y volviéndola a subir, asegurándose que siempre ha tocado fondo desde la velocidad máxima, de esta forma se puede lograr establecer la velocidad de forma absoluta y no relativa.

      Otro asunto sería saber cómo lo haría el personaje jugador para correr, si va a utilizarse una tecla específica, por ejemplo la tecla mayúsculas (shift) u otra presionada mientras se usan las flechas, o bien si va a ser un objeto equipado o algún otro mecanismo, como dobles pulsaciones o similar.

      Una vez se sepa eso, la forma de disparar el cambio de velocidad sería diferente, en ese caso llamaría al comando encargado del cambio de velocidad del personaje jugador y podrá explicarse aquí.

        fdelapena
        ★Ahh ok! Ya voy entendiendo.
        Bueno pues, lo que tengo pensado es que se tenga siempre la opción de correr en todo momento del juego y nada más, que se pulse con la tecla "shift" y que al momento de dejar de pulsar la tecla, se deje de correr. Y luego cuando sea en casos de que no, desactivarlo y luego volverlo a activar.

        Ya he probado hacerlo antes y me salió y todo. Sin variables, claro. Pero el tema es que no sabía para hacer que se vuelva a la velocidad original al dejar de pulsar la tecla shift, es decir, de forma automática. (Pude hacer eso pero sólo cuando se volvía a presionar el botón dejando la velocidad normal) no sé si sería algo aceptable lo que hice pero, funcionaba de todas formas.
        Ya he visto el mecanismo en otro juego de RPG 2000. Sólo que estaba en japonés y... Bueno.

        Pienso hacer mí juego tipo... bueno no sé definirlo todavía, creo que tiene un poco de todo.
        Y lo de correr sería fundamental, porque hay mucho mapa que recorrer, más que nada sería por tema de comodidad (ya que hay que ir y volver y pasearse por todos lados), aunque no lo veo tan preciso. Es todo un edificio de 6 pisos en total y luego un colegio bastante grande.

        Estaba pensando en publicar el proyecto aquí y algunas fotos pero no estaba muy convencida de hacerlo todavía...

          En la base de datos hay una sección eventos comúnes. Afecta a todo.

          En makers modernos es mas sencillo lo de correr. Simplemente hay un desplegable y eliges la velocidad. Pero en 2000-2003 lo que hay es un "subir velocidad" o "bajar velocidad".
          Puede pasar que suba dos veces, pulsar rápido el botón y que no se procese bien. Y requiere una comprobación para que no pase esto. Al parecer tras cambiar la velocidad usar ciclos evita que se procese por duplicado.
          Tengo un engine si, pero tengo que someterlo a machacar botones rollo turbo y comprobar que no falle nunca.
          Xpadder me valdra para eso...

          Tras casi terminar la parte presentada del juego de @Haze Vermillion y comprobar que el shift para correr lo utiliza igual que lo que quieres lograr y que además no me ha dado ningún problema, quizás podría explicar abriéndolo con RPG Maker 2003 en qué parte está ubicado ese evento para tener un ejemplo funcional para inspirarte 👍️.

          Todas las funciones-menus que vayan con tema de teclas hay que probar que pasa si le das a los botones muy rapido o a varios. En mi resident evil podias pulsar rápido y al subir unas escaleras acabar atrapado en la pared xd. Lo arreglé con esperas.
          A veces parece que algo es sencillo y va bien pero hay que someterlo a pruebas intensas.

          Mylloux Jaja mi intención cuando te dije que yo tenia uno que funcionara era para explicarte como hacerlo compañero, mira te voy a dejar el código aquí y te lo explicaré brevemente.

          En realidad por mas fácil que lo intente explicar a veces las palabras pueden apantallar demasiado, y parecer que estoy diciendo muchas cosas pero es bastante sencillo si logras entender la lógica detrás.

          ese es exactamente el código que uso, como podrás ver lo tengo escrito en la pestaña de Eventos comunes en la base de datos:

          Ahora procederé a explicarlo resumidamente, y si tienes duda con algo no dudes en preguntar, y si ya de plano no me entiendes nada, pues... es que soy pésimo explicando TuT

          Lo primero que vemos es un "label 1" o en español, una etiqueta #1, pero de momento ignoremos que eso esta allí.

          Lo siguiente que hay en el engine es un par de eventos de "key input processing" o en español "asignar teclas"

          este evento funciona con una variable, en este caso las variables tienen por nombre "correr 4" y "correr 1"

          Tengo la variable "correr 4" y abajo tengo marcadas las casillas de las direccionales, abajo, izquierda, derecha y arriba.
          como puedes observar al lado de cada direccional hay un numero entre paréntesis (abajo tiene un "1", izquierda un "2", derecha un "3" y por ultimo arriba un "4") esto lo que significa es que, si presiono abajo, la variable "correr 4" va a valer 1 mientras tenga la tecla presionada, si presiono izuierda la variable va a valer 2 mientras la tenga presionada y asi con el resto...

          Luego tengo la variable "correr 1" en donde esta marcada únicamente la casilla de "shift" el cual tiene un "7" entre parentesis al lado, esto significa que mientras mantenga presionada la tecla "shift" la variable "correr 1 " va a valer 7

          Nota: Dejar de presionar la tecla hará que la variable inmediatamente vuelva a valer 0

          Nota 2: Si marcas la casilla de "wait for key input" el valor que adquiere la variable cuando presionas la tecla solo dura un parpadeo, esta opción tiene muchas aplicaciones pero de momento no nos interesa.

          Siguiendo con el código, nos encontramos con un par de condiciones abajo de los "key input processing"

          Estas son condiciones, quiere decir que lo que esta adentro solo va a pasar si se cumple dicha condición.
          Primero tenemos una que dice:
          -Si la variable "correr 1" tiene un valor que no sea "0" entonces se cumple la condición:
          (en otras palabras, si presionamos shift, la variable "correr 1" va a valer "7" por tanto, se cumple la condición #1)

          Luego dentro de esa condición hay otra condición que dice:
          -Si la variable "correr 4" tiene un valor que no sea "0" entonces se cumple la condición:
          (Osea que si presionamos cualquier direccional se va a cumplir esta condición porque nuestra variable "correr 4" dejará de valer "0")
          Esto significa que, para que se cumpla lo que hay dentro de estas dos condiciones, debemos estar presionando "shift" y debemos estar presionando alguna direccional. Entonces bastaría con poner que la velocidad de nuestro personaje aumente cuando se cumplan estos dos requisitos, cierto?

          No, aunque esto efectivamente hará que nuestro personaje corra, aun hay algunos problemas que solventar. ya que debemos decirle al programa, que en el momento en el que se suelte, ya sea "shift" o la direccional, nuestro personaje deje de correr, entonces pasamos a la siguiente parte.

          Como puedes ver aquí volví a meter 2 variables nuevas "correr 3" y "correr 5", son exactamente iguales que "correr 1" y "correr 4" pero tenia que usar otras diferentes porque sino daba error, ya que correr 1 y 4 ya estaban ocupadas cumpliendo la condición. (lo sé... aquí se puso mas complicado pero es que no se me ocurrio de que otra manera explicarlo T.T)
          abajo tenemos un par de condiciones, que se activan en el momento en el que "correr 3" o "correr 5" valgan 0 (en otras palabras cuando soltemos shift o las direccionales) y dentro de esas condiciones puse la instruccion de bajar velocidad y cambiar grafico del heroe, para simular que este deja de correr.
          Y tambien puedes notar que esto esta dentro de un "loop" o "ciclo" en español, eso quiere decir resumidamente que el juego va a comprobar en todo momento que no hayas soltado "shift" o las direccionales, porque en el momento en el que lo hagas se cumpliran las condiciones y tu personaje dejará de correr...


          y ya para terminar, recuerdas la etiqueta #1 que mencioné al principio? pues al final introduje esta instruccion llamada "jump to label #1" o en español "ir a etiqueta #1" lo que basicamente hará que el codigo vuelva a leerse desde arriba y se repita todo de nuevo.

          Si tuviera que leer el código en lenguaje "humano" básicamente dice:

          -Cuando presiones shift y las direccionales, tu personaje correrá, y el programa comenzara a comprobar constantemente que las estés presionando aún, porque en el momento en el que no lo hagas, tu personaje se detiene y todo vuelve a empezar.

          Al final se hizo mucho mas largo de lo que pensé, pero te juro que trate de explicarlo lo mejor que pude y de verdad espero que te ayude. _ mucha suerte con tu proyecto y responderé cualquier duda como pueda.

            Haze Vermillion
            ★Muchas gracias! :'3

            Ah entonces yo entendí mal al principio, perdón, ando medio con las neuronas prendidas fuego por la universidad jaja xD (ni todavía empiezo a cursar, que ya con el ingreso ando con las ideas dadas vuelta xD help me plz ;w; )

            Se nota todo el tiempo que te tomaste para explicarlo, de verdad, muchas gracias!. Por ahora no puedo leerlo completo sino hasta el fin de semana TwT~
            Con todo eso escrito de seguro te has explicado muy bien.
            Además, yo también soy muy mala para dar explicaciones xD
            Ya no estás solo, ah(?

            De verdad, muchas gracias!
            Igual, es muy probable que de seguro alguna cosa me va a costar un poco entender xD
            Por ahora, lo poquito que leí por encima se entiende ;3

            ★Gracias por tu ayuda!