Начала вылетать ошибка при реконнекте в игру

Ask for help

Moderators: Murderator+, Murderator

Post Reply
NonStop69
Posts: 4
Joined: 2011-01-30 00:20:20

Начала вылетать ошибка при реконнекте в игру

Post by NonStop69 »

Поставил чистую инжу 505.18, настроил. Клиент у меня отдельный без нагрузки на проц, ilpatch настроен. Все работало нормально день-другой. Начал качать Анатомию и к ней же добавил скрипт реконнекта. Отключал инет для проверки - перезаходил нормально и скрипт продолжал работать.

Теперь же как только обрыв соед и конн. лост, сразу выдаёт ошибку :

UO client performed an unrecoverrable invalid operation. Terminate? Yes/No.

При нажатии No выскакивает повторно, при положительном закрывается. Никаких реконнектов разумеется нет.
В чем ошибка без понятия, появилась на ровном месте.

1. Пробовал чистый скрипт реконнекта - нет.
2.Image
3. Винда XP SP3, антивирус аваст без фаера. Процессор Athlon x2, шард ДРВ.
4. Переставлял инжу и родной клиент - та же фигня.
5. Постоянно выскакивает ошибка как только зайду в саму игру Function not found - autostart, в самом конце всех скриптов.

Вот такая беда, помогите. Уже сил нет.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Начала вылетать ошибка при реконнекте в игру

Post by Mirage »

1) попробуй после запуска клиента выставлять нагрузку на одно ядро процессора.
CTRL+Shift+ESC -> Процессы -> Правой кнопкой мышки на client.exe Задать соответствие -> оставить одну галку на любом ядре.
2) убери галки кроме Corps autoopen и TWI
3) не совсем понял вот этот участок:
5. Постоянно выскакивает ошибка как только зайду в саму игру Function not found - autostart, в самом конце всех скриптов.

Если это вопрос то у тебя в файле autoload.sc (корень инжекта или папка с игрой) нет функции sub autostart(). Это лечится сниманием галки autostart (как не странно).
Либо если такая функция присутствует то может быть проблема в незакрытых циклах файла autoload.sc.
если ничего не поможет то скидывай скрипт на кач каким пользуешься. Будем смотреть его.
NonStop69
Posts: 4
Joined: 2011-01-30 00:20:20

Re: Начала вылетать ошибка при реконнекте в игру

Post by NonStop69 »

Спасибо за ответ!

1. Не помогло.
2. Снял, результат тот же.
3. лечится сниманием галки autostart - помогло!

Сразу приложу запускаемый скрипт:

Code: Select all

sub loot()
VAR WaitTime=500
VAR Exit=1, i
DIM Loot[8]
Loot[1]="0x0EED"
Loot[2]="0x1718"
Loot[3]="0x170B"
Loot[4]="0x0E75"
Loot[5]="0x0F91"
Loot[6]="0x1EFD"
Loot[7]="0x0F78"
Loot[8]="0x1516"


wait (500)
for i = 1 to 8
UO.FindType(Loot[i],"-5","lastcorpse")
UO.Grab("0","finditem")
next
end sub


sub hiding()
    while not UO.Dead()
        hide()
        UO.Press(37,2,300)
        Wait(300) ; После второго нажатия паузы не будет, так что нужно добавить её вручную
        hide()
        UO.Press(39,2,300)
        Wait(300)
    wend
end sub

Sub hide()
    var failMessage = "You fail|You don't|You can't"
    var timeLeft = 0

    while not UO.Hidden() ; Если мы уже спрятались - не крутим цикл
        UO.Useskill("Hiding") ; Пытаемся спрятаться

        DeleteJournal(failMessage) ;Удаляем все сообщения об неудачах с журнала
        timeLeft = 3000 ;Обнуляем счётчик ожидания скилла
        while (not UO.Hidden()) AND (timeLeft > 0) AND (UO.InJournal(failMessage) == 0) ;Ждём пока не захайдимся, либо не получим сообщение об неуспешном хайде, либо пока не истекут 3 секунды выделенные на хайд.
            timeLeft = timeLeft - 100
            wait(100)
        wend
    wend
endsub

Sub DeleteJournal( string1 )
    VAR nom = UO.InJournal( string1 )
    If nom > 0 Then
        UO.SetJournalLine( Nom - 1, 'string replaced' )
        DeleteJournal( string1 )
    Endif
endsub

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 Anatomy()
var Exit=0   
while Exit==0
uo.DeleteJournal()
uo.Waittargetself()
uo.Useskill('Anatomy')
while not (uo.InJournal('looks')or uo.InJournal('You'))   
wait(1000)
wend
wend
end sub


Анатомия, стелс работают без проблем, единственное скрипт на лут забирает по 2 вещи, приходится по неск. раз нажимать.
Чистый скрипт реконнект с той же ошибкой.

И еще вопрос, откуда нужно качать инжект или более новую его версию?
Я качаю - http://yoko.com.ua/rus/injection.htm
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Начала вылетать ошибка при реконнекте в игру

Post by Mirage »

всего скорее дело в отсутствие счетчика. У тебя при дисконекте цикл зависает. Попробуй качать вот таким скриптом:

Code: Select all

Var FishType = '0x097B' ; тип жаренной рыбы
Var LastTimer, i
Var Chest = '0x40B475D3' ; сундук где валяется жаренная рыба
Var Amount = 50 ; сколько будем брать рыбы на прокормку чара
Var SkillVal = 1000
sub main()
   UO.Exec('exec Reconnector')
   If uo.SkillVal('Anatomy') < SkillVal then
      Anatomy()
   End If
   If uo.SkillVal('Arms Lore') < SkillVal then
      ArmsLore()
   End If
   If uo.SkillVal('Hiding') < SkillVal then
      Hiding()
   End If
   If uo.SkillVal('Stealth') < SkillVal then
      Stealth()
   End If
   If uo.SkillVal('Tracking') < SkillVal then
      Tracking()
   End If
   If uo.SkillVal('Musicianship') < SkillVal then
      Musicianship()
   End If
   If uo.SkillVal('Taste Identification') < SkillVal then
      TasteID()
   End If
   If uo.SkillVal('Evaluate Intelligence') < SkillVal then
      EvaluatingIntelligence()
   End If
End Sub
Sub Anatomy()
   while uo.SkillVal('Anatomy') < SkillVal
      Eat()
      For i = 1 To 100
         uo.DeleteJournal()
         uo.Useskill('Anatomy', 'self')
         LastTimer = uo.Timer()
         repeat
            wait(500)
         until uo.InJournal('looks|fail|think') or uo.Timer() > LastTimer + 200
      Next
   Wend
End Sub
Sub ArmsLore()
   uo.FindType ('0x0F51') ; даггер
   If uo.FindCount() > 0 Then
      while uo.SkillVal('Arms Lore') < SkillVal
         Eat()
         For i = 1 To 100
            uo.DeleteJournal()
            uo.Useskill('Arms Lore','finditem')
            LastTimer = uo.Timer()
            repeat
               wait(500)
            until uo.InJournal('item|is made of|anything|ничего') or uo.Timer() > LastTimer + 200
         Next
      Wend
   Else
      Eat()
   End If
End Sub
Sub Tracking()
   uo.CancelMenu()
   uo.AutoMenu("Track","Anything")
   while uo.SkillVal('Tracking') < SkillVal
      Eat()
      For i = 1 To 100
         uo.DeleteJournal()
         uo.Useskill('Tracking')
         LastTimer = uo.Timer()
         repeat
            wait(50)
         until UO.InJournal("Поиск отменен|Tracking Cancelled|see") or UO.Timer()>LastTimer+50
      Next
   Wend
   uo.CancelMenu()
End Sub
Sub Musicianship()
   VAR a
   UO.filterspeech('clear')
   UO.filterspeech('add','You play')
   UO.filterspeech('on')
   Dim Musicial_instrument[6]
   Musicial_instrument[1] = '0x0E9C'; Drum (барабан)
   Musicial_instrument[2] = '0x0E9D'; Tambourine (бубен)
   Musicial_instrument[3] = '0x0E9E'; Tambourine (бубен с лентой)
   Musicial_instrument[4] = '0x0EB2'; Lap Harp (маленькая арфа)
   Musicial_instrument[5] = '0x0EB1'; Standing Harp (большая арфа)
   Musicial_instrument[6] = '0x0EB3'; Lute (лютня ака балалайка)
   for a=1 to 6
      UO.FindType(Musicial_instrument[a],'-1','2')
      While UO.FindCount() And UO.Skillval('Musicianship') < SkillVal And Not UO.Dead()
         UO.UseObject('finditem')
         Wait(100)
         UO.WarMode(0)
         UO.FindType(Musicial_instrument[a],'-1','2')
      Wend
   Next
   UO.filterspeech('clear')
End Sub
Sub Hiding()
   while uo.SkillVal('Hiding') < SkillVal
      Eat()
      For i = 1 To 100
         uo.DeleteJournal()
         uo.Useskill('Hiding')
         LastTimer = uo.Timer()
         repeat
            wait(500)
         until uo.InJournal('seem|hidden|Вам не|revealed') or uo.Timer() > LastTimer + 200
      Next
   Wend
End Sub
Sub Stealth()
   while uo.SkillVal('Stealth') < SkillVal
      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 TasteID()
   uo.FindType (FishType)
   If uo.FindCount() > 0 Then
      while uo.SkillVal('Taste Identification') < SkillVal
         Eat()
         For i = 1 To 100
            uo.DeleteJournal()
            uo.Useskill('Taste Identification','finditem')
            LastTimer = uo.Timer()
            repeat
               wait(500)
            until uo.InJournal('anything|tastes|ничего') or uo.Timer() > LastTimer + 200
         Next
      Wend
   Else
      Eat()
   End If
End Sub
Sub EvaluatingIntelligence()
   while uo.SkillVal('Evaluating Intelligence') < SkillVal
      Eat()
      For i = 1 To 100
         uo.DeleteJournal()
         uo.Useskill('Evaluating Intelligence', 'self')
         LastTimer = uo.Timer()
         repeat
            wait(500)
         until uo.InJournal('seem|looks|У вас не') 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("simply too full|stuffed|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
NonStop69
Posts: 4
Joined: 2011-01-30 00:20:20

Re: Начала вылетать ошибка при реконнекте в игру

Post by NonStop69 »

Проблему решил. Причина была все таки в многоядерном проце.

В решение помогла вот эта тема(спасибо автору):

viewtopic.php?f=12&t=13028

Кинул фаил в инжу и запускаю с него, всё работает и реконнектит. 8)
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Начала вылетать ошибка при реконнекте в игру

Post by Mirage »

эта утилита как раз и делает:
1) попробуй после запуска клиента выставлять нагрузку на одно ядро процессора.
CTRL+Shift+ESC -> Процессы -> Правой кнопкой мышки на client.exe Задать соответствие -> оставить одну галку на любом ядре.


:mrgreen:

цифра в конце названия ярлыка запускает клиент на первом или втором ядре.
NonStop69
Posts: 4
Joined: 2011-01-30 00:20:20

Re: Начала вылетать ошибка при реконнекте в игру

Post by NonStop69 »

ALT+CTRL+DEL процессы :)

CPU 0
CPU 1

Ставил галочки, эффекта ноль. А вот утилитка помогла, хотя и делает то же самое.
В любом случае спасибо парни)

Еще один вопрос возник.
- Скрипт лутает только по 2 вещи и приходится жать с паузой в 1-2 сек. Появляется надпись "invalid object:0" Так и должно быть или есть скрипт который полностью все вещи из списка тащит? Посоветуйте :)

Скрипт:

Code: Select all

sub loot()
VAR WaitTime=500
VAR Exit=1, i
DIM Loot[8]
Loot[1]="0x0EED"
Loot[2]="0x1718"
Loot[3]="0x170B"
Loot[4]="0x0E75"
Loot[5]="0x0F91"
Loot[6]="0x1EFD"
Loot[7]="0x0F78"
Loot[8]="0x1516"


wait (500)
for i = 1 to 8
UO.FindType(Loot[i],"-5","lastcorpse")
UO.Grab("0","finditem")
next
end sub
Post Reply