Page 1 of 2
Мининг(помогите дополнить)
Posted: 2011-05-17 09:51:08
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
Re: Мининг(помогите дополнить)
Posted: 2011-05-17 12:13:43
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 инструмента на базе - сам нарисуешь как

Re: Мининг(помогите дополнить)
Posted: 2011-05-17 12:58:27
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)
Re: Мининг(помогите дополнить)
Posted: 2011-05-19 10:07:09
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
Да, мираж спасибо огромное все работает.Я этот скрпит использую в месте с анти-макром и после того как кирка ломается и перс берет новую срабатывает антимакр система ,скрипт его вводит, но после этого чар перестает копать,стоит мне самому сделать дабл по кирке чар начинает копать снова.Нельзя ли добавить чтобы после антимакра перс кирку юзал??
Вот сообщение которое пишет после ввода антимакра "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
Re: Мининг(помогите дополнить)
Posted: 2011-05-20 08:57:44
by son
Миражик:) Помоги плииииз))Вся надежда на тебя))
Re: Мининг(помогите дополнить)
Posted: 2011-05-20 10:14:00
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()
Re: Мининг(помогите дополнить)
Posted: 2011-05-20 10:42:31
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)
вот это
вместо 100 нужно указать кол-во секунд, за которое чар выкапывает руду, прибавить одну секунду, и умножить на 10 =)
100 - 10 сек
70 - 7 сек
Re: Мининг(помогите дополнить)
Posted: 2011-05-27 10:20:03
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 МНОГО РАЗ
Re: Мининг(помогите дополнить)
Posted: 2011-05-27 13:54:05
by Mirage
интересная система у вас. Правильно ли я понял что антимакрос возникает только при использовании предмета из пака? Или он срабатывает всегда при использовании кирки или лопаты?
Если первый вариант то в скрипте антимакроса поменяй
Code: Select all
OneClick()
UO.UseType( Kirka )
end if
на
Code: Select all
OneClick()
uo.useobject(uo.ObjAtLayer('Phand'))
end if
Re: Мининг(помогите дополнить)
Posted: 2011-05-29 16:46:33
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 минут.
Re: Мининг(помогите дополнить)
Posted: 2011-05-29 17:01:28
by Mirage
значит вариант должен сработать.
Шарды пошли. Чем чуднее тем моднее. Уж незнают как бороться с макросниками.

Re: Мининг(помогите дополнить)
Posted: 2011-05-29 17:08:49
by Incorrect User
Шарды пошли. Чем чуднее тем моднее.
Это на ФВ.
Re: Мининг(помогите дополнить)
Posted: 2011-05-31 15:46:30
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 выдает(((
Re: Мининг(помогите дополнить)
Posted: 2011-05-31 16:16:00
by Mirage
в твоем последнем варианте 128 строк. Если кроме выложенного скрипта ничего нет значит гдето пропустил закрывашку цикла. Если чтото есть еще то выкладывай полный скрипт.
Это Forgotten ?
Можно там протестировать систему сегодня вечером.
Re: Мининг(помогите дополнить)
Posted: 2011-06-01 09:44:44
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
Re: Мининг(помогите дополнить)
Posted: 2011-06-01 10:17:22
by Incorrect User
Кстати, в реколе, можеш жать рекол а потом уже пить инвиз. Не физлит, и рекол быстрее чуток выходит.
Code: Select all
var rune='0x4010409A'
uo.waittargetobject(Rune)
uo.Usetype('0x1F4C','0x0000') ;Recall
uo.Usetype('0x0F08','0x07F2') ; Invisibility
end sub
Re: Мининг(помогите дополнить)
Posted: 2011-06-01 10:43:37
by Incorrect User
И чар идет всего на 2 тайла в другую сторону, а нужно на 5, или я что-то непонял?
Re: Мининг(помогите дополнить)
Posted: 2011-06-01 11:09:05
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
Re: Мининг(помогите дополнить)
Posted: 2011-06-01 11:48:56
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
Твой вариант только пьет инвизку рекола после этого не следует..
Re: Мининг(помогите дополнить)
Posted: 2011-06-01 12:09:11
by Incorrect User
только пьет инвизку
Щас проверю.