Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Разработка
Войти через OpenID

Разработка Раздел для совместной разработки/доработки программы

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
 
 
Опции темы Опции просмотра
Старый 07.10.2008, 01:01   #10
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

ревизия 39:
обновил возможности плагинов, теперь из плагина есть доступ к следующим встроенным в пакетхак фукнциям:
procedure SendPacket(Size: Word; pck: string; tid: Byte; ToServer: Boolean);
procedure SendPckStr(pck: string; const tid: Byte; const ToServer: Boolean);
procedure SendPckData(var pck; const tid: Byte; const ToServer: Boolean); stdcall;
function DataPckToStrPck(var pck): string; stdcall;

function ReadC(const pck: string; const index:integer):byte; stdcall;
function ReadH(const pck: string; const index:integer):word; stdcall;
function ReadD(const pck: string; const index:integer):integer; stdcall;
function ReadF(const pck: string; const index:integer):double; stdcall;
function ReadS(const pck: string; const index:integer):string; stdcall;
function ReadCEx(const pck; const index:integer):byte; stdcall;
function ReadHEx(const pck; const index:integer):word; stdcall;
function ReadDEx(const pck; const index:integer):integer; stdcall;
function ReadFEx(const pck; const index:integer):double; stdcall;
function ReadSEx(const pck; const index:integer):string; stdcall;
procedure WriteC(var pck: string; const v:byte; ind:integer=-1); stdcall;
procedure WriteH(var pck: string; const v:word; ind:integer=-1); stdcall;
procedure WriteD(var pck: string; const v:integer; ind:integer=-1); stdcall;
procedure WriteF(var pck: string; const v:double; ind:integer=-1); stdcall;
procedure WriteS(var pck: string; const v:string; ind:integer=-1); stdcall;
procedure WriteCEx(var pck; const v:byte; ind:integer=-1); stdcall;
procedure WriteHEx(var pck; const v:word; ind:integer=-1); stdcall;
procedure WriteDEx(var pck; const v:integer; ind:integer=-1); stdcall;
procedure WriteFEx(var pck; const v:double; ind:integer=-1); stdcall;
procedure WriteSEx(var pck; const v:string; ind:integer=-1); stdcall;

function HexToString(Hex:String):String;
function StringToHex(str1,Separator:String):String;

а так же в качестве демо-плагина теперь простенький автоюзатель НР бутылок

Добавлено через 42 минуты
RoZ, почитал я ту статью, действительно проблемы возникнуть могут, но не из за того что ты описал а если память освободиться между присвоением значения строке в длл и копированием строки в программе, а это на мой взгляд произойти практически не может...

вот не большое исследование в дебагере
выполняется в программе:
Код:
phxPlugins.pas.143: Info:=String(GetPluginInfo(version));
004928EF 6801000403       push $03040001               ;кладём в стек параметр version
004928F4 FF5618           call dword ptr [esi+$18]     ;вызываем GetPluginInfo
прыгаем в плагин:
Код:
plugin_demo.dpr.23: Result:='Демонстрационный Plugin к программе l2phx'+sLineBreak+
0141459F B830464101       mov eax,$01414630            ;записываем в результат ссылку на текст
plugin_demo.dpr.26: end;
014145A4 5D               pop ebp                      ;неважно
014145A5 C20400           ret $0004                    ;возврат в программу
возвращаемся в программу:
Код:
004928F7 8BD0             mov edx,eax                  ;переносим результат GetPluginInfo в другой регистр
004928F9 8D4608           lea eax,[esi+$08]            ;записываем в регистр eax адрес Info
004928FC E86B29F7FF       call @LStrFromPChar          ;преобразуем PChar из edx в String помещая его в Info
__________________
Я здесь практически не появляюсь!, Skype - ikskor

Последний раз редактировалось xkor, 07.10.2008 в 01:01. Причина: Добавлено сообщение
xkor вне форума   Ответить с цитированием
За это сообщение xkor нажился 3 спасибками от:
 

  CoderX :: Forums > Lineage II > L2PacketHack > Разработка



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 16:51.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!