Code: # Версия YokoInjection: 505.18 VeNdOr # Sphere Server : v0.55i # Версия клиента: 2.0.3 # Автор: GAUHAR
######################################################################### # НАСТРОЙКИ ПЕРЕМЕННЫХ # #-----------------------------------------------------------------------# # ПЕРЕМЕННЫЕ для TINKERING VAR t_ingots = '0x1BEF' # Тип слитков металла. VAR c_ingots = '0x0000' # Цвет металла. VAR Max_Weight = UO.STR*4 # Максимальный вес загрузки. Должен быть # меньше, чем в формуле UO.Str*42/10 VAR tnk_instrum = '0x1EBC' # Тип инструмента (tinker's tools). VAR tnk_product = '0x0F0E' # Тип того, что будем делать (bottles). VAR ingots_tnk = 2 # Количество металла на одно изделие. #-----------------------------------------------------------------------# VAR EDA = '0x097b' # Это рыбные стейки VAR LastTimerDinner = UO.Timer() # Время приема пищи VAR FrequencyDinner = 3600 # как часто (раз в 6 минут) VAR LastTimerSpiritism = UO.Timer() # Время спиритизма VAR FrequencySpiritism = 3000 # как часто (раз в 5 минут) VAR SpiritismYorN = 1 # 1 - качать спирит спик, 0 - нет #-----------------------------------------------------------------------# #########################################################################
######################################################################### # Качаем скилл тинкеринг. # # Делаем бутылки, когда вес превысит максимум, перекладываем их в # # контейнер из которого берем металл. # # До запуска скрипта в один контейнер (сундук) складываем металл и еду. # # В рюкзаке персонажа инструментов механика. # #-----------------------------------------------------------------------# sub TINKERING() VAR CountIngots Presentation("* TINKERING *") PrintInColor("Выберите сундук с материалом",'0x003F') UO.AddObject('CONTAINER_sender') while UO.Targeting() wait(200) wend OpenContainer('CONTAINER_sender') UO.UnSetReceivingContainer() repeat UO.FindType(t_ingots,c_ingots,'CONTAINER_sender') CountIngots = UO.FindCount() CRAFT_tinkering_product() PEREBROS(0,tnk_product,'-1','backpack','CONTAINER_sender') until CountIngots == 0 PrintInColor("Закончился металл",'0x0026') PrintInColor("РАБОТА ЗАВЕРШЕНА",'0x003F') endsub
SUB CRAFT_tinkering_product() VAR k UO.FindType(t_ingots,c_ingots,'CONTAINER_sender') while UO.FindCount() <> 0 and UO.Weight < Max_Weight k = 0 UO.FindType(t_ingots,c_ingots,'my') if UO.GetQuantity('finditem') < ingots_tnk then UO.FindType(t_ingots,c_ingots,'CONTAINER_sender') PEREBROS(ingots_tnk,t_ingots,c_ingots,'CONTAINER_sender','backpack') endif if UO.FindCount() <> 0 then UO.DeleteJournal() CheckLag() RemoveTargetingOrWaiting() UO.WaitMenu('Tinkering','Tools','Tools','empty bottle') UO.UseType(tnk_instrum) while not UO.InJournal("Tinkering failed|You put") and not k == 30 k = k + 1 wait(200) wend wait(2000) endif DINNER() if SpiritismYorN == 1 then Spiritism() endif wend endsub #-----------------------------------------------------------------------# #########################################################################
######################################################################### #-----------------------------------------------------------------------# SUB DINNER() VAR k if UO.Timer() > LastTimerDinner+FrequencyDinner then if UO.Count(EDA) < 5 then PEREBROS(10,EDA,'-1','CONTAINER_sender','backpack') endif repeat k = 0 UO.UseType(EDA) wait(1000) repeat wait(100) k = k + 1 until (UO.InJournal("the food") or UO.InJournal("You are stuffed") or UO.InJournal("You are simply too full") or k==30) DelJournal("the food") until (UO.InJournal("You are stuffed") or UO.InJournal("You are simply too full") or k==30) if k <> 30 then PrintInColor("НАЕЛСЯ",'0x0053') else PrintInColor("Ты не можешь есть то, чего у тебя нет",'0x0053') PrintInColor("Пополни запас еды, или выбери другой тип",'0x0053') endif LastTimerDinner = UO.Timer() endif endsub
SUB Spiritism() VAR ispir, k if UO.Timer() > LastTimerSpiritism+FrequencySpiritism then PrintInColor("Разговор с духами",'0x0053') for ispir=1 to 3 k = 0 UO.UseSkill('Spirit Speak') while not (UO.InJournal("You fail your attempt") or UO.InJournal("You establish a connection") or k == 100) wait(100) k = k + 1 wend DelJournal("You fail your attempt") DelJournal("You establish a connection") next LastTimerSpiritism = UO.Timer() endif endsub #-----------------------------------------------------------------------# #########################################################################
SUB PEREBROS(kolvo,typ,tsvet,konteiner_sklad,konteiner_priemnik) # PEREBROSKA_v1(1,'0x0000','0x0000','0x00000000','0x00000000') # PEREBROSKA_v1(Количество,Тип,Цвет,ОткудаБерем,КудаКладем) VAR iX = UO.GetX()+1, iY = UO.GetY()+1, iZ = UO.GetZ() VAR k VAR changekolvo VAR NewWeight = 0, ChangeWeight = 0, InitialWeight = UO.Weight VAR MaxWeight = UO.Str*42/10 VAR TotalQuantityInContainer = 0 VAR QuantityForLargeHeaps = 100 # По сколько предметов перебрасываем # неподъемные кучи, если перебрасываем # в ранец персонажа, то лучше выставит # значение равное 10. if konteiner_sklad == UO.GetSerial('backpack') then MaxWeight = UO.Weight + 1 endif UO.Set('grabdelay','200') UO.FindType(typ,tsvet,konteiner_sklad) while UO.FindCount() <> 0 TotalQuantityInContainer = TotalQuantityInContainer + UO.GetQuantity('finditem') UO.Ignore('finditem') UO.FindType(typ,tsvet,konteiner_sklad) wend UO.Exec('ignorereset') PrintInColor("Найдено: " + str(TotalQuantityInContainer),'0x0053') wait(2000) if TotalQuantityInContainer == 0 then return else if TotalQuantityInContainer < kolvo or kolvo == 0 then kolvo = TotalQuantityInContainer endif endif UO.FindType(typ,tsvet,konteiner_sklad) if UO.FindCount() == TotalQuantityInContainer then while UO.FindCount() <> 0 and kolvo > 0 and MaxWeight > UO.Weight PrintInColor("Осталось перебросить: " + str(kolvo),'0x0053') CheckLag() if UO.GetSerial(konteiner_priemnik) <> '0x00000001' then UO.MoveItem('finditem','1',konteiner_priemnik) else UO.MoveItem('finditem','1','ground',iX,iY,iZ) endif CheckLag() UO.FindType(typ,tsvet,konteiner_sklad) kolvo = kolvo - 1 wend else UO.DeleteJournal() changekolvo = kolvo while UO.FindCount() <> 0 and changekolvo > 0 and MaxWeight > UO.Weight PrintInColor("Перебрасываем: " + str(kolvo),'0x0053') CheckLag() if UO.GetSerial(konteiner_priemnik) <> '0x00000001' then UO.MoveItem('finditem',changekolvo,konteiner_priemnik) else UO.MoveItem('finditem',changekolvo,'ground',iX,iY,iZ) endif CheckLag() changekolvo = changekolvo - UO.GetQuantity('finditem') UO.FindType(typ,tsvet,konteiner_sklad) wait(1000) if UO.InJournal("That is too heavy") then UO.FindType(typ,tsvet,konteiner_sklad) k = 0 while UO.FindCount() <> 0 and kolvo > 0 and MaxWeight > NewWeight if kolvo == 1 then PrintInColor("Перебрасываем: " + str(kolvo),'0x0053') if UO.GetSerial(konteiner_sklad) <> '0x00000001' then OpenContainer(konteiner_sklad) # Используется как UO.Resend(), но только для контейнера else UO.Resend() endif CheckLag() if UO.GetSerial(konteiner_priemnik) <> '0x00000001' then UO.MoveItem('finditem',2,konteiner_priemnik) else UO.MoveItem('finditem',2,'ground',iX,iY,iZ) endif CheckLag() UO.FindType(typ,tsvet,konteiner_priemnik) if UO.GetSerial(konteiner_sklad) <> '0x00000001' then UO.MoveItem('finditem',1,konteiner_sklad) else UO.MoveItem('finditem',1,'ground',iX,iY,iZ) endif CheckLag() return endif CheckLag() if UO.GetSerial(konteiner_priemnik) <> '0x00000001' then UO.MoveItem('finditem',QuantityForLargeHeaps,konteiner_priemnik) else UO.MoveItem('finditem',QuantityForLargeHeaps,'ground',iX,iY,iZ) endif CheckLag() UO.FindType(typ,tsvet,konteiner_sklad) kolvo = kolvo - QuantityForLargeHeaps if kolvo < QuantityForLargeHeaps then QuantityForLargeHeaps = kolvo endif k = k + 1 ChangeWeight = (UO.Weight - InitialWeight) / k NewWeight = UO.Weight + ChangeWeight PrintInColor("Осталось перебросить: " + str(kolvo),'0x0053') wend endif wend endif endsub
SUB Presentation(TXT) PrintInColor("**************************",'0x0035') PrintInColor(TXT,'0x0035') PrintInColor("* Made by GAUHAR *",'0x0035') PrintInColor("**************************",'0x0035') wait(3000) endsub
SUB PrintInColor(text,color) # PrintInColor("здесь текст",'цвет') UO.ConColor(color) UO.Print(text) UO.ConColor('1088') endsub
SUB OpenContainer(cntnr) DelJournal('Contains') DelJournal('items') DelJournal('Bank Box') UO.UseObject(cntnr) UO.Click(cntnr) repeat wait(300) until UO.InJournal('Contains') or UO.InJournal('items') or UO.InJournal('Bank Box') endsub
SUB RemoveTargetingOrWaiting() if UO.Waiting() then UO.CancelMenu() endif if UO.Targeting() then UO.CancelTarget() endif endsub
SUB DelJournal(string1) VAR nom = UO.InJournal(string1) if nom > 0 Then UO.SetJournalLine(Nom - 1, 'string replaced') DelJournal(string1) endif endsub
SUB CheckLag() DelJournal('backpack') UO.Click('backpack') repeat wait(100) until UO.InJournal('backpack') endsub
|