Hi! im trying to work with plugins, but when i use the OnPacket procedure the application crashes
If i don use that procedure everyting goes ok.
Does anyone knows if this is a bug, or if im doing it wrong?
Here is the code:
delphi Код:
library plugin_demoC;
{$define RELEASE} // äëÿ ñîâìåñòèìîñòè ñ ðåëèçîì ïàêåòõàêà, ïðè äåáóãå ìîæíî çàêîìåíòèðîâàòü
uses
FastMM4 in '..\fastmm\FastMM4.pas',
FastMM4Messages in '..\fastmm\FastMM4Messages.pas',
SysUtils,
Windows,
dialogs,
Classes,
usharedstructs in '..\units\usharedstructs.pas';
var {version} {revision}
min_ver_a: array[0..3] of Byte = ( 3,5,1, 98 );
min_ver: Integer absolute min_ver_a; // ìèíèìàëüíàÿ ïîääåðæèâàåìàÿ âåðñèÿ ïðîãðàììû
ps: TPluginStruct;
ppck: PPacket;
const
pause=15000;
var
ColvoHP, CharObjID, ItemObjHP: integer;
CurHP, MaxHP, lastHP, cntHP:integer;
TimerHP: Boolean;
StatusHP: Boolean;
function GetPluginInfo(const ver: Integer): PChar; stdcall;
begin
if ver<min_ver then
Result:='Äåìîíñòðàöèîííûé Plugin ê ïðîãðàììå l2phx'+sLineBreak+
'Äëÿ âåðñèé 3.5.1.98+'+sLineBreak+
'Ó âàñ ñòàðàÿ âåðñèÿ ïðîãðàììû! Ïëàãèí íå ñìîæåò êîððåêòíî ñ íåé ðàáîòàòü!'
else
Result:='Äåìîíñòðàöèîííûé Plugin ê ïðîãðàììå l2phx'+sLineBreak+
'Äëÿ âåðñèé 3.5.1.98+'+sLineBreak+
'Àâòîâûïèâàëêà ÍÐ áóòûëîê';
end;
procedure Say(msg:string);
var
buf: string;
begin
with ps do begin
buf:=HexToString('4A 00 00 00 00');
WriteD(buf,2);
WriteS(buf,'AutoHP');
WriteS(buf,msg);
SendPacketStr(buf,cntHP,False);
end;
end;
function SetStruct(const struct: PPluginStruct): Boolean; stdcall;
begin
ps := TPluginStruct(struct^);
Result:=True;
end;
procedure OnLoad; stdcall;
begin
statusHP:=false;
CharObjID:=0;
ItemObjHP:=0;
TimerHP:=false;
lastHP:=0;
cntHP := 0;
with ps do
begin
if GoFirstConnection then
//repeat
cntHP := ConnectInfo.ConnectID;
Say(' Opa!');
//until GoNextConnection;
end;
end;
procedure OnPacket(const cnt: Cardinal; const fromServer: Boolean; var pck: Tpacket); stdcall;
var
buf,s: string;
begin
end;
exports
GetPluginInfo,
OnPacket,
OnLoad,
SetStruct;
begin
end.
Charly.