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

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

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

Если имеются люди способные помочь разобраться с l2phx, то буду дико благодарен. Только начал разбираться, но что то пока без успехов , много чего не понимаю + пакеты непонятные ловит. Вобщем жду добрых людей в лс)
diman2909 вне форума   Ответить с цитированием
Старый 10.07.2015, 21:55   #2
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

непонятные пакеты встречаются в двух случаях: на сервере стоит дополнительная шифрация, а второй - не верно выбрана версия игры в настройках программы.
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 15.07.2015, 02:23   #3
Пользователь
 
Регистрация: 11.02.2009
Сообщений: 95
Сказал Спасибо: 36
Имеет 6 спасибок в 6 сообщенях
xixi пока неопределено
По умолчанию

Цитата:
Сообщение от SeregaZ Посмотреть сообщение
непонятные пакеты встречаются в двух случаях: на сервере стоит дополнительная шифрация, а второй - не верно выбрана версия игры в настройках программы.
Или пакет тупо не разобран, как например пакет типа FEDA
xixi вне форума   Ответить с цитированием
Старый 06.09.2015, 03:24   #4
Новичок
 
Регистрация: 18.05.2013
Сообщений: 13
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
VitaminPSG пока неопределено
По умолчанию

1. Где взять класс siComp. (После установки TsiLang, нигде не нашел файла с классом)
2. Как правильно подключить TRichView?
3. LSPControl,RVScroll, RVEdit,RVStyle, LSPStructures, ecPopupCtrl относятся к TRichView?
4. Как правильно подключить jwapi2.2a

Использую Rad XE5.
VitaminPSG вне форума   Ответить с цитированием
Старый 06.09.2015, 22:46   #5
Местный
 
Аватар для Elecktron
 
Регистрация: 27.10.2011
Адрес: Харьков
Сообщений: 106
Сказал Спасибо: 24
Имеет 11 спасибок в 7 сообщенях
Elecktron пока неопределено
По умолчанию

Цитата:
Сообщение от VitaminPSG Посмотреть сообщение
Использую Rad XE5.
не используй.

в первом посте ясно сказано - "Delphi 2007 и Delphi 7"
__________________
C++Builder 6, Delphi 7, RAD Studio XE2, MS VC++...
Elecktron вне форума   Ответить с цитированием
Старый 07.09.2015, 17:44   #6
Новичок
 
Регистрация: 18.05.2013
Сообщений: 13
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
VitaminPSG пока неопределено
По умолчанию

# Откатился до Delphi 7.
Указал пути к units. Не могу понять как работает линковщик. При сборке uData, ругается на Editor (не найдено определение класса). Хотя он описан в uScriptEditor. В настройках указал путь на units l2ph. Но он по прежнему отказывается компилить.

Последний раз редактировалось VitaminPSG, 08.09.2015 в 11:54.
VitaminPSG вне форума   Ответить с цитированием
Старый 10.09.2015, 20:06   #7
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от VitaminPSG Посмотреть сообщение
# Откатился до Delphi 7.
Указал пути к units. Не могу понять как работает линковщик. При сборке uData, ругается на Editor (не найдено определение класса). Хотя он описан в uScriptEditor. В настройках указал путь на units l2ph. Но он по прежнему отказывается компилить.
Вот я мануал писал:
Мануал по установке компонентов для компиляции пакетхака
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 10.09.2015, 21:11   #8
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

о! я предлагаю сделать образ для виртуальной машины, со всем установленным чем надо ))
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 12.09.2015, 12:43   #9
Местный
 
Аватар для Elecktron
 
Регистрация: 27.10.2011
Адрес: Харьков
Сообщений: 106
Сказал Спасибо: 24
Имеет 11 спасибок в 7 сообщенях
Elecktron пока неопределено
По умолчанию

хорошая мысль )))
__________________
C++Builder 6, Delphi 7, RAD Studio XE2, MS VC++...
Elecktron вне форума   Ответить с цитированием
Старый 15.09.2015, 00:15   #10
Новичок
 
Регистрация: 18.05.2013
Сообщений: 13
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
VitaminPSG пока неопределено
Лампочка

Вопрос как правильно передать параметры в функцию вызванную из dll написанной на с++.

1. В uPluginData.pas создал структуры методов
Код:
TSendPacketStr = procedure (pck: string; const tid: integer; const ToServer: Boolean);stdcall;
  TGetConnectionName = function(id : integer):string;stdcall;
  TGetConnectioIdByName = function(name : string):integer;stdcall;
  PSendPacketStr = ^TSendPacketStr;
  PGetConnectionName = ^TGetConnectionName;
  PGetConnectioIdByName = ^TGetConnectioIdByName;


  //  PSendPacketStr = TSendPacketStr;
  TCFunctionStruct = record
  pSendPacketStr: PSendPacketStr;
  pGetConnectionName: PGetConnectionName;
  pGetConnectioIdByName: PGetConnectioIdByName;
  end;
  
  PCFunctionStruct = ^TCFunctionStruct;
2. Описал функцию DLL в которую буду передавать указатель на структуру функций.
Код:
TSetCFStruct = function(const struct: PCFunctionStruct): Boolean; stdcall;
3. Создал переменную в которую буду записывать адрес на функцию DLL
Код:
SetCFStruct: TSetCFStruct;
4. При загрузке DLL. Нахожу адрес и записываю в переменную. А также передаю указатель на функцию.

Код:
 @SetCFStruct:=GetProcAddress(hLib, 'SetFunctionStruct');
  if(Assigned(SetCFStruct)) then
  begin
      ScriptStruct.pSendPacketStr:=@TPluginStructClass.SendPacketStr;
      ScriptStruct.pGetConnectionName:=@TPluginStructClass.getConnectionName;
      ScriptStruct.pGetConnectioIdByName:=@TPluginStructClass.getConnectioidByName;
      SetCFStruct(@ScriptStruct);
  end;
5. Описываю структуру функций из Delphi и функцию в которой буду передавать указатель.
Код:
// Структура скриптов
struct ScriptStruct
{
	void(*sendPacketStr)(unsigned char* pck, const int tid, bool toServer);
	char*(*getConnectionName)(int);
	int(*getConnectioIdByName)(char* name);

};

/// Функция передачи указателя на ScriptStruct
DLL_API bool SetFunctionStruct(ScriptStruct * scriptStruct);
6. Далее в сpp пишу описание функци
Код:
// Вызывается при включении плагина
DLL_API bool SetFunctionStruct(ScriptStruct * scriptStruct)
{
	OutputDebugStringA("SetFunctionStruct\n");
	_scriptStruct->getConnectionName(123); // <- Здесь я пытаюсь вызвать функцию из Delphi
	return true;
}
7. Запускаю проект L2Ph через дебагер, подключаю плагин.
Мы приходим в точку останова функции
Код:
function TPluginStructClass.getConnectionName(id: integer): string; stdcall;
begin
  result := dmData.ConnectNameById(id); /// <- вызывается 
end;
После чего просиходит креш
VitaminPSG вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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