jag har it illenium-appearance så byt alla dem jag har lite export här ör de apperance jag använder
TriggerEvent('manne_appearance:loadPed
TriggerEvent('manne_appearance:loadAppearance'
TriggerEvent("manne_appearance:setSkin"
TriggerEvent("manne_appearance:openAppearanceMenu"
TriggerEvent("manne_appearance:getSkin", function(skin)
TriggerEvent("manne_appearance:getSkin
error during NUI callback CREATE: @unrp_character/client/functions.lua:489: No such export InitializeCharacter in resource illenium-appearance
function Characters:loadModel(model)
if not IsModelValid(model) then
return;
end
RequestModel(model)
RequestCollisionForModel(model)
while not HasModelLoaded(model) or not HasCollisionForModelLoaded(model) do
Wait(10)
end
SetModelAsNoLongerNeeded(model)
end
function Characters:spawnPed(data)
local model = (type(data.model) == 'number' and data.model or GetHashKey(data.model))
if not IsModelAPed(model) then
return
end
self:loadModel(model)
ped = CreatePed(5, model, data.coords, false, false)
return ped
end
function Characters:playAnimation(animData)
if not IsEntityPlayingAnim(animData.ped, animData.dict, animData.lib, 3) then
if not animData.flag then animData.flag = 49 end
self:loadAnimDict(animData.dict)
TaskPlayAnim(animData.ped, animData.dict, animData.lib, 2.0, -1.0, -1, animData.flag, 0, 0, 0, 0)
end
end
function Characters:loadAnimDict(dict)
if not DoesAnimDictExist(dict) then
return
end
RequestAnimDict(dict)
while not HasAnimDictLoaded(dict) do
Wait(10)
end
end
function Characters:canHoverPed(ped)
for index, value in pairs(Config.player_slots) do
if value.ped == ped then
return true;
end
end
return false;
end
function Characters:setAppearance(Ped, characterAppearance)
local skin = characterAppearance
local playerPed = Ped
if not skin or type(skin) ~= "table" then
print("[setAppearance] WARNING: Ingen giltig appearance!")
return
end
local sex = tonumber(skin.sex) or 0
if sex > 2 then
SetPedHeadBlendData(playerPed, skin['face'], skin['face'], skin['face'], skin['skin'], skin['skin'], skin['skin'], 1.0, 1.0, 1.0, true)
SetPedHairColor(playerPed, skin['hair_color_1'] or 0, skin['hair_color_2'] or 0)
SetPedHeadOverlay(playerPed, 3, skin['age_1'] or 0, ((skin['age_2'] or 0) / 10) + 0.0)
SetPedHeadOverlay(playerPed, 1, skin['beard_1'] or 0, ((skin['beard_2'] or 0) / 10) + 0.0)
SetPedHeadOverlay(playerPed, 2, skin['eyebrows_1'] or 0, ((skin['eyebrows_2'] or 0) / 10) + 0.0)
SetPedHeadOverlay(playerPed, 4, skin['makeup_1'] or 0, ((skin['makeup_2'] or 0) / 10) + 0.0)
SetPedHeadOverlay(playerPed, 8, skin['lipstick_1'] or 0, ((skin['lipstick_2'] or 0) / 10) + 0.0)
SetPedEyeColor(playerPed, skin['eye_color'] or 0, 0, 1)
SetPedComponentVariation(playerPed, 2, skin['hair_1'], skin['hair_2']) -- Hair
SetPedHeadOverlayColor(playerPed, 1, 1, skin['beard_3'] or 0, skin['beard_4'] or 0)
SetPedHeadOverlayColor(playerPed, 2, 1, skin['eyebrows_3'] or 0, skin['eyebrows_4'] or 0)
SetPedHeadOverlayColor(playerPed, 4, 1, skin['makeup_3'] or 0, skin['makeup_4'] or 0)
SetPedHeadOverlayColor(playerPed, 8, 1, skin['lipstick_3'] or 0, skin['lipstick_4'] or 0)
SetPedComponentVariation(playerPed, 8, skin['tshirt_1'], skin['tshirt_2'])
SetPedComponentVariation(playerPed, 11, skin['torso_1'], skin['torso_2'])
SetPedComponentVariation(playerPed, 3, skin['arms'], skin['arms_2'])
SetPedComponentVariation(playerPed, 0, skin['face'], skin['face_2'])
SetPedComponentVariation(playerPed, 10, skin['decals_1'], skin['decals_2'])
SetPedComponentVariation(playerPed, 4, skin['pants_1'], skin['pants_2'])
SetPedComponentVariation(playerPed, 6, skin['shoes_1'], skin['shoes_2'])
SetPedComponentVariation(playerPed, 1, skin['mask_1'], skin['mask_2'])
SetPedComponentVariation(playerPed, 9, skin['bproof_1'], skin['bproof_2'])
SetPedComponentVariation(playerPed, 7, skin['chain_1'], skin['chain_2'])
SetPedComponentVariation(playerPed, 5, skin['bags_1'], skin['bags_2'])
-- Props
if (skin['helmet_1'] or -1) == -1 then ClearPedProp(playerPed, 0) else SetPedPropIndex(playerPed, 0, skin['helmet_1'], skin['helmet_2']) end
if (skin['watches_1'] or -1) == -1 then ClearPedProp(playerPed, 6) else SetPedPropIndex(playerPed, 6, skin['watches_1'], skin['watches_2']) end
if (skin['bracelets_1'] or -1) == -1 then ClearPedProp(playerPed, 7) else SetPedPropIndex(playerPed, 7, skin['bracelets_1'], skin['bracelets_2']) end
if (skin['glasses_1'] or -1) == -1 then ClearPedProp(playerPed, 1) else SetPedPropIndex(playerPed, 1, skin['glasses_1'], skin['glasses_2']) end
if (skin['ears_1'] or -1) == -1 then ClearPedProp(playerPed, 2) else SetPedPropIndex(playerPed, 2, skin['ears_1'], skin['ears_2']) end
return
end
SetPedHeadBlendData(playerPed, skin['face'], skin['face'], skin['face'], skin['skin'], skin['skin'], skin['skin'], 1.0, 1.0, 1.0, true)
SetPedHairColor(playerPed, skin['hair_color_1'] or 0, skin['hair_color_2'] or 0)
SetPedHeadOverlay(playerPed, 3, skin['age_1'] or 0, ((skin['age_2'] or 0) / 10) + 0.0)
SetPedHeadOverlay(playerPed, 1, skin['beard_1'] or 0, ((skin['beard_2'] or 0) / 10) + 0.0)
SetPedHeadOverlay(playerPed, 2, skin['eyebrows_1'] or 0, ((skin['eyebrows_2'] or 0) / 10) + 0.0)
SetPedHeadOverlay(playerPed, 4, skin['makeup_1'] or 0, ((skin['makeup_2'] or 0) / 10) + 0.0)
SetPedHeadOverlay(playerPed, 8, skin['lipstick_1'] or 0, ((skin['lipstick_2'] or 0) / 10) + 0.0)
SetPedEyeColor(playerPed, skin['eye_color'] or 0, 0, 1)
SetPedComponentVariation(playerPed, 2, skin['hair_1'], skin['hair_2']) -- Hair
SetPedHeadOverlayColor(playerPed, 1, 1, skin['beard_3'] or 0, skin['beard_4'] or 0)
SetPedHeadOverlayColor(playerPed, 2, 1, skin['eyebrows_3'] or 0, skin['eyebrows_4'] or 0)
SetPedHeadOverlayColor(playerPed, 4, 1, skin['makeup_3'] or 0, skin['makeup_4'] or 0)
SetPedHeadOverlayColor(playerPed, 8, 1, skin['lipstick_3'] or 0, skin['lipstick_4'] or 0)
for i = 2, #Config_Appearance.SubMenus["face"] do
local faceFeature = Config_Appearance.SubMenus["face"][i]
if skin[faceFeature["name"]] then
SetPedFaceFeature(playerPed, i - 2, skin[faceFeature["name"]] / 10)
end
end
-- Props
if (skin['ears_1'] or -1) == -1 then ClearPedProp(playerPed, 2) else SetPedPropIndex(playerPed, 2, skin['ears_1'], skin['ears_2']) end
if (skin['helmet_1'] or -1) == -1 then ClearPedProp(playerPed, 0) else SetPedPropIndex(playerPed, 0, skin['helmet_1'], skin['helmet_2']) end
if (skin['watches_1'] or -1) == -1 then ClearPedProp(playerPed, 6) else SetPedPropIndex(playerPed, 6, skin['watches_1'], skin['watches_2']) end
if (skin['bracelets_1'] or -1) == -1 then ClearPedProp(playerPed, 7) else SetPedPropIndex(playerPed, 7, skin['bracelets_1'], skin['bracelets_2']) end
if (skin['glasses_1'] or -1) == -1 then ClearPedProp(playerPed, 1) else SetPedPropIndex(playerPed, 1, skin['glasses_1'], skin['glasses_2']) end
-- Kläder
SetPedComponentVariation(playerPed, 8, skin['tshirt_1'], skin['tshirt_2'])
SetPedComponentVariation(playerPed, 11, skin['torso_1'], skin['torso_2'])
SetPedComponentVariation(playerPed, 3, skin['arms'], skin['arms_2'])
SetPedComponentVariation(playerPed, 0, skin['face'], skin['face_2'])
SetPedComponentVariation(playerPed, 10, skin['decals_1'], skin['decals_2'])
SetPedComponentVariation(playerPed, 4, skin['pants_1'], skin['pants_2'])
SetPedComponentVariation(playerPed, 6, skin['shoes_1'], skin['shoes_2'])
SetPedComponentVariation(playerPed, 1, skin['mask_1'], skin['mask_2'])
SetPedComponentVariation(playerPed, 9, skin['bproof_1'], skin['bproof_2'])
SetPedComponentVariation(playerPed, 7, skin['chain_1'], skin['chain_2'])
SetPedComponentVariation(playerPed, 5, skin['bags_1'], skin['bags_2'])
end
function CoordsFromCursor(distance)
local function RotationToDirection(rotation)
local z, x = (rotation.z * math.pi / 180), (rotation.x * math.pi / 180);
local num = math.abs(math.cos(x));
return vector3(
-math.sin(z) * num,
math.cos(z) * num,
math.sin(x)
)
end
local function World3DToScreen2D(coords)
local _, x, y = GetScreenCoordFromWorldCoord(coords.x, coords.y, coords.z)
return vector2(x, y)
end
local camRot = GetGameplayCamRot(2);
local camCoords = GetGameplayCamCoord();
local camForward = RotationToDirection(camRot);
local rotUp = camRot + vector3(1, 0, 0);
local rotDown = camRot + vector3(-1, 0, 0);
local rotLeft = camRot + vector3(0, 0, -1);
local rotRight = camRot + vector3(0, 0, 1);
local camRight = RotationToDirection(rotRight) - RotationToDirection(rotLeft);
local camUp = RotationToDirection(rotUp) - RotationToDirection(rotDown);
local rollRad = -(camRot.y * math.pi / 180.0);
local camRightRoll = camRight * math.cos(rollRad) - camUp * math.sin(rollRad);
local camUpRoll = camRight * math.sin(rollRad) + camUp * math.cos(rollRad);
local point3D = camCoords + camForward * 1.0 + camRightRoll + camUpRoll;
local point2D = World3DToScreen2D(point3D);
local point3DZero = camCoords + camForward * 1.0;
local point2DZero = World3DToScreen2D(point3DZero);
local scaleX = (GetControlNormal(0, 239) - point2DZero.x) / (point2D.x - point2DZero.x);
local scaleY = (GetControlNormal(0, 240) - point2DZero.y) / (point2D.y - point2DZero.y);
return camCoords + (camForward + camRightRoll * scaleX + camUpRoll * scaleY) * (distance or 15.0)
end
function FindIndex(array, fn)
for i, v in ipairs(array) do
if fn(v, i - 1, array) then
return i - 1
end
end
return -1
end
mulNumber = function(vector1, value)
local result = {}
result.x = vector1.x * value
result.y = vector1.y * value
result.z = vector1.z * value
return result
end
addVector3 = function(vector1, vector2)
return {
x = vector1.x + vector2.x,
y = vector1.y + vector2.y,
z = vector1.z + vector2.z
}
end
subVector3 = function(vector1, vector2)
return {
x = vector1.x - vector2.x,
y = vector1.y - vector2.y,
z = vector1.z - vector2.z
}
end
rotationToDirection = function(rotation)
local z = degToRad(rotation.z)
local x = degToRad(rotation.x)
local num = math.abs(math.cos(x))
local result = {}
result.x = -math.sin(z) * num
result.y = math.cos(z) * num
result.z = math.sin(x)
return result
end
w2s = function(position)
local visible, screenX, screenY = GetScreenCoordFromWorldCoord(position["x"], position["y"], position["z"])
if not visible then
return nil
end
local newPos = {}
newPos.x = (screenX - 0.5) * 2
newPos.y = (screenY - 0.5) * 2
newPos.z = 0
return newPos
end
processCoordinates = function(x, y)
local screenX, screenY = GetActiveScreenResolution()
local relativeX = 1 - (x / screenX) * 1.0 * 2
local relativeY = 1 - (y / screenY) * 1.0 * 2
if (relativeX > 0.0) then
relativeX = -relativeX
else
relativeX = math.abs(relativeX)
end
if (relativeY > 0.0) then
relativeY = -relativeY
else
relativeY = math.abs(relativeY)
end
return { x = relativeX, y = relativeY }
end
s2w = function(camPos, relX, relY)
local camRot = IsGameplayCamRendering() and GetGameplayCamRot(0) or GetCamRot(GetRenderingCam())
local camForward = rotationToDirection(camRot)
local rotUp = addVector3(camRot, { x = 10, y = 0, z = 0 })
local rotDown = addVector3(camRot, { x = -10, y = 0, z = 0 })
local rotLeft = addVector3(camRot, { x = 0, y = 0, z = -10 })
local rotRight = addVector3(camRot, { x = 0, y = 0, z = 10 })
local camRight = subVector3(
rotationToDirection(rotRight),
rotationToDirection(rotLeft)
)
local camUp = subVector3(rotationToDirection(rotUp), rotationToDirection(rotDown))
local rollRad = -degToRad(camRot.y)
local camRightRoll = subVector3(
mulNumber(camRight, math.cos(rollRad)),
mulNumber(camUp, math.sin(rollRad))
)
local camUpRoll = addVector3(
mulNumber(camRight, math.sin(rollRad)),
mulNumber(camUp, math.cos(rollRad))
)
local point3D = addVector3(
addVector3(addVector3(camPos, mulNumber(camForward, 10.0)), camRightRoll),
camUpRoll
)
local point2D = w2s(point3D)
if not point2D then
return addVector3(camPos, mulNumber(camForward, 10.0))
end
local point3DZero = addVector3(camPos, mulNumber(camForward, 10.0))
local point2DZero = w2s(point3DZero)
if not point2DZero then
return addVector3(camPos, mulNumber(camForward, 10.0))
end
local eps = 0.001
if (
math.abs(point2D.x - point2DZero.x) < eps or
math.abs(point2D.y - point2DZero.y) < eps
) then
return addVector3(camPos, mulNumber(camForward, 10.0))
end
local scaleX = (relX - point2DZero.x) / (point2D.x - point2DZero.x)
local scaleY = (relY - point2DZero.y) / (point2D.y - point2DZero.y)
local point3Dret = addVector3(
addVector3(
addVector3(camPos, mulNumber(camForward, 10.0)),
mulNumber(camRightRoll, scaleX)
),
mulNumber(camUpRoll, scaleY)
)
return point3Dret
end
degToRad = function(deg)
return (deg * math.pi) / 180.0
end
-- // Get entity, ground, etc. targeted by mouse position in 3D space.
screenToWorld = function(flags, ignore)
local x, y = GetMouseCoordinates()
local absoluteX = x
local absoluteY = y
local camPos = IsGameplayCamRendering() and GetGameplayCamCoord() or GetCamCoord(GetRenderingCam())
local processedCoords = processCoordinates(absoluteX, absoluteY)
local target = s2w(camPos, processedCoords.x, processedCoords.y)
local dir = subVector3(target, camPos)
local from = addVector3(camPos, mulNumber(dir, 0.05))
local to = addVector3(camPos, mulNumber(dir, 300))
local ray = StartShapeTestRay(
from.x,
from.y,
from.z,
to.x,
to.y,
to.z,
flags,
ignore,
0
)
return GetShapeTestResult(ray)
end
GetMouseCoordinates = function()
local screenWidth, screenHeight = GetActiveScreenResolution()
local x = GetDisabledControlNormal(2, 239)
local y = GetDisabledControlNormal(2, 240)
return screenWidth * x, screenHeight * y
end
function buttons(buttons)
local scaleform = RequestScaleformMovie('instructional_buttons')
while not HasScaleformMovieLoaded(scaleform) do
Wait(0)
end
PushScaleformMovieFunction(scaleform, 'CLEAR_ALL')
PushScaleformMovieFunction(scaleform, 'SET_CLEAR_SPACE')
PushScaleformMovieFunctionParameterInt(200)
PopScaleformMovieFunctionVoid()
for k,v in ipairs(buttons) do
PushScaleformMovieFunction(scaleform, 'SET_DATA_SLOT')
PushScaleformMovieFunctionParameterInt(k - 1)
if v[3] then
PushScaleformMovieMethodParameterButtonName(v[1])
PushScaleformMovieMethodParameterButtonName(v[2])
PushScaleformMovieFunctionParameterString(v[3])
else
PushScaleformMovieMethodParameterButtonName(v[1])
PushScaleformMovieFunctionParameterString(v[2])
end
PopScaleformMovieFunctionVoid()
end
PushScaleformMovieFunction(scaleform, 'DRAW_INSTRUCTIONAL_BUTTONS')
PushScaleformMovieFunctionParameterInt(-1)
PopScaleformMovieFunctionVoid()
DrawScaleformMovieFullscreen(scaleform, 36, 53, 61, 255)
end
LoadDict = function(Dict)
while not HasAnimDictLoaded(Dict) do
Wait(0)
RequestAnimDict(Dict)
end
end
function Characters:beginCreation(character)
SetEntityCollision(PlayerPedId(), true, true)
FreezeEntityPosition(PlayerPedId(), false)
SetEntityCoords(PlayerPedId(), Config.char_creation.pos.x, Config.char_creation.pos.y, Config.char_creation.pos.z, true, false, false, false)
SetEntityHeading(PlayerPedId(), Config.char_creation.pos[4])
local area = math.random(1, 65535)
TriggerServerEvent('instance:setNamed', area)
self.creating_character = true
self.in_clothing_menu = false
LoadDict(Config.char_creation.anim_dict)
TaskPlayAnim(PlayerPedId(), Config.char_creation.anim_dict, Config.char_creation.anim, -1.0, -1.0, -1, Config.char_creation.flags, 0, 2, 0)
-- self:createCamera()
for key, value in pairs(Config.player_slots) do
if DoesEntityExist(value.ped) then
DeletePed(value.ped)
end
end
Citizen.CreateThread(function()
while self.creating_character do
Citizen.Wait(0)
if not self.in_clothing_menu then
-- Disabla rörelse, skjut och interaktioner, men lämna rotation & zoom så menyn sköter detta själv
DisableControlAction(2, 30, true)
DisableControlAction(2, 31, true)
DisableControlAction(2, 32, true)
DisableControlAction(2, 33, true)
DisableControlAction(2, 34, true)
DisableControlAction(2, 35, true)
DisableControlAction(0, 25, true)
DisableControlAction(0, 24, true)
-- INGA knappar eller rotation/zoom-hantering här! Låt Illenium Appearance sköta det.
end
-- SetCamActive(self.main_cam, true)
-- RenderScriptCams(true, false, 0, true, false)
end
end)
ESX.LoadModel('mp_m_freemode_01')
NetworkFadeOutEntity(PlayerPedId(), true, false)
if IsModelInCdimage('mp_m_freemode_01') and IsModelValid('mp_m_freemode_01') then
SetPlayerModel(PlayerId(), 'mp_m_freemode_01')
SetPedDefaultComponentVariation(PlayerPedId())
end
SetModelAsNoLongerNeeded('mp_m_freemode_01')
NetworkFadeInEntity(PlayerPedId(), 0, false)
SetPedMaxHealth(PlayerPedId(), 200)
exports["illenium-appearance"]:InitializeCharacter(
character.sex == "m" and "Male" or "Female",
function()
self.in_clothing_menu = false -- Menyn stängs
-- print("Karaktär skapad! Data:", json.encode(exports["illenium-appearance"]:getPedAppearance(PlayerPedId())))
character["appearance"] = exports["illenium-appearance"]:getPedAppearance(PlayerPedId())
DoScreenFadeOut(1000)
PlaySoundFrontend(-1, "CHECKPOINT_NORMAL", "HUD_MINI_GAME_SOUNDSET", true)
TriggerServerEvent("unrp_inventory:giveLicense")
TriggerServerEvent("esx:saveCharacter", character)
Citizen.Wait(1000)
TriggerServerEvent("unrp_character:changeCharacterSave")
Characters:setup()
end,
function()
self.in_clothing_menu = false -- Om creation avbryts
print("Creation avbruten")
Characters:setup()
end
)
end
function Characters:createCamera()
self.main_cam = CreateCamWithParams('DEFAULT_SCRIPTED_CAMERA', Config.char_creation.camera, 0, 0, 420.0, GetGameplayCamFov())
N_0xf55e4046f6f831dc(self.main_cam, 7.0)
N_0xe111a7c0d200cbc5(self.main_cam, 1.0)
SetCamDofFnumberOfLens(self.main_cam, 0.5)
SetCamDofMaxNearInFocusDistanceBlendLevel(self.main_cam, 1.0)
ShakeCam(self.main_cam, 'HAND_SHAKE', 0.1)
self.current_camera_zoom = GetGameplayCamFov()
self.current_camera_coords = Config.char_creation.camera
end