Мининг(помогите дополнить)

Anything and all.

Moderators: Murderator+, Murderator

son
Posts: 43
Joined: 2006-12-16 14:44:01

Мининг(помогите дополнить)

Post by son »

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

Code: Select all

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
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Мининг(помогите дополнить)

Post by Mirage »

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

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

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

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 инструмента на базе - сам нарисуешь как ;)
son
Posts: 43
Joined: 2006-12-16 14:44:01

Re: Мининг(помогите дополнить)

Post by son »

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

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

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

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: Select all

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)
son
Posts: 43
Joined: 2006-12-16 14:44:01

Re: Мининг(помогите дополнить)

Post by son »

son wrote:Здравствуйте,вот нашел на данном форуме хороший скрипт,есть одна проблема-чар после поломки кирки не берет новую, можно ли дополнить скрипт ,чтобы брал новую кирку после того как сломает старую и продолжал копать?
Вот скрипт:

Code: Select all

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: Select all

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
son
Posts: 43
Joined: 2006-12-16 14:44:01

Re: Мининг(помогите дополнить)

Post by son »

Миражик:) Помоги плииииз))Вся надежда на тебя))
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Мининг(помогите дополнить)

Post by Mirage »

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

Code: Select all

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()
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Мининг(помогите дополнить)

Post by ZeroDX »

Или же добавить в конец строки

Code: Select all

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: Select all

or t + 100 < UO.Timer()


вместо 100 нужно указать кол-во секунд, за которое чар выкапывает руду, прибавить одну секунду, и умножить на 10 =)
100 - 10 сек
70 - 7 сек
son
Posts: 43
Joined: 2006-12-16 14:44:01

Re: Мининг(помогите дополнить)

Post by son »

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

Code: Select all

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 МНОГО РАЗ
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Мининг(помогите дополнить)

Post by Mirage »

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

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

Code: Select all

OneClick()
UO.UseType( Kirka )
end if


на

Code: Select all

OneClick()
uo.useobject(uo.ObjAtLayer('Phand'))
end if
son
Posts: 43
Joined: 2006-12-16 14:44:01

Re: Мининг(помогите дополнить)

Post by son »

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

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

Code: Select all

OneClick()
UO.UseType( Kirka )
end if


на

Code: Select all

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


Антимакрос возникает при юзаньи топора или кирки в паке ,плюс возникает каждые 15 минут.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Мининг(помогите дополнить)

Post by Mirage »

значит вариант должен сработать.
Шарды пошли. Чем чуднее тем моднее. Уж незнают как бороться с макросниками. :|
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Мининг(помогите дополнить)

Post by Incorrect User »

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

Это на ФВ.
son
Posts: 43
Joined: 2006-12-16 14:44:01

Re: Мининг(помогите дополнить)

Post by son »

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

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

Code: Select all

OneClick()
UO.UseType( Kirka )
end if


на

Code: Select all

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


Неа ((( Ошибку линии 156 выдает(((
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Мининг(помогите дополнить)

Post by Mirage »

в твоем последнем варианте 128 строк. Если кроме выложенного скрипта ничего нет значит гдето пропустил закрывашку цикла. Если чтото есть еще то выкладывай полный скрипт.
Это Forgotten ?
Можно там протестировать систему сегодня вечером.
son
Posts: 43
Joined: 2006-12-16 14:44:01

Re: Мининг(помогите дополнить)

Post by son »

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


Да это ФВ.

Вот скрипт:

Code: Select all

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
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Мининг(помогите дополнить)

Post by Incorrect User »

Кстати, в реколе, можеш жать рекол а потом уже пить инвиз. Не физлит, и рекол быстрее чуток выходит.

Code: Select all

var rune='0x4010409A'
  uo.waittargetobject(Rune)
  uo.Usetype('0x1F4C','0x0000') ;Recall
  uo.Usetype('0x0F08','0x07F2') ; Invisibility
end sub
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Мининг(помогите дополнить)

Post by Incorrect User »

И чар идет всего на 2 тайла в другую сторону, а нужно на 5, или я что-то непонял?
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Мининг(помогите дополнить)

Post by Mirage »

2 son

Code: Select all

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
son
Posts: 43
Joined: 2006-12-16 14:44:01

Re: Мининг(помогите дополнить)

Post by son »

Incorrect User wrote:Кстати, в реколе, можеш жать рекол а потом уже пить инвиз. Не физлит, и рекол быстрее чуток выходит.

Code: Select all

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


Твой вариант только пьет инвизку рекола после этого не следует..
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Мининг(помогите дополнить)

Post by Incorrect User »

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

Щас проверю.
Post Reply