[mIRC Scripting] ADDON VGUESS con restrizioni

Richieste per scripts, codici, software e quant'altro saranno pubblicate in questa sezione del forum. Hai una richiesta? Pubblicala qui!
Rispondi
YodAlex
Messaggi: 16
Iscritto il: 25/04/2022, 13:29

Ciao, mi servirebbe una dritta...
Questo codice fa partire un gioco (una specie di VGUESS).
Chiunque scriva il comando fa partire il gioco.
Vorrei che invece solo l'owner avesse il privilegio.
Ho provato a togliere il @ ma niente. Dove sbaglio?

Codice: Seleziona tutto

on *:TEXT:*:#channel:{
  if ($1 == !game && $nick($chan,$nick,~@)) {
    set %topnum $iif($2,$2,100) | set %number $rand(1,%topnum)
    msg $chan Indovinate il numero compreso fra 1 e %topnum | hfree -w number *
  }
Vorrei inoltre che se un user normale esegue il comando, questi riceva un messaggio del tipo:

"Non hai i privilegi per eseguire il comando. Rivolgiti all'amministratore del canale. Grazie"

Potreste aiutarmi? Grazie
Avatar utente
Dragone2
Amministratore
Messaggi: 128
Iscritto il: 30/07/2014, 18:35
Località: Italia
Contatta:

Ciao,
Io su David-Bot avevo sviluppato questo alias:

Codice: Seleziona tutto

isowner {
  if (~ isin $nick($2,$1).pnick) {
    return $true
  }
  else {
    return $false
  }
}
Che poi si utilizza digitando:

Codice: Seleziona tutto

on *:TEXT:*:#channel:{
  if ($1 == !game) {
    if ($nick isowner #) {
      set %topnum $iif($2,$2,100) | set %number $rand(1,%topnum)
      msg $chan Indovinate il numero compreso fra 1 e %topnum | hfree -w number *
    }
    else {
     msg # Non hai i privilegi per eseguire il comando. Rivolgiti all'amministratore del canale. Grazie
    }
  }
}
Immagine
YodAlex
Messaggi: 16
Iscritto il: 25/04/2022, 13:29

Dragone2 ha scritto: 16/12/2024, 15:43 Ciao,
Io su David-Bot avevo sviluppato questo alias:

Codice: Seleziona tutto

isowner {
  if (~ isin $nick($2,$1).pnick) {
    return $true
  }
  else {
    return $false
  }
}
Che poi si utilizza digitando:

Codice: Seleziona tutto

on *:TEXT:*:#channel:{
  if ($1 == !game) && ($nick isowner #) {
    set %topnum $iif($2,$2,100) | set %number $rand(1,%topnum)
    msg $chan Indovinate il numero compreso fra 1 e %topnum | hfree -w number *
  }
  else {
   msg # Non hai i privilegi per eseguire il comando. Rivolgiti all'amministratore del canale. Grazie
  }
}
Non funziona. Anche se scrivo da Owner mi esce il messaggio ---->Non hai i privilegi per eseguire il comando. Rivolgiti all'amministratore del canale.
Avatar utente
Dragone2
Amministratore
Messaggi: 128
Iscritto il: 30/07/2014, 18:35
Località: Italia
Contatta:

Prova così:

Codice: Seleziona tutto

on *:TEXT:*:#channel:{
  if ($1 == !game) {
    if (~ isin $nick(#,$nick).pnick) {
      set %topnum $iif($2,$2,100) | set %number $rand(1,%topnum)
      msg $chan Indovinate il numero compreso fra 1 e %topnum | hfree -w number *
    }
    else {
     msg # Non hai i privilegi per eseguire il comando. Rivolgiti all'amministratore del canale. Grazie
    }
  }
}
Immagine
YodAlex
Messaggi: 16
Iscritto il: 25/04/2022, 13:29

Dragone2 ha scritto: 16/12/2024, 17:28 Prova così:

Codice: Seleziona tutto

on *:TEXT:*:#channel:{
  if ($1 == !game) {
    if (~ isin $nick(#,$nick).pnick) {
      set %topnum $iif($2,$2,100) | set %number $rand(1,%topnum)
      msg $chan Indovinate il numero compreso fra 1 e %topnum | hfree -w number *
    }
    else {
     msg # Non hai i privilegi per eseguire il comando. Rivolgiti all'amministratore del canale. Grazie
    }
  }
}
Peggio di prima. Ora non accetta nessun comando. Scrivendo !game non succede nulla di nulla. Nessun messaggio. Nemmeno di errore in status
Avatar utente
Dragone2
Amministratore
Messaggi: 128
Iscritto il: 30/07/2014, 18:35
Località: Italia
Contatta:

Ma hai sostituito #channel con il canale su cui vuoi utilizzarlo? Perché se specifichi #channel è ristretto solo sul canale "#channel", quindi è normale che non risponda a nessun messaggio e non ci siano errori.

Se vuoi che sia attivo su tutti i canali, metti solo "#":

Codice: Seleziona tutto

on *:TEXT:*:#:{
Immagine
YodAlex
Messaggi: 16
Iscritto il: 25/04/2022, 13:29

Dragone2 ha scritto: 16/12/2024, 18:37 Ma hai sostituito #channel con il canale su cui vuoi utilizzarlo? Perché se specifichi #channel è ristretto solo sul canale "#channel", quindi è normale che non risponda a nessun messaggio e non ci siano errori.

Se vuoi che sia attivo su tutti i canali, metti solo "#":

Codice: Seleziona tutto

on *:TEXT:*:#:{
Quello l'ho fatto ovviamente :-P
Ora praticamente, esce sì il messaggio del privilegio, ma non prende il comando per partire. Nemmeno da me che sono owner.
Premesso che ho copiato l'alias sotto al remote. In pratica alla fine della addon. E controllato le varie { o }
Avatar utente
Dragone2
Amministratore
Messaggi: 128
Iscritto il: 30/07/2014, 18:35
Località: Italia
Contatta:

A me funziona tutto correttamente, verifica di essere owner (~) sul canale dove lo digiti e che sia caricato sul bot.

Ho fatto il test così:

Codice: Seleziona tutto

on *:TEXT:*:#Dragone2:{
  if ($1 == !game) {
    if (~ isin $nick(#,$nick).pnick) {
      set %topnum $iif($2,$2,100) | set %number $rand(1,%topnum)
      msg $chan Indovinate il numero compreso fra 1 e %topnum | hfree -w number *
    }
    else {
      msg # Non hai i privilegi per eseguire il comando. Rivolgiti all'amministratore del canale. Grazie.
    }
  }
}
E sul canale #Dragone2 ho messo ChanServ Owner (~), quindi gli ho fatto dire il messaggio in canale:
-[19:23:59]- * Dragone2 sets mode: +q ChanServ
-[19:24:03]- <~ChanServ> !game
-[19:24:03]- <~Dragone2> Indovinate il numero compreso fra 1 e 100
Probabilmente, c'è qualcosa nel tuo script che fa casino oppure non stai utilizzando una versione di mIRC aggiornata. Io sto usando l'ultima, la 7.78, uscita pochi mesi fa.
Immagine
YodAlex
Messaggi: 16
Iscritto il: 25/04/2022, 13:29

Dragone2 ha scritto: 16/12/2024, 19:26 A me funziona tutto correttamente, verifica di essere owner (~) sul canale dove lo digiti e che sia caricato sul bot.

Ho fatto il test così:

Codice: Seleziona tutto

on *:TEXT:*:#Dragone2:{
  if ($1 == !game) {
    if (~ isin $nick(#,$nick).pnick) {
      set %topnum $iif($2,$2,100) | set %number $rand(1,%topnum)
      msg $chan Indovinate il numero compreso fra 1 e %topnum | hfree -w number *
    }
    else {
      msg # Non hai i privilegi per eseguire il comando. Rivolgiti all'amministratore del canale. Grazie.
    }
  }
}
E sul canale #Dragone2 ho messo ChanServ Owner (~), quindi gli ho fatto dire il messaggio in canale:
-[19:23:59]- * Dragone2 sets mode: +q ChanServ
-[19:24:03]- <~ChanServ> !game
-[19:24:03]- <~Dragone2> Indovinate il numero compreso fra 1 e 100
Probabilmente, c'è qualcosa nel tuo script che fa casino oppure non stai utilizzando una versione di mIRC aggiornata. Io sto usando l'ultima, la 7.78, uscita pochi mesi fa.
Sono founder/owner del canale. Il canale è mio quindi sull'owner non ci sono dubbi.
La versione che uso è la 7.65, ma vedendo il tuo codice, non ha particolari "features" non supportate.
Anche perchè tutta la addon funziona alla perfezione. Semplicemente volevo limitare l'avvio all'owner.
Grazie lo stesso ^^ sei stato gentilissimo.
YodAlex
Messaggi: 16
Iscritto il: 25/04/2022, 13:29

Ho fatto il test così:

Codice: Seleziona tutto

on *:TEXT:*:#Dragone2:{
  if ($1 == !game) {
    if (~ isin $nick(#,$nick).pnick) {
      set %topnum $iif($2,$2,100) | set %number $rand(1,%topnum)
      msg $chan Indovinate il numero compreso fra 1 e %topnum | hfree -w number *
    }
    else {
      msg # Non hai i privilegi per eseguire il comando. Rivolgiti all'amministratore del canale. Grazie.
    }
  }
}

Probabilmente, c'è qualcosa nel tuo script che fa casino oppure non stai utilizzando una versione di mIRC aggiornata. Io sto usando l'ultima, la 7.78, uscita pochi mesi fa.
Un piccolo aggiornamento: ho installato una 7.78 vergine (senza altre addons). Il gioco parte:
-Se !game viene dato da owner:

[09:03:57] <~`Chandra> !game 2
[09:03:58] <+cinzia> Indovinate il numero compreso fra 1 e 2 ----- (E fin qua ci siamo)

-Se !game viene dato da non-owner:

[09:03:32] <@sandra> !game 2
[09:03:33] <+cinzia> Non hai i privilegi per eseguire il comando. Rivolgiti all'amministratore del canale. Grazie. ----- (e anche qua ci siamo)

Ma i successivi input per indovinare il numero, non hanno nessun effetto:

[09:04:12] <@sandra> !number 1
[09:04:23] <~`Chandra> !number 2

Dovrebbe uscire qualcosa come:

[08:45:15] <~`Chandra> !number 1
[08:45:16] <+cinzia> `Chandra Il numero 1 e' troppo BASSO ! RITENTA!
[09:10:59] <+cinzia> COMPLIMENTI `Chandra !!! Hai indovinato !!! Il numero era 1
Rispondi