Yoko

All sides of Injection
It is currently 2026-01-17 10:43:48

All times are UTC+02:00




Post new topic  Reply to topic  [ 16 posts ] 
Author Message
 Post subject: Помогете Плз!
PostPosted: 2004-04-18 23:39:38 
Offline

Joined: 2004-04-18 01:33:19
Posts: 39
Нау4ете делать скрепты! напремере майненга! ЕСле можно поподробней!


Top
   
 Post subject:
PostPosted: 2004-04-19 00:17:50 
Offline

Joined: 2004-04-16 00:56:28
Posts: 19
Для написания майнинга и вообще всех сложных скриптов с перемещением(что кстати не так сложно) научись писать хотябы маленькие скрипты для крафта... потому как тебе нужен либо готовый скрипт либо ты его не осилишь.


Top
   
PostPosted: 2004-04-19 12:29:08 
Offline

Joined: 2004-04-15 22:45:52
Posts: 16
Вот тебе простой скрипт майнинга: Передвигается по контрольным точкам, которые ты указываешь в массиве, копает пока не достигнет предела веса, потом через рунбук телепортируется домой выкладывает добро в ящик, берет из ящика реколы и хлеб, перезаряжает рунбук, телепортируется назад, идет к месту копки и т.д.

;hiding отключен
;айрон выкапывается полностью
sub mining()
var fistx, fisty, fistz, mx, my, mz, i, j
var nowI = 0
fistx = UO.GetX("self")
fisty = UO.GetY("self")
fistz = UO.GetZ("self")
while 1 < 2
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
; hide(); !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
UO.DeleteJournal()
for i = mx-1 to mx+1
for j = my -2 to my+2
if UO.dead() then
return
endif
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")
UO.DeleteJournal()
UO.Waittargettile("1343", str(i), str(j), str(mz)) ;
UO.Usetype("0x0F39") ;НОМЕР ЛОПАТЫ
while not UO.InJournal("You put") and not UO.InJournal("location") and not UO.InJournal("no ore here") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock")
wait (100)
wend
if UO.InJournal("Ore Elemental") then
wait(1000)
UO.Say("guards")
wait(2000)
UO.Say("guards")
hide()
endif
if UO.dead() then
return
endif
if UO.Weight>(UO.STR*4) then
GoHome()
hide()
endif
wend
UO.DeleteJournal()
next
next
; walk(fistx)
nowI = walk1(nowI)
if nowI == 0 then
UO.print("Все, путь закончился")
GoHome()
endif
UO.usetype (0x103B) ;НОМЕР ХЛЕБА
wait(2000)
wend
end sub


sub GoHome()
var x1,y1,x2,y2
UO.print("Полетел домой, добро выкладывать!")
UO.DeleteJournal()
x1 = UO.GetX("self")
y1 = UO.GetY("self")
x2 = UO.GetX("self")
y2 = UO.GetY("self")
uo.recall(0x400C6DE5,2) ;Уникальный НОМЕР РУНБУКА
while (x1 == x2) and (y1 == y2)
wait(100)
x2 = UO.GetX("self")
y2 = UO.GetY("self")
wend


UO.Print("выкладываем добро")
VAR Cont=0x4004929B
UO.SetReceivingContainer(Cont)
UO.DeleteJournal()
UO.FindType('0x19B9','0xffff','my')
while uo.FindCount() <> 0
UO.DeleteJournal()
UO.FindType('0x19B9','0xffff','my')
# UO.print(str(uo.FindCount()))
UO.Grab('0','finditem')
wait(1500)
wend
UO.DeleteJournal()
UO.FindType('0x19B8','0xffff','my')
while uo.FindCount() <> 0
UO.DeleteJournal()
UO.FindType('0x19B8','0xffff','my')
# UO.print(str(uo.FindCount()))
UO.Grab('0','finditem')
wait(1500)
wend
UO.DeleteJournal()
UO.FindType('0x19B7','0xffff','my')
while uo.FindCount() <> 0
UO.DeleteJournal()
UO.FindType('0x19B7','0xffff','my')
# UO.print(str(uo.FindCount()))
UO.Grab('0','finditem')
wait(1500)
wend
UO.DeleteJournal()
UO.FindType('0x19BA','0xffff','my')
while uo.FindCount() <> 0
UO.DeleteJournal()
UO.FindType('0x19BA','0xffff','my')
# UO.print(str(uo.FindCount()))
UO.Grab('0','finditem')
wait(1500)
wend
UO.UnSetReceivingContainer()

wait(5000)

UO.Print("берем хлеб")
UO.FindType('0x103B','0xffff','my') ;хлеб
UO.Print("у меня хлеба осталось "+str(uo.FindCount()))
if uo.FindCount() == 0 then
;хлеб закончился надо взять еще
UO.FindType('0x103B','0xffff',cont) ;хлеб в сундуке
UO.Print("в сундуке хлеба "+str(uo.FindCount()))
if uo.FindCount() <> 0 then
UO.Grab('10','finditem')
wait(1000)
endif
endif

wait(2000)
UO.FindType('0x1F4C','0xffff','my')
UO.Print("реколов осталось "+str(uo.FindCount()))
if uo.FindCount() == 0 then
UO.FindType('0x1F4C','0xffff',cont) ;реколы в сундуке
UO.Print("в сундуке реколов "+str(uo.FindCount()))
if uo.FindCount() <> 0 then
UO.Print("берем реколы из сундука")
UO.Grab('0','finditem')
wait(1000)
endif
endif

;заряжаем рунбук
UO.Print("заряжаем рунбук")
uo.recall(0x400C6DE5,1) ;Уникальный НОМЕР РУНБУКА

wait(8000)

UO.Print("В шахту")
path1() ;Путь к шахтам номер раз
end sub

sub path1()
var x1,y1,x2,y2,x3,y3
x1 = UO.GetX("self")
y1 = UO.GetY("self")
x2 = UO.GetX("self")
y2 = UO.GetY("self")
UO.print("Поперся по первому пути")
UO.DeleteJournal()
uo.recall(0x400C6DE5,3) ; Уникальный НОМЕР РУНБУКА
while UO.InJournal("some time to recharge")
UO.print("Вот уродский рунбук!!! Жду пока перезарядится")
UO.DeleteJournal()
wait(5000)
uo.recall(0x400C6DE5,3) ; Уникальный НОМЕР РУНБУКА
wend
while (x1 == x2) and (y1 == y2)
wait(100)
x2 = UO.GetX("self")
y2 = UO.GetY("self")
wend

dim x[9],y[9]
var len = 9
;расставляем контрольные точки
x[1] = 5308
y[1] = 123
x[2] = 5302
y[2] = 123
x[3] = 5302
y[3] = 99
x[4] = 5316
y[4] = 99
x[5] = 5316
y[5] = 81
x[6] = 5297
y[6] = 81
x[7] = 5297
y[7] = 66
x[8] = 5299
y[8] = 66
x[9] = 5299
y[9] = 62

var i
; var delay = 500
var LastKey = 0;

i = 1
x1 = UO.GetX("self")
y1 = UO.GetY("self")
x2 = UO.GetX("self")
y2 = UO.GetY("self")

while i <= len
while (x1<>x[i]) or (y1<>y[i])
if y1 > y[i] then
UO.Press(33) ;вправо вверх
if LastKey == 33 then
while (x1 == x2) and (y1 == y2)
wait(100)
x2 = UO.GetX("self")
y2 = UO.GetY("self")
wend
endif
LastKey = 33
else
if y1 < y[i] then
UO.Press(35) ;влево вниз
if LastKey == 35 then
while (x1 == x2) and (y1 == y2)
wait(100)
x2 = UO.GetX("self")
y2 = UO.GetY("self")
wend
endif
LastKey = 35
else
if x1 > x[i] then
UO.Press(36) ;влево вверх
if LastKey == 36 then
while (x1 == x2) and (y1 == y2)
wait(100)
x2 = UO.GetX("self")
y2 = UO.GetY("self")
wend
endif
LastKey = 36
else
if x1 < x[i] then
UO.Press(34) ;вправо вниз
if LastKey == 34 then
while (x1 == x2) and (y1 == y2)
wait(100)
x2 = UO.GetX("self")
y2 = UO.GetY("self")
wend
endif
LastKey = 34
endif
endif
endif
endif
x1 = UO.GetX("self")
y1 = UO.GetY("self")
x2 = UO.GetX("self")
y2 = UO.GetY("self")
; UO.Print("x1: "+str(x1)+" y1: "+str(y1)+" x2: "+str(x[i])+" y2: "+str(y[i]))
; UO.Print("i: "+str(i))
wend
UO.print("Дошел до контрольной точки "+str(i)+" следующая "+str(i+1))
i = i+1
wend
end sub


sub hide()
while NOT UO.Hidden()
UO.DeleteJournal()
UO.Exec('warmode 0')
UO.UseSkill('Stealth')
repeat
wait(50)
until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied')
wend
end sub

sub walk1(i)
dim x[16],y[16]
var x1,y1,x2,y2
var len = 16
;расставляем контрольные точки
x[1] = 5299
y[1] = 62
x[2] = 5299
y[2] = 66
x[3] = 5288
y[3] = 66
x[4] = 5288
y[4] = 68
x[5] = 5289
y[5] = 68
x[6] = 5289
y[6] = 70
x[7] = 5286
y[7] = 70
x[8] = 5286
y[8] = 72
x[9] = 5285
y[9] = 72
x[10] = 5285
y[10] = 75
x[11] = 5286
y[11] = 75
x[12] = 5286
y[12] = 81
x[13] = 5283
y[13] = 81
x[14] = 5283
y[14] = 86
x[15] = 5284
y[15] = 86
x[16] = 5284
y[16] = 99

var LastKey = 0;
x1 = UO.GetX("self")
y1 = UO.GetY("self")
x2 = UO.GetX("self")
y2 = UO.GetY("self")

;-------------Определяем в какой части пути мы находимся-----------------
var j
;------------Определяем находимся ли мы в контрольной точке-------------
if i == 0 then
for j = 1 to len
if (x1==x[j]) and (y1==y[j]) then
UO.print("Нахожусь в контрольной точке номер "+str(j))
i = j+1
if i>len then
return 0
endif
endif
next
endif
;-----Определяем между какими контрольными точками мы находимся по X-----
if i==0 then
for j = 1 to len-1
if x1 == x[j] then
if x1 == x[j+1] then
if ((y1>y[j]) and (y1<y[j+1])) or ((y1<y[j]) and (y1>y[j+1])) then
UO.print("Нахожусь между контрольными точками "+str(j)+" и "+str(j+1))
i = j+1
endif
endif
endif
next
endif
;-----Определяем между какими контрольными точками мы находимся по Y-----
if i==0 then
for j = 1 to len-1
if y1 == y[j] then
if y1 == y[j+1] then
if ((x1>x[j]) and (x1<x[j+1])) or ((x1<x[j]) and (x1>x[j+1])) then
UO.print("Нахожусь между контрольными точками "+str(j)+" и "+str(j+1))
i = j+1
endif
endif
endif
next
endif
;--------Если расположение не найдено тогда облом------------------------
if i==0 then
UO.print("Хрен его знает где я нахожусь!!!")
wait(5000)
return 0
endif
;------------------------------------------------------------------------


if y1 > y[i] then
key1:
UO.Press(33) ;вправо вверх
if LastKey == 33 then
while (x1 == x2) and (y1 == y2)
wait(100)
x2 = UO.GetX("self")
y2 = UO.GetY("self")
wend
else
LastKey = 33
goto key1
endif
LastKey = 33
else
if y1 < y[i] then
key2:
UO.Press(35) ;влево вниз
if LastKey == 35 then
while (x1 == x2) and (y1 == y2)
wait(100)
x2 = UO.GetX("self")
y2 = UO.GetY("self")
wend
else
LastKey = 35
goto key2
endif
LastKey = 35
else
if x1 > x[i] then
key3:
UO.Press(36) ;влево вверх
if LastKey == 36 then
while (x1 == x2) and (y1 == y2)
wait(100)
x2 = UO.GetX("self")
y2 = UO.GetY("self")
wend
else
LastKey = 36
goto key3
endif
LastKey = 36
else
if x1 < x[i] then
key4:
UO.Press(34) ;вправо вниз
if LastKey == 34 then
while (x1 == x2) and (y1 == y2)
wait(100)
x2 = UO.GetX("self")
y2 = UO.GetY("self")
wend
else
LastKey = 34
goto key4
endif
LastKey = 34
endif
endif
endif
endif
x1 = UO.GetX("self")
y1 = UO.GetY("self")
x2 = UO.GetX("self")
y2 = UO.GetY("self")
UO.Print("x1: "+str(x1)+" y1: "+str(y1)+" x2: "+str(x[i])+" y2: "+str(y[i]))
; UO.Print("i: "+str(i))

if (x1==x[i]) or (y1==y[i]) then
UO.print("Дошел до контрольной точки "+str(i)+" следующая "+str(i+1))
i = i+1
endif

if i > len then
return 0
else
return i
endif
end sub

sub coords()
var x,y
x = UO.GetX("self")
y = UO.GetY("self")
UO.Print("x: "+str(x)+" y: "+str(y))
end sub


Top
   
 Post subject: !!
PostPosted: 2004-04-20 05:52:23 
Offline

Joined: 2004-04-18 01:33:19
Posts: 39
Э... Ну согласен мне такой не осилить, а модно немного полег4е скрипт? И есле можно какая команда 4е озна4ает!


Top
   
 Post subject: Re: !!
PostPosted: 2004-04-20 12:41:42 
Offline

Joined: 2004-04-15 22:45:52
Posts: 16
На самом деле он очень простой, просто начинай разбираться от главной функции (mining) если че не понятно, спрашивай


Top
   
 Post subject: !!
PostPosted: 2004-04-21 05:24:37 
Offline

Joined: 2004-04-18 01:33:19
Posts: 39
Ну обьясните команды


Top
   
 Post subject:
PostPosted: 2004-04-21 13:44:38 
Offline
User avatar

Joined: 2004-04-08 16:06:21
Posts: 29
Еще один пример мининга, роет вокруг себя в хайде ..

Code:
sub mining()
    Var mnPickaxe, mnR, mnXSt, mnXEnd, mnYSt, mnYEnd, mnXMy, mnYMy, mnZMy, mnX, mnY, mnXCur, mnYCur, mnCheck
    mnPickaxe = "0x0E85" # Тип кирки
    mnR = 3              # Радиус копания

    mnXSt = - mnR
    mnXEnd = mnR
    mnYSt = - mnR
    mnYEnd = mnR

    For mnXCur = mnXSt To mnXEnd
     For mnYCur = mnYSt To mnYEnd
      hiding()
      Repeat
       UO.DeleteJournal()
       mnXMy = UO.GetX()
       mnYMy = UO.GetY()
       mnZMy = UO.GetZ()
       mnX = mnXCur + mnXMy
       mnY = mnYCur + mnYMy

       UO.Print("Current position (" + Str(mnX) + ";" + Str(mnY) + ";" + Str(mnZMy) + ")")
       UO.WaitTargetTile("1530", Str(mnX), Str(mnY), Str(mnZMy))
       UO.UseType(mnPickaxe)

       mnCheck = 0
       Repeat
        mnCheck = mnCheck + 1
        Wait(100)
       Until mnCheck >= 120 Or UO.InJournal("You put") Or UO.InJournal("You loose") Or UO.InJournal("Try mining") Or UO.InJournal("no line") Or UO.InJournal("no ore") Or UO.InJournal("no line")
      Until UO.InJournal("no ore") Or UO.InJournal("no line") Or UO.InJournal("Try mining")
     Next
    Next
end sub

sub hiding()
    Var hdntim
    If Not UO.Hidden() Then
     hdnst:
      UO.DeleteJournal()
      hdntim = 0
      UO.UseSkill('Hiding')
      Repeat
       hdntim = hdntim + 1
       Wait(100)
      Until UO.InJournal("You have hidden yourself well") Or hdntim >= 36
      If Not UO.InJournal("You have hidden yourself well") Then
       Goto hdnst
      End If
    End If
end sub


а насчет сложных скриптов, я думаю стоит тебе попробовать написать несколько простых функций, каждая из которых выполняет свое действие.. (один копает, другой ходит по координатам, 3-яя плавит руду, 4-ая реколится и другие..) А потом один, который будет запускать каждую из этих функций и делать соответствующие проверки..


Top
   
 Post subject:
PostPosted: 2004-04-21 15:07:28 
Offline

Joined: 2004-04-16 17:11:35
Posts: 21
По этому поводу кстати вопросик.

предположим надо в главном скрипте запустить дополнительный скриипт и дождатся его выполнения.

Посоветуйте каким образом лучше организовывать задержку в главном скрипте.

Возможен ли в инжекте возврат значения через имя функции пользователя, или надо организовывать глобальную переменную-флаг которую по завершению дополнительного скрипта просто надо записать какое нить определенное значение ???????


Top
   
 Post subject:
PostPosted: 2004-04-21 19:12:49 
Offline
User avatar

Joined: 2004-04-08 16:06:21
Posts: 29
задержку я обычно реализовываю припомощи небольшого цикла:
Code:
Repeat
 Wait(100)
Until условие_которое_мы_ждем

так же я обычно добавляю переменную, которая помогает проверить не случилось ли чего другого, не предусмотренного в скрипте, тоесть чтобы цикл не зацикливался ..
Code:
Var check
check = 0
Repeat
 check = check + 1
 Wait(100)
Until check >= 100 Or условие_которое_мы_ждем

Примером может послужить мой мининг..
Вот фрагмент:
Code:
       mnCheck = 0 
       Repeat
        mnCheck = mnCheck + 1
        Wait(100)
       Until mnCheck >= 120 Or UO.InJournal("You put") Or UO.InJournal("You loose") Or UO.InJournal("Try mining") Or UO.InJournal("no line") Or UO.InJournal("no ore") Or UO.InJournal("no line")


Насчет возврата значения сказать не могу, т.к. не знаю. Скажу одно, что можно вызывать функции с определенными значениями имя_функции(первое_значение, второе, ..., последнее) и потом ими можно аперировать. Также, если ты вызываешь функцию, то у тебя скрипт будет ждать, пока она не выполнится, и не пойдет дальше. Примером этих вызывов может послужить сложные скрипты мининга, ламбера и другие.. Там обычно главный скрипт вызывает функцию ходьбы, причем при вызове он дает ей координаты, куда чар должен дойти. Та, в свою очередь, доходит, завершается и главный скрипт переходит к следующему действию..


Top
   
 Post subject:
PostPosted: 2004-09-15 02:27:04 
Offline

Joined: 2004-07-15 18:21:18
Posts: 2
Code:
       mnCheck = 0 
       Repeat
        mnCheck = mnCheck + 1
        Wait(100)
       Until mnCheck >= 120 Or UO.InJournal("You put") Or UO.InJournal("You loose") Or UO.InJournal("Try mining") Or UO.InJournal("no line") Or UO.InJournal("no ore") Or UO.InJournal("no line")


ужас какой... а не проще так ?
Code:
       mnCheck = 0 
       Repeat
        mnCheck = mnCheck + 1
        Wait(100)
       Until mnCheck >= 120 Or UO.InJournal("You") Or UO.InJournal("Try mining") Or UO.InJournal("no")


всеравно ведь повторяюцца фразы "You" и "no"...

можно еще и так... кому как нравицца...
Code:
mnCheck = 0
while not mnCheck >= 120 and not UO.InJournal("You") and not UO.InJournal("Try mining") and not UO.InJournal("no")
    mnCheck = mnCheck + 1
    Wait(100)
wend


Top
   
 Post subject:
PostPosted: 2004-09-15 10:29:45 
Offline

Joined: 2004-05-18 02:24:25
Posts: 117
ну тогда обеснить что значит вот етоа строчка!
var fistx, fisty, fistz, mx, my, mz, i, j
что значит именнт приставка fist?
x y z - это координаты?
а еще что таконе приставка m?
I, j - это переменные!?
если да, то они сразу есть в инжекте или их надо erfps указывать?


Top
   
 Post subject:
PostPosted: 2004-09-15 10:36:56 
Offline

Joined: 2004-05-18 02:24:25
Posts: 117
for i = mx-1 to mx+1
for j = my -2 to my+2
все понял это типо корраз и указывает переменные i и j так?
но тогда такой вопрос что именно они указывают!
типо чтобы тыркал на таил котороый указан потом тыкал на тоже тока -1 потом -2


Top
   
 Post subject:
PostPosted: 2004-09-15 11:41:33 
Offline
Expert!
User avatar

Joined: 2004-04-04 21:40:09
Posts: 1007
Неплохо бы для начала прочитать документацию. Всю!


Top
   
 Post subject:
PostPosted: 2004-09-15 12:26:01 
Offline

Joined: 2004-05-18 02:24:25
Posts: 117
и это тоже :)


Top
   
 Post subject:
PostPosted: 2004-09-15 12:58:19 
Offline
Expert!
User avatar

Joined: 2004-05-31 09:31:51
Posts: 838
AGRS wrote:
Неплохо бы для начала прочитать документацию. Всю!



Так вот как пишутся скрипты !!!! ......... ура я все понял ))))) :lol:

_________________
Все просто.
BETEPAH ™


Top
   
PostPosted: 2004-09-15 19:59:25 
Offline
User avatar

Joined: 2004-06-24 14:50:25
Posts: 36
Location: Moscow, Russia
AD wrote:
Нау4ете делать скрепты! напремере майненга! ЕСле можно поподробней!


Научись СНАЧАЛА ПО РУССКИ ПИСАТЬ!
(www.translit.ru)

_________________
Я наверное, один из старых ;)


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 7 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