RagBot Forum
 

Вернуться   RagBot Forum > • Всё что касается бота • > Мини ЧАВО

Мини ЧАВО ЧАстозадаваемые ВОпросы. Различные гайды и инструкции. Тут будут ссылки на гайды и интересные топики. Если вы новичок, то сначала вам сюда.

Закрытая тема
 
Опции темы Опции просмотра
Старый 14.02.2007, 01:19   #11
4epT
Админ
 
Аватар для 4epT
 
Регистрация: 10.12.2006
Сообщений: 4,372
Вы сказали Спасибо: 7
Поблагодарили 386 раз(а) в 240 сообщениях
Отправить сообщение для 4epT с помощью ICQ
Восклицание 8. условия

8. Условия

В макросах (например в операторе if) можно использовать следующие условия:

< меньше чем ...
<= меньше либо равно
== равно
> больше чем ...
>= больше или равно
!= не равно
~ содержится (<левая переменная> это элемент <правой переменной>, здесь правая переменная представляет собой лист переменных (см. пункт 6.1)
__________________
¤Config checker¤Руководство¤Файлы¤Конфиги¤Макросы¤
Быстро и качественно напишу конфиг (макрос) за yAD! Стучи!

Последний раз редактировалось 4epT; 14.02.2007 в 01:51.
4epT вне форума  
Старый 14.02.2007, 01:39   #12
4epT
Админ
 
Аватар для 4epT
 
Регистрация: 10.12.2006
Сообщений: 4,372
Вы сказали Спасибо: 7
Поблагодарили 386 раз(а) в 240 сообщениях
Отправить сообщение для 4epT с помощью ICQ
Восклицание 9. специальные операторы

9. Специальные операторы

@npc (<x> <y>)
Показывает ID НПЦ, находящегося на (<x>,<y>), или "-1" если НПЦ не найден.

@inventory (<имя вещи>)
Показывает ID <имя вещи>, находящейся у Вас в инвентаре, или "-1" если такая вещь не найдена.

@Inventory (<имя вещи>)
same as @inventory but returns all matching IDs as a comma-separated list or -1 if the item was not found.
Здесь переводить не стал, т.к. не понял смысла оператора, кто разберётся чем он отличается от "@inventory" поделитесь секретом.

@cart (<имя вещи>)
Показывает ID <имя вещи>, находящейся у Вас в телеге, или "-1" если такая вещь не найдена.

@Cart (<имя вещи>)
same as @cart but returns all matching IDs as a comma-separated list or -1 if the item was not found.

@storage (<имя вещи>)
Показывает ID <имя вещи>, находящейся у Вас в кафре (хранилище), или "-1" если такая вещь не найдена.

@Storage (<имя вещи>)
same as @storage but returns all matching IDs as a comma-separated list or -1 if the item was not found.

@player (<имя игрока>)
Показывает ID <имя игрока>, или "-1" если такой игрок не найден.

@vender (<имя игрока>)
Показывает ID торговца <имя игрока>, который открыл магазин, или "-1" если такой игрок не найден.

@store (<имя вещи>)
Показывает ID <имя вещи> в магазине торговца (тут уже НПЦ, а не человека), или "-1" если такая вещь не найдена.

@random ("<аргумент1>","<аргумент2>", ...)
Показывает случайным образом один из указанных аргументов. Аргументы обязательно писать в кавычках. Несколько аргументов разделяются запятыми.

@rand (<n>, <m>)
Показывает случайное число между <n> и <m> (включительно). Дробные числа округляются до целого значения (3.4 округляется до 3; а 3.5 до 4).

@invamount (<имя вещи>)
Показывает количество данной <имя вещи> в инвентаре.

@cartamount (<имя вещи>)
Показывает количество данной <имя вещи> в телеге.

@shopamount (<имя вещи>)
Показывает количество данной <имя вещи> в Вашем (открытом) магазине.

@storamount (<имя вещи>)
Показывает количество данной <имя вещи> в кафре.

@eval (<аргумент(ы)>)
Оценивает данный аргумент, или несколько аргументов.
Например, если аргумент "$v = 8", то результатом оператора "@eval ($v + 2)" будет число 10.

@arg ("<набор слов>", <n>)
Показывает <n>-ное слово из <набор слов>, или пробел, если <n> больше количества слов в <набор слов>.

@config (<параметр>)
Показывает значение параметра из config.txt.
Например строчка в макросе "log @config (username)" покажет на экране: "[macro][log] <ваш логин>".
__________________
¤Config checker¤Руководство¤Файлы¤Конфиги¤Макросы¤
Быстро и качественно напишу конфиг (макрос) за yAD! Стучи!

Последний раз редактировалось 4epT; 14.02.2007 в 01:53.
4epT вне форума  
Старый 14.02.2007, 01:48   #13
4epT
Админ
 
Аватар для 4epT
 
Регистрация: 10.12.2006
Сообщений: 4,372
Вы сказали Спасибо: 7
Поблагодарили 386 раз(а) в 240 сообщениях
Отправить сообщение для 4epT с помощью ICQ
Восклицание 10. формирование "цепочки команд"

10. Формирование "цепочки команд"

Вы можете запустить последовательность команд (одну за другой), не дожидаясь OpenKore-вского искусственного интеллекта или macro_delay или чего-то ещё. Для этого заключите эти команды в квадратные скобки: [ И ].
Пример, с нумерацией линий:
Код:
0 macro foo {
1  do <команда>
2  log <команда> BbInoLHeHa
3  [
4     do <команда1>
5     do <команда2>
6     log <команда1> u <команда2> BbInoLHeHbI
7  ]
8  log END
9 }
  • Линия 3 запускает "цепочку команд". Эта линия не имеет задержки.
  • Линии 4, 5 и 6 запускаются, как только предыдущая команда закончилась без задержки, и они не могут быть прерваны.
  • Линия 7 останавливает "цепочку команд" и после линии 8 команды пойдут с задержкой $macro_delay <секунд>.
__________________
¤Config checker¤Руководство¤Файлы¤Конфиги¤Макросы¤
Быстро и качественно напишу конфиг (макрос) за yAD! Стучи!

Последний раз редактировалось 4epT; 14.07.2007 в 00:20.
4epT вне форума  
Старый 14.02.2007, 18:23   #14
4epT
Админ
 
Аватар для 4epT
 
Регистрация: 10.12.2006
Сообщений: 4,372
Вы сказали Спасибо: 7
Поблагодарили 386 раз(а) в 240 сообщениях
Отправить сообщение для 4epT с помощью ICQ
Восклицание 11. пример макроса

11. Пример макроса

Код:
macro foo {
 $foobegin = $.pos
 do move 168 128 prt_in
 do talk @npc (172 130)
 do store
 do buy @store (Silver Arrow) 10000
 do move 280 198 prontera
 do talk @npc (282 200)
 do talk cont
 do talk resp 1
 do storage add @inventory (Silver Arrow) @eval (@invamount (Silver Arrow) - 1000)
 do storage close
 do move $foobegin
}
Если Вы находитесь в Пронте и вызовите макрос через команду (в консоле) "macro foo", то произойдёт следующие:
  • переменная "foobegin" принимает значение ваших текущих координат
  • бот идёт в оружейный магазин Пронты "168 128 prt_in"
  • бот заговорит с (кликнет на) НПЦ, находящегося на координатах 172 130
  • нажимает кнопку “buy”, чтобы посмотреть что он продаёт
  • покупает 10,000 Silver Arrow
  • идёт в восточным воротам Пронты на координаты "280 198"
  • разговаривает с кафрой
  • нажимает кнопку продолжить (talk cont)
  • выбирает хранилище (talk resp 1), оно открывается
  • кладёт в хранилище все Silver Arrow, кроме 1000 шт
  • закрывает хранилище (storage close)
  • возвращается на место где он был перед запуском макроса.
__________________
¤Config checker¤Руководство¤Файлы¤Конфиги¤Макросы¤
Быстро и качественно напишу конфиг (макрос) за yAD! Стучи!
4epT вне форума  
Старый 14.02.2007, 19:38   #15
4epT
Админ
 
Аватар для 4epT
 
Регистрация: 10.12.2006
Сообщений: 4,372
Вы сказали Спасибо: 7
Поблагодарили 386 раз(а) в 240 сообщениях
Отправить сообщение для 4epT с помощью ICQ
Восклицание 12. синтаксис автомакроса (часть 1)

12. Синтаксис автомакроса (Часть 1)

Существует 2 схемы автомакроса:

1. Автомакрос, который вызывает отдельный макрос:
Код:
automacro foo {
    <условие> <значение>
    <условие> <значение1>, <значение2>
    call <имя макроса>
}
2. Автомакрос, который содержит в себе тело макроса:
Код:
automacro mi {
   <условие> <значение>
   call {
	do <команда>
	do <команда>
   }
}
Автомакрос - это макрос, который будет запущен тогда когда условия будут соответствовать заданным. (Например Вы настроили чтоб у Вас включался автомакрос при поднятие Jellopy. Допустим Вы убили поринга и из него выпал Jellopy. Если Вы поднимете Jellopy, то Ваш автомакрос запустится).
Далее АМ следует читать как автомакрос.

В тело АМ можно прописать выполнение следующих условий:

map <имя карты>
АМ запустится, когда Вы будете находиться на локации <имя карты>.

location [not] <имя карты> <x1> <y1> [<x2> <y2>] [, ...]
АМ запустится, когда Вы находитесь в (вне (not)) локации <имя карты>.
1. Если координаты <x1> <y1> и <x2> <y2> не заданы, то АМ будет запускаться, как и в случае "map <имя карты>".
2. Если указаны только координаты <x1> <y1>, то АМ запустится, если Вы, находясь на локации <имя карты>, попадёте на координаты <x1> <y1>.
3. Если указаны координаты <x1> <y1> и <x2> <y2>, то АМ запустится, если Вы, находясь на локации <имя карты>, попадёте в мнимый прямоугольник, где <x1> <y1> - верхняя левая точка, а <x2> <y2> - нижняя правая точка.
Код:
<x1> <y1> _______
         |       |
         |       |
         |_______|
                  <x2> <y2>
Отмечу, что "x1" < "x2", а "y1" > "y2".

Отделённые запятыми аргументы определяются как условие OR (или):
Код:
location geffen, prontera 123 234
АМ будет запускаться, если Вы будете находиться в geffen или в prontera на координатах (123 234).

Несколько строк (от двух и более) определяются как условие AND (и):
Код:
location not geffen
location not prontera
АМ будет запускаться, если Вы находитесь вне geffen и вне prontera.

mapchange <имя карты> | any [, ...]
АМ запустится, если Вы текущую локацию поменяли на <имя карты>. Если используется условие "mapchange any", то АМ будет запускаться при любом изменении локакци.
Отделённые запятыми аргументы определяются как условие OR (или).
У кого получится воспользоваться условием "mapchange any", отпишитесь, пожалуйста, а то у меня не получается.

hp <условие> <значение>[%]
АМ запустится, когда ваше HP будет удовлетворять <условие> <значение> (абсолютное значение) или <условие> <значение>% (процент) (относительное значение). Пусть у Вас всего 200 hp и у Вас отняли 40 hp, значит теперь Ваше абсолютное значение 160 hp а относительное 80% hp.
Несколько строк (от двух и более) определяются как условие AND (и).

sp <условие> <значение>[%]
Тоже самое, только по отношению к Вашему SP

spirit <условие> <значение>
АМ запустится, когда число сферок (у монка) будет удовлетворять <условие> <значение>.
Несколько строк (от двух и более) определяются как условие AND (и).

weight <условие> <значение>[%]
АМ запустится, когда Ваш вес будет удовлетворять <условие> <значение> (абсолютное значение) или <условие> <значение>% (процент) (относительное значение).
Несколько строк (от двух и более) определяются как условие AND (и).

cartweight <условие> <значение>[%]
АМ запустится, когда вес Вашей телеги будет удовлетворять <условие> <значение> (абсолютное значение) или <условие> <значение>% (процент) (относительное значение).
Несколько строк (от двух и более) определяются как условие AND (и).

zeny <условие> <значение>
АМ запустится, когда количество денег у Вас будет удовлетворять <условие> <значение>.
Несколько строк (от двух и более) определяются как условие AND (и).

soldout <условие> <количество слотов>
АМ запустится, когда количество проданных слотов в Вашем магазине будет удовлетворять <условие> <количество слотов>.
Несколько строк (от двух и более) определяются как условие AND (и).
Например у Вас в АМ прописано "soldout > 1". Пусть у Вас в магазине продаются 4 элу и 5 ори. АМ сработает тогда, когда у Вас купят все элу или все ори. Если у Вас купят 1 элу, то слот будет считаться не проданным и АМ не сработает.

status [not] <статус> [, ...]
АМ запустится, когда у Вас статус (нет статуса (not)) <статус>.
Отделённые запятыми аргументы определяются как условие OR (или).
Несколько строк (от двух и более) определяются как условие AND (и).

inventory "<имя вещи>" <условие> <значение> [, ...]
АМ запустится, когда количество <имя вещи>, находящейся у Вас в инвентаре будет удовлетворять <условие> <значение>.
Отмечу, что<имя вещи> обязательно нужно писать в ""!
Отделённые запятыми аргументы определяются как условие OR (или).
Несколько строк (от двух и более) определяются как условие AND (и).

cart "<имя вещи>" <условие> <значение> [, ...]
АМ запустится, когда количество <имя вещи>, находящейся у Вас в телеге будет удовлетворять <условие> <значение>.
Отмечу, что<имя вещи> обязательно нужно писать в ""!
Отделённые запятыми аргументы определяются как условие OR (или).
Несколько строк (от двух и более) определяются как условие AND (и).

storage "<имя вещи>" <условие> <значение> [, ...]
АМ запустится, когда количество <имя вещи>, находящейся у Вас в кафре (хранилище) будет удовлетворять <условие> <значение>.
Отмечу, что<имя вещи> обязательно нужно писать в ""!
Отделённые запятыми аргументы определяются как условие OR (или).
Несколько строк (от двух и более) определяются как условие AND (и).

shop "<имя вещи>" <условие> <значение> [, ...]
АМ запустится, когда количество <имя вещи>, находящейся у Вас в магазине (открытом) будет удовлетворять <условие> <значение>.
Отмечу, что <имя вещи> обязательно нужно писать в ""!
Отделённые запятыми аргументы определяются как условие OR (или).
Несколько строк (от двух и более) определяются как условие AND (и).

base <условие> <уровень>
АМ запустится, когда Ваш базовый левл будет удовлетворять <условие> <уровень>.
Несколько строк (от двух и более) определяются как условие AND (и).

job <условие> <уровень>
АМ запустится, когда Ваш джоб левл будет удовлетворять <условие> <уровень>.
Несколько строк (от двух и более) определяются как условие AND (и).

class <профессия>
АМ запустится, если Ваша профессия: <профессия>.

spell <имя скила> [, ...]
АМ запустится, когда на Вас кто-нибудь будет кастовать <имя скила>.
Отделённые запятыми аргументы определяются как условие OR (или).
__________________
¤Config checker¤Руководство¤Файлы¤Конфиги¤Макросы¤
Быстро и качественно напишу конфиг (макрос) за yAD! Стучи!
4epT вне форума  
Старый 15.02.2007, 01:05   #16
4epT
Админ
 
Аватар для 4epT
 
Регистрация: 10.12.2006
Сообщений: 4,372
Вы сказали Спасибо: 7
Поблагодарили 386 раз(а) в 240 сообщениях
Отправить сообщение для 4epT с помощью ICQ
Восклицание 12. синтаксис автомакроса (часть 2)

12. Синтаксис автомакроса (Часть 2)

monster <имя моба> [, ...]
АМ запустится, когда моб <имя моба> находится поблизости (в пределах видимости). Когда макрос вызван устанавливаются специальные переменные $.lastMonster и $.lastMonsterPos.
Отделённые запятыми аргументы определяются как условие OR (или).
Несколько строк (от двух и более) определяются как условие AND (и).

notMonster <список мобов>
АМ запустится, когда моб, находящийся возле Вас (в пределах видимости), не находится в <списке мобов>.
Имена мобов следует писать через запятую, соблюдая РеГиСтР.
Отделённые запятыми аргументы определяются как условие AND (и).

aggressives <условие> <число>
АМ запустится, когда число агрессивных монстров удовлетворяет условию: <условие> <число>.
Несколько строк (от двух и более) определяются как условие AND (и).

player <имя игрока> [, <число клеток>]
АМ запустится, если игрок <имя игрока> находится в пределах видимости или не дальше чем <число клеток>. В качестве имени можно использовать либо строго заданное: "4epT" (пишется в кавычках), либо шаблон: /4epT/ (пишется через слэш). Разничца в том, что на имя 4epTik первое условие не сработает (то что в кавычках), а второе сработает (т.е. слово 4epTik сожершит буквы 4epT)
Несколько строк (от двух и более) определяются как условие AND (и).

equipped [<слот>] <имя вещи> | none [, ...]
АМ запустится, когда <имя вещи> одето. Или не одето (none). Необязательно, но можно использовать <слот> (topHead, midHead, lowHead, leftHand, rightHand, robe, armor, shoes, leftAccessory, rightAccessory и arrow).
Отделённые запятыми аргументы определяются как условие OR (или).
Несколько строк (от двух и более) определяются как условие AND (и).

var <имя переменной> (unset | <условие> <значение>)
АМ запустится, если переменная <имя переменной> unset (не заданна) или удовлетворяет <условие> <значение>.
Несколько строк (от двух и более) определяются как условие AND(и).

varvar <имя вложенной переменной> (unset | <условие> <значение>)
АМ запустится, если вложенная переменная unset (не заданна) или удовлетворяет <условие> <значение>.
Несколько строк (от двух и более) определяются как условие AND(и).

console "<текст>" | /<набор символов>/[i]
АМ запустится, когда в консоле появится <текст> или если в консольном тексте сожержится символ (или слово) из <набор символов>.
<набор символов> нужно разделять знаком "|" (например console /kast|agi|bles/).
Параметр i (следует писать сразу после /<набор символов>/, без пробела) означает что <набор символов> становится нечувствительным к РеГиСтРу.
Устанавливается специальная переменная $.lastLogMsg.

Примеры:
1. Пусть в АМ есть строчка console "You are sitting.". Если в консоле набрать команду "sit", тот бот сядет и напишет "You are sitting." и АМ запустится.
2. Пусть в АМ есть строчка console /You/. Если в консольном тексте содержится слово "You", то АМ будет запускаться. Отмечу, что если бы бот писал "you are sitting.", то АМ бы не запустился.
3. Пусть в АМ есть строчка console /y/i. Если в консольном тексте содержится символ "y" или "Y", то АМ будет запускаться.
Следует различать консольный текст и текст чатов (приват, общий, пати, гилд). Т.е. если Вам в приват напишут сообщение, то оно появится у Вас в консоли, НО для OpenKore это сообщение не консольный текст!

pm ("<текст>" | /<набор символов>/[i]) [<имя игрока>]
АМ запустится, если в приватном сообщении появится <текст> или если полученный текст содержит символ(ы) из <набор символов>. Это условие можно установить для определённого игрока <имя игрока>. Параметр i означает что <набор символов> становится нечувствительным к РеГиСтРу.
Устанавливаются специальные переменные $.lastpm и $.lastpmMsg.

pubm "<текст>" | /<набор символов>/[i] [<число клеток>]
АМ запустится, если в общем чате появится <текст> или если полученный текст содержит символ(ы) из <набор символов>. Это условие можно установить для определённой дистанции (<число клеток>). Параметр i означает что <набор символов> становится нечувствительным к РеГиСтРу.
Устанавливаются специальные переменные $.lastpub и $.lastpubMsg.

party "<текст>" | /<набор символов>/[i]
АМ запустится, если в пати-чате появится <текст> или если полученный текст содержит символ(ы) из <набор символов>. Параметр i означает что <набор символов> становится нечувствительным к РеГиСтРу.
Устанавливаются специальные переменные $.lastparty и $.lastpartyMsg.

guild "<текст>" | /<набор символов>/[i]
АМ запустится, если в гилд-чате появится <текст> или если полученный текст содержит символ(ы) из <набор символов>. Параметр i означает что <набор символов> становится нечувствительным к РеГиСтРу.
Устанавливаются специальные переменные $.lastguild и $.lastguildMsg.

hook <hookname>
triggers when openkore calls <hookname>.
Без понятия что это. Если есть какие-то догадки, то пишите.

saveN <hash key>
(use in combination with hook)
Сохраняет значение <hash key> в переменные от .$hooksave1 до .$hooksaveN.
Без понятия что это. Если есть какие-то догадки, то пишите.

run-once 0 | 1
Если установлена "1", то АМ закроется, пока его не включат (см. команду release). Например, пусть АМ запускается, когда Ваш вес больше "1", т.е. он будет запускаться пока Вы находитесь в игре. OpenKore постоянно будет писать, что АМ запущен. Если Вы в тело АМ добавите строчку "run-once 1" (не важно в начале или в конце), то АМ выполнится 1 раз, после чего он "закроется".

overrideAI 0 | 1
Если установлена "1", то АМ будет игнорировать искусственный интеллект OpenKore. Т.е. АМ не будет использовать паузу при движении (“move”) и при смерти (”status death”).

delay <n>
АМ будет ждать <n> секунд, после чего продолжит свою работу.

timeout <n>
АМ будет ждать по крайней мере <n> секунд после чего перезапустится.
Это пригодится, если необходимо повторять какие-то действия периодически через определённый промежуток времени.

macro_delay <n>
Устанавливает macro_delay (задержку между командами макроса) в <n> секунд, игнорируя значение в файле timeouts.txt.

priority <номер>
Устанавливает приоритет АМ. АМ с меньшим номером запустится раньше. Если приоритет не установлен, то устанавливается "0".

exclusive 0 | 1
Если установлена "1", то этот АМ не может быть прерван другими АМ.

set <переменная> <значение>
Устанавливает <переменной> <значение>.
В одном АМ можно использовать несколько условий "set".

call <имя макроса>
Вызывает макрос <имя макроса>.

call {
<команда>
}

Выполняет <команду>. В одном блоке "call" можно использовать несколько команд.

orphan <метод>
Устанавливает метод для работы с одиночным макросам. См. macro_orphans.
__________________
¤Config checker¤Руководство¤Файлы¤Конфиги¤Макросы¤
Быстро и качественно напишу конфиг (макрос) за yAD! Стучи!

Последний раз редактировалось 4epT; 17.07.2007 в 19:59.
4epT вне форума  
Старый 15.02.2007, 01:07   #17
4epT
Админ
 
Аватар для 4epT
 
Регистрация: 10.12.2006
Сообщений: 4,372
Вы сказали Спасибо: 7
Поблагодарили 386 раз(а) в 240 сообщениях
Отправить сообщение для 4epT с помощью ICQ
Восклицание 13. пример автомакроса

13. Пример автомакроса

Код:
automacro autoloot {
console /You are now in the game/
call {
do c @autoloot 100
}
run-once 1
}
Когда бот подключается к серверу, то отправляет в консоль сообщение "You are now in the game". Условие "console /You are now in the game/" срабатывает и запускается автомакрос, т.е. выполняется команда "do c @autoloot 100" (тоже самое если в клиенте ввести "@autoloot 100"). Команда "@autoloot 100" поддерживается не на всех серверах!
__________________
¤Config checker¤Руководство¤Файлы¤Конфиги¤Макросы¤
Быстро и качественно напишу конфиг (макрос) за yAD! Стучи!
4epT вне форума  
Старый 15.02.2007, 01:11   #18
4epT
Админ
 
Аватар для 4epT
 
Регистрация: 10.12.2006
Сообщений: 4,372
Вы сказали Спасибо: 7
Поблагодарили 386 раз(а) в 240 сообщениях
Отправить сообщение для 4epT с помощью ICQ
Стрелка 14. отладка

14. Отладка[Внимание! Отладка была отключена в версии макро-плагина 2.0.1 (он для OpenKore версии 2.0.0 и выше)]

Отладка реализуется файлом cvsdebug.pm.
Добавьте macro_debug <уровень(ни)> в файл config.txt.
Существует следующие уровни отладки:

variable_trace - прослеживание переменных
command_preparsed - не анализирует командную строку
command_parsed - анализирует командную строку
parser_steps - анализирует шаги
function_call_macro - макро функции (маленький трафик)
function_call_auto - автомакро функции (большой трафик)
automacro_checks - автомакро проверка (большой трафик)
developers - полезные отладочные сообщения
full - полная отладка, все уровни
none - никаких сообщений отладки вообще.

Уровни отладки разделяются символом "|".
Пример:
Код:
macro_debug variable_trace|parser_steps
Чё это за отладка (как ей пользоваться) я так и не понил..
__________________
¤Config checker¤Руководство¤Файлы¤Конфиги¤Макросы¤
Быстро и качественно напишу конфиг (макрос) за yAD! Стучи!

Последний раз редактировалось vitt; 15.06.2008 в 20:06.
4epT вне форума  
Старый 15.02.2007, 01:13   #19
4epT
Админ
 
Аватар для 4epT
 
Регистрация: 10.12.2006
Сообщений: 4,372
Вы сказали Спасибо: 7
Поблагодарили 386 раз(а) в 240 сообщениях
Отправить сообщение для 4epT с помощью ICQ
Восклицание 15. ограничения

15. Ограничения
  • автомакрос проверяет console игнорируя следующие области: macro и cvsdebug.
  • не используйте закрывающие скобки ")" в ключевом слове аргумента, если эта закрывающая скобка не относится к самому аргументу.
Пример:
@random ("foo", "bar", "@eval (4 + 5)", "yatta") - разрешено
@random ("foo", "bar", ":-)", "yatta") - запрещено
__________________
¤Config checker¤Руководство¤Файлы¤Конфиги¤Макросы¤
Быстро и качественно напишу конфиг (макрос) за yAD! Стучи!
4epT вне форума  
Старый 16.04.2007, 23:46   #20
4epT
Админ
 
Аватар для 4epT
 
Регистрация: 10.12.2006
Сообщений: 4,372
Вы сказали Спасибо: 7
Поблагодарили 386 раз(а) в 240 сообщениях
Отправить сообщение для 4epT с помощью ICQ
Восклицание 16. Специальная переменная $.lastMatchN и регулярные выражения (regexp)

16. Специальная переменная $.lastMatchN и регулярные выражения (regexp)

Рассмотрим работу переменной $.lastMatchN на следующем примере:
Допустим мы хотим уходить в хайд, когда вас пытаются азурить. Итак когда на вас используют азуру, то в консоли появляется строчка следующего типа:
Цитата:
Player 4epT (0) is casting Extremity Fist on you (time 920ms)
Азуру наносить на вас может не только игрок 4epT, поэтому чтобы скрываться ото всех арур нужно из этой строчки сделать шаблон.

"Player .* (0) is casting Extremity Fist on you (time 920ms)"
В языке Perl сочетание .* означает - любое число любых символов. Тем самым мы ушли от имени 4epT.

Как вы заметили, после имени игрока в нашем шаблоне находится (0) - это номер игрока (бот сам пронумеровывает игроков, по мере их появления в пределах видимости), т.е. один и тот же игрок в разное время может иметь разный номер. Поэтому этот шаблон не универсален. Он сработает только если игрок под номером 0 будет азурить вас.

В итоге получем шаблон:
"Player .* is casting Extremity Fist on you"
он читается как:
"Player любое кол-во символов is casting Extremity Fist on you"

Вернёмся к нашим яблокам, к специальной переменной $.lastMatchN.
Допустим мы хотим выцепить из этого шаблона имя игрока. Для этого заключим его в скобки:
"Player (.*) \(.*is casting Extremity Fist on you"
Тем самым мы присвоили переменной $.lastMatch1 значение .* (в нашем случае это будет имя игрока)
\( - это означет символ открывающейся скобки.

При составлении шаблонов можно использовать различные метасимволы и модификаторы (типо .*).
Памятка по регулярным выражениям (regexp)
незнаю есть ли смысл передирать её сюда..
__________________
¤Config checker¤Руководство¤Файлы¤Конфиги¤Макросы¤
Быстро и качественно напишу конфиг (макрос) за yAD! Стучи!

Последний раз редактировалось 4epT; 31.05.2007 в 12:59.
4epT вне форума  
Эти 2 пользователя(ей) сказали Спасибо 4epT за это полезное сообщение:
FlashX (24.06.2009), TimoMaas (12.05.2009)
Закрытая тема

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
macro плагин 4epT Новости 7 01.04.2008 12:50
Пращу помощьи с macro-сом TEXAS Макросы и Плагины 11 28.01.2007 09:08


Текущее время: 08:39. Часовой пояс GMT +3.