Yoko
http://forum.yoko.com.ua/

Мининг(помогите дополнить)
http://forum.yoko.com.ua/viewtopic.php?f=20&t=16624
Page 1 of 2

Author:  son [ 2011-05-17 09:51:08 ]
Post subject:  Мининг(помогите дополнить)

Здравствуйте,вот нашел на данном форуме хороший скрипт,есть одна проблема-чар после поломки кирки не берет новую, можно ли дополнить скрипт ,чтобы брал новую кирку после того как сломает старую и продолжал копать?
Вот скрипт:
Code:
sub minamine()
#константы
VAR Kirka = '0x0E85' ; Тип кирки 
VAR MaxVes =550 ; Больше не утащим
VAR TileNum = '1339' ; Тайл пещеры
#Переменные
VAR x, y, t, k, oldx, oldy, wh, togg
#Сообщения
VAR ms1 = "There is no ore here to mine"
VAR ms2 = "You can't use"
VAR ms3 = "You put the"
VAR ms4 = "You loosen"
VAR ms5 = "You have no"
VAR ms6 = "Try mining in rock"
VAR ms7 = "Хм.."
VAR ms8 = "broke the "
#Поехали!
while 1
wait(300)
oldx = uo.getx(480,98) #Запомним где мы: вдруг в тупике?
oldy = uo.gety(83,377)
wait (3000)
UO.Set('quiet','1') #Заканали сообщения...
for y=-2 to 2
for x=-2 to 2
while not UO.Hidden()
UO.Warmode("0")
uo.print("Прячемся...")
UO.UseSkill("Hiding")
wait(4000)
wend
k = 0
repeat
UO.DeleteJournal()
t = UO.Timer()
k = k + 1
UO.CancelTarget()
wait(300)
UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0)
UO.UseType( Kirka )
#########################
repeat
wait(300)
until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR UO.InJournal(ms8)
#########################
If UO.Weight > MaxVes Then
; Фууу....
UO.Print(" Overweight!" )
return
Endif
until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 7) )
next
next
UO.Set('quiet','0') #Пошли?
uo.print( 'Ходилка задействована.') #Удобно для отладки...
wait(3000)
oldx = uo.getx(480,98) #Еще раз на всякий.
oldy = uo.gety(83,377)
if wh == '1' then #Вправо
uo.press (33)
uo.press (33)
uo.press (33)
else #Влево
uo.press (35)
uo.press (35)
uo.press (35)
endif
wait(300)
if (uo.getx() == oldx) and (uo.gety() == oldy) then
uo.print('Тупик!')
if wh == '1' then #Переключить wh и сдвинуца вверх
uo.press(36)
uo.press(36)
uo.press(36)
wh = '0'
else
wh = '1'
uo.press(36)
uo.press(36)
uo.press(36)
end if
else
uo.print('Проходим.')
endif
wait(300) # иии.... заново!
wend
endsub


Вот так должно работать © Mirage

Author:  Mirage [ 2011-05-17 12:13:43 ]
Post subject:  Re: Мининг(помогите дополнить)

варианты решения уже были не раз.

дописываешь
VAR ms8 = "сообщение которое при поломке кирки"

затем добавляешь

Quote:
repeat
wait(300)
until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR UO.InJournal(ms8)


При наличии кирки в паке скрипт подцепит сменную. А уж брать нужно по 2-3 инструмента на базе - сам нарисуешь как ;)

Author:  son [ 2011-05-17 12:58:27 ]
Post subject:  Re: Мининг(помогите дополнить)

Mirage wrote:
варианты решения уже были не раз.

дописываешь
VAR ms8 = "сообщение которое при поломке кирки"

затем добавляешь

Quote:
repeat
wait(300)
until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR UO.InJournal(ms8)


При наличии кирки в паке скрипт подцепит сменную. А уж брать нужно по 2-3 инструмента на базе - сам нарисуешь как ;)


Ну первое я как ты сказал добавил-
Code:
VAR ms1 = "There is no ore here to mine"
VAR ms2 = "You can't use"
VAR ms3 = "You put the"
VAR ms4 = "You loosen"
VAR ms5 = "You have no"
VAR ms6 = "Try mining in rock"
VAR ms7 = "Õì.."
VAR ms8 = "You broke the pickaxe"


А это куда вставлять??-repeat
wait(300)
until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) [b]OR UO.InJournal(ms8)

Author:  son [ 2011-05-19 10:07:09 ]
Post subject:  Re: Мининг(помогите дополнить)

son wrote:
Здравствуйте,вот нашел на данном форуме хороший скрипт,есть одна проблема-чар после поломки кирки не берет новую, можно ли дополнить скрипт ,чтобы брал новую кирку после того как сломает старую и продолжал копать?
Вот скрипт:
Code:
sub minamine()
#константы
VAR Kirka = '0x0E85' ; Тип кирки 
VAR MaxVes =550 ; Больше не утащим
VAR TileNum = '1339' ; Тайл пещеры
#Переменные
VAR x, y, t, k, oldx, oldy, wh, togg
#Сообщения
VAR ms1 = "There is no ore here to mine"
VAR ms2 = "You can't use"
VAR ms3 = "You put the"
VAR ms4 = "You loosen"
VAR ms5 = "You have no"
VAR ms6 = "Try mining in rock"
VAR ms7 = "Хм.."
VAR ms8 = "broke the "
#Поехали!
while 1
wait(300)
oldx = uo.getx(480,98) #Запомним где мы: вдруг в тупике?
oldy = uo.gety(83,377)
wait (3000)
UO.Set('quiet','1') #Заканали сообщения...
for y=-2 to 2
for x=-2 to 2
while not UO.Hidden()
UO.Warmode("0")
uo.print("Прячемся...")
UO.UseSkill("Hiding")
wait(4000)
wend
k = 0
repeat
UO.DeleteJournal()
t = UO.Timer()
k = k + 1
UO.CancelTarget()
wait(300)
UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0)
UO.UseType( Kirka )
#########################
repeat
wait(300)
until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR UO.InJournal(ms8)
#########################
If UO.Weight > MaxVes Then
; Фууу....
UO.Print(" Overweight!" )
return
Endif
until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 7) )
next
next
UO.Set('quiet','0') #Пошли?
uo.print( 'Ходилка задействована.') #Удобно для отладки...
wait(3000)
oldx = uo.getx(480,98) #Еще раз на всякий.
oldy = uo.gety(83,377)
if wh == '1' then #Вправо
uo.press (33)
uo.press (33)
uo.press (33)
else #Влево
uo.press (35)
uo.press (35)
uo.press (35)
endif
wait(300)
if (uo.getx() == oldx) and (uo.gety() == oldy) then
uo.print('Тупик!')
if wh == '1' then #Переключить wh и сдвинуца вверх
uo.press(36)
uo.press(36)
uo.press(36)
wh = '0'
else
wh = '1'
uo.press(36)
uo.press(36)
uo.press(36)
end if
else
uo.print('Проходим.')
endif
wait(300) # иии.... заново!
wend
endsub


Вот так должно работать © Mirage



Да, мираж спасибо огромное все работает.Я этот скрпит использую в месте с анти-макром и после того как кирка ломается и перс берет новую срабатывает антимакр система ,скрипт его вводит, но после этого чар перестает копать,стоит мне самому сделать дабл по кирке чар начинает копать снова.Нельзя ли добавить чтобы после антимакра перс кирку юзал?? :oops:

Вот сообщение которое пишет после ввода антимакра "You have entered a true code antimacros systems.Success in work!"

Вот тобой переделанный скрипт уже с анти-макром:

Code:
sub minamine()
#?????????
VAR Kirka = '0x0E85' ; ??? ????? 
VAR MaxVes =550 ; ?????? ?? ??????
VAR TileNum = '1339' ; ???? ??????
#??????????
VAR x, y, t, k, oldx, oldy, wh, togg
#?????????
VAR ms1 = "There is no ore here to mine"
VAR ms2 = "You can't use"
VAR ms3 = "You put the"
VAR ms4 = "You loosen"
VAR ms5 = "You have no"
VAR ms6 = "Try mining in rock"
VAR ms7 = "??.."
VAR ms8 = "broke the "
#???????!
while 1
wait(300)
oldx = uo.getx(480,98) #???????? ??? ??: ????? ? ???????
oldy = uo.gety(83,377)
wait (3000)
UO.Set('quiet','1') #???????? ?????????...
for y=-2 to 2
for x=-2 to 2
while not UO.Hidden()
UO.Warmode("0")
uo.print("????????...")
UO.UseSkill("Hiding")
wait(4000)
wend
k = 0
repeat
UO.DeleteJournal()
t = UO.Timer()
k = k + 1
UO.CancelTarget()
wait(300)
UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0)
UO.UseType( Kirka )
#########################
repeat
wait(300)
until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR UO.InJournal(ms8)
#########################
If UO.Weight > MaxVes Then
; ????....
UO.Print(" Overweight!" )
return
Endif
until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 7) )
next
next
UO.Set('quiet','0') #??????
uo.print( '??????? ?????????????.') #?????? ??? ???????...
wait(3000)
oldx = uo.getx(480,98) #??? ??? ?? ??????.
oldy = uo.gety(83,377)
if wh == '1' then #??????
uo.press (33)
uo.press (33)
uo.press (33)
else #?????
uo.press (35)
uo.press (35)
uo.press (35)
endif
wait(300)
if (uo.getx() == oldx) and (uo.gety() == oldy) then
uo.print('?????!')
if wh == '1' then #??????????? wh ? ???????? ?????
uo.press(36)
uo.press(36)
uo.press(36)
wh = '0'
else
wh = '1'
uo.press(36)
uo.press(36)
uo.press(36)
end if
else
uo.print('????????.')
endif
wait(300) # ???.... ??????!
wend
endsub


sub OneClick()

dim reindex[8]
reindex[0] = 11
reindex[1] = 12
reindex[2] = 13
reindex[3] = 10
reindex[4] = 16
reindex[5] = 14
reindex[6] = 17
reindex[7] = 15
var GumpID = 0
var ButtonID = 0
var ButtonText
var i = 18

if uo.LastGump('text', 4) <> "0" then
i = 19
end if
GumpID = val(Mid(uo.LastGump('command', i), 16, 4))
ButtonID = reindex[GumpID-2225]
ButtonText = uo.LastGump('command', ButtonID)
uo.LClick(Val(Mid(ButtonText, 7, 3)), Val(Mid(ButtonText, 11, 3)))
wait(300)

end sub

sub AntiMacro()

while not uo.Dead()
if not uo.LastGump('replyed') then
if uo.LastGump('text', 0) == 'Antimacros System' then
OneClick()
end if
endif
wait(500)
wend

end sub

sub ExtrimalRecall()
var rune='0x400C3EC4'
  uo.Usetype('0x0F08','0x07F2') ; Invisibility
  wait(100)
  uo.waittargetobject(Rune)
  uo.Usetype('0x1F4C','0x0000') ;Recall
end sub

Author:  son [ 2011-05-20 08:57:44 ]
Post subject:  Re: Мининг(помогите дополнить)

Миражик:) Помоги плииииз))Вся надежда на тебя))

Author:  Mirage [ 2011-05-20 10:14:00 ]
Post subject:  Re: Мининг(помогите дополнить)

попробуй вот так

Code:
sub AntiMacro()

while not uo.Dead()
if not uo.LastGump('replyed') then
if uo.LastGump('text', 0) == 'Antimacros System' then
OneClick()
UO.UseType( Kirka )
end if
endif
wait(500)
wend

end sub


VAR Kirka = '0x0E85' ; перенести выше sub minamine()

Author:  ZeroDX [ 2011-05-20 10:42:31 ]
Post subject:  Re: Мининг(помогите дополнить)

Или же добавить в конец строки
Code:
until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR UO.InJournal(ms8)


вот это

Code:
or t + 100 < UO.Timer()


вместо 100 нужно указать кол-во секунд, за которое чар выкапывает руду, прибавить одну секунду, и умножить на 10 =)
100 - 10 сек
70 - 7 сек

Author:  son [ 2011-05-27 10:20:03 ]
Post subject:  Re: Мининг(помогите дополнить)

Mirage wrote:
попробуй вот так

Code:
sub AntiMacro()

while not uo.Dead()
if not uo.LastGump('replyed') then
if uo.LastGump('text', 0) == 'Antimacros System' then
OneClick()
UO.UseType( Kirka )
end if
endif
wait(500)
wend

end sub


VAR Kirka = '0x0E85' ; перенести выше sub minamine()



Анти макр код не вводит((( То есть он его пытается вводить,но выдает очень быстро и очень много анти-макрос окон и пишет Targeting canceled МНОГО РАЗ

Author:  Mirage [ 2011-05-27 13:54:05 ]
Post subject:  Re: Мининг(помогите дополнить)

интересная система у вас. Правильно ли я понял что антимакрос возникает только при использовании предмета из пака? Или он срабатывает всегда при использовании кирки или лопаты?

Если первый вариант то в скрипте антимакроса поменяй

Code:
OneClick()
UO.UseType( Kirka )
end if


на

Code:
OneClick()
uo.useobject(uo.ObjAtLayer('Phand'))
end if

Author:  son [ 2011-05-29 16:46:33 ]
Post subject:  Re: Мининг(помогите дополнить)

Mirage wrote:
интересная система у вас. Правильно ли я понял что антимакрос возникает только при использовании предмета из пака? Или он срабатывает всегда при использовании кирки или лопаты?

Если первый вариант то в скрипте антимакроса поменяй

Code:
OneClick()
UO.UseType( Kirka )
end if


на

Code:
OneClick()
uo.useobject(uo.ObjAtLayer('Phand'))
end if


Антимакрос возникает при юзаньи топора или кирки в паке ,плюс возникает каждые 15 минут.

Author:  Mirage [ 2011-05-29 17:01:28 ]
Post subject:  Re: Мининг(помогите дополнить)

значит вариант должен сработать.
Шарды пошли. Чем чуднее тем моднее. Уж незнают как бороться с макросниками. :|

Author:  Incorrect User [ 2011-05-29 17:08:49 ]
Post subject:  Re: Мининг(помогите дополнить)

Quote:
Шарды пошли. Чем чуднее тем моднее.

Это на ФВ.

Author:  son [ 2011-05-31 15:46:30 ]
Post subject:  Re: Мининг(помогите дополнить)

Mirage wrote:
интересная система у вас. Правильно ли я понял что антимакрос возникает только при использовании предмета из пака? Или он срабатывает всегда при использовании кирки или лопаты?

Если первый вариант то в скрипте антимакроса поменяй

Code:
OneClick()
UO.UseType( Kirka )
end if


на

Code:
OneClick()
uo.useobject(uo.ObjAtLayer('Phand'))
end if


Неа ((( Ошибку линии 156 выдает(((

Author:  Mirage [ 2011-05-31 16:16:00 ]
Post subject:  Re: Мининг(помогите дополнить)

в твоем последнем варианте 128 строк. Если кроме выложенного скрипта ничего нет значит гдето пропустил закрывашку цикла. Если чтото есть еще то выкладывай полный скрипт.
Это Forgotten ?
Можно там протестировать систему сегодня вечером.

Author:  son [ 2011-06-01 09:44:44 ]
Post subject:  Re: Мининг(помогите дополнить)

Mirage wrote:
в твоем последнем варианте 128 строк. Если кроме выложенного скрипта ничего нет значит гдето пропустил закрывашку цикла. Если чтото есть еще то выкладывай полный скрипт.
Это Forgotten ?
Можно там протестировать систему сегодня вечером.


Да это ФВ.

Вот скрипт:
Code:
VAR Kirka = '0x0E85' ; ??? ?????  
sub minamine()
#?????????
VAR MaxVes =550 ; ?????? ?? ??????
VAR TileNum = '1339' ; ???? ??????
#??????????
VAR x, y, t, k, oldx, oldy, wh, togg
#?????????
VAR ms1 = "There is no ore here to mine"
VAR ms2 = "You can't use"
VAR ms3 = "You put the"
VAR ms4 = "You loosen"
VAR ms5 = "You have no"
VAR ms6 = "Try mining in rock"
VAR ms7 = "??.."
VAR ms8 = "broke the "
#???????!
while 1
wait(300)
oldx = uo.getx(480,98) #???????? ??? ??: ????? ? ???????
oldy = uo.gety(83,377)
wait (3000)
UO.Set('quiet','1') #???????? ?????????...
for y=-2 to 2
for x=-2 to 2
while not UO.Hidden()
UO.Warmode("0")
uo.print("????????...")
UO.UseSkill("Hiding")
wait(4000)
wend
k = 0
repeat
UO.DeleteJournal()
t = UO.Timer()
k = k + 1
UO.CancelTarget()
wait(300)
UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0)
UO.UseType( Kirka )
#########################
repeat
wait(300)
until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR UO.InJournal(ms8)
#########################
If UO.Weight > MaxVes Then
; ????....
UO.Print(" Overweight!" )
return
Endif
until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 7) )
next
next
UO.Set('quiet','0') #??????
uo.print( '??????? ?????????????.') #?????? ??? ???????...
wait(3000)
oldx = uo.getx(480,98) #??? ??? ?? ??????.
oldy = uo.gety(83,377)
if wh == '1' then #??????
uo.press (33)
uo.press (33)
uo.press (33)
else #?????
uo.press (35)
uo.press (35)
uo.press (35)
endif
wait(300)
if (uo.getx() == oldx) and (uo.gety() == oldy) then
uo.print('?????!')
if wh == '1' then #??????????? wh ? ???????? ?????
uo.press(36)
uo.press(36)
uo.press(36)
wh = '0'
else
wh = '1'
uo.press(36)
uo.press(36)
uo.press(36)
end if
else
uo.print('????????.')
endif
wait(300) # ???.... ??????!
wend
endsub


sub OneClick()

dim reindex[8]
reindex[0] = 11
reindex[1] = 12
reindex[2] = 13
reindex[3] = 10
reindex[4] = 16
reindex[5] = 14
reindex[6] = 17
reindex[7] = 15
var GumpID = 0
var ButtonID = 0
var ButtonText
var i = 18

if uo.LastGump('text', 4) <> "0" then
i = 19
end if
GumpID = val(Mid(uo.LastGump('command', i), 16, 4))
ButtonID = reindex[GumpID-2225]
ButtonText = uo.LastGump('command', ButtonID)
uo.LClick(Val(Mid(ButtonText, 7, 3)), Val(Mid(ButtonText, 11, 3)))
wait(300)

end sub

sub AntiMacro()

while not uo.Dead()
if not uo.LastGump('replyed') then
if uo.LastGump('text', 0) == 'Antimacros System' then
OneClick()
uo.useobject(uo.ObjAtLayer('Phand'))
end if

end sub


sub ExtrimalRecall()
var rune='0x4010409A'
  uo.Usetype('0x0F08','0x07F2') ; Invisibility
  wait(100)
  uo.waittargetobject(Rune)
  uo.Usetype('0x1F4C','0x0000') ;Recall
end sub


sub Gong(times) ; play wav-file
   VAR i
   for i=1 to times
      UO.Exec("playwav d:\Alert")
      wait(1200) ; time to play sample at once
   next
end sub


sub Alarm()
   VAR CharHP=150
   while 1==1
      wait(1000)
      if UO.Life<136 then
         gong(1)
      endif     
   wend
end sub

Author:  Incorrect User [ 2011-06-01 10:17:22 ]
Post subject:  Re: Мининг(помогите дополнить)

Кстати, в реколе, можеш жать рекол а потом уже пить инвиз. Не физлит, и рекол быстрее чуток выходит.
Code:
var rune='0x4010409A'
  uo.waittargetobject(Rune)
  uo.Usetype('0x1F4C','0x0000') ;Recall
  uo.Usetype('0x0F08','0x07F2') ; Invisibility
end sub

Author:  Incorrect User [ 2011-06-01 10:43:37 ]
Post subject:  Re: Мининг(помогите дополнить)

И чар идет всего на 2 тайла в другую сторону, а нужно на 5, или я что-то непонял?

Author:  Mirage [ 2011-06-01 11:09:05 ]
Post subject:  Re: Мининг(помогите дополнить)

2 son
Code:
sub AntiMacro()
   while not uo.Dead()
      if not uo.LastGump('replyed') then
         if uo.LastGump('text', 0) == 'Antimacros System' then
            OneClick()
            uo.useobject(uo.ObjAtLayer('Phand'))
         end if
      end if
   wend
end sub


у тебя не хватало endif и wend

Author:  son [ 2011-06-01 11:48:56 ]
Post subject:  Re: Мининг(помогите дополнить)

Incorrect User wrote:
Кстати, в реколе, можеш жать рекол а потом уже пить инвиз. Не физлит, и рекол быстрее чуток выходит.
Code:
var rune='0x4010409A'
  uo.waittargetobject(Rune)
  uo.Usetype('0x1F4C','0x0000') ;Recall
  uo.Usetype('0x0F08','0x07F2') ; Invisibility
end sub


Твой вариант только пьет инвизку рекола после этого не следует..

Author:  Incorrect User [ 2011-06-01 12:09:11 ]
Post subject:  Re: Мининг(помогите дополнить)

Quote:
только пьет инвизку

Щас проверю.

Page 1 of 2 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/