Anything and all.
Moderators: Murderator+ , Murderator
Kynep
Expert!
Posts: 1348 Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:
Post
by Kynep » 2008-01-26 21:05:55
Destruction wrote: Kynep wrote: Grin wrote: ;) ему надо найти ближайшего;) а что бы это сделать надо перебрать все объекты, циклов может быть куда больше;)
Помоему где то видел сриптег, который считает расстояние до обьекта, вроде в топике Полезности. Можно ешо заюзать.
uo.getDistance() ?)
А ваще - циклически пробежаццо по всем найденным и выбрать ближайшего, имхо
Ну дык ты видел что ему надо? искать в одной клетке потом в двух и т.д. Бред(имхо)
Avel Mink
Posts: 48 Joined: 2007-12-30 14:23:05
Post
by Avel Mink » 2008-01-26 22:34:51
Я не говорю что мне нужно именно такое решение, мне просто нужно найти ближайшего, каким способом это будет реализовано мне все равно. Скрипт оч надо
Destruction
Junior Expert
Posts: 3221 Joined: 2004-06-24 22:08:56
Post
by Destruction » 2008-01-26 22:53:02
Я хз о чём речь, вкратце выглядит так:
Code: Select all
var max_distance = 12 var item = "0x0000" var c_item uo.set( 'finddistance', str( max_distance ) ) uo.findtype( item, "-1", "ground" ) while uo.findcount() if uo.getDistance( 'finditem' ) <= max_distance then max_distance = uo.getDistance( 'finditem' ) c_item = uo.getSerial( 'finditem' ) endif uo.ignore( 'finditem' ) uo.findtype( item, "-1", "ground" ) wend
Ну общий смысл таков
Avel Mink
Posts: 48 Joined: 2007-12-30 14:23:05
Post
by Avel Mink » 2008-01-26 23:22:08
поставил на поиск синих чаров, но он ниче не находит
Code: Select all
sub a() var max_distance = 20 var item = '0x0190' var c_item uo.set( 'finddistance', str( max_distance ) ) uo.findtype( item, "-1", "ground" ) while uo.findcount() if uo.getDistance( 'finditem' ) <= max_distance then max_distance = uo.getDistance( 'finditem' ) c_item = uo.getSerial( 'finditem' ) endif uo.ignore( 'finditem' ) uo.findtype( item, "-1", "ground" ) wend endsub
мне сюда еще надо добавить атаку найденого чара, если он ближний ко мне
AGRS
Expert!
Posts: 1007 Joined: 2004-04-04 21:40:09
Contact:
Post
by AGRS » 2008-01-29 10:17:03
Несколько поправок к скрипту выше
1) надо бы перед началом поиска игнор ресет задействовать.
2) разумеется ближайший ко мне человек это я сам, поэтому себя надо бы заигнорить.
3) в игре есть еще девочки.
Code: Select all
sub a() var max_distance = 20 var item1 = '0x0190' var item2 = '0x0191' var c_item = 0 uo.ignorereset() uo.ignore('self') uo.set( 'finddistance', str( max_distance ) ) uo.findtype( item1, "-1", "ground" ) while uo.findcount() if uo.getDistance( 'finditem' ) <= max_distance then max_distance = uo.getDistance( 'finditem' ) c_item = uo.getSerial( 'finditem' ) endif uo.ignore( 'finditem' ) uo.findtype( item1, "-1", "ground" ) wend uo.findtype( item2, "-1", "ground" ) while uo.findcount() if uo.getDistance( 'finditem' ) <= max_distance then max_distance = uo.getDistance( 'finditem' ) c_item = uo.getSerial( 'finditem' ) endif uo.ignore( 'finditem' ) uo.findtype( item2, "-1", "ground" ) wend if c_item then if not uo.warmode() then uo.warmode( 1 ) endif uo.attack( c_item ) endif uo.print( 'ATTACK TARGET!' ) uo.print( uo.getname( c_item ) ) endsub
Avel Mink
Posts: 48 Joined: 2007-12-30 14:23:05
Post
by Avel Mink » 2008-01-29 23:05:02
ТО что доктор прописал, огромное спасибо