Page 1 of 1

Помогите разобраться с ночным макросингом!

Posted: 2009-12-18 08:21:48
by cerf
Попробую объяснить проблему, дело в том, что интернет не стабильный и бывает сервер падает, что мешает стоять автономно на макросах, я поискал решение проблемы на форуме, нашел скрипт реконнект, он реконектит отлично, все круто, но не запускает заного скрипт с макросами, я и этой проблемой занялся, подробного опиания не нашел, но как я понял сделал, а именно так: открыл текущий скрипт прописал в конце

Code: Select all

 sub autostart()
end sub

сохранил скрипт с именем autostart.sc во вкладке mine поставил галочку на autostart
Но и это не помогло!
после реконекта тупо стоит на месте...
вот скрипт:

Code: Select all

sub Reconnector() 
var ReconnectTime, RFlag
ReconnectTime = '0'
RFlag = 1
Repeat
While (UO.ObjAtLayer('Bpack') == '')
if RFlag Then
ReconnectTime = MakeTime()
RFlag = 0
endif
Wait(20000) # WorldSave Protection
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.LDblClick(357,164)
UO.LClick(616,459)
Wait(3000)
WEnd
Wait(3000)
if (RFlag == 0) and (ReconnectTime <> '0') Then
;UO.Exec('terminate all')
;UO.Exec('exec autoload')
UO.TextOpen()
UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
RFlag = 1
ReconnectTime = '0'
endif
Until false
end sub

sub MakeTime()
VAR D, T, Ret, i
Ret = STR(UO.Time())
T = ""
For i = 0 To Len(Ret)
T = Ret[Len(Ret)-i] + T
If (I == 2) OR (I == 4) Then
T = ":" + T
EndIf
Next
Ret = STR(UO.Date())
D = ""
For i = 0 To Len(Ret)
D = Ret[Len(Ret)-i] + D
If (I == 2) OR (I == 4) Then
D = "." + D
EndIf
Next
Ret = T + " @ " + D
RETURN Ret
end sub

sub GuardMacros()
while not uo.dead()
if uo.life < uo.str then
uo.msg(".guards")
wait(10000)
endif

wait(1000)
wend
end sub

sub Stealthlexa()
  while not uo.Dead()
    hide:
    uo.DeleteJournal()
    uo.UseSkill('Stealth')
    while not uo.InJournal('seem') and not uo.InJournal('You have hidden')
      wait(100)
    wend
    if uo.InJournal('You have hidden') then
      while not uo.InJournal('have been')
        uo.Press(36)
        wait(1000)
        uo.Press(36)
        wait(1000)   
        if uo.InJournal('have been') then
          goto hide
        else
          uo.Press(34)
          wait(1000)
          uo.Press(34)
          wait(1000)       
        end if
      wend
    else
      goto hide
    end if
  wend
end sub

sub autostar()
end sub


помогите знающие люди! (если можно поэтапно разъясните пожалуйста)

Posted: 2009-12-18 08:31:45
by ronjka
;UO.Exec('terminate all')
;UO.Exec('exec autoload')


ите две строки отключены ;

Posted: 2009-12-18 08:52:58
by cerf
ronjka wrote:
;UO.Exec('terminate all')
;UO.Exec('exec autoload')


ите две строки отключены ;

как включить?

Posted: 2009-12-18 09:49:12
by Mirage
обычно делают вот так:

Code: Select all

sub main() ; какойто твой скрипт
Reconnector()
GuardMacros()
  while not uo.Dead()
;какоето действие
wend
endsub

Sub  Reconnector()
;бла бла бла
endsub

Sub GuardMacros()
;бла бла бла
endsub

Posted: 2009-12-18 12:34:54
by cerf
Mirage wrote:обычно делают вот так:

Code: Select all

sub main() ; какойто твой скрипт
Reconnector()
GuardMacros()
  while not uo.Dead()
;какоето действие
wend
endsub

Sub  Reconnector()
;бла бла бла
endsub

Sub GuardMacros()
;бла бла бла
endsub

спасибо за старания, но я не понял, объясни как чайнику?

Posted: 2009-12-18 12:37:19
by cerf
проблема почти что разрешена, автостарт работает! но реконнектор не вырубает скрипты при реконнекте, "terminate all" подводит, как решить проблему?

Posted: 2009-12-18 13:03:28
by cerf
Вообщем так выглядит скрипт autoload.sc


Code: Select all

sub Reconnector() 
var ReconnectTime, RFlag
ReconnectTime = '0'
RFlag = 1
Repeat
While (UO.ObjAtLayer('Bpack') == '')
if RFlag Then
ReconnectTime = MakeTime()
RFlag = 0
endif
Wait(20000) # WorldSave Protection
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.LDblClick(357,164)
UO.LClick(616,459)
Wait(3000)
WEnd
Wait(3000)
if (RFlag == 0) and (ReconnectTime <> '0') Then
;UO.Exec('terminate all')
;UO.Exec('exec autoload')
UO.TextOpen()
UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
RFlag = 1
ReconnectTime = '0'
endif
Until false
end sub

sub MakeTime()
VAR D, T, Ret, i
Ret = STR(UO.Time())
T = ""
For i = 0 To Len(Ret)
T = Ret[Len(Ret)-i] + T
If (I == 2) OR (I == 4) Then
T = ":" + T
EndIf
Next
Ret = STR(UO.Date())
D = ""
For i = 0 To Len(Ret)
D = Ret[Len(Ret)-i] + D
If (I == 2) OR (I == 4) Then
D = "." + D
EndIf
Next
Ret = T + " @ " + D
RETURN Ret
end sub

sub bucher() ; одевание бучера
var bucher = "0x13F6" ; ID бучера
 uo.usetype(bucher)
 uo.print('нету в паке бутчера!')
end sub


sub Stealthlexa()
  while not uo.Dead()
    hide:
    uo.DeleteJournal()
    uo.UseSkill('Stealth')
    while not uo.InJournal('seem') and not uo.InJournal('You have hidden')
      wait(100)
    wend
    if uo.InJournal('You have hidden') then
      while not uo.InJournal('have been')
        uo.Press(36)
        wait(1000)
        uo.Press(36)
        wait(1000)   
        if uo.InJournal('have been') then
          goto hide
        else
          uo.Press(34)
          wait(1000)
          uo.Press(34)
          wait(1000)       
        end if
      wend
    else
      goto hide
    end if
  wend
end sub

sub GuardMacros()
while not uo.dead()
if uo.life < uo.str then
uo.msg(".guards")
wait(10000)
endif

wait(1000)
wend
end sub


sub autostart()                     
    UO.Exec('exec GuardMacros')
   wait(2000)
    UO.Exec('exec Reconnector')
   wait(2000)
    UO.Exec('exec Stealthlexa')
   wait(2000)
end sub   


по моим подозрениям он просто обязан при дисконекте реконнектится, убивать все макросы работающие до дисконекта, загружать autoload.sc тем временем autostart подгружает по новой макросы ( GuardMacros Reconnector Stealthlexa)
но самое интерестно что при дисконекте он реконектится чар тупо стоит а в вкладке скриптс висят эти три макроса, что за бред? где я не прав скажите?

Posted: 2009-12-18 14:49:07
by Mirage
ты немного усложняешь задачу ) Автостарт запускает скирпт при подключении ИНЖЕКТА 1 раз. Если ты не закрываешь клиент с инжектом - автостарт не срабатывает. Тут только на сам скрипт грешить стоит.
ИМХО не мучайся с автостартом - скрипт может называеться МОЙ ХАЙД.sc просто запускать надо процедуру autostart() 1 раз. А чтобы скрипт не слетал - взять модуль стелсокачки другой без GoTo.

PS на многих шардах стелс качается обычным юзом скрипта. Просто стоишь и используешь и растет. Зачем перемещатся?

Posted: 2009-12-18 19:10:57
by cerf
Mirage wrote:ты немного усложняешь задачу ) Автостарт запускает скирпт при подключении ИНЖЕКТА 1 раз. Если ты не закрываешь клиент с инжектом - автостарт не срабатывает. Тут только на сам скрипт грешить стоит.
ИМХО не мучайся с автостартом - скрипт может называеться МОЙ ХАЙД.sc просто запускать надо процедуру autostart() 1 раз. А чтобы скрипт не слетал - взять модуль стелсокачки другой без GoTo.

PS на многих шардах стелс качается обычным юзом скрипта. Просто стоишь и используешь и растет. Зачем перемещатся?

стелс качается во время хождения гораздо быстрей, но дело совсем не в стелсе, я хочу понять по какому принципу создавать ночные макры, а будь вместо стелса например мининг с реколами в шахты и складыванием домой руды? . Сервер имеет привычку постоянно падать, это получается мне не играть?

Posted: 2009-12-18 19:25:24
by Mirage
время особо значения не играет когда ты на скрипте стоишь :) Что за час прокачаешься что за ночь.


Code: Select all

Var FishType = '0x097B' ; тип жаренной рыбы
Var LastTimer, i
Var Chest = '0x40B475D3' ; сундук где валяется жаренная рыба
Var Amount = 50 ; сколько будем брать рыбы на прокормку чара

sub main()
UO.Exec('exec Reconnector')
If uo.SkillVal('Stealth') < 1000 then
   Stealth()
End If
End Sub

Sub Stealth()
   while uo.SkillVal('Stealth') < 1000
   Eat()
      For i = 1 To 100
         uo.DeleteJournal()
         uo.Useskill('Stealth')
         LastTimer = uo.Timer()
         repeat
            wait(500)
         until uo.InJournal('seem|hidden|Âàì íå|revealed') or uo.Timer() > LastTimer + 200
      Next
   Wend
End Sub

Sub Eat()
uo.DeleteJournal()
   repeat
     If uo.Count(FishType) > 0 Then
        uo.UseType(FishType)
        wait(500)
     Else
        uo.FindType( FishType, -1, Chest )
      If UO.FindCount() == 0 Then    
      uo.Print("Íåòó áîëüøå æðà÷êè :(")
      return
      Endif
      uo.Grab( Str( Amount ), 'finditem' )
      wait( 2000 )
     End If
   Until uo.InJournal("stuffed!") or uo.InJournal("think")
End Sub

Sub Reconnector()
    var ReconnectTime, RFlag
    ReconnectTime = '0'
    RFlag = 1
    Repeat
          While (UO.ObjAtLayer('Bpack') == '')
                If RFlag Then
                   ReconnectTime = MakeTime()
                   RFlag = 0
                endif
                Wait(20000) # WorldSave Protection
                UO.Say('')
                Wait(3000)
                UO.Say('')
                Wait(3000)
                UO.Say('')
                Wait(3000)
                UO.LDblClick(357,164)
                UO.LClick(616,459)
                Wait(3000)       
          Wend
          Wait(3000)
          If (RFlag == 0) and (ReconnectTime <> '0') Then
             
             uo.TextOpen()
             uo.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
             RFlag = 1
             ReconnectTime = '0'
          End If
    Until false
end sub

Sub MakeTime()
   VAR D, T, Ret, i
   Ret = STR(UO.Time())
   T = ""
   For i = 0 To Len(Ret)
      T = Ret[Len(Ret)-i] + T
      If (I == 2) OR (I == 4) Then
         T = ":" + T
      EndIf
   Next
   Ret = STR(UO.Date())
   D = ""
   For i = 0 To Len(Ret)
      D = Ret[Len(Ret)-i] + D
      If (I == 2) OR (I == 4) Then
         D = "." + D
      EndIf
   Next   
   Ret = T + " @ " + D
   RETURN Ret
End Sub

sub TerminateAll()
uo.Exec('Terminate All')
End Sub


добавь по аналогии гвардилку - тут все работает и реконектится.

Posted: 2009-12-19 11:12:59
by cerf
спасибо за помощь!