Есть немного другой скрипт который раскладывает деньги по кучкам. Для полной ясности принципа работы скрипта читай комментарии к скрипту.
Code: ################################################################ # Скрипт собирает деньги кучками по 50к гп. # # Берем две сумки, одну с деньгами (множество кучек с разным # # количеством денег) и пустую. По требованию скрипта указываем # # сумки. ВАЖНО чтобы ни одна из сумок не была бекпаком чара. # # После формирования стопок денег в бекпаке персонажа может # # остатся кучка содержащая менее 50к гп. # # Замечание для себя: Если в стопку денег добавлять монеты или # # брать, то у этой стопки меняется ID. # #--------------------------------------------------------------# sub Format50kGP() VAR maxCntMoney = 50000 #Максимальное кол-во денег в кучке, но не меньше 32768, иначе кучки могут складываться. VAR tMoney = '0x0EED' #Тип денег. VAR idMoney #ID формируемой стопки денег. VAR cntMoney #Количество гп в стопке (кучке). VAR needMoney #Сколько гп нужно добавить (отнять) в стопку. VAR idBagFROM #ID сумки с деньгами. ([!] не бекпак чара) VAR idBagTO #ID сумки для денег. ([!] не бекпак чара) UO.Print("Укажи сумку c деньгами...") UO.AddObject('TRGT') while UO.Targeting() wait(100) wend idBagFROM = UO.GetSerial('TRGT') OpenContainer(idBagFROM) UO.Print("Укажи сумку для денег...") UO.AddObject('TRGT') while UO.Targeting() wait(100) wend idBagTO = UO.GetSerial('TRGT') OpenContainer(idBagTO) UO.IgnoreReset() UO.FindType(tMoney,'-1',idBagFROM) while UO.FindCount() #перемещаем формируемую стопку в бекпак: idMoney = UO.GetSerial('finditem') UO.MoveItem(idMoney, '0', 'backpack') wait(350) CheckLag() cntMoney = UO.GetQuantity(idMoney) needMoney = maxCntMoney - cntMoney if needMoney > 0 then #добавляем деньги в стопку UO.FindType(tMoney, '-1', idBagFROM) while UO.FindCount() and (needMoney > 0) UO.MoveItem('finditem', needMoney, 'backpack') wait(350) CheckLag() UO.FindType(tMoney, '-1', 'backpack') idMoney = UO.GetSerial('finditem') cntMoney = UO.GetQuantity(idMoney) needMoney = maxCntMoney - cntMoney UO.FindType(tMoney, '-1', idBagFROM) wend endif if needMoney < 0 then #берем только необходимое количество UO.MoveItem(idMoney, -needMoney, idBagFROM) wait(350) CheckLag() endif UO.FindType(tMoney, '-1', 'backpack') idMoney = UO.GetSerial('finditem') cntMoney = UO.GetQuantity(idMoney) if cntMoney == maxCntMoney then #перемещаем 50к во вторую сумку UO.MoveItem(idMoney, '0', idBagTO) wait(350) CheckLag() endif UO.FindType(tMoney, '-1', idBagFROM) wend UO.IgnoreReset() UO.Print("Деньги разложены кучками по " + str(maxCntMoney) + " монет.") UO.Print("Скрипт выключен.") endsub #--------------------------------------------------------------# ################################################################
################################################################ # СТАНДАРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ # #--------------------------------------------------------------# SUB OpenContainer(cntnr) UO.DeleteJournal() UO.UseObject(cntnr) UO.Click(cntnr) repeat wait(500) until UO.InJournal('Contains') or UO.InJournal('items') endsub
SUB CheckLag() UO.DeleteJournal() UO.Click('backpack') repeat wait(50) until UO.InJournal('backpack') endsub
SUB DelJournal(mesg) while UO.InJournal(mesg) UO.SetJournalLine(UO.InJournal(mesg) - 1, "") wend endsub #--------------------------------------------------------------# ################################################################
|