Bueno, muy sencillo. Tengo un personaje al que comprarle una llave, pero sólo te ofrece esa posibilidad si tienes el dinero necesario.

Quiero registrar el requisito (si tienes dinero suficiente) en el evento create del objeto en la room, y, cuando sea necesario, testar ese requisito. En realidad es más complicado, porque es una serie de requisitos los que quiero poder registrar. Y testarlos cuando yo quiera.

Claro, pongo

[gml]requisito = (global.dinero >= 500 && obj_player.llave = 0)[/gml]

O sea, si tienes dinero y si no tienes la llave. Porque si la tienes, para qué demonios ibas a comprar otra.

Entonces crea una variable y determina que su valor es 0 porque no se da la condición, entonces da igual lo que haga porque la variable requisito tiene valor 0 y no valor de "si tienes dinero y no tienes llave"; lo que yo busco es registrar esa misma condición  para testarla siempre que me salga del pito. ¿Cómo me lo marco?
Me estoy montando un plataformas medieval bastante interesante. O eso creo.

primeramente no se que intentas hacer con eso si es ahorrar codigo o otra cosa pero lo que quieres hacer es sencillo solo tienes que colocar ese codigo en el evento step antes de comprar ejemplo

requisito = (global.dinero >= 500 && obj_player.llave = 0)
if (requisito)
{
  // comprar
}


de esa forma lo harias. La explicacion es que quieres detectar si lo tienes en un tiempo pero esta permanente por eso no te funciona mejor explicado es un ejemplo quieres saber si tienes el tlf pero resulta que lo dejaste en la casa esta mañana, quieres saber si esta en este momento y en realidad estas comprobando la hora de la mañana entoces por esa razon te devuelve que lo tenias o en el tema te devuelve que no tienes dinero o que la llave ya la tienes

EN ese caso tendrias que crear una variable en el Creation code del objeto en la room, por ejemplo dinero=500, luego en el codigo que colocaste reemplazar ese 500 por la variable.

Cita de: Goganpis en Febrero 25, 2018, 07:05:06 PM
primeramente no se que intentas hacer con eso si es ahorrar codigo o otra cosa pero lo que quieres hacer es sencillo solo tienes que colocar ese codigo en el evento step antes de comprar ejemplo

requisito = (global.dinero >= 500 && obj_player.llave = 0)
if (requisito)
{
  // comprar
}


de esa forma lo harias. La explicacion es que quieres detectar si lo tienes en un tiempo pero esta permanente por eso no te funciona mejor explicado es un ejemplo quieres saber si tienes el tlf pero resulta que lo dejaste en la casa esta mañana, quieres saber si esta en este momento y en realidad estas comprobando la hora de la mañana entoces por esa razon te devuelve que lo tenias o en el tema te devuelve que no tienes dinero o que la llave ya la tienes

Sí, el asunto era que pensaba que podría agrupar una serie de condiciones en una variable; de hecho lo creía tan firmemente que ni se me pasó por la cabeza que no fuese posible así como lo tengo.

O sea, el código iría obligatoriamente en el evento Create, ya que todos los personajes que hablan tienen como parent un obj_talker (que reúne todo el sistema de conversación) y después individualmente cada personaje en la room tiene su propio diálogo. De este modo puedo poner al mismo tipo en dos lugares distintos, diciéndote cosas distintas según en qué lugar, así me libro de programar mil doscientos personajes individuales.

Por eso pensaba si podía agrupar las condiciones individualmente en el Create del propio personaje individual en room me ahorraría un gran montón de código innecesario xD

Cita de: 3dgeminis en Febrero 25, 2018, 08:15:12 PM
EN ese caso tendrias que crear una variable en el Creation code del objeto en la room, por ejemplo dinero=500, luego en el codigo que colocaste reemplazar ese 500 por la variable.

Así que, a menos que sí que se pueda de alguna manera agrupar las condiciones que me vengan en gana en una variable o un array o algo, me veo obligado a hacer esto, un sistema de condiciones en las que te pregunta por cosas en concreto (dinero, llave, objetos, etc), cosa que ya me estoy montando. Más limitado* y exigirá más código para cada objeto, pero por el momento me está funcionando.

De todos modos, confirmadme esto, que realmente no hay una manera de sentenciar varias condiciones en una variable (o algo así) dentro del evento Create y si es así cerraré tema xD

*limitado: Porque, se entiende. A lo mejor en una room me da por poner otra condición diferente, la existencia de un enemigo, el número de monedas que queda en la room, yo qué sé, cualquier cosa que se me ocurra jajajaja

¡Gracias por responder a los dos!
Me estoy montando un plataformas medieval bastante interesante. O eso creo.

Pues podrias sumar las variables
[gml]
requisito = global.dinero + obj_player.llave
if requisito >= 501
{
  // comprar
}
[/gml]