Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7
Реконект
Re: Реконект
currX := GetX(Self); currY := GetY(Self);
repeat
строки поменять местами, чтобы установка переменных была в цикле.
repeat
строки поменять местами, чтобы установка переменных была в цикле.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Re: Реконект
Благодарю! *ушел тестить*Vizit0r wrote:currX := GetX(Self); currY := GetY(Self);
repeat
строки поменять местами, чтобы установка переменных была в цикле.
Re: Реконект
После запуска, уже измененного, скрипта персонажа продолжает отключать и подключать обратно к серверу.Diadora wrote:Благодарю! *ушел тестить*Vizit0r wrote:currX := GetX(Self); currY := GetY(Self);
repeat
строки поменять местами, чтобы установка переменных была в цикле.
Если запущен только этот скрипт и персонаж просто стоит на месте, то реконнект происходит как положено - через 5 минут, однако... макрос продолжает постоянно реконнектить.. вот лог:
Code: Select all
12:31:41:176 [needmore]: Compiling
12:31:41:188 [needmore]: Compiled succesfully
12:36:47:219 [needmore]: Character Alisa Disconnected.
12:36:51:828 [needmore]: Character Alisa Connected.
12:36:51:832 [needmore]: reconnect
12:36:51:835 [needmore]: Character Alisa Disconnected.
12:36:56:426 [needmore]: Character Alisa Connected.
12:36:56:433 [needmore]: reconnect
12:36:56:434 [needmore]: Character Alisa Disconnected.
12:37:01:105 [needmore]: Character Alisa Connected.
12:37:01:109 [needmore]: reconnect
12:37:01:110 [needmore]: Character Alisa Disconnected.
12:37:05:670 [needmore]: Character Alisa Connected.
12:37:05:674 [needmore]: reconnect
12:37:05:676 [needmore]: Character Alisa Disconnected.
12:37:10:338 [needmore]: Character Alisa Connected.
12:37:10:344 [needmore]: reconnect
12:37:10:345 [needmore]: Character Alisa Disconnected.
12:37:14:929 [needmore]: Character Alisa Connected.
12:37:14:935 [needmore]: reconnect
12:37:14:936 [needmore]: Character Alisa Disconnected.
12:37:19:607 [needmore]: Character Alisa Connected.
12:37:19:612 [needmore]: reconnect
12:37:19:614 [needmore]: Character Alisa Disconnected.
12:37:24:200 [needmore]: Character Alisa Connected.
12:37:24:206 [needmore]: reconnect
12:37:24:207 [needmore]: Character Alisa Disconnected.
12:37:28:835 [needmore]: Character Alisa Connected.
12:37:28:840 [needmore]: reconnect
12:37:28:844 [needmore]: Character Alisa Disconnected.
12:37:33:456 [needmore]: Character Alisa Connected.
12:37:33:463 [needmore]: reconnect
12:37:33:464 [needmore]: Character Alisa Disconnected.
12:37:38:076 [needmore]: Character Alisa Connected.
12:37:38:082 [needmore]: reconnect
12:37:38:083 [needmore]: Character Alisa Disconnected.
12:37:42:618 [needmore]: Character Alisa Connected.
12:37:42:624 [needmore]: reconnect
12:37:42:626 [needmore]: Character Alisa Disconnected.
12:37:47:184 [needmore]: Character Alisa Connected.
12:37:47:190 [needmore]: reconnect
12:37:47:192 [needmore]: Character Alisa Disconnected.
12:37:51:765 [needmore]: Character Alisa Connected.
12:37:51:773 [needmore]: reconnect
12:37:51:777 [needmore]: Character Alisa Disconnected.
12:37:54:628 [needmore]: Succesfully executed
12:37:54:634 [needmore]: Script recNEW.sc stopped successfuly
12:37:56:391 [needmore]: Character Alisa Connected.
Code: Select all
var
stime : TDateTime;
currX, currY : Word;
Begin
while true do
begin
stime := Now;
repeat
currX := GetX(Self); currY := GetY(Self);
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.
Re: Реконект
А вот еще что заметил.. Если запустить этот скрипт на реконнект и параллельно запустить мой основной, в котором персонаж бегает, добывает ресурсы и т.п., то происходит примерно следующее: после запуска основного, когда персонаж не стоит на месте, а передвигается, то скрипт на реконнект делает отключение в течении первых 9-ти секунд.
Вот лог:
Вот лог:
Code: Select all
..
12:43:42:781 [needmore]: reconnect
12:43:42:785 [needmore]: reconnect
12:43:42:789 [needmore]: reconnect
12:43:42:792 [needmore]: reconnect
12:43:42:796 [needmore]: reconnect
12:43:42:831 [needmore]: reconnect
12:43:42:835 [needmore]: reconnect
12:43:42:841 [needmore]: Character Alisa Disconnected.
12:43:47:527 [needmore]: Character Alisa Connected.
12:43:47:538 [needmore]: reconnect
12:43:47:548 [needmore]: Character Alisa Disconnected.
12:43:49:618 [needmore]: Succesfully executed
12:43:49:621 [needmore]: Script recNEW.sc stopped successfuly
12:43:49:777 [needmore]: Succesfully executed
12:43:49:782 [needmore]: Script alisa serp.sc stopped successfuly
12:43:52:155 [needmore]: Character Alisa Connected.
Re: Реконект
Попробуй, может будет работать, но писал на работе и не тестил...
Code: Select all
Program CheckStop;
const
_WAITTIME_MINS = 1;
type
TPosition = record
X : Word;
Y : Word;
end;
function SetPosition(X, Y : Integer) : TPosition;
begin
Result.X := X;
Result.Y := Y;
end;
var
OldPosition : TPosition;
G_Index : Integer;
procedure CheckStop;
var
CurrentPosition : TPosition;
begin
//AddToSystemJournal('reconnect' + IntToStr(G_Index));
CurrentPosition := SetPosition(GetX(Self), GetY(Self));
if (OldPosition = CurrentPosition) then begin
G_Index := G_Index + 1;
//AddToSystemJournal(IntToStr(OldPosition.X) + ' ' + IntToStr(OldPosition.Y));
end;
if (G_Index > (_WAITTIME_MINS * 600)) then begin
G_Index := 0;
Disconnect;
AddToSystemJournal('reconnect');
end;
end;
begin
SetEventProc(evTimer1, 'CheckStop');
while (true) do Wait(100);
end.
Re: Реконект
Огромное спасибо за потраченное время!drabadan wrote:Попробуй, может будет работать, но писал на работе и не тестил...
Code: Select all
Program CheckStop; const _WAITTIME_MINS = 1; type TPosition = record X : Word; Y : Word; end; function SetPosition(X, Y : Integer) : TPosition; begin Result.X := X; Result.Y := Y; end; var OldPosition : TPosition; G_Index : Integer; procedure CheckStop; var CurrentPosition : TPosition; begin //AddToSystemJournal('reconnect' + IntToStr(G_Index)); CurrentPosition := SetPosition(GetX(Self), GetY(Self)); if (OldPosition = CurrentPosition) then begin G_Index := G_Index + 1; //AddToSystemJournal(IntToStr(OldPosition.X) + ' ' + IntToStr(OldPosition.Y)); end; if (G_Index > (_WAITTIME_MINS * 600)) then begin G_Index := 0; Disconnect; AddToSystemJournal('reconnect'); end; end; begin SetEventProc(evTimer1, 'CheckStop'); while (true) do Wait(100); end.
*ушел тестить"
Re: Реконект
Чет не совсем понял сколько минут должно пройти до следующей проверки и дисконнекта. По идеи 6 минут.drabadan wrote:Попробуй, может будет работать, но писал на работе и не тестил...
Я запустил этот скрипт, персонаж при этом просто стоит на месте. Прошло уже больше 12 минут - никакой реакции. Может там не 6 минут, а больше?
Code: Select all
_WAITTIME_MINS = 1;
....
(_WAITTIME_MINS * 600)
Re: Реконект
Не работает дисконнект на этом скрипте Я даже, интереса ради, изменил:
Вот лог спустя некоторое время:
Больше 10 минут никакой реакции. Персонаж при этом стоял на одном месте.
Code: Select all
(_WAITTIME_MINS * 6)
Вот лог спустя некоторое время:
Code: Select all
17:41:02:030 [needmore]: Compiling
17:41:02:043 [needmore]: Compiled succesfully
17:54:07:911 [needmore]: Succesfully executed
17:54:07:912 [needmore]: Script CHECK STOP.sc stopped successfuly
Re: Реконект
Щас отремонтируемDiadora wrote:Не работает дисконнект на этом скрипте Я даже, интереса ради, изменил:
Code: Select all
(_WAITTIME_MINS * 6)
Вот лог спустя некоторое время:
Больше 10 минут никакой реакции. Персонаж при этом стоял на одном месте.Code: Select all
17:41:02:030 [needmore]: Compiling 17:41:02:043 [needmore]: Compiled succesfully 17:54:07:911 [needmore]: Succesfully executed 17:54:07:912 [needmore]: Script CHECK STOP.sc stopped successfuly
Re: Реконект
Буду ждатьdrabadan wrote: Щас отремонтируем
Re: Реконект
Diadora wrote:Буду ждатьdrabadan wrote: Щас отремонтируем
Code: Select all
Program CheckStop;
const
_WAITTIME_MINS = 1;
type
TPosition = record
X : Word;
Y : Word;
end;
function SetPosition(X, Y : Integer) : TPosition;
begin
Result.X := X;
Result.Y := Y;
end;
var
OldPosition, CurrentPosition : TPosition;
G_Index : Integer;
begin
CurrentPosition := SetPosition(GetX(Self), GetY(Self));
while not Dead do begin
if (OldPosition = CurrentPosition) then begin
G_Index := G_Index + 1;
if (G_Index > _WAITTIME_MINS * 60) then begin
G_Index := 0;
Disconnect;
AddToSystemJournal('Disconnect.');
end;
end;
OldPosition := SetPosition(GetX(Self), GetY(Self));
Wait(1000);
end;
end.
Re: Реконект
Ну чо там как оно, работает не?
Re: Реконект
не было возможности затестить, вот только пришел с работы, сейчас буду пробоватьdrabadan wrote:Ну чо там как оно, работает не?
p.s.: огромное спасибо за старание!
Re: Реконект
Хм, вроде все как надо, но.. Короче, когда запускаю этот скрипт на реконнект, только этот один и само-собой, персонаж стоит на месте, то реконнект работает как положено и указано в самом скриптеdrabadan wrote:Ну чо там как оно, работает не?
но вот если запустить вместе с ним другой, в котором персонаж бегает и выполняет кучу разных действий и, к примеру, бросить на него в движении паралайз, или просто поставить тот скрипт на паузу, дабы персонаж остановился и стоял, то этот скрипт перестает работать, тоесть он запущен, но не делает ничего..
Re: Реконект
угу, так и естьDiadora wrote:Хм, вроде все как надо, но.. Короче, когда запускаю этот скрипт на реконнект, только этот один и само-собой, персонаж стоит на месте, то реконнект работает как положено и указано в самом скриптеdrabadan wrote:Ну чо там как оно, работает не?
но вот если запустить вместе с ним другой, в котором персонаж бегает и выполняет кучу разных действий и, к примеру, бросить на него в движении паралайз, или просто поставить тот скрипт на паузу, дабы персонаж остановился и стоял, то этот скрипт перестает работать, тоесть он запущен, но не делает ничего..
Code: Select all
Program CheckStop;
const
_WAITTIME_MINS = 1;
type
TPosition = record
X : Word;
Y : Word;
end;
function SetPosition(X, Y : Integer) : TPosition;
begin
Result.X := X;
Result.Y := Y;
end;
var
OldPosition, CurrentPosition : TPosition;
G_Index : Integer;
begin
while not Dead do begin
CurrentPosition := SetPosition(GetX(Self), GetY(Self));
if (OldPosition = CurrentPosition) then begin
G_Index := G_Index + 1;
if (G_Index > _WAITTIME_MINS * 60) then begin
G_Index := 0;
Disconnect;
AddToSystemJournal('Disconnect.');
end;
end;
OldPosition := SetPosition(GetX(Self), GetY(Self));
Wait(1000);
end;
end.