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

Paralyzed

тут можно задать вопрос по скриптингу
Post Reply
Venom
Novice
Novice
Posts: 123
Joined: 25.08.2010 14:00

Paralyzed

Post 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;
GuitarMonster
Neophyte
Neophyte
Posts: 26
Joined: 12.01.2011 1:52

Post 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; - это что за зверь?
Last edited by GuitarMonster on 31.01.2011 16:59, edited 1 time in total.
Stealth: 3.3.0-8
Venom
Novice
Novice
Posts: 123
Joined: 25.08.2010 14:00

Post by Venom »

GuitarMonster wrote:
MoveToField; - это что за зверь, и почему он должен работать после того как ты сделал дисконнект? :wink:
MoveToField - процедура, где перс ходит,
собирает различную требуху с земли.
Добавил, потому как при выходе из паралайза, скрипт зависает.
Пытался таким образом вернуть его (скрипт) в работу.
GuitarMonster
Neophyte
Neophyte
Posts: 26
Joined: 12.01.2011 1:52

Post by GuitarMonster »

аа, тогда скобки ставь при вызове процедуры после имени.
Stealth: 3.3.0-8
Venom
Novice
Novice
Posts: 123
Joined: 25.08.2010 14:00

Post by Venom »

Не работает.
Дело по всей видимости в том, что стелс-клиент
не отстреливает такое состояние персонажа как - фроуз.
В статусе клиента, при вышесказанном состоянии,
Paralyzed - не отвечает.
GuitarMonster
Neophyte
Neophyte
Posts: 26
Joined: 12.01.2011 1:52

Post by GuitarMonster »

хм, честно говоря я тестил с помощью "if not Paralyzed then" щас нет возможности запарализить себя.
Stealth: 3.3.0-8
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Post by CFA »

это зависит от сервера, начиная с какой то версии сервер посылает расширенный пакет со статами перса, в том числе и признак парализации. скажем пол095 такой информации не посылает, а просто отбрасывает перса при попытке ходьбы.
Venom
Novice
Novice
Posts: 123
Joined: 25.08.2010 14:00

Post by Venom »

CFA wrote:это зависит от сервера, начиная с какой то версии сервер посылает расширенный пакет со статами перса, в том числе и признак парализации. скажем пол095 такой информации не посылает, а просто отбрасывает перса при попытке ходьбы.
Т.е. я пролетаю (
Вот зараза, ну ничего не помогает... ни сообщения в журнале, ни проверка своих координат.
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

Думается, что проблема не только в стелсе.
Если у вас зависает даже с проверкой журнала, то скрипт где-то косячит.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
Venom
Novice
Novice
Posts: 123
Joined: 25.08.2010 14:00

Post 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
.

Все работает, все классно. Но вот как только паралайз, стоим и думаем....
GuitarMonster
Neophyte
Neophyte
Posts: 26
Joined: 12.01.2011 1:52

Post 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.
Stealth: 3.3.0-8
Post Reply