Page 1 of 2
все тот же БС
Posted: 2011-11-23 20:20:59
by rusa
всем хай!!!
перебрал много скриптов на БС
остановился вот на этом (ниже)
минус этого скрипта не срабатывает добор игнотов
тобишь -- кует дагеры, плавит, а когда игнотов становится 2 останавливается
а что самое интересное этим скриптом пользуются многие
выкручиваются как могут
кто та по полному загружает а кто та и вовсе ставит пилот чтобы он через определённое время перезапуска скрипт
Code: Select all
sub Blacksmithing()
var Exit=0, LastTimer, Container='0x4053827B', Forge='0x4025617C' ;Cундук в котором инги и форж.
var CountIng=100 ;Скока ингов поднимает чар
var MenuIron="'Blacksmithing' 'Weapons'"
var MenuOther="'Colored' 'Weapons'"
var MenuSwords="Weapons' 'Swords'"
var MenuDagger="'Swords' '(3'"
var i=0
dim ColorOfIng[6]
dim NameOre[6]
NameOre[0]="'"
NameOre[1]="'Rusty "
NameOre[2]="'Old Copper "
NameOre[3]="'Dull Copper "
NameOre[4]="'Bronze "
ColorOfIng[0]='0x0000' ; Iron
ColorOfIng[1]='0x0750' ; Rusty
ColorOfIng[2]='0x0590' ; Old Copper
ColorOfIng[3]='0x060A' ; Dull Copper
ColorOfIng[4]='0x0488' ; Bronze
uo.UseObject(Container)
while not uo.Dead()
for i=0 to 4
uo.FindType('0x1BEF',ColorOfIng[i],Container)
if uo.GetQuantity('finditem')>10 then
uo.Grab(STR(CountIng),'finditem')
wait(1000)
uo.Exec('automenu '+MenuDagger)
uo.Exec('automenu '+NameOre[i]+MenuSwords)
if i>0 Then
uo.Exec('automenu '+MenuOther)
end if
uo.Exec('automenu '+MenuIron)
While Exit<>1
uo.DeleteJournal()
LastTimer=uo.Timer()
uo.UseType(0x1BEF)
while not uo.InJournal("You put") and not uo.InJournal("You have failed")
wait(100)
wend
if uo.InJournal("You have failed") then
repeat
wait(100)
until uo.Timer()>=LastTimer+100 ; Время создания дагера
end if
CheckLag()
uo.FindType('0x0F51',-1,'backpack')
if uo.GetQuantity('finditem') then
uo.WaitTargetObject('finditem')
uo.UseObject(Forge)
wait(100)
end if
uo.FindType('0x1BEF',-1,'backpack')
if uo.GetQuantity('finditem')<10 then
uo.FindType('0x1BEF',ColorOfIng[i],Container)
if uo.GetQuantity('finditem')<10 then
uo.FindType('0x1BEF',ColorOfIng[i],'backpack')
uo.SetReceivingContainer(Container)
uo.Grab('all','finditem')
uo.UnSetReceivingContainer()
Exit=1
end if
else
wait(1000)
uo.Grab(STR(CountIng-10),'finditem')
end if
wend
Exit=0
uo.CancelMenu()
end if
next
wend
end sub
sub CheckLag()
if uo.Waiting()>0 then
uo.Exec("canceltarget")
end if
uo.DeleteJournal()
uo.Click('backpack')
repeat
wait(50)
until uo.InJournal('backpack')
end sub
Re: все тот же БС
Posted: 2011-11-23 21:18:37
by ZeroDX
Так ли необходимо использовать именно этот скрипт? Ковать с разных металов? И что бывает, если ковка сфизлится, и за ней сразу последует другая?
Re: все тот же БС
Posted: 2011-11-23 22:04:14
by rusa
отвечаю на поставленные вопросы
1. можно и другой использовать главное чтобы он выполнял такие функции
а) брал игноты 100ед.(айрон) когда становилось 10 или менее снова добирал до 100 (если айрон закончился то брал игноты следующие тоесть Rusty)
б) изготавливал дагеры
в) плавил их (используя форжу)
г) проверку на лаги\сейф
д) реконектор
2. да! с разных
3. если ковка физлит то срабатывает вот эта строчка
Code: Select all
until uo.Timer()>=LastTimer+100 ; Время создания дагера
я так понимаю
пытался тут врезать вот такой блок
перед форжой вроде всё работало..)))
Code: Select all
UO.DeleteJournal()
while not uo.hidden()
uo.useskill('Hiding')
cheklag()
repeat
wait(300)
until uo.injournal('seem|hidden')
wend
Re: все тот же БС
Posted: 2011-11-23 22:15:10
by ZeroDX
rusa wrote:3. если ковка физлит то срабатывает вот эта строчка
Code: Select all
until uo.Timer()>=LastTimer+100 ; Время создания дагера
я так понимаю
Верно, но что сделает сервер? Не даст ковать новых даггеров пока не пройдёт n-ное время или же ковать можно сразу?
сколько ингов нужно для ковки одного даггера?
Re: все тот же БС
Posted: 2011-11-23 22:25:16
by rusa
сразу!!! проверил при физле вылетает "You have failed to make anything."
3 игнота нужна на дагер
Re: все тот же БС
Posted: 2011-11-24 05:22:01
by rusa
добор в норме
реконект тоже робит
а с меню так как сказал
если я правильно понял то те нужно вот это......
Code: Select all
sub MenuIron()
uo.cancelmenu()
uo.automenu('Blacksmithing','Weapons')
uo.automenu('Weapons','Swords')
uo.automenu('Swords','dagger')
end sub
Code: Select all
sub MenuColor()
uo.cancelmenu()
uo.automenu('Blacksmithing','Colored Armor & Weapons')
uo.automenu('Colored Armor & Weapons','Weapons')
uo.automenu('Weapons','Swords')
uo.automenu('Swords','dagger')
end sub
Re: все тот же БС
Posted: 2011-11-24 06:07:52
by rusa
вот ещё рабочий скрипт но он медленно думает и не все инги перекидыват надо постоянно менять i но мона позаимствовать авто меню
Code: Select all
sub Blacksmithy()
VAR i
Var Forge='0x4025617C' ;ИД форжи
Var Sunduk='0x4053827B' ;ИД сундука с инготами
Var TItem='0x0f51' ;Тип того, что куём, сейчас dagger
Dim TIngot[18]
For i=0 To 17
TIngot[i]='0x1BEF' ;
next
i=0
TIngot[4]='0x1BE3' ;Copper
TIngot[6]='0x1BE5' ;Silver
TIngot[8]='0x1BE9' ;Shadow
Dim CIngot[18]
CIngot[0]='0x0000' ;Iron
CIngot[1]='0x0750' ;Rusty
CIngot[2]='0x0590' ;Old Copper
CIngot[3]='0x060A' ;Dull Copper
CIngot[4]='0x0000' ;Copper
CIngot[5]='0x0488' ;Bronze
CIngot[6]='0x1BF5' ;Silver
CIngot[7]='0x0000' ;Gold
CIngot[8]='0x096B' ;Shadow
CIngot[9]='0x0014' ;Rose
CIngot[10]='0x0193' ;Agapite
CIngot[11]='0x04C2' ;Blood Rock
CIngot[12]='0x07D5' ;Verite
CIngot[13]='0x00CE' ;Valorite
CIngot[14]='0x052D' ;Mytheril
CIngot[15]='0x0455' ;Black Rock
CIngot[16]='0x0028' ;Obsidian
CIngot[17]='0x08AF' ;Plutonium
MenuIron()
uo.useobject(Sunduk)
cheklag()
wait(200)
While 1
ff:
UO.FindType(TIngot[i],CIngot[i],'backpack')
Wait(200)
If UO.Count(TIngot[i],CIngot[i])<8 Then
If UO.Count(TIngot[i],CIngot[i])>0 Then
UO.SetReceivingContainer(Sunduk)
UO.Grab('0','finditem')
cheklag()
wait(1000)
UO.UnSetReceivingContainer()
end if
UO.FindType(TIngot[i],CIngot[i],Sunduk)
Wait(200)
If UO.GetQuantity('finditem')>=8 Then
UO.Grab('100','finditem')
cheklag()
Wait(1000)
else
i=i+1
If i>17 Then
return
end if
MenuColor()
goto ff
end if
end if
UO.DeleteJournal()
while not uo.hidden()
uo.useskill('Hiding')
cheklag()
repeat
wait(300)
until uo.injournal('seem|hidden')
wend
UO.UseType(TIngot[i],CIngot[i])
while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed")
wait(300)
wend
while uo.count(TItem)
uo.deletejournal()
uo.waittargettype(TItem)
uo.useobject(Forge)
repeat
wait(300)
until uo.injournal('You put|It is consumed')
wend
wend
end sub
sub MenuIron()
uo.cancelmenu()
uo.automenu('Blacksmithing','Weapons')
uo.automenu('Weapons','Swords')
uo.automenu('Swords','dagger')
end sub
sub cheklag()
uo.deletejournal()
uo.click('backpack')
Repeat
wait(100)
Until UO.InJournal("backpack")
end sub
sub MenuColor()
uo.cancelmenu()
uo.automenu('Blacksmithing','Colored Armor & Weapons')
uo.automenu('Colored Armor & Weapons','Weapons')
uo.automenu('Weapons','Swords')
uo.automenu('Swords','dagger')
end sub
sub Reconnector()
var ReconnectTime, RFlag
ReconnectTime = '0'
RFlag = 1
Repeat
While (UO.ObjAtLayer('Bpack') == '')
if RFlag Then
ReconnectTime = MakeTime()
RFlag = 0
endif
Wait(20000) # WorldSave Protection
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.LDblClick(357,164)
UO.LClick(616,459)
Wait(3000)
WEnd
Wait(3000)
if (RFlag == 0) and (ReconnectTime <> '0') Then
;UO.Exec('terminate Blacksmithy')
;UO.Exec('exec Blacksmithy')
UO.TextOpen()
UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
RFlag = 1
ReconnectTime = '0'
endif
Until false
end sub
sub MakeTime()
VAR D, T, Ret, i
Ret = STR(UO.Time())
T = ""
For i = 0 To Len(Ret)
T = Ret[Len(Ret)-i] + T
If (I == 2) OR (I == 4) Then
T = ":" + T
EndIf
Next
Ret = STR(UO.Date())
D = ""
For i = 0 To Len(Ret)
D = Ret[Len(Ret)-i] + D
If (I == 2) OR (I == 4) Then
D = "." + D
EndIf
Next
Ret = T + " @ " + D
RETURN Ret
end sub
Re: все тот же БС
Posted: 2011-11-24 06:47:40
by rusa
блин проверил скрипт который который я те второй скинул он оказывается тоже не катит
попробуй с этого что нибудь присмотреть
Code: Select all
var Dbag, hammer, color, ingi, fail=0
var Tbag = '0x0E76'
var dagger = '0x0F51'
var sunduk = '0x4053827B'
sub main()
uo.ignore('0x4055C04D')
uo.filterspeech('clear')
uo.findtype('0x13E3',-1,'my')
if uo.findcount() then
hammer=uo.getserial('finditem')
else
uo.msg('hammer not found')
return
endif
uo.addobject('ingi')
while uo.targeting()
wait(500)
wend
color=uo.getcolor('ingi')
ingi=uo.getgraphic('ingi')
uo.cancelmenu()
if color=='0x0000' && ingi<>'0x1BE3' && ingi<>'0x1BF5' && ingi<>'0x1BE9' then
uo.automenu('Blacksmithing','Weapons')
uo.automenu('Weapons','Swords & Blades')
uo.automenu('Swords & Blades','dagger')
else
uo.automenu('Blacksmithing','Armor & Weapons')
uo.automenu('Armor & Weapons','Weapons')
uo.automenu('Weapons','Swords & Blades')
uo.automenu('Swords & Blades','Dagger')
endif
getbag()
while 1
if uo.count(ingi,color)<10 then
uo.findtype(ingi,color,sunduk)
if uo.findcount() then
uo.moveitem('finditem','100','backpack')
checklag()
wait(700)
endif
endif
checklag()
uo.usetype(ingi)
waitforchange()
if fail>=5 then
wait(10000)
fail=0
endif
uo.findtype(dagger,-1,'backpack')
if uo.findcount() then
uo.moveitem('finditem',0,Dbag)
checklag()
checkdbag()
endif
wend
endsub
sub waitforchange()
var n
for n=0 to 100
if uo.injournal('You put') then
return
endif
if uo.injournal('You have failed') then
fail=fail+1
return
endif
wait(500)
next
endsub
sub checkdbag()
uo.findtype(-1,-1,Dbag)
if uo.findcount()>254 then
uo.ignore(Dbag)
getbag()
endif
endsub
sub getbag()
var flag=0
repeat
uo.print('Ищем мешок')
uo.findtype(Tbag,-1,Sunduk)
if uo.findcount() then
Dbag=uo.getserial('finditem')
uo.useobject(Dbag)
checklag()
wait(700)
uo.findtype(-1,-1,Dbag)
if uo.findcount()>254 then
uo.ignore(Dbag)
else
uo.moveitem(Dbag,0,sunduk,18,148,0)
checklag()
wait(700)
flag=1
endif
endif
until flag==1
endsub
sub checklag()
repeat
UO.DeleteJournal()
UO.Click('backpack')
until backpack()==1
endsub
sub backpack()
var n
for n=0 to 200
if uo.injournal('a backpack') then
return 1
endif
wait(200)
next
endsub
Re: все тот же БС
Posted: 2011-11-24 06:48:52
by Mirage
А хотите я вам насыплю соли и идей для вашего скрипта?
1) при количестве ингов в паке < 20-30 меню крафта имеет привычку меняться. Тоесть если будет ровно на 1 даггер в меню (сферы) будет не
Code: Select all
Sub MenuIron()
UO.CancelMenu()
UO.AutoMenu('Blacksmithing', 'Weapons')
UO.AutoMenu('Weapons', 'Swords')
UO.AutoMenu('Swords', 'dagger')
Endsub
а
Code: Select all
Sub MenuIron()
UO.CancelMenu()
UO.AutoMenu('Blacksmithing', 'Weapons')
UO.AutoMenu('Swords', 'dagger') ; тут зависит от версии, у меня ('Fencing', 'Dagger')
Endsub
2) Это специфика шарда что вы молоток не используете в крафте?
3) Если игра дисконектнула в процессе выбора меню, ковки даггера, добора (в принципе в 7 из 10 случаев) и сработает реконект скрипт всего скорее повиснет.
4) На мой взгляд лучше использовать отдельные скрипты для заданного цветмета. Избежите огромного количества глюков и косяков.
Re: все тот же БС
Posted: 2011-11-24 06:59:53
by ZeroDX
Молотки тоде насторожили, но ведь работает и без них.
Для автоменю по барабану на изменение в структуре (в хелпе написано)=)
не повиснет 99%
Думается мне дело в менюшке
Re: все тот же БС
Posted: 2011-11-24 07:19:07
by ZeroDX
Какая версия клиента? Какой ip, порт? Есть ли акк с более менее прокачаным бсом?
Re: все тот же БС
Posted: 2011-11-24 07:23:58
by rusa
клиент client_2.0.3.exe (Дрв)
айпи мой?
если руками дагеры делает значит дело в скрипте
первый скрипт работает только он не доберает
Re: все тот же БС
Posted: 2011-11-24 07:59:31
by Mirage
решение сюда не забудьте выложить.
Регистр всех букв меню важен кстати.
Re: все тот же БС
Posted: 2011-11-24 17:33:04
by ZeroDX
Попробуй так. я тестил... вроде работает
Code: Select all
var id_Forge = '0x4025617C', t_Dagger = '0x0F51', t_Ingots = '0x1BEF', Delay = 10, Timer, i, msg = 'put|fail', t_Hammer = '0x13E3'
var id_Container = '0x4053827B', moveCount = 99, moveDelay = 1100, a
sub Start()
UO.Exec('terminate Reconnector')
Wait(100)
UO.Exec('exec Reconnector')
UO.Exec('exec BlackSmithing')
Endsub
Sub BlackSmithing()
a = Reload()
While UO.SkillVal('Blacksmithing', 1) < 1000
UO.UseObject(id_Container)
If UO.Count(t_Ingots) >= 3 then
DelJournal(msg)
Timer = UO.Timer()
Menu(a)
UO.WaitTargetType(t_Ingots)
UO.UseType(t_Hammer)
Repeat
Wait(100)
Until UO.InJournal(msg) or Timer + Delay * 10 <= UO.Timer()
While UO.Count(t_Dagger)
UO.WaitTargetType(t_Dagger)
UO.UseObject(id_Forge)
Wait(100)
Wend
else
a = Reload()
Endif
Wend
Endsub
Sub Reload()
Dim c_Ingots[5]
c_Ingots[0] = '0x0000'
c_Ingots[1] = '0x0750'
c_Ingots[2] = '0x0590'
c_Ingots[3] = '0x060A'
c_Ingots[4] = '0x0488'
UO.FindType(t_Ingots, -1, 'backpack')
If UO.FindCount() then
CheckLag()
UO.MoveItem('finditem', -1, id_Container)
Wait(moveDelay)
Endif
For i = 0 to 4
UO.FindType(t_Ingots, c_Ingots[i], id_Container)
If UO.GetQuantity('finditem') >= 3 then
CheckLag()
UO.MoveItem('finditem', moveCount, 'backpack')
Wait(moveDelay)
Return i
Endif
Next
Endsub
Sub Menu(val)
UO.CancelMenu()
If not val then
UO.AutoMenu('Blacksmithing', 'Weapons')
else
UO.AutoMenu('Blacksmithing', 'Colored')
UO.AutoMenu('Colored', 'Weapons')
Endif
UO.AutoMenu('Weapons', 'Swords')
UO.AutoMenu('Swords', 'agger')
Endsub
Sub DelJournal(msg)
While UO.InJournal(msg)
UO.SetJournalLine(UO.InJournal(msg) - 1, ' ')
Wend
Endsub
Sub CheckLag()
var msg = 'ackpack'
DelJournal(msg)
UO.Click('backpack')
Repeat
Wait(100)
Until UO.InJournal(msg)
Endsub
sub Reconnector()
var RFlag = 1
While true
While UO.ObjAtLayer('Bpack') == ''
If RFlag then
RFlag = 0
Endif
Wait(20000)
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.LDblClick(357, 164)
UO.LClick(616, 459)
Wait(3000)
Wend
Wait(3000)
If (RFlag == 0) then
RFlag = 1
Endif
Wend
Endsub
Re: все тот же БС
Posted: 2011-11-24 21:00:36
by ZeroDX
Ещё раз обновил пост. Надеюсь последний раз. Косяк был в доборе, я просто скопировал выкладку в сундук, поменял контейнеры местами, а цвет забыл выставить.
PS Если кошак-автобус бегает на солярке, то это ещё смешнее. И откуда у людей такая фантазия? Психотропные вещества наверное. Если только кошак-автобус не какой-нибудь японский супер робот с ИИ, осознавший себя как личность и сбежавший в лес от своих создателей творить добро.
Re: все тот же БС
Posted: 2011-11-24 21:34:46
by Mirage
Re: все тот же БС
Posted: 2011-11-24 21:44:55
by ZeroDX
А чего нас ждать? Работает все =) Работай
Почистил 
Кошак-автобус это ладно, а что делает коротышка зайчик с человечьей мордой, в которую курит папироску?
Курит папиросу. Ваш КО.
Ого процесс в самом разгаре
Re: все тот же БС
Posted: 2011-11-24 21:57:34
by ZeroDX
Взял бы да дал сразу свою версию скрипта на ковку с разных металлов. (99% что у тебя такое есть в твоем секретном скриптохранилище

)
Mirage wrote:PS Ты бы еще про человекоподобных роботов от которых произошли человечки и которых они пытаются убить вспомнил (Евангелион)
Сериал такой был, какие-то там роботы сайлоны vs люди на космических кораблях. Галактика кажется. С зайцелюдом это сериал или полнометражка? Дай ещё раз название пожалуйста. А то где-то оно тут почистилось.
Re: все тот же БС
Posted: 2011-11-24 22:10:27
by Mirage
Аниме -
Бесполезные Зверушки (Damekko Doubutsu). Прокачаный Смелый Заяц - тамошний модератор.

когнитивный диссонанс так скать

Re: все тот же БС
Posted: 2011-11-24 22:11:59
by ZeroDX
Да там их целая банда зверолюдов =)