Galaxis 0 Жалоба Опубликовано 29 апреля, 2009 итак, сабж. кому не жалко, поделитесь плиз. ато так ломает руками копать! 3 дня рид онли за капс лок в названии темы Cowboy_Marlboro Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Glavast 0 Жалоба Опубликовано 16 мая, 2009 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 попробуй это. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Galaxis 0 Жалоба Опубликовано 17 мая, 2009 К сожалению, не пойдет. Его целиком надо перелопачивать. Копает киркой, ожидание фраз. Но все равно спасибо. Попробую сам написать. Если получится - выложу в общее пользование Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DrosS 0 Жалоба Опубликовано 28 мая, 2009 К сожалению, не пойдет. Его целиком надо перелопачивать. Копает киркой, ожидание фраз. Но все равно спасибо. Попробую сам написать. Если получится - выложу в общее пользование 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(). Идёт по прямоугольнику вдоль забора (не забудьте выставить размеры своего садового участка) и вскапывает тайл под собой и справа от себя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
elder 0 Жалоба Опубликовано 31 марта, 2010 А каким образом подправить это скрипт, что бы он не один раз вскапывал, а повторялся ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты