Sistema de apuestas
El Sistema de Apuestas añade un casino completo a EliteMobs. Los jugadores pueden apostar sus Monedas Élite en cuatro minijuegos, endeudarse cuando se queden sin dinero y recibir la visita del Cobrador de Deudas. Los administradores pueden configurar gran parte del sistema, incluidos los multiplicadores de Blackjack, Cara o Cruz y Mayor o Menor. Los pagos de la tragaperras y la deuda máxima están fijados en el código.
Preparación
Los jugadores acceden mediante NPC configurados para ello y necesitan elitemobs.gambling.npc, concedido por defecto. Los cuatro juegos tienen tipos de interacción propios; la visualización de ganancias se selecciona por el nombre del archivo del NPC.
Para preparar un NPC de apuestas, crea un archivo de configuración de NPC y establece el interactionType en uno de los siguientes valores:
| Tipo de interacción | Descripción |
|---|---|
GAMBLING_BLACKJACK | Abre el menú de apuestas del Blackjack |
GAMBLING_COINFLIP | Abre el menú de apuestas de Cara o Cruz |
GAMBLING_SLOTS | Abre el menú de apuestas de la Máquina Tragaperras |
GAMBLING_HIGHERLOWER | Abre el menú de apuestas de Mayor o Menor |
El NPC Dueño de la Casa de Apuestas no usa un tipo de interacción especial. Para configurarlo, crea un NPC con el nombre de archivo gambling_den_owner.yml. La visualización de las ganancias de la casa aparecerá automáticamente sobre el NPC a partir de ese nombre de archivo.
EliteMobs incluye configuraciones preparadas para las cinco funciones; normalmente basta con colocar estos NPC:
| Archivo | Función |
|---|---|
blackjack_dealer.yml | Blackjack (Vincent, el crupier) |
coin_flipper.yml | Cara o Cruz (Lucky Pete) |
slot_machine_operator.yml | Tragaperras (Spinner Sam) |
card_shark.yml | Mayor o Menor (Ace Morgan, el tahúr) |
gambling_den_owner.yml | Visualización de ganancias de la casa |
Juegos
Blackjack
El objetivo es acercarse a 21 lo más posible sin pasarse. Esta implementación aplica las siguientes reglas.
Reglas
- Tanto el jugador como el crupier reciben dos cartas.
- La segunda carta del crupier está oculta hasta que el jugador se planta.
- Los ases cuentan como 11 o como 1 (se ajustan automáticamente para evitar pasarse cuando es posible).
- Las figuras (J, Q, K) cuentan como 10.
- El crupier se planta con 17.
- Las cartas se sortean de forma independiente y con reposición; no hay una baraja finita que contar. Llegar a 21 al pedir carta hace que te plantes automáticamente.
- El menú muestra cinco espacios por mano. Las cartas adicionales siguen contando para el total aunque ya no quepan en esos espacios.
- Un Blackjack natural del jugador se paga inmediatamente, incluso si el crupier también tiene uno.
Acciones
| Acción | Descripción |
|---|---|
| Pedir | Roba otra carta. |
| Plantarse | Conserva tu mano actual; después juega el crupier. |
| Doblar | Paga otra apuesta del mismo importe, duplica la apuesta, recibe exactamente una carta y se planta salvo que se pase. Solo está disponible en la primera acción con 2 cartas, si el saldo restante más el crédito cubren la apuesta adicional. |
Pagos
| Resultado | Multiplicador por defecto |
|---|---|
| Victoria normal (el total del jugador supera al del crupier, o el crupier se pasa) | 2.0x |
| Blackjack (21 con las dos primeras cartas) | 2.5x |
| Empate (push) | 1.0x (se devuelve la apuesta) |
| Derrota (el jugador se pasa o el total del crupier es mayor) | 0x (se pierde la apuesta) |
Cerrar el menú
Si un jugador cierra el menú durante el turno del crupier, la mano del crupier se juega automáticamente y el resultado se resuelve. Si un jugador cierra el menú antes de plantarse, pierde la apuesta.
Cara o Cruz
Un simple juego al 50/50. Elige cara o cruz, y la moneda decide tu destino.
Cómo jugar
- El juego se abre con un botón de cara y un botón de cruz.
- Haz clic en uno para elegir.
- Se reproduce una animación de lanzamiento de moneda.
- Se muestra el resultado.
Pagos
| Resultado | Multiplicador por defecto |
|---|---|
| Acierto | 1.9x |
| Canto (la moneda cae de canto) | 5.0x |
| Fallo | 0x (se pierde la apuesta) |
El resultado de canto
Hay un 1% de probabilidad de que la moneda caiga de canto en lugar de cara o cruz. Cuando esto ocurre, el jugador siempre gana independientemente de su elección y recibe un pago de 5x sobre su apuesta. Para este evento tan raro se muestran un mensaje de chat y una visualización especiales.
Con estos valores, cara y cruz tienen una probabilidad del 49,5% cada una. El retorno esperado es 0.495 × 1.9 + 0.01 × 5 = 0.9905 veces la apuesta: la ventaja conjunta de la casa es del 0,95%. La ventaja del 5% de un lanzamiento con pago de 1,9x solo se aplica si se deshabilita el resultado de canto. Los multiplicadores incluyen la apuesta original.
Cerrar el menú
Si un jugador cierra el menú antes de elegir, pierde la apuesta.
Máquina Tragaperras
Gira tres rodillos y combina símbolos para ganar. Los símbolos más raros pagan más.
Cómo jugar
- El juego se abre con una cuadrícula de rodillos de 3x3 y un botón de girar.
- Haz clic en girar para poner en marcha los rodillos.
- Cada rodillo se detiene en secuencia con una animación.
- La fila central (la línea de pago) determina el resultado.
Símbolos y pagos
Cada rodillo sortea un símbolo de forma independiente con los pesos siguientes. Tres símbolos iguales pagan 100 / weight. Exactamente dos iguales en cualquier posición de la fila central, incluidas la primera y la tercera, pagan el 25% de ese importe. Son retornos totales que incluyen la apuesta: una pareja de cerezas o limones devuelve menos de lo apostado aunque el menú muestre una victoria.
| Símbolo | Peso | Probabilidad | Pago con 3 iguales | Pago con 2 iguales |
|---|---|---|---|---|
| Cereza | 35 | 35% | 2.86x | 0.71x |
| Limón | 28 | 28% | 3.57x | 0.89x |
| Naranja | 20 | 20% | 5.0x | 1.25x |
| Campana Dorada | 10 | 10% | 10.0x | 2.5x |
| Barra de Plata | 5 | 5% | 20.0x | 5.0x |
| 7 de la Suerte | 2 | 2% | 50.0x | 12.5x |
Tres 7 de la Suerte son el Jackpot y reciben un efecto visual y de sonido especial.
Cerrar el menú
Si un jugador cierra el menú antes de girar, pierde la apuesta.
Tras el resultado, Volver a girar cobra otra apuesta del mismo importe y vuelve a la pantalla de preparación. El jugador debe pulsar Girar; cerrar entre ambos pasos pierde la apuesta recién cobrada.
Mayor o Menor
Un juego de cartas basado en rachas. Adivina si la siguiente carta es mayor o menor que la actual y acumula un multiplicador. Retírate en cualquier momento o arriésgalo todo.
Cómo jugar
- Se roba y se muestra una carta (los valores van de 2 a 14, donde el as = 14).
- Adivina si la siguiente carta será Mayor o Menor que la carta actual.
- Si aciertas, tu multiplicador aumenta y la carta revelada pasa a ser la nueva carta actual.
- Puedes Retirarte en cualquier momento tras al menos un acierto.
- Si te equivocas, pierdes toda tu apuesta.
- Si la siguiente carta es igual a la carta actual, cuenta como derrota.
Multiplicador de racha
Cada acierto multiplica tus ganancias por el multiplicador configurado (por defecto 1.3x). El multiplicador se acumula:
| Racha | Multiplicador (por defecto) | Pago con una apuesta de 100 monedas |
|---|---|---|
| 1 | 1.3x | 130 |
| 2 | 1.69x | 169 |
| 3 | 2.197x | 219.7 |
| 4 | 2.856x | 285.6 |
| 5 | 3.713x | 371.3 |
| ... | ... | ... |
| 12 | ~23.3x | ~2.330 |
Racha máxima y retirada automática
La racha máxima es 12. Cuando un jugador alcanza 12 aciertos, se retira automáticamente y se le otorgan sus ganancias. Esto evita multiplicadores desbocados.
Cerrar el menú
Si un jugador cierra el menú mientras tiene una racha ganadora, se retira automáticamente y recibe sus ganancias actuales. Si lo cierra antes de hacer ninguna predicción, pierde la apuesta.
Apuestas
Antes de que empiece cualquier juego, se le presenta al jugador un menú de apuestas para seleccionar su apuesta.
Límites de apuesta
| Ajuste | Valor por defecto |
|---|---|
| Apuesta mínima | 10 |
No hay una apuesta máxima configurable. El menú usa cantidades enteras de monedas; Todo a una descarta las fracciones al sumar el saldo y el crédito disponible.
minBet fija el importe de Restablecer y el mínimo de los botones de disminución. El importe inicial es max(minBet, 10). No es una validación universal de las transacciones: Todo a una puede fijar un importe positivo inferior a minBet, y Jugar actualmente lo acepta si se puede pagar. No dependas de este ajuste para imponer un mínimo en todas las operaciones.
Controles del menú de apuestas
El menú de apuestas ofrece varios controles:
- Botones de incremento -- Tres tamaños de aumento y disminución. Con al menos 100 monedas y sin deuda, usan el 5%, 10% y 25% del saldo, truncados a monedas enteras con un mínimo de 1. En caso contrario, usan 10, 50 y 100.
- Todo a una -- Establece la apuesta al máximo que el jugador puede permitirse (incluido el crédito disponible).
- Restablecer -- Restablece la apuesta al mínimo.
- Jugar -- Inicia el juego con la apuesta actual. Solo está activo si el jugador puede permitirse la apuesta.
- Cancelar -- Cierra el menú sin apostar.
El menú muestra el saldo actual. Las líneas de deuda y crédito disponible aparecen cuando hay deuda positiva, aunque los jugadores sin deuda también pueden usar crédito.
Sistema de deuda
Los jugadores pueden apostar más allá de su saldo endeudándose. El casino concede crédito hasta un límite fijo.
Cómo funciona la deuda
- Cuando un jugador hace una apuesta que supera su saldo, la cantidad restante se añade como deuda de juego.
- La deuda máxima que un jugador puede acumular es de 500 monedas. Está fijada en el código y no es configurable.
- Los jugadores no pueden hacer apuestas que empujarían su deuda más allá del máximo.
- Cuando un jugador gana, sus ganancias se aplican primero a saldar la deuda antes de sumarse al saldo. Los demás ingresos obtenidos mediante EliteMobs también pagan primero esta deuda, incluso con Vault activado. Los reembolsos de compras de encantamientos no pasan por el cobro de deuda.
Crédito disponible
Para valores de deuda finitos, el crédito disponible es max(0, maxDebt - currentDebt). El menú lo muestra cuando el jugador tiene deuda.
Advertencia de deuda
Cuando un jugador se endeuda, recibe un mensaje de advertencia. El Cobrador de Deudas puede ir a por él mientras arrastre deuda pendiente.
Jefe Cobrador de Deudas
El Cobrador de Deudas es un jefe personalizado que aparece para cazar a los jugadores que tienen deudas de juego.
Condiciones de aparición
- El jugador debe tener deuda de juego pendiente.
- Se ejecuta una comprobación periódica cada 60 minutos (configurable) para todos los jugadores conectados.
- La primera comprobación espera un intervalo completo tras la inicialización. También debe haber pasado un intervalo desde el último intento de aparición para ese jugador; este temporizador se reinicia al apagar el plugin.
- Cada comprobación tiene un 50% de probabilidad (configurable) de hacer aparecer al Cobrador de Deudas para un jugador que cumpla los requisitos.
- Solo puede haber un Cobrador de Deudas activo por jugador a la vez.
- El Cobrador de Deudas usa el archivo de jefe personalizado
debt_collector.yml.
La comprobación periódica no excluye mundos ni modos de juego por sí misma; la aparición normal de un jefe personalizado aún puede fallar. Pagar la deuda evita futuras apariciones periódicas, pero no retira automáticamente a un cobrador ya presente.
Escalado de nivel
El archivo incluido debt_collector.yml usa nivel dinámico y scaledCombat: true, por lo que los cálculos de combate se adaptan a cada jugador. Sus multiplicadores de salud y daño proceden de ese archivo. La rutina de aparición no asigna directamente el nivel de combate del jugador perseguido; cambiar la configuración del jefe cambia su escalado.
Comportamiento
- El cobrador prueba diez posiciones en la superficie a entre 5 y 10 bloques horizontales. Si ninguna sirve, usa una posición a la altura del jugador con un desplazamiento de hasta 5 bloques en cada eje horizontal.
- Selecciona inmediatamente como objetivo al jugador para el que apareció.
- Tiene un tiempo límite de 600 segundos (10 minutos) por defecto. Si no se le mata en ese tiempo, desaparece y advierte al jugador de que volverá.
Resultados
| Resultado | Efecto |
|---|---|
| Muere el Cobrador de Deudas | Su objetivo registrado recibe el mensaje de regreso si está conectado, aunque lo haya matado otro jugador. La deuda no disminuye. |
| El jugador muere por un golpe directo del cobrador | La deuda de la víctima disminuye 50 monedas (configurable). Se le notifica si queda saldada. El cobrador se elimina tras 5 segundos. La última entidad que causó daño debe ser directamente un jefe debt_collector.yml; el gestor no rastrea tiradores de proyectiles ni muertes ambientales posteriores. |
| Se agota el tiempo del gestor | Se elimina al cobrador y se envía una advertencia. Una comprobación periódica futura puede crear otro si el jugador sigue cumpliendo los requisitos y supera la probabilidad de aparición. |
Dueño de la Casa de Apuestas
El Dueño de la Casa de Apuestas muestra las Ganancias de la Casa como texto flotante. Es el total registrado de apuestas menos pagos, incluidas las apuestas financiadas con deuda. No es un saldo bancario separado ni el efectivo ya cobrado a los deudores.
- Las ganancias positivas se muestran en verde (p. ej.
+1234.56). - Las ganancias negativas (los jugadores ganan más de lo que pierden) se muestran en rojo (p. ej.
-567.89). - La visualización se actualiza cada segundo.
- Las ganancias de la casa se guardan en
house_earnings.ymly sobreviven a los reinicios del servidor.
Configuración
Todos los ajustes de apuestas se almacenan en GamblingSettings.yml. A continuación están los ajustes clave que afectan a la jugabilidad.
Ajustes generales
| Clave | Descripción | Por defecto |
|---|---|---|
gamblingEnabled | Habilita o deshabilita todo el sistema de apuestas. Cuando está deshabilitado, los NPC de apuestas no funcionan y el Cobrador de Deudas no aparece. | true |
minBet | Importe de Restablecer y mínimo de los botones de disminución; consulta la limitación de Todo a una anterior. | 10 |
Nota: La deuda máxima (500.0) está fijada en el código y no es configurable.
El cargador exige enteros positivos para minBet, el intervalo de comprobación del cobrador y su tiempo límite. Las probabilidades deben ser finitas y estar entre 0 y 1. Los multiplicadores de pago y la reducción de deuda por muerte deben ser finitos y no negativos. Los valores inválidos generan una advertencia y se sustituyen por los predeterminados en la configuración cargada.
Multiplicadores de pago
| Clave | Descripción | Por defecto |
|---|---|---|
payouts.blackjack.normal | Multiplicador de pago para una victoria normal en Blackjack. | 2.0 |
payouts.blackjack.blackjack | Multiplicador de pago por conseguir un Blackjack natural (21 con las dos primeras cartas). | 2.5 |
payouts.coinFlip.normal | Multiplicador por acertar cara o cruz. Un pago de 1,9x solo da una ventaja del 5% a la casa si se deshabilita el resultado de canto. | 1.9 |
payouts.coinFlip.edgeChance | Probabilidad (0.0 a 1.0) de que la moneda caiga de canto (victoria con bonificación). Ponlo a 0.0 para deshabilitarlo. | 0.01 |
payouts.coinFlip.edgePayout | Multiplicador de pago cuando la moneda cae de canto. | 5.0 |
payouts.higherLower.multiplierV2 | Multiplicador aplicado por cada acierto en Mayor o Menor. Se acumula de forma multiplicativa. | 1.3 |
Los ajustes de Cara o Cruz comparten una sola sección YAML:
payouts:
coinFlip:
normal: 1.9
edgeChance: 0.01
edgePayout: 5.0
Si tu archivo actual guarda un número directamente en payouts.coinFlip, mueve ese valor bajo normal y añade los dos ajustes de canto. EliteMobs desactiva las apuestas e informa de esta corrección sin reescribir el archivo. Recarga después de corregirlo.
Pagos de la Máquina Tragaperras
Los pagos de la máquina tragaperras no son configurables. Se calculan automáticamente a partir de los pesos de los símbolos usando la fórmula 100 / weight:
| Símbolo | Peso | Pago con 3 iguales | Pago con 2 iguales |
|---|---|---|---|
| Cereza | 35 | 2.86x | 0.71x |
| Limón | 28 | 3.57x | 0.89x |
| Naranja | 20 | 5.0x | 1.25x |
| Campana | 10 | 10.0x | 2.50x |
| Barra | 5 | 20.0x | 5.00x |
| 7 de la Suerte | 2 | 50.0x | 12.50x |
En GamblingSettings.yml no existe ninguna clave payouts.slots.* — las únicas entradas de la máquina tragaperras en el archivo son las cadenas de interfaz slots.* (nombres de botones, etiquetas y títulos de resultado). Los pagos siempre se derivan de los pesos de los símbolos fijados en el código.
Ajustes del Cobrador de Deudas
| Clave | Descripción | Por defecto |
|---|---|---|
debtCollector.spawnChance | Probabilidad (0.0 a 1.0) de que el Cobrador de Deudas aparezca en cada comprobación. | 0.5 |
debtCollector.checkIntervalMinutes | Con qué frecuencia (en minutos) se comprueba si el Cobrador de Deudas debe aparecer para los jugadores endeudados. | 60 |
debtCollector.timeoutSeconds | Cuánto tiempo (en segundos) pasa antes de que el Cobrador de Deudas desaparezca si no se le mata. | 600 |
debtCollector.debtReductionOnPlayerDeath | Cantidad de deuda que se reduce cuando el Cobrador de Deudas mata al jugador. | 50.0 |
Seguridad de la economía
Las apuestas se cobran antes de abrir el juego. Cara o Cruz y Tragaperras liquidan el resultado antes de su animación; Mayor o Menor registra cada predicción antes de animarla y paga cuando el jugador se retira. Blackjack resuelve cuando el crupier termina de pedir, o juega inmediatamente esa mano si el menú se cierra durante su turno. Los pagos se redondean a dos decimales e incluyen la apuesta original. El gestor común impide pagar dos veces un mismo resultado pendiente.
Las reglas de cierre anteriores también se aplican cuando el inventario se cierra al desconectarse. Estas protecciones no permiten recuperar una sesión sin terminar después de una caída del servidor o del apagado del plugin; evita reiniciar durante partidas activas.