Yoko

All sides of Injection
It is currently 2017-09-21 21:15:41

All times are UTC+02:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
PostPosted: 2010-11-13 05:38:51 
Offline

Joined: 2010-11-13 05:26:11
Posts: 4
Смысл таков: всё работает в оригинале кроме команды GO для снятия паузы, но мне надо вообще убрать функцию паузы при выкапывании элементаля, то есть что бы он просто дал звуковой сигнал и продолжил копать.

Было так:
Code:
sub maning() 
#BETEP™#
var mx, my, mz, i, j, jor, ser, noto
Uo.exec("set norbcheck 1"); для рекола
uo.exec("set norbcalc 1"); тоже

uo.print('!!Выбери Лопату!! ')
uo.exec('addobject Shovel')
while uo.targeting()
wait(100)
wend
 
uo.print('!!Выбери Рунбук!! ')
uo.exec('addobject Runebook')
while uo.targeting()
wait(100)
wend

na4alo:
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-4 to mx+4
for j = my -4 to my+4
while not UO.Hidden()
UO.Warmode("0")
uo.print("Прячемся...")
UO.UseSkill("Hiding")
wait(4000)
wend
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
if uo.weight > 625 then  ; Максимальный вес при котором домой с рудой
goto end
endif
wend
UO.DeleteJournal()
next
next
goto na4alo
end:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 21") ; домой ( в рунбуке слот 1 )
wait(10000)
loot()
wait(3000)
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 94") ; в шахту ( в рунбуке слот 8 )
mx = UO.GetX("self")
my = UO.GetY("self")
wait(10000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
goto na4alo
end sub

sub loot()    ; перекладка руды в сундук
if uo.waiting() then
uo.canceltarget()
endif
VAR a,Exit
VAR UnloadCont='0x40041342' ; АЙДИ сундука для руды 
DIM Ore[5]
Ore[0]=0x19B9 ; 4 and more ore
Ore[1]=0x19B7 ; 1 ore
Ore[2]=0x19BA ; 2 ore
Ore[3]=0x19B8 ; 3 ore
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a=0 to 3
Exit=0
repeat
UO.FindType(Ore[a])
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
Else
Exit=1
endif
until Exit==1
Next
UO.UnSetReceivingContainer()
end sub

sub Save() ; Реколл от ПК при их появлении (в паке рунка в безопасное место и реги)
var mx, my
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
mx = UO.GetX("self")
my = UO.GetY("self")
UO.DeleteJournal()
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Recall','finditem')
wait(4000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
end sub

sub pwav() ; звук при выкапывании ЭЛЕМЕНТАЛА
uo.playwav("E:\UO\inject\SOUND\chanting sound 01.wav")
endsub

sub pwavw(); звук при появлении ПК
uo.playwav("E:\UO\inject\SOUND\chanting sound 01.wav")
endsub

sub Pause() ; Пауза скрипта если выкопали Элема (продолжить сказав GO )
UO.DeleteJournal()
REPEAT
WAIT(3000)
UO.Print("!!!СКРИПТ НА ПАУЗЕ!!!!")
UNTIL UO.InJournal('GO')
UO.Print("!!!СКРИПТ ПРОДОЛЖЕН!!!!")
endif
end sub


Стало так:
Code:
sub maning() 
#BETEP™#
var mx, my, mz, i, j, jor, ser, noto
Uo.exec("set norbcheck 1"); для рекола
uo.exec("set norbcalc 1"); тоже

uo.print('!!Выбери Лопату!! ')
uo.exec('addobject Shovel')
while uo.targeting()
wait(100)
wend
 
uo.print('!!Выбери Рунбук!! ')
uo.exec('addobject Runebook')
while uo.targeting()
wait(100)
wend

na4alo:
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-4 to mx+4
for j = my -4 to my+4
while not UO.Hidden()
UO.Warmode("0")
uo.print("Прячемся...")
UO.UseSkill("Hiding")
wait(4000)
wend
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("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()                   
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(40000) ; время в секундах при ожидании пока уйдет ПК
loot()
wait(3000)
goto reccal
endif
next   
wend
if uo.weight > 600 then  ; Максимальный вес при котором домой с рудой
goto end
endif
wend
UO.DeleteJournal()
next
next
goto na4alo
end:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 21") ; домой ( в рунбуке слот 1 )
wait(10000)
loot()
wait(3000)
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 94") ; в шахту ( в рунбуке слот 8 )
mx = UO.GetX("self")
my = UO.GetY("self")
wait(10000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
goto na4alo
end sub

sub loot()    ; перекладка руды в сундук
if uo.waiting() then
uo.canceltarget()
endif
VAR a,Exit
VAR UnloadCont='0x401fe364' ; АЙДИ сундука для руды 
DIM Ore[5]
Ore[0]=0x19B9 ; 4 and more ore
Ore[1]=0x19B7 ; 1 ore
Ore[2]=0x19BA ; 2 ore
Ore[3]=0x19B8 ; 3 ore
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a=0 to 3
Exit=0
repeat
UO.FindType(Ore[a])
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
Else
Exit=1
endif
until Exit==1
Next
UO.UnSetReceivingContainer()
end sub

sub Save() ; Реколл от ПК при их появлении (в паке рунка в безопасное место и реги)
var mx, my
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
mx = UO.GetX("self")
my = UO.GetY("self")
UO.DeleteJournal()
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Recall','finditem')
wait(4000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
end sub

sub pwav() ; звук при выкапывании ЭЛЕМЕНТАЛА
uo.playwav("D:\Uo\Music\exit_level.wav")
endsub

sub pwavw() ; звук при появлении ПК
uo.playwav("D:\Uo\Music\exit_level.wav")
endsub 


То есть, убрал это:
Code:
sub Pause() ; Пауза скрипта если выкопали Элема (продолжить сказав GO ) 
UO.DeleteJournal()
REPEAT
WAIT(3000)
UO.Print("!!!СКРИПТ НА ПАУЗЕ!!!!")
UNTIL UO.InJournal('GO')
UO.Print("!!!СКРИПТ ПРОДОЛЖЕН!!!!")
endif
end sub
[/code]

и строчку Pause() ; 44 строка

получилась муть, после выкапывания теперь элема перс пытается среколится и естественно, от элема умирает.
Знатоки помогите пожалуйста, что я не так делаю?


Top
   
PostPosted: 2010-11-13 08:33:53 
Offline
User avatar

Joined: 2010-10-01 16:47:41
Posts: 75
Моя модификация.

Code:

sub maning()
   #BETEP™#
   var mx, my, mz, i, j, jor, ser, noto, mmx, mmy, maxWeight
   #Uo.exec("set norbcheck 1"); для рекола
   #uo.exec("set norbcalc 1"); тоже
   maxWeight=Uo.str*4

   uo.print('Gde lopata??')
   uo.exec('addobject Shovel')
   while uo.targeting()
      wait(100)
   wend
   
   [b]uo.print('Gde runa domoi?')
   uo.exec('addobject Rune')
   while uo.targeting()
      wait(100)
   wend[/b]   

[b]   uo.print('Gde runa v pesheru?')
   uo.exec('addobject RuneP')
   while uo.targeting()
      wait(100)
   wend[/b]
   
   na4alo:
   mx = UO.GetX("self")
   my = UO.GetY("self")
   mz = UO.GetZ("self")
[b]        # ПЕРЕБЕГАНИЕ       (ставим чара на середину пещеры,
            repeat
            mmx=(mx+uo.Random(20)-10)    # выбираем случайные координаты в пределах +-10
            mmy=(my+uo.Random(20)-10)
            until uo.privategettile(mmx,mmy,-1,1341,1341)   # проверяем, пещера ли это
            uo.print("Da!")
            GoToXY(mmx,mmy,1)                   # и идем на новые координаты
            wait(500)
        ##################[/b]
   mx = UO.GetX("self")
   my = UO.GetY("self")
   mz = UO.GetZ("self")
   
   UO.DeleteJournal()
   for i = mx-4 to mx+4
      for j = my -4 to my+4
         while not UO.Hidden()
            UO.Warmode("0")
            uo.print("Hiding...")
            UO.UseSkill("Hiding")
            wait(4000)
         wend
         UO.Print("Kopaem B KoopdihaTax: "+str(mx-i)+" "+str(my-j))
         while not UO.InJournal("no ore here|не осталось")and not UO.InJournal("Copper") and not UO.InJournal("Rusty Ore") and not UO.InJournal("location") and not UO.InJournal("far away|далеко|не дотянуться|нашли|нaшли") and not UO.InJournal("in rock") and not UO.InJournal("iron ores")
            UO.DeleteJournal()
            if uo.waiting() then
               uo.canceltarget()
            endif
[b]            wait(uo.random(4000)+1000)  # случайная пауза, чтобы не палили GM'ы по логам (от 1 до 5 секунд)[/b]
            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|не осталось|нашли|нaшли") and not UO.InJournal("but fail|инструмент") and not UO.InJournal("far away|далеко|не дотянуться") and not UO.InJournal("in rock|валунов")
               wait (500)
[b]               if uo.injournal("инструмент") or uo.dead() then    #
                  an()                                                          #  Этим if'ом запускаем 
                  #Pause()                                                   #  антимакрос
               endif                                                            #[/b]
[b]               #for jor = 0 to 9
               #   ser = uo.journalserial(jor)
               #   noto = uo.getnotoriety(ser)
               #   if noto == 1 and noto == 2 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[/b]
            wend
            if uo.weight > maxWeight then ; Максимальный вес при котором домой с рудой
[b]               GoTOXY(1820,849,1)         # бежит к форже
               BlackSmithy()                  # плавим руду и качаем БС
               GoTOXY(1802,853,1)        #бежим в центр пещеры
               GoTo na4alo                   # эту и три предыдущие срочки закомментить, если нужно, чтобы чар прыгал по руне  домой, а не бегал к плавилке
               #GoTo end        ;здесь раскомментить, если нужно, чтобы при максимальном весе реколился домой [/b]
            endif
         wend
         UO.DeleteJournal()
      next
   next
   goto na4alo
   end:
   if uo.waiting() then
      uo.canceltarget()
   endif
   uo.waittargetobject('Rune')
   UO.Cast('Recall')
   wait(10000)
   if uo.injournal('fizzles') then
     goto end
   endif
   loot()
   wait(3000)
   reccal:
   uo.deletejournal()
   if uo.waiting() then
      uo.canceltarget()
   endif
   #uo.exec("recall Runebook 46") ; в шахту ( в рунбуке слот 3 )
   uo.waittargetobject('RuneP')
   UO.Cast('Recall')
   wait(10000)
      if uo.injournal('fizzles') then
     goto reccal
   endif
   #uo.exec("recall Runebook 58") ; в шахту ( в рунбуке слот 4 )
   #mx = UO.GetX("self")
   #my = UO.GetY("self")
   #wait(10000)
   #if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
   #   goto reccal
   #endif
   goto na4alo
end sub

_________________
Все мы славные ребята, простые русские парни, железные люди с деревянными головами...


Top
   
PostPosted: 2010-11-13 13:45:31 
Offline

Joined: 2010-11-13 05:26:11
Posts: 4
GMX спасибо! Я попробовал твой подставить, ничего не вышло. Я в этом просто 0. Ты можешь помочь, просто убрать из этого все действия при появлении ПК или элема, то есть, что бы перс при любом раскладе копал до упора и если надо уходил в инвиз.
Code:
sub maning() 
#BETEP™#
var mx, my, mz, i, j, jor, ser, noto
Uo.exec("set norbcheck 1"); для рекола
uo.exec("set norbcalc 1"); тоже

uo.print('!!Выбери Лопату!! ')
uo.exec('addobject Shovel')
while uo.targeting()
wait(100)
wend
 
uo.print('!!Выбери Рунбук!! ')
uo.exec('addobject Runebook')
while uo.targeting()
wait(100)
wend

na4alo:
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-4 to mx+4
for j = my -4 to my+4
while not UO.Hidden()
UO.Warmode("0")
uo.print("Прячемся...")
UO.UseSkill("Hiding")
wait(4000)
wend
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
if uo.weight > 625 then  ; Максимальный вес при котором домой с рудой
goto end
endif
wend
UO.DeleteJournal()
next
next
goto na4alo
end:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 21") ; домой ( в рунбуке слот 1 )
wait(10000)
loot()
wait(3000)
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 94") ; в шахту ( в рунбуке слот 8 )
mx = UO.GetX("self")
my = UO.GetY("self")
wait(10000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
goto na4alo
end sub

sub loot()    ; перекладка руды в сундук
if uo.waiting() then
uo.canceltarget()
endif
VAR a,Exit
VAR UnloadCont='0x40041342' ; АЙДИ сундука для руды 
DIM Ore[5]
Ore[0]=0x19B9 ; 4 and more ore
Ore[1]=0x19B7 ; 1 ore
Ore[2]=0x19BA ; 2 ore
Ore[3]=0x19B8 ; 3 ore
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a=0 to 3
Exit=0
repeat
UO.FindType(Ore[a])
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
Else
Exit=1
endif
until Exit==1
Next
UO.UnSetReceivingContainer()
end sub

sub Save() ; Реколл от ПК при их появлении (в паке рунка в безопасное место и реги)
var mx, my
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
mx = UO.GetX("self")
my = UO.GetY("self")
UO.DeleteJournal()
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Recall','finditem')
wait(4000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
end sub

sub pwav() ; звук при выкапывании ЭЛЕМЕНТАЛА
uo.playwav("E:\UO\inject\SOUND\chanting sound 01.wav")
endsub

sub pwavw(); звук при появлении ПК
uo.playwav("E:\UO\inject\SOUND\chanting sound 01.wav")
endsub

sub Pause() ; Пауза скрипта если выкопали Элема (продолжить сказав GO )
UO.DeleteJournal()
REPEAT
WAIT(3000)
UO.Print("!!!СКРИПТ НА ПАУЗЕ!!!!")
UNTIL UO.InJournal('GO')
UO.Print("!!!СКРИПТ ПРОДОЛЖЕН!!!!")
endif
end sub


Top
   
PostPosted: 2010-11-13 18:22:46 
Offline
User avatar

Joined: 2010-10-01 16:47:41
Posts: 75
Я же в предыдущем посте указал, что нужно закомментить. )))

Code:
               #for jor = 0 to 9
               #   ser = uo.journalserial(jor)
               #   noto = uo.getnotoriety(ser)
               #   if noto == 1 and noto == 2 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


Этот отрезок своего кода просто закомментируй.

_________________
Все мы славные ребята, простые русские парни, железные люди с деревянными головами...


Top
   
PostPosted: 2010-11-14 02:21:41 
Offline

Joined: 2010-11-13 05:26:11
Posts: 4
Cпасибо!
Сам справился и кстати, на отлично! Можно сказать, первая кровь )
Вырезал и так и сяк, в итоге надо было убрать 4 строки, чуть выше того что ты писал в предыдущем посте:

Code:
wait (500) 
if uo.injournal("heavy") or uo.dead() then
pwav()                   
Pause()


Ну и конечно весь
Code:
Pause()
и
Code:
pwav()


В итоге имеем: выкапываем елема, или сосед выкапывает-чар продолжает копать не обращая внимания; журнал отслеживает пк или любого другого murder'a—перс реколится по руне, как и было задумано.
Ставим в кривую шахту где выход прослеживается из-за загиба и идем спокойно спать до утра )


Top
   
PostPosted: 2010-11-14 02:25:10 
Offline

Joined: 2010-11-13 05:26:11
Posts: 4
И да!
В оригинале скрипта строка
Code:
if noto <> 1 and noto <> 0 and not uo.injournal("elemental ") then


НЕМНОГО НЕКОРРЕКТНА!
ИСПРАВИТЬ:
Code:
("elemental ")

на
Code:
("Elemental ") 


регистр же учитывается )


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 1 guest


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:  
Powered by phpBB® Forum Software © phpBB Limited