Page 1 of 1
Поиск людей..
Posted: 2008-03-17 18:40:59
by korzh
Как правильно искать людей (для скрипта для детекта плееров для мининга) чтобы не крашило все время...?
Code: Select all
dim m[2]
m[0]='0x0000'
m[1]='0x0001'
while true
...
1)
...
for i = 0 to 1
uo.findtype(m[i],-1,'ground')
if uo.findcount() then
....
next
2)
...
uo.findtype('0x0000',-1,'ground')
i = uo.findcount()
uo.findtype('0x0001',-1,'ground')
i = i + uo.findcount()
if i > 0 then
....
3)
...
uo.findman(-1)
if uo.findcount() then
....
wait(100)
wend
Зы мне кажется как раз в самом поиске людей проблема..Если нужно могу скрипт выложит.
Posted: 2008-03-17 19:11:27
by Destruction
Люди бывают двух типов.. женщины и мужчины.. uo.findtype( мужык, -1, земля )..
Всегда так делал - никогда не крашило.
Так, что в самом поиске никакой проблемы - имхо нет.
Posted: 2008-03-18 09:33:21
by korzh
Ну во всех трех вариантах поиск и мужиков и женщин
Может со скриптом тогда не так чтото, вот без него мининг работает по 5-10 часов, с ним по 1-2 минуты... И фигня даже в том что скрипт все равно крашит даже если никого нет..
Code: Select all
sub PermPkProtect()
var i, mn
uo.ignore('self')
UO.Set('finddistance', '8')
dim m[2]
m[0]='0x0190'
m[1]='0x0191'
while uo.life > -1
deljournal('is attacking you')
if not uo.dead() && uo.getglobal('PermPkProtect') == 'On' then
for i = 0 to 1
uo.findtype(m[i],-1,'ground')
if uo.findcount() || UO.injournal('is attacking you') || (UO.GetHP()<UO.GetMaxHP()) then
Control('Pause')
uo.msg('Fuck you ' + getname('finditem') + '!')
r:
mn = uo.mana
deljournal('fizzles')
uo.waittargetobject(getini(GetProfile('Config'),'HomeConfig','HomeRune'))
uo.usetype( '0x1F4C' )
while mn >= uo.mana
wait(50)
wend
if not uo.injournal('fizzles') then
checklag()
else
goto r
endif
if not uo.dead() then
PkProtect('success')
Control('Play')
else
PkProtect('dead')
uo.print('you are dead!')
endif
endif
next
else
while ( ( uo.getglobal('PermPkProtect') <> 'On' ) || uo.dead() )
wait( 1000 )
wend
endif
wait( 200 )
wend
endsub
ЗЫ Дестр, и ты так и не сказал какой из трех вариант лучше и\или все гавно и предложить свой

Posted: 2008-03-18 10:12:22
by Destruction
В связи с тем, что с финдманом я никогда не работал, а второй вариант криво реализован, я бы посоветовал использовать первый

Posted: 2008-03-18 10:29:35
by korzh
Я вот тоже на нем остановился.. Но проблему то ето не решает, скрипто то крашит))
В смежных процедурах все корректно так как они используются почти во всех скриптах.
Проблема именно тут, и мне почему то кажется именно в поиске..Потому что так тоже крашит...
Code: Select all
sub PermPkProtect()
var i
uo.ignore('self')
UO.Set('finddistance', '10')
dim m[2]
m[0]='0x0190'
m[1]='0x0191'
while uo.life > -1
for i = 0 to 1
uo.findtype(m[i],-1,'ground')
if uo.findcount() then
uo.print('тут ктото есть')
wait(1000)
endif
next
wait(200)
wend
endsub
Posted: 2008-03-18 11:45:32
by Grin
ну возми и исключи findtype из этого куска кода...
сообветствено принт тоже, а то за флудишь...
попробуй паузу поставить меду файнд тайпом и каунтом... в перед..
Posted: 2008-03-18 11:45:47
by Edred
Как мне писал когда-то Yoko, Findman - ничто иное, как именно поиск типов 0x0190 и 0x0191 на земле в радиусе, определенном в finddistance. И ничего более. Поэтому его можно использовать, ничего страшного в нем нет. Более того, код должен значительно сокращаться.
Я не использовал его, потому что сидел на старой (стабильной) версии инжекта. В которой его не было.
Posted: 2008-03-18 13:46:23
by korzh
Grin wrote:...
попробуй паузу поставить меду файнд тайпом и каунтом... в перед..
Cудя по всему помогло, уже 15 минут работает

Edred wrote:...
Я не использовал его, потому что сидел на старой (стабильной) версии инжекта. В которой его не было.
А это какая? И есть ли она в паблике?