Advance Помогите с RakSamp Advance rp

Mariarty_

Новичок
Автор темы
1
0
Версия SA-MP
  1. Любая
Всем привет, у меня есть рак самп проходит квесты но есть проблема когда он доходит до квеста с отелям "Первое жилье" он не может выбрать отель и пишет бизнес не найден

чать с этим скриптом

ampev.onDisplayGameText = function(style, time, text)
if text:find("mission_complete") then
printm("Квест №"..quests.number.." успешно выполнен!", "green")
if quests.number == 5 then
quests.hotel_attempts = 0
quests.hotel_processing = false
quests.hotel_waiting = false
end
end
if text:find("Experiment") then
newTask(tp, 2000, 754.56, -443.71, 1076.67)
end
if text:find("Production") then
newTask(tp, 5000, 759.09, -456.8, 1076.67)
end
end

sampev.onShowTextDraw = function(id, data)
if id == 2048 then
reg.IP = tostring(getIpInfo())
newTask(sendClickTextdraw, 1000, id)
end
local num = data.text:match(":(%d+)")
if num then print("extracted number: "..num) end
if data.text:find("ld_dual:light") then
autoCaptcha.c = autoCaptcha.c + 1
if autoCaptcha.i == 0 then autoCaptcha.i = id
elseif autoCaptcha.c <= 10 then autoCaptcha.b = autoCaptcha.b + (id - autoCaptcha.i)
elseif autoCaptcha.c >= 23 then
for n = 0, 9 do
if autoCaptcha.b == autoCaptcha.NumbCaptch[n] then
autoCaptcha.b, autoCaptcha.c, autoCaptcha.i = 0, 0, 0
sendDialogResponse(368, 1, 65535, tostring:negative:)
print(tostring:negative:)
end
end
end
return false
end
if id == 2053 and getBotInterior() == 1 then --NEXT
newTask(function()
wait(1000)
sendClickTextdraw(id)
wait(2000)
sendClickTextdraw(2054) --BUY
end)
end
end

sampev.onSetSpawnInfo = function(team, skin, _unused, position, rotation, weapons, ammo)
newTask(function()
wait(5000)
local int = getBotInterior()
if int == 0 or int == 11 then
quests = { number = 0, working = false, movers = false, driving = false, seat_car = false, hotel = false, hotelName = "", medicines = 0, hotel_attempts = 0, hotel_processing = false, hotel_waiting = false }
sendInput("/mn")
end
end)
end

sampev.onSetInterior = function(id)
if rep then runRoute("!stop") end
if id == 6 then
newTask(sendInput, 5000, "/buy")
elseif id == 3 then
if config['bot']['workMode'] == "legit" then
newTask(runRoute, random(1000, 5000), "!play driving_school/exam/"..random(1, 3))
else
newTask(tp, 1000, -2807.32, -1408.21, 599.92)
end
elseif id == 0 and quests.driving then
newTask(function()
wait(1000)
tp(-2083.59, -90.46, 35.16)
quests.seat_car = true
wait(2500)
sendVehicle("driving")
end)
elseif id == 11 and quests.hotel then
newTask(tp, 1000, 1309, -27, 1000)
elseif id == 1 then
newTask(function()
wait(10000)
for k, v in pairs(getAllLabels()) do
if v.text:find("Покупка") and v.text:find("транспорта") then
x, y, z = v.position.x, v.position.y, v.position.z
end
end
 

VQL Production

Новичок
3
1
if id == 2053 and getBotInterior() == 1 then --NEXT
Скорее всего, после обновления сервера изменились ид текстдравов выбора отеля. У тебя в скрипте жёстко прописаны 2053 и 2054, первый нажимается как выбор отеля, второй как покупка. Если эти ид теперь относятся к другим элементам, отель фактически не выбирается, поэтому сервер и отвечает Бизнес не найден.
Для начала выведи в консоль все текстдравы, которые появляются на этапе квеста Первое жильё их ид и текст. Потом найди актуальные кнопки выбора и покупки и замени старые значения.
Также проверь виртуальный мир, интерьер и координаты отеля.
То есть проблема, скорее всего, в устаревших ид текстдравов или координатах, а не в обработчике mission_complete
а вообще фиксированные ид лучше убрать, нужно ловить все появившиеся текстдравы через onShowTextDraw, смотреть их data.text, позицию и другие параметры, а потом сохранять ид нужной кнопки.
Например, если у кнопки есть текст Купить, Выбрать или название отеля, ищешь её по этому тексту и записываешь ид в переменную. Потом кликаешь уже по найденному ид, а не по 2053 или 2054.
Чтобы узнать, что сервер присылает сейчас, временно добавь вывод
print("TD ID: "..id.." | TEXT: "..tostring(data.text))
После открытия меню отеля в консоли будут все ид и тексты. Так можно понять, какой текстдрав за что отвечает.
Если у кнопок нет нормального текста, тогда искать по координатам текстдрава, спрайту, цвету или последовательности появления. Но просто жёстко прописывать ид ненадёжно.