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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 01.07.2014, 16:49   #1
Новичок
 
Регистрация: 18.05.2013
Сообщений: 13
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
VitaminPSG пока неопределено
Лампочка DLL бот и потоки

Собственно приступил к написанию самого контроллера бота. Т.к. в боте используются таймеры, можно ли использовать потоки? Для каждого соединения я создаю класс Session
Код:
type Session = class(TThread)
public
//Поля описывающее персонажа
{TUser - поле пользователя}
      user : TUser;
{TSkillList - поле(список) скиллов}
      skillList : TSkillList;
{TInventoryItemList - поле(список) вещей в инвентаре}
      itemList : TInventoryItemList;
{TBuffList - поле(список) бафов, дебафов}
       buffList : TBuffList;
{TInventoryItemList - поле(список) вещей в инвентаре}
       inventoryItemList : TInventoryItemList;


//Поля описывающее информацию рядом с персонажем
{TNpcList - поле(список) мобов}
      npcList : TNpcList;
{TPlayerList - поле(список) игроков}
      playerList : TPlayerList;
{TDropItemList - поле(список) вещей на полу}
      dropItemList : TDropItemList;

//Методы
 constructor Create(_id : Cardinal);
function getID(): Cardinal;

private
  id : Cardinal;
end;
В главном юните я объявляю
Код:
 var sessions : TObjectList<Session>
Далее в OnPacket я проверяю создана ли такая сессия, если нет создаю с текущем cnt. И вызываю метод
Код:
procedure OnPacket(const cnt: Cardinal; const fromServer: Boolean; const connectionname:string; var pck: string); stdcall;
var curSession : Session;
begin
 //Анализирую пакет если пришел пакет, который необходимо обработать
// получаю действие по этому пакету, ищу сессию для данного соединения
if(isAction) then
 if(getSessionById(cnt) = -1) then
  curSession:=Session.Create(cnt);
  sessions.add(curSession); 
 end;
curSession.Action(поля);
end;
end.
Вопрос допускаться ли использование потоков в DLL? Возможна ли отправка пакетов из потока?
И вопрос по Delphi если я объявляю локальную переменную, создаю её и передаю в глобальный список. Туда передастся ссылка или переменная?
VitaminPSG вне форума   Ответить с цитированием
Старый 01.07.2014, 19:38   #2
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

VitaminPSG, сама переменная всегда копируется, кстати создать переменную нельзя, если ты имел ввиду создать инстанс класса - тогда в переменную запишется ссылка на инстанс и при передаче такой переменной передастся ссылка
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился спасибкой от:
Старый 02.07.2014, 05:46   #3
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

увидел название темы и пришла в голову мысль как действительно реализовать потоки в л2пх - запустить три л2пх, и настроить их как прокси серверы с разными портами и направить друг на друга. и в каждом свой скрипт. конечно у них не будет глобальных переменных, но зато можно будет 3 скрипта к примеру выполнять одновременно, а не пошагово друг за другом
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 02.07.2014, 15:02   #4
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

SeregaZ, по-моему таки проще написать свою пх заглянув в сорцы текущей
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
Старый 03.07.2014, 05:49   #5
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

так я не бум бум... был бы пх на PureBasic написан - то другой разговор, но вот всякие дельфи не знаю
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 06.07.2014, 16:22   #6
Новичок
 
Регистрация: 05.05.2010
Сообщений: 2
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Aminf пока неопределено
По умолчанию

http://msdn.microsoft.com/ru-ru/libr...(v=vs.85).aspx
http://msdn.microsoft.com/ru-ru/libr...(v=vs.85).aspx
Aminf вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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