home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 35 Internet
/
35-Internet.zip
/
bx75p3.zip
/
doc
/
tcl-ideas
< prev
next >
Wrap
Text File
|
1999-02-23
|
6KB
|
146 lines
<jEkS> isban <ban> [channel]
<jEkS> matchban <nick!user@host> [channel]
<jEkS> isvoice <nickname> <channel>
<jEkS> onchan <nickname> <channel>
<jEkS> chanbans <channel>
<jEkS> getchanhost <nickname> <channel>
<jEkS> onchansplit <nick> <channel>
<jEkS> chanlist <channel>
<jEkS> getchanmode <channel>
<jEkS> maskhost <nick!user@host>
<jEkS> ctime <unixtime>
[Jeks(dcc)] .tcl return [expr 1 + 1]
<jEkS> :/set bot_tcl_command 1/0
ForChannelOps #channel -minlevel -maxlevel command
ForChannelNOps #channel -minlevel -maxlevel command
inAway (if your away return 1)
[noob(dcc)] this is how the raw server data is handles
[noob(dcc)] and if the raw numeric is specified
[noob(dcc)] i.e.
[noob(dcc)] proc RAW_KICK { level } \
[noob(dcc)] {
[noob(dcc)] Echo [TopChannel] "blah" \[\04FunScript\04\]
[noob(dcc)] }
[noob(dcc)] proc RAW_303 { level } \
[noob(dcc)] {
[noob(dcc)] Echo "this that the other thing" blah
[noob(dcc)] }
[noob(dcc)] then when the server replys a 303
[noob(dcc)] /echo (blue)blah(blue) this that the other thing
[noob(dcc)] via proc name
[noob(dcc)] TCL's sockets are shitty
[noob(dcc)] SockCreate socketname function blah blah
[noob(dcc)] proc PARTY {} \
[noob(dcc)] {
[noob(dcc)] set nErrCode [catch {SockCreate party "party " 1093 1 13}]
[noob(dcc)] if { $nErrCode == 0 } \
[noob(dcc)] {
[noob(dcc)] global party
[noob(dcc)] set party "ON"
[noob(dcc)] Echo [MyNick] "Partyline Socket created..." PARTY!
[noob(dcc)] SockListen party 3
[noob(dcc)] if { $nErrCode != 0 } \
[noob(dcc)] {
[noob(dcc)] Echo [MyNick] "Can't listen with socket party" PARTY!
[noob(dcc)] } else \
[noob(dcc)] {
[noob(dcc)] Echo [MyNick] "Partyline now active with socket party. To
disable
type /noparty" PARTY!
[noob(dcc)] }
[noob(dcc)] }
[noob(dcc)] } else \
[noob(dcc)] {
[noob(dcc)] Echo [MyNick] "Can't create socket" PARTY!
[noob(dcc)] }
[noob(dcc)] Complete
[noob(dcc)] }
[noob(dcc)] as u see... an alias is proc NAME(all caps)
[noob(dcc)] it will listen to a socket at port 1093
[noob(dcc)] if its able to create the socket sucsessfully it returns a 1
[noob(dcc)] i mean it sets nerrcode to 0
[noob(dcc)] otherwise it says cant listen with socket
[noob(dcc)] and when u type /pass
[noob(dcc)] it exicutes that proc
[noob(dcc)] and u are then listening to port 1093
[noob(dcc)] and the socket name is party
[noob(dcc)] for every connection u would need this...
[noob(dcc)] a onACCEPT
[noob(dcc)] proc onACCEPT_party { name nErrCode } \
[noob(dcc)] {
[noob(dcc)] global last
[noob(dcc)] set last ""
[noob(dcc)] global user
[noob(dcc)] incr user
[noob(dcc)] global user_$user
[noob(dcc)] set user_$user "1"
[noob(dcc)] set $name party
[noob(dcc)] Echo [MyNick] "hmm $name connected to partyline server1"
[noob(dcc)] SockAccept "user_$user" $name
[noob(dcc)] if { $nErrCode != 0} { Echo [MyNick] "Problem with SockAccept "
}
[noob(dcc)] Echo [MyNick] "\01A new user joined the partyline. This is user
$user\01"
[noob(dcc)] PostMsg "PAR user_$user@[SockRemoteIP $name] joined the
partyline!"
[noob(dcc)] SockSendT user_$user "\04Current commands are:\n"
[noob(dcc)] SockSendT user_$user ".\02me\02 <text> - action on
partyline\n"
[noob(dcc)] SockSendT user_$user ".\02nick\02 <nick> - change
partyline ID\n"
[noob(dcc)] SockSendT user_$user ".\02quit\02 <reason> - left on
partyline\n"
[noob(dcc)] SockSendT user_$user ".\02MSG\02 <nick> <text> - Sends a
msg to nick\n"
[noob(dcc)] SockSendT user_$user ".\02WHOM\02 - Tells you who is
connected\n"
[noob(dcc)] SockSendT user_$user ".\02DIE\02 <pass> - Kills the
partyline\n"
[noob(dcc)] SockSendT user_$user ".\02PING\02 - Checks for lag\n"
[noob(dcc)] SockSendT user_$user ".\02BOOT\02 <pass> <nick> - Kicks
a
nick off the partyline\n"
[noob(dcc)] SockSendT user_$user "*** \04if u have more command
ideas
try \02noob@america.com\02\04 *** \n"
[noob(dcc)] SockSendT user_$user "If you want to exit... Type .quit
reason to quit. Type .help for all commands. \n"
[noob(dcc)] SockSendT user_$user "\02Type \".nick <NewNick>\", Must
be
within 9 letters.\n"
[noob(dcc)] Complete
[noob(dcc)] }
[noob(dcc)] that changes the sepcific's socket to its own socketname
[noob(dcc)] that way u can have more then 1 connection at your port
[noob(dcc)] and a SockClose
[noob(dcc)] and a SockCloseAll
[noob(dcc)] will be needed
[noob(dcc)] a [SockLine $name] would be the last text recieved from socket
$name
[_jeks_(~jeks@msiw34.msi.se)] then you should check out
ftp://ftp.neosoft.com/pub/tcl/NEW there is a file called
tcl7.5p1plus.patch.gz .. use that..
[_jeks_(~jeks@msiw34.msi.se)] then you can add a Tcl_InitIndependant (or
sumthing) to make the bin completly independant from any tcl libs
installed on the system..
[_jeks_(~jeks@msiw34.msi.se)] great if you want to make a bin distrib.. then
it doesn't care wether tcl is installed or not..
you could mail liotta@hotmail.com ..!
2. kwak (Sep 25 23:42): abnout the [ircii args] function, I
think I need it to send to the tcl interpreter instead of the
screen, or maybe there should be a parameter to it.. like [ircii
-console args] to put it to screen.. Cause If I need a var it can't
be done.. like "/tcl set ircii-setlist [ircii set] it only puts to
screen not to the var.. it is very important that it does.
3. kwak (Sep 25 23:43): cause then you can put some params from
ircii to the tcl.. like "/tcl set color1 [ircii eval echo ${C1}] or
whatever..