Yoko
http://forum.yoko.com.ua/

Прошу помочь в несложной доработки
http://forum.yoko.com.ua/viewtopic.php?f=20&t=3854
Page 1 of 1

Author:  sn [ 2005-04-28 08:44:45 ]
Post subject:  Прошу помочь в несложной доработки

sub vetki()
var x
UO.Set('lasttarget','laststatus')
x=uo.getserial('lasttarget')
uo.findtype("0x0A92")
if uo.findcount() then
uo.drop("1",str(uo.getx(x)-1),str(uo.gety(x)),0,"finditem")
end if
wait(1000)
uo.findtype("0x0A92")
if uo.findcount() then
uo.drop("1",str(uo.getx(x)),str(uo.gety(x)-1),0,"finditem")
end if
wait(1000)
uo.findtype("0x0A92")
if uo.findcount() then
uo.drop("1",str(uo.getx(x)+1),str(uo.gety(x)),0,"finditem")
end if
wait(1000)
uo.findtype("0x0A92")
if uo.findcount() then
uo.drop("1",str(uo.getx(x)),str(uo.gety(x)+1),0,"finditem")
end if
uo.print('DROPPED')
end sub




Есть значится следующий скрипт. Работает нормально, но хотелось бы чтоб он кидал не только определенный тип, а скажем 2-3, тоесть я так понимаю нужно всавить dim[], но я толком не сильно в инжекте разбираюсь.
Выручите пожалуйсто, сделайте как прошу, думаю не слжно.

Заранее блогадарен!

Author:  Beyonder [ 2005-04-28 09:20:22 ]
Post subject: 

Советую не просто юзать, а сначала понять как он работает чтобы потом было легче самому.

Code:
sub vetki()
  dim DropItems[5] # Массив вещей. Число указывать на 1 больше чем последний индекс
  var DropItemsCnt=5 # Здесь количество элементов массива (не номер последнего а количество)
  DropItems[0]='0x0000' # Вещь 1
  DropItems[1]='0x0000' # Вещь 2
  DropItems[2]='0x0000' # Вещь 3
  DropItems[3]='0x0000' # Вещь 4
  DropItems[4]='0x0000' # Вещь 5
  var x
  var DropCnt=5
  var iDropItem
  x=uo.getserial('laststatus')

  for var iDrop=0 to DropCnt  ## Цикл бросков
    uo.findtype(DropItems[0])  ## Ищем первый обьект
    iDropItem=1 ## Дальше будем искать начиная с второго. (Индекс первого = 0)
    while not UO.FindCount() and iDropItem<DropItemCnt ## Пока ничего не нашли или не перебрали все типы
      uo.findtype(DropItems[iDropItem]) ## Ищем тип вещи с следующим номером
      iDropItem=iDropItem+1 # Номер следующей вещи увеличиваем на 1 чтобы не искать ту-же вещь снова
    wend
   
    if uo.findcount() then
      uo.drop("1",str(uo.getx(x)-1),str(uo.gety(x)),0,"finditem")
    end if
    wait(1000)

    uo.print('DROPPED')
  next
end sub

Author:  sn [ 2005-04-28 09:32:41 ]
Post subject: 

Спасибо, как тут не понять, каждая строка расписана.

Я думаю до y и z я уж как-нить сам :)

Еще раз спасибо!

Author:  sn [ 2005-04-29 07:34:48 ]
Post subject: 

Дас, что-то в этом скрипте все равно не работает, одну ошибку нашел, а вот дальше труднее, ты там не дописал букву одну, но скрипт все равно работает как-то странно он кидает пеки, потом с зебли берет опять кидает и как-то хоотично все это долго перекидывает :)

Author:  Beyonder [ 2005-04-29 07:50:55 ]
Post subject: 

Хмм...
Может ты не прописал типы вещей?
Ну а вот немного переделанный вариант:
Code:
sub vetki() 
  dim DropItems[5] # Массив вещей. Число указывать на 1 больше чем последний индекс
  var DropItemsCnt=5 # Здесь количество элементов массива (не номер последнего а количество)
  DropItems[0]='0x0000' # Вещь 1
  DropItems[1]='0x0000' # Вещь 2
  DropItems[2]='0x0000' # Вещь 3
  DropItems[3]='0x0000' # Вещь 4
  DropItems[4]='0x0000' # Вещь 5
  var x
  var DropCnt=5
  var iDropItem
  x=uo.getserial('laststatus')

  for var iDrop=0 to DropCnt  ## Цикл бросков
    uo.findtype(DropItems[0],-1,'my')  ## Ищем первый обьект
    iDropItem=1 ## Дальше будем искать начиная с второго. (Индекс первого = 0)
    while not UO.FindCount() and iDropItem<DropItemCnt ## Пока ничего не нашли или не перебрали все типы
      uo.findtype(DropItems[iDropItem],-1,'my') ## Ищем тип вещи с следующим номером
      iDropItem=iDropItem+1 # Номер следующей вещи увеличиваем на 1 чтобы не искать ту-же вещь снова
    wend
   
    if uo.findcount() then
      uo.drop("1",str(uo.getx(x)-1),str(uo.gety(x)),0,"finditem")
    end if
    wait(1000)

    uo.print('DROPPED')
  next
end sub

Author:  sn [ 2005-04-29 08:17:42 ]
Post subject: 

Такс...
while not UO.FindCount() and iDropItem<DropItemCnt ## Пока ничего не нашли или не перебрали все типы

Тут кажись надо исправить DropItemCnt на DropItemsCnt

ЩА посмотрю канает ли этот

Author:  Beyonder [ 2005-04-29 08:36:02 ]
Post subject: 

Проблемы были потому, что я не понял впринципе что скрипт должен делать :). Я думал что он должен кидать взрывчатку, а оказываеться закидывать сундуками.
Вот нормальный вариант:
Code:
sub vetki() 
  dim DropItems[5] # Массив вещей. Число указывать на 1 больше чем последний индекс
  var DropItemsCnt=5 # Здесь количество элементов массива (не номер последнего а количество)
  DropItems[0]='0x0000' # Вещь 1
  DropItems[1]='0x0000' # Вещь 2
  DropItems[2]='0x0000' # Вещь 3
  DropItems[3]='0x0000' # Вещь 4
  DropItems[4]='0x0000' # Вещь 5
  var x
  var DropCnt=3
  var iDropItem
  x=uo.getserial('laststatus')

  for var iDrop=0 to DropCnt  ## Цикл бросков
    uo.findtype(DropItems[0],-1,'my')  ## Ищем первый обьект
    iDropItem=1 ## Дальше будем искать начиная с второго. (Индекс первого = 0)
    while not UO.FindCount() and iDropItem<DropItemsCnt ## Пока ничего не нашли или не перебрали все типы
      uo.findtype(DropItems[iDropItem],-1,'my') ## Ищем тип вещи с следующим номером
      iDropItem=iDropItem+1 # Номер следующей вещи увеличиваем на 1 чтобы не искать ту-же вещь снова
    wend
   
    if uo.findcount() then
      uo.drop("1",GetFromNum(iDrop,uo.getx(x),1,2),GetFromNum(iDrop,uo.gety(x),0,3),0,"finditem")
    end if
    wait(1000)

    uo.print('DROPPED')
  next
end sub

sub GetFromNum(Num,Val,PlusVal,MinVal)
if Num==PlusVal then
return Val+1
end if
if Num==MinVal then
return Val-1
end if
return Val
end sub

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/