Ir al contenido

Altura del personaje ​

Viene apagada de fábrica

Para usarla, pon Config.Height.enabled = true en shared/config.lua y reinicia el recurso. Pruébala antes en tu servidor con dos jugadores: ver Lo que no puede hacer.

Cada jugador elige la altura de su personaje en el creador, dentro de un rango corto que se sigue viendo real: las mujeres pueden ser más bajas que el 1,81 m normal del juego, los hombres un poco más bajos o más altos. Después la altura queda fija. Para cambiarla, el jugador le manda un pedido al staff desde la barbería, y el staff lo acepta o lo rechaza en el panel. Si nadie contesta un pedido en 30 minutos, se borra solo y el jugador se entera.

Se escala el personaje entero, parejo: la ropa, el pelo, los tacos y los tatuajes acompañan, y los pies quedan en el piso, con tacos o sin ellos. Solo el hombre y la mujer freemode tienen altura; cualquier otro ped queda con la del juego.

Los rangos ​

De fábrica nadie cambia hasta que elige:

Más bajoNormalMás alto
Mujeres1,59 m1,81 m1,81 m
Hombres1,76 m1,81 m1,86 m

Las mujeres solo pueden ser más bajas que la normal; los hombres se mueven mucho menos, para los dos lados. Los rangos se ponen en Config.Height.female y Config.Height.male, en cm, descalzo, hasta la coronilla (sin el pelo). La config los revisa al arrancar el servidor y dice en la consola qué arregló:

  • cada sexo dentro de los límites del código: mujeres de 156 a 181 cm, hombres de 172 a 190 cm;
  • min ≤ default ≤ max;
  • con rule = 'range' (de fábrica), el más bajo de los hombres por encima de la más baja de las mujeres, las mujeres con más rango que los hombres, y los hombres bajando como mucho la mitad de lo que bajan las mujeres;
  • con rule = 'strict', ningún hombre más bajo que ninguna mujer (la más alta de las mujeres, como mucho el más bajo de los hombres).

units = 'ft' muestra las alturas en pies y pulgadas en vez de metros.

En el creador ​

En el primer paso, debajo de Hombre / Mujer, está Altura: − y + de a 1 cm (o las flechas del teclado), una barra con el rango del sexo y la altura normal marcada, los rangos de los dos sexos escritos, y una regla al lado del personaje. Cada cambio se ve en el personaje al momento, solo en la pantalla del jugador. Cambiar de sexo vuelve a la altura normal de ese sexo. Terminar personaje la guarda, y la hoja de terminar dice el sexo y la altura elegida («Personaje: Mujer», junto a la altura).

El primer paso del creador: Altura debajo de Hombre y Mujer, con − y +, la barra del rango y la regla al lado del personaje

Con Config.Height.creator = false el creador no la muestra: los personajes nuevos quedan con la altura normal y pueden elegirla una vez en la barbería (abajo).

En la barbería: Cuerpo ​

La barbería tiene una sexta pestaña, Cuerpo, para el hombre y la mujer freemode:

  • La altura, de solo lectura, y dónde queda en el rango del sexo.
  • Pedir un cambio de altura abre una hoja: la altura que se quiere (dentro del rango), Ver cómo quedaría (solo en la pantalla del jugador mientras la hoja está abierta), un motivo opcional de hasta 140 letras (requests.reason) y Enviar pedido.
  • El pedido esperando se ve con su cuenta regresiva y Cancelar pedido. Un pedido a la vez por personaje.
  • Después de un pedido rechazado, vencido o cancelado, el siguiente espera requests.cooldown minutos (15); después de un cambio aceptado, requests.afterChange días (7).
  • La altura nunca es una línea del carrito. Con requests.price mayor que 0, se cobra cuando el staff la acepta.
  • Una altura que solo se está viendo nunca queda: salir de la barbería con una pregunta antes (Tenés cambios sin guardar), y su fila dice «Solo se ve en vos: para que quede, elegila en Cuerpo.». Si es lo único cambiado, no hay Guardar cambios.
La pestaña Cuerpo de la barbería: la altura, su lugar en el rango y el botón para pedir un cambio
La hoja del pedido: la altura de ahora y la pedida, Ver cómo quedaría, el motivo y Enviar pedido

Con requests.enabled = false la pestaña solo muestra la altura: en ese servidor no se cambia después de elegirla.

Personajes de antes de la altura: un personaje hecho antes de prender la altura la elige una vez acá, sin el staff, con el mismo control del creador y una confirmación. Puede hacerlo hasta chooseOnceDays días (30) después del primer arranque del servidor con la altura prendida (0: sin fecha). Después, solo con pedidos. chooseOnce = false lo apaga.

El staff ​

Los pedidos los contestan los admins y Config.Height.requests.staff:

lua
staff = { aces = { 'zaiders_appearance.height' }, qb = {}, esx = {}, jobs = {}, onDuty = false },

Por ejemplo, tus moderadores, en server.cfg:

ini
add_ace group.mod zaiders_appearance.height allow

También acepta permisos de qb-core (qb = { 'mod' }), grupos de ESX (esx = { 'mod' }) o un trabajo desde un rango (jobs = { police = 3 }; con onDuty = true, solo de servicio).

Al staff conectado le llega un aviso con cada pedido nuevo. Lo contesta en el panel, en Pedidos de altura (/zappearance pedidos; el staff que no es admin ve solo esa sección). Con la altura apagada, ese comando no es de nadie, ni de los admins.

ZAIDERS Studio en Pedidos de altura: los pedidos pendientes con Aceptar y Rechazar, Cómo funciona y Hoy
  • Cada fila muestra el personaje y si está en el juego, de → a con la diferencia, el rango del sexo, el motivo y cuánto le queda (en amarillo desde los 5 minutos).
  • Aceptar cambia la altura de ese personaje al momento para todos, o cuando el jugador vuelve a ese personaje. Con precio, solo con el jugador conectado en ese personaje.
  • Rechazar primero pide una nota opcional que lee el jugador.
  • Nadie contesta su propio pedido, ni el de otro personaje suyo.
  • Historial guarda los contestados requests.history días (30). Cada paso queda en la consola del servidor.

Al jugador le llega un aviso cuando su pedido se acepta, se rechaza o vence (o cuando vuelve, si no estaba).

Lo que no puede hacer ​

GTA V no tiene una escala de ped de verdad, así que ZAIDERS Appearance dibuja cada personaje más chico o más alto en cada pantalla. Eso tiene límites, y por ellos los rangos son cortos:

  • El hitbox no se escala. Las balas, los golpes, las puertas y los techos usan el cuerpo del juego, de 1,81 m. Con combat = 'fair' (de fábrica), quien tiene un arma de fuego en la mano se ve con la altura del juego en todas las pantallas, y mientras apuntas todos se ven con la del juego en tu pantalla: lo que ves es donde pegan las balas. Con combat = 'keep' queda siempre la elegida, y la cabeza de un personaje de 1,59 m se ve hasta 20 cm más abajo de donde pega el tiro. Los cuchillos y los golpes sin apuntar mantienen esa diferencia.
  • En vehículos, en ragdoll, muerto, nadando, trepando, en escaleras de mano, en cuerpo a cuerpo y sentado en los bancos del mapa, se ve la altura del juego, con una rampa corta.
  • Los pies patinan un poco al caminar: los pasos de la animación son los del juego.
  • Los NPC con el modelo freemode (el maniquí del estudio de fotos, los vendedores) quedan en 1,81 m.
  • Los demás la ven con OneSync prendido. Sin OneSync, cada jugador ve solo su propia altura (la consola lo dice una vez).

Emotes de sentarse ​

Para que nadie se hunda en una silla, agrega las animaciones de sentarse y acostarse de tu menú de emotes a Config.Height.pause.anims, cada una { 'diccionario', 'animación' }, o llama al export desde él:

lua
exports.zaiders_appearance:pauseHeight(true)   -- se sienta: la altura del juego en todas las pantallas
exports.zaiders_appearance:pauseHeight(false)  -- se levanta

Los bancos del mapa (pause.scenarios) ya están.

Rendimiento ​

El juego de cada jugador dibuja solo a los jugadores que tiene cerca con una altura propia, dentro de distance (50 m), y en los últimos 10 m se van fundiendo con la altura del juego. Con más de maxPeds (48) cerca, el radio se achica de a poco. Mientras nadie cerca tiene una altura propia, que con los rangos de fábrica es casi siempre, no corre nada en cada frame.

Prenderla y apagarla ​

Viene con Config.Height.enabled = false: no corre nada (ni hilos, ni state bags, ni eventos, ni pantallas), nadie la elige ni la pide, todos se ven con la altura del juego, y las alturas guardadas quedan para cuando la prendas de nuevo. true la prende al reiniciar el recurso. La fecha límite de chooseOnceDays se cuenta desde el primer arranque con la altura prendida.

Si usas otro script de altura, pon el nombre de su carpeta en Config.Height.owners: mientras esté prendido, este se hace a un lado.

Los datos ​

Dos tablas: zaiders_body (la altura de cada personaje) y zaiders_height_requests (los pedidos). Están en Appearancez.sql, y el recurso también las crea solo la primera vez que las necesita, así que al actualizar no hay que hacer nada.

Relacionado ​

Soporte para los clothing packs y scripts de FiveM de Zaiders Store.