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

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

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


Вы здесь » EpicNet.Ru - Форум IRC Чата » HELP SCRIPTS - Помощь по mIRC скриптам » Менеджер аддонов для mIRC


Менеджер аддонов для mIRC

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

1

Я пытаюсь разработать аддон для управления несколькими аддонами с помощью диалогового окна.

Код:
dialog mi_admin {
  title "Administrador de Addons"
  size -1 -1 150 100
  option dbu
  button "Addon 1", 1, 10 10 50 20
  button "Addon 2", 2, 70 10 50 20
  button "Addon 3", 3, 10 40 50 20
  button "Cerrar", 4, 70 40 50 20, cancel
}

С помощью этих псевдонимов я создаю разделы модулей

Код:
alias addon1 {
  echo -a "Addon 1 activado"
}

alias addon2 {
  echo -a "Addon 2 activado"
}

alias addon3 {
  echo -a "Addon 3 activado"
}

Для каждого аддона я создаю кнопку в диалоговом окне, которая позволяет включить или отключить его.
Для этого я использую команду "on" в mIRC и связываю ее с конкретной функцией каждого аддона. Например:

Код:
on 1:dialog:mi_admin:sclick:1:{
  if ($did(1).state == 0) {
    unset %addon1
  }
  else {
    set %addon1 on
    addon1
  }
}

on 1:dialog:mi_admin:sclick:2:{
  if ($did(2).state == 0) {
    unset %addon2
  }
  else {
    set %addon2 on
    addon2
  }
}

on 1:dialog:mi_admin:sclick:3:{
  if ($did(3).state == 0) {
    unset %addon3
  }
  else {
    set %addon3 on
    addon3
  }
}

Но я не могу заставить его запуститься или показать мне аддоны, уже установленные в mIRC.

2

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

Я пытаюсь разработать аддон для управления несколькими аддонами с помощью диалогового окна.
Но я не могу заставить его запуститься или показать мне аддоны, уже установленные в mIRC.

Я немного модифицировал ваш код, чтобы он начал работать так, как вы хотите.
По какой то причине в вашем примере отсутствует важная команда "dialog -m <name> <table>" для создания диалогового окна и подключения таблицы с определённым названием.
Я добавил в код эту команду ".dialog -mo mi_admin mi_admin", где название окна и название таблицы соответствуют вашей созданной таблице.
Также я изменил в таблице первые 3 элемента с кнопками "button" на элементы для галочек "check" с установленным стилем "push" (чтобы сделать их похожими на кнопку).

Запуск скрипта осуществляется через команду алиаса: "/dma". Вы можете изменить это название или вставить в контекстное меню для удобного управления.

[indent=0.8,0.5] https://i.ibb.co/djCB04q/i3987ht798u2bt34.jpg

Итак, вы можете попробовать использовать этот код:

Код:
alias dma { if ($dialog(mi_admin)) .dialog -x mi_admin | .dialog -mo mi_admin mi_admin }
dialog -l mi_admin {
  title "Administrador de Addons"
  size -1 -1 150 100
  option dbu
  check "Addon 1", 1, 20 25 50 20, push
  check "Addon 2", 2, 80 25 50 20, push
  check "Addon 3", 3, 20 55 50 20, push
  button "Cerrar", 4, 80 55 50 20, cancel
}
on *:DIALOG:mi_admin:sclick:1: if ($did($did).state == 0) unset %addon1 | else { set %addon1 on | addon1 }
on *:DIALOG:mi_admin:sclick:2: if ($did($did).state == 0) unset %addon2 | else { set %addon2 on | addon2 }
on *:DIALOG:mi_admin:sclick:3: if ($did($did).state == 0) unset %addon3 | else { set %addon3 on | addon3 }
--------------------------------------------------
alias -l addon1 {
  echo -a "Addon 1 activado"
}
alias -l addon2 {
  echo -a "Addon 2 activado"
}
alias -l addon3 {
  echo -a "Addon 3 activado"
}

Для более подробной информации как работать с диалоговыми окнами вы можете ознакомиться в справочной документации:

Подпись автора

[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:#4897E7;}.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]

3

Epic, спасибо за помощь и проделанную работу.

У меня много аддонов, и я хотел бы иметь возможность управлять ими с помощью менеджера аддонов. Наличие чего-то вроде проверки.
Я хотел бы увидеть способ автоматически показывать мне все аддоны, которые у меня есть в настоящее время. И иметь кнопку для их активации и деактивации.

Было бы интересно, чтобы в mIRC был какой-то порядок при отображении количества установленных аддонов (скриптов). По этой причине я хочу сделать список или таблицу, чтобы иметь возможность их активировать, деактивировать, или удалять из самой таблицы аддонов.

Это пример:
https://i.ibb.co/VT2f5md/uriebgtt97843bgu3ebg.jpg

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

Код:
menu menubar {
  Add-ons
  .Installed Add-ons: { 
    echo -a Installed Add-ons: $script(0)
  }
  .- 
  .Enable Add-on
  ..Addon 1: { 
    set %addon1 on
    echo -a Add-on 1 enabled
  }
  ..Addon 2: { 
    set %addon2 on
    echo -a Add-on 2 enabled
  }
  .Disable Add-on
  ..Addon 1: { 
    set %addon1 off
    echo -a Add-on 1 disabled
  }
  ..Addon 2: { 
    set %addon2 off
    echo -a Add-on 2 disabled
  }
}

4

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

Код:
; Initialize the hash table
hash -d addons

; Add add-ons to the hash table
hash addons 1 "Addon 1" off
hash addons 2 "Addon 2" on
hash addons 3 "Addon 3" off

; Create the menu and populate it with add-ons from the hash table
menu menubar {
  Add-ons
  .Installed Add-ons: { 
    var %count = $hash($+("addons"), 0)
    if (%count == 0) {
      echo -a No add-ons installed.
    } else {
      echo -a Installed Add-ons:
      var %i = 1
      while (%i <= %count) {
        var %addon = $hash($+("addons"), %i)
        echo -a $i: %addon
        inc %i
      }
    }
  }
  .- 
  .Enable Add-on
  ..%addon1: { 
    set %addon1 on
    echo -a Add-on 1 enabled
    hash addons 1 "Addon 1" on
  }
  ..%addon2: { 
    set %addon2 on
    echo -a Add-on 2 enabled
    hash addons 2 "Addon 2" on
  }
  .Disable Add-on
  ..%addon1: { 
    set %addon1 off
    echo -a Add-on 1 disabled
    hash addons 1 "Addon 1" off
  }
  ..%addon2: { 
    set %addon2 off
    echo -a Add-on 2 disabled
    hash addons 2 "Addon 2" off
  }
}

Вы здесь » EpicNet.Ru - Форум IRC Чата » HELP SCRIPTS - Помощь по mIRC скриптам » Менеджер аддонов для mIRC