- 238
- 17
Я конечно всё понимаю, но я либо тупой и слепой, либо ещё что-то. Я когда пишу просто в чат слово "отдохнул" бот идёт к нужным координатам, пишу слово "устал" бот на секунду дёргается и отключается. Я вроде сделал всё как нужно, уже час сижу не могу вдуплить где здесь ошибка.
Lua:
require "lib.moonloader"
local sampev = require 'lib.samp.events'
local str_gym_grusha = {
{766.979980, -2.110000, 1000.739990},
{769.090027, -2.580000, 1000.750000},
{770.890015, 13.550000, 1000.719971},
{768.530029, 13.550000, 1000.719971}
}
local str_gym_home = {
{765.450012, 7.240000, 1000.739990},
{765.719971, 3.510000, 1000.739990},
{764.119995, 5.590000, 1000.739990}
}
function main()
if not isSampfuncsLoaded() or not isSampLoaded() then return end
local saveX = {}
local saveY = {}
local saveZ = {}
while true do
wait(0)
if isPlayerPlaying(playerHandle) and enabled then
gym_grusha_rand = math.random(1, #str_gym_grusha)
BeginToPoint(str_gym_grusha[gym_grusha_rand][1], str_gym_grusha[gym_grusha_rand][2], str_gym_grusha[gym_grusha_rand][3], 1.0, -255, false)
wait(1000)
enabled = false
end
if isPlayerPlaying(playerHandle) and disabled then
gym_home_rand = math.random(1, #str_gym_home)
BeginToPoint(str_gym_home[gym_home_rand][1], str_gym_home[gym_home_rand][2], str_gym_home[gym_home_rand][3], 1.0, -255, false)
wait(1000)
disabled = false
end
end
end
function sampev.onServerMessage(color, text)
if string.find(text, "устал", 1, true) then
disabled = true
end
if string.find(text, "отдохнул", 1, true) then
enabled = true
end
end
--------------------------- STANDART FUNCTIONS ---------------------------
function BeginToPoint(x, y, z, radius, move_code, isSprint)
repeat
local posX, posY, posZ = GetCoordinates()
SetAngle(x, y, z)
MovePlayer(move_code, isSprint)
local dist = getDistanceBetweenCoords3d(x, y, z, posX, posY, z)
wait(0)
until not enabled and disabled or dist < radius
end
function MovePlayer(move_code, isSprint)
setGameKeyState(1, move_code)
--[[255 - обычный бег назад
-255 - обычный бег вперед
65535 - идти шагом вперед
-65535 - идти шагом назад]]
if isSprint then setGameKeyState(16, 255) end
end
function SetAngle(x, y, z)
local posX, posY, posZ = GetCoordinates()
local pX = x - posX
local pY = y - posY
local zAngle = getHeadingFromVector2d(pX, pY)
if isCharInAnyCar(playerPed) then
local car = storeCarCharIsInNoSave(playerPed)
setCarHeading(car, zAngle)
else
setCharHeading(playerPed, zAngle)
end
restoreCameraJumpcut()
end
function GetCoordinates()
if isCharInAnyCar(playerPed) then
local car = storeCarCharIsInNoSave(playerPed)
return getCarCoordinates(car)
else
return getCharCoordinates(playerPed)
end
end
-- Teleport from ClickWarp (by FYP)
function teleportPlayer(x, y, z)
if isCharInAnyCar(playerPed) then
setCharCoordinates(playerPed, x, y, z)
end
setCharCoordinatesDontResetAnim(playerPed, x, y, z)
end
function setCharCoordinatesDontResetAnim(char, x, y, z)
if doesCharExist(char) then
local ptr = getCharPointer(char)
setEntityCoordinates(ptr, x, y, z)
end
end
function setEntityCoordinates(entityPtr, x, y, z)
if entityPtr ~= 0 then
local matrixPtr = readMemory(entityPtr + 0x14, 4, false)
if matrixPtr ~= 0 then
local posPtr = matrixPtr + 0x30
writeMemory(posPtr + 0, 4, representFloatAsInt(x), false) --X
writeMemory(posPtr + 4, 4, representFloatAsInt(y), false) --Y
writeMemory(posPtr + 8, 4, representFloatAsInt(z), false) --Z
end
end
end
-- End Teleport code
--------------------------- ADDITIONAL FUNCTIONS ---------------------------