Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: p3rn4l0ng4 en 13 Octubre 2018, 22:24 pm



Título: alguien puede echar una ayuda Teleport Script Lua
Publicado por: p3rn4l0ng4 en 13 Octubre 2018, 22:24 pm
hola estoy un poco perdino en algunos puntos y me gustaria alguien que echa un vistazo y me echa una luz que seguir por que estoy en la oscuridad ya busque youtube mytube y todostube XD y no veo nim uno tutorial plz una luz por mas pequeña que sea

el case es un teleport que en realidad busco un teleport de un mapa a otro pero no doy con nim una script si alguien sabe un mejor que ese sera bienvenido

Citar
[ENABLE]
{$lua}

-- Offsets
local FLAG_TEAM = 0x32C
local HEALTH = 0xF8
local NEXT_PLAYER = 0x4 -- The offset of the structure from one player to another
local COORDINATE_X = 0x34
local COORDINATE_Y = 0x38
local COORDINATE_Z = 0x3C
local ANGLE_X = 0x40
local ANGLE_Y = 0x44

local BASE_PLAYERS = getAddress('[ac_client.exe+0010F4F8]')
local BASE_MY_PLAYER = getAddress('[ac_client.exe+0010F4F4]')

-- Declaration of other variables
local player = {}-- Structure with all my data
local enemy = {}-- Structure with the enemy players, the targets.
local amount_players -- Number of players
local my_team -- Contains the necessary information to know who is on my team.


local MAX_ATTEMPTS = 1000 -- Help the "UpdatePlayersData" function not to enter an infinite loop.
-- To understand why this is necessary, you need to study how the player structures work in the Assalt Cube game.


-- Function that updates my player information
local function UpdateMyData()
    player.x = BASE_MY_PLAYER + COORDINATE_X
    player.y = BASE_MY_PLAYER + COORDINATE_Y
    player.z = BASE_MY_PLAYER + COORDINATE_Z

    my_team = readInteger(BASE_MY_PLAYER + FLAG_TEAM)
end


--Function that updates information about players
--And it's different from my team.
local function UpdatePlayersData()
    amount_players = readInteger("ac_client.exe+10A22C")-1

    local OFFSET = NEXT_PLAYER -- This variable contains the offset value of the current player being processed
    local current_player = 0 -- Contains the player base in process
    local counter = 0
    local countPlayer = 0
    while(countPlayer < amount_players) do
        counter = counter + 1
        if counter > MAX_ATTEMPTS then print(#enemy) return end

        current_player = readInteger(BASE_PLAYERS + OFFSET)
        if readInteger(current_player + HEALTH) then
            countPlayer = countPlayer + 1
            if readInteger(current_player + HEALTH) >= 1 and readInteger(current_player + HEALTH) <= 1000 then -- The player exists and is alive.
                if readInteger(current_player + FLAG_TEAM) ~= my_team then -- If the player is my enemy
                    enemy.x = readFloat(current_player + COORDINATE_X)
                    enemy.y = readFloat(current_player + COORDINATE_Y)
                    enemy.z = readFloat(current_player + COORDINATE_Z)
                    t=true
                    return
                end
            end
        end
        OFFSET = OFFSET + NEXT_PLAYER
    end
    t = false
end

local function TeleportBotPosition()
    if not t then return end
    writeFloat(player.x, enemy.x)
    writeFloat(player.y, enemy.y)
    writeFloat(player.z, enemy.z)
end

local function CheckKeyTeleportBot()
        if not readInteger('[ac_client.exe+0010F4F8]') then return end--The function returns if the address does not exist.
        UpdateMyData()
        UpdatePlayersData()
        TeleportBotPosition()
end

if t4 then t4.destroy(); t4=nil end
t4 = createTimer()
t4.Interval = 1
t4.onTimer = CheckKeyTeleportBot
{$asm}
[DISABLE]
{$lua}
if t4 then t4.destroy(); t4=nil end
{$asm}

yo tengo un teleporte que salva las posiciones y carga la posiciones con CE
que el
pointer es
"PlayGame.DLL"+00FFAAFC  = offset Y 2A0 , X 2A1 ,Z 2A2


que me hace falta para completar ese rompecabezas
y conseguir el teleporte map y un teleporte player traer un amigo junto a ti
ademas tengo ese script tambien  que teleporta los bixos junto a ti

Citar
[ENABLE]
{$lua}

-- Offsets
local FLAG_TEAM = 0x32C
local HEALTH = 0xF8
local NEXT_PLAYER = 0x4 -- The offset of the structure from one player to another
local COORDINATE_X = 0x34
local COORDINATE_Y = 0x38
local COORDINATE_Z = 0x3C
local ANGLE_X = 0x40
local ANGLE_Y = 0x44

local BASE_PLAYERS = getAddress('[ac_client.exe+0010F4F8]')
local BASE_MY_PLAYER = getAddress('[ac_client.exe+0010F4F4]')

-- Declaration of other variables
local player -- Structure with all my data
local enemy = {}-- Structure with the enemy players, the targets.
local amount_players -- Number of players
local my_team -- Contains the necessary information to know who is on my team.


local MAX_ATTEMPTS = 1000 -- Help the "UpdatePlayersData" function not to enter an infinite loop.
-- To understand why this is necessary, you need to study how the player structures work in the Assalt Cube game.


-- Function that updates my player information
local function UpdateMyData()
    player = {x = readFloat(BASE_MY_PLAYER + COORDINATE_X),
              y = readFloat(BASE_MY_PLAYER + COORDINATE_Y),
              z = readFloat(BASE_MY_PLAYER + COORDINATE_Z),
              viewMatrix = {x = readFloat(BASE_MY_PLAYER + ANGLE_X)-90,
                            y = readFloat(BASE_MY_PLAYER + ANGLE_Y)
              }
    }
    my_team = readInteger(BASE_MY_PLAYER + FLAG_TEAM)
end


--Function that updates information about players
--And it's different from my team.
local function UpdatePlayersData()
    amount_players = readInteger("ac_client.exe+10A22C")-1
    enemy = {}

    local OFFSET = NEXT_PLAYER -- This variable contains the offset value of the current player being processed
    local current_player = 0 -- Contains the player base in process
    local counter = 0
    local countPlayer = 0
    while(countPlayer < amount_players) do
        counter = counter + 1
        if counter > MAX_ATTEMPTS then print(#enemy) return end

        current_player = readInteger(BASE_PLAYERS + OFFSET)
        if readInteger(current_player + HEALTH) then
            countPlayer = countPlayer + 1
            if readInteger(current_player + HEALTH) >= 1 and readInteger(current_player + HEALTH) <= 1000 then -- The player exists and is alive.
                if readInteger(current_player + FLAG_TEAM) ~= my_team then -- If the player is my enemy
                    enemy[#enemy+1] = {}
                    enemy[#enemy].x = current_player + COORDINATE_X
                    enemy[#enemy].y = current_player + COORDINATE_Y
                    enemy[#enemy].z = current_player + COORDINATE_Z
                end
            end
        end
        OFFSET = OFFSET + NEXT_PLAYER
    end
end

local function TeleportBot()

    local destinyX
    local destinyY
    local destinyZ
    local max_lenght
    local lenght = 10

    destinyZ = math.sin(math.rad(player.viewMatrix.y)) * lenght
    max_lenght = math.cos(math.rad(player.viewMatrix.y)) * lenght
    destinyY = math.sin(math.rad(player.viewMatrix.x)) * max_lenght
    destinyX = math.cos(math.rad(player.viewMatrix.x)) * max_lenght

    for i=1, #enemy do
        writeFloat(enemy.x, player.x + destinyX)
        writeFloat(enemy.y, player.y + destinyY)
        writeFloat(enemy.z, player.z + destinyZ)
    end

end

local function CheckKeyTeleportBot()
    if isKeyPressed( VK_Q ) then
        if not readInteger('[ac_client.exe+0010F4F8]') then return end--The function returns if the address does not exist.
        UpdateMyData()
        UpdatePlayersData()
        TeleportBot()
    end
end

showMessage("Press Key 'Q'")

if t2 then t2.destroy(); t2=nil end
t2 = createTimer()
t2.Interval = 1
t2.onTimer = CheckKeyTeleportBot
{$asm}
[DISABLE]
{$lua}
if t2 then t2.destroy(); t2=nil end
{$asm}