интересная функция
Moderators: Murderator+, Murderator
интересная функция
Суть проблемы. Мне необходимо написать функцию на проверку наличия посторонних итемов на экране. Например чар стоит посреди леса, если появляется другой игрок или итем, например кто нибудь скинул на землю топор, лопату, логи, впрочем любой итем (из под хайда), или просто кто нибудь поставил дом, то скрипт переходит в состояние паузы. Если кто то сталкивался с такой проблемой, пожалуйста, дайте функцию, чтобы я с ней разобрался, или хотя бы намекните на осуществление.
Code: Select all
sub test()
uo.set('finddistance','3')
repeat
uo.ignore('0x001E320B','0x0190','0x07D3')
uo.findtype('-1','-1','ground')
if uo.findcount()>0 then
uo.serverprint('1')
wait(2000)
ELSE
uo.serverprint('0')
wait(2000)
endif
until uo.dead()
end sub
flames wrote:Code: Select all
uo.ignore('0x001E320B','0x0190','0x07D3')
примечание: у [yhlp_ignore] один параметр, остальные игнорируются
если этой командой ты исключал из поиска на земле своего чара, то проще это сделать как uo.ignore("self")
Спасибо за подсказку. Также я сталкнулся с проблемой, что в процессе выполнения макроса, эта функция находит некоторые обьекты, которых нет на самом деле, тоесть я узнаю их координаты, тип, но на этом месте нет никакого итема, попытки сграбить его ни к чему не приводят, хотя функция его находит, причем если запустить ее с другого клиента, то этот итем не находится (также после релогина). В чем может быть причина такой проблемы? Если не трудно, подскажите.
обьясняю. не дошли руки до выяснения причин определённого глюка:
когда некоторые вещи исчезают с земли, они всё равно остаются в памяти инжекта.
в одном из своих скриптов мне пришлось добавлять подчищающий кусок, который определял, если такое случилось, то подчищал базу данных вещей через [yhlp_forget] и перезапрашивал предметы по [yhlp_resend]
когда некоторые вещи исчезают с земли, они всё равно остаются в памяти инжекта.
в одном из своих скриптов мне пришлось добавлять подчищающий кусок, который определял, если такое случилось, то подчищал базу данных вещей через [yhlp_forget] и перезапрашивал предметы по [yhlp_resend]
Code: Select all
sub test()
uo.set('finddistance','3')
repeat
uo.ignore('self')
uo.findtype('-1','-1','ground')
if uo.findcount()>0 then
uo.resend()
uo.findtype('-1','-1','ground')
if uo.findcount()>0 then
uo.textopen()
uo.textprint(uo.getserial('finditem'))
uo.textprint(str(uo.getx('finditem')))
uo.textprint(str(uo.gety('finditem')))
wait(5000)
end if
ELSE
wait(5000)
endif
until uo.dead()
end sub
Видимо тогда придется каждый раз при выявления постороннего предмета, проверять все ли в порядке и если да, то игнорить найденый итем. Глупо, но другого выхода я не вижу, учитывая мои более чем скромные знания в скриптописании. Попутно придется развиваться и пытаться решить проблему, потому что это обязательно, иначе вся моя затея теряет смысл. (немогу я понять этого, стою посреди шахты, запускаю функцию, ничего не находит в течении часа-двух, потом бац и находит, хотя я просто стоял на месте)
Last edited by flames on 2004-11-26 20:30:10, edited 1 time in total.