Кол тайлов)

Ask for help

Moderators: Murderator+, Murderator

Post Reply
BulldoZer
Posts: 95
Joined: 2006-11-02 11:57:11

Кол тайлов)

Post by BulldoZer »

Добрый день ТОВАРИЩИ)))

Выручайте... начал играть магом, и никак немогу выкупить растояние между арчером) все время достают гады...


Вот такая идея... я много раз встречал кучу ходилок, догонялок на форуме... Как подсчитывать количество тайлов до противника???

Может это евозможно, но если есть вариант буду рад) (было бы круто если бы при изменении количества тайлов до противника он просто кричал цыфру) 11 и 12 самый жир) как говориться)

:oops: если уже был на форуме такой скриптец то сорри лучьше дайте ссылочку)
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Элементарно. Вычитаешь из координат чара координаты противника. Берешь модуль от разниц (координат X и координат Y, естественно). Сравниваешь между собой. Какой результат больше - это и есть расстояние до противника.
Last edited by Edred on 2008-02-25 12:44:29, edited 1 time in total.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

uo.GetDistance ;)
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Лучше так...

Code: Select all

sub DistFlooder()
   var cur, new
   cur = max(abs(GetX('laststatus')-uo.getx()),abs(GetY('laststatus')-uo.gety()))
   UO.Say('Расстояние до ластстатуса ' + str(cur))
   repeat
      wait(100)
      new = max(abs(GetX('laststatus')-uo.getx()),abs(GetY('laststatus')-uo.gety()))
      
      if cur <> new then
         UO.Say('Расстояние до ластстатуса ' + str(new))
         new = cur
      endif
   until UO.Dead()
endsub

Sub abs(a)
Var b
If a<0 Then
  b=-a
Else
  b=a
endif
return b
endsub

Sub max(A,B)
Var C
If A>B Then
  C=A
Else
  C=B
EndIf
Return C
EndSub


Пробуй.
Last edited by Edred on 2008-02-25 16:40:32, edited 1 time in total.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

function max not found:)
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

:lol:

ЗЫ: Добавил. Я уже забыл, что она не системная...
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
BulldoZer
Posts: 95
Joined: 2006-11-02 11:57:11

Post by BulldoZer »

СПАСИБКИ за Ваше время))) но

---------------------------
Execute at 3
---------------------------
Line 3: Function not found - GETX
---------------------------
ОК
---------------------------


Таргет я бросаю в ,addobject h На чела может это поможет : )
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

ну и справь;)
поставь uo.GetX(...)
uo.GetY(...)
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

угу... :oops: писалось прямо на форуме, а скриптов под инжект я не писал уже года так полтора...

Хочешь в h - замени 'laststatus' на 'h'. Я вписал в скрипт определение расстояния до ластстатуса. Если не хочешь чтобы скрипт флудил - замени uo.say на uo.print...
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
BulldoZer
Posts: 95
Joined: 2006-11-02 11:57:11

Post by BulldoZer »

Сорри я сам незаметил такой мелочи)

Такс есть но он несчитает чето... пишет просто как бы сказать координату 4 цыфры...

и ели по 1 паралели двигаться то цыфра неменяется... что то тут нетак...


У тайла есть личный адресс икс и игрик... если я х1у1 а противник х2у2 то растояние между нами х1-х2 в квадрат плюс у1-у2 тоже в квадрат и с этой суммы снять корень и округлить до целого... как у пифагора( НО как зделать на инже бы( ?
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

у пифагора была декартова плоскость, а унас почти что гексогональная, только унас не гексы, а ромбы;) тут растояние по 8 направлениям равно 1, в декартовой нет...
по этому кратчайшее растояние это максимальная разность из координат.
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

BulldoZer
Если не можешь осилить то, что написал Грин, советую сделать так: возьми лист из тетради в клеточку. Одну клетку заштрихуй - это ты. В другой поставь крестик - это враг. А теперь считай сколько клеток между вами. Как ни ставь крестик, как не считай - это будет либо расстояние между вами по горизонтали, либо по вертикали. Что больше - то и будет.

Хинт здесь в том, что считаем не в миллиметрах или еще чем-то, а в клетках. А как клетку ни считай, по стороне или по диагонали - это все равно одна клетка.

ЗЫ: Грин, гексогональность тут ни коим боком не завязана, я имею в виду в задаче вычисления дистанции... :lol:
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

поросто гексогональная система куда понятней должна быть по тем же Героям.
а метематика простая тут...
за один ход равно ценно можно изменить как 1 кординату так и 2.
следовательно как не крути а число ходов из А в Б
есть
dx = x1-x2
dy = y1-y2
c = Min(dx, dy) //число ходов с изменением 2х координат
d = Max(dx, dy) - c //число ходов с изменением 1й координаты

отсюда R = d+c //минимальное число ходов
R = Max(dx, dy) //растояние
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Ты кому это рассказываешь? :shock: Мне? Дык у меня за "плечами" мат-мех Ленинградского (тогда еще) универа, пусть и 20 с гаком лет назад... Бульдозеру? Ну-ну. Сходи на стройку ближайшую, попробуй бульдозеру что-нибудь такое объяснить...
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Да это просто так;) для себя;)))
BulldoZer
Posts: 95
Joined: 2006-11-02 11:57:11

Post by BulldoZer »

Ну спасибо за теплые слова...

Хорошо на теории я понял как считаеться растояние...

Эд как поправить твой скрипт что бы при движениях по одной линии число изменялось? ну и было 2х значным а не 4х) в скриптах я несилен а в стройке нармально шарю... здмакс моя стройка ;)
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Да это Эд дурачится;)
его скрипт не выводит 4-х значные числа, выходит столько разрядов сколько надо.
Просто ты не снял статус с игрока, ну и twi скорей всего не включен.
Post Reply