[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » IRC » mIRC скриптинг » Библиотеки Алиасов
Библиотеки Алиасов
[StingeR]Дата: Среда, 09 Марта 11, 18:06:51 | Сообщение # 1
Почетный флудер
Группа: Главные Администраторы
Сообщений: 775
Статус: Offline

Тема взята с http://forum.bestirc.ru/index.php?showtopic=287 , за что им большое спасибо :)

Как говориться зачем изобретать каждый раз велосипед?

$rduration(N) Возвращает секунды в русском формате сек./мин./день....

Code
alias rduration { return $replace($duration($1),secs,сек.,sec,сек.,mins,мин.,min,мин.,hrs,час.,hr,час.,day,день,days,дней,wk,неделя,wks,недель) }

Пример: $rduration(6000) вернет 1час. 49мин.

---
$rdata(d/m) Вернет месяц или день недели в русском формате:

Code
alias rdata {
    if ($1 == m) return $replace($date(mmmm),January,Января,December,Декабря,November,Ноября,October,Октября,February,Февраля,March,Марта,April,Апреля,May,Мая,June, Июня,July,Июля,August,Августа,September,Сентября)
    if ($1 == d) return $replace($date(dddd),Sunday,Воскресенье,Monday,Понедельник,Tuesday,Вторник,Wednesday,Среда,Thursday,Четверг,Friday,Пятница,Saturday,Суббота)  
}

Пример: $rdata(d) $date(dd) $rdata(m) вернет Субота 29 Августа

---
$rstr(string,N) Бегущая строка для динамических приложений

Code
alias rstr {   return  $mid($1,$2,$calc($len($1) - $2 + 1)) $mid($1,1,$calc($2 - 1)) }

Пример: $rstr(test sword,2) вернет est sword t
--
$convert.size(N) Вернет байты в байты/килобайты/мегабайты/гигобайты
Code
alias convert.size {
   if ($1 == 0) { return --- }
   elseif ($1 < 1024) { return $1 $+ б }
   elseif ($1 > 1024)  && ($1 < 1048576) { return $round($calc($1 / 1024),2) $+ Кб }
   elseif ($1 > 1048576) && ($1 < 1073741824) { return $round($calc($1 / 1048576),2) $+ Мб }  
   else { return $round($calc($1 / 1073741824),2) $+ Гб }
}

Пример: $convert.size(2845563) вернет 2.71Мб

---

$find.ip.chan(N) Ищет на текущем канале указанный IP адрес и возвращает найденные ник/и. В противном случае вернет $false

Code
alias find.ip.chan {
   var %i 1,%ip *!*@ $+  $1 | /who #
   while (%i <= $nick(#,0)) {  if ($address($nick(#,%i),2) == %ip) {  var %fnick = %fnick $nick(#,%i)  } | inc %i 1  }
   if (%fnick) {  return %fnick $+  ( $+ $1 $+ ) }
   else {  return $false  }
}

Пример: $find.ip.chan(10.10.10.10) вернет ник с текущим адресом или $false, если такого адреса нет на канале.
---
$leap.year(year) Определения високосного года.

Code
alias leap.year {  if ($calc($abs($calc($1 - 2000)) % 4) == 0) { return $true } |  return $false }

Пример: $leap.year(2008) вернет $true
---
$translit(string) Автоперевод строки при неправильной раскладке.

Code
translit {
   if (f isin $1- || j isin $1- || t isin $1- || z isin $1- || e isin $1- || b isin $1- ) { return  $replace($1-,q,й,w,ц,e,у,r,к,t,е,y,н,u,г,i,ш,o,щ,p,з,[,х,],ъ,a,ф,s,ы,d,в,f,а,g,п,h,р,j,о,k,л,l,д,;,ж,$chr(39),э,z,я,x,ч,c,с,v,м,b,и,n,т,m,ь,$chr(44),б,.,ю, ,ё,/,.,&,?)  }
   else {  return $replace($1-,й,q,ц,w,у,e,к,r,е,t,н,y,г,u,ш,i,щ,o,з,p,х,[,ъ,],ф,a,ы,s,в,d,а,f,п,g,р,h,о,j,л,k,д,l,ж,;,э,$chr(39),я,z,ч,x,с,c,м,v,и,b,т,n,ь,m,б,$chr(44),ю,.,ё, ,.,/)  }
}

Пример: $translit(ghjdthrf) вернет проверка
Примечание: Чувствительный к регистру
---
$massive(name,N/-ipo[N],value,...value) Примитивные массивы и работа с ним. (возможно упрощенная(?) работа с токенами.)
Примечание: массив создаёся переменной и выглядит как %value,value....value.
Свойства:
.num число элементов в массиве.
.add Добавить элемент в массив
-i - перезаписать N элемент массива
.rem Удалить элемент из массива
-i -удалить N элемент массива.
-o -Все значения равные value
и т.п. (лень писать)
Взможности: поиск, перезапись,возвращения элемента.

.find
.repl.
.wild

Code
massive {
   if ($1 == $null) { halt }
   if  ($prop == num) { return $numtok(% [ $+ [ $1 ]  ],44) }  
   elseif ($2 == $null) { halt }
   elseif ($prop == add) {  
     if ($3 == -i) && ($4 isnum) {   set % [ $+ [ $1 ]  ]  $instok(% [ $+ [ $1 ]  ],$2,$4,44)  }
     else { set % [ $+ [ $1 ]  ]   $iif(% [ $+ [ $1 ] ],% [ $+ [ $1 ] ] $+ $chr(44),% [ $+ [ $1 ] ])  $+ $2  }
   }
   elseif ($prop == rem) {   
     if ($2 == -i) && ($3 isnum) && ($3 <= $numtok( % [ $+ [ $1 ]  ],44)) { set % [ $+ [ $1 ]  ] $deltok(% [ $+ [ $1 ]  ],$3,44) }    
     elseif ($2 == -o) {  
       if ($matchtok(% [ $+ [ $1 ]  ],$3,0,44) >= 2) {  while ($matchtok(% [ $+ [ $1 ]  ],$3,0,44)) {   set % [ $+ [ $1 ]  ] $remtok(% [ $+ [ $1 ]  ],$3,44) } }  
       else { set % [ $+ [ $1 ]  ] $remtok(% [ $+ [ $1 ]  ],$3,44) }
     }
     elseif ($left($2,2) == -p) && ($remove($2,-p) isnum) { set % [ $+ [ $1 ]  ] $remtok(% [ $+ [ $1 ]  ],$3,$remove($2,-p),44)  }
   }
   elseif ($prop == find) {
     if ($left($2,1) == -p) && ($remove($2,p) isnum) { return $findtok(% [ $+ [ $1 ]  ],$3,$remove($2,-p),44) }
     elseif ($2 == -o) { return $findtok(% [ $+ [ $1 ]  ],$3,0,44) }
     else { return $findtok(% [ $+ [ $1 ]  ],$2,1,44) }
   }
   elseif ($prop == repl) {  
     if ($2 == -p) && ($3 isnum) { set % [ $+ [ $1 ]  ] $puttok(% [ $+ [ $1 ]  ],$4,$3,44) }   
     elseif ($2 == -o) { if ($matchtok(% [ $+ [ $1 ]  ],$3,0,44) >= 2) {  var %i 1 | while ($matchtok(% [ $+ [ $1 ]  ],$3,0,44)) {   set % [ $+ [ $1 ]  ] $reptok(% [ $+ [ $1 ]  ],$3,$4,1,44) | inc %i 1  } }   }
     else {  set % [ $+ [ $1 ]  ] $reptok(% [ $+ [ $1 ]  ],$2,$3,1,44) }  
   }  
   elseif ($prop == wild) {  
     if ($2 == -l)  { var %i 4 | while ($0 >= %i) {  if ($3 == $gettok(% [ $+ [ $1 ]  ],$ [ $+ [ %i ] ],44)) {  inc %i 1 } | else {  return $false | halt }   } | return $true }
     else { var %i 3 | while ($0 >= %i) {  if ($gettok(% [ $+ [ $1 ]  ],$2,44) == $gettok(% [ $+ [ $1 ]  ],$ [ $+ [ %i ] ],44)) {  inc %i 1 } | else {  return $false | halt }   } | return $true }
   }
   else {
     if ($2 == -i) { return $findtok(% [ $+ [ $1 ]  ],$3,1,44) }  
     else { return  $gettok(% [ $+ [ $1 ]  ],$2,44) }
   }   
}

$parse(string) Вернет строку с подкрашеными красным латинскими буквами(удобно, когда русские буквы подменяют латинскими)

Code
parse {
   var %i = 1, %j = $1-, %x
   while (%i <= $len(%j)) {
     if $asc($mid(%j,%i,1)) < 192 { %x = %x $+ 4 $+ $mid(%j,%i,1) $+  }
     else { %x = %x $+ $mid(%j,%i,1) }
     inc %i
   }
   return %x
}

Пример: $parse(тecт стpoки) вернет тecт стpoки

--
$urlencode(string) Вернет строку, закодированую аля url

Code
urlencode {
   var %i = 0, %r  
   while (%i < $len($1-)) {
     inc %i
     %r = %r $+ $chr(37) $+ $base($asc($mid($1-,%i,1)),10,16,2)
   }
   return %r
}

Пример: $urlencode(здесь был я) вернет %E7%E4%E5%F1%FC%20%E1%FB%EB%20%FF

--
$nicks(channel) Вернет все ники канала channel (p.s. вы должны быть на этом канале)

Code
nicks {
   var %i = 1, %nicks, %chan = $1  
   while (%i <= $nick(%chan,0)) {
     %nicks = %nicks $nick(%chan,%i)
     inc %i
   }
   return %nicks
}

Пример: $nicks(#bestirc) вернет ServBot IRCBot yXo Иста`aw _derox`off... и т.д.



"Не популярность ирц падает а народ тупеет. большинство просто дебилы и дауны даже ебоаську не могут настроить. а там всё просто как для дебилов. а мирку настроить не могут даже большинство тех кто в ирц тусуются. юзают ебоскрипты от криворуких для ламеров. см. челябу. там все на переделанных мирках сидят. классической миркой пользуются уже единицы из-за того что её надо настраивать.
про другие ирц клиенты вобще молчу.
скайп и майл агент вобще говно для даунов. там даже кнопки разноцветные чтоб на уровне животного инстинкта могли реагировать что красную нажимать надо с опаской а зелёную жмакать можна многа." (с) E}|{uk

 
[StingeR]Дата: Среда, 09 Марта 11, 18:15:04 | Сообщение # 2
Почетный флудер
Группа: Главные Администраторы
Сообщений: 775
Статус: Offline

Иногда когда ведтся БД в ини файлах, приходиться удалять/менять/добавлять секции
$fpitch(path,id) Возвращает первый отстутствующую секцию
Code
alias fptch {
   var %i 1,%li $ini($1,0)
   while (%li >= %i) {
     var %top $ini($1,$2 $+ %i)
     if (%top == $null || %top == 0 ) {  var %f %i  }
     inc %i 1
   }
   if (!%f) {  var %f %i }
   return  $2 $+ %f
}

Пример:
[num1]
1=value
[num2]
1=value
[num4]
1=value
$fptch(C:/Base.ini,num) вернет отсутствующий num3, если "дыр" нету вернет num5
---
$proc(N,N2) Вернет N2 процента от N
Code
alias proc { return $calc($1 * $2 / 100) }

Пример: $proc(100,10) вернет 10
---
$calc_ch(path,секция,строка,число,опертор) Берет из ини файла число, производит математическую операцию оператором с числом, записывает обратно в ини файл и возвращает полученное число.

Code
alias calc_ch { var %i $readini $1 $2 $3,%i $calc(%i $5 $4) | writeini  $1 $2 $3 %i | return %i }

Пример применения: Существует ини файл с базой ников на канале. Ведется статисктика кол-ва сообщений ника.
$calc_ch(C:/Base.ini,$nick,msg,$len($-),+) вернет сумму.

---
WriteRegKey ключ тип значение - установка значения ключу реестра

Code
alias WriteRegKey {
   var %type, %ret
   .comopen Reg WScript.Shell
   %type = $iif($2 isin REG_BINARY REG_DWORD, int, bstr)
   %ret = $com(Reg, RegWrite, 3, bstr, $1, %type, $3-, bstr, $2)
   .comclose Reg
   return %ret
}

Пример: WriteRegKey HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\1250 REG_SZ c_1251.nls

***

$ReadRegKey(ключ) - возвращает значение ключа реестра

Code
alias ReadRegKey {
   .comopen Reg WScript.Shell
   .echo -q $com(Reg, RegRead, 3, bstr, $1-)
   var %ret = $com(Reg).Result
   .comclose Reg
   return %ret
}

Пример: echo -a $ReadRegKey(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\1250)

***

$GetEnvVar(переменная без %) - возвращает значение системной переменной

Code
alias GetEnvVar {
   .comopen Env WScript.Shell
   var %ret = $com(Env, ExpandEnvironmentStrings, 3, bstr, $+(%, $1, %))
   %ret = $com(Env).Result
   .comclose Env
   return $iif(%ret != $+(%, $1, %), $ifmatch)
}

Пример: echo -a $GetEnvVar(SYSTEMROOT)

---

Небольшая корректировака алиаса.
$fpitch(path,id) Возвращает отстутствующий/последний топик в инифайле.

Code
alias  fptch { var %i 1,%li $ini($1,0) | while (%li >= %i) {  var %top $ini($1,$2 $+ %i) |  if (%top == $null || %top ==  0 ) {  return $2 $+ %i } |  inc %i 1  } | return  $2 $+ %i }

$fpitch(path,id,item) аналогично, но работает с items.

Code
alias  fptchi { var %i 1,%li $ini($1,$2,0) | while (%li >= %i) { var %top $ini($1,$2,$3 $+ %i) | if (%top == $null || %top ==  0 ) {  return $3 $+ %i } | inc %i 1  } | return  $3 $+ %i }

---
$rustime(secs) Вернет дни/часы/минуты/секунды. Аналогично $duration.

Code
alias rustime {
   var %i $1
   :next
   if ($calc(%i / 86400) >= 1) { var %form %form $int($calc(%i / 86400)) дн.,%i $calc(%i % 86400) | $iif(%i != 0,goto next) }
   elseif ($calc(%i / 3600) >= 1 && $calc(%i / 86400) < 1) { var %form %form $int($calc(%i / 3600)) час.,%i $calc(%i % 3600) | $iif(%i != 0,goto next) }
   elseif ($calc(%i / 60) >= 1 && $calc(%i / 3600) < 1) { var %form  %form $int($calc(%i / 60)) мин.,%i $calc(%i % 60) | $iif(%i != 0,goto next) }
   elseif ($calc(%i / 60) < 1) { var %form %form %i сек. }
   return %form
}

---

алиас удаления папки полностью, не пустой с файлами авось сгодится, стырено с neora.ru

Code
removedir {  
   var %toremove = $$1-  
   if (: !isin %toremove) { %toremove = $mircdir $+ %toremove }  
   write -c removedir.bat rmdir /q/s %toremove  
   run -n removedir.bat  
   while ($isdir(%toremove)) { }  
}

оттудаже , тоже ,

Code
alias remover var %mrbopp_delpath = Путь_к_Папке | if ($findfile(%mrbopp_delpath,*.*,0) > 0) { var %mrbopp_delfile = 1 | while (%mrbopp_delfile <= $findfile(%mrbopp_delpath,*.*,0)) { .remove " $+ $findfile(%mrbopp_delpath,*.*,%mrbopp_delfile) $+ " | .timer -m 1 150 inc %mrbopp_delfile } } | var %x = $finddir(%mrbopp_delpath,*,0) | while (%x > 0) { .rmdir " $+ $finddir(%mrbopp_delpath,*,%x) $+ " | dec %x } | .rmdir %mrbopp_delpath

Внимание! Код скрипта написан в 1 строку.

---
$gen.rev(text) - вернет перевернутую строку задом наперед

Code
alias gen.rev { var %i $len($1) | :next | var %result %result $+ $mid($1,$+ %i,1) | if (%i > 1) {  dec %i 1 | goto next } | return %result }

Пример: $gen.rev(super test) вернет tset repus
---
$gen.anag(text) - создает случайную анаграмму из слова test

Code
alias gen.anag {
   if ($len($1) <= 3) { return error }
   :begin
   var %i 1
   while (%i <= $len($1)) {
     :next
     var %rnd $rand(1,$len($1)) | if ($findtok(%token,%rnd,0,44) > 0) { goto next } | var %result %result $+ $mid($1,$+ %rnd,1),%token $addtok(%token,$+ %rnd,44)
     inc %i 1
   }
   if (%result == $1) { unset %token %rnd  | goto begin }
   return %result
}

Пример: $gen.anag(Poltergeist) вернет варианты: rsetteioPgl/regtPteoisl/ePeisltrtgo/...

пишет таблицу символов в файл (некоторые символы, типа скобок не хотят через $asc выдавать свой аски код)
/symtable outfile
Код

Code
/symtable {
   var %i = 1
   while (%i <= 256) {
     write $1 %i $+ $chr(9) $+ $chr(%i)
     inc %i
   }
}

кикает по маске
/wmkick *neora*
Код

Code
/wmkick {
   var %i = 1
   while (%i <= $nick(#,0)) {
     if ($1 iswm $address($nick(#,%i),5)) kick # $nick(#,%i) Gotcha !
     inc %i
   }
}

заходит на лист каналов (иногда забываю на каких каналах сидел, ищу в логах свой последний хуиз и дергаю оттуда каналы)
/massjoin #chan1 #chan2
Код

Code
/massjoin {
   var %i = 1
   while (%i <= $numtok($1-,32)) {
     join $remove($gettok($1-,%i,32),+,@)
     inc %i
   }
}

генератор паролей (старенький, я тогда еще хреново кодил)
$passgen(method:a,symbols,loweng:1/0,bigeng:1/0,numbers:1/0,lowrus:1/0,bigrus:1/0)
$passgen(method:b,slogi)
$passgen(a,12,1,1,1) returns 0q1vtVZEftLB
$passgen(b,4) returns japemuqo (ja-pe-mu-qo)
Код

Code
/passgen {
   if ($1 == a) {   
     var %symbols = $null
     if ($3 == 1) var %symbols = %symbols $+ abcdefghijklmnopqrstuvwxyz
     if ($4 == 1) var %symbols = %symbols $+ ABCDEFGHIJKLMNOPQRSTUVWXYZ
     if ($5 == 1) var %symbols = %symbols $+ 012345678901234567890123456789
     if ($6 == 1) var %symbols = %symbols $+ абвгдежзийклмнопрстуфхцчшщъыьэюя
     if ($7 == 1) var %symbols = %symbols $+ АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
     var %i = 1
     while (%i <= $2) {
       var %toreturn = %toreturn $+ $mid(%symbols,$rand(1,$len(%symbols)),1)
       inc %i
     }
     return %toreturn
   }
   if ($1 == b) {
     var %glasnie = aeiouy
     var %soglasnie = bcdfghjklmnpqrstvwxz
     var %i = 1
     while (%i <= $2) {
       var %toreturn = %toreturn $+ $mid(%soglasnie,$rand(1,$len(%soglasnie)),1) $+ $mid(%glasnie,$rand(1,$len(%glasnie)),1)
       inc %i
     }
     return %toreturn ( $+ $slogi(%toreturn) $+ )
   }
}

Code
/slogi {
   var %i = 1
   while (%i <= $len($1)) {
     var %toreturn = %toreturn $+ - $+ $mid($1,%i,2)
     inc %i 2
   }
   return $mid(%toreturn,2,$len(%toreturn))
}

раскраска скобок, тоже старый но рабочий, лучше использовать с текстовым эвентом на боте
Код

Code
/colorer {
   var %i = 1
   var %color = 07
   var %text = $strip($replace($1-,$chr(32),$chr(0160)))
   var %toreturn =  $+ %color
   while (%i <= $len(%text)) {
     if (($mid(%text,%i,1) == $chr(40)) || ($mid(%text,%i,1) == $chr(91)) || ($mid(%text,%i,1) == $chr(123))) {
       inc %color
       var %toreturn = %toreturn $+  $+ %color
     }
     var %toreturn = %toreturn $+ $mid(%text,%i,1)
     if (($mid(%text,%i,1) == $chr(41)) || ($mid(%text,%i,1) == $chr(93)) || ($mid(%text,%i,1) == $chr(125))) {
       dec %color
       var %toreturn = %toreturn $+  $+ %color
     }
     inc %i
   }
   return %toreturn
}

градиентер, лучше тоже использовать на боте с текстовым эвентом
$gradient(color codes)
$gradient(0 15 14 1) вернет прикольный градиент от белого к черному
Код

Code
/gradient {
   var %output = $null
   var %colors = $1-
   var %amount = $numtok(%colors,32)
   var %pre = $+($chr(3),$gettok(%colors,2,32),$chr(44),$gettok(%colors,1,32),$chr(37))
   var %end = $+($chr(3),$gettok(%colors,$calc(%amount - 1),32),$chr(44),$gettok(%colors,%amount,32),$chr(37))
   var %i = 2
   while (%i <= $calc(%amount - 1)) {
     var %output = $+(%output,$chr(3),$gettok(%colors,$calc(%i - 1),32),$chr(44),$gettok(%colors,$calc(%i),32),$chr(37),$chr(3),$gettok(%colors,$calc(%i + 1),32),$chr(44),$gettok(%colors,$calc(%i),32),$chr(37))
     inc %i
   }
   var %output = $+(%pre,%output,%end)
   return %output
}



"Не популярность ирц падает а народ тупеет. большинство просто дебилы и дауны даже ебоаську не могут настроить. а там всё просто как для дебилов. а мирку настроить не могут даже большинство тех кто в ирц тусуются. юзают ебоскрипты от криворуких для ламеров. см. челябу. там все на переделанных мирках сидят. классической миркой пользуются уже единицы из-за того что её надо настраивать.
про другие ирц клиенты вобще молчу.
скайп и майл агент вобще говно для даунов. там даже кнопки разноцветные чтоб на уровне животного инстинкта могли реагировать что красную нажимать надо с опаской а зелёную жмакать можна многа." (с) E}|{uk

 
[StingeR]Дата: Среда, 09 Марта 11, 18:20:34 | Сообщение # 3
Почетный флудер
Группа: Главные Администраторы
Сообщений: 775
Статус: Offline

$in_r(string,substring) проверяет - буквы из substring входят в состав string, вернет $true или $false
Т.е. из слова "гастроном" можно составить - гном, астроном и т.п.
Код
Code
alias in_r {
   var %t1 $in_tokenize($1)
   var %t2 $in_tokenize($2)
   var %i 1,%l $numtok(%t2,32)
   while (%i <= %l) {
     var %id $gettok(%t2,$+ %i,32)
     if ($istok(%t1,$+ %id,32)) { var %t1 $remtok(%t1,$+ %id,32) }
     else { return $false }
     inc %i 1
   }
   return $true
}
alias -l in_tokenize {
   var %i 1,%l $len($1)
   while (%i <= %l) {
     var %result $instok(%result,$mid($1,$+ %i,1),$+ %i,32)
     inc %i 1
   }
   return %result
}

Пример: $in_r(гастроном,гном) - вернет $true, а $in_r(гастроном,геном) вернет $false

Code
ch_compare {
   var %o_l = $len($1)
   var %c_l = $len($2)
   var %o = $1
   var %c = $2
   var %i = 1
   if ($1 == $null) || ($2 == $null) { echo -ag Синтаксис: /ch_compare slovo1 slovo2 | halt }
   if (%o_l == %c_l) {
     while (%i <= %o_l) {
       if ($mid(%o,%i,1) != $mid(%c,%i,1)) { var %c_out = %c_out $+($chr(91),%i,$chr(58),$mid(%c,%i,1),$chr(58),$asc3($mid(%c,%i,1)),$chr(93)) }
       inc %i
     }
     if (%c_out == $null) { echo -ag Полное совпадение. }
     else { echo -ag Отличающиеся символы [номер:символ:код]: %c_out | halt }
   }
   if (%o_l < %c_l) {
     while (%i <= %o_l) {
       if ($mid(%o,%i,1) != $mid(%c,%i,1)) { var %c_out = %c_out $+($chr(91),%i,$chr(58),$mid(%c,%i,1),$chr(58),$asc3($mid(%c,%i,1)),$chr(93)) }
       inc %i
     }
     echo -ag Отличающиеся символы [номер:символ:код]: %c_out * Лишние символы в слове2: $+($chr(91),$right($2,$calc($len($2)-$len($1))),$chr(58),$asc3($right($2,$calc($len($2)-$len($1)))),$chr(93))
     halt
   }
   if (%o_l > %c_l) {
     while (%i <= %c_l) {
       if ($mid(%o,%i,1) != $mid(%c,%i,1)) { var %c_out = %c_out $+($chr(91),%i,$chr(58),$mid(%c,%i,1),$chr(58),$asc3($mid(%c,%i,1)),$chr(93)) }
       inc %i
     }
     echo -ag Отличающиеся символы [номер:символ:код]: %c_out * Лишние символы в слове1: $+($chr(91),$right($1,$calc($len($1)-$len($2))),$chr(58),$asc3($right($1,$calc($len($1)-$len($2)))),$chr(93))
     halt
   }
}

Позволяет сравнить два, не первый взгляд похожие слова. Например: Test и Тest (во втором слове буква "Т" русская). Делимитором является пробел (/ch_compare Test и Тest).
Формат выходных данных безусловно можно изменить.

$gen.password(Len,nsu) - генератор паролей, где Len - длина пароля, n - числа, s - маленьки буквы, u - большие буквы
Код

Code
alias gen.password {
   if (!$1 || $1 !isnum) { halt }
   var %i 1,%k,%return
   while (%i <= $1) { var %k $gen.sw($gen._sw($2)),%return %return $+ %k  | inc %i 1 }
   return %return
}
alias -l gen.sw {
   if ($1 == 1) { return $rand(0,9) }
   if ($1 == 2) { return $rand(a,z) }
   if ($1 == 3) { return $rand(A,Z) }
}
alias -l gen._sw {
   var %rt 0
   if (!$1) { var %rt $rand(1,3) }
   if (n isin $1) { var %rt 1 }
   if (s isin $1) { var %rt $rand($iif(%rt,%rt,2),2) }
   if (u isin $1) {
     var %rt $rand($iif(%rt,%rt,3),3)
     if (s !isin $1 && %rt == 2) { inc %rt 1 }
   }
   if (!%rt) { return $rand(1,3) }
   return %rt
}

Сюдаже:
Утилитка для генерации паролей.
Код

Code
alias -l drun { if ($dialog($1)) { dialog -v $1 } | else { dialog -ma $1 $1 } }
alias -l m.style { return $1 }
menu channel,status,menubar {
   $m.style(Инструменты)
   .Генератор паролей:gen.pass.run
}
alias -l gen.pass.run { drun gen.pass }
dialog gen.pass {
   title "Генератор паролей"
   size -1 -1 116 80
   option dbu
   box "Установки", 1, 1 1 115 50
   edit "", 2, 5 10 25 10
   text " Длина пароля (символов) ", 3, 35 10 68 8
   check "Использовать цифры", 4, 5 20 100 10
   check "Использовать нижний регистр", 5, 5 30 100 10
   check "Использовать верхний регистр", 6, 5 40 100 10
   box "Генератор", 7, 1 51 115 35
   edit "", 8, 5 60 105 10, center read
   button "Генерировать", 9, 5 70 105 10, disable
}
on *:dialog:gen.pass:*:*: {
   if ($devent == sclick) {
     if ($did == 4 || $did == 5 || $did == 6) {
       if ($did(4).state == 0 && $did(5).state == 0 && $did(6).state == 0) || (!$did(2)) { did -b $dname 9 }
       else { did -e $dname 9 }
     }
     if ($did == 9) {
       var %e
       if ($did(4).state == 1) { var %e n }
       if ($did(5).state == 1) { var %e %e $+ s }
       if ($did(6).state == 1) { var %e %e $+ u }
       did -o $dname 8 1 $gen.password($did(2).text,$+ %e)
     }
   }
   if ($devent == edit && $did == 2) {
     if ($did(2).text !isnum && $did(2)) { var %e $input(Введите только целое положительно число без пробелов!,odauh,Ошибка.) | did -r $dname 2 | halt }
     if ($did(4).state == 0 && $did(5).state == 0 && $did(6).state == 0) || (!$did(2)) { did -b $dname 9 }
     else { did -e $dname 9 }
   }
}
; =====
alias gen.password {
   if (!$1 || $1 !isnum) { halt }
   var %i 1,%k,%return
   while (%i <= $1) { var %k $gen.sw($gen._sw($2)),%return %return $+ %k  | inc %i 1 }
   return %return
}
alias -l gen.sw {
   if ($1 == 1) { return $rand(0,9) }
   if ($1 == 2) { return $rand(a,z) }
   if ($1 == 3) { return $rand(A,Z) }
}
alias -l gen._sw {
   var %rt 0
   if (!$1) { var %rt $rand(1,3) }
   if (n isin $1) { var %rt 1 }
   if (s isin $1) { var %rt $rand($iif(%rt,%rt,2),2) }
   if (u isin $1) {
     var %rt $rand($iif(%rt,%rt,3),3)
     if (s !isin $1 && %rt == 2) { inc %rt 1 }
   }
   if (!%rt) { return $rand(1,3) }
   return %rt
}



"Не популярность ирц падает а народ тупеет. большинство просто дебилы и дауны даже ебоаську не могут настроить. а там всё просто как для дебилов. а мирку настроить не могут даже большинство тех кто в ирц тусуются. юзают ебоскрипты от криворуких для ламеров. см. челябу. там все на переделанных мирках сидят. классической миркой пользуются уже единицы из-за того что её надо настраивать.
про другие ирц клиенты вобще молчу.
скайп и майл агент вобще говно для даунов. там даже кнопки разноцветные чтоб на уровне животного инстинкта могли реагировать что красную нажимать надо с опаской а зелёную жмакать можна многа." (с) E}|{uk

 
Форум » IRC » mIRC скриптинг » Библиотеки Алиасов
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024Хостинг от uCoz