EpicNet.Ru - Форум IRC Чата

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » EpicNet.Ru - Форум IRC Чата » DEVELOPMENT - Разработка новых mIRC скриптов » Скрипт для изменения стиля слов


Скрипт для изменения стиля слов

Сообщений 1 страница 4 из 4

1

Сценарий, который я сделал, повторяется дважды в комнате, а он не должен повторяться. Когда я набираю Heineken, он должен отображаться зеленым, но не повторяться дважды в комнате. Что я делаю не так?

Код:
On *:Input:*: {
  ;===[ words


  var %heineken = 0,3 heineken 
  var %cafe = 0 $+ $chr(44) $+ 5 cafe 
  var %hiphop =  13 $+ $chr(44) $+ 6 HipHop 
  var %Buenosdias = 3Buenos dias 

  ;===[ symbols 

  var %t1 = :)
  var %t2 = 4:)
  var %t3 = ^^
  var %t4 = 7^^
  var %t5 = -.-
  var %t6 = 6 -.-   

  If ($left($1,1) != /) && (!$Ctrlenter) { msg $active $replace($1-,heineken,%heineken,cafe,%cafe,hiphop,%hiphop,Buenos dias,%buenosdias,!,7!,?,4?,%t1,%t2,%t3,%t4,%t5,%t6) | halt }
}

Также было бы здорово добавить диалоговое окно для вставки измененных слов.

Код:
dialog new_table {
  title "Word changes"
  size -1 -1 300 130
  option dbu
  edit "", 1, 6 18 65 13
  button "add word", 2, 75 18 37 12
  list 3, 117 18 59 110, size
  edit "", 4, 183 18 62 13
  button "change word", 5, 249 18 37 12
  button "close", 6, 255 111 37 12
}

Отредактировано nexuxirc (07.03.2022 14:35)

2

Я заметил, что есть два сценария, которые используют вход. А это сценарий

Код:

on *:input:#: {
  if ($left($1,1) != $chr(47)) {
    var %acro 1
    var %text $1-
    while (%acro <= $numtok(%text,32)) {
      if ($gettok(%text,%acro,32) ison $chan) { 
        var %nick = $nick($chan,$nick($chan,$ifmatch))
      var %text = $replace(%text,%nick,$+(,%nc1,%nick,%nc2 $+ ,)) }
      inc %acro
    }
    say %text
    halt
  }
}

dialog completion {
  title "Completion"
  size -1 -1 83 30
  option dbu
  edit %nc1, 1, 2 3 27 10, autohs
  edit "Nick", 2, 28 3 27 10, read center
  edit %nc2, 3, 54 3 27 10, return
  button "Apply", 4, 2 15 39 12, flat ok
  button "Cancel", 5, 41 15 39 12, flat cancel
  box "", 6, 1 -1 81 15
  box "", 7, 0 -2 83 32
  box "", 8, 1 11 81 18
}

alias nc { dialog -m completion completion }

on *:dialog:completion:sclick:4: {
  set %nc1 $did(1).text 
  set %nc2 $did(3).text
}

Поэтому моя идея состоит в том, чтобы объединить два варианта: один, изменяющий параметры завершения ника, и другой, изменяющий параметры слова.
Я пытался это сделать, но ничего не получается.

Я бы хотел сделать их обе отдельными, чтобы у каждой был свой сценарий. Но если это невозможно сделать, сделайте это за один раз.

Я хотел бы изменить стили ника и слов также в одном скрипте.

3

1323,358 написал(а):

Я хотел бы изменить стили ника и слов также в одном скрипте.

Я решил создать собственный, новый вариант скрипта, на основе вашей идеи.

[indent=0.8,0.5] https://i.ibb.co/FnfxxtN/Change-Words-Style.jpg

Попробуйте использовать этот скрипт:

Код:
#####################################################################
#   Название: Change Words Style v1.0
#   Автор: Epic (epicnet@mail.ru, http://epicnet.ru, irc.epicnet.ru:6667 #Code)
#   Описание: Изменяет внешнее оформление слов в тексте, которые были определены в диалоговом окне настроек.
#####################################################################

menu menubar,channel,query {
  Change Words Style: cws
}
on *:INPUT:*:{
  if ($left($1,1) != /) && (!$ctrlenter) {
    var %repnicks $1- | var %i 1 | while (%i <= $0) {
      var %w $remove($gettok($1-,%i,32),$chr(44),$chr(46),?,!)
      if (%w ison $chan) %repnicks = $replace(%repnicks,%w,$+(%cws_nc1,%w,%cws_nc2)) | inc %i
    }
    var %repwords %repnicks | var %l $lines(%cws_words) | var %i 1 | while (%i <= %l) {
      var %srt $read(%cws_words,%i) | var %w1 $gettok(%srt,1,10132) | var %w2 $gettok(%srt,2,10132)
      if ($+(*,%w1,*) iswm %repnicks) %repwords = $replace(%repwords,%w1,%w2) | inc %i
    }
    if (%repwords !isin $1-) { say %repwords | halt }
  }
}
---------------------------------------------------------------------
alias cws { %cws_words = $scriptdir $+ words.txt | if ($dialog(cws)) .dialog -x cws | .dialog -m cws cws }
dialog cws {
  title "Change Words Style"
  size -1 -1 350 340
  option pixels
  icon $mircexe,59
  ;------------
  edit %cws_nc1, 1, 73 28 67 20, autohs
  edit %cws_nc2, 2, 210 28 67 20, autohs
  text "+  Nick  +", 3, 145 31 60 20, center
  box "", 4, 145 22 60 26
  box "", 5, 10 5 330 60
  ;------------
  box "", 10, 10 70 330 230
  text "Word:", 11, 39 88 90 15
  text "New style:", 12, 195 88 90 15
  edit "", 13, 37 103 120 20, autohs
  edit "", 14, 193 103 120 20, autohs
  box "", 15, 160 97 30 26
  text "➔", 16, 160 106 30 20, center
  list 20, 37 135 210 148, extsel
  button "Add", 21, 256 170 63 23, flat
  button "Edit", 22, 256 200 63 23, flat
  button "Del", 23, 256 230 63 23, flat
  ;------------
  button "Apply", 100, 100 309 75 23, flat ok
  button "Cancel", 101, 182 309 75 23, flat cancel
}
on *:DIALOG:cws:init:0: var %i 1 | while (%i <= $lines(%cws_words)) { .did -a cws 20 $read(%cws_words,%i) | inc %i }
on *:DIALOG:cws:dclick:20:{
  var %ws $did($dname,20,1).seltext | .did -i $dname 13 1 $gettok(%ws,1,10132) | .did -i $dname 14 1 $gettok(%ws,2,10132)
}
on *:DIALOG:cws:sclick:21:{
  if ($did(13).text && $did(14).text) {
    var %wt $did(13).text ➔ $did(14).text
    if (!$read(%cws_words,wn,%wt)) { .did -i $dname 20 1 %wt | .write -il1 %cws_words %wt | echo -a 03This has been saved: %wt }
    else { var %r $readn | .did -c $dname 20 %r | echo -a 04This set of words is already in the line: $+([,%r,]) }
  } | else echo -a 04Please fill in two fields to save the words.
}
on *:DIALOG:cws:sclick:22:{
  var %wl $did($dname,20,1).sel
  if ($did(13).text && $did(14).text && %wl) {
    var %wt $did(13).text ➔ $did(14).text
    if (!$read(%cws_words,wn,%wt)) { .did -co $dname 20 %wl %wt | .write $+(-l,%wl) %cws_words %wt | echo -a 03Line changed: $+([,%wl,]) }
    else { var %r $readn | .did -c $dname 20 %r | echo -a 04This set of words is already in the line: $+([,%r,]) }
  } | else echo -a 04To edit, double-click a line and fill in the fields..
}
on *:DIALOG:cws:sclick:23:{
  var %ws $did($dname,20,0).sel | echo -a 03Lines removed: $+([,%ws,])
  var %i 1 | while (%i <= %ws) { var %wl $did($dname,20,1).sel | .did -d $dname 20 %wl | .write $+(-dl,%wl) %cws_words | inc %i }
}
on *:DIALOG:cws:sclick:100: if ($did(1).text) set %cws_nc1 $did(1).text | if ($did(2).text) set %cws_nc2 $did(2).text
---------------------------------------------------------------------
Подпись автора

[html]<style>img {vertical-align:middle;}.hnet{color:#FFFFFF;}.hstar{color:#DE0000;}.htext{font-family:Verdana;font-size:13px;color:#6E1E00;}.heading{font-family:Verdana;font-size:13px;font-weight:bold;background-color:#4898CD;}.stitle{font-family:Verdana;font-size:12px;}.dot{color:#808000;}.desc{color:#ADADAD;}a .curl{font-family:Verdana;font-size:13px;color:#3A92CD;}</style><table><tr><td width="20px" height="20px"><img src="https://forumstatic.ru/files/000d/c9/8c/34681.jpg"></td><td><a href="https://forum.epicnet.ru/viewtopic.php?id=234"><span class="heading"> <span class="hstar">★</span> <span class="hnet">EpicNet.Ru</span> <span class="hstar">★</span> </span><span class="htext"> - IRC Чат © 2008</span></a></td></tr><tr><td></td><td><div class="stitle"><span class="dot">•</span> <span class="desc">Вход через вебгейт:</span> <a href="http://irc.epicnet.ru"><span class="curl">http://irc.epicnet.ru</span></a><br><span class="dot">•</span> <span class="desc">Сервер:</span> irc.epicnet.ru <span class="desc">Порты:</span> 6667, 6668 (ssl)<br><div></td></tr></table>[/html]

4

Большое спасибо Эпик!


Вы здесь » EpicNet.Ru - Форум IRC Чата » DEVELOPMENT - Разработка новых mIRC скриптов » Скрипт для изменения стиля слов