З.Ы Прошу подробно обяснить как скриптом пользоваться желательно в мельчайших деталях тк сам врядли разберусь

ЗАРАНЕЕ СПАСИБО !!! Ж)
Moderators: Murderator+, Murderator
qqqqqq wrote:Я токо начао учится писать скрипты и прошу дать мне скрипт на тейлоринг чтоб действовал примерно так передо мной стоит ящик в нём 40к ткани я беру оттуда 200 ткани делаю из неё штаны пока 200 ткани не кончится затем режу штаны на бинты бинты кладу в этот же ящик и снова беру 200 ткани и так пока не кончится ткань!!
З.Ы Прошу подробно обяснить как скриптом пользоваться желательно в мельчайших деталях тк сам врядли разберусь
ЗАРАНЕЕ СПАСИБО !!! Ж)
Code: Select all
sub CheckLag(); Чеклаг - функция, которая есть почти в каждом скрипте, изменять ее не надо(спасает от сбивки на ВС)
UO.DeleteJournal()
UO.Click('backpack')
repeat
wait(500)
until UO.InJournal('backpack')
end sub
sub tohide(); Функция Саваджа, прячет персонажа путем выпивания инвизки или, если таковой не имеется, скиллом
while NOT UO.Hidden(); Пока не спрятались будем повторять действия
UO.DeleteJournal(); Очитстить журнал
UO.FindType('0x0F0E','0x0631','my'); Ищет инвизку
if UO.Life<UO.STR/2 AND UO.GetQuantity('finditem')>0 then; Если находит...
UO.UseType('0x0F0E','0x0631') ; Пьет ее
UO.Exec('warmode 0'); Ставит режим боя в 0, чтоб не ривилился чар
wait(2000); Ждет 2 секунды
else; Если нет инвизки
UO.Exec('warmode 0')
UO.UseSkill('Stealth'); Использует скилл стелс
repeat; Повтор
wait(50); Паузы в 50мс
until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied'); пока в журнале не появится запись
endif;Закончить if
wend; Закончить while
end sub
sub taylor();Основная функция
VAR Cont='0x4009D431'; Объявляем переменную - Cont - ID ящика с тканью и куда будем ложить бинты
while NOT UO.Dead();Пока мы не мертвы(можно было бы просто зациклить, но так красивей)
ToHide();прячемся
UO.FindType('0x175D','0x0000','backpack'); Ищем у себя ткань
if UO.GetQuantity('finditem')<4 then; Если ее меньше 4
UO.UseObject(Cont); Открываем ящик
UO.FindType('0x0E21','0x0000','backpack'); Ищем у себя бинты
if UO.GetQuantity('finditem')>0 then; Если есть
UO.SetReceivingContainer(Cont); Ставим принимающий контейнер в Cont
wait(1000); Ждем 1 секунду(против фастлута и так, для надежности :))
UO.Grab('all','finditem');Переносим все бинты в полчающий контейнер(у нас теперь Cont)
wait(1000); Ждем 1 секунду
UO.UnSetReceivingContainer(); Ставим получающий контейнер в бекпек
Endif
UO.FindType('0x175D','0x0000',Cont); Ищем в ящике ткань
wait(1000); Ждем секунду
UO.Grab('600','finditem'); Берем 600 ткани
wait(1000); Ждем секунду
endif
CheckLag()
UO.WaitMenu('Cloth','Misc','Misc','body'); Назначаем выбор в меню крафта. Меню Cloth - выбор Misc, меню Misc - выбор body. Делаем боди сеши
UO.WaitTargetType('0x175D'); Назначаем таргет для курсора(ткань)
UO.UseType('0x0F9D'); Используем нитки
UO.DeleteJournal(); Очищаем журнал
wait(1000)
repeat; повтор
wait(100); паузы
until UO.InJournal('fail') or UO.InJournal('put'); Пока в журнале не будет fail или put
UO.DeleteJournal(); Очистим журнал
wait(500); Ждем полсекунды
UO.WaitTargetType('0x1541'); Таргет на боди сеш
UO.UseType('0x0F9E'); Используем ножницы
CheckLag()
wait(500)
wend
endsub; Заканчиваем функцию
Code: Select all
###################################
# Скрипт для Крафтов #
# (В данном случае для Tailoring) #
###################################
;|---------------------------|
;| Описание переменных Items |
;|---------------------------|
VAR EQ,RQ1,RQ2,QB
VAR Eat='0x097B' ; Type Еда (Рыба)
VAR Res1='0x175D' ; Type Ресурс 1 (Ткань)
VAR Res2='0x0FA0' ; Type Ресурс 2 (Нитки)
VAR Kit='0x0F9D' ; Type Инструмента крафта (Sewing Kit)
VAR Items='0x1F03' ; Type Выходного материала
EQ=50 ; Количество еды
RQ1=150 ; Количество ресурса 1
RQ2=20 ; Количество ресурса 2
;|---------------------------------|
;| Описание переменных контейнеров |
;|---------------------------------|
VAR ContainerRes='0x416BFC21' ; Object Контейнер с ресурсами
VAR ContainerBag='0x4158965B' ; Object Контейнер с сумками
VAR BagCount='0x0E76' ; Type сумок в контейнере ContainerBag
sub main()
UO.Set('quiet','1')
UO.Exec('exec Craft')
UO.IgnoreReset()
end sub
sub OpenBag()
VAR i,BagID
UO.UseObject(ContainerBag)
UO.UseObject(ContainerRes)
UO.IgnoreReset()
Repeat
UO.DeleteJournal()
Wait(1000)
UO.FindType(BagCount,'-1',ContainerBag)
If UO.FindCount('finditem') > 1 Then
i = (UO.FindCount('finditem') +1)
UO.Click('finditem')
If UO.InJournal("a bag") Then
BagID=UO.JournalSerial(UO.InJournal("a bag")-1)
UO.SetJournalLine(UO.InJournal("a bag")-1,"")
UO.FindType(Items,'-1',BagID)
UO.UseObject(BagID)
Wait(2000)
UO.Hide(BagID)
UO.Ignore(BagID,'on')
EndIF
EndIf
i = (i - 1)
Until i == 0
UO.Hide(ContainerBag)
UO.Hide(ContainerRes)
UO.Resend()
Wait(3000)
UO.IgnoreReset()
end sub
sub Craft()
VAR Last=0,LastTimer
OpenBag()
While NOT UO.Dead()
;|-----------------------------------|
;| Search of resources and Take them |
;|-----------------------------------|
UO.FindType(Eat,'-1','me')
If UO.GetQuantity('finditem') < 1 then
UO.FindType(Eat,'-1',ContainerRes)
If UO.GetQuantity('finditem') > 1 then
ToTake(3)
Else
UO.Exec ('Terminate Craft')
EndIf
Else
ToEat()
EndIf
UO.FindType(Res1,'-1','me')
If UO.GetQuantity('finditem') < 16 then
UO.FindType(Res1,'-1',ContainerRes)
If UO.GetQuantity('finditem') > 1 then
ToTake(1)
Else
UO.Exec ('Terminate Craft')
EndIf
EndIf
UO.FindType(Res2,'-1','me')
If UO.GetQuantity('finditem') < 1 then
UO.FindType(Res2,'-1',ContainerRes)
If UO.GetQuantity('finditem') > 1 then
ToTake(2)
Else
UO.Exec ('Terminate Craft')
EndIf
EndIf
;|-------------|
;| Craft Items |
;|-------------|
UO.DeleteJournal()
UO.WaitTargetType(Res1)
UO.UseType(Kit)
UO.WaitMenu ('Cloth','Shirts','Shirts','robe') ; Название КрафтМеню1(Cloth),ПодМеню2(Shirts) -> КрафтМеню2(Shirts),ПодМеню2(Robe)
LastTimer=UO.Timer()
Repeat
wait(100)
Until UO.InJournal("You put") OR UO.InJournal("Tailoring") OR LastTimer+150<UO.Timer()
UnLoadItem()
Wend
end sub
sub ToTake(i)
VAR G,F
If i == 1 Then
G = RQ1
F = Res1
EndIf
If i == 2 Then
G = RQ2
F = Res2
EndIf
If i == 3 Then
G = EQ
F = Eat
EndIf
UO.FindType(F,'-1',ContainerRes)
if UO.GetQuantity('finditem') > 1 then
UO.Grab(''+str(G)+'','finditem')
UO.DeleteJournal()
Repeat
UO.FindType(F,'-1','me')
Wait(1500)
Until UO.InJournal("That is too") OR UO.GetQuantity('finditem') > 1
endif
end sub
sub ToEat()
UO.UseType(Eat)
end sub
sub UnLoadItem()
VAR BagID
VAR i=0
VAR m=0
Repeat
UO.DeleteJournal()
UO.FindType(BagCount,'-1',ContainerBag)
UO.Click('finditem')
m = 0
Repeat
Wait(1000)
Until UO.InJournal("a bag")
If UO.InJournal("a bag") Then
BagID=UO.JournalSerial(UO.InJournal("a bag")-1)
UO.SetJournalLine(UO.InJournal("a bag")-1,"")
UO.FindType('-1','-1',BagID)
If UO.FindCount('finditem') < 220 then
m = UO.FindCount('finditem')
UO.SetReceivingContainer(BagID)
UO.FindType(Items,'-1','me')
UO.Grab('0','finditem')
UO.ConColor('0x0021')
UO.Set('quiet','0')
UO.Print(UO.Print('In BagPack#'+Str(i+1)+' items '+Str(m)+''))
UO.Set('quiet','1')
UO.ConColor('0x0035')
Wait(1000)
UO.UnSetReceivingContainer()
Else
i = i + 1
UO.Ignore(BagID, 'on')
EndIf
EndIf
If i == QB Then
UO.IgnoreReset()
i = 0
EndIf
UO.FindType(Items,'-1','me')
Until UO.FindCount('finditem') < 1
End Sub
Code: Select all
sub scrolls()
var leather='0x1081'
var wax='0x1422'
var tool='0x0F9D'
If UO.Count(leather) > 0 then #кожа
If UO.Count(wax) > 0 then #воск
If UO.Count(tool) > 0 then #сьюингкит
UO.WaitTargetType(leather)
UO.Exec("usetype sewingtool")
UO.WaitMenu ('Tailoring menu','blank scroll')
UO.UseType(wax)
UO.DeleteJournal()
wait(1000)
repeat
wait(100)
until UO.InJournal('fail') or UO.InJournal('put')
Else
UO.Print (""+"no sewing kit")
Endif
Else
UO.Print (""+"no besswax")
Endif
Else
UO.Print (""+"no scrolls")
Endif
end sub
impair wrote:Нет, blank scrolls там в пункте меню Miscellaneous, но я пробовала по всякому переписывать это меню, и полностью, и через make last, и так как привела тут, и с запятыми, и без, в кавычках, безТолку ноль. Правописание тоже проверяла 100 раз...
В общем, вывод - не пашет. Но почему тогда у других (на других шардах) работают крафтерские скрипты с этой командой? В чем разница?
З.Ы. У нас как назло форум не пашет уже неделю, у своих спросить никак...