SA:MP Mobile Wall Hack For Monetloader

Асука

Потрачен
Автор темы
326
188
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Скачал валл хак от монетлоадера для самп мобайл, Вот весь код
Lua:
-- MonetLoader for Android 2.1.0
-- Reference script: FFI Bone WallHack
script_name('FFI Bone WallHack')
script_version('1.1')
script_version_number(2)
script_author('The MonetLoader Team')
script_description('Bone + nametag WallHack that gets bone positions with FFI.')

local ffi = require('ffi')
local gta = ffi.load('GTASA')
ffi.cdef[[
  typedef struct RwV3d {
    float x, y, z;
  } RwV3d;
  // void CPed::GetBonePosition(CPed *this, RwV3d *posn, uint32 bone, bool calledFromCam) - Mangled name
  void _ZN4CPed15GetBonePositionER5RwV3djb(void* thiz, RwV3d* posn, uint32_t bone, bool calledFromCam);
]]

function getBonePosition(ped, bone)
  local pedptr = ffi.cast('void*', getCharPointer(ped))
  local posn = ffi.new('RwV3d[1]')
  gta._ZN4CPed15GetBonePositionER5RwV3djb(pedptr, posn, bone, false)
  return posn[0].x, posn[0].y, posn[0].z
end

local bones = { 3, 4, 5, 51, 52, 41, 42, 31, 32, 33, 21, 22, 23, 2 }
local sw, sh = getScreenResolution()
local font = renderCreateFont("Arial", 12, 1 + 4) -- P.S. in MonetLoader only Arial Bold is available (every font is defaulted to it)

function main()
  while not isSampAvailable() do wait(0) end

  while true do
    wait(0)

    for _, char in ipairs(getAllChars()) do
      local result, id = sampGetPlayerIdByCharHandle(char)
      if result and isCharOnScreen(char) then
        local opaque_color = bit.bor(bit.band(sampGetPlayerColor(id), 0xFFFFFF), 0xFF000000)
        for _, bone in ipairs(bones) do
          local x1, y1, z1 = getBonePosition(char, bone)
          local x2, y2, z2 = getBonePosition(char, bone + 1)
          local r1, sx1, sy1 = convert3DCoordsToScreenEx(x1, y1, z1)
          local r2, sx2, sy2 = convert3DCoordsToScreenEx(x2, y2, z2)
          if r1 and r2 then
            renderDrawLine(sx1, sy1, sx2, sy2, 3, opaque_color)
          end
        end

        local x1, y1, z1 = getBonePosition(char, 2)
        local r1, sx1, sy1 = convert3DCoordsToScreenEx(x1, y1, z1)
        if r1 then
          local x2, y2, z2 = getBonePosition(char, 41)
          local r2, sx2, sy2 = convert3DCoordsToScreenEx(x2, y2, z2)
          if r2 then
            renderDrawLine(sx1, sy1, sx2, sy2, 3, opaque_color)
          end
        end
        if r1 then
          local x2, y2, z2 = getBonePosition(char, 51)
          local r2, sx2, sy2 = convert3DCoordsToScreenEx(x2, y2, z2)
          if r2 then
            renderDrawLine(sx1, sy1, sx2, sy2, 3, opaque_color)
          end
        end

        local hx, hy, hz = getBonePosition(char, 5)
        local hr, headx, heady = convert3DCoordsToScreenEx(hx, hy, hz + 0.25)
        if hr then
          local nickname = sampGetPlayerNickname(id)
          local nametag = nickname .. ' [' .. tostring(id) .. '] - {FF0000}' .. string.format("%.0f", sampGetPlayerHealth(id)) .. 'hp {BBBBBB}' .. string.format("%.0f", sampGetPlayerArmor(id)) .. 'ap'
          local nametag_len = renderGetFontDrawTextLength(font, nametag)
          local nametag_x = headx - nametag_len / 2
          local nametag_y = heady - renderGetFontDrawHeight(font)
          renderFontDrawText(font, nametag, nametag_x, nametag_y, opaque_color)
        end
      end
    end
  end
end
Так вот, По умолчанию если не ошибаюсь у него авто- активация. Как сделать активацию этого вх по команде?