Page 1 of 1
маркер
Posted: 2012-02-26 07:56:56
by Gromiz
Добрый день!
можно как-то с помощью инжекта визуально обозначить тайл/дерево/камень/предмет и т.д.
поясню:
рубишь/копаешь сам без скриптов и надо слетать все сбросить, после возвращаешься на место копки/рубки и продолжаешь с того же места, а для этого там маркер стоит или что-то наподобие?
например, может стрелка от клада подойдет? кстати, немогли бы команду на нее напомнить, что-то найти не могу
Re: маркер
Posted: 2012-02-26 10:45:05
by ZeroDX
попробуй mfgi
Re: маркер
Posted: 2012-02-26 17:22:11
by Gromiz
Code: Select all
mfgi (add/clear/resend/info) (type) [x y z] [color] [name]
add - добавляет для отображения в клиенте объект из вердаты указанного типа в указанные координаты соотвественно цвета и наззвания
clear - очищает все созданные этой командой объекты
resend - аналог uo.resend или .resync для команды mfgi
info - в текстбокс выводит информацию по всем существующим объектам добавленных mfgi
что-то больно сложно и много всего надо указывать.
может можно как-то прицепить таргет от поиска кладов?
Re: маркер
Posted: 2012-02-26 20:09:11
by Mirage
стрелка от клада
,track 123 321
где 123 и 321 мировые координаты (те что показаны в инжекте вверху)
отключить стрелку - пересчелкнуть галку TRACKER во вкладке MAIN
uo.mfgi( 'add', '7847', X, Y, Z )
создаст шарик (как респ) в точке XYZ
Re: маркер
Posted: 2012-02-27 08:07:55
by Kynep
Это, в большей степени, зависит от скрипта. Мои копалки и рубилки возвращаются на последнюю точку, безо всяких маркеров и прочей ерунды, даже после убийства и ресса.
Re: маркер
Posted: 2012-02-27 09:18:57
by Mirage
2 Kynep, не внимательно читаешь поставленную задачу
можно как-то с помощью инжекта визуально обозначить тайл/дерево/камень/предмет и т.д.
поясню:
рубишь/копаешь сам без скриптов
Re: маркер
Posted: 2012-02-27 09:21:28
by Mirage
Mirage wrote:2 Kynep, не внимательно читаешь поставленную задачу
можно как-то с помощью инжекта визуально обозначить тайл/дерево/камень/предмет и т.д.
поясню:
рубишь/копаешь сам без скриптов
Плюсы в mfgi в том что они существуют все время до выхода персонажа из игры.
Минус - я не помню как его убрать

Где то была делеталка но куда то я ее заныкал.
PS А да, вспомнил.

Re: маркер
Posted: 2012-02-27 09:27:42
by Kynep
Mirage wrote:2 Kynep, не внимательно читаешь поставленную задачу
Epic fail...

Re: маркер
Posted: 2012-02-27 11:38:21
by ZeroDX
Можно сделать скрипт, который при включении будет рубить дерево 1 раз. Когда дерево будет вырублено, ставить тоже самое дерево через mfgi красного цвета на 1 тайл выше дерева настоящего. Ещё можно, чтобы постоянно висел поток, снимающий mfgi через 10 мин (или какой там респаун тайм на шарде).
Re: маркер
Posted: 2012-02-27 14:11:56
by Mirage
ZeroDX wrote:через 10 мин (или какой там респаун тайм на шарде).
там где я маюсь 4 часа

Re: маркер
Posted: 2012-02-29 19:24:24
by Gromiz
еще даже и не присел за попытку написания
надеюсь, что вы в выходные будете, ибо уверен, что будет куча вопросов про mfgi,т.к. я даже и не слышал, что в уо можно самому объекты добавлять :Р
хотя может и не подойдет для использования.
а смысл простой:
рубанул по дереву
поставил маркер над ним
рубанул еще раз
старый маркер удалил, а новый поставил
тем самым, маркер всегда показывает на последнее дерево, которое рубил
вижу это так, а как на самом деле, я хз
а пытаться вставить маркер буду в скрипт, который Вы же и написали
viewtopic.php?f=20&t=16819#p90865кстати, скрипт хороший.
замечательная альтернатива ластобжект, ласттаргет
а может не стоит оно того, что думаете?
надо еще и переменные указывать автоматически, а для этого разбирать ходилку для координат, еще какие-то скрипты на цвет и имя.
что-то пока этот пост написал, еще раз подумал и думаю, что нафиг надо, неоправданный геморрой это.
копаю не так уж и много в неделю.
Re: маркер
Posted: 2012-02-29 20:43:44
by Mirage
я же дал строку
Code: Select all
sub Lumberodnoderevo()
var X, Y, MaxRange = 1, k = 0
for Y = -MaxRange to MaxRange
for X = -MaxRange to MaxRange
if Tree(UO.GetX()+X, UO.GetY()+Y) then
UO.Warmode(0)
wait(100)
k=k+1
UO.WaitTargetTile(Tree(UO.GetX()+X, UO.GetY()+Y), UO.GetX()+X, UO.GetY()+Y, UO.GetZ())
if UO.Count(0x0F43) || UO.Count(0x0F44) then
if UO.Count(0x0F43) then
UO.UseType(0x0F43)
uo.mfgi( 'add', '7847', UO.GetX()+X, UO.GetY()+Y, UO.GetZ() )
return
else
UO.UseType(0x0F44)
uo.mfgi( 'add', '7847', UO.GetX()+X, UO.GetY()+Y, UO.GetZ() )
return
endif
else
UO.Print('нет топора')
return
endif
endif
next
next
end sub
Вот именно в этом скрипте получится делать разметку только после 1 удара. Пустые деревья отличаться не будут так как не отличаются для скрипта.
Идея несет в себе только косметический харрактер. Скрипт все равно будет тыкать в дерево даже с пометкой.
Вот если бы рубили руками то тогда да - пометка важна была бы.
Re: маркер
Posted: 2012-02-29 21:45:16
by ZeroDX
А если спереть запоминание деревьев из
автоламбера дестракшена? Тогда не будет носить чисто косметический характер. Просто добавить проверку на время респа, добавить в скрипт пару вещей для удобств (радиус поиска статики = 2) отполировать и будет готов новый продукт, которого я тут ни разу не видел.
Re: маркер
Posted: 2012-02-29 22:09:21
by ZeroDX
закрашивание одного дерева, очистка предыдущего.
Code: Select all
Sub SuperMFGI(x, y, z, tile)
if uo.getGlobal('lasttree') == 'abracadabra' then
uo.mfgi('clear', uo.getGlobal('lasttilenum'), uo.getGlobal('lasttreex'), uo.getGlobal('lasttreey'), uo.getGlobal('lasttreez'))
else
uo.setGlobal('lasttree', 'abracadabra')
end if
uo.mfgi('add', str(tile), x, y, z + 1, '0x0025', 'empty tree')
uo.setGlobal('lasttilenum', str(tile))
uo.setGlobal('lasttreex', str(x))
uo.setGlobal('lasttreey', str(y))
uo.setGlobal('lasttreez', str(z + 1))
endsub
в эту штуку надо забросить x, y, z и номер тайла НЕ в строках.
Например для
viewtopic.php?f=20&t=16819#p90865 это будет так:
Code: Select all
SuperMFGI(uo.getx() + x, uo.gety() + y, uo.getz(), Tree(uo.getx() + x, uo.gety() + y)
Re: маркер
Posted: 2012-03-02 17:55:57
by Gromiz
Mirage wrote:я же дал строку
Code: Select all
uo.mfgi( 'add', '7847', UO.GetX()+X, UO.GetY()+Y, UO.GetZ() )
end sub
Вот именно в этом скрипте получится делать разметку только после 1 удара. Пустые деревья отличаться не будут так как не отличаются для скрипта.
Идея несет в себе только косметический харрактер. Скрипт все равно будет тыкать в дерево даже с пометкой.
Вот если бы рубили руками то тогда да - пометка важна была бы.
вообще шикарно, теперь так удобно копать в шахте с патчем на разметку, сразу видно где копал, а где еще нет

)))
а удаление меток делаем простым логаутом- не напрягает.
и опять вопрос решился одной строчкой

а я думал, что надо будет ходилку ковырять, как -то оттуда код на координаты вырезать и вставлять его в эту строчку и так ж с цветом и тд, в общем вообще не про то подумал- ужс.! Спасибо!! красота

-------------------------------------------------------------------
ZeroDX wrote:закрашивание одного дерева, очистка предыдущего.
Code: Select all
Sub SuperMFGI(x, y, z, tile)
if uo.getGlobal('lasttree') == 'abracadabra' then
uo.mfgi('clear', uo.getGlobal('lasttilenum'), uo.getGlobal('lasttreex'), uo.getGlobal('lasttreey'), uo.getGlobal('lasttreez'))
else
uo.setGlobal('lasttree', 'abracadabra')
end if
uo.mfgi('add', str(tile), x, y, z + 1, '0x0025', 'empty tree')
uo.setGlobal('lasttilenum', str(tile))
uo.setGlobal('lasttreex', str(x))
uo.setGlobal('lasttreey', str(y))
uo.setGlobal('lasttreez', str(z + 1))
endsub
в эту штуку надо забросить x, y, z и номер тайла НЕ в строках.
Например для
viewtopic.php?f=20&t=16819#p90865 это будет так:
Code: Select all
SuperMFGI(uo.getx() + x, uo.gety() + y, uo.getz(), Tree(uo.getx() + x, uo.gety() + y)
а твой скрипт отлично подходит для рубки, т.к. фиксировать все места смысла нет, ибо деревьев много и достаточно только последнее, чтобы с него продолжить.

только я добавил скобку в последней твоей строчке- не хватат, иначе парсер

правда не все деревья марчит, на картинке не марчит верхнее дерево с топором и некоторые другие
Важно, после некоторого времени копки/рубки:Правда у этих марков есть один недостаток- если после марка отбежать в сторону, чтобы марк скрылся из поля зрения, то он пропадает

Может быть связано с моим клиентом и патчами, я не знаю. Печалька.
Re: маркер
Posted: 2012-03-02 18:29:21
by Mirage
Gromiz, двоечник и лодырь. Настоящий сисадмин, осталось языки подучить.
Code: Select all
sub cleanmfgi()
var m = 50
for Y = -m to m
for X = -m to m
uo.mfgi( 'clear', mX+X, mY+Y, mZ )
next
next
end sub
sub resendmfgi()
uo.mfgi( 'resend' )
end sub
только спроси про ошибку

))
Re: маркер
Posted: 2012-03-02 19:13:18
by Gromiz
ы:) тогда я так, по аналогии с
ZeroDX и методом тыка:
Code: Select all
sub cleanmfgi()
uo.mfgi( 'clear', uo.getGlobal('mX'), uo.getGlobal('mY'), uo.getGlobal('mZ'))
end sub
пашет

Re: маркер
Posted: 2012-03-02 19:32:52
by Gromiz
хотя для рубки лучше использовать:
Code: Select all
uo.track (uo.getx() + x, uo.gety() + y)
сразу понятно куда бежать надо, да и дерево все время последнее ставит, даже и ничего дописывать не надо.