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

IsWorldCellPassable в каком виде она сейчас?

тут можно задать вопрос по скриптингу
Post Reply
SaNeK
Novice
Novice
Posts: 65
Joined: 08.09.2008 9:52
Contact:

IsWorldCellPassable в каком виде она сейчас?

Post by SaNeK »

В связи с игрой на ДРВ приходится писать свою ходилку. Ну это такое.
Раньше можно было использовать фу-ю с проверкой на проходимость тайла
if IsWorldCellPassable(getX(self),getY(self),PrognosisX,PrognosisY,WorldNum,getZ(self)) then
Стелс на нее не ругается. Значит она осталась, возможно поменялся ее "состав". Может кто писал последний год ходилку то "ткните" меня ))
Так же само пример в Вики (изимуви), ругается на эту же фу-ю )
Alex
Moderator
Moderator
Posts: 351
Joined: 07.04.2005 4:41

Re: IsWorldCellPassable в каком виде она сейчас?

Post by Alex »

у нее поменялся порядок параметров, сейчас вот такой

Code: Select all

function IsWorldCellPassable(CurrX, CurrY : Word; Z : ShortInt; DestX, DestY : Word; var DestZ : ShortInt; WorldNum : Byte) : Boolean
http://stealth.od.ua/forum/viewtopic.ph ... able#p9176
Новый стелс лежит тут. Стелс это произведение искусства! :)
SaNeK
Novice
Novice
Posts: 65
Joined: 08.09.2008 9:52
Contact:

Re: IsWorldCellPassable в каком виде она сейчас?

Post by SaNeK »

Спасибо за мгновенный ответ )
http://stealth.od.ua/wiki/doku.php?id=getpatharray тут есть пример пример изимуви используется фу-я MoveToPoint. Она предполагалось как новая?
если нет и не секрет можно посмотреть ее реализацию? )
Alex
Moderator
Moderator
Posts: 351
Joined: 07.04.2005 4:41

Re: IsWorldCellPassable в каком виде она сейчас?

Post by Alex »

впервые такую вижу, и на форуме не встречается
Новый стелс лежит тут. Стелс это произведение искусства! :)
SaNeK
Novice
Novice
Posts: 65
Joined: 08.09.2008 9:52
Contact:

Re: IsWorldCellPassable в каком виде она сейчас?

Post by SaNeK »

Почемуто подумал, что это ты добавлял в вики изимуви )
Alex
Moderator
Moderator
Posts: 351
Joined: 07.04.2005 4:41

Re: IsWorldCellPassable в каком виде она сейчас?

Post by Alex »

я переносил недавно весь сайт и вики на новый сервер, возможно по этому страничка пометилась там как моя
Новый стелс лежит тут. Стелс это произведение искусства! :)
grundick
Developer
Developer
Posts: 272
Joined: 31.01.2008 21:16

Re: IsWorldCellPassable в каком виде она сейчас?

Post by grundick »

Code: Select all

function MoveToPoint(X,Y: Integer; Running: Boolean) : boolean;
var 
  remap : array [0..8] of byte;
  dx,dy,dir,StepResult : Integer;

Begin
remap[0] := 7;
remap[1] := 6;
remap[2] := 5;
remap[3] := 0 ;
remap[4] := -1;
remap[5] := 4;
remap[6] := 1;
remap[7] := 2;
remap[8] := 3;

Result:=false;
While  true do
   begin
   dx:=X-getX(self); dy:=Y-getY(self);
   If (dx=0) AND (dy=0) then 
       begin
       Result:=true; 
       Exit; 
       end;
   dx:=sign(dx);
   dy:=sign(dy);
   dir := remap[(dx + 1)*3 + dy + 1];
   
   LocalWaitConnection(1000);
   While (Not Dead)  AND (Stam<=0) do Wait(1000);

   If GetDirection(self) <> dir then StepQ(dir, Running);
   StepResult:=StepQ(dir,Running);
   //If (StepResult=1) OR (StepResult=5) then Wait(5000);
   If StepResult<0 then
      begin
      result:=false;
      Exit;
      end; 
   end;
End;
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Re: IsWorldCellPassable в каком виде она сейчас?

Post by CFA »

grundick wrote:

Code: Select all

   If StepResult<7 then
StepQ сейчас возвращает другой результат.
SaNeK
Novice
Novice
Posts: 65
Joined: 08.09.2008 9:52
Contact:

Re: IsWorldCellPassable в каком виде она сейчас?

Post by SaNeK »

грюндик, можно еще и функцию dist(x,y)
И в пример в изи муви (вики) добавить var destZ:shortint; чтобы не ругалось на IsWorldCellPassable
Alex
Moderator
Moderator
Posts: 351
Joined: 07.04.2005 4:41

Re: IsWorldCellPassable в каком виде она сейчас?

Post by Alex »

добавил destZ, и исправил Dist и 7 на 0 в посте grundick`а
Новый стелс лежит тут. Стелс это произведение искусства! :)
SaNeK
Novice
Novice
Posts: 65
Joined: 08.09.2008 9:52
Contact:

Re: IsWorldCellPassable в каком виде она сейчас?

Post by SaNeK »

И опять я со своими баранами.
В примере на вики easyMoveXY лучше поменть StepQ на Step.
Потому что персонажа начинает кидать во время движения лево вправо. Ну это понятно почему. Или в примере менять GetX на PredictedX и т.д. или просто StepQ на Step. Кстати, подскажите в чем преимущество StepQ.

Меня волнует вот что. Как я понимаю если IsWorldCellPassable возвращает false, то в системный журнал идет сообщение "Бед локатион х у" В итоге движение с помощью easyMoveXY прекращается. Пытался дергать персонажа через клиент. Все равно возвращается в точку и стоит. Немогу понять в чем дело. Подскажите.
grundick
Developer
Developer
Posts: 272
Joined: 31.01.2008 21:16

Re: IsWorldCellPassable в каком виде она сейчас?

Post by grundick »

Да забей ты на этот изимув, это просто пример реализации, напиши свой вариант и не парься.
StepQ отличается тем, что позволяет делать несколько шагов не дожидаясь ответа от сервера (Так реализовано в оригинальном клиенте), Step же ждёт ответа после КАЖДОГО шага. Соответственно, в задумке StepQ должен был позволять бегать со скоростью родного клиента, особенно при не очень качественной связи с сервером. Реально же всё получилось как-то криво-косо. Вообщем, нарыть бы исходник оригинального клиента (что, как я понял, нереально) и переписать всё "по-человечески"...
SaNeK
Novice
Novice
Posts: 65
Joined: 08.09.2008 9:52
Contact:

Re: IsWorldCellPassable в каком виде она сейчас?

Post by SaNeK »

Про степ понятно. Но изи не изи. Я вот смотрю в него все правильно, все хорошо. А вот как бед локатион так и стоит как вкопанный. Все равно ж этим путем идти буду. Врятли колесо переизобрету ) Точнее мои колеса вышли квадратными ))
Post Reply