Page 1 of 1

Paralyzed

Posted: 31.01.2011 16:26
by Venom
Работает ли ?
Два примера процедур, но ни одна не хочет отрабатывать заданное, т.е. все запускается, но при паралайзе перса процедура не срабатывает, скрипт зависает.


Code: Select all

procedure ParD;
begin
if (InJournal('System: You are no longer frozen') <> -1) then
begin
Wait(4000);
disconnect;
MoveToField;
end;
end;

Code: Select all

procedure ParD;
begin
if Paralyzed then
begin
Wait(4000);
disconnect;
MoveToField;
end;
end;

Posted: 31.01.2011 16:55
by GuitarMonster

Code: Select all

PROGRAM Par;

Procedure ParD();
begin
if Paralyzed then
//if not Paralyzed then
begin
Wait(4000);
Disconnect;
end;
End;

BEGIN
 ParD()
END.
disconnect;
MoveToField;
MoveToField; - это что за зверь?

Posted: 31.01.2011 16:58
by Venom
GuitarMonster wrote:
MoveToField; - это что за зверь, и почему он должен работать после того как ты сделал дисконнект? :wink:
MoveToField - процедура, где перс ходит,
собирает различную требуху с земли.
Добавил, потому как при выходе из паралайза, скрипт зависает.
Пытался таким образом вернуть его (скрипт) в работу.

Posted: 31.01.2011 17:00
by GuitarMonster
аа, тогда скобки ставь при вызове процедуры после имени.

Posted: 31.01.2011 18:41
by Venom
Не работает.
Дело по всей видимости в том, что стелс-клиент
не отстреливает такое состояние персонажа как - фроуз.
В статусе клиента, при вышесказанном состоянии,
Paralyzed - не отвечает.

Posted: 31.01.2011 19:05
by GuitarMonster
хм, честно говоря я тестил с помощью "if not Paralyzed then" щас нет возможности запарализить себя.

Posted: 01.02.2011 6:20
by CFA
это зависит от сервера, начиная с какой то версии сервер посылает расширенный пакет со статами перса, в том числе и признак парализации. скажем пол095 такой информации не посылает, а просто отбрасывает перса при попытке ходьбы.

Posted: 01.02.2011 12:39
by Venom
CFA wrote:это зависит от сервера, начиная с какой то версии сервер посылает расширенный пакет со статами перса, в том числе и признак парализации. скажем пол095 такой информации не посылает, а просто отбрасывает перса при попытке ходьбы.
Т.е. я пролетаю (
Вот зараза, ну ничего не помогает... ни сообщения в журнале, ни проверка своих координат.

Posted: 01.02.2011 13:40
by Fenix
Думается, что проблема не только в стелсе.
Если у вас зависает даже с проверкой журнала, то скрипт где-то косячит.

Posted: 01.02.2011 14:56
by Venom
Fenix wrote:Думается, что проблема не только в стелсе.
Если у вас зависает даже с проверкой журнала, то скрипт где-то косячит.
На самом деле он элементарен, и я не вижу, где же может быть бок:

Code: Select all

procedure MoveToField;  
begin
 moveXY(5325, 1823, true, 0, true);
FindItem; // отвечает за поиск итемов на земле
  CheckHeal; // хил
  St; // реген стамины
DropCash; // сброс итемов
  Back; // отход, при обнаружении моба.
Wait(1500);
.....


procedure ParD; // дурноватая процедура, которая не отрабатывает свое предназначение.
begin
if (InJournal('System: You are no longer frozen') <> -1) then
begin
Wait(4000);
disconnect;
MoveToField;
end;
end;

BEGIN

while true do
begin
If not(isDead(self)) then MoveToField else exit;
If not(isDead(self)) then CheckHeal else exit;
If not(isDead(self)) then Back else exit;
If not(isDead(self)) then FindMobs else exit;
If not(isDead(self)) then DropCash else exit;
If not(isDead(self)) then ParD else exit;

wait(50);
end;
END
.

Все работает, все классно. Но вот как только паралайз, стоим и думаем....

Posted: 01.02.2011 15:52
by GuitarMonster
Запусти скрипт и скажи в игре "ParTest".

Code: Select all

PROGRAM test;

Procedure ParD();
begin
if InJournal('ParTest')<>-1 then begin
Disconnect;
end;
End;

BEGIN

ClearJournal;
while true do begin
If not Dead then ParD() else exit;
wait(100);     
end;

END.