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