нужно добавить

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
rusa
Posts: 22
Joined: 2011-05-02 17:13:51

нужно добавить

Post by rusa »

проблема в том что типы совпадают и он бежит к челу который стоит за стеной
я так понимаю нужно добавить чтобы он ещё и по имени проверял UO.GetName


Code: Select all

var distance='10' # дистанция поиска мобов
   var corpser=1 # 1-резать труп # 0-не резать труп
   
sub main()
   var n, m, mob
   var tweapon=uo.getserial(uo.objatlayer('Rhand'))
   var tshield=uo.getserial(uo.objatlayer('Lhand'))
   
   Dim npc[10]
   npc[0]=1 # count
   npc[1]='0x0038'
   npc[2]=''
   npc[3]=''
   
   Dim loot[50]
   loot[0]=3 # count
   loot[1]='0x0F7E'
   loot[2]='0x0E76'
   loot[3]='0x0EED'
   
   uo.set('finddistance',distance)
   while 1
      for n=1 to npc[0]
         uo.findtype(npc[n],-1,'ground')
         if uo.findcount() then
            uo.useobject(tweapon)
            uo.useobject(tshield)
            wait(100)
            mob=uo.getserial('finditem')
            kill(mob)
            uo.useobject('lastcorpse')
            checklag()
            wait(1000)
            for m=1 to loot[0]
               while uo.getquantity('<'+loot[m])
                  uo.moveitem('<'+loot[m])
                  wait(700)
               wend
            next
            while uo.life<uo.str-20 and uo.count('0x0E21')
               uo.bandageself()
               wait(3500)
            wend
            if uo.count('0x0E20') then
               uo.waittargettype('0x1008')
               uo.usetype('0x0E20')
               wait(1000)
            endif
         endif
      next
      wait(1000)
   wend
endsub
sub kill(mob)
   var n
   checklag()
   for n=0 to 100
      uo.attack(mob)
      if uo.getdistance(mob)>1 then
         walkn(0,0,mob)
      endif
      if uo.injournal('Body of') then
         if corpser==1 then
            uo.waittargetobject('lastcorpse')
            wait(100)
            uo.usetype('0x0F51')
            wait(500)   
         endif
         return
      endif
      wait(1000)
   next
endsub
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: нужно добавить

Post by ZeroDX »

А что у однотипных npc разные имена?(как я понимаю это либо люди, либо орки какие-нибудь)
Если убиение сей твари производится в загоне, то проще ограничить по координатам. Допустим тварюгина координата x вне диапазона допустимых координатЪ (загон) [0;100] (края загона по координате х)

Code: Select all

mob=uo.getserial('finditem')
if uo.getx(mob) <= 100 and uo.getx(mob) >= 0 then
  if аналогичная проверка по у координате then
    kill(mob)
  else
    uo.ignore(mob)
  endif
else
  uo.ignore(mob)
endif

Поиск в журнале нашёл (sub kill()), а затирание строки из журнала нету.
Last edited by ZeroDX on 2012-01-25 00:40:28, edited 1 time in total.
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Re: нужно добавить

Post by Scripts Writer »

Боюсь, следующим сообщением будет "Парни, пишет 'Function аналогичная not found'".
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: нужно добавить

Post by ZeroDX »

ни кто и не заметил, что можно срезать пару строк :P

Code: Select all

mob=uo.getserial('finditem')
if uo.getx(mob) <= 100 and uo.getx(mob) >= 0 and uo.gety(mob) <= 100 and uo.gety(mob) >= 0 then
  kill(mob)
else
  uo.ignore(mob)
endif
rusa
Posts: 22
Joined: 2011-05-02 17:13:51

Re: нужно добавить

Post by rusa »

Отвечяю на поставленные вопросы

1) А что у однотипных npc разные имена? - Да! Допустим взять "Линч" и "Лорд Линч"
2) Если убиение сей твари производится в загоне - Да!
3) то проще ограничить по координатам - для меня не проще так-как немогу представить как это сделать
4) Поиск в журнале нашёл (sub kill()), а затирание строки из журнала нету. - работает без затирания


и ещё вот что хотелось бы добавить в эт скрипт

Code: Select all

Sub Stealth()
  var msg = 'have hidden|seem to hide', Time, Delay = 10
  While not UO.Hidden()
endif
    DelJournal(msg)
    Time = UO.Timer()
    UO.UseSkill('Hiding')
    Repeat
      Wait(100)
    Until UO.InJournal(msg) or UO.Hidden() or Time + Delay * 10 <= UO.Timer()
  Wend
Endsub
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: нужно добавить

Post by Mirage »

rusa wrote: 3) то проще ограничить по координатам - для меня не проще так-как немогу представить как это сделать

глаза подними - пример привели. надо поставить координаты углов загона
rusa
Posts: 22
Joined: 2011-05-02 17:13:51

Re: нужно добавить

Post by rusa »

тоесть вот так???

Code: Select all

if uo.getx(mob) <= 5360 and uo.getx(mob) >= 5367 and uo.gety(mob) <= 1353 and uo.gety(mob) >= 1344 then
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Re: нужно добавить

Post by Nmy »

что за скрипт? кто писал? что он делает?

когда я занималься ходилкой, давал время 20 секунд чтоб пройти к нпц, иначе улетал
rusa
Posts: 22
Joined: 2011-05-02 17:13:51

Re: нужно добавить

Post by rusa »

ого какие люди!!!!
у тебя же точь такойже фарм "моб"
точнее эт твой и есть
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: нужно добавить

Post by ZeroDX »

Code: Select all

Sub Stealth()
  var msg = 'have hidden|seem to hide', Time, Delay = 10
  While not UO.Hidden()
endif
    DelJournal(msg)
    Time = UO.Timer()
    UO.UseSkill('Hiding')
    Repeat
      Wait(100)
    Until UO.InJournal(msg) or UO.Hidden() or Time + Delay * 10 <= UO.Timer()
  Wend
Endsub

Откуда там endif? Добавлять нужно в ходилку, перед тем, как сделать шаг и после убийства моба. Ещё перед этим нужно отключать вармод, но это зависит от шарда, ибо есть такие, где в вармоде можно уходить в хайд). Ну и DelJournal() не забудь =).
Приятно видеть, что кто-то использует конкретно эту функцию :roll:
Наконец люди используют мои творения :cry:
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Re: нужно добавить

Post by Nmy »

viewtopic.php?f=20&t=15897

в скрипте walkn вроде таймер установлен?
If UO.GetDistance(Target)<2 OR LastTimer+100<UO.Timer() Then

не помню это 10 секунд или 100 секунд и он выходит

я это писал наверно лет 4 назад :oops:
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: нужно добавить

Post by ZeroDX »

10
rusa
Posts: 22
Joined: 2011-05-02 17:13:51

Re: нужно добавить

Post by rusa »

ZeroDX

до меня только сейчяс дощло только неуверен что координыты правильные указал . буду пробыват менять местами

покажи на что поменять или межу чем и чем нужно вставить

Code: Select all

mob=uo.getserial('finditem')
if uo.getx(mob) <= 5360 and uo.getx(mob) >= 5367 and uo.gety(mob) <= 1353 and uo.gety(mob) >= 1344 then
  kill(mob)
else
  uo.ignore(mob)
endif


с хайдом - стелс (пока ждёт респа)
тут понятно что долго возитя эт не надо
я проще сделаю
перед тем как бинты на себя кидать в ставлю While not UO.Hidden()

UO.DeleteJournal() есть в ходилке!!!
нестал полностью выкладывать скрипт посчитал ходилку ненужную
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: нужно добавить

Post by ZeroDX »

Code: Select all

var distance='10' # дистанция поиска мобов
   var corpser=1 # 1-резать труп # 0-не резать труп
   
sub main()
   var n, m, mob
   var tweapon=uo.getserial(uo.objatlayer('Rhand'))
   var tshield=uo.getserial(uo.objatlayer('Lhand'))
   
   Dim npc[10]
   npc[0]=1 # count
   npc[1]='0x0038'
   npc[2]=''
   npc[3]=''
   
   Dim loot[50]
   loot[0]=3 # count
   loot[1]='0x0F7E'
   loot[2]='0x0E76'
   loot[3]='0x0EED'
   
   uo.set('finddistance',distance)
   while 1
      for n=1 to npc[0]
         uo.findtype(npc[n],-1,'ground')
         if uo.findcount() then
            mob=uo.getserial('finditem')
            if uo.getx(mob) <= 5367 and uo.getx(mob) >= 5360 and uo.gety(mob) <= 1353 and uo.gety(mob) >= 1344 then
               uo.useobject(tweapon)
               uo.useobject(tshield)
               wait(100)
               kill(mob)
               uo.useobject('lastcorpse')
               checklag()
               wait(1000)
               for m=1 to loot[0]
                  while uo.getquantity('<'+loot[m])
                     uo.moveitem('<'+loot[m])
                     wait(700)
                  wend
               next
               while uo.life<uo.str-20 and uo.count('0x0E21')
                  uo.bandageself()
                  wait(3500)
               wend
               if uo.count('0x0E20') then
                  uo.waittargettype('0x1008')
                  uo.usetype('0x0E20')
                  wait(1000)
               endif
            else
              uo.ignore(mob)
            endif
         endif
      next
      wait(1000)
   wend
endsub
sub kill(mob)
   var n
   checklag()
   for n=0 to 100
      uo.attack(mob)
      if uo.getdistance(mob)>1 then
         walkn(0,0,mob)
      endif
      if uo.injournal('Body of') then
         if corpser==1 then
            uo.waittargetobject('lastcorpse')
            wait(100)
            uo.usetype('0x0F51')
            wait(500)   
         endif
         return
      endif
      wait(1000)
   next
endsub


вставил. в проверке по х поменял местами координаты
Last edited by ZeroDX on 2012-01-28 20:07:25, edited 1 time in total.
rusa
Posts: 22
Joined: 2011-05-02 17:13:51

Re: нужно добавить

Post by rusa »

вылетила ошибка в страке

uo.ignore(mob)

изменил

var distance='10' 10 на 30 стала работать

из 10 находит 8
2 просто невидит даже если моб меня долбит
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: нужно добавить

Post by ZeroDX »

Поправил в пред посте игнор. Засунул не в тот if
Post Reply