SA:MP Lua Fix interior

менталейшн

Известный
638
111
а смысл? на капты только с лаунчера сделали
ващета есть фикс

Lua:
local SendChatIcon = true

math.randomseed(os.clock())
local sampev = require('lib.samp.events')

function sampev.onSendClientJoin(version, mod, nickname, challengeResponse, joinAuthKey, clientVer, challengeResponse2)
  local clientVer = 'Arizona PC'
  local challengeResponse2 = 'Arizona PC'
  sendGamePath()
  ValidationCEF()
  return {version, mod, nickname, challengeResponse, joinAuthKey, clientVer, challengeResponse2}
end



function sendGamePath()
  lua_thread.create(function()
  wait(0)
  local server_ip, port = sampGetCurrentServerAddress()
  wait(0)
  local result, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
  wait(0)
  local player_name = (result and sampGetPlayerNickname(id) or "Ivan_Ivanov")
  local game_path = string.format("\"C:\\Arizona\\bin\\arizona\\gta_sa.exe\" -c -h %s -p %d -n %s -mem 2048 -x -seasons -enable_grass -arizona", server_ip, port, player_name)
  wait(0)
  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 0xDC)
  raknetBitStreamWriteInt8(bs, 0x8C)
  raknetBitStreamWriteInt32(bs, #game_path)
  raknetBitStreamWriteString(bs, game_path)
  raknetBitStreamWriteInt8(bs, 0x00)
  raknetSendBitStream(bs)
  raknetDeleteBitStream(bs)
  end)
end


function ValidationCEF()
  lua_thread.create(function()
  wait(10)
  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 20)
  raknetBitStreamWriteInt8(bs, 128)
  raknetBitStreamWriteInt8(bs, 7)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 56)
  raknetBitStreamWriteInt8(bs, 4)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 38)
  raknetBitStreamWriteInt8(bs, 101)
  raknetBitStreamWriteInt8(bs, 7)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 56)
  raknetBitStreamWriteInt8(bs, 4)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 50)
  raknetBitStreamWriteInt8(bs, 1)
  raknetBitStreamWriteInt16(bs, 1)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local bs = raknetNewBitStream() -- TEST
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 10)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt16(bs, 1)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local bs = raknetNewBitStream() -- TEST
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 10)
  raknetBitStreamWriteInt8(bs, 1)
  raknetBitStreamWriteInt16(bs, 1)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local string = "svelteReady"
  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 18)
  raknetBitStreamWriteInt8(bs, string.len(string))
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteString(bs, string)
  raknetBitStreamWriteInt32(bs, 1) -- 32
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local string = "@0, vueReady"
  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 18)
  raknetBitStreamWriteInt8(bs, string.len(string))
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteString(bs, string)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local string = "onActiveViewChanged|"
  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 18)
  raknetBitStreamWriteInt8(bs, string.len(string))
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteString(bs, string)
  raknetBitStreamWriteInt8(bs, 1)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local string = "onActiveViewChanged|Auth"
  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 18)
  raknetBitStreamWriteInt8(bs, string.len(string))
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteString(bs, string)
  raknetBitStreamWriteInt8(bs, 1)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)
  end)
end





function sampev.onServerMessage(cvet, text)
  if string.find(text, 'бесплатный хотдог', 1, true) then
    lua_thread.create(function()
    wait(math.random(1800, 2000))
    SendCefPacket('streetFood.purchase|hotdog')
    end)
  end
end


function onReceivePacket(idPKT, bsPKT)
  if (idPKT == 220) then
    raknetBitStreamIgnoreBits(bsPKT, 8)
    local custom_type = raknetBitStreamReadInt8(bsPKT)


    if (custom_type == 17) then
      raknetBitStreamIgnoreBits(bsPKT, 32)
      local len = raknetBitStreamReadInt16(bsPKT)
      if (len > 0) then
        local length = len
        local encoded = raknetBitStreamReadInt8(bsPKT)
        local str = (encoded ~= 0) and raknetBitStreamDecodeString(bsPKT, length + encoded) or raknetBitStreamReadString(bsPKT, length)

        if string.find(str, 'npcDialog', 1, true) then
          SendNPCAnswer = true ; return false
        end

      end
    end



      if (custom_type == 175) then
        local CoordinateX = raknetBitStreamReadFloat(bsPKT)
        local CoordinateY = raknetBitStreamReadFloat(bsPKT)
        local CoordinateZ = raknetBitStreamReadFloat(bsPKT)

        if not CheckLoadingBugSync(CoordinateX, CoordinateY, CoordinateZ) then
          setCharCoordinatesNoOffset(PLAYER_PED, CoordinateX, CoordinateY, CoordinateZ)
        end
      end


      if (custom_type == 199) then
        raknetBitStreamIgnoreBits(bsPKT, 8)
        local zhdun = raknetBitStreamReadInt8(bsPKT)
        printStringNow(''..tostring(zhdun)..' MECTO', 10000)
      end



  end
end



function CheckLoadingBugSync(valueX, valueY, valueZ)
  local valuesForCheck = {tostring(valueX), tostring(valueY), tostring(valueZ)}
  for i = 1, 3 do
    if (valuesForCheck[i] == 'nan' or valuesForCheck[i] == 'inf' or valuesForCheck[i] == '-inf' or valuesForCheck[i] == 'nil' or valuesForCheck[i] == 'null' or (math.abs(tonumber(valuesForCheck[i])) > 20000)) then
      return true
    end
  end
  return false
end


script_author('FunnyRofl')


script_description(' Ссылка на автора скрипта: https://www.blast.hk/members/507661 ( link to the author of the script ) ')




function main()
  if not isSampLoaded() or not isSampfuncsLoaded() then return end
  while not isSampAvailable() do wait(100)
  end

  sampRegisterChatCommand("sendcef", function(stringOfCef)
  if stringOfCef then
    local stringOfCef = tostring(stringOfCef)
    if (stringOfCef == '1') then
      SendCefPacket('streetFood.purchase|hotdog')
    else
      SendCefPacket(stringOfCef)
    end
  end
  end)


  lua_thread.create(function()
  while true do
    wait(500)

    if SendNPCAnswer then
      SendCefPacket('answer.npcDialog|0')
      SendNPCAnswer = nil
      wait(math.random(200, 500))
    end

  end
  end)



  while true do
    wait(0)


    if SendChatIcon then

      if sampIsChatInputActive() then
        if not ChatStatus then
          ChatStatus = true
          local bs = raknetNewBitStream()
          raknetBitStreamWriteInt8(bs, 220)
          raknetBitStreamWriteInt8(bs, 1)
          raknetBitStreamWriteInt8(bs, 128)
          raknetSendBitStream(bs)
          raknetDeleteBitStream(bs)
        end

      else
        if ChatStatus then
          ChatStatus = false
          local bs = raknetNewBitStream()
          raknetBitStreamWriteInt8(bs, 220)
          raknetBitStreamWriteInt16(bs, 1)
          raknetSendBitStream(bs)
          raknetDeleteBitStream(bs)
        end
      end

    end


  end

end



function SendCefPacket(stringCef)
  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 18)
  raknetBitStreamWriteInt16(bs, #stringCef)
  raknetBitStreamWriteString(bs, stringCef)
  raknetBitStreamWriteInt32(bs, 0)
  --raknetBitStreamWriteInt16(bs, 0)
  raknetSendBitStream(bs)
  raknetDeleteBitStream(bs)
end
 

constersuonsis

Известный
Автор темы
232
143
ващета есть фикс

Lua:
local SendChatIcon = true

math.randomseed(os.clock())
local sampev = require('lib.samp.events')

function sampev.onSendClientJoin(version, mod, nickname, challengeResponse, joinAuthKey, clientVer, challengeResponse2)
  local clientVer = 'Arizona PC'
  local challengeResponse2 = 'Arizona PC'
  sendGamePath()
  ValidationCEF()
  return {version, mod, nickname, challengeResponse, joinAuthKey, clientVer, challengeResponse2}
end



function sendGamePath()
  lua_thread.create(function()
  wait(0)
  local server_ip, port = sampGetCurrentServerAddress()
  wait(0)
  local result, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
  wait(0)
  local player_name = (result and sampGetPlayerNickname(id) or "Ivan_Ivanov")
  local game_path = string.format("\"C:\\Arizona\\bin\\arizona\\gta_sa.exe\" -c -h %s -p %d -n %s -mem 2048 -x -seasons -enable_grass -arizona", server_ip, port, player_name)
  wait(0)
  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 0xDC)
  raknetBitStreamWriteInt8(bs, 0x8C)
  raknetBitStreamWriteInt32(bs, #game_path)
  raknetBitStreamWriteString(bs, game_path)
  raknetBitStreamWriteInt8(bs, 0x00)
  raknetSendBitStream(bs)
  raknetDeleteBitStream(bs)
  end)
end


function ValidationCEF()
  lua_thread.create(function()
  wait(10)
  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 20)
  raknetBitStreamWriteInt8(bs, 128)
  raknetBitStreamWriteInt8(bs, 7)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 56)
  raknetBitStreamWriteInt8(bs, 4)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 38)
  raknetBitStreamWriteInt8(bs, 101)
  raknetBitStreamWriteInt8(bs, 7)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 56)
  raknetBitStreamWriteInt8(bs, 4)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 50)
  raknetBitStreamWriteInt8(bs, 1)
  raknetBitStreamWriteInt16(bs, 1)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local bs = raknetNewBitStream() -- TEST
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 10)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt16(bs, 1)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local bs = raknetNewBitStream() -- TEST
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 10)
  raknetBitStreamWriteInt8(bs, 1)
  raknetBitStreamWriteInt16(bs, 1)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local string = "svelteReady"
  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 18)
  raknetBitStreamWriteInt8(bs, string.len(string))
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteString(bs, string)
  raknetBitStreamWriteInt32(bs, 1) -- 32
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local string = "@0, vueReady"
  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 18)
  raknetBitStreamWriteInt8(bs, string.len(string))
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteString(bs, string)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local string = "onActiveViewChanged|"
  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 18)
  raknetBitStreamWriteInt8(bs, string.len(string))
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteString(bs, string)
  raknetBitStreamWriteInt8(bs, 1)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)

  local string = "onActiveViewChanged|Auth"
  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 18)
  raknetBitStreamWriteInt8(bs, string.len(string))
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteString(bs, string)
  raknetBitStreamWriteInt8(bs, 1)
  raknetBitStreamWriteInt8(bs, 0)
  raknetBitStreamWriteInt8(bs, 0)
  raknetSendBitStreamEx(bs, 2, 9, 6)
  raknetDeleteBitStream(bs) ; wait(0)
  end)
end





function sampev.onServerMessage(cvet, text)
  if string.find(text, 'бесплатный хотдог', 1, true) then
    lua_thread.create(function()
    wait(math.random(1800, 2000))
    SendCefPacket('streetFood.purchase|hotdog')
    end)
  end
end


function onReceivePacket(idPKT, bsPKT)
  if (idPKT == 220) then
    raknetBitStreamIgnoreBits(bsPKT, 8)
    local custom_type = raknetBitStreamReadInt8(bsPKT)


    if (custom_type == 17) then
      raknetBitStreamIgnoreBits(bsPKT, 32)
      local len = raknetBitStreamReadInt16(bsPKT)
      if (len > 0) then
        local length = len
        local encoded = raknetBitStreamReadInt8(bsPKT)
        local str = (encoded ~= 0) and raknetBitStreamDecodeString(bsPKT, length + encoded) or raknetBitStreamReadString(bsPKT, length)

        if string.find(str, 'npcDialog', 1, true) then
          SendNPCAnswer = true ; return false
        end

      end
    end



      if (custom_type == 175) then
        local CoordinateX = raknetBitStreamReadFloat(bsPKT)
        local CoordinateY = raknetBitStreamReadFloat(bsPKT)
        local CoordinateZ = raknetBitStreamReadFloat(bsPKT)

        if not CheckLoadingBugSync(CoordinateX, CoordinateY, CoordinateZ) then
          setCharCoordinatesNoOffset(PLAYER_PED, CoordinateX, CoordinateY, CoordinateZ)
        end
      end


      if (custom_type == 199) then
        raknetBitStreamIgnoreBits(bsPKT, 8)
        local zhdun = raknetBitStreamReadInt8(bsPKT)
        printStringNow(''..tostring(zhdun)..' MECTO', 10000)
      end



  end
end



function CheckLoadingBugSync(valueX, valueY, valueZ)
  local valuesForCheck = {tostring(valueX), tostring(valueY), tostring(valueZ)}
  for i = 1, 3 do
    if (valuesForCheck[i] == 'nan' or valuesForCheck[i] == 'inf' or valuesForCheck[i] == '-inf' or valuesForCheck[i] == 'nil' or valuesForCheck[i] == 'null' or (math.abs(tonumber(valuesForCheck[i])) > 20000)) then
      return true
    end
  end
  return false
end


script_author('FunnyRofl')


script_description(' Ссылка на автора скрипта: https://www.blast.hk/members/507661 ( link to the author of the script ) ')




function main()
  if not isSampLoaded() or not isSampfuncsLoaded() then return end
  while not isSampAvailable() do wait(100)
  end

  sampRegisterChatCommand("sendcef", function(stringOfCef)
  if stringOfCef then
    local stringOfCef = tostring(stringOfCef)
    if (stringOfCef == '1') then
      SendCefPacket('streetFood.purchase|hotdog')
    else
      SendCefPacket(stringOfCef)
    end
  end
  end)


  lua_thread.create(function()
  while true do
    wait(500)

    if SendNPCAnswer then
      SendCefPacket('answer.npcDialog|0')
      SendNPCAnswer = nil
      wait(math.random(200, 500))
    end

  end
  end)



  while true do
    wait(0)


    if SendChatIcon then

      if sampIsChatInputActive() then
        if not ChatStatus then
          ChatStatus = true
          local bs = raknetNewBitStream()
          raknetBitStreamWriteInt8(bs, 220)
          raknetBitStreamWriteInt8(bs, 1)
          raknetBitStreamWriteInt8(bs, 128)
          raknetSendBitStream(bs)
          raknetDeleteBitStream(bs)
        end

      else
        if ChatStatus then
          ChatStatus = false
          local bs = raknetNewBitStream()
          raknetBitStreamWriteInt8(bs, 220)
          raknetBitStreamWriteInt16(bs, 1)
          raknetSendBitStream(bs)
          raknetDeleteBitStream(bs)
        end
      end

    end


  end

end



function SendCefPacket(stringCef)
  local bs = raknetNewBitStream()
  raknetBitStreamWriteInt8(bs, 220)
  raknetBitStreamWriteInt8(bs, 18)
  raknetBitStreamWriteInt16(bs, #stringCef)
  raknetBitStreamWriteString(bs, stringCef)
  raknetBitStreamWriteInt32(bs, 0)
  --raknetBitStreamWriteInt16(bs, 0)
  raknetSendBitStream(bs)
  raknetDeleteBitStream(bs)
end
Банят за обход лаунчера)) Я про это, а не про фикс