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.
Haz esto primero
Por sí solo es inofensivo. Si a alguien le queda mal el atuendo, su apariencia guardada es de otro modelo.
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
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_01puede estar fuera de rango para unmp_f_freemode_01o para un ped añadido, y los números no se trasladan de uno a otro. - 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
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
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
Contar desde la base equivocada
GetNumberOfPedDrawableVariationsdevuelve 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)
endY 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 FixerPara este tipo de error, el GLB to FiveM Converter construye assets streameables que cargan a la primera.
Errores que viajan con este
- No se encuentra el modelo de vehículo o de ped
- Faltan texturas (modelos blancos, negros o a cuadros)
- argumento incorrecto en un nativo
- Falló la descompresión (asset de streaming corrupto)
- Asset de streaming inválido (falló la validación de física o formato)
- Asset de streaming por encima del límite de tamaño