Lo que revisa el servidor
Los precios, el stock y quién puede usar cada prenda los decide el servidor, nunca el juego del jugador. Un juego modificado no puede comprar una prenda más barata, ponerse una sin stock ni quedarse con una prenda VIP o de un trabajo si no le corresponde.
Compras
- Lo que paga un jugador se calcula contra la apariencia que el servidor tiene guardada, con los precios del servidor. El servidor nunca cobra más de lo que mostró el menú.
- Cada pago y cada guardado se revisan, abra donde abra el menú. Los armarios de casas y los vestuarios de trabajos pueden abrir menús en cualquier lugar, pero el servidor revisa lo que se paga y se guarda, no dónde se abrió el menú.
- Con una base de datos lenta (por ejemplo, una copia de seguridad que bloquea una tabla), una compra puede decir que todavía se está guardando. El dinero solo vuelve si el guardado falla de verdad, y al jugador se le avisa en los dos casos.
- El creador de personaje es gratis, pero igual no puede dar prendas sin stock ni solo para algunos trabajos, ni un ojo escondido con
Config.Eyes.hidden(«La compra no es válida.», y la consola dice cuál). Un personaje que ya tiene apariencia no puede guardar una nueva por el creador; solo los admins. - Un ojo escondido nunca se vende. Quien ya tiene uno lo conserva.
- El Arreglo de la barbería lo decide el servidor con la misma tabla que el menú: solo la barba o las cejas a las que de verdad se les sacó pelo pagan el precio del Arreglo.
- Guardar cambios (cambios gratis, como el otro sexo o sacarse algo) pasa por la misma revisión que una compra, a $0, y nunca paga: si aparece un precio, se abre la compra.
Cada tienda vende lo suyo
- La tienda de ropa vende la ropa, y el corte con su color. Nunca la cara, los ojos, la barba, las cejas ni el maquillaje de la barbería.
- La barbería vende el pelo y la cara. Nunca ropa, ni otro modelo.
- Otro modelo (el otro sexo, un ped) se vende con Peds de la tienda de ropa.
Cualquier otra cosa se rechaza con «Esta tienda no vende eso.», diga lo que diga un juego modificado sobre en qué menú estaba.
El catálogo y los precios de una tienda
Una tienda del mapa puede tener su propio porcentaje de precios y vender solo algunas cosas o algunos packs (panel → Tiendas → Catálogo y precios). El servidor decide en qué tienda está el jugador:
- El porcentaje y los límites cuentan solo mientras el jugador está en esa tienda (su radio más 3 m, o su zona dibujada), según dónde lo ve el servidor. Lejos de toda tienda, los precios de siempre.
- Una prenda de un pack que la tienda no vende se rechaza: «Esta tienda no vende ropa de ese pack.».
- Sin OneSync el servidor no ve dónde está el jugador, así que usa la tienda que dice el menú.
Tatuajes
Los tatuajes que ven los demás se cortan en 200 tatuajes, 300 capas y 8 capas por tatuaje, y quedan los primeros. Nunca se rechaza una lista entera.
Qué prenda es cada una
GTA numera la ropa en el orden en que arrancan los packs, así que el mismo número puede ser otra prenda en otro servidor, o después de un cambio. El servidor guarda su propia lista de qué prenda hay detrás de cada número:
- La manda el juego de un admin. El servidor la pide cuando hay un admin conectado, después de arrancar o después de un cambio en un pack de ropa.
- Mientras no la tiene, una prenda solo para un trabajo, VIP o sin stock se reconoce por lo que informa el juego de cada jugador, junto con la última lista. Gana la más estricta de las dos.
Después de instalar, o de agregar o sacar un pack de ropa, entra una vez con un admin.
Reinicia el servidor entero, no un pack
Reiniciar un solo pack de ropa con el servidor andando les da otros números a las prendas para los jugadores que entran después, porque FiveM numera la ropa en el orden de arranque. La consola avisa cuando un pack arranca o se para con el servidor andando. Reinicia el servidor entero.
Códigos
- Códigos de outfit: quien usa un código paga, como en la tienda, las prendas que no tiene puestas. Las prendas sin stock y las restringidas quedan como las suyas. Un código no sirve para llevarse ropa gratis.
- Códigos de peds: cada código lo reclama un solo jugador, aunque dos lo intenten en el mismo momento. Si el ped no se puede dar (por ejemplo, ya tiene su único dueño), el código se libera y queda sin usar. Cada jugador puede probar una cantidad limitada de códigos equivocados por minuto.
Fotos a pedido
Cada jugador puede recibir como máximo Config.Photos.bps bytes por segundo y Config.Photos.perMinute fotos por minuto. Solo se mandan las imágenes de zaiders_photos/photos/ y zaiders_photos/tattoos/, por su nombre exacto; master/ y data/ nunca salen del servidor.
ESX con esx_skin prendido
El evento de guardado propio de esx_skin guarda la ropa que mande el juego de un jugador, porque así funciona esx_skin. ZAIDERS Appearance no guarda por ese evento de fábrica (Config.Compat.esxSkinSave = false). Aun así, esx_skin sigue escuchándolo.
Si vendes prendas VIP o de trabajos en ESX, apaga esx_skin cuando puedas (ESX sin multichar), o protege ese evento en esx_skin.
Peds
- ESX con skinchanger prendido: no se venden peds, porque skinchanger solo guarda el hombre y la mujer freemode.
- Qbox: solo se guardan los peds que el servidor conoce por nombre (los del juego y tus peds addon del panel), porque la pantalla de personajes de Qbox carga el modelo por su nombre.
- Ped por nombre:
Config.PedByNameyConfig.PedBlacklistse revisan de nuevo al pagar, así nadie se queda con un ped que no puede usar.
Altura
- Con la altura apagada (de fábrica) nada de esto corre: no se escribe ningún state bag y ninguna consulta toca
zaiders_bodynizaiders_height_requests. Lo guardado queda. - Solo el servidor escribe la altura de cada jugador. Un juego que escribe la suya recibe la del servidor, y cada juego la deja dentro del rango del sexo que ve.
- El creador guarda la altura antes que la apariencia: si no se puede escribir, no se guarda nada y el creador pide que se intente de nuevo.
- Un pedido se revisa con el rango del sexo que ve el servidor, uno a la vez por personaje, con sus esperas. Aceptar es atómico (dos del staff no aceptan el mismo, y uno vencido no se acepta) y nunca el propio, ni el de otro personaje propio.
- Con precio, el jugador paga cuando se acepta, solo si está conectado en ese personaje; si el guardado falla, la plata vuelve.
