виноделие, сортировка виноделия |
виноделие, сортировка виноделия |
19 марта 2016 13:52
Сообщение #1
|
|
может есть у кого скрипт на изготовление вина ? или скрипт на сортировку вина по названию скила? Зомби в основном надежда на тебя=) |
|
|
|
19 марта 2016 14:02
Сообщение #2
|
|
;---------------------------------------------------------------------------- ; by VeL The Best ;---------------------------------------------------------------------------- ; Загрузка бутылок с элем в пак персонажа. ; ; Для работы скрипта необходимо открыть контейнер в котором должны находиться ; мешки с элем, запустить макрос LoadAle, скрипт будет по очереди открывать все ; мешки и проверять эль по названиям из NameAle, в случае совпадения переместит ; в пак персонажа. ; ; ВНИМАНИЕ! Скрипт не отслеживает кол-во предметов в паке персонажа! ;---------------------------------------------------------------------------- var NameAle = 'Inscription|Archery' sub LoadAle() var Container = UO.GetSerial('lastcontainer') UO.IgnoreReset() while UO.FindType(0x0E76, -1, Container) <> '' UO.Ignore('finditem') LoadAle('finditem', NameAle) wend UO.IgnoreReset() UO.ColorPrint(0x042B, 'Работа скрипта завершена!') end sub Sub LoadAle(Container, NameAle) var Index OpenBox(Container) if UO.FindType(0x099F, 0x0000, Container) <> '' then for Index = 0 to UO.FindCount() - 1 UO.ReceiveObjectName(UO.FindItem(Index), 20000) if Compare(NameAle, UO.GetName(UO.FindItem(Index))) then MoveItem(UO.FindItem(Index), 1, 'backpack') end if next end if end sub Sub Compare(NameAle, Name) var Index for Index = 1 to GetWordCount(NameAle, '|') if GetWord(NameAle, Index, '|') == Left(Name, Len(GetWord(NameAle, Index, '|'))) then return True end if next return False end sub Sub OpenBox(Container) UO.UseObject(Container) if UO.WaitingForJournalText(Now(), 550, "You can't") then return False end if return UO.ReceiveObjectName(Container, 20000) end sub Sub MoveItem(Item, Count, Container) UO.MoveItem(Item, Count, Container) while UO.ContainerOf(Item) <> UO.GetSerial(Container) Wait(100) wend Wait(550) end sub |
|
|
|
19 марта 2016 14:04
Сообщение #3
|
|
//---------------------------------------------------------------------------- // by VeL The Best //---------------------------------------------------------------------------- // Изготовление "Oak Ale" // // Для работы скрипта необходимо, открыть основной контейнер с пустыми // мешками и ресурсами, запустить скрипт. Скрипт будет брать ресурсы, кравтить // эль и складывать его в мешки. //---------------------------------------------------------------------------- const CountItems = 50; Ale = $099F; Bag = $0E76; MoveDelay = 550; SaveDelay = 20000; type tItems = record Types : array of Word; Names : array of string; Counts : array of Word; end; var Items : tItems; Container, Dest : Cardinal; procedure InitScript; begin Container := LastContainer; Items.Types := [$0F88, $09D1, $0C66, $09D0, $0C7F, $09EC, $0F0E]; Items.Names := ['Nightshade', 'Grape Bunch', 'Hops Cones', 'Apple', 'Ear Of Corn', 'Jar Of Honey', 'Empty Bottle']; Items.Counts := [5, 1, 1, 1, 1, 1, 1]; end; function OpenContainer(const Container: Cardinal): Boolean; begin Result := Container <> $00000000; if Result then begin UseObject(Container); ClickOnObject(Container); WaitJournalLine(Now, 'You can''t| items', SaveDelay); Result := FoundedParamID = 1; end; end; procedure MoveItemDelay(const ObjID: Cardinal; const CountItems: Word; const Dest: Cardinal); begin MoveItem(ObjID, CountItems, Dest, 0, 0, 0); while GetParent(ObjID) <> Dest do Wait(100); Wait(MoveDelay) end; function MoveItemsEx(const ItemType, ItemColor: Word; ItemCount: Word; const Source, Dest: Cardinal): Boolean; begin Result := True; while FindTypeEx(ItemType, ItemColor, Source, False) <> $00000000 do begin MoveItemDelay(FindItem, ItemCount, Dest); if ItemCount > FindQuantity then ItemCount := ItemCount - FindQuantity else Exit end; Result := False end; { MoveItemsEx } function AddItems(const ItemType, ItemColor: Word; ItemCount: Word; const Source, Dest: Cardinal): Boolean; begin Result := True; if CountEx(ItemType, ItemColor, Dest) < ItemCount then if not MoveItemsEx(ItemType, ItemColor, ItemCount - CountEx(ItemType, ItemColor, Dest), Source, Dest) then Result := False end; { AddItems } procedure UnloadItems(const ObjType, ObjColor: Word; const Source, Dest: Cardinal); begin while FindTypeEx(ObjType, ObjColor, Source, False) <> $00000000 do MoveItemDelay(FindItem, 255, Dest); end; procedure CraftAle; var Index : Integer; begin repeat for Index := 0 to High(Items.Types) do if CountEx(Items.Types[Index], $0000, Backpack) < Items.Counts[Index] then Exit; WaitMenu('What sort of potion', 'Oak Ale'); UseType(Items.Types[0], $0000); WaitJournalLineSystem(Now, 'You put|You fail', SaveDelay); until Dead; end; var Index : Integer; begin InitScript; IgnoreReset; repeat repeat Dest := FindType(Bag, Container); if not OpenContainer(Dest) then begin AddToSystemJournal('Пустые контейнеры закончились!'); Exit end; FindType($FFFF, Dest); if FindCount + 50 <= 255 then Break else Ignore(Dest); until Dead; CraftAle; UnloadItems(Ale, $0000, Backpack, Dest); for Index := 0 to High(Items.Types) do begin if CountEx(Items.Types[Index], $0000, Container) > 0 then AddItems(Items.Types[Index], $0000, Items.Counts[Index] * CountItems, Container, Backpack) else begin AddToSystemJournal('Недостаточно "' + Items.Names[Index] + '".'); Exit end; end; until Dead; end. |
|
|
|
19 марта 2016 16:22
Сообщение #4
|
|
спасибо огромное!! |
|
|
|
Сейчас: 24 ноября 2024 04:34 |