интересная функция

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
flames
Posts: 19
Joined: 2004-08-25 15:48:35

интересная функция

Post by flames »

Суть проблемы. Мне необходимо написать функцию на проверку наличия посторонних итемов на экране. Например чар стоит посреди леса, если появляется другой игрок или итем, например кто нибудь скинул на землю топор, лопату, логи, впрочем любой итем (из под хайда), или просто кто нибудь поставил дом, то скрипт переходит в состояние паузы. Если кто то сталкивался с такой проблемой, пожалуйста, дайте функцию, чтобы я с ней разобрался, или хотя бы намекните на осуществление.
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

обрати внимание на
,findtype -1 -1 ground
flames
Posts: 19
Joined: 2004-08-25 15:48:35

Post by flames »

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
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

flames wrote:

Code: Select all

 uo.ignore('0x001E320B','0x0190','0x07D3')

примечание: у [yhlp_ignore] один параметр, остальные игнорируются
если этой командой ты исключал из поиска на земле своего чара, то проще это сделать как uo.ignore("self")
flames
Posts: 19
Joined: 2004-08-25 15:48:35

Post by flames »

Спасибо за подсказку. Также я сталкнулся с проблемой, что в процессе выполнения макроса, эта функция находит некоторые обьекты, которых нет на самом деле, тоесть я узнаю их координаты, тип, но на этом месте нет никакого итема, попытки сграбить его ни к чему не приводят, хотя функция его находит, причем если запустить ее с другого клиента, то этот итем не находится (также после релогина). В чем может быть причина такой проблемы? Если не трудно, подскажите.
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

обьясняю. не дошли руки до выяснения причин определённого глюка:

когда некоторые вещи исчезают с земли, они всё равно остаются в памяти инжекта.

в одном из своих скриптов мне пришлось добавлять подчищающий кусок, который определял, если такое случилось, то подчищал базу данных вещей через [yhlp_forget] и перезапрашивал предметы по [yhlp_resend]
flames
Posts: 19
Joined: 2004-08-25 15:48:35

Post by flames »

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
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

это не удаляет заглючившие вещи из мира, а так же зря напрягает трафик и сервер
flames
Posts: 19
Joined: 2004-08-25 15:48:35

Post by flames »

Видимо тогда придется каждый раз при выявления постороннего предмета, проверять все ли в порядке и если да, то игнорить найденый итем. Глупо, но другого выхода я не вижу, учитывая мои более чем скромные знания в скриптописании. Попутно придется развиваться и пытаться решить проблему, потому что это обязательно, иначе вся моя затея теряет смысл. (немогу я понять этого, стою посреди шахты, запускаю функцию, ничего не находит в течении часа-двух, потом бац и находит, хотя я просто стоял на месте)
Last edited by flames on 2004-11-26 20:30:10, edited 1 time in total.
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

да примерно так. только удалять не заглючивший итем, а все итемы нужных типов на земле вокруг, с помощью [yhlp_forget], потом делать ресенд
Post Reply