Главная страницаМой профильРегистрацияВыходВход
Пятница
17.5.2024
15:31:44
I welcome you Гость | RSS ВходРегистрацияГлавная страница
Menu of the Site
Categories of the catalogue
Программы [22]
Our Poll
Как Вы оцениваете развитие клана SMKT?
Всего ответов: 141
Chat
Реклама
Last Clan Wars
Начало » Files » Programs for Warcraft 3 » Программы

StealthBot 2.6 rev 5
[ Download from a server (1.04 Mb) ]
Просьба,пройти по данной ссылке- http://smkt-clan.com/forum/31-70-1
или по этой http://smkt-clan.com/forum/31-333-1
тут вы найдёте готового бота с тривией, с установками.

 
4.Новый Бот от Flexx 
http://clan-smkl.ucoz.ru/load/1-1-0-65 ( без тривии)
 
 
 
Настройка бота
Инсталляция и Настройка

Вступление в Статью
Вторая часть из этой серии. Рассказывает об инсталляциии и настройке бота.


Инсталляция
Вы когда нибудь устанавливали WinAMP? Вы видели значит, тот инсталлятор от компании NullSoft. Не хотелось бы думать, что вы не сможете установить бота без меня. Просто кликайте кнопки далее далее далее. Спросит путь - введите путь, куда вы хотите установить бота. В конце концов, вы его установите и все. Никаких проблем с версией, скачанной с официального сайта возникнуть не должно.

Настройка
Запустив StealthBot.exe из папки с ботом, мы видим простенькое окошко. Итак, нам нужно настроить нашего бота. Хотя в стелсботе и присутствует возможность настройки ''пошагово'' для новичков, но мы же собираемся стать госу ботумастерами! Начинаем? Нажмите Ctrl+P (английская) или зайдите в меню Settings => Bot Settings=>Connection Settings=>Configuration.

[sub=Описание настроек]
Далее идут описания опций:

Username:
Тут вы вводите имя своего бота. Если такого имено не зарегестрировано, то оно создается автоматически.

Password:
Пароль для аккаунта бота. Поставьте посложнее, если собираетесь бота делать шаманом.

CD-Key
Ключ от основной игры, которую вы выберите позже. Так же есть встроенная база ключей, которую заполняете вы. Для удобства. Управляется она кнокпками Add Current - Добавить введенный ключ в базу ключей. Manage - расширенное управление ключами.

Expansion CD-Key
Ключ от дополнения. На самом деле это вовсе не обязательно, но если вы не хотите, чтобы у бота было иконка из, скажем, RoC, тогда вводите смело.

Home Channel
Канал, на который будет подсоединяться бот, сразу при подсоединении. Если вы делаете бот для клана, вводите clan <тег вашего клана>. Например clan 4f.

Server
Выбирайте Europe.Battle.Net, если вы собираетесь держать бота на Европе. Если нет - то выбирайте другой, соответственно.

Trigger
Изначально, там стоит точка. Пока что не редактируйте - мы потом вернемся в этому.

Product
Если вы ввели CD-Key для Warcraft III, то выбирайте Warcraft III. И соответственно если для другой игры - выбирайте именно её. Если вы ввели еще и ключ от дополнения - то выберите игру-дополнение.

Итак, основые настройки пройдены.
[/sub]

Идем далее. Выбираем Interface Settings, т.к. в Advanced - настройки типа подключения, а кроме BNLS там ничего не нужно (Local Hashing только для игр ранее WC3)

[sub=Описание настроек]
Единственная опция, которая нам будет полезна - Use UTF-8 for encodingdecoding... Это функция включает кодировку UTF-8, соответственно мы можем видеть русский шрифт в окне бота. А это важно!
[/sub]

Переходим к более интересным настройкам.
Moderation Options
Тут включаются-выключатся функции модерирования ботом канала.

[sub=Описание настроек]
Enable Phrasbanning.
Опция, которую обычно называют просто - Фильтр мата. Когда включенна, можно настроить слова, на которые бот будет реагировать попыткой бана с канала сказавшего это слово.

Enable IPBanning.
Опция, когда включена работает так:
Допустим, у вас на канале сидел человек с ником KOPOBKA. Далее, он начал всех оскорблять и вы его забанили с канала. Он выходит из Battle.net, создает аккаунт заново и заходит под аккаунтом MblLLIKA. Но не тут то было. Он не может зайти, т.к. вы забанили его по IP - Адресу.

Enable ClienBans.
Когда включена, появляется возможность настроить клиенты игры, пользователи которых будут забанены с канала. Например вы выставили Warcraft II: Bnet Edition. И любой кто зайдет через эту игру к вам на канал будет забанен.

Enable Quet-Time.
Буквально переводится, как Время тишины.
Все пользователи, который не занесены в Safelist (о нем позже), попытавшиеся сказать хоть фразу, будут банииться с канала.

Enable Kick-On-Yell
Опция, с помощью которой бот кикает всех, кто ''кричит''. Т.е. пишет более пяти символов большими буквами подряд.

Enable PlugBan
Опция, изза которой банятся все, у кого включен плаг УДП. Просто оставьте отключенной.

Enable Channel Protection.
Банит всех пользователей, пытающихся зайти на канал, которые не занесены в Safelist.

Protection Message
Сообщение, которое будет выводиться забаненному при включенной опциии Channel Protection. Возьмем пример, когда близкие друзья клана и соклановцы обсуждают кланвар. Тогда вы включаете Протекшн и вводите сюда: ''Извините, у нас совещание''. И всех будет банить с этим сообщением. Удобно!

Ban Idle Users
Банить всех, кто неактивен в течении X секунд

Kick Instead of Ban
Кикать, а не банить, в предыдущей опции.

Seconds before Ban
Как раз то самое число Х в секундах.

Ban Warcraft III Peons.
Так называемый Peonban. Банит всех, с иконкой раба.

Levelbans. Levelbans Level, Levelban Message.
Помогает настроить бан пользователей ниже уровня Х. Если вы считаете, что ваш канал для госу, ставьте уровень 200 и никто не сравнится с вашей крутостью :D
[/sub]

Так... Кажется все. Далее - Greet Message Settings.
Тут настраивается сообщение, которым встречает бот всех входящих.

[sub=Описание настроек]
Greet Users Who Join The Channel.
Включает приветствие.

Wisper Greet Message
Заставлет бота писать входящему приветствие личным сообщением.


Длинная строка - место, где вы напишете свое сообщение.
Но прежде хотелось бы отметить систему перменных. переменная введенная в любой части строки, выполнит свою функцию. Итак список:

%c - Канал бота на данный момент
%0 - Имя входящего
%1 - Имя Бота
%p - Пинг входящего
%v - Версия Бота
%a - Доступ к базе (попозже уточним)
%f - Флаги в базе (аналогично)
%t - Время на компьютере, где установлен бот. А не у входящего
%d - Дата на компьютере, где установлен бот. А не у входящего



Пару примеров приветствия:

При установленном Wisper Greet Messages
Hello %0 . Glad to see you in our channel. Your ping is %p . Anything more? Ask our Shamans.

Итак, если зашел игрок с ником KAPA6AC и пингом 100, то сообщение соответственно будет таким:
Hello KAPA6AC . Glad to see you in our channel. Your ping is 100 . Anything more? Ask our Shamans.

Не правда ли просто?
Вот еще один пример, при выключенном Wisper Greet Messages.
/me [ %t :: Event] %0 has joined the channel with ping %p ms.

Это сообщение будет выглядеть так, если в без двадцати десять на канал зайдет apm70 с пингом 74:
[ 21:40:01 :: Event] apm70 has joined the channel with ping 74 ms.

Вот такая система.
[/sub]

В стелсботе есть еще Idle Messages. Это сообщения, которы будут выводиться, когда бот неактивен определенное количество времени. Давайте-ка разберемся.

[sub=Описание настроек]
Idle Messages

Show Idle Messages
Включение их как таковых.

Delay Between Messages:
Время межу сообщениями в минутах. Желательно делать минуты 3-4. Так не будет сильно навязчиво.

Длинная строка - это и есть ваше Idle Message.
И тут так же поддерживаются переменные.

%c - канал, на котором сидит бот.
%mp3 - песня в WinAMP на компьютере, где установлен Бот.
%me - имя бота
%v - Вресия бота
%botup - количество времени, прошедшее с момента включения бота.
%cpuup - количество времени, прошедшее с момента включения компьютера, на котором установлен бот.
%quote - фраза, выбранная случайным образом из сказанных до этого.
%rnd - случайно выбранное имя человека на канале.

Так же доступны три других кнопки - Quote, Uptime, Mp3. Которые выводят цитату, Время в онлайне и песню в Винампе соответственно.

Пару примеров Idle Message''ей.

Хей, %rnd , А я вот тут подумал, я вот уже %botup включен. И я никому не нужен. 3а что? :(
или
/me слушает песню %mp3 . И вам советует послушать! ^^ b

[/sub]

Miscellaneous Settings.
Короче говоря, остальное.

[sub=Описание настроек]
Опять же настройки:

Use ProfileAMP.
Интересная возможность - в профиль бота пишется песня, которая играется в данный момент в Виампе на компьютере владельца бота.

Whisper COmmand Responses.
Если вам нужно, чтобы бот отвечал на команды личным сообщением - то ставьте галку смело

Check User''s mail.
Включает проверку внутренней встроенной почты. Об этом позже.

Ignore Tic-Tac-Toe games
Игнорировать предложения поиграть в Tic-Tac-Toe игры. Не нашел информации об этом. Оставляйте невключенной :).

Disable The User Monitor.
Отключает встроенный Юзер Монитор. И об этом позже.

Enable URL Detection.
В полследней версии бота, при включенной опции, если кто то на канале напишет ссылку вида http://domain.zone то на нее можно будет нажать из окна бота. При отключенной опции - нет.

low .mp3 commands
Отключить команды управления музыкой, такие как .mp3 .play .next .prev , но об этом мы еще расскажем подробнее позже.

Connect on Startup
При включенной опции, бот при включении сразу будет пытаться подсоединиться к серверу.

Minimize on Startup
При включенной опции, бот при включении сразу сворачиваться.

Forward Whispers to
Если боту придет личное сообщение - он его напишет юзеру указанному ниже.

Backup Channel.
Если бота кикнули с какого то канала, он попытается войти на канал указанный ниже.

[/sub]


Кастом Коммандс

Итак, третья статья из цикла боты от инвиза, посвященная кастом коммандсам.

Права и Флаги
У каждого человека входящего на канал есть определенные права и флаги. По умолчанию, у человека, неизвестного боту права 0 и флагов нет. Права ознчают, какие именно и сколько команд вы сможете запустить. Например, стандартная команда pingme требует права 40, и ''левый человек'' не сможет использовать эту команду. О флагах мы поговорим потом.

Что за ...?
Custom Commands (Пользовательские Команды) - та фича, которая придала боту столько популярности. В двух словах: CC - система создания новых команд для бота. Давайте разберемся, что из себя представляет команда в Стелсботе.  (акк пишите в окне слева , в окне посеридине пишите доступ до 1000) Так же доступ можно указать в файле  в папке с ботом users.txt  ( akk продел доступ)

Рассмотри команду:

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. //Бот говорит правду, т.к. запустилась стандартная команда.
Scorpio): Пинг?
Scorpio): .pingme
4F.Bot: Your ping at login was 10937 ms. Good Luck!
Scorpio): 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 работют НЕКОРРЕКТНО! Так что придется использовать скрипты.

Введение
Самые интересные возможности бота, самые ''понтовые'' вещи, которые делаются с помощью ботов, пишутся на VBS.
Я не ошибусь, если назову Бейсик (BASIC - Begginners Allpurpose Symbolic Instruction Code, т.е символический командный универсальный код для начинающего :) самым простым языком программирования. Даже при небольшом опыте, программы можно писать практически не задумываясь. Свою историю этот язык программирования высокого уровня начал в далеком 1963 году. Именно тогда небольшой группой студентов последнего курса Дортмутского колледжа под чутким руководством профессора Дж. Кемени и была разработана самая первая версия этого языка. В то время, помимо Бейсика, широко были распространены также Fortran, Cobol, Algol, PL/1, Focal и Pascal. Из них, до настоящего времени дожили, пожалуй лишь Паскаль и Бейсик, сильно изменившись при этом.

Как это не прискорбно для ярых противников Microsoft, но именно эта компания способствовала широкому распространению Бейсика (вспомним Quick Basic). По моему опыту писать на нем было удобнее, чем на Turbo Basic компании Borland, которая более известна по языку C++. Повсеместная "Виндуализация" PC компьютеров, вынудила к разработке версии Бейсика для Windows приложений. Таким клоном в 1991 году стал Visual Basic, позволяющий визуально создавать прикладные программы, довольно приличного уровня. Но все же, по моему мнению, из за простоты Visual Basic сдает свои позиции тем же Си и Java. С появлением всемирной сети Internet, и языка HTML стало возможным создание активных приложений на веб страницах. Единственным языком для этих целей был Java script. Да, именно был. Когда свет увидел Microsoft Internet Explorer 3.0, в нем, помимо поддержки Java script появилась и поддержка Visual Basic scripting Edition, или просто VBscript. Как известно, Javascript был разработан Netscape и поначалу стал известен как Livescript. После шумихи вокруг Java, Netscape переименовала его в Javascript, когда получила лицензию от Sun. Microsoft самостоятельно разработала Jscript для своего броузера, за что правда тоже не избежала разбирательств с Sun.

Если вы собираетесь кодить скрипты сами, то обязательно прочтите это. Этот справочник требует от вас минимум базовых умений в программровании и понимании понятий, типа переменная, цикл, функция.
[sub="Справочная информация]

Cравнение VBscript и Javascript.

Прежде чем начинать познавать VBscript, давайте сравним две одинаковые, простые программы на JS и VBS. Это будет полезным для тех, кто знает Javascript (к коим я не отношусь:(.
Суть программы: вводим текст в верхнее поле, нажимаем кнопку "Скопировать" и текст копируется в нижнее поле.
Java script VB script


JAVA в Web











pt LANGUAGE="Javascript">

function copyfun()
{
var copytext;
copytext=document.forma.text1.value;
document.forma.text2.value=copytext;
}

pt>











VBS в Web

pt LANGUAGE="VBscript">

sub copyfun

dim copytext
copytext=document.forma.text1.value
document.forma.text2.value=copytext
end sub

pt>


Да, как видно, различий практически нет. JS поддерживает только функции, VBS и функции и процедуры (подпрограммы). Так же следует отметить, что VBS отличие от JS не чувствителен к регистру символов, т.е. для него что copyfun(), что CoPYfuN() - один пес:). Так что можете сделать выводы, тем, кто знает ява скрипт, будет легко освоить VBS, а тем кто не знает пока ни того не другого будет еще легче, поскольку переучиваться не придется. Учиться лучше на примерах, поэтому постараюсь их здесь приводить побольше. Я надеюсь, что Вы хотя бы умеете писать программы на обыкновенном Бейсике (QB или TB)? Тогда эта статья именно для Вас.


[...]

Что такое эти процедуры? Процедура это общее название функций или подпрограмм. Имеет синтаксис:
sub name_событие ....... end sub.
name - это имя процедуры, например мы написали, что кнопка "загадать число" называется "chislo", значит подпрограмма sub chislo_onclick выполнится при нажатии на эту кнопку.
событие - то, что может "случиться" в окне броузера. Например "onclick" означает, что процедура выполнится, при нажатии на кнопку, предварительно заданную в форме (как в нашем случае). Существует несколько видов событий. Из самых распространенных можно отметить: window_onload - запускается при полной загрузке документа:


[...]


Справочная информация. Некоторые операторы и функции.

Чтобы Вам было легче экспериментировать в написании скриптов, приведем основные операторы и функции VBscript. А то начнете писать PRINT "привет" или пытаться закончить цикл For оператором Next x :)
СИНТАКСИС ПРИМЕР ОПИСАНИЕ

Операторы работы с массивами.
Dim имя_массива (индексы) dim a(10),b(20,30) Объявление массива
Erase имя_массива erase a Очистка содержимого массива

Операторы присваивания.
переменная = значение a=137 a=b c="привет" Присваивание
Set переменная = объект set a=document.forma1 Присваивание переменной значени ссылки на объект.

Комментарии.
'' комментарии '' текст
Rem комментарии rem текст

Константы Boolean.
переменная = False if a=false then ... Значение типа boolean равное 0
переменная = True if a=true then ... Значение типа boolean равное -1

Функции.
Abs (число) a = abs(-1.34) ... a=1.34 Абсолютное значение числа
Asc (символ) a = asc("s") ... a=115 ANSI код символа
Chr (число) a = chr(115) ... a="s" Символ соответствующий коду
Fix (число) a = fix(-1.5) ... a=-1 Целое число, округление
Int (число) a = int(-1.5) ... a=-2 Целое число, округление
Hex (число) a = hex(543) ... a="21F" Шестнадцатиричное представление
Oct (число) a = oct(543) ... a="1037" Восьмеричное представление
Sgn (число) a = sgn(-1.3) ... a=-1 Знак числа
Date a = date ... a =

[...]

Операторы используемые в выражениях
Привожу просто список, надеюсь все и так ясно:
+ And / = Eqv ^ > <= Imp <> < => Mod * - Or & Xor

Текстовые Функции
Instr (начало, строка, искомая подстрока) If Instr(1,mail,@) then ... Возвращает номер символа в строке с которого начинается исходная подстрока
Lcase (строка) a=Lcase("ПРивЕТ") ... a="привет" Преобразование символов строки в строчные буквы
Ucase (строка) a=Ucase("ПРивЕТ") ... a="ПРИВЕТ" Преобразование символов строки в заглавные буквы
Left (строка,N символов) a=Left("Привет",3) ... a="При" Левая часть строки длинной N символов
Right (строка,N символов) a=Right("Привет",3) ... a="вет" Правая часть строки длинной N символов
Len (строка) a=Len("Привет") ... a=6 Длина строки
Ltrim (строка) a=Ltrim(" Привет ",) a="Привет " Удаляет начальные пробелы
Rtrim (строка) a=Rtrim(" Привет ",) a=" Привет" Удаляет конечные пробелы
Trim (строка) a=Ttrim(" Привет ",) a="Привет" Удаляет начальные и конечные пробелы
Mid (строка, начало, N символов) a=Mid("Привет",3,2) a="ве" Часть строки с позиции "начало" и длиной N символов
Left(строка,N символов) a=Left("Привет",3) a="При" Левая часть строки длинной N символов
Space (N) a=Space(5) Строка из N пробелов
String (N символов, символ) a=String(5,"A") a="AAAAA" Строка из N символов
Ltrim (строка) a=Ltrim(" Привет ",) a="Привет " Удаляет начальные пробелы

Ветвление и циклы

Вызов подпрограммы

Call имя_событие

...
Выполняет код хотя бы один раз, пока условие не будет истинным

Loop Until условие Do
a=a+1
Loop Until a>=5
Do

...
Выполняет код хотя бы один раз, пока условие справедливо

Loop While условие Do
a=a+1
Loop While a<5
Do Until условие

...
Повторяет выполнение кода, пока условие не станет истинным

Loop Do Until a>=5
a=a+1
Loop
Do While условие

...
Повторяет выполнение кода, пока условие справедливо

Loop Do While a<5
a=a+1
Loop
For счетчик=начало To конец Step шаг

...
Выполнение кода при выполнении условия

next For i=1 to 5
a=a+1
next Цикл
IF условие Then
действие1
Else
действие2
End if IF a>1 Then alert"больше"
Select Case X
Case значение1
действие
Case значение2
действие2

...
Выборочное выполнение кода при совпадении значения

End select Select Case X
Case 10
alert"x=10"
Case 20
alert"x=20"
End select
While условие
действие
Wend While a<5
a=a+1
Wend ''Выполнение кода пока условие истинно

Oбъявление функций и процедур

Dim переменная Dim a Объявление переменной
Sub имя_событие
код
End sub Sub but_onclick
Alert x
End sub Подпрограмма
Function имя(параметры)
код
End function Function(x,y)
x=x*y
End function Функция
Exit ... Exit Do (For, Function, Sub) Досрочный выход

[...]

Основные типы данных VBscript

Наверное, те кто знаком со "старым" бейсиком, еще помнят, что для обозначения символьной переменной надо было писать знак бакса или солнышка (a$="привет"). В VBscript этого делать не следует, он имеет только один тип данных, называемый VARIANT. Он может содержать как символы так и числа разной точности. Поэтому для того, чтобы точно определить тип данных, желательно использовать функции преобразования. К примеру, текст вводимый в поле формы имеет текстовый формат, и попытка сложить цифру "3" с цифрой "2" приведет к результату "32":




sub summa

summatext1=document.formasum.summa1.value

summatext2=document.formasum.summa2.value

alert summatext1+summatext2

end sub



Поэтому надо сделать так, чтобы переменные summatext1 и summatext2 были преобразованы в целые числа функцией Cint(переменная):




sub summa



summatext1=Cint(document.formasum.summa1.value)

summatext2=Cint(document.formasum.summa2.value)

alert summatext1+summatext2



end sub




Подтипы данных VARIANT.
ПОДТИП ФУНКЦИЯ ПРЕОБРАЗОВАНИЯ ОПИСАНИЕ

Epty - Автоматически присваивается новым переменным, когда им еще не присвоено явное значение.
Null - Указывает на то, что переменная не содержит допустимых данных.
Boolean CBool(x) Используется для обозначения логических переменных, принимающих два допустимых значения True или False
Byte CByte(x) Самый короткий тип данных принимающий значение 0..255
Integer CInt(x) Целый тип в пределах -32768 .. 32768
Long CLng(x) Длинный тип целой переменной в пределах -2147483648 .. 2147483647
Single CSngl(x) Тип чисел с плавающей точкой одинарной точности
Double CDbl(x) Тип чисел с плавающей точкой двойной точности
Date/Time CDate(x) Число в формате отображающее время и дату от 1 января 100 года до 31 декабря 9999 года
Currency CCur(x) Специальный числовой формат для денежных величин
String CStr(x) Символьные тип данных
Object - Ссылка на объекты ole, html, ActiveX
Error - Тип данных предназначенный для хранения номеров ошибок

Некоторые правила VBscript

В заключении следует упомянуть некоторые основные приемы при написании кода скрипта.

Если код не умещается в одной строке, то можно использовать символ продолжения строки:



if a=1 and b=2 or c=3 then alert a

можно написать как

if a=1 _

and b=2 _

or c=3 _

then alert a


Для "склеивания" двух численных переменных лучше использовать знак "&" чем "+", т.е. a="при" b="вет" тогда a&b="привет"

[...]
[/SUB]

В любом случае, далее часть обязательна для всех.
Весь скрипт VBS который мы будем писать, содержится в файле script.txt в каталоге с ботом. Откройте его. Что мы видим? С первого взгляда просто некоторое количество бессмысленного кода.

Давайте-ка напишем наш первый код, тем самым пройдя ''крещение огнем'' для бот-скриптеров.

Весь код в script.txt разбит по разным процедурам (Sub''aм). Давайте рассмотрим процедуру

Sub Event_UserTalk(Username, Flags, Message, Ping)

End Sub.


Итак, мы видим, что объявлена процедура Event_UserTalk. В ней объявлены переменные, которые будут использловаться в ней. Это:

Username - Имя пользователя, запустившего скрипт или выполняющего условие.

Flags - Флаги и доступ юзера.

Message Тело сообщения пользователя без имени.

Ping - Пинг юзера.

Процедура UserTalk - это общение в чате BNet''a. т.е. если написать внутри этой процедуры условие, наример, Если кто-то в чате написал "lol", то надо ответить ему "Real lol!", то оно будет работать только, если код написан тут. Немного сумбурно, но вы разберетесь.

Сразу хочу сказать, что мы будем для выведения текста на экран пользоваться функцией ADDQ().


Давайте посмотрим, как ей пользоваться:
...
ADDQ Ping ''Будет выведен пинг
ADDQ Username ''Имя пользователя
ADDQ "Hello World" ''Строку
...

Так. Но это более или менее просто. Сейчас нам требуются сведения из справочного материала.

Давайте создадим условие, на основе которого будет проводиться та самая проверка того, что написал юзер на канале.

Итак, мы хотим следующее:


Если бот слышит "lol", то
Он пишет "Real lol!"
И затыкается :)


Синтаксис првоерки условия не будет незнакомым, любому программисту.
Операторных скобок не существует как факт, каждый If заканчивается End If''ом.
Давайте выполним задачу

If lcase(Message)="lol" Then
ADDQ "Real lol!"
End If

Lcase, как сказано в спрваочном материале, делает все заглавные буквы маленькими, чтобы не было различий между lol и LoL или LOL.


3rror: Hi there
mOp-Z1gorro: Hi manag
4F.Inviz: hey u guys lol
''Тут срабатывает проверка бота, и он делает то, что мы ему сказали.
4F.Bot: Real lol!


Вот так будет действовать бот, если код написан в Usertalk''e.

В окончание статьи, я напишу что каждая процедура делает.

Sub Event_UserTalk(Username, Flags, Message, Ping) - Общение на канале, и в личное сообщение, но не работает, если пишут через /emote

Event_WhisperFromUser(Username, Flags, Message) - Срабатывает только тогда, когда бот получает личное сообщение

Sub Event_UserEmote(Username, Flags, Message) - когда юзер пишет через /emote

Sub Event_ServerError(Message) - когда бот получает ошибку из Battle.net
(когда текст красным цветом, например, если юзер не найден)

Sub Event_ServerInfo(Message) - когда бот получает сообщение от сервера Battle.net (когда текст синим цветом, например, когда BNet говорит, что юзер на каком-то канале)

Sub Event_UserJoins(Username, Flags, Message, Ping, Product, Level, OriginalStatstring) - когда юзер входит на канал (аналог Greet Message)

Sub Event_UserLeaves(Username, Flags) - когда юзер уходит с канала

Sub Event_FlagUpdate(Username, NewFlags, Ping) - обновление статуса игрока. Например, если его банят с канала

Sub Event_LoggedOn(Username, Product) - Когда бот залогинился на BNet''e

Sub Event_UserInChannel(Username, Flags, Message, Ping, Product) - выполняется один раз с каждым юзером сидящим на канале

Sub scTimer_Timer() - выполняется каждые X милисекунд.

Sub Event_PressedEnter(Text) - срабатывает каждый раз, перед тем, как владелец бота написал в окне бота и нажал Enter.

Sub Event_Close() - срабатывает перед тем, как бот отключается.

Category: Программы | Has added: MechTa
Viewings: 2941 | Loadings: 659 | Comments: 22 | Rating: 3.0 |

Всего комментариев: 171 2 »
17 mechta  
0
В данный момент бот от января) Там же, на форуме.

16 MrRuman  
0
surprised РЕСПЕКТ ТЕБЕ ИРА!!! :)) tongue

15 MechTa  
0
Флексбот не адаптирован под вар нормально. Нужно качать нормального бота и фиксить его. Всё на форуме в теме бот- бот от декабря 2006

14 SomiK  
0
Kak FelixBot`am KIckat Rygaus4iH matami ??

13 pOvod  
0
wacko Вот это подвиг все это написать я лучше сам разберусь как все настроить чем это прочту

12 Саша  
0
sad Как сделать так чтоб бот сам прал народ в клан!!!????

11 MechTa  
0
Омг, ну дык на форуме вопросы и фсё, атвечу. Проблем то нет. Заодно и другие прочитав вопросы и ответы буду знать.

10 Саша  
0
Бля пока прочетаеш голову быстрей сломаеш)) bash

9 Dark-AngeL.  
0
ХуММ изклана CLAN PLAN!!!! smile GOOD PLAN biggrin

8 MechTa  
0
Хум, ты хум из NWRS?? )))

1-10 11-17
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
The form of an enter
Our Partners
    Russian Warcraft League
%IF()%
Реклама

Copyright Clan SMKT © 2006 - 2007
Используются технологии uCoz