Помощь - Поиск - Пользователи - Календарь
Полная версия: подскажите хело ворлд плагина делфи
UoKit.com Форумы > Кликер > UO Pilot > Плагины и доп. ПО
trico
всем привет. на 10ке некоторые нужные функции не работают типа get color. Хочу написать плагин на делфи для этой функции.
Дело полезное, но руки опускаются от непонимания взаимодействия пилот -> длл.
Прошу, дайте "хелло ворлд" проект пилот-плагин, чтобы в длл:
Код

function (a,b):integer
begin
result: a + b;
end;


а в пилоте

Код

#r = function(1,1)


Не посылайте на пример плагина, я не понимаю примитива как вызывать функци. из плагина и получать в нее ответ. дайте пожалуйста РАБОЧИЙ скелет длл + скрипт для понимания.
Cockney
Delphi
Код
 function sum(a : integer, b : integer) : integer; cdecl;
begin
   result = a + b;
end;


Pilot lua
Код


local ffi = require("ffi")
local lib = ffi.load("delphi_plugin.dll")

ffi.cdef[[
   __cdecl int sum(int a, int b);
]]

local calculated = lib.sum(3,3)

trico
Цитата(Cockney @ 31.10.2019, 23:05) *

Delphi
Код
 function sum(a : integer, b : integer) : integer; cdecl;
begin
   result = a + b;
end;


Pilot lua
Код


local ffi = require("ffi")
local lib = ffi.load("delphi_plugin.dll")

ffi.cdef[[
   __cdecl int sum(int a, int b);
]]

local calculated = lib.sum(3,3)




печалька... Не охота все скрипты на луа переписывать. легче не работающие функции через directX получить... тот же скриншот(реализовано) и цвет пикселя... только никак не добьюсь чтобы пилот увидел эти функции... ну попробую на луа, спасибо за ответ
trico
да, работает. спасибо. это уже обнадеживает, пошел читать про луа
Cockney
На луа как раз и можно на прямую обращаться к directx и системным функциям без написания промежуточной dll.


Тем не менее, вот выдержка из справки по работе с плагинами

'

добавил поддержку плагинов. загружаются из 'Plugins\*.dll' при старте пилота. имя файла не должно содержать точек и других нелегальных для пилота символов. список функций всех загруженых плагинов расположен в соответствующем подпункте меню, вызываемому кликом правой кнопки мыши в скрипте. имя функции формируется из имени файла плагина и собственно имени самой функции, разделенных точкой. параметры указываются в следующих за именем круглых скобках. плагин возвращает одну строку, длиной до 32кб. символ с кодом '#00' является концом строки. комбинация символов с кодами '#0d0a' или '\n' являются управляющими, для увеличения первой размерности массива (строк). символ с кодом '#09' является управляющим, для увеличения второй размерности массива (столбцов). т.е. возвращаемое плагином значение вида '1#092#093\n4#095#096', где '#09' означает символ с кодом 9, создаст массив 2х3 следующего содержания.
1 2 3
4 5 6
пример:
set $a myPlugin.function1 (много много параметров) // в строковой переменной $a будет всё что вернет плагин
set %a myPlugin.function1 (много много параметров) // возвращаемое плагином значение будет преобразовано в массив %a


Там что-то неоднократно менялось, и учитывая, что это пережиток прошлого, лучше использовать луа.
trico
и встретил грабли... дайте луа 5.2
Fors1k
Цитата(trico @ 31.10.2019, 23:09) *

всем привет. на 10ке некоторые нужные функции не работают типа get color.

А не будет ли проще поставить нормальную рабочую win10, так как у всех пилот работает без проблем, независимо от win7/8/10, что говорит об отсутствии проблем работоспособности пилота на какой-либо версии винды? И раз твоя сборка мешает работе пилота, то переустановка системы, вполне вероятно, сможет решить и иные проблемы.
trico
Цитата(Fors1k @ 1.11.2019, 13:39) *

А не будет ли проще поставить нормальную рабочую win10, так как у всех пилот работает без проблем, независимо от win7/8/10, что говорит об отсутствии проблем работоспособности пилота на какой-либо версии винды? И раз твоя сборка мешает работе пилота, то переустановка системы, вполне вероятно, сможет решить и иные проблемы.


ну так решайте, с пилотом. не обижайтесь. 1903 официальная винда, обновлена. установлена 2 месяца назад.
еще проблема может скрываться в конкретной игре, клиенте, защите. К примеру: раппелз спейс пиратка - скрин - квадрат малевича, getcolor 0 во всех чайлдах и парентах от основного хендла и от рамки; send_down и все другие варианты send'a не приводят ГГ в движение, только на панели нажимаются горячие кнопки.
Ни бубен, ни парад планет не помог, только делфи верный друг всегда работает.

а по теме - за помощь спасибо, плагин написан, скачать можно тут ->
DarkMaster
Цитата
и встретил грабли... дайте луа 5.2

А в чем грабли и зачем 5.1?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.