Page 1 of 1

Перемещение по лодке

Posted: 18.02.2012 15:20
by Gunter
Здравствуйте, пытаюсь добиться от персонажа, чтобы он из текущего места в лодке шел в указанное, но почему-то он, не двигаясь никуда, продолжает стоять как вкопанный...
Upd. стоять начинает с того момента, как попал на лодку через трап.

Первый вариант "Бродилки":

Code: Select all

procedure GotoOnBoad; 
Begin 
CheckSave; 
CheckDead(false);
AddToSystemJournal('Иду на лодку...'); 
MoveXY( nearX, nearY,true, 0,true); 
repeat 
UseObject(Trap); 
wait(300); 
until (GetX(self) = OnBoadX) and (GetY(self) = OnBoadY);
AddToSystemJournal('Иду к месту разгрузки...');
repeat 
MoveXY( OnBoadXdrop, OnBoadYdrop,true, 0,true);
[b][i]AddToSystemJournal('Пробуй дойти...');[/i][/b] <<<<<<<<<<<<<<<<<<<<<<<< ВОТ ЭТА СТРОКА ОКАЗЫВАЕТСЯ В ЛОГАХ
wait(300); 
until (GetX(self) = OnBoadXdrop) and (GetY(self) = OnBoadYdrop);
if (GetX(self) = OnBoadXdrop) and (GetY(self) = OnBoadYdrop) then AddToSystemJournal('*****К месту разгрузки дошел успешно...'); 
End; 
Лог стелса:

Code: Select all

17:00:23:764 [Скупщик 2]: Compiling
17:00:23:837 [Скупщик 2]: Compiled succesfully
17:00:25:046 [Скупщик 2]: готов выйти
17:00:28:142 [Скупщик 2]: вышел с лодки, подошел к кустику, начинаю собирать хворост
17:00:28:150 [Скупщик 2]: Вес превышен, пора разгружаться...
17:00:28:160 [Скупщик 2]: Иду на лодку...
17:00:28:687 [Скупщик 2]: Иду к месту разгрузки...
17:00:37:344 [Скупщик 2]: Пробуй дойти...
17:00:37:864 [Скупщик 2]: Пробуй дойти...
17:00:38:429 [Скупщик 2]: Пробуй дойти...
17:00:38:939 [Скупщик 2]: Пробуй дойти...
17:00:39:451 [Скупщик 2]: Пробуй дойти...
17:00:39:962 [Скупщик 2]: Пробуй дойти...
17:00:40:483 [Скупщик 2]: Пробуй дойти...
17:00:41:061 [Скупщик 2]: Пробуй дойти...
17:00:41:590 [Скупщик 2]: Пробуй дойти...
Второй вариант "Бродилки":

Code: Select all

procedure GotoOnBoad; 
Begin 
CheckSave; 
CheckDead(false);
AddToSystemJournal('Иду на лодку...'); 
MoveXY( nearX, nearY,true, 0,true); 
repeat 
UseObject(Trap); 
wait(300); 
until (GetX(self) = OnBoadX) and (GetY(self) = OnBoadY);
AddToSystemJournal('Иду к месту разгрузки...');
{repeat 
Step(1,true);
AddToSystemJournal('Пробуй дойти...'); <<<<<<<<<<<<<<<<<<<<<<<< ВОТ ЭТА СТРОКА ОКАЗЫВАЕТСЯ В ЛОГАХ
wait(300); 
until (GetX(self) = OnBoadXdrop) and (GetY(self) = OnBoadYdrop);}
if (GetX(self) = OnBoadXdrop) and (GetY(self) = OnBoadYdrop) then AddToSystemJournal('*****К месту разгрузки дошел успешно...'); 
End; 
Выходной лог такой же... по сути, я просто заменяю процедуру перемещения чара с координаты в координату, но при этом, толка не выходит. Я, скорее всего, неправильно представляю себе работу этой процедуры, прошу Вас меня с ней (с работой процедуры) ознакомить и помочь разобраться в возникшей проблеме.

Re: Перемещение по лодке

Posted: 18.02.2012 17:01
by nah nah
попробуй newMoveXY

Re: Перемещение по лодке

Posted: 18.02.2012 17:26
by Gunter
nah nah wrote:попробуй newMoveXY
можно поподробнее? А то здесь я не нашел такой команды...

Re: Перемещение по лодке

Posted: 18.02.2012 17:38
by nah nah
newMoveXY(x, y, True, 1, True)
по памяти =) 1 - подход, последний True - бег, первый True - вроде не используется

Re: Перемещение по лодке

Posted: 18.02.2012 17:44
by nah nah
кстати wiki

Re: Перемещение по лодке

Posted: 18.02.2012 19:01
by Gunter
заменил на newMoveXY, получил:

Code: Select all

20:55:53:141 [Скупщик 2]: Compiling
20:55:53:188 [Скупщик 2]: Compiled succesfully
20:55:53:195 [Скупщик 2]: Вес превышен, пора разгружаться...
20:55:53:224 [Скупщик 2]: Иду на лодку...
20:56:06:968 [Скупщик 2]: Иду к месту разгрузки...
20:56:06:973 [Скупщик 2]: Пробуй дойти...
20:56:17:805 [Скупщик 2]: Пробуй дойти...
20:56:18:334 [Скупщик 2]: Пробуй дойти...
20:56:18:856 [Скупщик 2]: Пробуй дойти...
20:56:19:496 [Скупщик 2]: Пробуй дойти...
20:56:20:021 [Скупщик 2]: Пробуй дойти...
20:56:20:542 [Скупщик 2]: Пробуй дойти...
20:56:21:064 [Скупщик 2]: Пробуй дойти...
20:56:21:584 [Скупщик 2]: Пробуй дойти...
20:56:22:108 [Скупщик 2]: Пробуй дойти...
20:56:22:626 [Скупщик 2]: Пробуй дойти...
20:56:23:149 [Скупщик 2]: Пробуй дойти...
20:56:23:667 [Скупщик 2]: Пробуй дойти...
20:56:24:183 [Скупщик 2]: Пробуй дойти...
20:56:24:841 [Скупщик 2]: Пробуй дойти...
20:56:25:379 [Скупщик 2]: Пробуй дойти...
20:56:25:902 [Скупщик 2]: Пробуй дойти...
20:56:26:421 [Скупщик 2]: Пробуй дойти...
20:56:26:942 [Скупщик 2]: Пробуй дойти...
20:56:27:459 [Скупщик 2]: Пробуй дойти...
20:56:27:976 [Скупщик 2]: Пробуй дойти...
20:56:28:492 [Скупщик 2]: Пробуй дойти...
20:56:29:014 [Скупщик 2]: Пробуй дойти...
20:56:29:526 [Скупщик 2]: Пробуй дойти...
20:56:30:131 [Скупщик 2]: Пробуй дойти...
20:56:30:647 [Скупщик 2]: Пробуй дойти...
20:56:31:167 [Скупщик 2]: Пробуй дойти...
20:56:31:686 [Скупщик 2]: Пробуй дойти...
20:56:32:204 [Скупщик 2]: Пробуй дойти...
20:56:32:718 [Скупщик 2]: Пробуй дойти...
20:56:33:236 [Скупщик 2]: Пробуй дойти...
20:56:33:752 [Скупщик 2]: Пробуй дойти...
20:56:34:270 [Скупщик 2]: Пробуй дойти...
20:56:34:790 [Скупщик 2]: Пробуй дойти...
20:56:35:411 [Скупщик 2]: Пробуй дойти...
20:56:35:933 [Скупщик 2]: Пробуй дойти...
20:56:36:449 [Скупщик 2]: Пробуй дойти...
20:56:36:975 [Скупщик 2]: Пробуй дойти...
20:56:37:493 [Скупщик 2]: Пробуй дойти...
20:56:38:017 [Скупщик 2]: Пробуй дойти...
20:56:38:535 [Скупщик 2]: Пробуй дойти...
20:56:39:058 [Скупщик 2]: Пробуй дойти...
20:56:39:574 [Скупщик 2]: Пробуй дойти...
20:56:40:093 [Скупщик 2]: Пробуй дойти...
20:56:40:712 [Скупщик 2]: Пробуй дойти...
20:56:41:231 [Скупщик 2]: Пробуй дойти...
20:56:41:748 [Скупщик 2]: Пробуй дойти...
20:56:42:264 [Скупщик 2]: Пробуй дойти...
20:56:42:846 [Скупщик 2]: Пробуй дойти...
20:56:43:367 [Скупщик 2]: Пробуй дойти...
20:56:43:889 [Скупщик 2]: Пробуй дойти...
20:56:44:412 [Скупщик 2]: Пробуй дойти...
Вывод: безрезультатно.

Re: Перемещение по лодке

Posted: 18.02.2012 19:29
by nah nah
тогда степами перемещайся

Code: Select all

while GetX(Self()) != OnBoadXdrop or GetY(Self()) != OnBoadYdrop:
    Step(CalcDir(GetX(Self()), GetY(Self()), OnBoadXdrop, OnBoadYdrop), True)

Re: Перемещение по лодке

Posted: 21.02.2012 9:15
by Vargul
Может бред скажу, а координата Z тут никак не может быть завязана? Просто у меня на шарде, если чар в лодке, то эта координата отрицательная.

Re: Перемещение по лодке

Posted: 21.02.2012 10:43
by Alex
по трапу лучше через Step ходить

Re: Перемещение по лодке

Posted: 22.02.2012 14:04
by Gunter
Степом я еще не попробовал, но как только из 2х персонажей остался один, и когда сервер перестал лагать, вроде бы все нормально заработало... А прохождение сквозь чара нельзя как-то предусмотреть?

Re: Перемещение по лодке

Posted: 22.02.2012 14:32
by Vizit0r
по умолчанию не проходит.
изменить переменную надо для прохождения.

Re: Перемещение по лодке

Posted: 23.02.2012 11:25
by Gunter
Vizit0r wrote:по умолчанию не проходит.
изменить переменную надо для прохождения.
Если изменить переменную, но стр персонажа меньше стр цели (цель - через кого проходим), то сервер не даст пройти через него, выдав сообщение типа "вы не достаточно сильны, чтобы столкнуть его с дороги".

Вопрос - изменение переменной позволит тупо ломиться сквозь персонажа, даже если сервер присылает такую вот фразу?

Re: Перемещение по лодке

Posted: 23.02.2012 14:29
by Vizit0r
сервер откинет, даже если будешь ломиться