Yoko

All sides of Injection
It is currently 2025-12-24 00:11:27

All times are UTC+02:00




Post new topic  Reply to topic  [ 17 posts ] 
Author Message
 Post subject: Кол тайлов)
PostPosted: 2008-02-25 11:36:28 
Offline
User avatar

Joined: 2006-11-02 11:57:11
Posts: 95
Добрый день ТОВАРИЩИ)))

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


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

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

:oops: если уже был на форуме такой скриптец то сорри лучьше дайте ссылочку)


Top
   
 Post subject:
PostPosted: 2008-02-25 12:40:22 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Элементарно. Вычитаешь из координат чара координаты противника. Берешь модуль от разниц (координат X и координат Y, естественно). Сравниваешь между собой. Какой результат больше - это и есть расстояние до противника.

_________________
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...


Last edited by Edred on 2008-02-25 12:44:29, edited 1 time in total.

Top
   
 Post subject:
PostPosted: 2008-02-25 12:43:47 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
uo.GetDistance ;)


Top
   
 Post subject:
PostPosted: 2008-02-25 12:54:32 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Лучше так...

Code:
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.

Top
   
 Post subject:
PostPosted: 2008-02-25 13:00:53 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
function max not found:)


Top
   
 Post subject:
PostPosted: 2008-02-25 16:41:21 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
:lol:

ЗЫ: Добавил. Я уже забыл, что она не системная...

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2008-02-25 21:17:51 
Offline
User avatar

Joined: 2006-11-02 11:57:11
Posts: 95
СПАСИБКИ за Ваше время))) но

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


Таргет я бросаю в ,addobject h На чела может это поможет : )


Top
   
 Post subject:
PostPosted: 2008-02-25 21:42:36 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
ну и справь;)
поставь uo.GetX(...)
uo.GetY(...)


Top
   
 Post subject:
PostPosted: 2008-02-25 22:55:50 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
угу... :oops: писалось прямо на форуме, а скриптов под инжект я не писал уже года так полтора...

Хочешь в h - замени 'laststatus' на 'h'. Я вписал в скрипт определение расстояния до ластстатуса. Если не хочешь чтобы скрипт флудил - замени uo.say на uo.print...

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2008-02-26 00:24:05 
Offline
User avatar

Joined: 2006-11-02 11:57:11
Posts: 95
Сорри я сам незаметил такой мелочи)

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

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


У тайла есть личный адресс икс и игрик... если я х1у1 а противник х2у2 то растояние между нами х1-х2 в квадрат плюс у1-у2 тоже в квадрат и с этой суммы снять корень и округлить до целого... как у пифагора( НО как зделать на инже бы( ?


Top
   
 Post subject:
PostPosted: 2008-02-26 00:28:47 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
у пифагора была декартова плоскость, а унас почти что гексогональная, только унас не гексы, а ромбы;) тут растояние по 8 направлениям равно 1, в декартовой нет...
по этому кратчайшее растояние это максимальная разность из координат.


Top
   
 Post subject:
PostPosted: 2008-02-26 00:45:35 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
BulldoZer
Если не можешь осилить то, что написал Грин, советую сделать так: возьми лист из тетради в клеточку. Одну клетку заштрихуй - это ты. В другой поставь крестик - это враг. А теперь считай сколько клеток между вами. Как ни ставь крестик, как не считай - это будет либо расстояние между вами по горизонтали, либо по вертикали. Что больше - то и будет.

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

ЗЫ: Грин, гексогональность тут ни коим боком не завязана, я имею в виду в задаче вычисления дистанции... :lol:

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2008-02-26 01:23:01 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
поросто гексогональная система куда понятней должна быть по тем же Героям.
а метематика простая тут...
за один ход равно ценно можно изменить как 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) //растояние


Top
   
 Post subject:
PostPosted: 2008-02-26 01:56:22 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Ты кому это рассказываешь? :shock: Мне? Дык у меня за "плечами" мат-мех Ленинградского (тогда еще) универа, пусть и 20 с гаком лет назад... Бульдозеру? Ну-ну. Сходи на стройку ближайшую, попробуй бульдозеру что-нибудь такое объяснить...

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2008-02-26 09:10:35 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
Да это просто так;) для себя;)))


Top
   
 Post subject:
PostPosted: 2008-02-26 09:56:21 
Offline
User avatar

Joined: 2006-11-02 11:57:11
Posts: 95
Ну спасибо за теплые слова...

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

Эд как поправить твой скрипт что бы при движениях по одной линии число изменялось? ну и было 2х значным а не 4х) в скриптах я несилен а в стройке нармально шарю... здмакс моя стройка ;)


Top
   
 Post subject:
PostPosted: 2008-02-26 10:45:52 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
Да это Эд дурачится;)
его скрипт не выводит 4-х значные числа, выходит столько разрядов сколько надо.
Просто ты не снял статус с игрока, ну и twi скорей всего не включен.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 17 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited