local QBCore = exports['qb-core']:GetCoreObject() local Slot local SlotCoords local ClosestSlot local ClosestSlotCoord = vector3(0, 0, 0) local ClosestSlotRotation local NearbySlot local EnteredSlot local IsSpinning local ReelLocation1 local ReelLocation2 local ReelLocation3 local ClosestSlotForwardX local ClosestSlotForwardY local ShouldDrawScaleForm = false local Scaleform local ClosestSlotModel local AnimDict = 'anim_casino_a@amb@casino@games@slots@male' local Sounds = { function() local SoundId = GetSoundId() PlaySoundFromCoord(SoundId, 'no_win', ClosestSlotCoord, SlotReferences[ClosestSlotModel].sound, false, 20, false) ReleaseSoundId(SoundId) end, function() local SoundId = GetSoundId() PlaySoundFromCoord(SoundId, 'small_win', ClosestSlotCoord, SlotReferences[ClosestSlotModel].sound, false, 20, false) ReleaseSoundId(SoundId) end, function() local SoundId = GetSoundId() PlaySoundFromCoord(SoundId, 'big_win', ClosestSlotCoord, SlotReferences[ClosestSlotModel].sound, false, 20, false) ReleaseSoundId(SoundId) end, function() local SoundId = GetSoundId() PlaySoundFromCoord(SoundId, 'jackpot', ClosestSlotCoord, SlotReferences[ClosestSlotModel].sound, false, 20, false) ReleaseSoundId(SoundId) end, function() local SoundId = GetSoundId() PlaySoundFromCoord(SoundId, 'place_bet', ClosestSlotCoord, SlotReferences[ClosestSlotModel].sound, false, 20, false) ReleaseSoundId(SoundId) end, function() local SoundId = GetSoundId() PlaySoundFromCoord(SoundId, 'place_max_bet', ClosestSlotCoord, SlotReferences[ClosestSlotModel].sound, false, 20, false) ReleaseSoundId(SoundId) end, function() local SoundId = GetSoundId() PlaySoundFromCoord(SoundId, 'spinning', ClosestSlotCoord, SlotReferences[ClosestSlotModel].sound, false, 20, false) ReleaseSoundId(SoundId) end, function() local SoundId = GetSoundId() PlaySoundFromCoord(SoundId, 'start_spin', ClosestSlotCoord, SlotReferences[ClosestSlotModel].sound, false, 20, false) ReleaseSoundId(SoundId) end, function() local SoundId = GetSoundId() PlaySoundFromCoord(SoundId, 'wheel_stop_clunk', ClosestSlotCoord, SlotReferences[ClosestSlotModel].sound, false, 20, false) ReleaseSoundId(SoundId) end, function() local SoundId = GetSoundId() PlaySoundFromCoord(SoundId, 'wheel_stop_on_prize', ClosestSlotCoord, SlotReferences[ClosestSlotModel].sound, false, 20, false) ReleaseSoundId(SoundId) end, function() local SoundId = GetSoundId() PlaySoundFromCoord(SoundId, 'welcome_stinger', ClosestSlotCoord, SlotReferences[ClosestSlotModel].sound, false, 20, false) ReleaseSoundId(SoundId) end, function() local SoundId = GetSoundId() PlaySoundFromCoord(SoundId, 'spin_wheel', ClosestSlotCoord, SlotReferences[ClosestSlotModel].sound, false, 20, false) ReleaseSoundId(SoundId) end, function() local SoundId = GetSoundId() PlaySoundFromCoord(SoundId, 'spin_wheel_win', ClosestSlotCoord, SlotReferences[ClosestSlotModel].sound, false, 20, false) ReleaseSoundId(SoundId) end } local Slots = { 2362925439, 2775323096, 3863977906, 654385216, 161343630, 1096374064, 207578973, 3807744938 } local RandomEnter = { 'enter_left', 'enter_right', 'enter_left_short', 'enter_right_short' } local RandomLeave = { 'exit_left', 'exit_right' } local RandomIdle = { 'base_idle_a', 'base_idle_b', 'base_idle_c', 'base_idle_d', 'base_idle_e', 'base_idle_f' } local RandomSpin = { 'press_spin_a', 'press_spin_b', 'pull_spin_a', 'pull_spin_b' } local RandomSpinningIdle = { 'spinning_a', 'spinning_b', 'spinning_c' } local RandomWin = { 'win_a', 'win_b', 'win_c', 'win_d', 'win_e', 'win_f', 'win_g', 'win_spinning_wheel' } local RandomLose = { 'lose_a', 'lose_b', 'lose_c', 'lose_d', 'lose_e', 'lose_f', 'lose_cruel_a', 'lose_cruel_b' } local RandomBigWin = { 'win_big_a', 'win_big_b', 'win_big_c' } local RandomEnterMessage = { 'Daring today?', 'Spin to win', 'You will lose money!', 'Feelin lucky punk?!', 'Test your might', 'You have coins?' } local ChosenBetAmount = 1 local function DrawText3D(x, y, z, text) SetTextScale(0.35, 0.35) SetTextFont(4) SetTextProportional(1) SetTextColour(255, 255, 255, 215) SetTextEntry("STRING") SetTextCentre(true) AddTextComponentString(text) SetDrawOrigin(x,y,z, 0) DrawText(0.0, 0.0) local factor = (string.len(text)) / 370 DrawRect(0.0, 0.0+0.0125, 0.017+ factor, 0.03, 0, 0, 0, 75) ClearDrawOrigin() end local function LoadAnimDict(dict) while not HasAnimDictLoaded(dict) do RequestAnimDict(dict) Wait(0) end end local function StartIdleScene(CurrentAnimation) Wait(GetAnimDuration(AnimDict, CurrentAnimation) * 800) local IdleScene = NetworkCreateSynchronisedScene(ClosestSlotCoord, ClosestSlotRotation, 2, 2, 0, 1.0, 0, 1.0) LoadAnimDict(AnimDict) local RandomAnimName = RandomIdle[math.random(1, #RandomIdle)] NetworkAddPedToSynchronisedScene(PlayerPedId(), IdleScene, AnimDict, RandomAnimName, 2.0, -1.5, 13, 16, 2.0, 0) NetworkStartSynchronisedScene(IdleScene) end local function CreateNamedRenderTargetForModel(name, model) local handle = 0 if not IsNamedRendertargetRegistered(name) then RegisterNamedRendertarget(name, 0) end if not IsNamedRendertargetLinked(model) then LinkNamedRendertarget(model) end if IsNamedRendertargetRegistered(name) then handle = GetNamedRendertargetRenderId(name) end return handle end local function CallScaleformMethod(method, ...) local t local args = { ... } BeginScaleformMovieMethod(Scaleform, method) for _, v in ipairs(args) do t = type(v) if t == 'string' then PushScaleformMovieMethodParameterString(v) elseif t == 'number' then if string.match(tostring(v), "%.") then PushScaleformMovieFunctionParameterFloat(v) else PushScaleformMovieFunctionParameterInt(v) end elseif t == 'boolean' then PushScaleformMovieMethodParameterBool(v) end end EndScaleformMovieMethod() end local function SetupScaleform() CreateThread(function() Scaleform = RequestScaleformMovie('SLOT_MACHINE') while not HasScaleformMovieLoaded(Scaleform) do Wait(0) end if SlotReferences[ClosestSlotModel].theme then CallScaleformMethod('SET_THEME', SlotReferences[ClosestSlotModel].theme) else CallScaleformMethod('SET_THEME') end local model = ClosestSlotModel local handle = CreateNamedRenderTargetForModel("machine_"..SlotReferences[ClosestSlotModel].scriptrt, model) while ShouldDrawScaleForm do N_0x32f34ff7f617643b(Scaleform, 1) SetTextRenderId(handle) -- Sets the render target to the handle we grab above SetScriptGfxDrawOrder(4) SetScriptGfxDrawBehindPausemenu(true) DrawScaleformMovie(Scaleform, 0.401, 0.09, 0.805, 0.195, 255, 255, 255, 255, 0) SetTextRenderId(GetDefaultScriptRendertargetRenderId()) -- Resets the render target Wait(0) end end) end local function SlotMachineHandler() local LeverScene = 0 local IdleScene = NetworkCreateSynchronisedScene(ClosestSlotCoord, ClosestSlotRotation, 2, 2, 0, 1.0, 0, 1.0) LoadAnimDict(AnimDict) local RandomAnimName = RandomIdle[math.random(1, #RandomIdle)] NetworkAddPedToSynchronisedScene(PlayerPedId(), IdleScene, AnimDict, RandomAnimName, 2.0, -1.5, 13, 16, 2.0, 0) NetworkStartSynchronisedScene(IdleScene) exports['qb-core']:DrawText('Spin:
Leave:
Adjust Bet: ↑') CreateThread(function() while true do QBCore.Functions.TriggerCallback('doj:server:CasinoChipsAmount', function(result) exports['casinoUi']:DrawCasinoUi('show', "The Diamond Casino & Resort Slots

"..SlotReferences[ClosestSlotModel].name.."

Availble chips: "..math.floor(result)) end) if not IsSpinning then if IsControlJustPressed(0, 202) then -- BACKSPACE local LeaveScene = NetworkCreateSynchronisedScene(ClosestSlotCoord, ClosestSlotRotation, 2, 2, 0, 1.0, 0, 1.0) LoadAnimDict(AnimDict) RandomAnimName = RandomLeave[math.random(1, #RandomLeave)] NetworkAddPedToSynchronisedScene(PlayerPedId(), LeaveScene, AnimDict, RandomAnimName, 2.0, -1.5, 13, 16, 2.0, 0) NetworkStartSynchronisedScene(LeaveScene) Wait(GetAnimDuration(AnimDict, RandomAnimName) * 700) NetworkStopSynchronisedScene(LeaveScene) EnteredSlot = false ShouldDrawScaleForm = false exports['qb-core']:HideText() exports['casinoUi']:HideCasinoUi('hide') CallScaleformMethod('SET_BET') CallScaleformMethod('SET_LAST_WIN') CallScaleformMethod('SET_MESSAGE', '') TriggerServerEvent('dc-casino:slots:server:leave') break elseif IsControlJustPressed(0, 201) then -- ENTER local SpinScene = NetworkCreateSynchronisedScene(ClosestSlotCoord, ClosestSlotRotation, 2, 2, 0, 1.0, 0, 1.0) LoadAnimDict(AnimDict) RandomAnimName = RandomSpin[math.random(1, #RandomSpin)] NetworkAddPedToSynchronisedScene(PlayerPedId(), SpinScene, AnimDict, RandomAnimName, 2.0, -1.5, 13, 16, 1000.0, 0) NetworkStartSynchronisedScene(SpinScene) local AnimationDuration = GetAnimDuration(AnimDict, RandomAnimName) if RandomAnimName == 'pull_spin_a' then LeverScene = NetworkCreateSynchronisedScene(ClosestSlotCoord, ClosestSlotRotation, 2, 2, 0, 1.0, 0, 1.0) N_0x45f35c0edc33b03b(LeverScene, GetEntityModel(ClosestSlot), ClosestSlotCoord, AnimDict, 'pull_spin_a_SLOTMACHINE', 2.0, -1.5, 13.0) NetworkStartSynchronisedScene(LeverScene) Wait(AnimationDuration * 320) elseif RandomAnimName == 'pull_spin_b' then LeverScene = NetworkCreateSynchronisedScene(ClosestSlotCoord, ClosestSlotRotation, 2, 2, 0, 1.0, 0, 1.0) N_0x45f35c0edc33b03b(LeverScene, GetEntityModel(ClosestSlot), ClosestSlotCoord, AnimDict, 'pull_spin_b_SLOTMACHINE', 2.0, -1.5, 13.0) NetworkStartSynchronisedScene(LeverScene) Wait(AnimationDuration * 320) end Wait(AnimationDuration * 180) Sounds[8]() TriggerServerEvent('dc-casino:slots:server:spin', ChosenBetAmount) Wait(AnimationDuration * 500) local SpinningScene = NetworkCreateSynchronisedScene(ClosestSlotCoord, ClosestSlotRotation, 2, 2, 0, 1.0, 0, 1.0) LoadAnimDict(AnimDict) NetworkAddPedToSynchronisedScene(PlayerPedId(), SpinningScene, AnimDict, RandomSpinningIdle[math.random(1, #RandomSpinningIdle)], 2.0, -1.5, 13, 16, 2.0, 0) NetworkStartSynchronisedScene(SpinningScene) NetworkStopSynchronisedScene(LeverScene) --- Has to be stopped otherwise it will only work 50% of the time FreezeEntityPosition(ClosestSlot, true) --- N_0x45f35c0edc33b03b will prevent the machine being stuck to their position for some reason? elseif IsControlJustPressed(0, 172) then -- UP ARROW Sounds[5]() if not SlotReferences[ClosestSlotModel].betamounts[ChosenBetAmount + 1] then ChosenBetAmount = 1 else ChosenBetAmount = ChosenBetAmount + 1 end local BetOneScene = NetworkCreateSynchronisedScene(ClosestSlotCoord, ClosestSlotRotation, 2, 2, 0, 1.0, 0, 1.0) LoadAnimDict(AnimDict) NetworkAddPedToSynchronisedScene(PlayerPedId(), BetOneScene, AnimDict, 'press_betone_a', 2.0, -1.5, 13, 16, 2.0, 0) NetworkStartSynchronisedScene(BetOneScene) Wait(GetAnimDuration(AnimDict, 'press_betone_a') * 200) CallScaleformMethod('SET_BET', SlotReferences[ClosestSlotModel].betamounts[ChosenBetAmount]) StartIdleScene('press_betone_a') elseif IsControlJustPressed(0, 45) then -- R Sounds[6]() ChosenBetAmount = #SlotReferences[ClosestSlotModel].betamounts local BetMaxScene = NetworkCreateSynchronisedScene(ClosestSlotCoord, ClosestSlotRotation, 2, 2, 0, 1.0, 0, 1.0) LoadAnimDict(AnimDict) NetworkAddPedToSynchronisedScene(PlayerPedId(), BetMaxScene, AnimDict, 'press_betmax_a', 2.0, -1.5, 13, 16, 2.0, 0) NetworkStartSynchronisedScene(BetMaxScene) Wait(GetAnimDuration(AnimDict, 'press_betmax_a') * 200) CallScaleformMethod('SET_BET', SlotReferences[ClosestSlotModel].betamounts[ChosenBetAmount]) StartIdleScene('press_betmax_a') elseif IsEntityDead(PlayerPedId()) then EnteredSlot = false ShouldDrawScaleForm = false exports['qb-core']:HideText() CallScaleformMethod('SET_BET') CallScaleformMethod('SET_MESSAGE', '') TriggerServerEvent('dc-casino:slots:server:leave') break end end Wait(0) end end) end CreateThread(function() while not RequestScriptAudioBank("dlc_vinewood/casino_slot_machines_01", 0) do Wait(0) end while not RequestScriptAudioBank("dlc_vinewood/casino_slot_machines_02", 0) do Wait(0) end while not RequestScriptAudioBank("dlc_vinewood/casino_slot_machines_03", 0) do Wait(0) end while true do local PlayerCoords = GetEntityCoords(PlayerPedId()) for i = 1, #Slots do Slot = GetClosestObjectOfType(PlayerCoords, 1.2, Slots[i], true) if Slot ~= 0 then SlotCoords = GetEntityCoords(Slot) local CurrentDistance = #(PlayerCoords - SlotCoords) if CurrentDistance < 1.9 and CurrentDistance < #(PlayerCoords - ClosestSlotCoord) then NearbySlot = true ClosestSlot = Slot ClosestSlotCoord = SlotCoords ClosestSlotForwardX = GetEntityForwardX(ClosestSlot) ClosestSlotForwardY = GetEntityForwardY(ClosestSlot) ClosestSlotModel = GetEntityModel(ClosestSlot) ClosestSlotRotation = GetEntityRotation(ClosestSlot) ReelLocation1 = GetObjectOffsetFromCoords(ClosestSlotCoord, GetEntityHeading(ClosestSlot), -0.115, 0.047, 0.906) ReelLocation2 = GetObjectOffsetFromCoords(ClosestSlotCoord, GetEntityHeading(ClosestSlot), 0.005, 0.047, 0.906) ReelLocation3 = GetObjectOffsetFromCoords(ClosestSlotCoord, GetEntityHeading(ClosestSlot), 0.125, 0.047, 0.906) end elseif #(PlayerCoords - ClosestSlotCoord) > 1.9 then NearbySlot = false end end Wait(600) end end) -- CreateThread(function() -- while true do -- local WaitTime = 500 -- if NearbySlot and not EnteredSlot then -- WaitTime = 0 -- -- exports['qb-core']:DrawText('Diamond Casino Slots

'..SlotReferences[ClosestSlotModel].name..'

Press [E] to sit

') -- DrawText3D(ClosestSlotCoord.x - ClosestSlotForwardX, ClosestSlotCoord.y - ClosestSlotForwardY, ClosestSlotCoord.z + 1, "[E] - Play ~b~"..SlotReferences[ClosestSlotModel].name) -- if IsControlJustReleased(0, 38) then -- QBCore.Functions.TriggerCallback('doj:server:HasCasinoMembership', function(HasItem) -- if HasItem then -- local netID = NetworkGetEntityIsNetworked(ClosestSlot) and NetworkGetNetworkIdFromEntity(ClosestSlot) -- if not netID then -- NetworkRegisterEntityAsNetworked(ClosestSlot) -- netID = NetworkGetNetworkIdFromEntity(ClosestSlot) -- NetworkUseHighPrecisionBlending(netID, false) -- SetNetworkIdExistsOnAllMachines(netID, true) -- SetNetworkIdCanMigrate(netID, true) -- end -- NetworkRequestControlOfEntity(ClosestSlot) -- TriggerServerEvent('dc-casino:slots:server:enter', netID, ReelLocation1, ReelLocation2, ReelLocation3) -- else -- QBCore.Functions.Notify('You are not a member of the casino!', 'error', 3500) -- end -- end) -- end -- -- elseif not NearbySlot then -- -- exports["qb-core"]:HideText() -- end -- Wait(WaitTime) -- end -- end) Citizen.CreateThread(function() local alreadyEnteredZone = false local text = nil while true do if NearbySlot and not EnteredSlot then wait = 5 local pedCo = GetEntityCoords(PlayerPedId()) local dist = #(pedCo - ClosestSlotCoord) local inZone = false if dist <= 2.0 then wait = 5 inZone = true text = 'The Diamond Casino & Resort

Slot: '..SlotReferences[ClosestSlotModel].name..'

Press E to sit' if IsControlJustPressed(0, 38) then local netID = NetworkGetEntityIsNetworked(ClosestSlot) and NetworkGetNetworkIdFromEntity(ClosestSlot) if not netID then NetworkRegisterEntityAsNetworked(ClosestSlot) netID = NetworkGetNetworkIdFromEntity(ClosestSlot) NetworkUseHighPrecisionBlending(netID, false) SetNetworkIdExistsOnAllMachines(netID, true) SetNetworkIdCanMigrate(netID, true) end NetworkRequestControlOfEntity(ClosestSlot) TriggerServerEvent('dc-casino:slots:server:enter', netID, ReelLocation1, ReelLocation2, ReelLocation3) end else wait = 2000 end if inZone and not alreadyEnteredZone then alreadyEnteredZone = true exports["qb-core"]:DrawText(text) end if not inZone and alreadyEnteredZone then alreadyEnteredZone = false exports["qb-core"]:HideText() end end Wait(wait) end end) RegisterNetEvent('dc-casino:slots:client:enter', function() local Ped = PlayerPedId() exports["qb-core"]:HideText() if GetEntityModel(Ped) == `mp_f_freemode_01` then AnimDict = 'anim_casino_a@amb@casino@games@slots@female' end local EnterScene = NetworkCreateSynchronisedScene(ClosestSlotCoord, ClosestSlotRotation, 2, 2, 0, 1.0, 0, 1.0) LoadAnimDict(AnimDict) local RandomAnimName = RandomEnter[math.random(1, #RandomEnter)] NetworkAddPedToSynchronisedScene(Ped, EnterScene, AnimDict, RandomAnimName, 2.0, -1.5, 13, 16, 2.0, 0) NetworkStartSynchronisedScene(EnterScene) EnteredSlot = true ShouldDrawScaleForm = true SetupScaleform() Wait(GetAnimDuration(AnimDict, RandomAnimName) * 1000) CallScaleformMethod('SET_MESSAGE', RandomEnterMessage[math.random(1, #RandomEnterMessage)]) CallScaleformMethod('SET_BET', SlotReferences[ClosestSlotModel].betamounts[ChosenBetAmount]) Sounds[11]() SlotMachineHandler() end) RegisterNetEvent('dc-casino:slots:client:spinreels', function(SpinTime, ReelRewards, BlurryReelID1, BlurryReelID2, BlurryReelID3, ReelID1, ReelID2, ReelID3, RewardMultiplier) local EndTime = GetGameTimer() + SpinTime local FirstReelStop = SpinTime * math.random(2, 4) / 10 local SecondReelStop = SpinTime * math.random(5, 7) / 10 local ReelReward1 = ReelRewards[1] * 22.5 local ReelReward2 = ReelRewards[2] * 22.5 local ReelReward3 = ReelRewards[3] * 22.5 local SlotHeading = GetEntityHeading(ClosestSlot) local BlurryReel1 = NetworkGetEntityFromNetworkId(BlurryReelID1) local BlurryReel2 = NetworkGetEntityFromNetworkId(BlurryReelID2) local BlurryReel3 = NetworkGetEntityFromNetworkId(BlurryReelID3) local Reel1 = NetworkGetEntityFromNetworkId(ReelID1) local Reel2 = NetworkGetEntityFromNetworkId(ReelID2) local Reel3 = NetworkGetEntityFromNetworkId(ReelID3) while not NetworkRequestControlOfEntity(BlurryReel1) do Wait(0) end while not NetworkRequestControlOfEntity(BlurryReel2) do Wait(0) end while not NetworkRequestControlOfEntity(BlurryReel3) do Wait(0) end while not NetworkRequestControlOfEntity(Reel1) do Wait(0) end while not NetworkRequestControlOfEntity(Reel2) do Wait(0) end while not NetworkRequestControlOfEntity(Reel3) do Wait(0) end IsSpinning = true SetEntityVisible(Reel1, false) SetEntityVisible(Reel2, false) SetEntityVisible(Reel3, false) Sounds[7]() while GetGameTimer() < EndTime do SetEntityRotation(BlurryReel1, math.random(0, 15) * 22.5 + math.random(1, 60), 0.0, SlotHeading, 2, true) if EndTime - GetGameTimer() > FirstReelStop then SetEntityRotation(BlurryReel2, math.random(0, 15) * 22.5 + math.random(1, 60), 0.0, SlotHeading, 2, true) if EndTime - GetGameTimer() < FirstReelStop + 15 then if ReelRewards[2] == math.floor(ReelRewards[2]) then Sounds[9]() else Sounds[10]() end DeleteObject(BlurryReel2) SetEntityRotation(Reel2, ReelReward2, 0.0, SlotHeading, 2, true) SetEntityVisible(Reel2, true) end if EndTime - GetGameTimer() > SecondReelStop then SetEntityRotation(BlurryReel3, math.random(0, 15) * 22.5 + math.random(1, 60), 0.0, SlotHeading, 2, true) if EndTime - GetGameTimer() < SecondReelStop + 15 then if ReelRewards[3] == math.floor(ReelRewards[3]) then Sounds[9]() else Sounds[10]() end DeleteObject(BlurryReel3) SetEntityRotation(Reel3, ReelReward3, 0.0, SlotHeading, 2, true) SetEntityVisible(Reel3, true) end end end Wait(0) end DeleteObject(BlurryReel1) SetEntityRotation(Reel1, ReelReward1, 0.0, SlotHeading, 2, true) SetEntityVisible(Reel1, true) CallScaleformMethod('SET_LAST_WIN', SlotReferences[ClosestSlotModel].betamounts[ChosenBetAmount] * RewardMultiplier) if ReelRewards[1] == math.floor(ReelRewards[1]) then Sounds[9]() else Sounds[10]() end if RewardMultiplier == 0 then Sounds[1]() QBCore.Functions.Notify('You Lose', 'error', 3500) -- exports['qb-core']:DrawText('You Lose) local LoseScene = NetworkCreateSynchronisedScene(ClosestSlotCoord, ClosestSlotRotation, 2, 2, 0, 1.0, 0, 1.0) LoadAnimDict(AnimDict) local RandomAnim = RandomLose[math.random(1, #RandomLose)] NetworkAddPedToSynchronisedScene(PlayerPedId(), LoseScene, AnimDict, RandomLose[math.random(1, #RandomLose)], 2.0, -1.5, 13, 16, 2.0, 0) NetworkStartSynchronisedScene(LoseScene) StartIdleScene(RandomAnim) elseif RewardMultiplier > 7 then if ReelReward1 == 5 and ReelReward2 == 5 and ReelReward3 == 5 then Sounds[4]() else Sounds[3]() end local BigWinScene = NetworkCreateSynchronisedScene(ClosestSlotCoord, ClosestSlotRotation, 2, 2, 0, 1.0, 0, 1.0) LoadAnimDict(AnimDict) local RandomAnim = RandomBigWin[math.random(1, #RandomBigWin)] NetworkAddPedToSynchronisedScene(PlayerPedId(), BigWinScene, AnimDict, RandomBigWin[math.random(1, #RandomBigWin)], 2.0, -1.5, 13, 16, 2.0, 0) NetworkStartSynchronisedScene(BigWinScene) StartIdleScene(RandomAnim) else Sounds[2]() local WinScene = NetworkCreateSynchronisedScene(ClosestSlotCoord, ClosestSlotRotation, 2, 2, 0, 1.0, 0, 1.0) LoadAnimDict(AnimDict) local RandomAnim = RandomWin[math.random(1, #RandomWin)] NetworkAddPedToSynchronisedScene(PlayerPedId(), WinScene, AnimDict, RandomAnim, 2.0, -1.5, 13, 16, 2.0, 0) NetworkStartSynchronisedScene(WinScene) StartIdleScene(RandomAnim) end IsSpinning = false end)