Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 20.05.2009, 02:33   #31
Новичок
 
Регистрация: 19.05.2009
Сообщений: 3
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
Ezhik пока неопределено
По умолчанию Использование классов

Драсте.
В гайде ФС:
Цитата:
Вы не можете объявить класс в скрипте, но вы можете использовать внешние классы, объявленные в вашем приложении или в дополнительных модулях.
Собстно вопрос: как из скрипта обратится к классу объявленному в ДЛЛ, или , что значит "можете использовать внешние классы"??

Добавлено через 53 минуты
или может так:
В длл есть возможность експортировать переменные, у меня эта переменная имеет тип класса объявленного в длл. Как из скрипта достучаться до этой переменной??

Последний раз редактировалось Ezhik, 20.05.2009 в 02:33. Причина: Добавлено сообщение
Ezhik вне форума   Ответить с цитированием
Старый 20.05.2009, 12:10   #32
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

никак. пх 2.5.х и ниже может експортировать из длл только процедуры/функции.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 20.05.2009, 12:38   #33
Рыцарь
 
Аватар для Grinch
 
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Grinch пока неопределено
По умолчанию

Цитата:
Сообщение от alexteam Посмотреть сообщение
пх 2.5.х и
че за версия? может 3.5.х
Grinch вне форума   Ответить с цитированием
Старый 20.05.2009, 12:58   #34
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

упс... опичаталси...
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 21.05.2009, 14:06   #35
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

ну я бы ещё уточнил что из длл не только в пакетхаке нельзя классы экспортировать, как правило их вообще нельзя экспортировать из длл
исключения составляют только длл на .НЕТ (но их можно юзать только из программ на .НЕТ) и пакеты дельфи (но они собсно тоже не обычные длл а очень специфические)

из дллок экспортируют только интерфейсы (это что то типа расширения классов)

ЗЫ кстати в 3.6.х версиях пакетхака вроде можно создавать свои классы в скриптах

ЗЫ а вообще под внешними классами имелись в виду базовые классы встроенные в программу типа TForm, TButton...
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 24.07.2009, 23:48   #36
Новичок
 
Регистрация: 24.07.2009
Сообщений: 4
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
Kennedy пока неопределено
По умолчанию

Мучался-мучался с попытками создать хотя бы один плагин под последний зарелизеный пакетхак, но ничего у меня не получилось, то не к той памяти обратится, то вообще вылетит и ничего не скажет, а потом решил посмотреть на Changelog к последней версии, и обнаружил там следующую весчь:
в onpacket функцию плагинов теперь передается имя соединения (TOnPacket = procedure(const cnt: Cardinal; const fromServer: Boolean; const connectionname:string; var packet : tpacket); stdcall

И соответсвенно у меня просьба=) где можно узнать, или у кого, обо всех таких изменениях?) ну и как минимум последний uSharedStructs бы вытянуть
Kennedy вне форума   Ответить с цитированием
Старый 24.07.2009, 23:51   #37
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Kennedy, на SVN посмотреть отличия версий.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Старый 24.07.2009, 23:52   #38
Новичок
 
Регистрация: 24.07.2009
Сообщений: 4
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
Kennedy пока неопределено
По умолчанию

Спасибо за столь быстрый ответ
Kennedy вне форума   Ответить с цитированием
Старый 25.07.2009, 04:04   #39
Новичок
 
Регистрация: 24.07.2009
Сообщений: 4
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
Kennedy пока неопределено
По умолчанию

Однако добиться исправной работы даже порезанного demo плагина у меня не получилось.Вот то что я сделал в итоге с исходником после нескольких часов его мучения:
delphi Код:
library plugin_demo; 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,12,      120   );   min_ver: Integer absolute min_ver_a;   ps: TPluginStruct;   pps: PPluginStruct;   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:='плаг'+sLineBreak+             'Для версий 3.5.12.120+'+sLineBreak+             'стар'   else     Result:='плаг'+sLineBreak+             'Для версий 3.5.12.120+'+sLineBreak+             'Автовыпивалка НР бутылок'; end; procedure Say(msg:string); stdcall; var   buf:String; begin   ps.WriteC(buf,$4A);   ps.WriteD(buf,0);   ps.WriteD(buf,2);   ps.WriteS(buf,'AutoHP');   ps.WriteS(buf,msg + ps.getConnectionName(cntHP));   ps.WriteH(buf,0);   ps.SendPacketStr(buf,cntHP,False); end; function SetStruct(const struct: PPluginStruct): Boolean; stdcall; begin   ps := TPluginStruct(struct^);   pps := struct;   Result:=True; end; procedure StatsUpdate; var  i: integer; begin  for i:=0 to ps.ReadDEx(ppck^,7)-1 do  case ppck^.data[i*8+8] of    $09: CurHP:=ps.ReadDEx(ppck^,i*8+15);    $0A: MaxHP:=ps.ReadDEx(ppck^,i*8+15);  end;  say('CurHP/MaxHP = '+inttostr(curhp)+'/'+inttostr(maxhp));  if (CurHP<=MaxHP-50) then TimerHP:=true else TimerHP:=false; end; procedure OnLoad; stdcall; begin   statusHP:=false;   CharObjID:=0;   ItemObjHP:=0;   TimerHP:=false;   lastHP:=0;   cntHP := -1; end; procedure OnPacket(const cnt: Cardinal; const fromServer: Boolean; const connectionname:string; var pck: Tpacket); stdcall; begin   if pck.size<3 then exit;   ppck:=@pck;   if not FromServer and(pck.pckId=$49)and(cntHP=-1)then   if(ps.ReadSEx(pck,3)='set')then begin     pck.pckSize:=0;     cntHP:=cnt;     Say('Выбрано это соединение.');     Say('Для...');   end; end; exports   GetPluginInfo,   OnPacket,   OnLoad,   SetStruct; begin end.

Плагин загружаю когда чара уже выбрали, дальше пишу set и в чат клиента пишется всего одна строчка "Выбрано это соединение" вместе с месседжем:
Application error. Exception EInvalidPointer in module plugin_demo.dll at xxx
Т.е. раз сообщение дошло то строчка в процедуре Say ps.SendPacketStr(buf,cntHP,False);
выполняется. И исключение срабатывает на выходе из этой процедуры.

Использую CodeGear Delphi 2007. Оригинальный плагин plugin_demo.pas из SVN.
Kennedy вне форума   Ответить с цитированием
Старый 25.07.2009, 12:39   #40
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

сломаны они, мне некогда переделывать взад. и остальным походу тоже.
юзаем рев 83.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг



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

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


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

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

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