Error: CPed::SetVariation: Invalid variation (slotId, drawblId, texId)
Skrypt próbował ubrać postać w rzecz, której ona nie ma — zwykle to zapisany strój z innego modelu postaci.
Zrób najpierw to
Samo w sobie nieszkodliwe. Jeśli czyjś strój wygląda źle, jego zapisany wygląd pochodzi z innego modelu.
Co to znaczy
Coś poprosiło peda, żeby założył komponent ubrania albo teksturę, która dla jego modelu nie istnieje. Te trzy liczby to cały komunikat:
• slotId — który slot komponentu (0 twarz, 1 maska, 3 ramiona, 4 nogi, 6 buty, 8 podkoszulek, 11 góra i tak dalej)
• drawblId — który drawable wewnątrz tego slotu
• texId — który wariant tekstury tego drawable'a
Gra odmawia i zostawia peda w tym, co miał na sobie. Nic się nie wywala, więc zapycha to konsolę, zamiast cokolwiek psuć — ale slot, który po cichu się nie stosuje, to zwykle problem z szafą albo z pedem addonowym, który warto naprawić, a nie wyciszyć.
Co to powoduje
Uszeregowane według tego, jak często są odpowiedzią.
- 1
Drawable albo tekstura nie istnieje dla tego modelu
Każdy model peda ma inną liczbę wariantów na slot. Liczba poprawna dla
mp_m_freemode_01może być poza zakresem dlamp_f_freemode_01albo dla peda addonowego, a liczby między nimi się nie przenoszą. - 2
Dane ubrań zapisane dla innego modelu
Gracz zmienił model (męski na żeński, freemode na peda addonowego), a stare dane wyglądu zostały zastosowane do nowego. To zdecydowanie najczęstsza wersja i odpala kilka takich naraz przy spawnie.
- 3
Ubrania addonowe, które nie są strumieniowane
Menu szafy wymienia drawable, którego serwer w rzeczywistości nie strumieniuje, więc indeks istnieje w konfiguracji, a nie w grze.
- 4
Komponent zastosowany przed dokończeniem ładowania modelu
Ustawianie wariantów na pedzie, którego model nie został w pełni wczytany, daje peda, który nie ma jeszcze wariantów do wyboru.
- 5
Liczenie od złej podstawy
GetNumberOfPedDrawableVariationszwraca LICZBĘ; poprawne drawable to od 0 do liczba-1. Przekazanie samej liczby to pomyłka o jeden i za każdym razem produkuje dokładnie to na ostatnim slocie.
Jak poznać, który jest twój
Zapytaj grę, co jest poprawne dla tego peda, tuż przed wywołaniem:
local ped = PlayerPedId()
print(GetEntityModel(ped),
GetNumberOfPedDrawableVariations(ped, 11),
GetNumberOfPedTextureVariations(ped, 11, drawable))Jeśli liczba, którą ustawiasz, jest równa temu, co zgłasza, albo większa, jest poza zakresem dla tego modelu. Jeśli odpala się serią przy spawnie, to zapisane dane z innego modelu.
Gdzie szukać
Cokolwiek stosuje wygląd: zasób od ubrań albo od skórek oraz zapisany wiersz wyglądu tego gracza.
Jak to naprawić
Ogranicz wartości do tego, co model naprawdę ma, i pomijaj, zamiast wymuszać:
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)
endI zapisuj model razem z wyglądem, żeby dane jednego peda nigdy nie trafiły na innego:
if saved.model ~= GetEntityModel(ped) then
return applyDefaultAppearance(ped)
endWciąż utknąłeś na własnym kodzie?
Ta strona mówi, co ten błąd zwykle oznacza. Wklej swoją konsolę do Server Fixera, a uszereguje wszystko, co w niej jest, i powie, co zrobić najpierw; a jeśli wolisz tego nie ruszać, ORBIE naprawi skrypt i odda ci zasób gotowy do wrzucenia.
bug_reportOtwórz Server FixerDla tego rodzaju błędu GLB to FiveM Converter buduje zasoby, które wczytują się za pierwszym razem.