CheckLag и еще немного =)

Ask for help

Moderators: Murderator+, Murderator

Post Reply
slonopotam
Posts: 270
Joined: 2006-08-05 14:09:06
Contact:

CheckLag и еще немного =)

Post by slonopotam »

1) Почему нельзя вместо некоторых пауз, например при открывании банка, постоянно использовать чек лаг? Просто в скрипте это часто используется, а в уроках написано что этого делать нестоит.

2) Я видел несколько версий чеклга. Можете посоветовать наиболее стабильную?

3) расскажите пожалуйста о ниже приведенном, что это, когда используется и для каких целей?


Code: Select all


...
...
...
ReconnectTime = MakeTime()
...
...
...
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
end if
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
end if
next
ret=t+" @ "+d
return ret
end sub


4) Что еще есть кроме чеклага и MakeTime, что можно использовать во благо? Например "делит алл процес" и т.д.
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

1) Используй ради бога, однако моё мнение, это возможно будет добавлять некоторые лаги- но точно сказать не могу.
2) Они все одинаковые. Клик по журналу, проверка пока появится сообщение
3) Если не ошибаюсь, эта функция работает вместе с реконектом для удобства( так решил программист который написал реконектор )-она вроде составляет время и дату когда был дисконект(или наоборот приконектились)
4) Всё что хочешь, на твоё усмотрение. Каждому своё.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Чеклаг лучше использовать в тех местах скрипта где по какой то причине не прошло требуемое действие. Допустим в ходилке, делаем смещение, проверяем новые координаты, если они совпадают со старыми то делаем чеклаг. Он удаляет журнал, кликает на бакпак и ждет ответа сервера в журнале - бакпак. Так вот если чек лаг прошел а координаты все те же значит чар уперся в препядствие :) Полезно чеклаг юзать при перетаскивании итемов, например добора ресурса на крафт, чтоб при сэйве под чаром не образовалась гора этих ресов. Воощем он нужен там где нет другой возможности проверить предыдущие действие исполнилось или нет.
В случае с банком, при его открытии появляется некая надпись. Так вот перед открытием очищаем журнал и кричим банк и ставим динамическую паузу на появление той самой надписи. Так будет надежнее.

Паузу в чеклаге не стоит занижать и никаких лагов не будет. То есть паузу меньше 100 лучше не ставить. 200 Вполне оптимальный вариант.
Из недостатков, чек лаг стирает журнал но это скорее фича чем недостаток. Просто некоторые любят пользовать журнал активно.

Кстати, сам чеклаг создавался не для пауз, а чтоб уменьшить негативное влияние лагов на работу скрипта. Как пример, очень много открытых менюшек крафта на экране, которые появились в результате сэйвов.
slonopotam
Posts: 270
Joined: 2006-08-05 14:09:06
Contact:

Post by slonopotam »

Так как неумею пока пользоватся динамическими паузами, то соответственно использую пока фиксированые. Вот пример глупого скрипта на мининг. Еще не тестил. Этот скрипт просто гоняет чара по координатам и в каждой координате врубает мининг вокруг чара.


Code: Select all

   VAR Picsar = '0x0000' ; кирка
   VAR SteikFat = '0x0000' ; рыбные стейки
   VAR Sunduk = '0x00000000' ; ИД сундука с инструментом (кирка)
   VAR Sunduk2 = '0x00000000' ; ИД сундука для ресурсов
sub main()
;идем к банку
GoToTile( 5975, 1492, 1, False )
wait( 5000 )  ; пауза
UO.Say( 'Bank' ) ; открываем банк
wait( 5000 ) ; пауза
; ищем что поесть
   If UO.Count( SteikFat ) < 10 Then ; проверяем наличие стейков в паке
      UO.FindType( SteikFat,'-1',Sunduk) ; ищем стейки в сундуке
   If UO.FindCount () > 0 Then ; проверяем нашли или нет
      UO.MoveItem( 'finditem','10' ) ; берем 10 стейков в пак
   wait (1000) ;пауза
   Else ; иначе
      UO.Print( 'Нет стейков' ) ; ругаемся
   Endif
   Endif
; ищем кирку
   If UO.Count( Picsar ) < 2 Then ; проверяем наличие кирки в паке
      UO.FindType( Picsar,'-1',Sunduk) ; ищем кирку в сундуке
   If UO.FindCount () > 0 Then ; проверяем нашли или нет
      UO.MoveItem( 'finditem','2' ) ; берем 2 кирки в пак
wait (1000) ;пауза
   Else ; иначе
      UO.Print( 'Нет кирки' ) ; ругаемся
   Endif
   Endif
; начинаем копать
; идем к точке копания №1
   GoToTile( 5974, 1504, 1, False )
    wait(10000) ; пауза
;запускаем скрипт на мининг вокруг чара
   Mining()
    wait(10000) ; пауза
; идем к точке копания №2
   GoToTile( 6005, 1497, 1, False )
    wait(10000) ; пауза
;запускаем скрипт на мининг вокруг чара
   Mining()
    wait(10000) ; пауза
; идем к точке копания №3
   GoToTile( 6010, 1496, 1, False )
    wait(10000) ; пауза
;запускаем скрипт на мининг вокруг чара
   Mining()
    wait(10000) ; пауза
; идем к точке копания №4
   GoToTile( 6013, 1495, 1, False )
    wait(10000) ; пауза
;запускаем скрипт на мининг вокруг чара
   Mining()
    wait(10000) ; пауза
; идем к точке копания №5
   GoToTile( 6012, 1499, 1, False )
    wait(10000) ; пауза
;запускаем скрипт на мининг вокруг чара
   Mining()
    wait(10000) ; пауза
; идем к точке копания №6
   GoToTile( 6013, 1504, 1, False )
    wait(10000) ; пауза
;запускаем скрипт на мининг вокруг чара
   Mining()
    wait(10000) ; пауза
; идем к точке копания №7
   GoToTile( 6007, 1504, 1, False )
    wait(10000) ; пауза
;запускаем скрипт на мининг вокруг чара
   Mining()
    wait(10000) ; пауза
; идем к точке копания №8
   GoToTile( 6006, 1510, 1, False )
    wait(10000) ; пауза
;запускаем скрипт на мининг вокруг чара
   Mining()
    wait(10000) ; пауза
; идем к точке копания №9
   GoToTile( 6006, 1516, 1, False )
    wait(10000) ; пауза
;запускаем скрипт на мининг вокруг чара
   Mining()
    wait(10000) ; пауза
; идем к точке копания №10
   GoToTile( 6004, 1519, 1, False )
    wait(10000) ; пауза
;запускаем скрипт на мининг вокруг чара
   Mining()
    wait(10000) ; пауза
; идем к банку
   GoToTile( 6002, 1500, 1, False )
    wait(5000) ; пауза
   GoToTile( 5977, 1501, 1, False )
    wait(5000) ; пауза
   GoToTile( 5975, 1492, 1, False )
    wait(10000) ; пауза
      UO.Say( 'Bank' ) ; открываем банк
    wait( 5000 ) ; пауза
      UO.MoveItem( '0x19B9','-1','Sunduk2' )
    wait( 1000 ) ; пауза
      UO.Print( 'Закончили' )
end sub
Last edited by slonopotam on 2006-10-21 12:21:11, edited 3 times in total.
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Ты шутишь что ли? Это работает?
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

это не может работать в принципе... вот, случайно глаз выцепил:

Code: Select all

UO.Sey( 'Bank' )
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Лучше спросить-ты на этом качаешься?!
slonopotam
Posts: 270
Joined: 2006-08-05 14:09:06
Contact:

Post by slonopotam »

:D С UO.Say лажанулся (исправил), бывает, просто у нас на шарде сейчас нельзя добывать ресурсы (эвент такой) вот и не тестил. А так в принципе вполне рабочий (вроде :) ).

Да я на этом собрался качатся. Вот только эвент пройдет лесом и начну тестить.
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Мой тебе совет-учись правильно писать скрипты с самого начала, чтобы потом не было трудно учиться писать их заново.
Post Reply