![]() |
|
|||||||
| Tcl scripting Tcl scripting related questions |
![]() |
|
|
LinkBack | Thread Tools | Display Modes |
|
|
#11 (permalink) |
|
Administrator
aka aqwzsx |
Arata ce ai si fii mai concret in ceea ce vreai.
Din cate am inteles, daca de exemplu sunt < 2 opi - BOT`ul seteaza +m, daca sunt > 2 opi - BOT`ul scoate +m. Doresti asta sa fie integrat in a&a light sau vreai script aparte ? Sa fie asociat aceasta setare cu un flag de canal concret ? de exemplu in a&a light cu +secure. Deci cand ai o problema, fii te rog detaliat la maxim. Kiar daca in acest thread s-a discutat problema, nu am chef acuma sa recitesc toate posturile, si iti dai seama nu poti ghici exact ce doresti. |
|
|
|
|
|
#12 (permalink) |
|
Senior Member
|
Deci pana acuma seta +m daca era doar el si X op , acuma vreau sa mai lase 1 op , adik decat sa fie dependent de X mai bine sa fie setat sa puna +m daca sunt 3 opi si daca sunt mai multi sa scoata m , daca se poate 10x
__________________
Forza RAPID ALE ALEEEEEEEEEEEEEEEEEEEEEEe |
|
|
|
|
|
#13 (permalink) |
|
Senior Member
|
Code:
bind time - "* * * * *" ch:set
setudef flag moderate
set neednick "X"
set needops "2"
proc ch:set {min hour day month year} {
global neednick needops
foreach chan [channels] {
set lop 0
if {[channel get $chan moderate]} {
foreach u [chanlist $chan] {
if {[isop $u $chan]} { incr lop }
}
if {[botisop $chan] && ($lop == $needops) && [onchan $neednick $chan] && [isop $neednick $chan]} {puthelp "mode $chan +m"} {puthelp "mode $chan -m"}
}
}
}
Code:
bind time - "* * * * *" ch:set
setudef flag moderate
set neednick "X |Rapid"
set needops "3"
proc ch:set {min hour day month year} {
global neednick needops
foreach chan [channels] {
set lop 0
if {[channel get $chan moderate]} {
foreach u [chanlist $chan] {
if {[isop $u $chan]} { incr lop }
}
if {[botisop $chan] && ($lop == $needops) && [onchan $neednick $chan] && [isop $neednick $chan]} {puthelp "mode $chan +m"} {puthelp "mode $chan -m"}
}
}
}
__________________
Forza RAPID ALE ALEEEEEEEEEEEEEEEEEEEEEEe |
|
|
|
|
|
#14 (permalink) |
|
Administrator
aka aqwzsx |
Am modificat putin script`ul si am descris fiecare rand ce face. Sper lsn sa nu fie contra.
Code:
bind time - "* * * * *" ch:set ;#fiecare minuta bot`ul va demara procesul "ch:set"
setudef flag moderate ;# setarea de canal ca sa fie activata optiunea, poate fi setata in dcc
set needops "3" ;# cati opi minim sa fie
proc ch:set {min hour day month year} {
global needops
#pentru fiecare canal
foreach chan [channels] {
#daca canalul e moderate si bot`ul e op
if { [channel get $chan moderate] && [botisop $chan]} {
#aflam numarul de opi pe canal, setam "lop" 0
set lop 0
#pentru fiecare user de pe canal
foreach u [chanlist $chan] {
#daca user`ul e op, marim variabila "lop" cu o unitate
if { [isop $u $chan]} {incr lop}
}
#daca numarul de opi e mai mic decat cel specificat, setam +m.
#in caz contrar setam -m
if {$lop < $needops} {pushmode $chan +m} {pushmode $chan -m}
}
}
}
|
|
|
|
|
|
#15 (permalink) |
|
Senior Member
|
1. vreau comanda de canal ca sa setez numarul de opi care au voie nu sa stau sa modific de fiecare data in tcl
2. vreau de ex cum era prima data scriptu depindea daca era X pe chan acuma sunt 2 boti pe chan al meu si al inca unui om , dar ala mai pica si daca limita e setata sa fie si pt botu ala on , daca botu ala nu e on si un om ia op nu mai poate scoate moderat ca e setata o anumita limita si vreau ceva de genu : daca este hostul *!*@user.undernet.org online sa fie limita de opi setata de mine , daca nu este sa fie cu una in minus adik daca este limita la 4 sa fie apoi modificata la 3 daca nu este acel host online De exemplu: exista pe canalu #Rapid 3 boti X RapidGuard InI Cand sunt mai putin de 4 opi RapidGuard pune moderat si daca sunt 4 il scoate X RapidGuard InI GoRaPiD (sa zicem ) - deci acuma scoate moderat -dar daca lipseste InI si ia un om op nu poate scoate moderate pentru ca sunt sub 4 oameni cu op si tot pune moderat X RapidGuard GoRaPiD eu vreau in momentu cand lipseste InI el sa modifice automat limita de la 4 opi la 3 opi si cand revine InI sa revina la limita de 4 opi
__________________
Forza RAPID ALE ALEEEEEEEEEEEEEEEEEEEEEEe Last edited by UniversaliA; 29-04-2006 at 18:35. Reason: merged 2 posts |
|
|
|
|
|
#16 (permalink) |
|
Member
Join Date: Dec 2004
Location: Under a rock!
Posts: 116
Rep Power: 33 ![]() |
Pentru un maxim de eficacietate in locul tau lsn as merge pe mai multe bind-uri ca: join, part, quit, sign, etc. care sa alepeze un acelasi proces care decide daca sa puna sau sa scoate modul "m" de pe un canal. Daca incerci cu timp nu ai sa reusesti sa il faci sa reactioneze cum trebuie tot timpul.
|
|
|
|
|
|
#17 (permalink) |
|
Member
Join Date: Jun 2004
Location: In the NeXuS
Posts: 160
Rep Power: 38 ![]() |
hai mai nu va luati de mine ca am fost prea putin online ultimele 2-3 saptamani
Ok, sa vedem daca am inteles bine ce vrea GoRaPiD, si cu hinturile lui caesar ![]() Code:
setudef flag moderate
setudef int modops
setudef str modhost
bind sign -|- * mod:moderate
bind join -|- * mod:moderate
bind part -|- * mod:moderate
bind mode -|- * mod:modes
bind pub n|n {@set} mod:set
proc mod:moderate {nick uhost hand chan {arg ""}} {
if {![channel get $chan moderate]} {return}
set host [channel get $chan modhost]
set ops [channel get $chan modops]
set op 0
set ok 1
foreach u [chanlist $chan] { if {[isop $u $chan]} {incr op} }
foreach c [chanlist $chan] {
if {[llength $host]} {
if {[string equal -nocase [lindex [split [getchanhost $c] @] 1] [lindex [split $host @] 1]]} {set ok 0; break}
}
}
if {$ok} {set ops [expr $ops - 1]}
if {$op < $ops} {pushmode $chan +m} {pushmode $chan -m}
}
proc mod:modes {nick uhost hand chan mode target} {
if {![channel get $chan moderate]} {return}
switch -exact -- $mode {
"+m" -
"-m" -
"+o" -
"-o" {mod:moderate $nick $uhost $hand $chan}
}
}
proc mod:set {nick uhost hand chan arg} {
set arg [split $arg]
switch -exact -- [string tolower [lindex $arg 0]] {
"needops" {if {[scan [lindex $arg 1] "%f%s" f g] == 1} {channel set $chan modops [lindex $arg 1]; puthelp "notice $nick :Ok, set."} {puthelp "notice $nick :Usage: \$set \[needops|needhost|\[-+\]moderate\] \[\$number|\$host\]"}}
"needhost" {if {[string match -nocase *!*@*.??* [lindex $arg 1]]} {channel set $chan modhost [lindex $arg 1]; puthelp "notice $nick :Ok, set."} {puthelp "notice $nick :Usage: \$set \[needops|needhost|\[-+\]moderate\] \[\$number|\$host\]"}}
"+moderate" {channel set $chan +moderate; puthelp "notice $nick :Ok, set."}
"-moderate" {channel set $chan -moderate; puthelp "notice $nick :Ok, set."}
default {puthelp "notice $nick :Usage: @set \[needops|needhost|\[-+\]moderate\] \[\$number|\$host\]"}
}
}
Code:
Usage: @set [needops|needhost|[-+]moderate] [$number|$host]
|
|
|
|
|
|
#19 (permalink) |
|
Member
Join Date: Jun 2004
Location: In the NeXuS
Posts: 160
Rep Power: 38 ![]() |
Ex:
Code:
@set needops 3 Code:
@set needhost *!*@host Code:
@set [+-]moderate Comenzile se dau pe canal. |
|
|
|