UoKit.com Форумы > Кликер > UO Pilot
Страницы: 1, 2
FREEON
Можно ли с помощью пилота создать bmp картинку и на ней же к примеру расчертить сетку с определенным шагом по оси X и шагом по оси Y. Задав нужный цвет. Видел что что-то подобное реализовано в закрашивании фона... Если к примеру нельзя создать картинку, то хотя можно ли выполнить поставленную задачу(расчертить сетку) на готовой пустой картинке?
Вверх
cirus
Сделать можно, но будет долго рисовать.
Для этого есть фотошоп. Создаётся узор и накладывается на картинку.
На крайний случай открыть картинку в paint'е и скриптом нарисовать сетку.
Вверх
Fors1k
Цитата(FREEON @ 26.6.2019, 14:34)

Можно ли с помощью пилота расчертить сетку


Если сетка в paint'е устроит
код

Код
set workwindow 10489422
set linedelay 1
//
set #sx 1780        // размер листа Х
set #sy 760         // размер листа У
set #xh 24          // Шаг по Х
set #yh 10          // Шаг по У
init_arr %a (1) 5 5 // координаты первого пикселя
//
  set #x %a [1 1]
  set #y %a [1 1]
repeat (#sx / #xh)
    set #x (#x + #xh)
    kleft_down #x %a[1 1]
    wait 10
    move #x #sy
    wait 10
    kleft_up #x #sy
end_repeat
repeat (#sy / #yh)
    set #y (#y + #yh)
    kleft_down %a[1 1] #y
    wait 10
    move #sx #y
    wait 10
    kleft_up #sx #y
end_repeat
end_script


Вверх
Cockney
Цитата(cirus @ 26.6.2019, 14:49)

Сделать можно, но будет долго рисовать.




Но это же на пилотовском языке ? А луа ? Думаю не хуже будет, там же поиск работает быстрее чем встроенная функция.
Вверх
cirus
Цитата
можно ли выполнить поставленную задачу(расчертить сетку) на готовой пустой картинке?

Код
--lua
local ffi=require "ffi"
local cc=ffi.cast

local path_in=[[C:\1.bmp]]  -- путь к картинке
local path_out=[[C:\2.bmp]] -- путь куда сохранить картинку с сеткой
local setkaX, setkaY = 5, 5  -- размеры сетки
local setkaR, setkaG, setkaB = 255, 0, 255  -- цвет сетки в ргб

local address, width, height, length = loadimage(path_in)   -- загрузить картинку
if address > 0 then  -- если загружена
    for y=0, height-1  do
        for x=0, length-3, 3 do
            if  x % setkaX == 0 or y % setkaY == 0 then
                cc("unsigned char*", address + x + y * length)[0]=setkaB
                cc("unsigned char*", address + x + y * length+1)[0]=setkaG
                cc("unsigned char*", address + x + y * length+2)[0]=setkaR
            end
        end
    end
saveimage(address, path_out)    -- сохранить картинку
else log("Картинка не найдена")
end

Вверх
FREEON
Цитата(cirus @ 27.6.2019, 3:00)

Код
--lua
local ffi=require "ffi"
local cc=ffi.cast

local path_in=[[C:\1.bmp]]  -- путь к картинке
local path_out=[[C:\2.bmp]] -- путь куда сохранить картинку с сеткой
local setkaX, setkaY = 5, 5  -- размеры сетки
local setkaR, setkaG, setkaB = 255, 0, 255  -- цвет сетки в ргб

local address, width, height, length = loadimage(path_in)   -- загрузить картинку
if address > 0 then  -- если загружена
    for y=0, height-1  do
        for x=0, length-3, 3 do
            if  x % setkaX == 0 or y % setkaY == 0 then
                cc("unsigned char*", address + x + y * length)[0]=setkaB
                cc("unsigned char*", address + x + y * length+1)[0]=setkaG
                cc("unsigned char*", address + x + y * length+2)[0]=setkaR
            end
        end
    end
saveimage(address, path_out)    -- сохранить картинку
else log("Картинка не найдена")
end


Да благодарю отфотошопил. Похоже для луа нужен какой-то плагин(файл)?
Цитата

module 'ffi' not found:
no field package.preload['ffi']
no file '.\ffi.lua'
no file 'D:\UOPilot\lua\ffi.lua'
no file 'D:\UOPilot\lua\ffi\init.lua'
no file 'D:\UOPilot\ffi.lua'
no file 'D:\UOPilot\ff


Вверх
cirus
Цитата
Похоже для луа нужен какой-то плагин(файл)?

Пилот нужен 2.41.
Вверх
FREEON
Цитата(cirus @ 27.6.2019, 21:52)

Пилот нужен 2.41.

Да как бы: UoPilot Version 2.41 (31.12.2018) и lua5.1.dll имеется
Вверх
FREEON
Версии 2.41 оказалось мало. Немного покопавшись выяснилось что дело было в lua.dll а именно ffi которой просто нет, зато она есть в luajit.
Заменил стандартную пилотовскую библиотеку на версию из LuaJIT и все заработало (разница в 300KB).
Вверх
cirus
Цитата
Версии 2.41 оказалось мало.

Стандартной длл хватает. Она распаковывается при первом запуска пилота. Если конечно не было другой длл.
Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.