BlackSmithing

Anything and all.

Moderators: Murderator+, Murderator

.DemO_
Posts: 15
Joined: 2006-11-18 09:00:58

Post by .DemO_ »

Skull_CAT wrote:
А ты уверен что у тебя в сумке 1000 ингов ??


В бэкпаке не 1000, а в сундуке больше лежит.
.DemO_
Posts: 15
Joined: 2006-11-18 09:00:58

Post by .DemO_ »

Ап! Кто подскажет ?
// Еще раз апнешь, пойдёшь правила читать! Der

Хмм а флейм нарушением правил не считается ?
Last edited by .DemO_ on 2006-11-30 15:51:52, edited 2 times in total.
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

прошу отозватся модератора кто анонимно пишет красным шрифтом :!:
// Блин, яж вродеб подписал. Der
.DemO_
Posts: 15
Joined: 2006-11-18 09:00:58

Post by .DemO_ »

Вопрос такого плана в этом скрипте он почему то куёт дагеры но когда заканчиваются инги с дагерами он ничего не делает что можно дописать чтобы он к переплавлял их ?
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

... и мне, и мне помогите...

Играю на DRW.RU

Вот скрипт:

Code: Select all

sub main()
var b
########################
### Названия слитков ###
########################
dim a[8]
a[1] = "Rusty"
a[2] = "Old Copper"
a[3] = "Dull Copper"
a[4] = "Copper"
a[5] = "Bronze"
a[6] = "Gold"
a[7] = "Silver"
a[8] = "Rose"

#####################
###  Цвет слитков ###
#####################

dim c[8]
c[1] = 0x0750
c[2] = 0x0590
c[3] = 0x060A
c[4] = 0x0000
c[5] = 0x0488
c[6] = 0x0000
c[7] = 0x0000
c[8] = 0x0014

###################
### Тип слитков ###
###################

dim d[8]
d[1] = 0x1BEF
d[2] = 0x1BEF
d[3] = 0x1BEF
d[4] = 0x1BE3
d[5] = 0x1BEF
d[6] = 0x1BE9
d[7] = 0x1BF5
d[8] = 0x1BEF

while uo.weight < uo.str*4+20 ; Пока текущий вес меньше MAX-веса :)
for b = 1 to 8
While uo.count(d[b],c[b]) > 3
    UO.usetype(d[b])
    UO.automenu('Blacksmithing','Colored Armor & Weapons')
    UO.Automenu('Colored Armor & Weapons',a[b]+' Weapons')
    UO.automenu(a[b]+' Weapons',a[b]+' Swords & Blades')
    UO.automenu(a[b]+' Swords & Blades',a[b]+' Dagger')
jour() ; смотри далее по скрипту
wend
cm() ; смотри далее по скрипту
next
If uo.count("0x0F51") > 0 then ; условие на наличие даггеров > 0
smelth() ; смотри далее по скрипту
end if
move() ; смотри далее по скрипту
wend
end sub

sub cm()
uo.cancelmenu()
endsub

sub move()
uo.useobject("0x4006AF01") ; открыть мешок с ингами (иначе не хочет перемещать)
var z
#########################
### Названия слитков ### ... А это другой скрипт потому и повторяется... :)))
#########################
dim a[8]
a[1] = "Rusty"
a[2] = "Old Copper"
a[3] = "Dull Copper"
a[4] = "Copper"
a[5] = "Bronze"
a[6] = "Gold"
a[7] = "Silver"
a[8] = "Rose"

####################
### Цвет слитков ###
####################

dim c[8]
c[1] = 0x0750
c[2] = 0x0590
c[3] = 0x060A
c[4] = 0x0000
c[5] = 0x0488
c[6] = 0x0000
c[7] = 0x0000
c[8] = 0x0014

###################
### Тип слитков  ###
###################

dim d[8]
d[1] = 0x1BEF
d[2] = 0x1BEF
d[3] = 0x1BEF
d[4] = 0x1BE3
d[5] = 0x1BEF
d[6] = 0x1BE9
d[7] = 0x1BF5
d[8] = 0x1BEF

if z > 8 or z < 0 then ; вот тут собственно и начинается проблема
   z = 5 ; Почему 5? Потому что, до 5 я уже перековал-переплавил :)))
end if

uo.findtype(d[z],c[z],"0x4006AF01") ; ищет тип d[z], с цветом c[z], в мешке с ID=0x4006AF01
uo.moveitem('finditem',uo.str*4-uo.weight,"0x40324BE4",50,0,50) ;перемещает найденное в бекпак
   wait(500)

uo.print(a[z]) ; тут так прикола ради отображает имя текущего ингота

         if not uo.findcount() then ; а вот тут я всяко извращался, но до умной мысли не додумался. Должно переходить на следующий тип...
               z = z + 1
         endif

end sub

sub smelth() ; тут всё нормально
while uo.count("0x0F51") > 0
uo.useobject('0x40254CBC')
uo.waittargettype("0x0F51")
jour()
wend
end sub

sub jour() ; проверка журнала на всякое :))
uo.deletejournal()
while not uo.injournal("You put the")  and not uo.injournal("You have failed") and not uo.injournal("It is consumed in fire") and not uo.injournal("You can't see the target")
   if uo.injournal("world is saving now...") then
      while not uo.injournal("world data saving")
         wait(100)
      wend
   endif
wait(100)
wend
end sub


Суть скрипта - чар берёт инги из мешка, куёт даггеры, переплавляет даггеры в инги, добирает инги из мешка до макс. веса, куёт...- переплавляет...-куёт...
Проблема в том что, как только кончается один тип ингов (например Rusty) то чар не может перейти на другой тип.
Пробовал по журналу - на фразы "Object not found", "Items found: 0" - не реагирует.
Подскажите лю-уди-и до-обры-ыя. :(
:D :D :D

Нашёл у Askaneli такой же, но наверно получше - не тестил. Просто хочу узнать почему не срабатывает условие перехода на другой тип инготов. Перепробовал все известные мне методы (их было очень мало). Может туплю? :mrgreen:
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

Вроде всё - довёл до ума. Выкинул лишнее, добавил нужное.(если сделаю лучше - исправлю)

Ацените!!!
:mrgreen:
BS dagger all ingot v.3 :D

Code: Select all

var b, box, forge, item
box = '0x401D2DB9'      ;Контейнер с "железными чушками"
forge = '0x40254CBC'   ;ID Плавилки
item = '0x0F51'         ;Тип куевых вещчей

Sub d1(a)
a[1] = "Rusty"
a[2] = "Old Copper"
a[3] = "Dull Copper"
a[4] = "Copper"
a[5] = "Bronze"
a[6] = "Silver"
a[7] = "Gold"
a[8] = "Shadow"
a[9] = "Rose"
a[10] = "Agapite"
a[11] = 'Blood Rock'
return a
end sub

Sub d2(c)
c[1] = 0x0750
c[2] = 0x0590
c[3] = 0x060A
c[4] = 0x0000
c[5] = 0x0488
c[6] = 0x0000
c[7] = 0x0000
c[8] = 0x096B
c[9] = 0x0014
c[10] = 0x0193
c[11] = 0x04C2
return c
end sub

Sub d3(d)
d[1] = 0x1BEF
d[2] = 0x1BEF
d[3] = 0x1BEF
d[4] = 0x1BE3
d[5] = 0x1BEF
d[6] = 0x1BF5
d[7] = 0x1BE9
d[8] = 0x1BEF
d[9] = 0x1BEF
d[10] = 0x1BEF
d[11] = 0x1BEF
return d
end sub

sub main()
dim a[11], c[11], d[11]
a = d1(a)
c = d2(c)
d = d3(d)
while 1
for b = 1 to 10
   while uo.count(d[b],c[b]) > 2
      if not uo.count(d[b],c[b]) < 3 then
         bs(d[b],c[b],a[b])
         cm()
      end if
   wend
next
smelth()
wend
end sub

sub cm()
uo.cancelmenu()
endsub

sub move()
dim a[11], c[11], d[11]
a = d1(a)
c = d2(c)
d = d3(d)

uo.useobject(box)
for b = 1 to 10
uo.findtype(d[b],c[b],box)
uo.print(a[b])
   if uo.findcount() and uo.GetQuantity('finditem') > 2 then
uo.moveitem('finditem',uo.str*4-uo.weight)
uo.print(a[b])
      GoTo go
   endif
   wait(500)
next
go:
wait(700)
end sub

sub smelth()
if not uo.count(item) then
move()
end if
while uo.count(item) > 0
uo.waittargettype(item)
uo.useobject(forge)
wait(50)
jour()
wend
end sub

sub jour()
uo.deletejournal()
while not uo.injournal("You put the")  and not uo.injournal("You have failed") and not uo.injournal("It is consumed in fire") and not uo.injournal("You can't see the target")
   if uo.injournal("menu ignored") then
      main()
   end if
   if uo.injournal("world is saving now...") then
      while not uo.injournal("world data saving")
         wait(100)
      wend
   endif
wait(100)
wend
endsub


Sub bs(type,color,name)
    UO.usetype(type,color)
   if name == 'Gold' then
      UO.AutoMenu(name+' Swords',name+'en Dagger')
      UO.AutoMenu(name+' Weapons','Swords')
   else
      UO.AutoMenu(name+' Swords',name+' Dagger')
      UO.AutoMenu(name+' Weapons','Swords')
   end if
        UO.AutoMenu('Colored','Weapons')
        UO.AutoMenu('Blacksmithing','Colored')
jour()
end sub


Я начинающий скриптер...(не программист)
Я играю на DRW.RU
Использую инжект 505.18 VeNd0r
Last edited by ADEPT_ABP on 2007-07-24 07:29:23, edited 2 times in total.
arch
Posts: 38
Joined: 2004-05-26 16:39:57
Location: www.myruo.ru
Contact:

Post by arch »

DerMeister =) wrote:
Desktop wrote:Народ можалсута можна такой сцрипт на БС на ДРЩ,
Чувак пoкупет все фулл Iron ringmail у вендора, тамже на местьи иво и плавит(уьлисцний бальшой Forge), эсльи инги випадаваютса из backpackа то падбераэт посльи таво как сжог все рингмаилы, патом из етава ирона делает црысс, ильи штоньебуть другое, прадаёт все сдеалнайи црысс тамуже вендру у каторава купил full iron ringmai и штобе весь мацрос апать занава! (горад к премеру можна брать минок, магаз недальеко от минок банка!) (всо действиэ без всаких там рунбукоф)

Буду ждать с нетерпением!

Ты с udaff.com сюда попал :wink: ?

ЗЫ:Эдред, я внатуре не могу удержаться...
я думаю, у него просто неудачная транслитерация.
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

У меня опять БС незаладился. Подмогните, а то мозги "кипят".

Code: Select all

var n, i, c, a, num, b, p ;Резервируем переменные
var h = '0x13E3' ; молоток.

sub main()
dim m[7]         ;Массив
m[1] = '(1)'      ;Шлем
m[2] = '(2)'      ;Горжетка
m[3] = '(3)'      ;Рукавицы
m[4] = '(4)'      ;Налокотники
m[5] = '(5)'      ;"Штаны"
m[6] = '(7)'      ;Кираса
m[7] = '(10)'      ;Щит
uo.Equipt('Rhand',h)
num = 0
go:
uo.addobject('object')
while uo.targeting()
   wait(100)
wend

uo.resend()
wait(1000)
uo.resend()
wait(200)
n = uo.getname('object')      ;Получить имя
i = uo.GetGraphic('object')      ;Получить тип
c = uo.getcolor('object')      ;Получить цвет
uo.print(n)
wait(200)
if n == "" then
 goto go
end if
n = Left(n,(len(n)-6))         ;Убрать из имени 6 символов справа(' ingot')
uo.print(n)
for b = 1 to len(n)
if n[b] == " " then
n = Right(n,(len(n)-(num+2))) ;имя, минус символы до пробела, плюс сам пробел.
endif
num = num + 1
wait(200)
next
uo.print(n)
wait(200)
for a = 1 to 7
bs(n,i,c,m[a])   ;Куём всё, что перечисленно в массиве!!!
cm()
next
end sub

sub cm()
uo.cancelmenu()
end sub

sub bs(name,ingot,color,item)   ;Основное дело
bs:
    UO.usetype(ingot, color)      ;Используем указанный слиток
   UO.AutoMenu(name+' Plate',item)
   UO.AutoMenu(name+' Armor','Plate')
   UO.AutoMenu('Colored','Armor')
   UO.AutoMenu('Blacksmithing','Colored')
jour()
        if UO.InJournal("You have failed") then
          goto bs
        endif
end sub

sub jour()
uo.deletejournal()
while not uo.injournal("You put the")  and not uo.injournal("You have failed") and not uo.injournal("It is consumed in fire") and not uo.injournal("You can't see the target")
   if uo.injournal("world is saving now...") then
      while not uo.injournal("world data saving")
         wait(100)
      wend
   endif
wait(100)
wend
endsub


Голова медленно, но верно зарастает костью. Мыслей практически не осталось. Идей - тоже(пришлось позаимствовать - я про последовательность автоменю, так и не понял, почему - так?).
Ломаю голову(не свою :mrgreen: ) над усовершенствованием.
Замучался. Ещё проблема - не все имена с большой буквы... Но с Shadow работает. А охота чтоб со всеми. :D
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

Доделал.
Но есть моменты с несовпадением меню, для некоторых инготов. Пример "Dull Copper", третий по счёту выбор называется странно - 't Dull Copper Armor & Shield'. Вот и пишет ошибку 'Unwaited menu'. А так работает. Запустил скрипт, указал, появившимся прицелом, ингот из которого хочешь сковать фулл и ждёшь результата. :mrgreen:

Code: Select all

var n, i, c, a, num, b, p ;Резервируем переменные
var h = '0x13E3' ; молоток.

sub main()
dim m[7]         ;Массив
m[1] = '(1)'      ;Шлем
m[2] = '(2)'      ;Горжетка
m[3] = '(3)'      ;Рукавицы
m[4] = '(4)'      ;Налокотники
m[5] = '(5)'      ;"Штаны"
m[6] = '(7)'      ;Кираса
m[7] = '(10)'      ;Щит
uo.Equipt('Rhand',h)
num = 0
go:
uo.addobject('object')
while uo.targeting()
   wait(100)
wend
uo.click('object')
n = uo.getname('object')      ;Получить имя
i = uo.GetGraphic('object')      ;Получить тип
c = uo.getcolor('object')      ;Получить цвет
wait(200)
if n == "" then
 goto go
end if
for a = 1 to 7
bs(getname(n),i,c,m[a])   ;Куём всё, что перечисленно в массиве!!!
cm()
next
end sub

sub cm()
uo.cancelmenu()
end sub

sub bs(name,ingot,color,item)   ;Основное дело
    UO.usetype(ingot, color)      ;Используем указанный слиток
      UO.AutoMenu(name+' Plate',item)
      UO.AutoMenu(name+' Armor','Plate')
        UO.AutoMenu('Colored','Armor')
        UO.AutoMenu('Blacksmithing','Colored')
jour()
        if UO.InJournal("You have failed") then
          a = a - 1
          wait(1000)
        endif
end sub

sub jour()
uo.deletejournal()
while not uo.injournal("You put the")  and not uo.injournal("You have failed") and not uo.injournal("It is consumed in fire") and not uo.injournal("You can't see the target") and not uo.injournal("Unexpected menu info")
   if uo.injournal("world is saving now...") then
      while not uo.injournal("world data saving")
         wait(100)
      wend
   endif
wait(100)
wend
endsub

sub getname(name)
VAR s = 'abcdefghijklmnopqrstuvwxyz'
var s2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
var i, ii, num
num = 0
for i = 0 to len(name)-1
   if name[i] == ' ' then
      name = right(name,(len(name)-(num+1)))
   end if
   num = num + 1
next
if not name == 'Agapite' then
name = Left(name,(len(name)-6))
end if
for ii = 0 to len(s)-1
   if name[0] == s[ii] then
      name = s2[ii] + right(name,(len(name)-1))
   end if
next
if name == 'Gold' then
   name = "Golden"
end if
return name
end sub

Cпасибо Grin-у и Destruction-у - за подсказки. :D
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Post Reply