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

Ask for help

Moderators: Murderator+, Murderator

Post Reply
cerf
Posts: 7
Joined: 2009-12-18 05:26:43

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

Post 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

помогите знающие люди! (если можно поэтапно разъясните пожалуйста)
ronjka
Posts: 1
Joined: 2009-12-03 07:43:37

Post by ronjka »

;UO.Exec('terminate all')
;UO.Exec('exec autoload')
ите две строки отключены ;
cerf
Posts: 7
Joined: 2009-12-18 05:26:43

Post by cerf »

ronjka wrote:
;UO.Exec('terminate all')
;UO.Exec('exec autoload')
ите две строки отключены ;
как включить?
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Post by Mirage »

обычно делают вот так:

Code: Select all

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

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

Sub GuardMacros()
;бла бла бла
endsub
cerf
Posts: 7
Joined: 2009-12-18 05:26:43

Post by cerf »

Mirage wrote:обычно делают вот так:

Code: Select all

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

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

Sub GuardMacros()
;бла бла бла
endsub
спасибо за старания, но я не понял, объясни как чайнику?
cerf
Posts: 7
Joined: 2009-12-18 05:26:43

Post by cerf »

проблема почти что разрешена, автостарт работает! но реконнектор не вырубает скрипты при реконнекте, "terminate all" подводит, как решить проблему?
cerf
Posts: 7
Joined: 2009-12-18 05:26:43

Post 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)
но самое интерестно что при дисконекте он реконектится чар тупо стоит а в вкладке скриптс висят эти три макроса, что за бред? где я не прав скажите?
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Post by Mirage »

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

PS на многих шардах стелс качается обычным юзом скрипта. Просто стоишь и используешь и растет. Зачем перемещатся?
cerf
Posts: 7
Joined: 2009-12-18 05:26:43

Post by cerf »

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

PS на многих шардах стелс качается обычным юзом скрипта. Просто стоишь и используешь и растет. Зачем перемещатся?
стелс качается во время хождения гораздо быстрей, но дело совсем не в стелсе, я хочу понять по какому принципу создавать ночные макры, а будь вместо стелса например мининг с реколами в шахты и складыванием домой руды? . Сервер имеет привычку постоянно падать, это получается мне не играть?
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Post 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
добавь по аналогии гвардилку - тут все работает и реконектится.
cerf
Posts: 7
Joined: 2009-12-18 05:26:43

Post by cerf »

спасибо за помощь!
Post Reply