Cocolemunto.
Потрачен
- 108
- 26
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ultra fuckА как понять эти координаты? Через какой то скрипт отдельный?
ultra fuckА как понять эти координаты? Через какой то скрипт отдельный?
Почему то не роботает у меня автоеда, кто знает почему?С помощью данного скрипта можно узнать в организации бот или нет.
Будет есть, когда высветится надпись "hungry".Lua:function sampev.onDisplayGameText(style, time, text) if text:find("hungry") then newTask(function() wait(math.random(2000, 3500)) sendInput("/cheeps") end) end end
В начало кода если нету, то добавить
Lua:math.randomseed(os.time()*os.clock()*math.random()) math.random(); math.random(); math.random()
!coord x y z - если вручную
или если кодом, то coordStart(x, y, z, time, step, true/false)
Проверь, нет ли у тебя второй функции sampev.onDisplayGameTextПочему то не роботает у меня автоеда, кто знает почему?
А где вообще эти координаты вбивать? Я скачал slapfix by dimiano и SAmin.hmap, где то видел что нужен txt файл, но где его взять?ultra fuck
mod.compressedVector = {
read = function(bs)
local magnitude = bs:readFloat()
if magnitude ~= 0 then
local readCf = mod.compressedFloat.read
return vector3d(readCf(bs) * magnitude, readCf(bs) * magnitude, readCf(bs) * magnitude)
else
return vector3d(0, 0, 0)
end
end,
write = function(bs, data)
local x, y, z = data.x, data.y, data.z
local magnitude = math.sqrt(x * x + y * y + z * z)
bs:writeFloat(magnitude)
if magnitude > 0 then
local writeCf = mod.compressedFloat.write
writeCf(bs, x / magnitude)
writeCf(bs, y / magnitude)
writeCf(bs, z / magnitude)
end
end
}
mod.compressedFloat = {
read = function(bs)
return bs:readInt16() / 32767.5 - 1
end,
write = function(bs, value)
if value < -1 then
value = -1
elseif value > 1 then
value = 1
end
bs:writeInt16((value + 1) * 32767.5)
end
}
mod.compressedVector = {
read = function(bs)
local magnitude = raknetBitStreamReadFloat(bs)
if magnitude ~= 0 then
local readCf = mod.compressedFloat.read
return vector3d(readCf(bs) * magnitude, readCf(bs) * magnitude, readCf(bs) * magnitude)
else
return vector3d(0, 0, 0)
end
end,
write = function(bs, data)
local x, y, z = data.x, data.y, data.z
local magnitude = math.sqrt(x * x + y * y + z * z)
raknetBitStreamWriteFloat(bs, magnitude)
if magnitude > 0 then
local writeCf = mod.compressedFloat.write
writeCf(bs, x / magnitude)
writeCf(bs, y / magnitude)
writeCf(bs, z / magnitude)
end
end
}
mod.compressedFloat = {
read = function(bs)
return raknetBitStreamReadInt16(bs) / 32767.5 - 1
end,
write = function(bs, value)
if value < -1 then
value = -1
elseif value > 1 then
value = 1
end
raknetBitStreamWriteInt16(bs, (value + 1) * 32767.5)
end
}
--Вариант в игре
function sampev.onPlayerSync(playerId, data)
lua_thread.create(function()
if settings.maincfg.sendTargets then
local vecX = data.position.x + (data.moveSpeed.x * 100) -- Увеличенный вектор, для наглядности
local vecY = data.position.y + (data.moveSpeed.y * 100) -- Увеличенный вектор, для наглядности
local vecZ = data.position.z + (data.moveSpeed.z * 100) -- Увеличенный вектор, для наглядности
local wX1, wY1 = convert3DCoordsToScreen(data.position.x, data.position.y, data.position.z)
local wX2, wY2 = convert3DCoordsToScreen(vecX, vecY, vecZ)
renderDrawLine(wX1, wY1, wX2, wY2, 1, 0xFFFFFFFF)--Для игры. Вектор скорости отрисуется корректно.
print("PlayerSyncData:", data.position.x, data.position.y, data.position.z, data.moveSpeed.x * 100, data.moveSpeed.y * 100, data.moveSpeed.z * 100)
--printf здесь выдаст разный по направлению результат вектора скорости
end
end)
end
--Вариант для бота
function sampev.onPlayerSync(playerId, data)
newTask(function()
if settings.maincfg.sendTargets then
local sendData = {
data.position.x,
data.position.y,
data.position.z,
data.position.x + (data.moveSpeed.x * 100),
data.position.y + (data.moveSpeed.y * 100),
data.position.z + (data.moveSpeed.z * 100)
}
renderOnClient(data)--Функция отрабатывает корректно, искажений при передаче нет. Вектор скорости отрисуется некорректно, из-за неверных данных от бота
print("PlayerSyncData:", data.position.x, data.position.y, data.position.z, data.moveSpeed.x * 100, data.moveSpeed.y * 100, data.moveSpeed.z * 100)
--printf здесь выдаст разный по направлению результат вектора скорости
end
end)
end
попробуй с этимВ sampev в событиях onPlayerSync(playerId, data) и onVehicleSync(playerId, vehicleId, data) неверно считывается вектор скорости. Возможно проблема в этой части кода:
Код из bitstream_io для RakSAMP Lite:mod.compressedVector = { read = function(bs) local magnitude = bs:readFloat() if magnitude ~= 0 then local readCf = mod.compressedFloat.read return vector3d(readCf(bs) * magnitude, readCf(bs) * magnitude, readCf(bs) * magnitude) else return vector3d(0, 0, 0) end end, write = function(bs, data) local x, y, z = data.x, data.y, data.z local magnitude = math.sqrt(x * x + y * y + z * z) bs:writeFloat(magnitude) if magnitude > 0 then local writeCf = mod.compressedFloat.write writeCf(bs, x / magnitude) writeCf(bs, y / magnitude) writeCf(bs, z / magnitude) end end } mod.compressedFloat = { read = function(bs) return bs:readInt16() / 32767.5 - 1 end, write = function(bs, value) if value < -1 then value = -1 elseif value > 1 then value = 1 end bs:writeInt16((value + 1) * 32767.5) end }
Код из bitstream_io, используемой в игре:mod.compressedVector = { read = function(bs) local magnitude = raknetBitStreamReadFloat(bs) if magnitude ~= 0 then local readCf = mod.compressedFloat.read return vector3d(readCf(bs) * magnitude, readCf(bs) * magnitude, readCf(bs) * magnitude) else return vector3d(0, 0, 0) end end, write = function(bs, data) local x, y, z = data.x, data.y, data.z local magnitude = math.sqrt(x * x + y * y + z * z) raknetBitStreamWriteFloat(bs, magnitude) if magnitude > 0 then local writeCf = mod.compressedFloat.write writeCf(bs, x / magnitude) writeCf(bs, y / magnitude) writeCf(bs, z / magnitude) end end } mod.compressedFloat = { read = function(bs) return raknetBitStreamReadInt16(bs) / 32767.5 - 1 end, write = function(bs, value) if value < -1 then value = -1 elseif value > 1 then value = 1 end raknetBitStreamWriteInt16(bs, (value + 1) * 32767.5) end }
Например, такой код даёт разный результат в игре и в RakSAMP:
Пример кода:--Вариант в игре function sampev.onPlayerSync(playerId, data) lua_thread.create(function() if settings.maincfg.sendTargets then local vecX = data.position.x + (data.moveSpeed.x * 100) -- Увеличенный вектор, для наглядности local vecY = data.position.y + (data.moveSpeed.y * 100) -- Увеличенный вектор, для наглядности local vecZ = data.position.z + (data.moveSpeed.z * 100) -- Увеличенный вектор, для наглядности local wX1, wY1 = convert3DCoordsToScreen(data.position.x, data.position.y, data.position.z) local wX2, wY2 = convert3DCoordsToScreen(vecX, vecY, vecZ) renderDrawLine(wX1, wY1, wX2, wY2, 1, 0xFFFFFFFF)--Для игры. Вектор скорости отрисуется корректно. print("PlayerSyncData:", data.position.x, data.position.y, data.position.z, data.moveSpeed.x * 100, data.moveSpeed.y * 100, data.moveSpeed.z * 100) --printf здесь выдаст разный по направлению результат вектора скорости end end) end --Вариант для бота function sampev.onPlayerSync(playerId, data) newTask(function() if settings.maincfg.sendTargets then local sendData = { data.position.x, data.position.y, data.position.z, data.position.x + (data.moveSpeed.x * 100), data.position.y + (data.moveSpeed.y * 100), data.position.z + (data.moveSpeed.z * 100) } renderOnClient(data)--Функция отрабатывает корректно, искажений при передаче нет. Вектор скорости отрисуется некорректно, из-за неверных данных от бота print("PlayerSyncData:", data.position.x, data.position.y, data.position.z, data.moveSpeed.x * 100, data.moveSpeed.y * 100, data.moveSpeed.z * 100) --printf здесь выдаст разный по направлению результат вектора скорости end end) end
Дайте пж настраиваемый рекконект на него, чтобы можно было делай после РР настроить
function sampev.onServerMessage(color, text)
if text:find("произойдет технический рестарт сервера") then
reconnect(720000) -- либо свое время в мс
end
end
создать папку slapfix, закинуть туда SAmin.hmap и создать файлик interiors.txt, а после вносить корды через ;А где вообще эти координаты вбивать? Я скачал slapfix by dimiano и SAmin.hmap, где то видел что нужен txt файл, но где его взять?
!coord x y zПомогите пж не могу тепнуть бота пишет !coord <x> <y> <z>