Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Реконект

тут можно задать вопрос по скриптингу
Diadora
Neophyte
Neophyte
Posts: 20
Joined: 13.12.2015 19:42

Реконект

Post by Diadora »

Всем доброго времени суток, я здесь новичок. Рылся в интернете и нашел Ваш замечательный форум.
Возможно не там размещаю тему, простите заранее. Вообщем, нужна помощь, вернее небольшой скрипт. Нужно всего-навсего от этого скрипта следующее:

Проверка, сколько времени персонаж стоит на одном месте afk (если, к пр. больше 5 минут - делать disconnect).

Зачем это нужно? Этот скрипт нужен отдельно от основного, уже готового, запущенного.
В программе стелс существует есть одна проблемка (возможно это только на том шарде, где я играю) которая частенько очень мешает, это когда персонаж двигается к определенной точке координат и если во время движения на него кинуть паралайз - макрос зависает, пока его не перезапустят, либо-же, пока персонаж не переподключится к серверу. Как-то так.

Помогите пожалуйста.
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Реконект

Post by drabadan »

Diadora wrote:Всем доброго времени суток, я здесь новичок. Рылся в интернете и нашел Ваш замечательный форум.
Возможно не там размещаю тему, простите заранее. Вообщем, нужна помощь, вернее небольшой скрипт. Нужно всего-навсего от этого скрипта следующее:

Проверка, сколько времени персонаж стоит на одном месте afk (если, к пр. больше 5 минут - делать disconnect).

Зачем это нужно? Этот скрипт нужен отдельно от основного, уже готового, запущенного.
В программе стелс существует есть одна проблемка (возможно это только на том шарде, где я играю) которая частенько очень мешает, это когда персонаж двигается к определенной точке координат и если во время движения на него кинуть паралайз - макрос зависает, пока его не перезапустят, либо-же, пока персонаж не переподключится к серверу. Как-то так.

Помогите пожалуйста.
а если в основном макросе создать ивент в баф\дебаф системе на парализ. При вызове которого будет срабатывать стрелка в себя или сундук открывать затрапаный?
Запускать больше 1 макроса - проблемы в архитектуре макроса.
Diadora
Neophyte
Neophyte
Posts: 20
Joined: 13.12.2015 19:42

Re: Реконект

Post by Diadora »

drabadan wrote: а если в основном макросе создать ивент в баф\дебаф системе на парализ. При вызове которого будет срабатывать стрелка в себя или сундук открывать затрапаный?
Запускать больше 1 макроса - проблемы в архитектуре макроса.
Я в этом не силён.. :( Да и сомневаюсь что будет работать как надо, а вот если сделать реконнект, именно по состоянию простоя персонажа на одной точке, выше указанного времени, точно решило бы проблему.
Помогите пожалуйста, мне не хватает знаний :(
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Реконект

Post by drabadan »

Diadora wrote:
drabadan wrote: а если в основном макросе создать ивент в баф\дебаф системе на парализ. При вызове которого будет срабатывать стрелка в себя или сундук открывать затрапаный?
Запускать больше 1 макроса - проблемы в архитектуре макроса.
Я в этом не силён.. :( Да и сомневаюсь что будет работать как надо, а вот если сделать реконнект, именно по состоянию простоя персонажа на одной точке, выше указанного времени, точно решило бы проблему.
Помогите пожалуйста, мне не хватает знаний :(
if paralyzed then disconnect;

а в окне включи реконнект
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Реконект

Post by Vizit0r »

в версиях до 5 никаких бафов нет. и статуса паралайза тоже нет.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Diadora
Neophyte
Neophyte
Posts: 20
Joined: 13.12.2015 19:42

Re: Реконект

Post by Diadora »

drabadan wrote: if paralyzed then disconnect;

а в окне включи реконнект
Не пойдет, надо именно при простое персонажа..
У меня есть готовая прописанная процедура, проверка( уже вписанная в основной скрипт). Перед тем как он(персонаж) начнет передвигаться к указанной координате, если на него был брошен паралайз, то он начинает выполнять предыдущее действие до тех пор, пока паралайз не спадет. Работает и выручает это очень часто, но увы, не всегда. Потому мне и нужен скрипт данный скрипт.
Вот та самая процедура:

Code: Select all

procedure CheckFrozen;
begin       
ClearJournal;
ClickOnObject(self);
if InJournal('You see: Serega [frozen]') <> -1 then
repeat
wait(3000);
until InJournal('System: You are no longer frozen') <> -1;
end;
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Реконект

Post by Vizit0r »

Diadora wrote:Всем доброго времени суток, я здесь новичок. Рылся в интернете и нашел Ваш замечательный форум.
Возможно не там размещаю тему, простите заранее. Вообщем, нужна помощь, вернее небольшой скрипт. Нужно всего-навсего от этого скрипта следующее:

Проверка, сколько времени персонаж стоит на одном месте afk (если, к пр. больше 5 минут - делать disconnect).
stime : TDateTime;
currX, currY : Word;



stime := Now;
currX := GetX(Self); currY := GetY(Self);
repeat
wait(9000);
if (currX <> GetX(Self)) or (currY <> GetY(Self)) then
Break;
// UseObject(backpack); - чтобы не дисконнектнуло по неактивности
until Now > stime + (5.0/1440);
if (currX = GetX(Self)) or (currY = GetY(Self)) then
Disconnect;

писал в браузере, возможны ошибки.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Diadora
Neophyte
Neophyte
Posts: 20
Joined: 13.12.2015 19:42

Re: Реконект

Post by Diadora »

Vizit0r wrote: stime : TDateTime;
currX, currY : Word;



stime := Now;
currX := GetX(Self); currY := GetY(Self);
repeat
wait(9000);
if (currX <> GetX(Self)) or (currY <> GetY(Self)) then
Break;
// UseObject(backpack); - чтобы не дисконнектнуло по неактивности
until Now > stime + (5.0/1440);
if (currX = GetX(Self)) or (currY = GetY(Self)) then
Disconnect;

писал в браузере, возможны ошибки.
Опа, авансом благодарствую! *ушел тестить*

И сразу вопрос: а постоянное использование(открытия бэкпака)

Code: Select all

"UseObject(backpack);"
не будет нарушать действия основного скрипта?

Может можно вписать вместо этого, что-то типо безобидной фразы

Code: Select all

UOSay('...');
?
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Реконект

Post by Vizit0r »

не будет.

а так-то можно всё. Может у тебя вообще по неактивности не дисконнектит, откуда я знаю.
Но выдавать сообщение каждые пару секунд - не есть здорово.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Diadora
Neophyte
Neophyte
Posts: 20
Joined: 13.12.2015 19:42

Re: Реконект

Post by Diadora »

Vizit0r wrote:не будет.

а так-то можно всё. Может у тебя вообще по неактивности не дисконнектит, откуда я знаю.
Но выдавать сообщение каждые пару секунд - не есть здорово.
Понял. Еще один вопросик.. А какое время указано в скрипте? :lol: Я уже несколько минут смотрю и не могу въехать :? :lol:

тут понятно:

Code: Select all

wait(9000);
а тут, для меня, тёмный лес 8)

Code: Select all

(5.0/1440);
Просто если я захочу его изменить, то я себе пальцы сломаю 8)
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Реконект

Post by Vizit0r »

5 минут
9 секунд
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Diadora
Neophyte
Neophyte
Posts: 20
Joined: 13.12.2015 19:42

Re: Реконект

Post by Diadora »

Столкнулся еще с такой проблемкой.. Слепил скрипт, но видимо где-то неправильно и после дисконнекта скрипт останавливается...

Code: Select all

var
stime : TDateTime;
currX, currY : Word;


begin
stime := Now;
currX := GetX(Self); currY := GetY(Self);	
repeat
wait(9000);
if (currX <> GetX(Self)) or (currY <> GetY(Self)) then
Break;
	UseObject(backpack);
until Now > stime + (5.0/1440);
if (currX = GetX(Self)) or (currY = GetY(Self)) then
Disconnect;
addtosystemjournal('reconnect');
end.
Diadora
Neophyte
Neophyte
Posts: 20
Joined: 13.12.2015 19:42

Re: Реконект

Post by Diadora »

Vizit0r wrote:5 минут
9 секунд
Понял, благодарю
Diadora
Neophyte
Neophyte
Posts: 20
Joined: 13.12.2015 19:42

Re: Реконект

Post by Diadora »

Code: Select all

var
stime : TDateTime;
currX, currY : Word;
Begin
while true do
begin
stime := Now;
currX := GetX(Self); currY := GetY(Self);	
repeat
wait(9000);
if (currX <> GetX(Self)) or (currY <> GetY(Self)) then
Break;
	UseObject(backpack);
until Now > stime + (5.0/1440);
if (currX = GetX(Self)) or (currY = GetY(Self)) then
Disconnect;
end;
end.
Сделал вот так, теперь дисконнектит и макрос не выключается.. Но.. Видимо где-то все-равно не правильно расставил, потому как не правильно идет проверка, и я так понял, что макрос проверяет не 5-ти минутное стояние, а 9-ти секундное.. Дисконнектит менее чем через минуту..
Diadora
Neophyte
Neophyte
Posts: 20
Joined: 13.12.2015 19:42

Re: Реконект

Post by Diadora »

Сделал еще такой вариант

Code: Select all

var
stime : TDateTime;
currX, currY : Word;
Begin
while true do
begin
stime := Now;
currX := GetX(Self); currY := GetY(Self);	
repeat
wait(9000);
if (currX <> GetX(Self)) or (currY <> GetY(Self)) then
Break;

	UseObject(backpack);
until Now > stime + (5.0/1440);
while true do
   begin
if (currX = GetX(Self)) or (currY = GetY(Self)) then
Disconnect;
addtosystemjournal('reconnect');
end;
end;
end.
Дисконектит один раз через 5 минут, а потом тупо дисконнект за дисконнектом, каждую секунду..
Post Reply