Corwin wrote:А критиковать в грубой форме считаю несколько неуместным.
Никто тебя не критикует.
Простое меряние пиписками идёт.

Нормальное такое явление.
Moderators: Murderator+, Murderator
Sfagnum wrote:гыг![]()
таки мой блок в скрипте естькак минимум один... правда нахерам то переделанный по "правильному".
Askaneli wrote:Простое меряние пиписками идёт.
Нормальное такое явление.
это тебе так сказать направление для размышлений высказано было... а по поводу uo.[jhlp_grab]... сходи в уроки Edred'а и посмотри его, надеюсь и для тебя авторитетное, мнение.Corwin wrote:Sfagnum wrote:гыг![]()
таки мой блок в скрипте естькак минимум один... правда нахерам то переделанный по "правильному".
Спасибо тебе за него.Askaneli wrote:Простое меряние пиписками идёт.
Нормальное такое явление.
Всегда пожалуйста.
Sfagnum wrote:это тебе так сказать направление для размышлений высказано было... а по поводу uo.[jhlp_grab]... сходи в уроки Edred'а и посмотри его, надеюсь и для тебя авторитетное, мнение.
Edred wrote:В уроках только упоминаются команды UO.Grab, UO.Drop, UO.Drophere. Несмотря на то, что я сам часто использую их в скриптах. Но, имхо, также как и setreceivingcontainer - это устаревший способ перекладывания вещей. Более правильный и более удобный для новичка - это Moveitem
STINGER wrote:Сделай скрипт для скупки регов пжалуйста
Corwin wrote:well, let us check other variables values...
using "DoSmelting=1" (it means immediate smelting of items made by script) will cause a bags to be ignored, while other objects are going to be required, for example forge. in addition, you'll need Dwarf's pickaxe in case of choosing "UseDwarfsPickaxe=1", which tool should be in the 'ChestFrom' or in you backpack. And there is no need to tell you about using of correct serial numbers.
that is all i can say you by now reasoning from your explanation.
by the way, i just checked the script - it's working.
sorry for poor english
pehmole wrote:Corwin...
What i wanna is: make the katana, drag the iron for my backpack, and make another katana...but when i'm heavy, the script didn't put the katanas in the chest...
What i have to configure for the script do just this things?
Because in the shard who i play, i can't smelt items =/
Thank for anwser me in english =D
Code: Select all
var ItemType='0x13FE' ## (katana)
var ItemColor='0x0000'
var IngotNumber=8
var IngotColor='0x0000'
var DoSmelting=0 ## !!!
...
var UseDwarfsPickaxe=0 ## !!!
var BagType='0x0E76' ## (ordinary round bag)
var IngotType='0x1BEF'
var MaxWeight=500 ## or other
Code: Select all
############################################################################################
### ###
### Make Full / Производство брони ###
### Шард Dragon World ###
### v1.20 ###
### ###
### Автор Corwin ###
### ###
############################################################################################
############################################################################################
### Глобальные переменные ###
#############################
## к скрипту Make Full
var BagType='0x0E76' ## - тип мешка для складывания брони
var UseBags=1 ## 1 - использовать раскладывание делаемой брони по мешкам; 0 - не использовать
############################################################################################
### Код скрипта ###
###################
# Формат вызова процедуры производства брони
# Sub MakeFull('название', 'тип слитка', 'цвет', 'меню 1', 'меню 2', 'меню 3', 'меню4', 'меню5')
sub MakeRusty()
MakeFull('Rusty', '0x1BEF', '0x0750', 'Colored Armor & Weapons', 'Rusty Armor', 'Rusty Armor', 'Rusty Plate Armor & Shields', 'Rusty Plate Armor & Shields')
end sub
sub MakeOldCopper()
MakeFull('Old Copper', '0x1BEF', '0x0590', 'Colored Armor & Weapons', 'Old Copper Armor', 'Old Copper Armor', 'Old Copper Plate Armor & Shields', 'Old Copper Plate Armor & Shields')
end sub
sub MakeDullCopper()
MakeFull('Dull Copper', '0x1BEF', '0x060A', 'Colored Armor & Weapons', 'Dull Copper Armor', 'Dull Copper Armor', 'Dull Copper Plate Armor & Shields', 'Dull Copper Plate Armor & Shields')
end sub
sub MakeCopper()
MakeFull('Copper', '0x1BE3', '0x0000', 'Colored Armor & Weapons', 'Copper Armor', 'Copper Armor', 'Copper Plate Armor & Shields', 'Copper Plate Armor & Shields')
end sub
sub MakeBronze()
MakeFull('Bronze', '0x1BEF', '0x0488', 'Colored Armor & Weapons', 'Bronze Armor', 'Bronze Armor', 'Bronze Plate Armor & Shields', 'Bronze Plate Armor & Shields')
end sub
sub MakeSilver()
MakeFull('Silver', '0x1BF5', '0x0000', 'Colored Armor & Weapons', 'Silver Armor', 'Silver Armor', 'Silver Plate Armor & Shields', 'Silver Plate Armor & Shields')
end sub
sub MakeGold()
MakeFull('Gold', '0x1BE9', '0x0000', 'Colored Armor & Weapons', 'Gold Armor', 'Gold Armor', 'Gold Plate Armor & Shields', 'Gold Plate Armor & Shields')
end sub
sub MakeShadow()
MakeFull('Shadow', '0x1BEF', '0x096B', 'Colored Armor & Weapons', 'Shadow Armor', 'Shadow Armor', 'Shadow Plate Armor & Shields', 'Shadow Plate Armor & Shields')
end sub
sub MakeRose()
MakeFull('Rose', '0x1BEF', '0x0014', 'Colored Armor & Weapons', 'Rose Armor', 'Rose Armor', 'Rose Plate Armor & Shields', 'Rose Plate Armor & Shields')
end sub
sub MakeAgapite()
MakeFull('Agapite', '0x1BEF', '0x0193', 'Colored Armor & Weapons', 'Agapite Armor', 'Agapite Armor', 'Agapite Plate Armor & Shields', 'Agapite Plate Armor & Shields')
end sub
sub MakeBloodRock()
MakeFull('Blood Rock', '0x1BEF', '0x04C2', 'Colored Armor & Weapons', 'Blood Rock Armor', 'Blood Rock Armor', 'Blood Rock Plate Armor & Shields', 'Blood Rock Plate Armor & Shields')
end sub
sub MakeVerite()
MakeFull('Verite', '0x1BEF', '0x07D5', 'Colored Armor & Weapons', 'Verite Armor', 'Verite Armor', 'Verite Plate Armor & Shields', 'Verite Plate Armor & Shields')
end sub
sub MakeValorite()
MakeFull('Valorite', '0x1BEF', '0x00CE', 'Colored Armor & Weapons', 'Valorite Armor', 'Valorite Armor', 'Valorite Plate Armor & Shields', 'Valorite Plate Armor & Shields')
end sub
sub MakeMytheril()
MakeFull('Mytheril', '0x1BEF', '0x052D', 'Colored Armor & Weapons', 'Mytheril Armor', 'Mytheril Armor', 'Mytheril Plate Armor & Shields', 'Mytheril Plate Armor & Shields')
end sub
sub MakeBlackRock()
MakeFull('Black Rock', '0x1BEF', '0x0455', 'Colored Armor & Weapons', 'Black Rock Armor', 'Black Rock Armor', 'Black Rock Plate Armor & Shields', 'Black Rock Plate Armor & Shields')
end sub
sub MakeObsidian()
MakeFull('Obsidian', '0x1BEF', '0x0028', 'Colored Armor & Weapons', 'Obsidian Armor', 'Obsidian Armor', 'Obsidian Plate Armor & Shields', 'Obsidian Plate Armor & Shields')
end sub
sub MakePlutonium()
MakeFull('Plutonium', '0x1BEF', '0x08AF', 'Colored Armor & Weapons', 'Plutonium Armor', 'Plutonium Armor', 'Plutonium Plate Armor & Shields', 'Plutonium Plate Armor & Shields')
end sub
sub MakeKrynite()
MakeFull('Krynite', '0x1BEF', '0x010F', 'Krynite Armor', '', '', '', '')
end sub
sub MakeSandRock()
MakeFull('Sand Rock', '0x1BEF', '0x008F', 'Sand Rock Armor', '', '', '', '')
end sub
sub MakeGorgan()
MakeFull('Gorgan', '0x1BEF', '0x09F0', 'Gorgan Armor', '', '', '', '')
end sub
sub MakeBloodCrest()
MakeFull('Blood Crest', '0x1BEF', '0x09EC', 'Blood Crest Armor', '', '', '', '')
end sub
sub MakeCrystaline()
MakeFull('Crystaline', '0x1BEF', '0x09A4', 'Crystaline Armor', '', '', '', '')
end sub
sub MakeAcid()
MakeFull('Acid', '0x1BEF', '0x09B9', 'Acid Armor', '', '', '', '')
end sub
sub MakeVulcan()
MakeFull('Vulcan', '0x1BEF', '0x09DA', 'Vulcan Armor', '', '', '', '')
end sub
sub MakeEldar()
MakeFull('Eldar', '0x1BEF', '0x0BA7', 'Eldar Armor', '', '', '', '')
end sub
sub MakeSteel()
MakeFull('Steel', '0x1BEF', '0x09D3', 'Steel Armor', '', '', '', '')
end sub
sub MakeAqua()
MakeFull('Aqua', '0x1BEF', '0x0060', 'Aqua Armor', '', '', '', '')
end sub
sub MakeElvin()
MakeFull('Elvin', '0x1BEF', '0x09E6', 'Elvin Armor', '', '', '', '')
end sub
sub MakeDragon()
MakeFull('Dragon', '0x1BEF', '0x0085', 'Dragon Armor', '', '', '', '')
end sub
############################################################################################
### Процедуры поддержки ###
###########################
Sub MakeFull(Name, Type, Color, Menu1, Menu2, Menu3, Menu4, Menu5)
var Exit=0, AllExit=0
var CurrentBag
var Menu
UO.UnSetReceivingContainer()
UO.DeleteJournal()
uo.IgnoreReset()
SetObjects()
Open('ChestFrom')
Open('ChestTo')
if UseBags == 1 then
uo.SetReceivingContainer('backpack')
CheckLag()
uo.print('Выбираем пустой мешок')
uo.findtype(BagType,'-1','backpack')
wait(100)
if uo.findcount()<=0 then
while Exit<>1
uo.findtype(BagType,'-1','ChestFrom')
wait(100)
if uo.findcount()>0 then
CurrentBag=uo.GetSerial('finditem')
Open(CurrentBag)
uo.findtype('-1','-1',CurrentBag)
wait(100)
if uo.findcount()>0 then
uo.Ignore(CurrentBag,'on')
else
uo.grab('0',CurrentBag)
wait(1000)
uo.IgnoreReset()
Exit=1
endif
else
uo.print('Пустые мешки закончились, скрипт работу заканчивает')
uo.IgnoreReset()
Exit=1
AllExit=1
endif
wend
else
CurrentBag=uo.getserial('finditem')
endif
wait(1000)
uo.UnSetReceivingContainer('backpack')
Exit=0
else
CurrentBag=uo.getserial('ChestTo')
endif
if AllExit==0 then
Exit = MakeItem(Menu1, Menu2, Menu3, Menu4, Menu5, (Name+' Plate Helm'), 15, Type, Color)
if Exit <> 1 then
Exit = MakeItem(Menu1, Menu2, Menu3, Menu4, Menu5, (Name+' Platemail Gorget'), 10, Type, Color)
endif
if Exit <> 1 then
Exit = MakeItem(Menu1, Menu2, Menu3, Menu4, Menu5, (Name+' Platemail Gauntlets'), 12, Type, Color)
endif
if Exit <> 1 then
Exit = MakeItem(Menu1, Menu2, Menu3, Menu4, Menu5, (Name+' Platemail Arms'), 18, Type, Color)
endif
if Exit <> 1 then
Exit = MakeItem(Menu1, Menu2, Menu3, Menu4, Menu5, (Name+' Platemail Legs'), 20, Type, Color)
endif
if Exit <> 1 then
Exit = MakeItem(Menu1, Menu2, Menu3, Menu4, Menu5, (Name+' Heater Shield'), 18, Type, Color)
endif
if Exit <> 1 then
Exit = MakeItem(Menu1, Menu2, Menu3, Menu4, Menu5, "", 25, Type, Color)
endif
CheckLag()
MoveItems('0x1410','-1','0',uo.GetSerial('backpack'),CurrentBag)
MoveItems('0x1411','-1','0',uo.GetSerial('backpack'),CurrentBag)
MoveItems('0x1412','-1','0',uo.GetSerial('backpack'),CurrentBag)
MoveItems('0x1413','-1','0',uo.GetSerial('backpack'),CurrentBag)
MoveItems('0x1414','-1','0',uo.GetSerial('backpack'),CurrentBag)
MoveItems('0x1415','-1','0',uo.GetSerial('backpack'),CurrentBag)
MoveItems('0x1B76','-1','0',uo.GetSerial('backpack'),CurrentBag)
if (UseBags==1) then
CheckLag()
uo.SetReceivingContainer('ChestTo')
uo.Grab('0',CurrentBag)
wait(1000)
uo.UnSetReceivingContainer('ChestTo')
endif
endif
uo.Print('Скрипт MakeFull остановлен')
end sub # MakeFull
##########
Sub MakeItem(Menu1, Menu2, Menu3, Menu4, Menu5, Menu6, IngotNumber, IngotType, IngotColor)
var k, ReturnCode = 0
UO.CancelMenu()
uo.AutoMenu('Blacksmithing', 'Colored Armor & Weapons')
if Menu3 <> "" then
uo.AutoMenu(Menu1, Menu2)
if Menu5 <> "" then
uo.AutoMenu(Menu3, Menu4)
if Menu6 <> "" then
uo.AutoMenu(Menu5, Menu6)
endif
else
if Menu6 <> "" then
uo.AutoMenu(Menu3, Menu6)
endif
endif
else
if Menu6 <> "" then
uo.AutoMenu(Menu1, Menu6)
endif
endif
repeat
CheckLag()
if uo.Count(IngotType, IngotColor) < IngotNumber then
MoveItems(IngotType, IngotColor, str((IngotNumber-uo.Count(IngotType, IngotColor)),0), 'ChestFrom', uo.GetSerial('backpack'))
endif
if uo.Count(IngotType, IngotColor) < IngotNumber then
uo.Print('Не хватает слитков, скрипт работу заканчивает')
ReturnCode=1
endif
if ReturnCode<>1 then
k=0
uo.DeleteJournal()
CheckLag()
UO.UseType(IngotType)
if Menu6 == "" then
CheckLag()
uo.LClick(265,67)
wait(500)
CheckLag()
uo.LClick(265,67)
wait(500)
CheckLag()
uo.LClick(265,67)
wait(500)
CheckLag()
uo.LDblClick(242,67)
endif
while not UO.InJournal('You put') and not UO.InJournal('have failed') and (k<120)
wait(100)
k=k+1
wend
endif
until UO.InJournal('You put') or (ReturnCode == 0)
return ReturnCode
end sub # MakeItem
##########
Sub SetObjects()
UO.Print('Выберите сундук-источник со слитками и пустыми мешками: ')
UO.Exec('addobject ChestFrom')
While UO.Targeting()
Wait(100)
Wend
UO.Print('Выберите сундук-приемник: ')
UO.Exec('addobject ChestTo')
While UO.Targeting()
Wait(100)
Wend
end sub # SetObjects
##########
Sub CheckLag()
while (uo.ObjAtLayer('Bpack')=='')
wait(1000)
wend
if UO.Waiting() then
UO.CancelTarget()
endif
uo.DeleteJournal()
uo.Click('backpack')
repeat
wait(50)
until uo.InJournal('backpack')
end sub # CheckLag
##########
Sub MoveItems(ItemType,ItemColor,ItemQuantity,FromContainer,ToContainer)
var CurrentQuantity, flag=true
CheckLag()
uo.SetReceivingContainer(ToContainer)
uo.FindType(ItemType,ItemColor,FromContainer)
wait(100)
CurrentQuantity=uo.GetQuantity('finditem') ## кол-во предметов в найденной стопке
while (uo.FindCount()>0) and (flag==true) ## если что-то нашли и еще не все нужное переместили
CheckLag()
if val(ItemQuantity)<=CurrentQuantity then ## если переместить нужно все или меньше, чем в стопке
uo.Grab(ItemQuantity,'finditem') ## перемещаем всю стопку или заданное кол-во
wait(500)
if ItemQuantity=='0' then ## если переместить надо все
CheckLag()
uo.FindType(ItemType,ItemColor,FromContainer) ## ищем следующую стопку
wait(100)
CurrentQuantity=uo.GetQuantity('finditem')
else ## если уже переместили нужное кол-во - выход из процедуры
flag=false
endif
else ## если переместить нужно не все, но больше, чем в найденной стопке
uo.Grab('0','finditem') ## перемещаем всю стопку
wait(500)
ItemQuantity=str((val(ItemQuantity)-CurrentQuantity),0) ## вычисляем, сколько еще нужно
CheckLag()
uo.FindType(ItemType,ItemColor,FromContainer) ## ищем следующую стопку
wait(100)
CurrentQuantity=uo.GetQuantity('finditem')
endif
wend
uo.UnSetReceivingContainer(ToContainer)
end sub # MovingItems
##########
Sub Open(Container)
CheckLag()
uo.UseObject(Container)
wait(3000)
end sub # Open
Code: Select all
Sub Alchemy("0x0F88", "", "", "Poison", "0x0998", 2, 0, 0)