Перейти к содержанию
Форум шарда Middle-Earth
Авторизация  
Galaxis

Ищу скрипт.

Рекомендуемые сообщения

итак, сабж. кому не жалко, поделитесь плиз. ато так ломает руками копать!

 

3 дня рид онли за капс лок в названии темы

Cowboy_Marlboro

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

var automove = 1

var max_control = 1

var max_close_uo = 1

var max_count = 7000

var max_weight = 20000

#

var tp_ore = "0x19B9"

var colors_max = 10

#

var tp_fish_steaks = "0x097B"

var tp_pickaxe = "0x0F39"

var tp_hammer_pick = "0x143C"

var tp_tool

#

sub eat()

UO.UseType(tp_fish_steaks)

wait(1000)

end sub

 

sub Sv()

if UO.InJournal("slime|elemental") then

UO.Say(".guards")

wait(1500)

end if

end sub

 

sub Tile(t, x, y, z)

var no_work

var timeout = 10

var found = false

var stop = "nothing|no ore|too far"

repeat

UO.UseSkill('Detect Hidden')

wait(500)

Sv()

UO.DeleteJournal()

UO.WaitTargetTile(t, x, y, z)

UO.UseType(tp_tool)

no_work = 0

repeat

Sv()

wait(1000)

no_work = no_work + 1

if UO.InJournal("You put") then

found = true

end if

until UO.InJournal(stop) or UO.InJournal("You put") or UO.InJournal("cannot") or no_work >= timeout

until UO.InJournal(stop) or no_work >= timeout

return found

end sub

 

sub Main()

dim values[4]

dim colors[10]

#

var tp_tile = "1339"

var z0

var x, y, tile, count, no_work

var count_ore, count_ore_pre, count_ore_sqr

var direct, key, i

#

direct = -1

values[0] = 0

values[1] = 0

values[2] = 0

values[3] = 0

#

colors[0] = 0x01BF # bronze

colors[1] = "" # cooper

colors[2] = "" # obsidian

colors[3] = "" # iron

colors[4] = 0x03E9 # sylvite

colors[5] = "" # gold

colors[6] = "" # valorite

colors[7] = 0x0482 # silver

colors[8] = "" #

colors[9] = "" #

#

tp_tool = "no"

UO.FindType(tp_hammer_pick)

if UO.FindCount() > 0 then

tp_tool = tp_hammer_pick

UO.Print("Use hammer pick")

else

UO.FindType(tp_pickaxe)

if UO.FindCount() > 0 then

tp_tool = tp_pickaxe

UO.Print("Use pickaxe")

else

UO.Print("No found pickaxe or hammer pick")

return

end if

end if

#

z0 = UO.GetZ()

x = -2

y = -2

#

count_ore = UO.Count(tp_ore)

count_ore_pre = count_ore

count_ore_sqr = count_ore

while not uo.dead()

no_work = 0

count = 1

#

eat()

if direct >= 0 then

values[direct] = count_ore - count_ore_sqr

UO.Print("-- Ore for square : ")

UO.Print(" " + Str(values[0]))

UO.Print(" " + Str(values[1]))

UO.Print(" " + Str(values[2]))

UO.Print(" " + Str(values[3]))

count_ore_sqr = count_ore

direct = direct + 1

if direct >= 4 then

direct = 0

values[0] = 0

values[1] = 0

values[2] = 0

values[3] = 0

end if

else

direct = 0

end if

#

for x = -2 to 2

for y = -2 to 2

if x <> 0 or y <> 0 then

UO.Print("-- Mining... " + Str(x) + ":" + Str(y) + " (" + Str(count) + "/25)")

if Tile(tp_tile, UO.GetX() + x, UO.GetY() + y, z0) then

#no_work = 0

else

no_work = no_work + 1

end if

count_ore = UO.Count(tp_ore)

UO.Print("You have " + Str(count_ore) + " ore (add " + Str(count_ore - count_ore_pre) + ")")

count_ore_pre = count_ore

if max_control == 1 and (count_ore >= max_count or UO.Weight >= max_weight) then

if max_close_uo then

UO.CloseUO()

end if

return

end if

count = count + 1

end if

next

next

#

if automove == 1 then

UO.Print("-- Move...")

if direct == 0 then

key = 36

end if

if direct == 1 then

key = 33

end if

if direct == 2 then

key = 34

end if

if direct == 3 then

key = 35

end if

for i = 1 to 6

UO.Press(key)

next

end if

wend

end sub

 

 

попробуй это.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сожалению, не пойдет. Его целиком надо перелопачивать. Копает киркой, ожидание фраз. Но все равно спасибо. Попробую сам написать. Если получится - выложу в общее пользование

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
К сожалению, не пойдет. Его целиком надо перелопачивать. Копает киркой, ожидание фраз. Но все равно спасибо. Попробую сам написать. Если получится - выложу в общее пользование

 

sub Walk(dir, steps) #делает steps шагов в направлении dir

var btn

var moveindir = 0

dim directions[8], buttons[8]

 

directions[0] = "N"

directions[1] = "NE"

directions[2] = "E"

directions[3] = "SE"

directions[4] = "S"

directions[5] = "SW"

directions[6] = "W"

directions[7] = "NW"

 

buttons[0] = 33

buttons[1] = 39

buttons[2] = 34

buttons[3] = 40

buttons[4] = 35

buttons[5] = 37

buttons[6] = 36

buttons[7] = 38

 

if (directions[uo.GetDir()] <> dir) then

moveindir = 1

endif

 

var i = 0

while dir <> directions

i = i + 1

wend

 

btn = buttons

 

if moveindir then

uo.Press(btn)

repeat

wait(100)

until (directions[uo.GetDir()] == dir)

endif

 

if steps then

var x, y

 

for i = 1 to steps

x = uo.GetX()

y = uo.GetY()

 

uo.Press(btn)

 

repeat

wait(100)

until (uo.GetX() <> x) or (uo.GetY() <> y)

next

endif

end sub

 

sub DigTile(x, y) #вскапывает тайл по координатам x, y.

uo.ConColor(0x3f)

uo.Print("Вскапываю...")

uo.ConColor(0)

 

uo.WaitTargetTile("0", str(x), str(y), "0")

uo.UseType(0x0F39) #лопата, гы-гы-гы :)

 

var t = 0

uo.DeleteJournal()

repeat

wait(500)

t = t + 1

until uo.InJournal("You dig up") or uo.InJournal("There is nothing") or t > 20

end sub

 

sub Dig()

var width = 11 #ширина садового участка по оси х

var height = 12 #ширина садового участка по оси y

var i

 

Walk("E", 0) #поворачиваем чара лицом на восток

DigTile(uo.getx(), uo.gety()) #копаем тайл под чаром

DigTile(uo.getx(), uo.gety() + 1) #и тайл по правую руку чара

 

for i = 0 to width - 2 #цикл

Walk("E", 1) #делаем один шаг на восток

DigTile(uo.getx(), uo.gety()) #копаем тайл под чаром

DigTile(uo.getx(), uo.gety() + 1) #и тайл по праую руку чара

next

 

Walk("S", 1) #делаем один шаг на юг

for i = 0 to height - 3 #цикл

Walk("S", 1) #делаем шаг на юг

DigTile(uo.getx(), uo.gety()) #копаем тайл под чаром

DigTile(uo.getx() - 1, uo.gety()) #и тайл по праую руку чара

next

 

Walk("W", 1) #делаем один шаг на запад

for i = 0 to width - 3 #цикл

Walk("W", 1) #делаем один шаг на запад

DigTile(uo.getx(), uo.gety()) #копаем тайл под чаром

DigTile(uo.getx(), uo.gety() - 1) #и по правую руку чара

next

 

Walk("N", 1) #делаем один шаг на север

for i = 0 to height - 5 #цикл

Walk("N", 1) #делаем один шаг на север

DigTile(uo.getx(), uo.gety()) #копаем тайл под чаром

DigTile(uo.getx() + 1, uo.gety()) #и по правую руку чара

next

 

uo.ConColor(0x3f)

uo.Print("Вскапывание огорода завершено.")

uo.ConColor(0)

end sub

Попробуй этот, сам еще не проверял, но вроде должен работать!

Основная функция - Dig(). Идёт по прямоугольнику вдоль забора (не забудьте выставить размеры своего садового участка) и вскапывает тайл под собой и справа от себя.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
Авторизация  

×
×
  • Создать...