- Рег
- 14 Мар 2016
- Сообщения
- 166
- Реакции
- 0
Добрый день товарищи равровци =)
Давно я у вас не был , но увы пришла новая эра задрить в ла2 , и в се теже интерлюды.
Суть в том что созрел написать свой авто релогин , и появилась кучка проблем.
По данной теме , переписал под себя скриптик.
Первый вопрос , это engine.status<>lsonline в случае дисконекта бот этого не видит , как реализовать проверку на дисконект, без кастомных решений типа сделать шаг в право или в лево , или на проверку перемещения в координатах XYZ .
А реально толковую проверку , есть идея использовать чат, если в чат ничего не ушло , то по факту дискон , но это все тот-же костыль.
Вторая проблема уже после локализации дисконекта , стоит задача запускать окна по очередно Тобишь что-то из серии , thread.suspend и thread.resume , только глобально для всех у кого есть флаг дисконект. Или же написать глобальный поток который будет следить за состоянием каждого окна и если в друг что перезапускал его =)
И да я кажись понял как реализовать , надо напипсать поток который будет фором перебирать каждое окно , и в случае если обнаружен на окне дисконект то выполнять конфиг файл.
В помощь мне function "OnEntry(var Param)Функция, тело которой должно быть написанно в вашем коде. Для вызова с другого TL2Control, через Entry"
А здесь "ShMem: array[0..1000] of integer; Массив, который доступен из любого TL2Control (любого персонажа)" мы можем хранить состояние окон и просто потом серфить его и вызвать OnEntry()
Псевдо кода чутка .
Это пофакту управляющий поток будет .
//написал на питоне потому что так быстрей спать уже охота =)
discChars=dict()
if disconnected :
discChars[Engine.GetUser.name]=disconnected
for char in discChars:
if discChars[char] :
GetControl(cahr).Entry()
по факту осталось , только родить идею как установить наличие дисконекта.
И еще народ подскажите нормальную IDE с которой реально можно работать на делфи .
Тут можно думать и шагать далеко .
Давно я у вас не был , но увы пришла новая эра задрить в ла2 , и в се теже интерлюды.
Суть в том что созрел написать свой авто релогин , и появилась кучка проблем.
По данной теме , переписал под себя скриптик.
Первый вопрос , это engine.status<>lsonline в случае дисконекта бот этого не видит , как реализовать проверку на дисконект, без кастомных решений типа сделать шаг в право или в лево , или на проверку перемещения в координатах XYZ .
А реально толковую проверку , есть идея использовать чат, если в чат ничего не ушло , то по факту дискон , но это все тот-же костыль.
Вторая проблема уже после локализации дисконекта , стоит задача запускать окна по очередно Тобишь что-то из серии , thread.suspend и thread.resume , только глобально для всех у кого есть флаг дисконект. Или же написать глобальный поток который будет следить за состоянием каждого окна и если в друг что перезапускал его =)
И да я кажись понял как реализовать , надо напипсать поток который будет фором перебирать каждое окно , и в случае если обнаружен на окне дисконект то выполнять конфиг файл.
В помощь мне function "OnEntry(var Param)Функция, тело которой должно быть написанно в вашем коде. Для вызова с другого TL2Control, через Entry"
А здесь "ShMem: array[0..1000] of integer; Массив, который доступен из любого TL2Control (любого персонажа)" мы можем хранить состояние окон и просто потом серфить его и вызвать OnEntry()
Псевдо кода чутка .
Это пофакту управляющий поток будет .
//написал на питоне потому что так быстрей спать уже охота =)
discChars=dict()
if disconnected :
discChars[Engine.GetUser.name]=disconnected
for char in discChars:
if discChars[char] :
GetControl(cahr).Entry()
по факту осталось , только родить идею как установить наличие дисконекта.
И еще народ подскажите нормальную IDE с которой реально можно работать на делфи .
Тут можно думать и шагать далеко .