-=Новая заморочка со скриптом на тейлор=-

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
Ehidna
Posts: 41
Joined: 2005-01-15 14:34:26
Contact:

-=Новая заморочка со скриптом на тейлор=-

Post by Ehidna »

Прочитал много тем по тейлору, но к сожелению не нашёл подходящего.
Во всех скриптах что я нашёл, продукцыя либо режется на бинты, либо изготавлявается из кожи. Но я хотел бы продукцию умудриться продать, а не резать её на бинты.
Я взял некий скрипт и стал его модифицировать. Кое что мне удалось, а гдето незнаю с чего и бначать.

Моя задача состоит в том чтобы:
1) Вставать а хайд в процессе изготовления.
2) Брать из мешка ещё и нитки. (Т.к. на изготовление требуется 16 ткани и 1 нитка)
3) Заставить чара раскладывать изготавливаемую продукцию по данным мешкам (их 19), либо по данным типам мешков.

Code: Select all

Var Sunduk='0x4166d044' # Сундук в котором лежат ресурсы
Var TSKit='0x0F9D' # Тип набора кройки и шитья 
Var TCloth='0x175D' # Тип ткани (ресурсы)
Var Spools='0x0FA0' # Тип ниток (ресурсы)
Var TItem='0x1F03' # Тип шмотки которую крафтаем - роба
Var RobBackPack= '0x404fc876' # Прилоченная рядом сумка с мешками
Var Meshok1='0x404fc876' # ИД мешка куда кладём робы
Var Meshok2='0x405f4032' # ИД мешка куда кладём робы
Var Meshok3='0x405d1c94' # ИД мешка куда кладём робы
Var Meshok4='0x4035f620' # ИД мешка куда кладём робы
Var Meshok5='0x4035f622' # ИД мешка куда кладём робы
Var Meshok6='0x416f47a7' # ИД мешка куда кладём робы
Var Meshok7='0x404fed01' # ИД мешка куда кладём робы
Var Meshok8='0x405dad3f' # ИД мешка куда кладём робы
Var Meshok9='0x405f144c' # ИД мешка куда кладём робы
Var Meshok10='0x40124e49' # ИД мешка куда кладём робы
Var Meshok11='0x404fab34' # ИД мешка куда кладём робы
Var Meshok12='0x415af9e1' # ИД мешка куда кладём робы
Var Meshok13='0x405d89d1' # ИД мешка куда кладём робы
Var Meshok14='0x4167c0c3' # ИД мешка куда кладём робы
Var Meshok15='0x404ff284' # ИД мешка куда кладём робы
Var Meshok16='0x415b1fe5' # ИД мешка куда кладём робы
Var Meshok17='0x405f5a85' # ИД мешка куда кладём робы
Var Meshok18='0x405f5a86' # ИД мешка куда кладём робы
Var Meshok19='0x4050098a' # ИД мешка куда кладём робы
Var VSEmeshki='0x0E76' # Тип всех этих мешков

sub Tailoring() 
var i=0 
uo.cancelmenu() 
uo.automenu('Cloth','Shirts') 
uo.automenu('Shirts','robe') 
uo.useobject(Sunduk) 

while (uo.skillval('Tailoring',1)<1000) 
i=i+1 
if i==50 then 
i=0 
uo.usetype('0x097B') 
wait(1000) 
end if 

UO.FindType(TCloth,-1,'backpack') 
wait(200) 
If UO.GetQuantity('finditem')<16 Then 
   If UO.GetQuantity('finditem')>0 Then 
      UO.SetReceivingContainer(Sunduk) 
      cheklag() 
      UO.Grab('0','finditem') 
      wait(1000) 
      UO.UnSetReceivingContainer() 
   end if 
   UO.FindType(TCloth,-1,Sunduk)    
   wait(200) 
   If UO.GetQuantity('finditem')>=16 Then 
      cheklag() 
      UO.Grab('300','finditem') 
      Wait(1000) 
   else 
      uo.closeuo() 
   end if 
end if 

cheklag() 
uo.waittargettype(TCloth) 
wait(50) 
uo.usetype(TSKit) 
uo.deletejournal() 
repeat 
wait(10) 
until uo.InJournal('You put the') or uo.InJournal('Tailoring failed.') 


if uo.weight > 200 then 
UO.SetReceivingContainer(Meshok1) 
wait(200) 
UO.FindType('0x1F03')               # Тип готового шмота
if UO.GetQuantity('finditem')>0 then 
UO.Grab('0','finditem') 
wait(200) 
end if 
UO.UnSetReceivingContainer() 
end if 

wend 
uo.closeuo() 
end sub 

sub cheklag() 
uo.deletejournal() 
uo.click('backpack') 
repeat 
wait(10) 
until uo.InJournal("backpack") 
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 Tailoring') 
wait(1000) 
UO.Exec('exec Tailoring') 
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
Very Old Player
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Re: -=Новая заморочка со скриптом на тейлор=-

Post by Kynep »

Ehidna wrote:Прочитал много тем по тейлору, но к сожелению не нашёл подходящего.
Во всех скриптах что я нашёл, продукцыя либо режется на бинты, либо изготавлявается из кожи. Но я хотел бы продукцию умудриться продать, а не резать её на бинты.
Я взял некий скрипт и стал его модифицировать. Кое что мне удалось, а гдето незнаю с чего и бначать.

Моя задача состоит в том чтобы:
1) Вставать а хайд в процессе изготовления.
2) Брать из мешка ещё и нитки. (Т.к. на изготовление требуется 16 ткани и 1 нитка)
3) Заставить чара раскладывать изготавливаемую продукцию по данным мешкам (их 19), либо по данным типам мешков.
Ну дык вперед и с песней ))) Или что? нам за тебя написать? Зачем тогда написал "моя задача"??? Начинай потихоньку, а мы поможем ) :roll:

Я так понимаю тебе надо шить и класть в мешок, поа влязиет, потом брать другой и класть в него и так до упора.
Вот нашел в закромах, пробуй: если не будет работать отпишись, желательно поподробнее, если парсит напиши номер строки.

Code: Select all

################################################################## 
###!!!ВИМАНИЕ!!! 
###!!!Если а паке чара есть мешки!!! 
###!!!Скрипт работает с ними, пока не кончатся!!! 
###!!!Еще в сундуке должна быть еда, без еды работать не будет!!! 
################################################################## 
###############Tailor crafted by Kynep[The END]################### 
################################################################## 
###Шард ДРВ, на других шардах работа не гарантируется 
###По вопросам работы над скриптом в аську 335-141-243 
################################################################## 

VAR sunduk1 = '0x4166d044' #Сундук, откуда беру ткань, нитки и мешки 
VAR sunduk2 = '0x404E79E0' #Сундук куда кладем готовый товар 
VAR ResCount = '500'       #Количество забираемой ткани, зависит от силы игрока 
VAR meshok = '0x0E76'      #Тип мешка 
VAR tovar = '0x1F03'       #Тип готового товара 
VAR TCloth='0x175D'        # Тип ткани (ресурсы) 
VAR Spools='0x0FA0'        # Тип ниток (ресурсы) 
VAR TSKit='0x0F9D'         # Тип набора кройки и шитья 
VAR eda = '0x097B'         #Тип еды 
VAR LastTimer, p, ser, a, b = 0, c = 0

sub Tailor() 
   uo.Exec("filterspeech clear") 
   uo.Exec("filterspeech on") 
   uo.Exec("filterspeech add 'You make the item'") 
   uo.Exec("filterspeech add 'The item is of'") 
   uo.Exec("filterspeech add 'Due to your exceptional skill, the item is of superior quality'") 
   uo.Exec('terminate Reconnector') 
   wait(1000) 
   uo.Exec('exec Reconnector') 
   wait(1000) 
   uo.useobject('backpack') 
   uo.cancelmenu() 
   uo.automenu('Cloth','Shirts') 
   uo.automenu('Shirts','robe') 
   wait(200) 
   uo.useobject(sunduk1) 
   wait(1000) 
   uo.useobject(sunduk2) 
   wait(1000) 
   LastTimer=uo.Timer() 
   UO.IgnoreReset() 
   UO.Print('Поехали помолясь...') 
    
   while not uo.dead() 
      ToHide() 
      if uo.Timer()>(LastTimer+3000) then 
         if uo.skillval("Spirit Speak",1)<1000 then 
            uo.print("Spirit Speak...") 
            p=0 
            repeat 
               p=p+1 
               uo.useskill("Spirit Speak") 
               uo.deletejournal() 
               repeat 
                  wait(10) 
               until uo.InJournal("netherworld") or uo.InJournal("You must wait to perform another action") or uo.dead() 
            until (uo.InJournal("You establish a connection to the netherworld.")) or (p>=10) or uo.dead() 
         end if 
         Eda() 
         LastTimer=uo.Timer() 
      end if 
      
      If c == 0 then
         UO.FindType(meshok, '-1', 'sunduk1') 
         If UO.FindCount() > 0 then 
            cheklag() 
            UO.MoveItem('finditem', '0', 'sunduk2')
            ser = UO.GetSerial('finditem')
            cheklag()
            UO.UseObject(ser)
            wait(1000)
            c = 1
         else
            UO.Print('Нет мешков, заканчиваем')
            uo.closeuo()
         end if
      else
         wait(100)
      end if

      UO.FindType(TCloth, '-1', 'backpack') 
      if UO.GetQuantity('finditem') < 20 then 
         UO.FindType(TCloth, '-1', sunduk1) 
         cheklag() 
         uo.moveitem('finditem', ResCount, 'backpack') 
         wait(1000) 
      else 
         wait(50) 
      end if 
      
      UO.FindType(Spools, '-1', 'backpack') 
      if UO.GetQuantity('finditem') < 10 then 
         UO.FindType(Spools, '-1', sunduk1) 
         cheklag() 
         uo.moveitem('finditem', '100', 'backpack') 
         wait(1000) 
      else 
         wait(50) 
      end if 
      

      cheklag() 
      uo.waittargettype(TCloth) 
      wait(500) 
      uo.usetype(TSKit) 
      uo.deletejournal() 
      repeat 
         wait(50) 
      until uo.InJournal('You put the') or uo.InJournal('Tailoring failed.') 
      
      If UO.InJournal('You put the') then 
       UO.FindType('-1', '-1', ser) 
         If UO.FindCount() < 255 then 
            UO.FindType(tovar, '-1', 'backpack') 
            If UO.FindCount() > 0 then 
               repeat 
                  cheklag() 
                  UO.MoveItem('finditem', '0', ser) 
                  wait(500) 
                  UO.FindType('-1', '-1', ser) 
                  a = UO.FindCount() 
                  UO.FindType(tovar, '-1', 'backpack') 
               until not UO.FindCount() or a == 255 
            end if 
         else
            c = 0 
         end if 
      end if 

      UO.FindType(TCloth, '-1', 'backpack') 
      wait(300) 
      if UO.GetQuantity('finditem') < 5 then 
         uo.closeuo() 
      else 
         wait(50) 
      end if    

   wend 
end sub 

Sub Eda() 
   if uo.count(eda,'0x0000') < 50 then ## Жрачка, кушаем до изнеможения 
      uo.findtype(eda,'0x0000',sunduk1) 
      Cheklag() 
      uo.moveitem('finditem',STR(50-uo.count(eda,'0x0000')),'backpack') 
      wait(1000) 
   end if 
   uo.deletejournal() 
   repeat 
      uo.usetype(eda,'0x0000') 
      wait(1000) 
   until uo.injournal("You are stuffed!") or uo.injournal("You can't think of a way to use that item.") 
end sub 

Sub cheklag() 
   uo.deletejournal() 
   uo.click('backpack') 
   repeat 
      wait(10) 
   until uo.InJournal("backpack") 
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(70000) # WorldSave Protection 
         uo.Say('') 
         Wait(5000) 
         uo.Say('') 
         Wait(5000) 
         uo.Say('') 
         Wait(5000) 
         uo.LDblClick(357,164) 
         uo.LClick(616,459) 
         Wait(5000) 
      WEnd 
      Wait(3000) 
      if (RFlag == 0) and (ReconnectTime <> '0') Then 
         uo.TextOpen() 
         uo.TextPrint('Disconnected & Reconnected @ '+ReconnectTime) 
         uo.useobject('backpack') 
         wait(2000) 
         uo.Exec('terminate Tailor') 
         wait(5000) 
         uo.Exec('exec Tailor') 
         wait(5000) 
         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 

Sub ToHide() 
   while not uo.hidden() 
      uo.exec("warmode 0") 
      uo.DeleteJournal() 
      uo.useskill("Hiding") 
      repeat 
         wait(10) 
      until uo.InJournal("You have hidden yourself well") or uo.InJournal("You can't seem to hide here.") or uo.InJournal("You are preoccupied with thoughts of battle.") 
      if uo.InJournal("You are preoccupied with thoughts of battle.") then 
         uo.exec("warmode 0") 
      end if 
   wend 
end sub
Last edited by Kynep on 2008-01-24 21:11:22, edited 2 times in total.
Ehidna
Posts: 41
Joined: 2005-01-15 14:34:26
Contact:

Post by Ehidna »

В общем потестировал я скрипт....
Ну начну с того что скрипт на определённом моменте просто вырубает окно уо, не смог подгадать на каком именно....
Потом я не увидел на каком моменте вообще применяется еда.
и при крафте роб он кладёт их в мешок, но мешок лежит в паке и вес у него увеличивается, в итоге он берёт полотно и раняет его.
Удасно былобы, заполнять мешки не вытаскивая их из общего мешка.
Либо искать другой мешок, если он превышает заданый лимит итемов в нём.
вот собсно и весь КраШтЕст. :roll:
Very Old Player
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Ehidna wrote:В общем потестировал я скрипт....
Ну начну с того что скрипт на определённом моменте просто вырубает окно уо, не смог подгадать на каком именно....
Потом я не увидел на каком моменте вообще применяется еда.
и при крафте роб он кладёт их в мешок, но мешок лежит в паке и вес у него увеличивается, в итоге он берёт полотно и раняет его.
Удасно былобы, заполнять мешки не вытаскивая их из общего мешка.
Либо искать другой мешок, если он превышает заданый лимит итемов в нём.
вот собсно и весь КраШтЕст. :roll:
По порядку:
1) Окно вырубается в двух случаях, когда нет мешков в сундуке и когда ткани в паке чара меньше 10 помоему, исправил, теперь если меньше 6.
2) Кушает он каждые минут 15 наверн, прм запуске точно, потом циклически.
3)У чара мало силы либо в паке полно хлама, оставь в паке только необходимые предметы, уменьши кол-во забираемой ткани.
4)При достижении 255 итемов мешок скидывается во вторй сундук.

Жду дальнейших результатов.
Ehidna
Posts: 41
Joined: 2005-01-15 14:34:26
Contact:

Post by Ehidna »

Стоп Стоп Стоп по поводу 4) 255 итемов (робы) не может поднять даже демон. Нужн как то сделать чтобы брал пустой мешок кидал в сундук а потом туды наваливал готовый продукт (около 120 итемов(для демона)).
Very Old Player
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Ehidna wrote:Стоп Стоп Стоп по поводу 4) 255 итемов (робы) не может поднять даже демон. Нужн как то сделать чтобы брал пустой мешок кидал в сундук а потом туды наваливал готовый продукт (около 120 итемов(для демона)).
найди в скрипте:

Code: Select all

or a == 255
и поправь на скока тебе нужно
Ehidna
Posts: 41
Joined: 2005-01-15 14:34:26
Contact:

Post by Ehidna »

Kynep wrote:
найди в скрипте:

Code: Select all

or a == 255
и поправь на скока тебе нужно
Я не об этом. Мешок он заполняет у себя в паке, а должен заполнять мешок тогда когда перетащит его в указаных сундуль.
Very Old Player
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Ehidna wrote: Я не об этом. Мешок он заполняет у себя в паке, а должен заполнять мешок тогда когда перетащит его в указаных сундуль.
Блин это сложнее....
Кароче поправил пост со скриптом, пробуй! Если что пиши... :twisted:
Ehidna
Posts: 41
Joined: 2005-01-15 14:34:26
Contact:

Post by Ehidna »

oke! :twisted:
Very Old Player
Post Reply