Page 1 of 2

help Run

Posted: 2010-09-22 12:44:53
by kirpaaa
в чем проблема ?
скрипт должен работать при ,exec Looting он работает максимум 30 минут как надо а потом виснет в загрузках :(
Version 312.19

sub Looting()
var t,l,m
m=13 ## ?????????? ????? ??? ????
t=1820
dim LootingItem[15] ## ?????? ?????? ??? ????
LootingItem[1] = 0x13BA ## ?????
LootingItem[2] = 0x13B9 ## ?????
LootingItem[3] = 0x143C ## ????
LootingItem[4] = 0x0F63 ## ????
LootingItem[5] = 0x0F46 ## ????????
LootingItem[6] = 0x143E ## ?????
LootingItem[7] = 0x1406 ## ????
LootingItem[8] = 0x1BC3 ## ??????
LootingItem[9] = 0x13FC ## ??????
LootingItem[10] = 0x1400 ## ????
LootingItem[11] = 0x13B1 ## ??????
LootingItem[12] = 0x1515 ## ??????
LootingItem[13] = 0x204E ## ??????
LootingItem[14] = 0x13FE ## ?????
LootingItem[15] = 0x0B16 ## ice sword

uo.set("finddistance",4)
for l=1 to m
uo.findtype(LootingItem[l],"-1","1")
while uo.FindCount() > 0
uo.grab("0","finditem")
wait(t)
uo.findtype(LootingItem[l],"-1","1")
wend
next


if uo.GetSerial("lastcontainer") == uo.GetSerial(uo.ObjAtLayer('Bpack')) then
goto end
endif
for l=1 to m
uo.FindType(LootingItem[l],"-1","lastcontainer")
while UO.FindCount() > 0
uo.grab(0,"finditem")
wait(t)
uo.FindType(LootingItem[l],"-1","lastcontainer")
wend
next
end:
end sub

Re: help Run

Posted: 2010-09-22 16:36:35
by Savage
dim LootingItem[16] ## ?????? ?????? ??? ????

Re: help Run

Posted: 2010-09-22 16:40:49
by Savage
Вообщето лучше сделать один цикл перебора лотингитемс, а внутри него выбирать лут с земли или с ластконта. Будет шустрее. Конкуренты отдыхают.

Re: help Run

Posted: 2010-09-22 18:29:15
by kirpaaa
напишите с одним циклом :) а то я слаб в инжекте ... :P

Re: help Run

Posted: 2010-09-22 18:31:39
by kirpaaa
Savage wrote:dim LootingItem[16] ## ?????? ?????? ??? ????


dim 15 я же стартанул с 1 :)

Re: help Run

Posted: 2010-09-22 18:36:31
by Savage
Не. Ща в лом. Может потом. Насчёт "слаб в инжекте" имеет смысл почитать уроки из раздела леарнинг. Там немного. На вечер изучения всего. Необязательно сразу всё понимать, но очень полезно будет прочитать сразу все. Чтото да и отложится. А потом можно будет интересующий вопрос более детально проштудировать.

Это если конечно, есть желание освоить программу и разобраться в скриптописании. :D


А 0 остался за кадром. Значит всего элементов 16. Когда происходят подобные ошибки, лучше рестартануть клиент. А то таких глюков насмотришься что век не забудешь :D

Re: help Run

Posted: 2010-09-22 18:46:49
by kirpaaa
а покажи к примеру как пишется одним циклом

Re: help Run

Posted: 2010-09-22 19:16:21
by Savage

Re: help Run

Posted: 2010-09-23 10:56:57
by Mirage
1) ковычки у типов проставил
2) m = 15 (хотя не существенно но правильнее)
3) заменил последний goto на нормальный if
Проверяй.

Code: Select all

sub Looting()
   var t,l,m
   m=15
   t=1820
   dim LootingItem[15] ## ?????? ?????? ??? ????
   LootingItem[1] = '0x13BA' ## ?????
   LootingItem[2] = '0x13B9' ## ?????
   LootingItem[3] = '0x143C' ## ????
   LootingItem[4] = '0x0F63' ## ????
   LootingItem[5] = '0x0F46' ## ????????
   LootingItem[6] = '0x143E' ## ?????
   LootingItem[7] = '0x1406' ## ????
   LootingItem[8] = '0x1BC3' ## ??????
   LootingItem[9] = '0x13FC' ## ??????
   LootingItem[10] = '0x1400' ## ????
   LootingItem[11] = '0x13B1' ## ??????
   LootingItem[12] = '0x1515' ## ??????
   LootingItem[13] = '0x204E' ## ??????
   LootingItem[14] = '0x13FE' ## ?????
   LootingItem[15] = '0x0B16' ## ice sword
   uo.set("finddistance",4)
   for l=1 to m
      uo.findtype(LootingItem[l],"-1","1")
      while uo.FindCount() > 0
         uo.grab("0","finditem")
         wait(t)
         uo.findtype(LootingItem[l],"-1","1")
      wend
   next
   if uo.GetSerial("lastcontainer") <> uo.GetSerial(uo.ObjAtLayer('Bpack')) then
      for l=1 to m
         uo.FindType(LootingItem[l],"-1","lastcontainer")
         while UO.FindCount() > 0
            uo.grab(0,"finditem")
            wait(t)
            uo.FindType(LootingItem[l],"-1","lastcontainer")
         wend
      next
   endif
end sub

Re: help Run

Posted: 2010-09-23 11:33:30
by Savage
Не будет работать. :D

Re: help Run

Posted: 2010-09-23 11:50:15
by kirpaaa
почему Не будет работать. ? вроде-бы работает как и раньше :)

Re: help Run

Posted: 2010-09-23 12:34:26
by Savage
Ошибка в определении массива так и осталась.

Re: help Run

Posted: 2010-09-23 15:54:54
by kirpaaa
:( поправь :)

Re: help Run

Posted: 2010-09-24 08:39:28
by Mirage
Savage wrote:Ошибка в определении массива так и осталась.

У него счет идет с 1 до 15. Это 15 ячеек. Так что все правильно ;)

все три массива жизнеспособны.

Code: Select all

 dim x[3]
x[0]
x[1]
x[2]

 dim x[3]
x[1]
x[2]
x[3]

 dim x[668]
x[666]
x[667]
x[668]


и даже вот так работает :)

Code: Select all

sub test()
var n
Dim r[888]
r[666] = '666'
r[777] = '777'
r[888] = '888'
For n = 666 To 666
   uo.print(r[n])
   wait(300)
next
For n = 777 To 777
   uo.print(r[n])
   wait(300)
next
For n = 888 To 888
   uo.print(r[n])
   wait(300)
next
end sub

Re: help Run

Posted: 2010-09-24 12:45:58
by Savage
Сильно заблуждаешься. Жизнеспособны только лишь потому что портят некритичные участки памяти. Если запись последнего элемента испортит стэк, будет жопа.
Пофиг с какого элемента идёт счёт, нулевой элемент присутствует в массиве всегда.

Re: help Run

Posted: 2010-09-24 13:01:58
by kirpaaa
так и не понял , в чем проблема скрипта ? :)

Re: help Run

Posted: 2010-09-24 13:28:36
by Savage

Re: help Run

Posted: 2010-09-26 21:51:06
by kirpaaa
up кто еще чего умного посоветует ? :)

Re: help Run

Posted: 2010-09-27 07:41:05
by Mirage
лома по инсайду лазить.
Опиши по человеческому что у тебя в массиве
LootingItem[1] = 0x13BA ## ?????
LootingItem[2] = 0x13B9 ## ????
.....

Re: help Run

Posted: 2010-09-27 09:07:21
by kirpaaa
sub Looting()
var t,l,m
m=13
t=1820
dim LootingItem[13]
LootingItem[1] = '0x13BA' ##Sw
LootingItem[2] = '0x023F' ##Shield
LootingItem[3] = '0x13FE' ##Katana
LootingItem[4] = '0x1515' ##Cloak
LootingItem[5] = '0x13FC' ##Crossbow
LootingItem[6] = '0x143E' ##Scythe
LootingItem[7] = '0x13FD' ##CrossBow
LootingItem[8] = '0x1BC3' ##Shield
LootingItem[9] = '0x0287' ##Sw
LootingItem[10] = '0x204E' ##DeathRobe
LootingItem[11] = '0x143F' ##FScythe
LootingItem[12] = '0x1530' ##Cloak
LootingItem[13] = '0x0284' ##Robe
uo.set("finddistance",4)
for l=1 to m
uo.findtype(LootingItem[l],"-1","1")
while uo.FindCount() > 0
uo.grab("0","finditem")
wait(t)
uo.findtype(LootingItem[l],"-1","1")
wend
next
if uo.GetSerial("lastcontainer") <> uo.GetSerial(uo.ObjAtLayer('Bpack')) then
for l=1 to m
uo.FindType(LootingItem[l],"-1","lastcontainer")
while UO.FindCount() > 0
uo.grab(0,"finditem")
wait(t)
uo.FindType(LootingItem[l],"-1","lastcontainer")
wend
next
endif
end sub