Немогу удержатся анонсирую
Сегодня после, после нескольких часов ломания головы реализована новая функция дает возможность взаимодействия между скриптами
что как я считаю переведет програмирование в l2phx на совершенно новый уровень
вот и новинка
delphi Код:
function CallSF(ScriptName:String;FunctionName:String;Params:arrayofvariant):variant;
принцип такой
1. есть скрипт "inventory" - стандартный обработчик инвенторя с ним уже все знакомы
расширяем скрипт inventory - чтобы он следил за инвентарем всех подключенных клиентов
далее есть функция
delphi Код:
// cID - надо передать ConectIDfunction GetInv(obj,up,down, cID:integer): integer; // up и down не проверяютсяvar
i: integer;
beginfor i:=0to ItemMaxCount doif(Inventory[cID, i,up]=obj)thenbegin
Result:=Inventory[cID, i,down];
exit;
end;
Result:=-1;
end;
скрипт Inventory - включен постоянно (вами, галочкой около названия)
2. мы создаем новый скрипт в котором хотели бы узнать сколько у нашего чара в количестве к примеру аден ItemID =57
и получаем из второго скрипта обращаемся к скрипту Inventory
3.3.9 от 23.09.2008
by wanick
[+] теперь включенный скрипт нельзя удалить;
[+] при удалении скрипта не вызывается процедура RefreshScripts (она полностью обновляет список скриптов при этом скидывает "галочки" остальных);
[+] процедура sendMSG(msg), для вывода сообщений в окно лога;
[+] новая функция CallSF, которая дает возможность взаимодействия между скриптами;
by NLObP
[+] заменил сообщения для вывода в окно лога на константы, спс. Argot;
[+] освобождаются хэндлы завершившихся потоков, спс. Argot;
[+] устранил несоответствие во всплывающих подсказках (Completion.Identifiers.Strings)
для вкладки "дополнительно" и "скрипты", спс wanick;
[+] устранил мелкие ошибки в коде;
NLObP, куча замечаний нашел
во вкладке скрипто удаленный скрипт не надо давать редактировать , и сохранять по новой просто пусть весить до обновления. - это я сам сделаю
во вкладке пакетов, при очистке списка сбрасывается состояние фильтров как я долго мучался пока настраивал потом очистил список пакетов и ппц , кстати надо потыкать может еще когда скидывает он.
const{The name of the debug info support L2phx}
StartLocalServer = 'На %d зарегистрирован локальный сервер';
FailedLocalServer = 'Неудалось зарегистрировать локальный сервер на порте %d'+ #13#10+ 'Возможно этот порт занят другим приложением';
CreateNewConnect = 'Создано новое соединение - %d';
ConnectBreak = 'Соединение %d разорвано';
procedure TL2PacketHackMain.Log(var msg: TMessage);
var
p : Pchar;
beginmove(Pointer(MSG.lParam)^,P,SizeOf(PChar));
ListBox3.Lines.Add(p);
end;
procedure sendMSG (msg: string);
var
LogMsg: pchar;
begin
LogMsg:=PChar(msg);
SendMessage(L2PacketHackMain.Handle, WM_ListBox3_Log, 0, integer(@LogMsg));
end;
если в сообщении нет чисел, то все нормально, как только есть, то fastmm4 сообщает о небольшой утеке памяти
типа такого:
Код:
This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer):
13 - 20 bytes: AnsiString x 2
21 - 36 bytes: AnsiString x 2
37 - 52 bytes: AnsiString x 1
53 - 68 bytes: AnsiString x 2
85 - 100 bytes: AnsiString x 1
И ещё. Правильно ли закрываю хэндл потока?
delphi Код:
CloseHandle(SLH);
Добавлено через 3 минуты
Цитата:
Сообщение от wanick
во вкладке пакетов, при очистке списка сбрасывается состояние фильтров как я долго мучался пока настраивал потом очистил список пакетов и ппц , кстати надо потыкать может еще когда скидывает он.
const{The name of the debug info support L2phx}
StartLocalServer = 'На %d зарегистрирован локальный сервер';
FailedLocalServer = 'Неудалось зарегистрировать локальный сервер на порте %d'+ #13#10+ 'Возможно этот порт занят другим приложением';
CreateNewConnect = 'Создано новое соединение - %d';
ConnectBreak = 'Соединение %d разорвано';
procedure TL2PacketHackMain.Log(var msg: TMessage);
var
p : Pchar;
beginmove(Pointer(MSG.lParam)^,P,SizeOf(PChar));
ListBox3.Lines.Add(p);
end;
procedure sendMSG (msg: string);
var
LogMsg: pchar;
begin
LogMsg:=PChar(msg);
SendMessage(L2PacketHackMain.Handle, WM_ListBox3_Log, 0, integer(@LogMsg));
end;
если в сообщении нет чисел, то все нормально, как только есть, то fastmm4 сообщает о небольшой утеке памяти
типа такого:
Код:
This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer):
13 - 20 bytes: AnsiString x 2
21 - 36 bytes: AnsiString x 2
37 - 52 bytes: AnsiString x 1
53 - 68 bytes: AnsiString x 2
85 - 100 bytes: AnsiString x 1
И ещё. Правильно ли закрываю хэндл потока?
delphi Код:
CloseHandle(SLH);
Добавлено через 3 минуты
Я не все перенес из твоих исходников?
я так делаю
Код:
procedure TL2PacketHackMain.WmFinished(var msg: TMessage);
var h1:integer;
begin
h1:=msg.WParam; // хендел отработаного потока
CloseHandle(h1);
end;