Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot в онлайн играх _ Помогите пожалуйста разобраться со скриптом новичку

Автор: Taras81 8.3.2021, 22:09

Друзья помогите разобраться скрипт работает но в игре МОБы падают и не пропадают 60 секунд происходит клик по мертвым МОБам подскажите как заставить бота кликать по живым МОБам ,
ещё не знаю как сделать чтобы бот бил МОБа пока тот не упадет и не переключался на другого. Заранее большое спасибо за помощь.

script
Код
--lua
require("find_heap_pixel")  -- загрузка функции

-- функция находит ближайшего к персу моба
-- принимает координаты перса и массив с координатами мобов
function min_distance(persX, persY, arr)
    local function distance(x1, y1, x2, y2)
       return math.sqrt((x1-x2)^2+(y1-y2)^2)
    end
    local min, minNum, dist = 9999999, -1
    for i=1, #arr do
        dist=distance(persX, persY, arr[i][1], arr[i][2])
        if dist < min then min=dist minNum=i end
    end
    return arr[minNum][1], arr[minNum][2]    -- возвращает координаты ближайшего моба
end
----------------

-- таблица с параметрами поиска мобов
local mob = {0, 0,  1920, 1080,       -- координаты поиска
radius = 100,                 -- радиус разброса пикселей
min_pixel_count = 30, max_pixel_count = 1000,   -- минимальное и максимальное количество всех пикселей в группе
color = {3163214  , 2768197   , 3228759   , 12148  , 2119085   },                      -- цвет или несколько цветов
min_pixel_color = {0, 0, 0, 0, 0},             -- минимально количество пикселей каждого цвета
deviation = {5, 5, 5, 5, 5},                       -- погрешность оттенка для каждого цвета
min_color = 5}                        -- минимальное количество цветов, которые должны присутствовать в группе

-- таблица с параметрами поиска перса
local pers = {0, 0,  1920, 1080,      -- координаты поиска
radius = 80,                 -- радиус разброса пикселей
min_pixel_count = 50, max_pixel_count = 1000,   -- минимальное и максимальное количество всех пикселей в группе
color = {8242365 , 7187117 , 7252389 },                      -- цвет или несколько цветов
min_pixel_color = {0, 0, 0},             -- минимально количество пикселей каждого цвета
deviation = {5, 5, 5},                       -- погрешность оттенка для каждого цвета
min_color = 3}                        -- минимальное количество цветов, которые должны присутствовать в группе

while 1 do
    local a, group = find_heap_pixel(mob)     -- вызов функции
    local b, group2 = find_heap_pixel(pers)     -- вызов функции
    --log (group, group2)  -- результат поиска, если nill - не найдено,  LuaTable - найдено

    if group and group2 then   -- если моб и перс найдены
        local x, y = min_distance(group2[1][1], group2[1][2], group)  -- передаём в функцию координаты перса и массив с координатами мобов
        move (x, y)     -- навести курсор на моба
           kleft_down (x, y)
           wait (500)
           kright (x, y)
        -- тут нужные действия
        wait (1000)
    end
end



Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: cirus 8.3.2021, 23:30

Цитата
подскажите как заставить бота кликать по живым МОБам

Надо как-то определять что этот моб убит.
Цитата
как сделать чтобы бот бил МОБа пока тот не упадет и не переключался на другого.

После того как выделился моб:
Код
while color(356, 489) == 5515776 do  -- цикл, пока в указанных координатах совпадает цвет 
    -- нужные действие
    wait(10)
end

Автор: Taras81 9.3.2021, 2:03

Пожалуйста подскажите как правильно вставить код в скрипт. Зарание благодарю.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)