Помогите с тейлорингом!

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
qqqqqq
Posts: 15
Joined: 2004-07-19 07:36:16

Помогите с тейлорингом!

Post by qqqqqq »

Я токо начао учится писать скрипты и прошу дать мне скрипт на тейлоринг чтоб действовал примерно так передо мной стоит ящик в нём 40к ткани я беру оттуда 200 ткани делаю из неё штаны пока 200 ткани не кончится затем режу штаны на бинты бинты кладу в этот же ящик и снова беру 200 ткани и так пока не кончится ткань!!
З.Ы Прошу подробно обяснить как скриптом пользоваться желательно в мельчайших деталях тк сам врядли разберусь :)


ЗАРАНЕЕ СПАСИБО !!! Ж)
qqqqqq
Posts: 15
Joined: 2004-07-19 07:36:16

Re: Помогите с тейлорингом!

Post by qqqqqq »

qqqqqq wrote:Я токо начао учится писать скрипты и прошу дать мне скрипт на тейлоринг чтоб действовал примерно так передо мной стоит ящик в нём 40к ткани я беру оттуда 200 ткани делаю из неё штаны пока 200 ткани не кончится затем режу штаны на бинты бинты кладу в этот же ящик и снова беру 200 ткани и так пока не кончится ткань!!
З.Ы Прошу подробно обяснить как скриптом пользоваться желательно в мельчайших деталях тк сам врядли разберусь :)


ЗАРАНЕЕ СПАСИБО !!! Ж)

ПОоожалуста помогите я тоже очень хотел бы такой скрипт помогите нубикам папки плзз откликнитесь!!!!!!!!!!!!
Daioh
Posts: 63
Joined: 2004-06-28 19:06:26
Contact:

Post by Daioh »

Не помню чей(может мой :)):

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; Заканчиваем функцию
qqqqqq
Posts: 15
Joined: 2004-07-19 07:36:16

Post by qqqqqq »

Не работает((( а ещё нету??? какогонить другого ????? просто подобный скрипт просто необходим!!!!
ПЛЗ ПОМОГИТЕ !!!
BETEPAH
Expert!
Posts: 838
Joined: 2004-05-31 09:31:51
Contact:

Post by BETEPAH »

В скрипте выше все работает....настрой умело

Скрипт не мой ......нашел без Копирайта Хозяин не обижайся

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
Все просто.
BETEPAH ™
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

По стилю на эмиля похоже. Это наверное тот самый скрипт что он сейчас на форуме активно продает. :)

зы, а превый, это кто то немного переделал мой не паблик скрипт :) Я бросал бандажки под ноги.
Daioh
Posts: 63
Joined: 2004-06-28 19:06:26
Contact:

Post by Daioh »

Savage wrote:зы, а превый, это кто то немного переделал мой не паблик скрипт :) Я бросал бандажки под ноги.

Да. Так и есть :)
Emil
Posts: 2
Joined: 2004-06-29 03:43:32

Post by Emil »

Savage wrote:По стилю на эмиля похоже. Это наверное тот самый скрипт что он сейчас на форуме активно продает. :)

зы, а превый, это кто то немного переделал мой не паблик скрипт :) Я бросал бандажки под ноги.

Не саваж, он не мой :) И даже рядом не похож
impair
Posts: 4
Joined: 2004-08-27 08:15:11

не работает waitmenu

Post by impair »

Не понимаю ничего.. я новичок, ткните в ошибку...

Пишу кусок скрипта для того, чтобы делать пустые скроллы из кожи и воска в паке.

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
Posts: 4
Joined: 2004-08-27 08:15:11

Post by impair »

Ну что, никто не знает, почему не пашет эта команда на AOSe? :(((
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

проверь что Vars Loopback включено в закладке main
и "это" скрипт а не "команда"
impair
Posts: 4
Joined: 2004-08-27 08:15:11

Post by impair »

Включена эта галка :) И я вроде как знаю, чем отличается команда от скрипта :) Я спрашивала про КОМАНДУ WaitMenu, ибо сам скрипт (тот кусочек текста в тегах code) работает как надо. Поросто не срабатывает нажатие в меню...
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

impair wrote:Ну что, никто не знает, почему не пашет эта команда на AOSe? :(((


На АоСе быстрее всего не пашет из-за того, что там мессаги надо по клилокам читать, а не по тексту... А если меню не срабатывает - значит не все меню переписал. Там что, всего одно меню, без вложений?
impair
Posts: 4
Joined: 2004-08-27 08:15:11

Post by impair »

Нет, blank scrolls там в пункте меню Miscellaneous, но я пробовала по всякому переписывать это меню, и полностью, и через make last, и так как привела тут, и с запятыми, и без, в кавычках, без :) Толку ноль. Правописание тоже проверяла 100 раз...

В общем, вывод - не пашет. Но почему тогда у других (на других шардах) работают крафтерские скрипты с этой командой? В чем разница? :(

З.Ы. У нас как назло форум не пашет уже неделю, у своих спросить никак...
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

обычные шарды:

сервер-клиенту: нарисуй стандартное окно крафта, назови его "weapons" с обьектами номера 1234, 2345 и 3456 и подпиши их как "bow", "sword", "axe"

сервер RunUO:

сервер клиенту: нарисуй фоновый рисунок номер 1234, потом нарисуй кнопки там то и там то, потом нарисуй обьекты номера такие-то и подпиши их стандартными текстами на языке пользователя, номера 5536, 5537 и 5538
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

impair wrote:Нет, blank scrolls там в пункте меню Miscellaneous, но я пробовала по всякому переписывать это меню, и полностью, и через make last, и так как привела тут, и с запятыми, и без, в кавычках, без :) Толку ноль. Правописание тоже проверяла 100 раз...

В общем, вывод - не пашет. Но почему тогда у других (на других шардах) работают крафтерские скрипты с этой командой? В чем разница? :(

З.Ы. У нас как назло форум не пашет уже неделю, у своих спросить никак...


Дык потому что надо же писать правильные меню в правильном порядке. Я думаю, у тебя там что-то типа:

UO.WaitMenu( 'Teiloring', 'Miscellaneous' )
UO.WaitMenu( 'Miscellaneous', 'blank scroll' )

Команд вайтменю должно быть подряд столько, сколько уровней вложения. В первой сначала идет шапка самого первого меню, после запятой - пункт выбора. Во второй и третьей (если надо) - аналогично.
FederaL
Posts: 5
Joined: 2004-09-26 00:16:51
Contact:

Post by FederaL »

А помогите со скриптом на тайлоринг, надо делать боди сеши (body sash (ленты через плечо)). А то нигде нет его.
Post Reply