А есть справочник ?

Ask for help

Moderators: Murderator+, Murderator

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

А есть справочник ?

Post by slonopotam »

Например описание что значат wait() и CheckLag() и в каких случаях они применяются? И так по всем функциям и т.д. По всем командам не нашел не одного справочника. Если есть у кого, скиньте пожалуйста. Меня интересует все, начиная от sab form () и заканчивая (random).
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

1. Раздел Хелп этого форума, прилепленные темы с уроками
2. http://yoko.netroof.net/help/index.php?lang=rus
3. Раздел FAQ этого форума
4. Чеклаг - это вообще функция, написанная пользователем. И таких более-менее стандартных функций много. В разделе Скрипты форума была прилепленная тема про это.

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

Post by slonopotam »

Эт все хорошо, но мало. Нигде не написано например про то, когда какую паузу сделать. Незная этого как я буду правильно использовать тот же чек лаг?
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

slonopotam wrote:Эт все хорошо, но мало. Нигде не написано например про то, когда какую паузу сделать. Незная этого как я буду правильно использовать тот же чек лаг?

нету! ненравится- стери инжу :arrow: :!:
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

slonopotam wrote:Эт все хорошо, но мало. Нигде не написано например про то, когда какую паузу сделать. Незная этого как я буду правильно использовать тот же чек лаг?


Учись по чужим скриптам. Никто не удосужился написать полный развернутый учебник по инжекту. И вряд ли кто когда сподобится на такое.

ЗЫ: Ты не находишь, что у кем-то заранее разжеванной для тебя пище - вкус другой? :roll:
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
slonopotam
Posts: 270
Joined: 2006-08-05 14:09:06
Contact:

Post by slonopotam »

Edred wrote:Ты не находишь, что у кем-то заранее разжеванной для тебя пище - вкус другой? :roll:

Ты про слюни ??? :shock:

Объясните пожалуйста тогда хотябы этот пример, в каком случае какую паузу ставить. Просто я не очень дружу ни с делфи, ни с базиком.
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

При чём тут это? Чтобы писать скрипты достаточно уметь создавать алогитмы (кстате, это чисто логическо-математическая задача), а уж как их реализовывать не принципиально. Если имеешь представление хотябы о паскале, то изучить другой язык струда не составит. Повторюсь, главное - "шарить" в алгоритмах.
DerMeister сейчас на нейрале!
slonopotam
Posts: 270
Joined: 2006-08-05 14:09:06
Contact:

Post by slonopotam »

Не в алгоритме проблема, а в данном случае в паузе. Когда какую лудше ставить? Когда нужно wait заменить на чеклаг.
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

slonopotam wrote:Не в алгоритме проблема, а в данном случае в паузе. Когда какую лудше ставить? Когда нужно wait заменить на чеклаг.

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

Post by slonopotam »

Code: Select all

sub Ogo()
uo.print('Click on balalaika')
uo.exec('addobject balalaika')
while uo.targeting()
repeat
uo.useskill("Stealth")
wait(5000)
UO.Say( "Guards" )
wait(50)
uo.useskill("Animal Lore",'self')
wait(5000)
UO.Say( "Guards" )
wait(50)
uo.useskill("Hiding")
wait(5000)
UO.Say( "Guards" )
wait(50)
uo.useskill("Evaluating Intelligence",'self')
wait(5000)
UO.Say( "Guards" )
wait(50)
uo.usetype('0x097B')
wait(50)
UO.Say( "Guards" )
wait(50)
UO.UseObject('balalaika')
wait(5000)
until uo.dead()
end sub
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Завтро распишу всё с комментариями где чего лучше вставить. А счас я заниматся - завтро лаба.
DerMeister сейчас на нейрале!
slonopotam
Posts: 270
Joined: 2006-08-05 14:09:06
Contact:

Post by slonopotam »

Ивот уже наступило после завтра, а мы все ждемс ...
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Ну, :wink: , конечный выбор остаётся за тобой. Я бы сделал так:
Кста, у тя скрипт не рабочий! Был :wink:

Code: Select all

sub Ogo() 

uo.print('Click on balalaika')
uo.exec('addobject balalaika') #смотри пункт 2 комментариев

  while uo.targeting()  #тут ошибочка была
    wait(200)  #нужно так
  wend

  repeat
    uo.useskill("Stealth")
    wait(5000)  #смотри пункт 2 комментариев
    UO.Say( "Guards" )
    wait(50) #зачем задержка???
    uo.useskill("Animal Lore",'self')
    wait(5000) 
    UO.Say( "Guards" )
    wait(50)  #ну зачем?? ;)
    uo.useskill("Hiding")
    wait(5000)
    UO.Say( "Guards" )
    wait(50)  #....
    uo.useskill("Evaluating Intelligence",'self')
    wait(5000)
    UO.Say( "Guards" )
    wait(50)
    uo.usetype('0x097B')
    wait(50) #смотри пункт 3 комментариев
    UO.Say( "Guards" )
    wait(50) #кхм ;)
    UO.UseObject('balalaika')
    wait(5000)
  until uo.dead()

end sub


Комментарии (общнго типа, тоесть не только касаемо конкретно этого скрипта):
1)Вообще иногда имеет смысл перед этим написать

Code: Select all

...
var balalaika
if uo.targeting() then
uo.canceltarget()
end if
uo.addobject('balalaika')
...

2)Тут можно по журналу (как в пункте 3)

Code: Select all

...
uo.deletejournal() #главное не забыть обнулить журнал. Посмотри пунк 4
uo.useskill("Stealth")
while not uo.injournal('я в стелсе')
wait(100)
wend
...

3)Тут всё зависит от того, что произойдёт после того, как ты используешь этот предмет... я хз что это. Наверное еда, а после приёма еды обычно появляется надпись, поэтому можно замутить так:

Code: Select all

...
uo.deletejournal()
uo.usetype('0x097B')
while not uo.injournal('тут то, что появляется после применения')
wait(100)
wend
...

если же после uo.usetype должен появится прицел, то можно так:

Code: Select all

...
uo.usetype('0x097B')
while not uo.targeting()
wait(100)
wend
...

конечно можно влепить тут и чеклаг, но надо быть осторожным с УНСП.
Вообще, если тебе обязательно нужно, чтобы этот предмет использовался всегда, то используй 1 из трёх вариантов, или комбинируй их. В другом случае прокатит и wait(). Для повышения надёжности, uo.usetype можно захуярить в цикл. Скажем так:

Code: Select all

...
uo.deletejournal()
repeat
i=0
  uo.usetype('0x097B')
  while not uo.injournal('тут то, что появляется после применения') or i<20   #это выход из цыкла по счётчику
    i=i+1
    wait(100)
  wend
until uo.injournal('тут то, что появляется после применения')
...

4)Вообще, команда uo.deletejournal() обнуляет весь журнал, что не всегда хорошо, если используешь сложные условия выхода/входа, или если у тебя несколько скриптов параллельно запущены. Есть такая процедура, которая удаляет из журнала только заданную строку. Вот она:

Code: Select all

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


Еще бывает полезно обнулять журнал в начале каждого скрипта, если это не помешает другим скриптам.
P.S: Да, вообщето есть такая тема, называется Наследство от Edred-а. В ней много полезного.

Еще вопросы :?:
DerMeister сейчас на нейрале!
slonopotam
Posts: 270
Joined: 2006-08-05 14:09:06
Contact:

Post by slonopotam »

Спасибо :D

Да еще есть вопросы.

1) Почему не рекомендуется использовать "left click"?

2) Что надежней "auto menu", или "cancel menu"?

3) В каких случаях необходим именно checklag, а не wait?

4) Как в инжект дабавить шрифты из УО?
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

1) Кто сказал? :shock:

2) Это разные вещи, как лягушка и корова.

3) Еслиб он был необходим, то его бы запихнули в стандартные функции. Я им никогда не пользуюсь. ( у меня коннект хороший, не лагает ;) )

4) Чего-чего? :shock: У тебя проблемы с русскими буквами или ты очём то другом???
DerMeister сейчас на нейрале!
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

DerMeister =) wrote:3) Еслиб он был необходим, то его бы запихнули в стандартные функции. Я им никогда не пользуюсь. ( у меня коннект хороший, не лагает ;) )


Адрес шарда, на котором никогда не бывает сэйвов мира в студию!
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
slonopotam
Posts: 270
Joined: 2006-08-05 14:09:06
Contact:

Post by slonopotam »

DerMeister =) wrote:1) Кто сказал? :shock:

2) Это разные вещи, как лягушка и корова.

3) Еслиб он был необходим, то его бы запихнули в стандартные функции. Я им никогда не пользуюсь. ( у меня коннект хороший, не лагает ;) )

4) Чего-чего? :shock: У тебя проблемы с русскими буквами или ты очём то другом???


1) Много слышал, "нестоит лефт клик использовать, ненадежно".

2) И в чем разница?? :shock:

3) Ну зачемто он нужен же...

4) Прочел недавно топ про шард где журнальные сообщения перевели на русский.
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

1. Ненадежно, так как эти координаты легко могут измениться простым драгом мышки (случайным)

2. automenu - ловушка на выбор меню, cancelmenu - удаляет все ловушки меню из памяти. Ты, наверное, хотел сравнивать с waitmenu... Разница в времени действия. waitmenu - одноразовая ловушка, удаляется после выбора. automenu - постоянно действующая ловушка. Последняя надежнее в скриптах. Ведь если ты в цикле крафтишь что-то и используешь одноразовую ловушку прямо в цикле, в один прекрасный момент у тебя может легко произойти временный сбой (лаг, например, сейв мира и т.д.) и ловушка не сработает. Но в следующем цикле ты в память засовываешь новую! Вот так и до терминэйт клиент недалеко. automenu ты устанавливаешь один раз в начале скрипта до цикла, не забудь в конце скрипта cancelmenu. Но automenu имеет свои ограничения. Я устал излагать, иди в хелп, там все разжевано.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Edred wrote:
DerMeister =) wrote:3) Еслиб он был необходим, то его бы запихнули в стандартные функции. Я им никогда не пользуюсь. ( у меня коннект хороший, не лагает ;) )


Адрес шарда, на котором никогда не бывает сэйвов мира в студию!


Хмм... Этож чё, после каждого действия чеклаг вставлять? Мне казалось, что защита от сейва выглядит немножечко подругому... хотя, вы же не хотите пинжект юзать ;)
DerMeister сейчас на нейрале!
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

DerMeister =) wrote:Хмм... Этож чё, после каждого действия чеклаг вставлять?


После каждого не надо, а после всех перемещений объектов обязательно. И, кстати, пинжект тут тебе ничем не поможет.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
Post Reply