Yoko

All sides of Injection
It is currently 2025-11-12 21:11:53

All times are UTC+02:00




Post new topic  Reply to topic  [ 7 posts ] 
Author Message
PostPosted: 2006-03-27 09:48:48 
Offline
User avatar

Joined: 2005-07-17 15:30:52
Posts: 308
Location: www.drw.ru
Собственно проблема в следующем:
есть скрипт под мининг, взять выложеный под дрв и отредактированный мной под мой шард, проблема заключается в следующем максимальные координаты в которых чар может окопаться от -2 до 2, при этом руды в каждой из точек оч мало, выкапывает все вокруг себя буквально за 5 мин, иногда быстрее, хочу сделать так чтобы при повторе 25 раз подряд There is no ore here, чар перемещался на 5 клеток вниз, при удачном выкапывании срабатвала очистка журнала, так вот хочу спросить, реально пощатать количество неудачных попыток выкопать руду подряд?


Top
   
 Post subject:
PostPosted: 2006-03-27 11:30:15 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
ты не тем замарачиваешься...
InJournal тебе нужен что бы отпределять результат от твоих капаний..
5х5 задаешь циклом счетчиком... как только ни отрабатывают о делаешь переход и опять колбасишься;)


Top
   
 Post subject:
PostPosted: 2006-03-27 11:53:45 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Вот что могу предложить, но скрипт не под ДРВ:
Code:
# Прописываем тип кирки и можно копать...

sub main_mine()
var i
uo.print("поехали")
While UO.Life>0
for i=1 to 20    #максимальное расстояние на которое отходим
kopat()
stam()
uo.press(33)     #Определяет направление движения
next
uo.print("GO назад =)")
kopat()
for i=1 to 21   
wait(500)
stam()
uo.press(35)     #Определяет направление движения
next
stam()
uo.press(33)     #Определяет направление движения
wend
end sub

sub kopat()
var where_x,where_y,coords,i
UO.DeleteJournal()
where_x=uo.getx()
where_y=uo.gety()
for i=-2 to 2
uo.print("Тайл "+str(i+3)+"/5")

coords="waittargettile "+" 1343 "+str(where_x+i)+" "+str(where_y)+" 0" 
#Здесь, если меняем ось движения, нужно заменить на
#coords="waittargettile "+" 1343 "+str(where_x)+" "+str(where_y+i)+" 0"

uo.exec(coords)
uo.exec("usetype '0x0E85'")               # Здесь прописываем тип кирки
UO.DeleteJournal()
while (not (UO.InJournal("stop mining") or UO.InJournal("far")))
wait(1000)
wend
next
end sub

sub stam()
if UO.Stamina < 10 then
wait(300000)
end if
end sub


Top
   
PostPosted: 2006-03-27 12:06:25 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Sanch wrote:
Собственно проблема в следующем:
есть скрипт под мининг, взять выложеный под дрв и отредактированный мной под мой шард, проблема заключается в следующем максимальные координаты в которых чар может окопаться от -2 до 2, при этом руды в каждой из точек оч мало, выкапывает все вокруг себя буквально за 5 мин, иногда быстрее, хочу сделать так чтобы при повторе 25 раз подряд There is no ore here, чар перемещался на 5 клеток вниз, при удачном выкапывании срабатвала очистка журнала, так вот хочу спросить, реально пощатать количество неудачных попыток выкопать руду подряд?


Code:
var i=0
uo.deletejournal()

...

sub schetchik()

if uo.injournal("удачном выкапывании") > 0 then
uo.deletejournal()
i=0
end if

if uo.injournal("There is no ore here") > 0 then
uo.SetJournalLine(uo.InJournal("There is no ore here")-1),"cleared")
i=i+1
end if
end sub

...



А дальше просто проверяй значение i...


Top
   
 Post subject:
PostPosted: 2006-03-27 20:24:59 
Offline
User avatar

Joined: 2005-07-17 15:30:52
Posts: 308
Location: www.drw.ru
Большое спасибо за помощь, ща че нить попробую намудрить... :)

Возникла еще 1 трабла :( , ну точнее просто нужно пояснение челов шарящих

UO.Print("Копаем в координатах: "+str(mx-i)+" "+str(my-j))
while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock") and not UO.InJournal("Iron Ore") and not UO.InJournal("Copper") and not UO.InJournal("Rusty Ore")
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("Shovel")
while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock")

wait (500)
if uo.injournal("heavy") or uo.dead() then
pwav()
Pause()
endif
for jor = 0 to 9
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto <> 1 and noto <> 0 and not uo.injournal("elemental") then
if uo.waiting() then
uo.canceltarget()
endif
Save()
pwavw()
wait(180000) ; время в секундах при ожидании пока уйдет ПК
loot()
wait(3000)
goto reccal
endif
next
wend

Не могли бы просвятить о действии оборота while ..... wend, имхо в выше указаных записях в журнале, while not **** много лишнего и я путаюсь при каком условии он копаеть продолжает, а при каком копает в следующей точке, или я мыслю не в том направлении?

В остальном мне целиком понятно как работает скрипт на мининг под дрв, что от чего пляшет, а вот с этим запара, ну не догоняю я.

И еще 1 вопрос :roll: , можно ли убрать там not, оставить просто "while uo.inj***" и поменять списки местами и скрипт будет работать по тому же принцепу или я несу полную чушь?


Top
   
 Post subject:
PostPosted: 2006-03-28 16:37:16 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
:shock:

Первое: http://yoko.netroof.net/help/

Второе: купи книжку по программированию на:
ABAP/4 | Ада | Алгол | Алгол 68 | АПЛ | Ассемблеры | Awk | Бейсик | Brainfuck | Си | Objective-C | C++ | C# | Clean | Curry | GPSS | КОБОЛ | ColdFusion | Dylan | Delphi | Erlang | Forth | Фортран | FoxPro | Haskell | INTERCAL | Io | Java | JavaScript | JOVIAL | Jython | Лисп | Лого | Limbo | Lua | Mercury | Mesa | ML | Модула-2 | Оберон | Компонентный Паскаль | OCaml | Occam | Паскаль | Перл | PHP | Pike | ПЛ/1 | PL/M | PL/SQL | Планкалкюль | Постскрипт | Пролог | Python | QBASIC | РЕФАЛ | REXX | Руби | sh | Scala | Scheme | Smalltalk | Self | Simula | Tcl/Tk | Visual Basic | xBase | Эйфель
[нужное подчеркнуть] :) лучше конечно по пакалю или бейсику...

Третье: not это логическое "НЕ"
true это логическая единица (true = 1)
false - логический ноль (false = 0).

Пример:

НЕ ПРАВДА = ЛОЖЬ, другими словами:
not true = false <==> not 1 = 0
not false = true <==> not 0 = 1.

Четвёртое:
По поводу UO.InJournal("text") :

Описание: InJournal

Синтакс: uo.InJournal("text")

Ищет в журнале Injection строку, в которой встречается text, и возвращает её номер плюс 1, или возвращает 0 если такая строка с момента последнего удаления журнала DeleteJournal не обнаружена. Номер может быть использован в дальнейшем для функций Journal, JournalSerial, SetJournalLine (не забыть отнять единицу).

Наверное, теперь про not UO.InJournal("text") ты сам догадаешься...


Last edited by DerMeister =) on 2006-03-28 17:09:11, edited 1 time in total.

Top
   
 Post subject:
PostPosted: 2006-03-28 16:59:43 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Quote:
Не могли бы просвятить о действии оборота while ..... wend, имхо в выше указаных записях в журнале, while not **** много лишнего и я путаюсь при каком условии он копаеть продолжает, а при каком копает в следующей точке, или я мыслю не в том направлении?


Вообще всё что связано с while, if, repeat, for и т.д. вообще из программирования, а не из инжекта как такогого...

Вот нашел для тебя учебник по паскалю:
http://www.tvoyomsk.com/index.php?id=13 ... 6905b68e27
Втыкай... :roll:

А всё что имеет отношение к УО можно найти тут:
http://yoko.netroof.net/help/
и тут:
viewtopic.php?t=3491


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 7 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited