≈сть вопрос?
«айди на форум

ѕоиск:

Denix: русификаци€ Ubuntu и кодеки :: RSS:: —качать книги  олисниченко в PDF

јнгло-русский словарь компьютерных терминов (ƒ.  олисниченко)

A  B  C  D  E  F  G  H  I  K  L  M  N  O  P  Q  R  S  T  V  W  X  Y  Z 

укрпочта отслеживание посылок перевод денег график отключени€ света в  ировограде график отключени€ счета в  иеве график отключени€ света в ќдессе (zip)

 нига ƒ.  олисниченко IRC, IRC-каналы, IRC-боты: как пользоватьс€ и как сделать самому. »збранные технологии »нтернета

6.4. Ќасто€ща€ автоматизаци€ - скрипты

ѕсевдонимы команды и менюшки - это далеко не все! ¬ы даже себе и представить не можете, какие возможности предоставл€ет вам mIRC. ¬ам надоело отвечать посто€нно на одни и те же вопросы? »ли надоело лично здороватьс€ со всеми 100 пользовател€ми вашего канала? “огда можно превратить mIRC в автоответчик!  то-то из пользователей ругаетс€ на вашем канале? “огда его нужно кикнуть. „тобы не делать это вручную, эту задачу можно автоматизировать - тогда mIRC сделает ее за вас. ѕонимаю, что пока у вас собственного канала, но сани нужно готовить летом - в следующей части у вас по€витс€ свой собственный канал, обещаю вам.

6.4.1. »дентификаторы

ѕри написании скриптов вы довольно часто будете использовать всевозможные служебные идентификаторы (имеютс€ в виду служебные переменные и функции - просто в терминологии mIRC они называютс€ идентификаторами), возвращающие служебную информацию: текущее врем€, день недели, ник, канал и т.д.

—лужебна€ переменна€ начинаетс€ символом $, например,

echo $nick

»дентификаторы дл€ работы с датой и временем

$asctime(N,format)

¬озвращает дату и врем€ в указанном формате. ѕервый параметр - это врем€, его можно не указывать, если вам нужна текуща€ дата и врем€. ‘ормат состоит из элементов формата, описанных в таблице 6.1.

“аблица 6.1. Ќекоторые элементы формата

Ёлемент формата

ќписание

yy

√од в двузначном представлении: 06

yyyy

√од в четырехзначном представлении: 2006

m

Ќомер мес€ца без предварительного нул€: 1

mm

Ќомер мес€ца с предварительным нулем: 01

mmm

—окращенное название мес€ца: Jan

mmmm

ѕолное название мес€ца: January

d

Ќомер дн€ недели без предварительного нул€: 2

dd

Ќомер дн€ недели с предварительным нулем: 02

ddd

—окращенное название дн€ недели: Mon

dddd

ѕолное название дн€ недели: Monday

h

„асы без предварительного нул€: 7 (12-часовой формат)

hh

„асы с предварительным нулем: 07 (12-часовой формат)

H

„асы без предварительного нул€: 19 (24-часовой формат)

HH

„асы с предварительным нулем: 19 (24-часовой формат)

m

ћинуты без предварительного нул€: 7

mm

ћинуты с предварительным нулем: 07

s

—екунды без предварительного нул€: 0

ss

—екунды с предварительным нулем: 00

t

¬ывод€тс€ a/p дл€ 12-часового формата времени

tt

¬ывод€тс€ am/pm дл€ 12-часового формата времени

ѕример:

echo $asctime(hh:mm:ss)

echo $ asctime(dd/mm/yyyy HH:mm:ss)

¬ первом случае получим:

04:20:11

¬о втором

03/01/2006 16:20:11

≈сли вам не хочетс€ возитьс€ с форматами, рекомендую использовать следующие три идентификатора:

»дентификаторы дл€ работы с файлами

ѕоначалу набор функций дл€ работы с файлами в скриптинговом €зыке mIRC дл€ мен€ показалс€ чем-то немного диким, но потом € пон€л, насколько гибким может быть ваш mIRC-клиент. ¬ этой книге мы рассмотрим не все функции дл€ работы с файлами - более подробную информацию вы найдете в справочной системе mIRC

$abook(nick,N)

¬озвращает информацию о никах, перечисленных в вашей адресной книге. ƒоступны следующие свойства:

Ќебольшой пример:

; вывести e-mail пользовател€ dhsilabs

echo $abook(dhsilabs).email

$disk(C)

¬озвращает информацию об указанном диске. ƒоступны следующие свойства:

ѕример:

; выведем размер диска C:

echo 1 $disk(c:).size

≈сли указанного диска не существует, функци€ возвращает $false, иначе - $true

$exists(файл/каталог)

¬озвращает $true, если указанный файл или каталог существует, в противном случае будет возвращено значение $false:

if ($exists(c:\boot.ini)==$true) echo exists

else echo not exists

$file(им€ файла)

¬озвращает информацию о файле. ¬ам доступны следующие свойства файла:

¬ыведем размер файла mirc.exe

echo 1 $file(mirc.exe).size

$finddir(dir,wildcard,N,depth, @window | command)

¬ыполн€етс€ поиск каталога в указанном каталоге и его подкаталогах. ѕри этом:

Ќапример:

$finddir(c:\,mirc*,1)

¬озвращает первое попавшеес€ им€ каталога, начинающегос€ на mirc. ¬ качестве последнего параметра (€вл€етс€ необ€зательным) вы можете указать или им€ окна (на что указывает символ @ в начале имени) или произвольную команду, которой будет передан результат поиска. –ассмотрим небольшой пример:

echo 1 $finddir($mircdir,*.*,0,echo $1-)

ƒанна€ команда выведет список всех подкаталогов каталога mIRC.  аталог mIRC содержитс€ в служебной переменной $mircdir.

$findfile(dir,wildcard,N,depth,@window | command)

»спользуетс€ дл€ поиска файлов. Ќазначени€ параметров этой функции аналогичны предыдущей функции. –ассмотрим пару примеров:

$findfile($mircdir,*.exe,1)

ƒанный пример возвращает первый .exe-файл из каталога mIRC. ѕоскольку в этом каталоге файл mirc.exe €вл€етс€ единственным exe-файлом, то, веро€тнее всего, вы и получите его в результате поиска.

echo 1 $findfile($mircdir,*.*,0,echo $1-)

ƒанный пример выводит список всех файлов из каталога mIRC

$isdir(им€_каталога)

‘ункци€ возвращает $true, если указанный каталог существует. ќбратите внимание: если функци€ exists() возвращает $true только в случае существовани€ указанного объекта, то данна€ функци€ возвращает $true, если объект существует и €вл€етс€ каталогом.

$isfile(им€_файла)

¬озвращает $true, если объект существует и €вл€етс€ файлом, в противном случае возвращаетс€ значение $false

$lines(им€_файла)

¬озвращает количество строк в указанном файле. ѕример:

echo 1 $lines(aliases.ini)

$longfn(filename)

¬озвращает "длинную" версию "короткого" (записанного в формате 8+3, в котором 8 символов отводитс€ на им€, а 3 - на расширение) имени файла

$mididir

—одержит им€ каталога, в котором пользователь (то есть вы) хранит звуковые файлы, использующиес€ дл€ звуковых запросов. »зменить данное им€ можно в разделе «вуки, «апросы диалогового окна изменени€ опций.

$mircdir

—одержит им€ каталога, в который была установлена программа mIRC

$mircexe

—одержит полный путь к исполнимому файлу mIRC

$mircini

—одержит полное им€ главного .ini-файла mIRC. ќбычно это mirc.ini.

$read(filename, [ntsw], [matchtext], [N])

‘ункци€ читает строку из текстового файла. ≈сли использовать эту функцию в цикле while, то можно прочитать весь файл - строка за строкой. „аще всего этой функции нужно передать два параметра - им€ файла и номер строки, например:

echo $read(file.txt)

echo $read(file.txt, 5)

ѕервый оператор читает произвольную (случайную) строку из файла file.txt, а второй - п€тую строку.

echo $read(info.txt, s, mirc)

»щет в файле info.txt строку, начинающуюс€ со слова mirc, и выводит ее, если такова€ имеетс€ в файле.

echo $read(help.txt, w,*help*)

»щет в файле help.txt строку, соответствующую шаблону *help*, и выводит ее, если такова€ имеетс€ в файле.

$sdir(каталог,заголовок)

ќтображает диалог выбора каталога. ѕервый параметр задает стартовый каталог, а второй - текст заголовка диалога. ‘ункци€ возвращает им€ выбранного каталога

$sfile(каталог,заголовок,текстOK)

ќтображает диалог выбора файла. ѕервый параметр - это стартовый каталог, второй - текст заголовка диалога, а третий - текст кнопки ќк. ‘ункци€ возвращает им€ выбранного файла. ѕример:

splay $sfile($wavedir,¬ыберите звуковой файл,¬оспроизвести!)

$shortfn(»м€ файла)

¬озвращает "короткую" (в формате 8+3) версию "длинного" имени файла

»дентификаторы дл€ работы с никами

$anick

¬озвращает ваш альтернативный ник

$comchan(ник,N)

¬озвращает имена каналов, на которых вы зарегистрированы

$comchan(nick,0)†††††††††††††††††† возвращает количество общих каналов

$comchan(nick,1)†††††††††††††††††† возвращает им€ первого общего канала

$comchan(nick,1).op††††††††††† возвращает $true, если вы - оператор канала

$chan

¬озвращает канал, на котором вы находитесь в данный момент

$me

¬озвращает ваш текущий ник

$mnick

¬озвращает ваш основной ник

$nick(#канал,N/nick,aohvr,aohvr)

¬озвращает N-ое им€ в списке пользователей указанного канала

Ќапример:

$nick(#RC,0)возвращает количество пользователей, зарегистрированы на канале #RC

$nick(#RC,1)возвращает первый ник на канале #RC

ќба последние параметра €вл€ютс€ необ€зательными. ѕервый определ€ет, о каких никах вы хотите получить информацию, а второй, наоборот, позвол€ет задать спецификатор ников, о которых вы не желаете получать информацию. —пецификаторы ников следующие:

$nick(#RC,1,o)возвращает ник первого оператора на канале #RC

$nick(#RC,0,a,o)возвращает количество всех пользователей, кроме операторов на #RC

»дентификаторы общего назначени€

  идентификаторам общего назначени€ относ€тс€ идентификаторы дл€ работы с текстом и числами.

$abs(N)

¬озвращает абсолютное значение (модуль) числа N.

ѕример:

$abs(5)†† возвращает 5

$abs(-1)возвращает 1

$and(A,B)

¬озвращает результат побитовой операции A and B. –езультат логических операций вычисл€етс€ в соответствии с таблицами истинности дл€ конкретной операции. ќбща€ таблица истинности приведена ниже

“аблица 6.2. Ћогические операции над целыми числами

ќперанд 1

ќперанд 2

not

and

or

xor

1

-

0

-

-

-

0

-

1

-

-

-

0

0

-

0

0

0

0

1

-

0

1

1

1

0

-

0

1

1

1

1

-

1

1

0

≈сли операнд A = 0000 0000 (в двоичном представлении), а B = 1111 1111, то результат A and B будет следующим:

0000 0000

and

1111 1111

---------

0000 0000

√де же примен€ютс€ логические операции? — обычными €зыками программировани€ все €сно - там им можно найти применение. Ќо зачем нужны логические операции в mIRC? ƒл€ шифровани€ данных! — помощью логических операций можно разработать простенький алгоритм шифровани€ данных и использовать его в случае, если SSL-соединение не работает.  онечно, то, что вы сделаете - это не SSL, но все же простое шифрование все же лучше, чем вообще никакое. —отрудники спецслужб расшифруют его за считанные минуты, а вот ваш любопытный коллега может и не додуматьс€, что здесь и к чему.

$asc(C)

¬озвращает ASCII-код символа C

ѕример:

$asc(A)возвращает 65

$asc(*)†† возвращает 42

ASCII-таблица содержит коды 256 символов (0-255). ѕерва€ половина ASCII-таблицы содержит коды так называемых "нижних" символов. ƒанные символы одинаковы дл€ всех IBM-совместимых компьютеров. ј вот набор "верхних" символов сильно зависит от загруженной кодировки: во второй части ASCII-таблицы хран€тс€ символы национальных алфавитов. „тобы не приводить коды символов всех возможных кодировок, мы пойдем по пути минимального сопротивлени€: рассмотрим стандартную ASCII-таблицу и верхние символы кодировки CP1251, котора€ используетс€ в Windows.

“аблица 6.3. "Ќижние" (0-127) символы ASCII-таблицы

 од

—имвол

 од

—имвол

 од

—имвол

 од

—имвол

 од

—имвол

0

NUL

26

SUB

52

4

78

N

104

h

1

«ќЌ

27

ESC

53

5

79

0

105

i

2

STX

28

FS

54

6

80

106

j

3

≈“’

29

GS

55

7

81

Q

107

k

4

EOT

30

RS

56

8

82

R

108

l

5

ENQ

31

US

57

9

83

S

109

m

6

ACK

32

BL

58

:

84

110

n

7

BEL

33

!

59

;

85

U

111

о

8

BS

34

У

60

<

86

V

112

P

9

HT

35

#

61

=

87

W

113

q

10

LF

36

$

62

>

88

х

114

r

11

VT

37

%

63

f

89

Y

115

s

12

FF

38

&

64

@

90

Z

116

t

13

CR

39

'

65

ј

91

[

117

u

14

SO

40

(

66

¬

92

\

118

v

15

SI

41

)

67

93

]

119

w

16

DEL

42

*

68

D

94

^

120

x

17

DC1

43

+

69

95

 _

 

121

y

18

DC2

44

f

70

F

96

'

122

z

19

DC3

45

-

71

G

97

а

123

{

20

DC 4

46

72

Ќ

98

b

124

|

21

NAK

47

/

73

I

99

с

125

}

22

SYN

48

0

74

J

100

d

126

~

23

ETB

49

1

75

 

101

е

127



24

CAN

50

2

76

L

102

f

25

EM

51

3

77

ћ

103

g

—имволы с кодами 0-31 €вл€ютс€ служебными, поэтому вместо их отображени€привод€тс€ их символьные обозначени€.

“аблица 6.4. "¬ерхние" (128-255) символы ANSI-кодировки (Windows)

 од

—имвол

 од

—имвол

 од

—имвол

 од

—имвол

 од

—имвол

128

А

154

š

180

і

206

ќ

232

и

129

Б

155

Ы

181

µ

207

ѕ

233

й

130

В

156

œ

182

ґ

208

234

к

131

Г

157

Э

183

Ј

209

235

л

132

Д

158

Ю

184

Є

210

236

м

133

Е

159

Я

185

є

211

237

н

134

Ж

160

  

186

Ї

212

238

о

135

З

161

°

187

ї

213

239

п

136

И

162

Ґ

188

Љ

214

÷

240

р

137

Й

163

£

189

љ

215

241

с

138

К

164

§

190

Њ

216

Ў

242

т

139

Л

165

191

њ

217

ў

243

у

140

М

166

192

ј

218

Џ

244

ф

141

Н

167

І

193

Ѕ

219

џ

245

х

142

О

168

®

194

¬

220

246

ц

143

П

169

©

195

221

Ё

247

ч

144

Р

170

196

ƒ

222

ё

248

ш

145

С

171

Ђ

197

223

я

249

щ

146

Т

172

ђ

198

224

а

250

ъ

147

У

173

199

«

225

б

251

ы

148

Ф

174

Ѓ

200

»

226

в

252

ь

149

Х

175

ѓ

201

227

г

253

э

150

Ц

176

202

 

228

д

254

ю

151

Ч

177

±

203

Ћ

229

е

255

152

Ш

178

204

ћ

230

ж

153

Щ

179

205

Ќ

231

з

$biton(A,N)

¬ключает бит с номером N в значении A. ѕредположим, что мы передали значение 0. ¬ двоичном представлении это 0000 0000. ≈сли включить первый бит, то получим значение 0000 0001, в дес€тичной системе это будет 1. ≈сли включить второй бит, то получим значение 0000 0010, это будет 2 и т.д. ≈сли вы неуверенно владеете двоичным счислением, рекомендую воспользоватьс€ калькул€тором Windows, предварительно переключив его в инженерный режим.

$bitoff(A,N)

¬ыключает бит с номером N в значении A (устанавливает бит с номером N в 0)

$calc(выражение)

ѕроизводит вычисление выражени€:

$calc(3.14159 * (2 ^ %x % 3) - (7000 / (10000 + 1)))

$chr(N)

¬озвращает символ по его ASCII-коду (N)

ѕример:

$chr(65)возвращает A

$chr(42)возвращает *

$cos(N), $acos(N)

¬ычисл€ет косинус (арккосинус) N.

$count(строка,подстрока,подстрока2,...,подстрокаN)

ѕодсчитывает, сколько раз подстрока встречаетс€ в строке:

$count(hello,el)возвращает 1

$count(hello,l)††† возвращает 2

$encode(%var, mubt, N)

$decode(%var, mubt, N)

 одирует/декодирует текст, заданный переменной %var. “ип кодировани€ устанавливаетс€ вторым параметром:

¬ результате кодировани€ получаютс€ 60-символьные сегменты. ”кажите параметр N, если хотите получить сегмент с номером N. ≈сли N = 0, то функци€ возвращает общее число сегментов в строке.

ƒва последних параметра необ€зательны. ѕо умолчанию используютс€ значени€ u и 1 соответственно.

$int(N)

¬озвращает целую часть вещественного числа без округлени€:

$int(3.14159)возвращает 3

$isbit(A,N)

¬озвращает 1, если N-ый бит в числе A включен (=1)

$islower(текст)

¬озвращает $true, если все символы указанного текста наход€тс€ в нижнем регистре.

$isupper(текст)

¬озвращает $true, если все символы указанного текста наход€тс€ в верхнем регистре.

$left(текст,N)

¬озвращает N "левых" символов текста, например:

$left(goodbye,4)возвращает good

$len(текст)

¬озвращает длину текста

$log(N)

¬ычисл€ет натуральный логарифм числа N

$longip(адрес)

 онвертирует IP-адрес в значени€ типа long (это в обычных нам €зыках, а в mIRC типов нет как таковых) и наоборот

$longip(158.152.50.239)возвращает 2660774639

$longip(2660774639)†††††† возвращает 158.152.50.239

$lower(текст)

ѕреобразует текст в нижний регистр. –аботает только с латинскими буквами:

$lower(HELLO)возвращает hello

$lower(ѕ–»¬≈“)возвращает ѕ–»¬≈“

$mid(текст,S,N)

¬озвращает N символов текста, начина€ с позиции S

$not(A)

¬озвращает результат логической операции NOT над A (см. таб. 6.2)

$or(A,B)

¬озвращает результат логической операции A OR B (см. таб. 6.2)

$pos(текст,строка,N)

¬озвращает позицию строки в тексте. N - это номер символа в тексте, с которого нужно начинать поиск. Ќапример:

$pos(hello there,e,1)возвращает 2

$pos(hello there,e,2) возвращает 9

$pos(hello there,a,1)возвращает $null

$rand(v1,v2)

¬озвращает случайное значение из указанного диапазона, причем диапазон может быть как числовым, так и символьным

$rand(a,z)†† возвращает случайную букву из диапазона a,b,c,...,z

$rand(A,Z)возвращает случайную букву из диапазона A,B,C,...,Z

$rand(0,N)возвращает случайное число из диапазона 0,1,2,...,N

$remove(строка,подстрока,...)

”дал€ет все экземпл€ры подстроки в строке:

$remove(abracadabra,ra) возвращает abcadab

¬ы также можете указать несколько параметров:

$remove(abracadabra,ra,ca) возвращает abdab

$replace(строка,подстрока,нова€ строка)

Ќаходит в строке подстроку и замен€ет ее новой строкой.

$right(текст,N)

¬озвращает N первых символов справа

$right(othello,5)возвращает hello

$round(N,D)

ќкругл€ет вещественное значение N до D разр€дов

$round(3.14159,2)возвращает 3.14

$sin(N), $asin(N)

¬озвращает синус и арксинус N

$sqrt(N)

¬озвращает корень квадратный N

$str(текст,N)

ѕовтор€ет заданный текст N раз

$str(ха,3)возвращает хахаха

$strip(текст)

”дал€ет из текста коды начертани€ (коды жирного, подчеркнутого и курсивного начертани€), а также коды цвета.

$tan(N), $atan(N)

¬ычисл€ет тангенс или арктангенс N

$upper(text)

ѕреобразует текст в верхний регистр. –аботает только с латинскими буквами.

$xor(A,B)

¬озвращает результат логической операции A xor B (см. таб. 6.2)

»дентификаторы дл€ работы со звуком

mIRC умеет не только воспроизводить звуки, он еще предоставл€ет вам возможность самосто€тельно управл€ть воспроизведением с помощью команды /splay

/splay -cwmpq [filename | stop | pause | resume | seek | skip] [pos]

 оманда splay воспроизводит звуковой файл в формате WAV, MIDI или MP3. ‘ормат файла задаетс€ параметрами команды:

ѕараметр -q позвол€ет воспроизводить следующий звук в каталоге после завершени€ воспроизведени€ текущего звука, то есть организуетс€ небольша€ (а у кого и больша€) очередь звуков. ѕараметр -c используетс€ дл€ удалени€ очереди воспроизведени€.

ќпции stop (стоп), pause (пауза), resume (восстановить) позвол€ют управл€ть воспроизведением. Ќапример:

/splay stop†††††† ††††††††††† прекратить воспроизведение

/splay -w stop†††††††††††† прекратить воспроизведение только WAV-файлов

/vol -wmpvuN [громкость]

ѕозвол€ет установить уровень громкости дл€ WAV (опци€ w), MIDI (m) и MP3-файлов (p). ќпци€ -v используетс€ дл€ установки основного уровн€ громкости в вашей системе. ќпци€ -u1 позвол€ет выключить звук, а u2 - снова его включить.

√ромкость - это число в диапазоне от 0 (минимальна€ громкость) до 65535 (максимум).

$vol(wave | midi | song | master)

¬озвращает текущий уровень звука дл€ WAV, MIDI и MP3-файлов, а также основной уровень громкости вашей системе.

$inwave, $inmidi, $insong

¬озвращают $true, если в данный момент воспроизводитс€ звуковой файл соответствующего типа (WAV, MIDI, MP3), $false - в противном случае. ¬ы можете использовать свойство fname, чтобы узнать им€ воспроизводимого в данный момент файла:

$insong.fname††

ћы рассмотрели уже довольно много различных идентификаторов, но могу вас заверить, что мы не рассмотрели и половины предоставл€емых программой mIRC идентификаторов. Ќерассмотренные нами идентификаторы используютс€ дл€ работы с:

Ќо рассмотренного нами необходимого минимума вполне хватит вам на определенное врем€. ј обо всех остальных идентификаторах вы сможете прочитать в разделе Identifiers справочной системы mIRC.

6.4.2. —обыти€ mIRC

¬ нашем мире посто€нно происход€т событи€. Ќет, € не о землетр€сени€х и войнах. ¬озьмем чуть-чуть ниже. ¬ы проснулись утром - это маленькое, но событие. ¬ы пришли на работу - это тоже событие. ¬се, что вы бы не сделали - это событие.

¬ компьютере все как в реальном мире - вы пошевелили мышкой, произошло событие OnMouseMove. ¬ы нажали кнопку на клавиатуре - произошло событие OnKeyPress.

¬ mIRC тоже есть свои событи€. Ќет, это не Windows-событи€, характерные любой Windows-программе. ј событи€, характерные только дл€ IRC-клиента.  ак и в случае с обычной программой, на любое событие вы можете задать реакцию, то есть определить действи€, которые будут выполнены, если произойдет определенное событие. ќбычно эти действи€ оформл€ютс€ в подпрограмму обработки событи€, но у нас все проще - мы просто определим несколько сценариев, реагирующих на то или иное событие. ѕричем дл€ одного и того же событи€ вы можете установить несколько сценариев.

ќсновные событи€ mIRC приведены в таблице 6.5

“аблица 6.5. ќсновные событи€ mIRC

—обытие

 огда происходит

Active

ѕри активации любого окна mIRC

AppActive

ѕриложение mIRC стало активным

Ban/UnBan

 огда пользовател€ (то есть вас) забанили/разбанили

Chat

ѕри получении запроса на DCC-чат

Open/Close

ѕри открытии/закрытии внутреннего окна

Connect

ѕри подключении к IRC-серверу (событие генерируетс€ после отображени€ сообщени€ дн€ - MOTD)

Ctcp

CTCP - Client-To-Cleint-Protocol - ѕротокол ¬заимодействи€ IRC-клиентов. —обытие ctcp позвол€ет реагировать на различные событи€ протокола CTCP

DCCServer

 огда кто-то пытаетс€ подключитьс€ к вашему DCC-серверу

Op/DeOp

 огда вы получили статус оператора/когда у вас забрали статус оператора

Dns

ѕри DNS-запросах, сгенерированных командой /dns

Error

ѕри ошибке со стороны сервера, обычно событие Error означает, что вы скоро будетеотключены от сервера

Exit

ѕри закрытии mIRC

FileSent/FileRCVD

ѕри успешной отправке/получении файла по DCC

SendFail/GetFail

ѕри ошибке отправлени€/получени€ файла по DCC

Input

 огда вы вводите текст в поле ввода и нажимаете Enter

Join/Part

ѕри подсоединении/отсоединении канала

KeyDown/KeyUp

 огда пользователь нажал/отпустил клавишу клавиатуры

Kick

 огда пользовател€ (то есть ¬ас) кикнули с канала

Logon

ѕосле регистрации на IRC-сервере (то есть после отправки IRC-клиентом сообщений PASS, NICK и USER)

MIDIEND/WAVEEND /MP3END

ѕри завершении воспроизведени€ MIDI/WAV/MP3 файла соответственно

Mode

ѕри изменении режима канала командой /mode

Nick

 огда другой пользователь пытаетс€ зан€ть ваш ник, то есть установил ник такой же как у вас и заходит на один с вами канал

Ping

 огда сервер отправл€ет вашему клиенту PING-сообщение

Pong

 огда ваш клиент отвечает серверу и отправл€ет в ответ свой пинг

PlayEnd

«авершено все воспроизведение

Text

 огда вы получаете сообщение (все равно какое - сообщение канала или же приватное сообщение). —обытие Text не распростран€етс€ на сообщени€, отправл€емые вами. Ёто одно из самых важных событий mIRC

Topic

ѕри изменении топика канала

UserMode

ѕри изменении режима пользовател€ командой /mode

¬ы удивлены? ƒолжен отметить, что в таблице приведены далеко не все событи€ mIRC, а только самые основные. Ќо вам не нужно устанавливать реакцию на каждое событие - это лишнее. ћы будем работать только с событие Text, позвол€ющим анализировать полученные от других пользователей сообщени€. »з всех остальных событий рекомендую установить событие DCCServer. Ќо обо всем по пор€дку.

—обытие DCCServer

ƒанное событие происходит, когда кто-то пытаетс€ подключитьс€ к вашему DCC-серверу - обычно дл€ запроса на чат или отправку файла. ћы можем установить обработчик событи€ DCCServer, провер€ющий, какой файл нам хочет отправить пользователь. ≈сли это программа, то наш обработчик завершит передачу файла - ведь в exe-файле может содержатьс€ вирус.  онечно, намного правильнее будет сделать это через настройки самого mIRC - тем более, что в окне опций есть соответствующие дл€ этого средства. Ќо неужели вам не хочетс€ реализовать что-то своими руками? “ем более что это совсем не сложно.

ќткройте редактор скриптов (Alt + R) и введите следующую строку:

on 1:DCCSERVER:Send:if (.exe isin $filename) /halt

ƒанна€ строка означает, что как только произойдет событие DCCServer (on 1:DCCServer), обработчик узнает у сервера, какой именно запрос отправил нашему DCC-серверу удаленный пользователь: запрос на отправку файла (Send) или на чат (Chat). ≈сли на отправку файла (Send), то обработчик проанализирует, есть ли строка .exe в имени файла ($filename). ≈сли да, то передача файла будет остановлена (/halt). ƒл€ тестировани€ этого сценари€ отключите контроль передаваемых файлов в настройках DCC и попросите кого-нибудь отправить вам exe-файл. ≈сли при отправке exe-файла произойдет ошибка, значит, обработчик работает.

—обытие Text. —оздание автоответчика

Ќаписав предыдущий обработчик событи€ (кстати, это наш первый обработчик!), вы должны были дл€ себ€ у€снить, что описание обработчика начинаетс€ со служебного слова on.

ѕеред идентификатором событи€ нужно указать уровень доступа. ”ровень доступа определ€етс€ вами на следующей закладке редактора скриптов - ѕользователи. ¬ы сами можете назначить пользователю определенный уровень доступа. ѕервый уровень (1) доступа используетс€ дл€ всех пользователей, не перечисленных в списке пользователей (на закладке ѕользователи), то есть дл€ тех, дл€ которых €вно не указан уровень доступа. ≈сли вы указали уровень доступа, то данное событие будет обрабатыватьс€ только дл€ пользователей заданного уровн€ доступа.

ѕредположим, у нас есть начало описани€ обработчика событи€ TEXT:

on 1:TEXTЕ

—обытие TEXT, как мы знаем, происходит при получении нами любого сообщени€ (приватного или сообщени€ канала). ѕоскольку мы указали уровень доступа, то это означает, что мы хотим принимать событие TEXT только от пользователей с указанным уровнем доступа. Ќапомню, что уровень доступа 1 используетс€ дл€ всех пользователей, которые не перечислены в списке пользователей на закладке ѕользователи.

≈сли вы хотите определить обработчик событи€ дл€ всех уровней доступа, укажите * вместо уровн€ доступа:

on *:TEXTЕ

“еперь приступим к написанию самого обработчика. ѕредположим, вам надоело здороватьс€ с каждым пользователем. ‘ормат обработчика событи€ TEXT следующий:

on уровень:TEXT:текст:тип:действие

ƒавайте напишем обработчик, автоматически отвечающий на сообщение "ѕривет" от любого пользовател€:

on *:TEXT:привет*:#:/msg $chan –ад теб€ видеть, $nick

ѕроанализируем, что мы написали. ”ровень доступа - *, то есть мы будет отвечать на приветстви€ всех пользователей.

"ѕривет*" - это текст сообщени€ пользовател€. ≈сли в тексте полученного сообщени€ будет слово "ѕривет", причем оно об€зательно должно быть первым в сообщении (перед словом ѕривет "нет звездочки"), то значит, обработчик должен сработать.

ѕосле текста пользовател€ следует параметр “ип, задающий тип сообщений, на которые мы должны реагировать:

ѕример создани€ обработчика, отвечающий только на сообщени€, полученные на определенных каналах (#linux, #unix):

on *:TEXT:hi*:#linux, #unix:/msg $chan hi!

»так, если любой пользователь напишет сообщение канала (это не личное сообщение, адресованное лично вам, а сообщение, доступное всем пользовател€м канала) "ѕривет", то мы отреагируем на него командой:

/msg $chan –ад теб€ видеть, $nick

ћы используем переменные $chan и $nick. ѕерва€ - это им€ текущего канала, а втора€ - ник пользовател€, отправившего вам сообщение.

Ќапомню, что команда /msg используетс€ дл€ отправки личных (приватных) сообщений без открыти€ окна приватного чата. “о есть сообщение "–ад теб€ видеть, <ник пользовател€>" по€витс€ у пользовател€ в общем окне канала, но увидит его только он, а не все пользователи.

≈сли вы хотите, чтобы ваше приветствие увидели все пользователи канала, используйте команду:

/say $chan –ад теб€ видеть, $nick

≈сть и еще одна команда, позвол€юща€ отправить сообщение - это команда /query. ќна отправл€ет пользователю приватное сообщение в новом окне дл€ приватного чата. Ќе следует ее использовать - ведь вам нужно только поздороватьс€. ј с командой /query пользователь может подумать, что вы хотите с ним лично поговорить. ¬ам оно надо? ¬едь пользователь не знает, что вам лень даже ответить ему, и вы написали автоответчик! ѕоэтому предпочтительнее все-таки отправить личное сообщение командой /msg - оно по€витс€ в общем окне канала только у нужного пользовател€, и не будет засор€ть канал приветстви€ми.

“еперь напишем два обработчика событий на получение сообщени€ "ѕривет" - одно при получении личного сообщени€ (?), а другой - при получении сообщени€ канала (#):

on *:TEXT:привет*:?:/msg $chan –ад теб€ видеть, $nick

on *:TEXT:привет*:#:/msg $chan Hi, $nick

ƒл€ тестировани€ обработчика попросите другого пользовател€ с вами поздороватьс€. ¬ ответ он получит сообщение (см. рис. 6.6):

Hi, <ник>

–ис. 6.6. “естируем автоответчик

ћы научили наш mIRC-клиент здороватьс€ с другими пользовател€ми. Ќо вот беда!  аждый пользователь здороваетс€ по-разному.  то-то скажет: "ѕривет", а кто-то "hi". ћожно, конечно, создать обработчик дл€ каждого приветстви€, но это уже не автоматизаци€, а не пон€тно что. ¬едь наша задача автоматизировать процесс, а не делать его вручную, только с помощью компьютера. ƒавайте поступим вот как. —оздадим небольшой файл (hello.txt), в котором перечислим всевозможные формы приветствий, вроде Hi, Hello, ѕривет! и т.д. (по одному в каждой строке). ѕотом напишем небольшой сценарий, сравнивающий полученный текст с каждой строкой файла. ≈сли есть совпадение, значит, нужно поприветствовать пользовател€. «аметьте, вам не нужно будет писать еще один обработчик, если захотите добавить еще одно приветствие. ¬се, что вам нужно будет сделать - отредактировать файл приветстви€.

ќпределим псевдоним дл€ команды ishello. Ќет, не нужно переходить на страничку јлиасы! ѕросто в mIRC дл€ объ€влени€ подпрограммы (то есть функции) используетс€ служебное слово alias. Ќаша функци€ будет читать в цикле while файл hello.txt и сравнивать каждую его строку с полученным сообщением. ≈сли будет найдено совпадение (то есть в сообщении пользовател€ есть приветствие), функци€ возвращает значение $true, в противном случае - $false. –ассмотрим код функции:

alias ishello {

set %i 1

while (%i <= $lines(hello.txt)) {

††† if ($read(hello.txt,%i) isin $1-) {

††††† return $true

††† }

††† inc %i

}

return $false

}

ƒумаю, тут нет ничего сложного: функци€ $lines() возвращает количество строк в файле hello.txt, следовательно, наш цикл будет повтор€тьс€ пока переменна€ %i не достигнет значени€, равного максимальному количеству строк. ‘ункци€ $read() читает из файла hello.txt строку с номером %i, а опетора if сравнивает прочитанную строку с сообщением пользовател€ ($1-).  ак видите ничего сложного.

“еперь напишем сам обработчик:

on *:TEXT:*:#:{

if ($ishello($1-) == $true) {

††† /msg $chan ѕривет!

}

}

ƒанный обработчик будет срабатывать дл€ любого текста (*) и только дл€ сообщений канала (#) - это вы можете исправить, нет в этом ничего страшного. ј команда у нас будет сложной - мы открыли фигурные скобки. ¬ теле обработчика мы вызываем функцию $ishello(). ≈сли возвращаемый ею результат равен $true, значит, мы отправл€ем пользователю сообщение ѕривет!

Ќо и это еще не все. ” нас получаетс€ следующа€ сиутаци€: все пользователи здороваютс€ с вами по-разному, а вы посто€нно и со всеми одинаково - ѕривет. ≈ще могут подумать, что у вас с фантазией не все в пор€дке. ѕоэтому нужно модифицировать наш сценарий так, чтобы он брал случайную строку из файла hello.txt (это файл приветсвий) и отправл€л ее пользователю! » с фантазией теперь будет удобно, и не придетс€ каждому объ€сн€ть, почему вы всегда говорите "ѕривет", как попугай. —разу вас обрадую: вам не нужно переписывать весь код сценари€. ¬ам нужно изменить только одну строку:

††† /msg $chan ѕривет!

нужно заменить строкой:

/msg $chan $read(hello.txt)

‘ункци€ $read(), если не указан номер строки, возвращает случайную строку из заданного файла. –ассмотрим весь код сценари€:

alias ishello {

set %i 1

while (%i <= $lines(hello.txt)) {

††† if ($read(hello.txt,%i) isin $1-) {

††††† return $true

††† }

††† inc %i

}

return false

}

on *:TEXT:*:#:{

if ($ishello($1-) == $true) {

††† /msg $chan $read(hello.txt)

}

}

–ис. 6.7.  од сценари€ в окне редактора скриптов

¬от теперь полный пор€док. Ќо на этом глава не заканчиваетс€. ƒл€ пущего разнообрази€ давайте напишем небольшой сценарий, который в состо€нии кикнуть пользовател€ за нецензурные выражени€. ƒа, пока у вас нет на это прав - вы не оператор, но рано или поздно вы ним станете, и тогда этот сценарий ой как вам пригодитс€!

¬ помощь оператору

 ак и в предыдущем случае создайте файл bad.txt, содержащий эти самые выражени€. ƒумаю, вы найдете, чем заполнить этот файл. ‘ункци€, занимающа€с€ поиском "выражений" будет называтьс€ isbad(), работать она будет также, поэтому ее код как две капли воды похож на код функции ishello:

alias isbad {

set %i 1

while (%i <= $lines(bad.txt)) {

††† if ($read(bad.txt,%i) isin $1-) {

††††† return $true

††† }

††† inc %i

}

return false

}

ј вот обработчик событи€ TEXT несколько изменилс€:

on *:TEXT:*:#:{

if ($isbad($1-) == $true) {

mode $chan +b $address($nick,3)

kick $chan $nick ” нас на канале не ругаютс€!

}

}

„то делает команда kick - €сно. ќна кикает пользовател€, передав ему сообщение "” нас на канале не ругаютс€". ј команда mode - еще страшнее. ќна банит узел пользовател€. ¬се, с данного узла пользователь больше не зайдет на канал! ƒовыражалс€.

ѕока прав оператора у вас нет, поэтому можете использовать "облегченную" версию обработчика:

on *:TEXT:*:#:{

if ($isbad($1-) == $true) {

††† /msg $chan [1]” нас на канале не ругаютс€!

}

}

ƒанный обработчик отправит нарушающему пор€док пользователю предупредительное сообщение. ’от€, если у оператора есть скрипт вроде описанного выше, ваше сообщение мало чем поможет бедному пользователю.  вадратик перед сообщением - признак того, что € нажал Ctrl + B перед сообщением, следовательно, в окне mIRC сообщение будет выделено жирным.

ѕроизводительность mIRC и скрипты

 аждый сценарий, каждый обработчик событи€ требует определенных системных ресурсов. ≈сли у вас определено много обработчиков дл€ самых разных событи€ и/или файлы шаблонов (вроде hello.txt и bad.txt) очень большие, интерпретатор mIRC может значительно подтормаживать работу компьютера, особенно, если он у вас слабенький.

ѕоэтому € рекомендую не увлекатьс€ сценари€ми, иначе удовольствие от чата вы не получите. ѕомните, что событие TEXT будет обрабатыветс€ при получении каждого сообщени€ (а не только дл€ приветствий - ведь мы заранее не знаем, какое сообщение будет приветсвием, а какое - нет), файлы hello.txt и bad.txt будут также просматриваютс€ при каждом сообщении, что может несколько озадачить ваш компьютер.

Ќа главную

ћне нравитс€!

—егодн€: 19/01

ѕоздравл€ть сегодн€ некого

ѕоследние посты форума

»нтересна€ картинка

Samsung Galaxy J2 Prime (SM-G532F)

дааа

ќбучение PHP-программированию

Ќовый дизайн сайта

¬озвращение на динамическую страницу сайта

— Ќовым √одом!

Ѕесплатный хостинг, SSL сертификат, не ограниченно

капец погода в но€бре у нас

ѕосоветуйте хостинг

флэшмобы

вот люди где живут... экстрим

авто-дилеры

ѕрограммы дл€ Linux

книга  омандна€ строка Linux и автоматизаци€ рутинных задач

—овет:

 ниги ƒ.  олисниченко:

Linux

Linux. ќт новичка к профессионалуLinux. ќт новичка к профессионалу
ƒаны ответы на все вопросы, возникающие при работе с Linux: от установки и настройки этой ќ— до настройки сервера на базе Linux. ћатериал книги максимально охватывает все сферы использовани€ Linux                                                                                                         

ѕрограммирование дл€ Android 5. —амоучительѕрограммирование дл€ Android 5. —амоучитель
–ассмотрены все основные аспекты создани€ приложений дл€ платформы Android 5 (API 21): установка необходимого программного обеспечени€ (JDK, Eclipse и Android SDK), использование эмул€тора Android, создание интерфейса пользовател€ и т.д.                                                                

Ubuntu Linux.  раткое руководство пользовател€Ubuntu Linux.  раткое руководство пользовател€
 нига ориентирована на начинающего пользовател€ Ubuntu Linux.  нига устарела, вместо нее издана Ubuntu 10.  раткое руководство пользовател€ (тоже издательство Ѕ’¬)                                                                                                                                          

PHP

PHP 5 в теории и на практикеPHP 5 в теории и на практике
Ёто продолжение —амоучител€ PHP5 с новыми приемами программировани€ на PHP. ќтличный выбор дл€ начинающего PHP-программиста.  нига устарела и не поддерживаетс€.                                                                                                                                            

PHP 5/6 и MySQL 6. –азработка Web-приложений. 2-е издPHP 5/6 и MySQL 6. –азработка Web-приложений. 2-е изд
Ќа практических примерах описана разработка Web-приложений на €зыке PHP версий 5 и 6. Ѕольша€ часть кода примеров совместима с обеими верси€ми PHP, но особое внимание уделено новым функци€м PHP 6. ƒаны начала программировани€ на PHP: установка и наст                                                   

—амоучитель PHP 5.  нига + CD—амоучитель PHP 5.  нига + CD
ƒолгожданное новое издание PHP5 с CD, на котором вы найдете листинги из книги и дополнительное программное обеспечение (Apache, PHP, MySQL, редакторы кода).  нига не поддерживаетс€, устарела                                                                                                               

»нтернет/CMS

»нтернет: от »нтернет: от "чайника" к пользователю, 2 изд. (+¬идеокурс на CD)
 нига предназначена дл€ начинающего пользовател€, поможет ему самосто€тельно освоить основы »нтернета и начать уверенную работу.                                                                                                                                                                            

—амоучитель Joomla!—амоучитель Joomla!
 нига ориентирована как на обычных пользователей »нтернета, которым нужно в кратчайшие сроки построить свой сайт, так и на разработчиков, которые заинтересованы в создании собственных расширений и шаблонов дл€ попул€рной системы управлени€ контентом                                                   

Joomla 1.5. –уководство пользовател€Joomla 1.5. –уководство пользовател€
Ёта книга - простое и эффективное учебное пособие по освоению и использованию системы управлени€ контентом веб-сайта Joomla 1.5.                                                                                                                                                                             

 омпьютер/Windows

 омпьютер. Ѕольшой самоучитель по ремонту, сборке и модернизации омпьютер. Ѕольшой самоучитель по ремонту, сборке и модернизации
Ёта книга - самый полный и, по словам экспертов, "самый полезный" самоучитель по ремонту, модернизации и сборке компьютера своими силами.                                                                                                                                                                    

ѕервые шаги с Windows 7. –уководство дл€ начинающих (+¬идеокурс на CD)ѕервые шаги с Windows 7. –уководство дл€ начинающих (+¬идеокурс на CD)
ѕросто и пон€тно дл€ начинающих пользователей описана операционна€ система Windows 7 и ее новые возможности. –ассказано, как установить Windows 7 (в том числе на нетбук)                                                                                                                                    

Microsoft Windows 8 дл€ пользователейMicrosoft Windows 8 дл€ пользователей
ќписаны нововведени€ Windows 8, особое внимание уделено использованию системы на планшете. –ассмотрена установка системы как на физический компьютер (стационарный, ноутбук, нетбук, планшет)                                                                                                                

—ети

Ѕеспроводна€ сеть дома и в офисеЅеспроводна€ сеть дома и в офисе
 нига поможет начинающему администратору домашней или офисной сети в кратчайшие сроки развернуть, настроить или модернизировать беспроводную сеть. ќтличный выбор дл€ построени€ сети SOHO                                                                                                                   

—делай сам компьютерную сеть. ћонтаж, настройка, обслуживание. »зд. 2.—делай сам компьютерную сеть. ћонтаж, настройка, обслуживание. »зд. 2.
 нига о настройке сети в Windows (98,NT,XP) и Linux. явл€етс€ превосходным практическим руководством по созданию и обслуживанию компьютерных сетей.                                                                                                                                                          

—амоучитель системного администратора. 4-е изд.—амоучитель системного администратора. 4-е изд.
»зложены основные задачи системного администрировани€, описаны базовые протоколы, даны рекомендации по выбору оборудовани€ и проведению ежедневных рутинных операций. ѕодробно раскрыты технологии, используемые при построении информационных систем, опи                                                   

Ѕезопасность

јнонимность и безопасность в »нтернете. ќт јнонимность и безопасность в »нтернете. ќт "чайника" к пользователю
ѕростым и пон€тным €зыком рассказано, как скрыть свое местонахождение и IP-адрес, использу€ анонимные сети Tor и I2P, посетить заблокированные администратором сайты, защитить личную переписку от посторонних глаз                                                                                          

Rootkits под Windows. “еори€ и практика программировани€ Ушапок-невидимокУ, позвол€ющих скрывать от системы данные, процессы, сетевые соединени€.Rootkits под Windows. “еори€ и практика программировани€ Ушапок-невидимокУ, позвол€ющих скрывать от системы данные, процессы, сетевые соединени€.
-                                                                                                                                                                                                                                                                                                            

јвтомобили

„то делать, чтобы не надули в автосервисе. —оветы и рекомендации„то делать, чтобы не надули в автосервисе. —оветы и рекомендации
¬ы недавно приобрели автомобиль или уже имеете водительский стаж, но при этом особо не вникаете в устройство автомобил€?                                                                                                                                                                                     

„то делать, чтобы не надули в автосервисе. —оветы и рекомендации„то делать, чтобы не надули в автосервисе. —оветы и рекомендации
¬ы недавно приобрели автомобиль или уже имеете водительский стаж, но при этом особо не вникаете в устройство автомобил€?                                                                                                                                                                                     

 онтраварийное вождение. —оветы - Best. —оветует и рекомендует президент клуба BMW онтраварийное вождение. —оветы - Best. —оветует и рекомендует президент клуба BMW
÷енность этой книги в том, что впервые советы по контраварийному вождению вам будет давать проверенный профи...                                                                                                                                                                                              

ѕереводные книги

ѕереводные книгиѕереводные книги
ƒанные книги были переведены мною на русский €зык (с английского и чешского). Ќадеюсь качество перевода вам понравитс€!                                                                                                                                                                                      

Android

ѕланшет и смартфон на базе Android дл€ ваших родителейѕланшет и смартфон на базе Android дл€ ваших родителей
 нига рассчитана на людей среднего и старшего возраста. ќна поможет освоить современный Ђкарманный компьютерї на базе Android, в котором все новое и "не так, как в Windows". ƒоступным €зыком описываетс€, как включить и выключить смартфон и т.д.                                                         

ѕланшет и смартфон на базе Android дл€ ваших родителей, 2-е изд.ѕланшет и смартфон на базе Android дл€ ваших родителей, 2-е изд.
 нига знакомит читател€ с мобильными устройствами на базе Android. ќна написана простым и пон€тным €зыком дл€ людей среднего и старшего возраста                                                                                                                                                             

Ѕезопасный Android: защищаем свои деньги и данные от кражиЅезопасный Android: защищаем свои деньги и данные от кражи
–ассмотрены различные способы обеспечени€ безопасности Android-устройств: шифрование персональной информации, хран€щейс€ на устройстве, шифрование передаваемых данных, VPN-соединени€, анонимизаци€ трафика                                                                                             

—татьи

Rambler's Top100