1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

mIRC Scripting

Discussão em 'Programação' iniciada por DekkeR, 20 de Outubro de 2005. (Respostas: 23; Visualizações: 1803)

  1. DekkeR

    DekkeR Power Member

    Ora vamos lá ver se há aqui alguém entendido na matéria :P

    A minha ideia é fazer aparecer uma caixa de diálogo e identificar o nick quando aparece a mensagem: "Nick registado e protegido! Se e' seu escreva /NickServ IDENTIFY password. Tem cerca de um minuto para o fazer ou mudar de nick"

    Fazer aparecer a caixa já eu fiz, o problema é mesmo identificar o nick porque ele não reconhece o que eu escrevi na caixa de texto.

    Código:
    dialog a.id {
      title "Password Window"
      size -1 -1 330 110
    
      text "Escreva a password do seu nick:",01,13 20 300 40, center
      edit "",02, 13 40 300 20, autohs %nickpass
    
      button "Ok",03,60 70 80 22,ok
      button "Cancel",04,190 70 80 22,cancel
    }
    
    on *:dialog:a.id:sclick:03:{ nickserv identify %nickpass }
    No manual de ajuda está isto:
    Ora.. foi isso que eu fiz aqui:
    O problema está na atribuição da variável %nickpass, porque depois de eu fechar a janela aparece a mensagem "-NickServ- Sintaxe: IDENTIFY password - /NickServ HELP IDENTIFY para ajuda."

    Será que há alguém que perceba disto aqui no meio dos programadores todos ? ;)
     
  2. turbulence

    turbulence Power Member

    Exprimenta estas alterações:
    na dialog:
    edit "",02, 13 40 300 20

    e dpz:
    on *:dialog:a.id:sclick:03:{ set %nickpass $did(2) | nickserv identify %nickpass }
     
  3. viper5000

    viper5000 I fold therefore I AM

    ident.mrc

    dentro do file
    Código:
    
    ON 1:LOAD:{
    //ECHO Adddn carreregado
    
    }
    alias pass dialog -m pass pass
    dialog pass {
      title "  Auto-Identify"
      size -1 -1 228 227
      box "sobre:",1,4 3 219 84
      text "Auto-Identify with NickServ. If the server you connect use the Bot NickServ, and you want to auto identify ( /msg nickserv identify pass ",2,8 17 219 218
      text "Password:",3,4 97 70 20
      edit "",4,55 94 168 20,pass
      box "Setup:",5,64 116 94 64
      radio "Ligado",6,80 128 70 25
      radio "Desligado",7,80 153 70 25
      button "Guardar",99,120 188 105 33,ok
      button " Cancelar ",100,6 188 105 33 , cancel
    }
    on *:dialog:pass:*:*:{
      if $devent == sclick {
        if $did == 6 { set %tentpassetup on }
        if $did == 7 { set %tentpassetup off }
        if $did == 99 { set %tentpass $did(4) } 
      }
      if $devent == init {
        .did -o pass 4 4 %tentpass
        if %tentpassetup == on { did -c pass 6 }
        if %tentpassetup == off { did -u pass 6 
          did -c pass 7 
        }
      }
    }
    on 1:connect:{
      if %tentpassetup == on  goto start 
      else halt 
      :start
    
     
  4. viper5000

    viper5000 I fold therefore I AM

    ou entao
    Código:
    on 1:load:echo *** 10,1(0Auto Identify10)
    menu channel {
      autoid:autoid
    }
    alias autoid dialog -m autoid autoid
    dialog autoid {
      title "autoid"
      size 206 117 122 297
      box "autoid", 1, 1 0 120 295
      box "", 2, 6 15 110 80
      text "nick:", 3, 10 30 25 15
      text "pass:", 4, 10 55 25 15
      edit "", 5, 40 25 70 22, autohs
      edit "", 6, 40 50 70 22, autohs
      button "adicionar nick!", 7, 40 75 70 15
      box "", 8, 6 95 110 195
      list 9, 10 105 100 92, size
      button "del nick!", 10, 10 250 100 15
      edit "", 11, 10 200 100 22, autohs, center, read
      edit "", 12, 10 225 100 22, autohs, center, read
      check "on/off", 13, 35 270 60 15
      button "&OK", 14, 0 0 0 0, ok, hide
    }
    on *:dialog:autoid:init:*: { 
      if (%autoidl == on) { did -c autoid 13 }
      didtok autoid 9 32 %nick.ident 
    }
    on *:dialog:autoid:*:*: {
      if ($did == 7) { set %nick.ident %nick.ident $did(5) | set %pass.ident %pass.ident $did(6) | did -r autoid 9,5,6 | didtok autoid 9 32 %nick.ident }
      if ($did == 9) {
        /set %num.pass $findtok(%nick.ident,$did(9,$did(9).sel).text,1,32) 
        did -ra autoid 11 $gettok(%nick.ident,%num.pass,32)
        did -ra autoid 12 $gettok(%pass.ident,%num.pass,32)
      }
      if ($did == 10) {
        /set %num.pass $findtok(%nick.ident,$did(9,$did(9).sel).text,1,32) 
        set %nick.ident $deltok(%nick.ident,%num.pass,32)
        set %pass.ident $deltok(%pass.ident,%num.pass,32)
        did -r autoid 9
        didtok autoid 9 32 %nick.ident
      }
      if ($did == 13) { 
        if (%autoidl == on) { set %autoidl off | halt }
        if (%autoidl == off) { set %autoidl on | halt }
      }
    }
    on *:NOTICE:*Este nick esta registrado e protegido*:?:if (%autoidl == on) { if ($nick == nickserv) { set %num.pass $findtok(%nick.ident,$me,1,32) | /.msg NickServ IDENTIFY $gettok(%pass.ident,%num.pass,32) } }
    on *:NOTICE:*This nick is owned by some*:?:if (%autoidl == on) { if ($nick == nickserv) { set %num.pass $findtok(%nick.ident,$me,1,32) | /.msg NickServ IDENTIFY $gettok(%pass.ident,%num.pass,32) } }
    on *:NOTICE:*This nickname is*:?:if (%autoidl == on) { if ($nick == nickserv) { set %num.pass $findtok(%nick.ident,$me,1,32) | /.msg NickServ IDENTIFY $gettok(%pass.ident,%num.pass,32) } }
    
     
  5. DekkeR

    DekkeR Power Member

    A alteração do turbulence chegou perfeitamente. Apenas adicionei 'pass' no final do edit para o texto da caixa aparecer escondido ;)

    Fiquei foi sem perceber por que razão é que ele não guardou a variável como deve ser :confused:

    Thanks aos 2 ;)
     
  6. g00f3r

    g00f3r Power Member

    credo eu ja n mexo em mirc scripting ha muito tempo...

    mas acho q faço isso em 3 linhas :P

    on *:notice:*:*:*: {
    if ($nick == NickServ && $1- == *identifique-se*) { nickserv identify $?*="Enfia a password" }
    }

    alguem quer testar isso ?
     
  7. DekkeR

    DekkeR Power Member

    g00f3r, pensas que eu não tentei isso ? :P

    Não se pode usar inputs em events.. o gajo avisa logo: " $?: cannot use in an event "
     
  8. turbulence

    turbulence Power Member

    axo k se usares um timer ai de 1 seg ja da, ou entao um timer para um alias com isso :p
     
  9. g00f3r

    g00f3r Power Member


    de certeza? eu pudia jurar q tinha feito uma cena assim qd andava pelo irc.. vou ver se encontro qq coisa nos meus backups! ehe
     
  10. DekkeR

    DekkeR Power Member

    Absoluta :)

    Podes experimentar e ver por ti próprio... pelo menos aqui não me deixa fazer isso :p
     
  11. Warrior

    Warrior Power Member

    Chamando numa função tb nao?
    (Existe sp a hipotese de se fazer um timer e chamar 1 ms depois o alias.. mas tb ja nao programo mirc scripting ha tanto tempo..)
     
  12. DekkeR

    DekkeR Power Member

    Mas porquê meter timers a chamar aliases e tal ? Uma dialog box fica melhor e é mais personalizável :p

    Já agora faço aqui um pequeno apelo aos scripters da TZ .. se alguém se quiser juntar à equipa do Folding para melhorar o script, é só dizer ;)

    Cumps
     
  13. turbulence

    turbulence Power Member

    scripts para o mirc? txii esse tempo ja la vai :D pelo menos para mim :p
     
  14. Warrior

    Warrior Power Member

    Acho que me lembro de te ver no #mircscripts (era este o canal? o canal de ajuda..) da PTnet Turbulence.. há pelo menos... 4 anos? talvez mais
     
  15. devic

    devic Power Member

  16. Warrior

    Warrior Power Member

    Não falhei por muito :rolleyes:
     
  17. gOnYs

    gOnYs Power Member

    txii mirc scripting ao tempo
    que não toco nisso deixo aqui o meu autoidentify pa quem quiser ver:

    alias autoid { dialog -m autoid autoid }
    dialog autoid {
    title "Auto Identify"
    size -1 -1 102 45
    option dbu
    box "", 1, 0 -1 101 32
    button "Cancel", 2, 75 33 25 11, cancel
    button "Ok", 3, 49 33 25 11, ok
    text "Nick:", 4, 3 6 14 8
    text "Password:", 5, 3 19 26 8
    edit "", 6, 29 5 70 10
    edit "", 7, 29 18 70 10, pass
    box "", 8, 0 30 48 14
    }
    alias setpass { dialog -m setpass setpass }
    dialog setpass {
    title "Password Resquest"
    size -1 -1 96 27
    option dbu
    edit "", 1, 1 3 94 10, pass
    button "Set", 2, 42 14 26 11, ok
    button "Cancel", 3, 69 14 26 11, cancel
    }
    on *:dialog:setpass:sclick:*:{
    nickserv identify $did(1)
    }
    on *:dialog:autoid:sclick:*:{
    if ($did == 3) {
    set %nick $did(6)
    set %password $encode($did(7),m)
    }
    }
    on *:dialog:autoid:init:*:{
    did -a autoid 6 %nick
    did -a autoid 7 %password
    }
    on *:notice:*registado e protegido*:*:{
    if ($nick == nickserv) && ($me isin %nick) {
    nickserv identify $decode(%password,m)
    }
    else {
    setpass
    }
    }
    on *:notice:*password incorrecta*:*:{
    if ($nick == nickserv) {
    setpass
    }
    }
     
  18. turbulence

    turbulence Power Member

    sou founder ;D
     
  19. Warrior

    Warrior Power Member

    Significa que não me enganei ;)
     
  20. Se bem me lembro. =P se calhar o k falta no teu codigo original é a / ou seja:


    on *:dialog:a.id:sclick:03:{ /nickserv identify %nickpass }

    Não tenho a certeza mas pode ser k tenha sido esse o problema
     

Partilhar esta Página