Ir al contenido

Cómo funciona

SL-QuickWheel es una capa de interfaz. Nunca guarda su propia copia de los objetos del jugador: cada vez que se abre la rueda, los lee del inventario, y cada acción se delega en las funciones de ese inventario. Así la rueda se mantiene coherente con todo lo demás de tu servidor, incluidos los hooks, los logs y las comprobaciones del anticheat.

Con Config.Inventory = 'auto', el inventario se elige en este orden:

  1. ox_inventory, si está en marcha, con cualquier framework.
  2. El inventario de QBCore, en QBCore.
  3. El inventario de ESX, en ESX.
  4. Modo nativo en cualquier otro caso.

El framework se detecta de la misma forma, comprobando qbx_core, después qb-core y después es_extended. Ambos se pueden fijar con Config.Inventory y Config.Framework.

ox_inventory Inventarios de QBCore Inventario de ESX
Leer objetos GetPlayerItems PlayerData.items loadout e inventory
Equipar un arma useSlot, como su barra rápida qb-weapons:client:UseWeapon Selecciona el arma en la mano
Usar un objeto useSlot UseItem de qb-inventory ESX.UseItem
Dar giveItemToTarget RemoveItem y AddItem Funciones del jugador
Tirar RemoveItem y CustomDrop La forma de tirar del propio inventario Recogida de ESX
Contenedores GetInventory, CanCarryItem, RemoveItem, AddItem CreateInventory, GetInventory, CanAddItem, RemoveItem, AddItem No disponible
Movimientos de la hotbar swapItems, como su ventana RemoveItem y AddItem No disponible

Con ox_inventory, equipar mediante useSlot hace que ox siga gestionando la munición, la durabilidad y sus propias comprobaciones. Cuando Config.WeaponAnimations es false, se omiten sus animaciones de enfundar y desenfundar para que el cambio sea inmediato.

Usar, dar, tirar, coger, guardar y los movimientos de la hotbar pasan por eventos de servidor que comprueban, antes de llamar al inventario:

  • que la cantidad es un número entero entre 1 y 1.000.000;
  • que el jugador tiene realmente ese objeto en ese hueco;
  • en Dar, que el destinatario existe, no es el propio jugador y está dentro de Config.GiveDistance;
  • en los contenedores, que el jugador puede alcanzarlo: un maletero sin cerrojo cercano, una guantera solo desde dentro del vehículo u objetos en el suelo a pocos metros, y que los objetos caben;
  • un límite de una acción cada 300 ms por jugador.

Si una comprobación falla, no se mueve nada. Si una transferencia falla a medias, por ejemplo porque el destino está lleno, el objeto vuelve a su origen.

Archivo Editable Contenido
config.lua Sí Toda la configuración
client/, server/, shared/ No (escrow) Lógica de la rueda y adaptadores de inventario
locales/ No (escrow) Textos en inglés y español
html/ Compilado La interfaz