Показать сообщение отдельно
Старый 30.06.2014, 01:48   #1
Новичок
 
Регистрация: 18.05.2013
Сообщений: 13
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
VitaminPSG пока неопределено
Восклицание procedure OnPacket. pck возвращает nil

Начал писать скрипт. Хочу посмотреть пакеты которые мне приходят через дебаг.Скрин с дебага



Строчка 82 возвращает экзепшен.

Может кто-нибудь выложить рабочий пример Dll, со всеми юнитами к ней.
Код DLL
Код:
library La2DLL;

uses
  FastMM4 in '..\fastmm\FastMM4.pas',
  FastMM4Messages in '..\fastmm\FastMM4Messages.pas',
  Classes,
  Contnrs,
  System.SysUtils,
  Generics.Defaults,
  Generics.Collections,
  Windows,
  L2Class in 'L2Class.pas',
  usharedstructs in 'usharedstructs.pas' ;
//==============================================================================
//Константы
const
//Список ошибок
RESULT_OK = 0;
RESULT_SESSION_KEY_NOT_FOUND = 2;
RESULT_NPC_KEY_NOT_FOUND = 4;
RESULT_NPC_IS_CONTAIN = 8;
//==============================================================================
//Переменные
var
  min_ver_a: array[0..3] of Byte = ( 3,5,23,141);
  min_ver: LongWord absolute min_ver_a; // минимальная поддерживаемая версия программы
  ps: TPluginStruct; // структура передаваемая в плагин
  ppck: string;


// Обязательно вызываемая функция.
// Должна вернуть описание плагина,
// заодно может проверить версию программы
function GetPluginInfo(const ver: LongWord): PChar; stdcall;
begin
  if ver<min_ver then
    Result:='MyBotTest'+sLineBreak+
            'Old version'
  else
    Result:='MyBotTest';
end;
// Обязательно вызываемая функция.
// Получает структуру с ссылками на все функции основной программы,
// которые могут вызываться из плагина.
// Если вернёт False то плагин выгружается.
function SetStruct(const struct: PPluginStruct): Boolean; stdcall;
begin
  ps := struct^;
  Result:=True;
end;
//**************************************************************************************
// Необязательно вызываемая функция. (может отсутствовать в плагине)
// Вызывается при выгрузке плагине
procedure OnFree; stdcall;
begin
end;

// Необязательно вызываемая функция. (может отсутствовать в плагине)
// Вызывается при загрузке плагине
procedure OnLoad; stdcall;
begin

end;



procedure Say(msg:string; cnt : Integer );
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,cnt,False);
  end;
end;
procedure OnPacket(const cnt: Cardinal; const fromServer: Boolean; var pck: TPacket); stdcall;
var id : byte;
begin
if pck.Size < 3 then exit;

end;

//Export function
exports
  GetPluginInfo,
  SetStruct,
  OnFree,
  OnLoad,
  OnPacket;
//Enter Point
begin
//ssionList:= TDictionary<Integer, TSession>.Create;
end.
Ещё заметил что в описании DLL в L2ph, только первая буква
VitaminPSG вне форума   Ответить с цитированием