Ir al contenido
Wiki Hartico

Transacción Fallida

Transacción Fallida

En Wired Code: trigger.transaction_fail

Dispara cuando una transacción de los Cofres Wired no llega a buen puerto: el usuario cierra la ventana sin pagar, se acaba el tiempo, los cofres no tienen con qué pagarle… Es la gemela de Transacción Completada, y además te entrega el motivo.

Cómo funciona

Escucha el contrato que le marcas —o la caja de un efecto de cofre— exactamente igual que Transacción Completada, y salta con cada transacción suya que falla, venga de Iniciar Transacción, Dar Moneda desde Cofre o Dar Furni desde Cofre.

Corre una vez por cada usuario al que le falló, con él como usuario desencadenante y el contrato (o la caja del efecto) como furni desencadenante.

El motivo llega en @event.transaction_failed.reason, una variable de contexto que solo existe en las pilas que nacen de aquí. Vale un número y trae su propio texto, en inglés, que puedes enseñar con un Marcador de posición de variable en modo Textual. Los más habituales:

ValorTextoQué pasó
0Cancelled By UserEl usuario cerró su ventana de Tradeo Wired
2TimeoutSe acabó el tiempo límite que puso Iniciar Transacción
3Cancelled By WiredLa canceló Cancelar Transacción
4Already TradingEl usuario ya estaba en otro tradeo
6No Sufficient FundsLos cofres no tienen bastante para pagarle
10Empty Transaction"Dar todo" con los cofres vacíos
13Chest Not In RoomAlguien recogió un cofre de la transacción
15No Wired Chests Or LockedNo hay ningún cofre que se pueda usar del tipo que hace falta: los que hay tienen candado o están sin mejorar a Wired
16Can Not Give All To Multiple Users"Dar todo" con más de un usuario
17Trade Limit WiredLa sala se quedó sin cobros: demasiados seguidos con Dar Moneda, Dar Furni o un Contrato de Recompensa
18Rate LimitLo intentó demasiado deprisa
20Misconfig Invalid MultiplierEl multiplicador de Iniciar Transacción está fuera de 1 a 500
21Misconfig Too Many Or No ContractsIniciar Transacción no tenía ningún contrato que valiera
22Misconfig No UsersEl efecto no tenía a nadie a quien dar
25User Left RoomSe fue de la sala con el tradeo abierto

Configuración

Ventana de configuración de Transacción Fallida

Arriba, Información de uso: "Este Wired se activará cuando un usuario no haya podido completar una transacción (selecciona el contrato). Además, el motivo del fallo se entrega a través de una variable interna." Debajo, el enlace Ver en el menú Wired abre las Herramientas de Creador Wired en la pestaña de variables, con la del motivo ya elegida.

Elige Furni, con las mismas reglas que en Transacción Completada: los tres contratos, el Contrato Personalizado o las cajas de Dar Moneda y Dar Furni desde Cofre. Iniciar Transacción no se puede marcar.

En Mostrar opciones avanzadas, Seleccionar la fuente de furnis, entre Usar furnis seleccionados —la de fábrica— y Usar furnis de Selector.

Ejemplo

Decirle al jugador por qué no ha podido pagar la entrada:

Pila C
│
├─ Complemento: Marcador de posición de variable
│    ├─ Nombre del identificador ................ motivo
│    ├─ Escoge una variable ..................... @event.transaction_failed.reason   (ámbito contexto)
│    ├─ Escoge el tipo de visualización ......... Textual
│    └─ Tipo de identificador ................... Individual
│
├─ Causante: Transacción Fallida
│    └─ Elige Furni ............................. Contrato de Pago
│
└─ Efecto: Mensaje
     ├─ ¿Cuál es el mensaje? .................... "No has pasado: $(motivo)"
     └─ Visibilidad del mensaje ................. Solo el usuario desencadenante

Notas

Cuidado con reintentar desde aquí. Si esta pila vuelve a lanzar Iniciar Transacción con el mismo contrato y falla en el acto —el cofre sigue vacío, o lo intenta demasiado deprisa—, el nuevo fallo la vuelve a disparar al momento, sin esperar a nada. El bucle solo se corta con el tope de ejecuciones de la pila, y para entonces el jugador se ha comido un montón de avisos.

Algunos fallos no son de nadie. "Dar todo" con varios usuarios (16) o un efecto sin nadie a quien dar (22) fallan para la ejecución entera: la pila corre una sola vez y sin usuario desencadenante. Lo mismo cuando el usuario ya se ha ido (25). En esos casos un Mensaje "solo al usuario desencadenante" no le llega a nadie.

Cancelar también es fallar. Que el usuario cierre su ventana (0) o que la cierre Cancelar Transacción (3) dispara este causante, también cuando Cancelar e Iniciar Transacción van en la misma pila para cambiarle el contrato sin cerrarle la ventana.

La variable del motivo viaja con Ejecuta Pilas, igual que las de Transacción Completada.

En esta página