THE ORB
Arrancando el studio

Error: CPed::SetVariation: variación inválida (slotId, drawblId, texId)

Un script intentó ponerle a un personaje ropa que no tiene, normalmente datos de un atuendo guardado de otro modelo de personaje.

groupsRuido en la consola, ropa equivocadacodeNecesita un desarrollador

Haz esto primero

Por sí solo es inofensivo. Si a alguien le queda mal el atuendo, su apariencia guardada es de otro modelo.

bug_reportMejor pega tu consola entera

Qué significa

Algo le pidió a un ped que llevara un componente de ropa o una textura que no existe para su modelo. Los tres números son el mensaje entero:

slotId — qué ranura de componente (0 cara, 1 máscara, 3 brazos, 4 piernas, 6 zapatos, 8 camiseta interior, 11 torso, y así)

drawblId — qué dibujable dentro de esa ranura

texId — qué variante de textura de ese dibujable

El juego se niega y deja al ped con lo que ya llevaba puesto. No se cae nada, así que esto llena la consola en vez de romper algo; pero una ranura que no se aplica en silencio suele ser un problema del vestuario o de un ped añadido que vale la pena arreglar en vez de silenciar.

Qué lo provoca

Ordenado por la frecuencia con la que es la respuesta.

  1. 1

    El dibujable o la textura no existen para ese modelo

    Cada modelo de ped tiene una cantidad distinta por ranura. Un número válido para mp_m_freemode_01 puede estar fuera de rango para un mp_f_freemode_01 o para un ped añadido, y los números no se trasladan de uno a otro.

  2. 2

    Datos de ropa guardados para otro modelo

    El jugador cambió de modelo (de hombre a mujer, de freemode a un ped añadido) y se le aplicaron datos de apariencia viejos al nuevo. Esta es de lejos la versión más común, y dispara varios de estos a la vez al aparecer.

  3. 3

    Ropa añadida que no se transmite

    El menú de vestuario lista un dibujable que el servidor no transmite de verdad, así que el índice existe en la configuración y no en el juego.

  4. 4

    El componente se aplicó antes de que el modelo terminara de cargar

    Poner variaciones sobre un ped cuyo modelo no había cargado del todo da un ped que todavía no tiene variaciones donde elegir.

  5. 5

    Contar desde la base equivocada

    GetNumberOfPedDrawableVariations devuelve una CANTIDAD; los dibujables válidos van de 0 a cantidad-1. Pasar la cantidad misma es un error de uno, y produce exactamente esto en la última ranura siempre.

Cómo saber cuál es el tuyo

Preguntale al juego qué es válido para ese ped, justo antes de la llamada:

local ped = PlayerPedId()
print(GetEntityModel(ped),
      GetNumberOfPedDrawableVariations(ped, 11),
      GetNumberOfPedTextureVariations(ped, 11, drawable))

Si el número que estás poniendo es igual o mayor que el que informa, está fuera de rango para este modelo. Si se dispara en ráfaga al aparecer, son datos guardados de otro modelo.

Dónde mirar

Lo que aplique la apariencia: el recurso de ropa o de piel, y la fila de apariencia guardada de ese jugador.

Cómo arreglarlo

Ajustá contra lo que el modelo tiene de verdad, y salteá en vez de forzar:

local function setComponent(ped, slot, drawable, texture)
    local maxDrawable = GetNumberOfPedDrawableVariations(ped, slot)
    if drawable >= maxDrawable then return end            -- 0..max-1
    local maxTexture = GetNumberOfPedTextureVariations(ped, slot, drawable)
    if texture >= maxTexture then texture = 0 end
    SetPedComponentVariation(ped, slot, drawable, texture, 0)
end

Y guardá el modelo junto con la apariencia, para que los datos de un ped no se le apliquen nunca a otro:

if saved.model ~= GetEntityModel(ped) then
    return applyDefaultAppearance(ped)
end

¿Sigues atascado en tu propio código?

Esta página es lo que suele significar este error. Pega tu consola en Server Fixer y ordenará todo lo que haya en ella y te dirá qué hacer primero; y si prefieres no tocarlo, ORBIE puede reparar el script y devolverte el recurso listo para soltar.

bug_reportAbrir el Server Fixer

Para este tipo de error, el GLB to FiveM Converter construye assets streameables que cargan a la primera.

Errores que viajan con este