Вернуться   D3Scene.Ru Софт портал игр | Хаки | Проги | Статьи > Основные игры > WarCraft 3 > WarCraft 3 Боты
Присоединяйся к нам

WarCraft 3 Боты Вопросы и обсуждения ботов.



Закрытая тема
 
Опции темы Опции просмотра
Старый 08.01.2009, 13:13   #1
Бан

 
Аватар для Turоk
 
Регистрация: 18.12.2008
Адрес: Where imagination becomes art
Сообщений: 204
Репутация: 85
Автор Сообщение

StealthBot Custom commands- Руководство по написанию своих кастум комманд


Итак, третья статья из цикла боты от инвиза, посвященная кастом коммандсам. Права и Флаги
У каждого человека входящего на канал есть определенные права и флаги. По умолчанию, у человека, неизвестного боту права 0 и флагов нет. Права ознчают, какие именно и сколько команд вы сможете запустить. Например, стандартная команда pingme требует права 40, и 'левый человек' не сможет использовать эту команду. О флагах мы поговорим потом.
Что за ...?
Custom Commands (Пользовательские Команды) - та фича, которая придала боту столько популярности. В двух словах: CC - система создания новых команд для бота. Давайте разберемся, что из себя представляет команда в Стелсботе.
Рассмотри команду:
4F.Inviz: .pingme
4F.Bot: Your ping at login was 120 ms.
1 блок - Триггер. Помните, мы видели в опциях точку? Да-да, именно. Триггер - знак, с которого начинаются все команды. Он выступает в качестве переменной, так что его можно поменять в любое время. Обычно - точка. В примере отмечен красным - .
2 блок - Имя команды. Это часть команды, которая идет после триггера. Фактически это её идентификатор. Желательно команды называть лаконичными, но в то же время, отражающими свою суть. Яркий пример - .information . Вполне. В примере отмечено зеленым цветом pingme
3 блок - Ответ бота на команду. Самое важное и нужное - что будет делать бот, когда увидит на канале команду? Это и есть ответ бота. На примере отмечен Your ping at login was 120 ms. оранжевым цветом.
4 блок(необязательный) - Переменная. Т.е. значение не постоянное. В данном случае числовое значения пинга в милисекундах. На примере - желтым цветом 120
5 блок(невидимый) - Необходимое (или буквенное значение для флагов) числовое значение, для использования команды.
Итак, давайте посмотрим - Триггер установлен в самом начале в настройках. так? значит при создании оманды он нам не требуется. Далее, смотрим - переменная вовсе не обязательна. Так? да. То есть, чтобы создать команду, нам требуются следующие параметры:
Необходимый доступ, Имя команды, Ответ бота.
Для добавления команд, существует специальный интерфейс - Custom Commands Editor, он вызывается из меню бота. Но мы будем сразу работать как профи , т.е. напряму вводя боту команды с канала. Нам потом еще понадобится это и не раз. Мы будем пользоваться командой .cmdadd - Её синтаксис таков:
.cmdadd Уровень доступа Имя команды Ответ бота.
Давайте попробуем создать простенькое меню информации бота. Прежде всего, давайте создадим инфомрацию о боте. Команда будет называться Бот. На русском. Заходим на канал, пишем:
.cmdadd 0 Бот Наш бот - лучший во всем мире. Правда, он пока еще маленький.
Мы добавили команду с требованиями 0 (каждый может запустить, что как раз для публичного канала).
4F.Inviz: .Бот
4F.Bot: Наш бот - лучший во всем мире. Правда, он пока еще маленький.
Да! Получилось. Первый шаг к умному боту сделан.
Advanced CC
Итак, мы только что научились создавать команды. Но встает другой вопрос, мы создали много команд информационных, но их используют, начинается чрезвычайный флуд. Надо сделать, чтобы ответ отсылался в приват. Как? Легко, для этого существует переменная %0. Она содержит в себе имя запустившего команду. Давайте попробуем.
.cmdadd 0 wisperme /w %0 А-га!!! Я тебя узнал!
окей, мы добавили команду 'wisperme', не требующую доступа, которая при запуске открывает стандартное личное сообщения бнета (/w) и отсылает его запустившему юзеру. Просто? не то слово.
Рассмотрим более интересные переменные - перменные, называемые Аргументами. Этих переменных может быть до девяти (%1 %2 %3 - %9, и они будут содержать информацию, заданную пользователем при запуске.
Зачем это нужно? Давайте рассмотрим пример!
.cmdadd 0 serve /me относит стакан холодного %1 пользователю %2, за счет %0.
Итак, команда serve.
Переменная %1 будет содержать название напитка в родительном падеже.
Переменная %2 - Имя того, кому напиток будет отнесен.
Переменная %0 - имя запустившего.
4F.Inviz: .serve чая Lesnik[Bofs]
4F.Bot относит стакан холодного чая пользователю Lesnik[Bofs] за счет 4F.Inviz.
не очень сложный пример, показывает, что ващи возможности очень велики, даже всего с двумя переменными, доступными в CC. Нужно больше? Тогда нужно использовать Visual Basic Script. О нем в следующей статье .
Вот вам примерчик небольшого меню:
.cmdadd 0 help /w %0 Hello, %0. Need help? Type some of these: .info .clan .chief .site .contacts
.cmdadd 0 info /w %0 I am a bot of a <ваш клан> clan, And this is a help menu. Choose another commands for more info.
.cmdadd 0 clan /w %0 The clan <ваш клан> is one of the best clans in Russia. If u want to join, u must have 15 level and 50% stats.
.cmdadd 0 chief /w %0 Our chief - <Имя вождя> is a great friend, good organizator and just a perfect man to lead us!
.cmdadd 0 site /w %0 U can visit our site - <Адрес сайта>.
.cmdadd 0 contacts /w %0 You can contact us by ICQ - <Номер Аськи>, Mail - <Почтовый ящик>, and @ channel 'clan <ваш клан>'.
Интересности
Мало кто знает, что можно дублировать системные команды с толком. Например все знают о встроенной команде pingme. Она требует доступ 40. Но если добавить Custom Command с таким же именем и доступ 0... то, результат будет таким:
.cmdadd 0 pingme Your ping at login was 10937 ms. Good Luck!
Допустим, у 4F.Inviz - права 40, а у Scorpiо) - права 20. Стандартная команда требует 40 прав, а наша - 0.
4F.Inviz: .pingme //я вызываю команду
4F.Bot: Your ping at login was 102 ms. //Бот говорит правду, т.к. запустилась стандартная команда.
Scorpi: Пинг?
Scorpi: .pingme
4F.Bot: Your ping at login was 10937 ms. Good Luck!
Scorpi: 10937!!! WTF?!
И так делается с любыми командами, например, если сделать шуточную команду .whoami (системная говорит ваш доступ), такой:
.cmdadd 0 whoami U, %0 , Just a little noob of BNet.
То тем, у кого нет прав 40 (стандартная команда требует 40) буду тполучать от бота сообщения о том, что они маленькие нубы. А те у кого есть 40 - бот им будет послушно отвечать, что у них 40 права.
Изменение доступа в командах, вшитых в бота
К сожалению, стандартные команды не появляются в списке команд, так что их на первый взгляд изменить невозможно. Но это на первый взгляд. Есть один параметр, который все же можно отредактировать - изменение доступа на команду. Но немногие даже могу предположить об этом.
Как? Допустим, вы хотите сделать избитую команду pingme, чтобы её смогли использовать все. Как же!?
Заходите в папку со стелсботом. Находите файл access.ini. Открывайте его блокнотом и внизу вписывайте pingme=0 (или другая команда=нужный доступ), сохраняйте, перезапускайте бота, если запущен. Все! готово!
Злоключение
Итак, мы научились создавать команды, узнали что такое доступ, сделали простенькое меню инфомрации и меня доступ на стандартные команды.
Ну вот, третья статья подходит к концу, далее в планах перевести ридми на русский, написать статью о скрипте. Появилось разнообразие, не так ли?
Важное замечание!
В Версии 2.5 Custom Commands работют НЕКОРРЕКТНО! Так что придется использовать скрипты.
  Наверх
Старый 08.01.2009, 22:36   #2
This? On Melancholy Hill




 
Аватар для UnDeaDRoCUser
 
Регистрация: 18.09.2008
Адрес: system32
Сообщений: 5,237
Репутация: 1415
Отправить сообщение для UnDeaDRoCUser с помощью ICQ Отправить сообщение для UnDeaDRoCUser с помощью Skype™
По умолчанию

Почему ты не выложил все статью? а только часть?
__________________
[ [Ссылки скрыты от гостей.] | [Ссылки скрыты от гостей.] | [Ссылки скрыты от гостей.] | [Ссылки скрыты от гостей.] | [Ссылки скрыты от гостей.] | [Ссылки скрыты от гостей.] | [Ссылки скрыты от гостей.] | [Ссылки скрыты от гостей.] | [Ссылки скрыты от гостей.] | ]

[ [Ссылки скрыты от гостей.] ]

  Наверх
Старый 30.01.2009, 07:54   #3
Гость_за_инактив
 
Аватар для BauN
 
Регистрация: 07.12.2008
Адрес: Краснодар
Сообщений: 2
Репутация: 0
Отправить сообщение для BauN с помощью ICQ Отправить сообщение для BauN с помощью Skype™
По умолчанию

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


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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


Powered by vBulletin
Copyright © 2017 vBulletin Solutions, Inc.
Перевод: zCarot | Дизайн: G-A | Верстка: OldEr
Текущее время: 00:53. Часовой пояс GMT +4.