Page 1 of 1
автограб регов из сумки
Posted: 2008-01-20 09:41:18
by AzaToT
Code: Select all
sub autograb()
var n = 100 , q , i #n - eto po skolko regov vi obi4no berete
####Spisok Regov####
DIM Reags[8]
Reags[0] = '0x0F7B' #Blood Moss
Reags[1] = '0x0F86' #Mandrake Roots
Reags[2] = '0x0F7A' #Black Pearls
Reags[3] = '0x0F88' #Nightshades
Reags[4] = '0x0F8C' #Sulphorous Ash
Reags[5] = '0x0F84' #Garlics
Reags[6] = '0x0F85' #Ginsengs
Reags[7] = '0x0F8D' #Spider's Silk
####Dark Magic#####
#Reags[8] = '0x0F7D' #Vial of Blood
#Reags[9] = '0x0F7E' #Bones
#Reags[10] = '0x0F81' #Fertile Dirt
####Light Magic####
#Reags[11] = '0x0F8F' #Volcanic Ash
#Reags[12] = '0x0F7F' #Brimstone
wait(1000)
UO.Print('Viberi svou sumku s regami')
UO.AddObject('MyBag')
while UO.Targeting()
wait(1000)
wend
UO.SetCatchBag('MyBag')
wait(100)
UO.UseObject('MyBag')
wait(1000)
UO.Print('Viberi sumku gde lezhat VSE regi')
UO.AddObject('BigBag')
while UO.Targeting()
wait(1000)
wend
UO.UseObject('BigBag')
####SAM SKRIPT#####
for i=0 to 7
wait(1000)
UO.Count(Reags[i])
q = n - UO.Count(Reags[i])
wait(100)
If UO.Count(Reags[i]) < n then
UO.FindType(Reags[i],'0xffff','BigBag')
wait(100)
else
next
endif
If UO.GetQuantity('finditem') > q then
wait(500)
UO.Grab(q,'finditem')
else
UO.Grab('finditem')
endif
next
wait(2000)
UO.UnSetCatchBag()
UO.Print('AutoGrab Done')
end sub
Вот это скрипт для автограба регов из сумки. Он считает кол-во каждого рега у вас и, если нужно, берет столько, сколько нужно добрать до необходимого кол-ва.
Проблема в том что на моем шарде кроме есть четыре типа классов: обычные, зеленые, темные и светлые. Зеленые и обычные пользуются только стандартным набором регов, а у темных и светлых есть еще несколько своих(в скрипте их графики прописаны). Так вот, как замутить более-менее простую схему выбора комплекта регов, чтобы не загружать в автолоад три скрипта?
Re: автограб регов из сумки
Posted: 2008-01-20 10:58:57
by Kynep
AzaToT wrote:[Вот это скрипт для автограба регов из сумки. Он считает кол-во каждого рега у вас и, если нужно, берет столько, сколько нужно добрать до необходимого кол-ва.
Проблема в том что на моем шарде кроме есть четыре типа классов: обычные, зеленые, темные и светлые. Зеленые и обычные пользуются только стандартным набором регов, а у темных и светлых есть еще несколько своих(в скрипте их графики прописаны). Так вот, как замутить более-менее простую схему выбора комплекта регов, чтобы не загружать в автолоад три скрипта?
Code: Select all
sub autograb()
var n = 100 , q , i, a=0, b=0 #n - eto po skolko regov vi obi4no berete
####Spisok Regov####
DIM Reags[8]
Reags[0] = '0x0F7B' #Blood Moss
Reags[1] = '0x0F86' #Mandrake Roots
Reags[2] = '0x0F7A' #Black Pearls
Reags[3] = '0x0F88' #Nightshades
Reags[4] = '0x0F8C' #Sulphorous Ash
Reags[5] = '0x0F84' #Garlics
Reags[6] = '0x0F85' #Ginsengs
Reags[7] = '0x0F8D' #Spider's Silk
####Dark Magic#####
Reags[8] = '0x0F7D' #Vial of Blood
Reags[9] = '0x0F7E' #Bones
Reags[10] = '0x0F81' #Fertile Dirt
####Light Magic####
Reags[11] = '0x0F8F' #Volcanic Ash
Reags[12] = '0x0F7F' #Brimstone
wait(1000)
UO.Print('Viberi svou sumku s regami')
UO.AddObject('MyBag')
while UO.Targeting()
wait(1000)
wend
UO.SetCatchBag('MyBag')
wait(100)
UO.UseObject('MyBag')
wait(1000)
UO.Print('Viberi sumku gde lezhat VSE regi')
UO.AddObject('BigBag')
while UO.Targeting()
wait(1000)
wend
UO.UseObject('BigBag')
UO.Print('Kakoy klass?')
UO.DeleteJournal()
repeat
wait(100)
until UO.InJournal('normal') or UO.InJournal('dark') or UO.InJournal('light')
If UO.InJournal('normal') then
a = 0
b = 7
endif
If UO.InJournal('dark') then
a = 0
b = 10
endif
If UO.InJournal('light') then
a = 11
b = 12
endif
####SAM SKRIPT#####
for i = a to b
wait(1000)
UO.Count(Reags[i])
q = n - UO.Count(Reags[i])
wait(100)
If UO.Count(Reags[i]) < n then
UO.FindType(Reags[i],'0xffff','BigBag')
wait(100)
else
next
endif
If UO.GetQuantity('finditem') > q then
wait(500)
UO.Grab(q,'finditem')
else
UO.Grab('finditem')
endif
next
wait(2000)
UO.UnSetCatchBag()
UO.Print('AutoGrab Done')
a = 0
b = 0
end sub
Попробуй так, запускаешь, указываешь мешки, он спрашивает, какой класс говоришь normal, dark, light. Берет нужные реги, пробуй
Posted: 2008-01-20 15:18:41
by AzaToT
мм спасибо
но
нельзя ли както сделать так чтобы не приходилось запускатть скрипт два раза? дело в том что лайт и дарк классы юзают нормальные+свои реги а зеленые и обычные классы юзают только нормальные.
Posted: 2008-01-20 15:32:19
by AzaToT
я скрипт в общемто написал сам почти без чужой помощи,
просто не умею обращатся с массивами
как то можно циклы задавать подобным образом:
for i = 0 to 7 , a to b ?
Posted: 2008-01-20 15:33:50
by Kynep
AzaToT wrote:мм спасибо
но
нельзя ли както сделать так чтобы не приходилось запускатть скрипт два раза? дело в том что лайт и дарк классы юзают нормальные+свои реги а зеленые и обычные классы юзают только нормальные.
Ну для Дарка подправил, а вот с лайтом сложнее. ХЗ щас мыслей ни каких нет, может попозже появятся или кто то другой предложит решение.
Posted: 2008-01-20 15:37:20
by Kynep
AzaToT wrote:я скрипт в общемто написал сам почти без чужой помощи,
просто не умею обращатся с массивами
как то можно циклы задавать подобным образом:
for i = 0 to 7 , a to b ?
нет что бы два диапазона сразу, незя.
Posted: 2008-01-21 01:59:53
by CuHTpoH
Code: Select all
for i = 0 to 7
for a = X to b
...
next
next
не это ли?
Posted: 2008-01-21 02:41:45
by Grin
и что получилось?
самый простой вариант это просто сделать 2 чередующих икла
первый накладывает только нормальные, второй дополнительные по выбору, разница только в первом цикле
Code: Select all
...
If UO.InJournal('dark') then
a = 8
b = 10
endif
If UO.InJournal('light') then
a = 11
b = 12
endif
for i = 0 to 7
...
next
for i = a to b
...
next
...
Posted: 2008-01-21 09:07:10
by Kynep
Grin wrote:и что получилось?
самый простой вариант это просто сделать 2 чередующих икла
первый накладывает только нормальные, второй дополнительные по выбору, разница только в первом цикле
Code: Select all
...
If UO.InJournal('dark') then
a = 8
b = 10
endif
If UO.InJournal('light') then
a = 11
b = 12
endif
for i = 0 to 7
...
next
for i = a to b
...
next
...
Ок, а как быть с нормальными? ведь скрипт будет ждать ввода слова. Если ввести normal? что будет делать второй цикл? Или приравнять обе переменные к нулю?
Posted: 2008-01-21 11:48:33
by Grin
обе переменые утебя инициализируются по 0, а выход из цикла ожидания тотже, проверка на 3 слова.
Posted: 2008-01-21 11:51:35
by Kynep
Grin wrote:обе переменые утебя инициализируются по 0, а выход из цикла ожидания тотже, проверка на 3 слова.
Ну в принципе должно сработать )

Posted: 2008-01-21 17:59:11
by AzaToT
Code: Select all
sub autograb()
var n = 100 #po skolko regov berete
var q , i , a , b
####Spisok Regov####
DIM Reags[8]
Reags[0] = '0x0F7B' #Blood Moss
Reags[1] = '0x0F86' #Mandrake Roots
Reags[2] = '0x0F7A' #Black Pearls
Reags[3] = '0x0F88' #Nightshades
Reags[4] = '0x0F8C' #Sulphorous Ash
Reags[5] = '0x0F84' #Garlics
Reags[6] = '0x0F85' #Ginsengs
Reags[7] = '0x0F8D' #Spider's Silk
####Dark Magic#####
#Reags[8] = '0x0F7D' #Vial of Blood
#Reags[9] = '0x0F7E' #Bones
#Reags[10] = '0x0F81' #Fertile Dirt
####Light Magic####
#Reags[11] = '0x0F8F' #Volcanic Ash
#Reags[12] = '0x0F7F' #Brimstone
wait(1000)
UO.Print('Viberi svou sumku s regami')
UO.AddObject('MyBag')
while UO.Targeting()
wait(1000)
wend
UO.SetCatchBag('MyBag')
wait(100)
UO.UseObject('MyBag')
wait(1000)
UO.Print('Viberi sumku gde lezhat VSE regi')
UO.AddObject('BigBag')
while UO.Targeting()
wait(1000)
wend
UO.UseObject('BigBag')
UO.Print('Viberi nabor regov (dark,light,normal)')
UO.DeleteJournal()
Repeat
wait(1000)
Until UO.InJournal('normal') or UO.InJournal('dark') or UO.InJournal('light')
####SAM SKRIPT#####
for i=0 to 7
wait(1000)
UO.Count(Reags[i])
q = n - UO.Count(Reags[i])
wait(100)
If UO.Count(Reags[i]) < n then
UO.FindType(Reags[i],'0xffff','BigBag')
wait(100)
else
next
endif
If UO.GetQuantity('finditem') > q then
wait(500)
UO.Grab(q,'finditem')
else
UO.Grab('finditem')
endif
next
If UO.InJournal('dark') then
a = 8
b = 10
endif
If UO.InJournal('light') then
a = 11
b = 12
endif
If UO.InJournal('normal') then
a = 0
b = 0
endif
####Special Reags####
for i=a to b
wait(1000)
UO.Count(Reags[i])
q = n - UO.Count(Reags[i])
wait(100)
If UO.Count(Reags[i]) < n then
UO.FindType(Reags[i],'0xffff','BigBag')
wait(100)
else
next
endif
If UO.GetQuantity('finditem') > q then
wait(500)
UO.Grab(q,'finditem')
else
UO.Grab('finditem')
endif
next
wait(2000)
UO.UnSetCatchBag()
UO.Print('AutoGrab Done')
end sub
если так то выдает line 81: runtime error
Posted: 2008-01-21 22:52:07
by Kynep
AzaToT wrote:если так то выдает line 81: runtime error
Code: Select all
sub autograb()
var n = 100 #po skolko regov berete
var q , i , a , b
####Spisok Regov####
DIM Reags[8]
Reags[0] = '0x0F7B' #Blood Moss
Reags[1] = '0x0F86' #Mandrake Roots
Reags[2] = '0x0F7A' #Black Pearls
Reags[3] = '0x0F88' #Nightshades
Reags[4] = '0x0F8C' #Sulphorous Ash
Reags[5] = '0x0F84' #Garlics
Reags[6] = '0x0F85' #Ginsengs
Reags[7] = '0x0F8D' #Spider's Silk
####Dark Magic#####
Reags[8] = '0x0F7D' #Vial of Blood
Reags[9] = '0x0F7E' #Bones
Reags[10] = '0x0F81' #Fertile Dirt
####Light Magic####
Reags[11] = '0x0F8F' #Volcanic Ash
Reags[12] = '0x0F7F' #Brimstone
wait(1000)
UO.Print('Viberi svou sumku s regami')
UO.AddObject('MyBag')
while UO.Targeting()
wait(1000)
wend
UO.SetCatchBag('MyBag')
wait(100)
UO.UseObject('MyBag')
wait(1000)
UO.Print('Viberi sumku gde lezhat VSE regi')
UO.AddObject('BigBag')
while UO.Targeting()
wait(1000)
wend
UO.UseObject('BigBag')
UO.Print('Viberi nabor regov (dark,light,normal)')
UO.DeleteJournal()
Repeat
wait(1000)
Until UO.InJournal('normal') or UO.InJournal('dark') or UO.InJournal('light')
If UO.InJournal('dark') then
a = 8
b = 10
endif
If UO.InJournal('light') then
a = 11
b = 12
endif
If UO.InJournal('normal') then
a = 0
b = 0
endif
####SAM SKRIPT#####
for i=0 to 7
wait(1000)
UO.Count(Reags[i])
q = n - UO.Count(Reags[i])
wait(100)
If UO.Count(Reags[i]) < n then
UO.FindType(Reags[i],'0xffff','BigBag')
wait(100)
endif
If UO.GetQuantity('finditem') > q then
wait(500)
UO.Grab(q,'finditem')
else
UO.Grab('finditem')
endif
next
####Special Reags####
for i=a to b
wait(1000)
UO.Count(Reags[i])
q = n - UO.Count(Reags[i])
wait(100)
If UO.Count(Reags[i]) < n then
UO.FindType(Reags[i],'0xffff','BigBag')
wait(100)
endif
If UO.GetQuantity('finditem') > q then
wait(500)
UO.Grab(q,'finditem')
else
UO.Grab('finditem')
endif
next
wait(2000)
UO.UnSetCatchBag()
UO.Print('AutoGrab Done')
end sub
пробуй
Posted: 2008-01-22 10:29:00
by AzaToT
блин затупил )) спс
Posted: 2008-01-22 10:34:08
by Kynep
AzaToT wrote:блин затупил )) спс
Не за что

рад был помочь