3xBot.txt0100666000076700007670000002401007071712076011737 0ustar guppyguppy############################################################################### ## ------------------------------------------------------------------------- ## ## ProgramName......... 3xBot ## ## ------------------------------------------------------------------------- ## ## Programmer.......... TripleX ## ## eMail............... daniel.bleisteiner@berlin.de ## ## Homepage............ http://www.Da3X.de/ ## ## ------------------------------------------------------------------------- ## ## current Version..... v1.03 ## ## ReleaseDate......... 2nd April 2000 ## ## SoftwareStatus...... FreeWare ## ## ------------------------------------------------------------------------- ## ## Purpose............. see below ## ## ------------------------------------------------------------------------- ## ## Requirements........ EggDrop IRC Bot ## ## ------------------------------------------------------------------------- ## ## Features............ see below ## ## ------------------------------------------------------------------------- ## ## planed Features..... don't know of them yet ## ## ------------------------------------------------------------------------- ## ## known Bugs.......... none ## ## ------------------------------------------------------------------------- ## ## Usage............... Just extract all Files to your EggDrop Directory ## ## and edit all the Variables at the Top of the Script. ## ## For further Explainations check the Text after this ## ## short Introduction! ## ## ------------------------------------------------------------------------- ## ## History............. see 3xBot.tcl ## ## ------------------------------------------------------------------------- ## ## (C) Copyright 2000 by TripleX - All Rights reserved! ## ## ------------------------------------------------------------------------- ## ############################################################################### • 3xUsePasswordCheck This Feature is used to remind added Users to set their Password if they did not allready. You can set this to 1 or 0 wheter you want to enable or disable this automatied Message. • 3xUseTopic To set the Topic in a Channel a User can use !topic or !ltopic as a public Command if you enable this Feature by setting the Variable to 1. If you set it to 0 the Users can only set Topics if the Channel is -n or the User has +o in this Channel. The !ltopic sets a locked Topic which can be only overwritten by User with at least equal Rights the Bots UsersList. If a User with less Rights tries to overwrite this Topic it will be restored by the Bot. • 3xTopicTimerCheck Public Commands support some simple FloodProtection defined by that Variable. It tells the Bot how often this Command can be used in how many Minutes. Name the Numbers seperated by a single : included in ". • 3xTopicIgnoreChannels Use this Variable to name Channels you want to disable this Command in. Place the Channels inside the {}-Brackets seperated by Spaces. • 3xTopicLinkedBots This List holds the Handles of known Bots that support the same Feature. The Bot will only act if none of these Handles is on the Channel at this Point, otherwise the Bot does nothing. Place the Handles inside the {}-Brackets seperated by Spaces. • 3xUseStats The Script supports some simple Stats for the Channel. These Stats include the total Number of Words, the Number of Words per User, the IdleTimes of Users and the most common Words used in the Channel. Users can call the Stats with !stats in the Channel. They can also use !mystats to get their personal Stats displayed. • 3xStatsTimeForIgnore Some Users try to cheat Stats using simple repeated Words in their Messages. The Bot will consider every Message containing a single Word more than 5 Times as a Cheat and ignore the User for several Minutes. This Variable tells the Bot how many Minutes the User shall be ignored for Stats. • 3xStatsTimerCheck Public Commands support some simple FloodProtection defined by that Variable. It tells the Bot how often this Command can be used in how many Minutes. Name the Numbers seperated by a single : included in ". • 3xStatsIgnoreChannels Use this Variable to name Channels you want to disable this Command in. Place the Channels inside the {}-Brackets seperated by Spaces. • 3xStatsLinkedBots This List holds the Handles of known Bots that support the same Feature. The Bot will only act if none of these Handles is on the Channel at this Point, otherwise the Bot does nothing. Place the Handles inside the {}-Brackets seperated by Spaces. • 3xUseVote To support some simple Votings in a Channel set this Variable to 1. If enabled every +o BotUser can call !vote in a Channel to start a 5-Minutes-lasting Vote on his Question. Every User in the Channel can vote via !yes or !no in the Channel or via private Message to the Bot. • 3xVoteLinkedBots This List holds the Handles of known Bots that support the same Feature. The Bot will only act if none of these Handles is on the Channel at this Point, otherwise the Bot does nothing. Place the Handles inside the {}-Brackets seperated by Spaces. • 3xVoteLogfile Name a File the Bot can store the Results of Votings in. The Path has to by absolute or relative to the Bots Location. The Bot includes a simple CGI PerlScript to read that File and display all Votings. • 3xUseMassNote If you enable this Command every Partyline-User can use .massnote to send a Note to Users with certain Flags. The Syntax of this Feature is .massnote where the Flags should be set like known from the Bot itself (i.e. o|o to send the Note to all Ops). • 3xColorKick If you don't like People using to much Color in IRC enable this Feature by setting this Variable to 1. Users will be kicked by the Bot if they use more than the defined Number of ColorCodes in a single Message. BotUsers with +f for the Channel won't be kicked - they just get a Warning. • 3xColorKickMaxColors Defines the maximum Number of ColorCodes per Message a User can use before he gets kicked out of the Channel. • 3xColorKickIgnoreChannels Use this Variable to name Channels you want to disable this Command in. Place the Channels inside the {}-Brackets seperated by Spaces. • 3xUseCalc This Command uses TCL [expr] to evaluate mathematical Terms. It can be used for some quick Computations in a Channel ot in private Chat. • 3xCalcTimerCheck Public Commands support some simple FloodProtection defined by that Variable. It tells the Bot how often this Command can be used in how many Minutes. Name the Numbers seperated by a single : included in ". • 3xCalcIgnoreChannels Use this Variable to name Channels you want to disable this Command in. Place the Channels inside the {}-Brackets seperated by Spaces. • 3xCalcLinkedBots This List holds the Handles of known Bots that support the same Feature. The Bot will only act if none of these Handles is on the Channel at this Point, otherwise the Bot does nothing. Place the Handles inside the {}-Brackets seperated by Spaces. • 3xMaxEntriesToShowInChannel This Variable hiolds the maximum Number of found Entries the Bot will post public to a Channel. Don't set this one to high. • 3xMaxEntriesToShowInQuery If the Query is triggered in a private Chat the Bot will display at most this Number of Entries to the User. It can be set a bit higher then the one for the Channel to allow Users to get Results. • 3xDatabaseTimerCheck Public Commands support some simple FloodProtection defined by that Variable. It tells the Bot how often this Command can be used in how many Minutes. Name the Numbers seperated by a single : included in ". • 3xUseAddNotification Use this Variable to enable the public !add Command Users can use to announce new Entries for the Databases. It can be issued via public or private Message to the Bot. Simple use !add to tell the DatabaseMaster new Entries you would like to get added. • 3xNotificationHandle Enter the Handle for the User that receives all !add Notes from the Bot. It allows only one Handle to avoid duplicate Changes to the Databases from different Users. Use .addentry or .delentry on the Partyline to add or delete Entries from a certain Database. The Syntax is as the following shows: .addentry .delentry Database is one of the Commands without the leading ! (i.e. url, clan, server, email, icq, what or country). All [,],{,},\ and " Characters will be removed from the Entry before adding. This is needed to prevent strange TCL-Errors i couldn't get rid of. • 3xNotificationLinkedBots This List holds the Handles of known Bots that support the same Feature. The Bot will only act if none of these Handles is on the Channel at this Point, otherwise the Bot does nothing. Place the Handles inside the {}-Brackets seperated by Spaces. • 3xUseUrl 3xUrlIgnoreChannels 3xUrlLinkedBots 3xFileUrl These ones should be self-explaining at this Point. They enable the different Databases, name Channels which shall be ignored, list Bots which should be checked for Existence and tell the File, the Bot uses as the Database for this Command. The Database is a simple AscII-File containing all Entries on single Lines. You might want to edit this by Hand first - after editing do some .rehash and the Bot rereads all of them. While using .addentry or .delentry you don't need to .rehash the Bot. If different Bots use the same Database remember to add Entries on one Bot only and to .rehash all other Bots to avoid Inconsistance. data/0040777000076700007670000000000007071711506011113 5ustar guppyguppydata/3xClans.db0100666000076700007670000002370107071712600012731 0ustar guppyguppy187: Clan 187 => http://www.outpost.ieo.ch/clans/187/homepage.htm 255: Impulse 255 => http://www.impulse255.de/ AD: Artists of Death => http://artists.quake.at/ AE: Action Enforcers => http://www.action-enforcers.de.cx/ AI: Alien Invasion => http://www.intergames.com/ai/ ALDI: ALDI Quake II Clan => http://home.in-brb.de/~kleye/ AMOK: Clan Amok => ? AOD: Army of Darkness => http://www.A-o-D.notrix.de/ APRIL: Clan April => http://members.tripod.de/april/ BAT: Battle Pigs => http://borsti.halifax.rwth-aachen.de/ BC: Bodycount => http://www.bodycount.de/ BD: Braindead => http://www.braindead.de/ BOD: Brotherhood of Doom => http://www.quakeforum.de/clans/bod/ BOH: Barons of Hell => http://www.boh.de/ BOL: Brotherhood of Lordaeron => http://www.quakeforum.de/clans/bol/ BSE: Black Souls of Evil => http://www.clan-bse.de/ BST: Blutsturz => http://www.rz.uni-frankfurt.de/~miweber/ BS: Blood Sucker => http://www.egoshooters.com/bloodsucker/ BV: Bavaria => http://www.quakeforum.de/clans/bv/ BW: Bestial Warlust => http://www.daddeln.com/ CD: Clan Destructor => ? COJ: Chiefs of Justice => http://haudraufwienix.com/coj/ CORE: Clan CORE => http://welcome.to/clancore CR: County Rangers => http://countyrangers.notrix.de/ CVH: Clan Vallasherra => http://www.vallasherra.org/ D2: Death Dealers => http://www.d2.org.pl/ D5: Defcon 5 => ? DB: DeMoN-Breed => ? DC: D3MONiC CORE => http://www.barrysworld.com/dc/ DC: Death Company => ? DDA: Dutch Deathmatch Allience => http://dda.gamepoint.net/ DDC: Ding Dong Clan => http://www.in-brb.de/~polo/ DDT: Diabolic Deathmatch Troopers => http://www.der-quaker.de/ddt/ DD: Dawning Dusk => http://www.asal.de/dd/ DD: Disney Devils => http://www.disney-devils.nu/ DEF: Defiance => http://www1.stuttgart.netsurf.de/~a_hinkel/ DFA: Death from Above => http://www.swissquake.ch/map-hq/dfa/ DFF: Die Fette Faust => http://www.dff.de/ DFS: Die faulen Säue => http://www.fmmm.com/dfs/ DIE: Destruction in Europe => http://www.gameszone.werl.com/die/ DIS: Disconnect? => http://www.cryogen.com/dis/ DNT: Clan Dan-Tist => http://www.primenet.de/dnt/ DOD: Dwarves of Dissolution => ? DOL: Daughters of Lilith => ? DP: Don't Panic => http://oleander.techfak.uni-bielefeld.de:8080/clan/ EA: Empire of Azeroth => http://www.azeroth.org/ EF: Die Eiserne Front => ? ELD: eL Diablo's Brigade => http://www.clan-eld.com/ ELK: Clan ELK => ? EVIL: Clan Evil => ? EW: Evil Wormz from Hell => ? EXO: eXodus => http://www.exodus.de/ E: Clan Evil => http://www.xs4all.nl/~plastic/evil/ FA: The Fallen Archangels => http://www.fallen.de/ FLX: FluX => http://www.quakeforum.de/clans/flux/ FMF: Full Metal Fiction => http://www.clan-fmf.de/ FNS: Fist of the North Star => ? FOB: Fellows of Blood => ? FQF: Fighting Quake Force => http://fqf.home.pages.de/ FRAG: Die Fragwürdigen => ? FSC: Flying Suicide Command => http://www.quakeforum.de/clans/fsc/ FS: Firing Squad => http://fs.netgames.net FUN: FunForce => ? FX: Frag Executors => http://fx.ima.pl/ F: Fus!on => http://www.planetfusion.de/ F: The Fraggles! => http://fraggles.home.pages.de/ GAUSS: Clan Gauss => http://www.in-brb.de/~gauss/ GDI: Gravediggaz Inc. => http://www.fasta.fh-dortmund.de/gdi/ GD: Guardians of Darkness => http://members.xoom.com/clangod/ GG: Ghosts & Goblins => ? GH: Der Guildo Horn Clan! GMBH: Clan GmbH => http://www.clan-gmbh.de/ GOC: Guardians of Chaos => http://www.ravage.net/goc/ GOD: Gladiators of Death => http://www.acos.net/god/ GOE: Gods of Egypt => http://www.gods.de/ GS: Giants => http://members.xoom.com/judges/ HA: Haed Smasherz => http://www.smasherz.de/ HF: Hellfire => ? HIV: Headhunting Immortal Vandals => http://www.weh.rwth-aachen.de/~highlander/clan-hiv/clan-hiv.htm HK: Hell Knights => ? HOA: House of Asha´man => http://hoa.splatterworld.de/ HQ: Hell Quakers => ? IBH: Imperial B-Hunterz => http://ibh.gzone.de/ IB: IceBreakers => ? ITF: iNSTaNt TeLeFRaGGeRz => http://come.to/itf IUZ: Iuzology => http://www.iuzology.org/ JH: Clan of Jihad => http://www.geocities.com/TimesSquare/7670/index.html JM: Jägermeister => http://jagermeisterclan.home.ml.org/ JOD: Judges of Doom => http://members.xoom.com/drew_/ JRQ: Jamaican qRew Quakers => http://www.swissquake.ch/jrq/ KAN: Kanarie => http://www.geocities.com/TimesSquare/Castle/1551/index.html KC-AC: Kegelclub Aachen e.V. => http://www.kegelclub.seite.ms/ KCW: KellaCreW => http://www.kellacrew.de/ KE: Kill Earth => http://kill-earth.profikiller.de/ KK: Klan Kraut => ? K: Das Kartell => http://www.kartell.net/ LAH: Last Action Heroes => http://lah.twilight-zone.de/ LA: Linear Algebra => ? LMS: Last Men Standing => http://julian.umwelt-campus.de/clan-lms/ LOC: Loca Heroes => http://www.Dortmund.netsurf.de/~wmertins/locclan.html LOD: Legion of Doom => ? LOR: Netwar Clan => http://surf.to/netwar.clan/ LSA: Lost Souls Alliance => ? LS: Lost Souls => http://www.quaker.de/ L: Clan Lovely => http://clan-lovely.org/ MAD: MaD aZZHoLeZ DReaMTeaM => http://irrenanstalt.headlight.de/mad.htm MAM: Munich Axe Murderers => ? MD: Masters of Disaster => http://clanmd.home.pages.de/ MG: Modern Gladiators => http://www.gladiators.de/ MIB: Man in Black => http://www.mib-clan.de/ MOD: Messengers of Doom => ? MOF: Masters of Fire => http://mof-clan.home.pages.de/ MOON: Clan Moonspell => http://www.moonspell.de/ MQM: Mike and the Quantum Mechanics => http://www.homepages.de/home/qmechs/ MTW: Mortal TeamWork => http://www.mortal-teamwork.de/ MVS: Medieval Spawns => http://quake.sn.umu.se/medieval/ M: MATRIX => http://matrix.deathrow.de/ N3D: Neo Doom Death Destruction => http://clans.quake2.co.uk/n3d/ NB: Nuclear Beasts => http://www.nuclear-beasts.de.cx/ NECRO: Clan Necro => http://www.snafu.de/~flo/necro/ NF: Nitro Force => http://www.nitroforce.de/ NINE: Clan 9 => http://www.clan9.com/ NWO: New World Order => ? N: NOPE => http://www.nope-clan.com/ OCR: Ocrana => http://www.ocrana.de/ OCTA: Clan Octagon => http://www.clan-octagon.com/ OPA: Old Players Alliance => http://www.oldplayers.de/ PDM: Paradigm => ? PIG: PiGs => http://borsti.halifax.rwth-aachen.de/quake/ POD: Ping of Death => http://www.ping-of-death.de/ POP: Clan POP => http://www.daddeln.com/ PPR: Schmerzerzeuger => http://www.schmerzerzeuger.de/ PSI: Psi-CoRPs => http://psicorps.home.pages.de/ PVC: Polyvinylchlorid => ? PX: Phoenix => http://www.snafu.de/~bachl/ PZ: PropanZ => http://www.propanz.de/ QG: Quake Guardians => http://www.qgclan.de/ QIB: Quaker in Black => http://www.subito.net/qib/ QL: Quake Lords => http://www.ruhr.de/home/quakelords/ QM: Die sind nur bei der Q-Mess ;o QS: Die Quadsäue => http://quadsau.fandalyth.net/ QT: QrafT => http://www.qraft.de/ QUAD: Quadaver => http://www.quadaver.de/ RCL: Red Chrome Legion => http://www.redchrome.com/ RDA: Die Reiter der Apokalypse => http://www.redchrome.com/rda/ REAPER: Reaper Clan => ? RIP: Rest in Pieces => http://www.rip-clan.de/ RK: Rune Keepers => ? RME: Radikal Men Elite => http://www.asam.baynet.de/~sperbera/ ROD: Reign of Death => ? ROX: Raiders of Xianth RR: Rocket Reign => http://www.astat.de/~privatuser/rr/ RS: Rettungssani => http://www.rettungssani.de/ SCP: Slipgate Central Processing => http://scp.aachen.nu/ SCR: Screamers => http://195.20.238.200/scr/ SC: Schralli Clan => http://www.schralli.de/ SC: The swedish Chefs => http://www10.torget.se/chefs/ SD: Spirit of Darkness => http://www.spirit-of-darkness.de/ SG: SightGivers => http://www.sightgivers.de/ SH: Severed Head => http://www.severedhead.de/ SK: Schroet Kommando => http://www.schroet.de/ SLC: Slaughter Clan => http://www.slaughterclan.de/ SMR: Suck my Rocket => http://www.suck-my-rocket.de/ SOD: Spear of Destiny => http://www.zork.nu/sod/ SOS: Seven of Spades => http://www.daddelgoetter.de/ SPIDER: SpiderClan => http://spiderclan.hhks.gun.de/ SQ: SwissQuakerS => http://www.swissquake.ch/swissquakers/ SW: Spectral Warlords => http://warlords.home.pages.de/ SX: Syndicate-X => http://syndicate-x.notrix.de/ TB: Torpedo Beuel => http://torpedo.home.pages.de/ TDE: The Destructive Element => http://comserv.urz.uni-magdeburg.de/~sonnenbu/tde.htm TDI: The Dark Icemarines => http://tdi.gametown.de/ TFA: Team Fortress Austria => http://members.forfree.at/~tfa/ TFP: The Fragging Pumpkins => http://tfp.splatterworld.de/ TG: Terrorgruppe => http://terrorgruppe.notrix.de/ THC: TreHornClan => http://trehorn.splatterworld.de/ TMR: Terminators => http://www.terminators.net TOD: Team of Destruction => http://splatterfest.ivm.net/ToD/ TOT: Temple of Terror => http://www.tot-clan.de/ TRASH: T.R.A.S.H => http://terror.splatterworld.de/pages/trash/ TT: ToolTeam => http://www.toolteam.net/ TVA: TurnVerein Angermund => http://www.angermund.de/ ;o TWC: The WildCards => http://wildcards.ml.org/ TW: Twilight Warriors => http://members.djcafe.com/universe/ TXC: The X-Clan => http://surf.to/txc/ TYT: TyTeam => http://home.kamp.net/home/christian.swienty/ UKN: uns Kriegt Niemand => http://www.lavatomb.de/ukn/ ULI: United Lamers International => http://unitedlamers.gametown.de/Shocked/main.htm UL: Unholy Legion => http://www.unholy-legion.de/ VC: VatiClan => http://www.quake2hq.com/vaticlan/ VF: Venga Force => http://www.venga-force.de/ VW: vOlLwUrSt => ? V: Visitors => http://visitors.gametown.de/ WFV: WurstFachVerkäufer => http://clanwfv.home.pages.de/ WF: Waidlafragger => http://www.waidlafragger.de/ WGF: Wuergihn Gibber Force => http://wgf.gamers.de/ WIC: Windows Installier Clan => http://www.digital-line.de/ WOB: Warriors on Battlefield => http://www.WoB-Clan.home.pages.de// X27: eXtreme 27 => http://www.x27.de/ Z: Clan Z de => http://clanz.home.pages.de/ Z: Clan Z fi => http://z.vekoduck.com/ mTx: MaTriX => http://matrixquake.home.pages.de/ CKB: Chaos Killer Brigade => http://chaos.gametown.de/ NBF: Natural Born Fraggers => http://nbf.gamepoint.net/ PM: PeaceMakerz => http://www.peacemakerz.de/ MB: MasterBlasters => http://www.masterblasters.de/ SIC: Stellar Intelligence Corps => http://www.confed.de/ NFI: National Force Of Investigation => ?data/3xCountries.db0100666000076700007670000001140107071712612013641 0ustar guppyguppy.AD => Andorra .AE => United Arab Emirates .AF => Afghanistan .AG => Antigua and Barbuda .AI => Anguilla .AL => Albania .AM => Armenia .AN => Netherlands Antilles .AO => Angola .AQ => Antarctica .AR => Argentina .ARPA => Old style Arpanet .AS => American Samoa .AT => Austria .AU => Australia .AW => Aruba .AZ => Azerbaijan .BA => Bosnia and Herzegovina .BB => Barbados .BD => Bangladesh .BE => Belgium .BF => Burkina Faso .BG => Bulgaria .BH => Bahrain .BI => Burundi .BJ => Benin .BM => Bermuda .BN => Brunei Darussalam .BO => Bolivia .BR => Brazil .BS => Bahamas .BT => Bhutan .BV => Bouvet Island .BW => Botswana .BY => Belarus .BZ => Belize .CA => Canada .CC => Cocos (Keeling) Islands .CF => Central African Republic .CG => Congo .CH => Switzerland .CI => Cote D'Ivoire (Ivory Coast) .CK => Cook Islands .CL => Chile .CM => Cameroon .CN => China .CO => Colombia .COM => US Commercial .CR => Costa Rica .CS => Czechoslovakia (former) .CU => Cuba .CV => Cape Verde .CX => Christmas Island .CY => Cyprus .CZ => Czech Republic .DE => Germany .DJ => Djibouti .DK => Denmark .DM => Dominica .DO => Dominican Republic .DZ => Algeria .EC => Ecuador .EDU => US Educational .EE => Estonia .EG => Egypt .EH => Western Sahara .ER => Eritrea .ES => Spain .ET => Ethiopia .FI => Finland .FJ => Fiji .FK => Falkland Islands (Malvinas) .FM => Micronesia .FO => Faroe Islands .FR => France .FX => France, Metropolitan .GA => Gabon .GB => Great Britain (UK) .GD => Grenada .GE => Georgia .GF => French Guiana .GH => Ghana .GI => Gibraltar .GL => Greenland .GM => Gambia .GN => Guinea .GOV => US Government .GP => Guadeloupe .GQ => Equatorial Guinea .GR => Greece .GS => S. Georgia and S. Sandwich Isls. .GT => Guatemala .GU => Guam .GW => Guinea-Bissau .GY => Guyana .HK => Hong Kong .HM => Heard and McDonald Islands .HN => Honduras .HR => Croatia (Hrvatska) .HT => Haiti .HU => Hungary .ID => Indonesia .IE => Ireland .IL => Israel .IN => India .INT => International .IO => British Indian Ocean Territory .IQ => Iraq .IR => Iran .IS => Iceland .IT => Italy .JM => Jamaica .JO => Jordan .JP => Japan .KE => Kenya .KG => Kyrgyzstan .KH => Cambodia .KI => Kiribati .KM => Comoros .KN => Saint Kitts and Nevis .KP => Korea (North) .KR => Korea (South) .KW => Kuwait .KY => Cayman Islands .KZ => Kazakhstan .LA => Laos .LB => Lebanon .LC => Saint Lucia .LI => Liechtenstein .LK => Sri Lanka .LR => Liberia .LS => Lesotho .LT => Lithuania .LU => Luxembourg .LV => Latvia .LY => Libya .MA => Morocco .MC => Monaco .MD => Moldova .MG => Madagascar .MH => Marshall Islands .MIL => US Military .MK => Macedonia .ML => Mali .MM => Myanmar .MN => Mongolia .MO => Macau .MP => Northern Mariana Islands .MQ => Martinique .MR => Mauritania .MS => Montserrat .MT => Malta .MU => Mauritius .MV => Maldives .MW => Malawi .MX => Mexico .MY => Malaysia .MZ => Mozambique .NA => Namibia .NATO => Nato field .NC => New Caledonia .NE => Niger .NET => Network .NF => Norfolk Island .NG => Nigeria .NI => Nicaragua .NL => Netherlands .NO => Norway .NP => Nepal .NR => Nauru .NT => Neutral Zone .NU => Niue .NZ => New Zealand (Aotearoa) .OM => Oman .ORG => Non-Profit Organization .PA => Panama .PE => Peru .PF => French Polynesia .PG => Papua New Guinea .PH => Philippines .PK => Pakistan .PL => Poland .PM => St. Pierre and Miquelon .PN => Pitcairn .PR => Puerto Rico .PT => Portugal .PW => Palau .PY => Paraguay .QA => Qatar .RE => Reunion .RO => Romania .RU => Russian Federation .RW => Rwanda .SA => Saudi Arabia .SC => Seychelles .SD => Sudan .SE => Sweden .SG => Singapore .SH => St. Helena .SI => Slovenia .SJ => Svalbard and Jan Mayen Islands .SK => Slovak Republic .SL => Sierra Leone .SM => San Marino .SN => Senegal .SO => Somalia .SR => Suriname .ST => Sao Tome and Principe .SU => USSR (former) .SV => El Salvador .SY => Syria .SZ => Swaziland .Sb => Solomon Islands .TC => Turks and Caicos Islands .TD => Chad .TF => French Southern Territories .TG => Togo .TH => Thailand .TJ => Tajikistan .TK => Tokelau .TM => Turkmenistan .TN => Tunisia .TO => Tonga .TP => East Timor .TR => Turkey .TT => Trinidad and Tobago .TV => Tuvalu .TW => Taiwan .TZ => Tanzania .UA => Ukraine .UG => Uganda .UK => United Kingdom .UM => US Minor Outlying Islands .US => United States .UY => Uruguay .UZ => Uzbekistan .VA => Vatican City State (Holy See) .VC => Saint Vincent and the Grenadines .VE => Venezuela .VG => Virgin Islands (British) .VI => Virgin Islands (U.S.) .VN => Viet Nam .VU => Vanuatu .WF => Wallis and Futuna Islands .WS => Samoa .YE => Yemen .YT => Mayotte .YU => Yugoslavia .ZA => South Africa .ZM => Zambia .ZR => Zaire .ZW => Zimbabwedata/3xIcq.db0100666000076700007670000000215107071712620012403 0ustar guppyguppyA51praios => 4679442 Atomizer => 740599 BC-GianT => 12343170 BD-MADMAN => 531058 Cannibal => 4945720 DEFCON_5 => 12808438 DIE|DooM => 26116949 Fearicon => 314563 GameCat => 6235510 Gonzo => 9191847 H4v0k => 28076648 HauDraufWieNix => 3254258 Jerk => 762690 KOD-Split => 3726255 Mikey => 427497 Nailman => 3777890 Obi1998 => 6870889 OctA|AleX => 2564612 Pata => 643278 PoP|cHaOS => 43749845 Questor => 1977648 Rebel => 1093590 Reschky => 8813611 & 3727108 SD|Demon => 1117967 SE-REEh => 14258347 SH|friTTy => 8296357 STT|Neg => 7517097 Sal- => 9380450 Sammy => 3201528 Sl3dg3 => 8374419 Smarty => 58800185 StarAce => 4873794 TMR|Chris => 5363828 TMR|Dark => 29489003 TMR|Woody => 4851736 Toxical => 6630651 TripleX [Da3X] => 39433198 UncleBob => 20887301 Zaister => 6510566 [JRQ]ZeuS => 652480 [ReDoO] => 3387996 [X]Astral => 2652934 [k]Fabs => 281899 [uKN]Cruz => 8731986 [uKN]Mav => 4910704 eXo-rtom => 1029833 hunTer-o1 => 11409727 iBh|Necronos => 5800076 iBh|StOrM => 1912973 k137 => 3347039 lms|elvis => 2841782 tG|ButcH => 2887753 |QG|Byte => 44795064 |Vohaul| => 8296357data/3xEmails.db0100666000076700007670000000232707071712616013113 0ustar guppyguppyiBh|Peace => webmaster@m-kunze.de PoBacke => pobacke@gntnet.de AoD => AoD@quakeclan.net BC-XQR => x@bodycount.de Cede => cede@cede-gfx.de Cricetus => cricetus@yahoo.com DIE|DooM => die.doom@gmx.net Devil => devil@quakeclan.net Dr_SmErZ => SmErZ@arcormail.de Fearicon => Fearicon@hehe.com Flowie => Flowie@gmx.de Fox_Mulder => fox@quake-gott.de Gonzo => gonzo@planetquake.com MaDMaNiaC => madmaniac@dns-detmold.de MetaBaron => metabaron@azeroth.org OPA|Mug => theMug@bigfoot.de PoP|cHaOS => chaos@daddeln.com QuAd|Mega => mega@quadaver.de Questor => Questor@Q-Continuum.de RedoO => redoo@ocrana.de Scape => scape@mindless.com Speedo => speedo@q3a.de Stone|SD => gabbaguerilla@gmx.net TFP|vio => violator@firemail.de TMR|Chris => Chriss@terminators.net TMR|Sentinel => Sentinel@terminators.net TripleX [Da3X] => daniel.bleisteiner@berlin.de Vatikan => vatikan@severedhead.de Wikinger => wikinger-@gmx.net [BDC]Bomb => m.metz@iserlohn.netsurf.de [uKN]Cruz => crusader.@gmx.net cHaoS => chaos@daddeln.com eNigMa => eNigMa@prima.de eRRox => errox@campers-corner.de m^Beast => lanman999@gmx.net rtom => rtom@gmx.de |QG|ByTe => bytemonster@magicfx.de |nbf|War => sspies@main-rheiner.de Thali => thali@gmx.netdata/3xServer.db0100666000076700007670000002405107071712624013144 0ustar guppyguppyQ : LocaNet-ww => 194.64.176.5:26000 Q : Zeki => 132.230.63.23:26000 Q2 : -- Shokk! -- BattleGrounds => 212.3.158.113:27920 Q2 : -- Shokk! -- PureDeathMatch => 212.3.158.113:27910 Q2 : -- Shokk! -- Rocket Arena => 212.3.158.113:27930 Q2 : ---Strange CTF 1.50--- => 134.93.224.166:27910 Q2 : -= Fus!on CaP-Liga RocketArena2 =- => 137.226.147.4:27910 Q2 : -= Fus!on DECL Battleground =- => 137.226.147.4:27920 Q2 : -=MIB-Battleground-1=- => 194.64.183.200:27911 Q2 : -=MIB-Battleground-2=- => 194.64.183.200:27912 Q2 : -=MIB-Lithium II=- => 194.64.183.200:27910 Q2 : -=MIB-ModOfTheMonth=- => 194.64.183.200:27913 Q2 : -=MiB-Rail Arena=- => 194.64.183.200:27914 Q2 : -=THC=- FISCHDOSE 2 => 195.243.56.3:27920 Q2 : -=THC=- FISCHGERUCH => 195.243.56.3:5002 Q2 : -=THC=- FISCHMOB 2 => 195.243.56.3:27910 Q2 : -=THC=- FISCHMOB 3 => 137.226.147.4:27930 Q2 : -=[FM]-Massaker=- => 131.234.54.24:27910 Q2 : -=fakt=(Battle1.36)=- => 141.32.46.66:27910 Q2 : -=gXp=-ActionQ2-Teams-Server => 194.231.41.126:27950 Q2 : -=gXp=-BattleGround-1 => 194.231.41.126:27930 Q2 : -=gXp=-BattleGround-2 => 194.231.41.125:27920 Q2 : -=gXp=-BattleGround-3 => 194.231.41.125:27921 Q2 : -=gXp=-BattleGround-4 => 194.231.41.125:27922 Q2 : -=gXp=-BattleGround-5 => 194.231.41.125:27923 Q2 : -=gXp=-BattleGround-6 => 194.231.41.125:27924 Q2 : -=gXp=-BattleGround-7 => 194.231.41.125:27925 Q2 : -=gXp=-BattleGround-8 => 194.231.41.125:27926 Q2 : -=gXp=-LMCTF => 194.231.41.125:27911 Q2 : -=gXp=-PureDeathMatch => 194.231.41.126:27940 Q2 : -=gXp=-RocketArena-1 => 194.231.41.126:27920 Q2 : -=gXp=-idCTF => 194.231.41.126:27910 Q2 : 187^IrrenHaus CTF => 194.64.183.200:27977 Q2 : 187^Knochenbrecher RA2 => 194.64.183.200:27988 Q2 : :-)BlooadArea(-: [BG] => 129.206.101.123:27912 Q2 : Lithium => 129.206.101.123:27910 Q2 : Rocketarena 2 => 129.206.101.123:27911 Q2 : Arthur Dents Battleground => 129.69.116.183:27930 Q2 : Arthur Dents CTC => 129.69.116.183:27920 Q2 : Arthur Dents Lithium => 129.69.116.183:27910 Q2 : Cardassia Lithium 3.20 => 194.64.167.5:27910 Q2 : Chaos Quake quake.bnbt.de => 194.95.194.14:27920 Q2 : Clan [GLK] Quake2 CTF => 130.75.179.39:27930 Q2 : ConCarne's HOT Chilli => 134.130.48.237:27910 Q2 : Court of War MTW|Sil's Ver. 1.36 => 130.149.237.13:27911 Q2 : Crosspoint MTW|Sil => 130.149.237.13:27910 Q2 : FGKs_Battle_Taverne => 134.130.195.216:27930 Q2 : FGKs_Duel_II_Taverne => 134.130.195.216:27950 Q2 : FGKs_Duel_I_Taverne => 134.130.195.216:27940 Q2 : FGKs_Lithium_Taverne => 134.130.195.216:27910 Q2 : FGKs_Rocket_Taverne => 134.130.195.216:27920 Q2 : Fleischerei [CLZ] -=CTF=- => 141.99.26.8:27910 Q2 : Fleischerei [CLZ] KeysCTF => 141.99.26.10:27910 Q2 : ForceField [TF] -=CTF=- => 141.99.26.9:27910 Q2 : Forteresse I [CLZ] CTF Li.II => 139.174.247.126:27910 Q2 : Forteresse II [CLZ] CTF Li.II => 139.174.247.126:27912 Q2 : Forteresse III[CLZ] CTF LFire => 139.174.247.126:27914 Q2 : GI: Newt (Reckoning) => 195.147.246.71:27910 Q2 : Gallitepp | assassin => 194.64.167.5:27930 Q2 : Harry's Lithium 2 => 134.102.96.151:27920 Q2 : Harry's Lithium => 134.102.96.151:27910 Q2 : HawoQ => 131.188.28.45:27910 Q2 : Infomaniak's WarZone -=[DeathMatch][Lithium]=- => 195.141.15.110:27910 Q2 : Klospuelung -= CTF =- => 195.26.192.199:27910 Q2 : Lara Quake2 => 195.195.200.10:27910 Q2 : MTW-Battle-Q2NT => 129.70.5.55:27990 Q2 : MTW-BattleNervenKlinik => 129.70.5.55:27920 Q2 : MTW-CTF-FolterKammer => 129.70.5.55:27910 Q2 : MTW-Duel-ShuriksPlace => 129.70.5.55:27999 Q2 : MTW-GX-Blutrausch => 129.70.5.55:27960 Q2 : MTW-Privatbattle => 129.70.5.55:27912 Q2 : MTW-RA2-FolterArena => 129.70.5.55:27930 Q2 : Metzelkueche LMCTF 5.0 => 131.220.159.242:27910 Q2 : NDL Rocket Arena 2 #2 => 131.246.108.89:27910 Q2 : QL - Battleground => 141.39.224.56:27911 Q2 : QL - Lithium DM => 141.39.224.56:27912 Q2 : QL - NightHunters => 141.39.224.56:27910 Q2 : QSH-BG -=DeCl=- => 141.100.40.69:27920 Q2 : Quake II quake.bnbt.de => 194.95.194.14:27910 Q2 : Quakeland II => 195.206.156.232:27910 Q2 : Quasar60 => 139.174.248.165:27910 Q2 : Railgun Battle => 134.130.17.9:27912 Q2 : Rocket Land 2 => 195.206.156.232:29770 Q2 : Rookies Rh70 Lithium => 134.76.173.62:27920 Q2 : SWISSQUAKE Q2 LITHWIZARD => 195.186.2.100:27910 Q2 : Sight Givers' Battle1 => 134.130.57.112:27920 Q2 : Sight Givers' Battle2 => 134.130.57.112:27930 Q2 : Storm LM_CTF_3.0 => 195.206.156.232:29750 Q2 : TKQ2 Pro-Lithium => 195.34.133.143:27910 Q2 : Wangtang => 195.206.156.232:29760 Q2 : Waterman Quake2 Lithium II => 195.180.62.29:27910 Q2 : [BSA-DN] SoftCom DM64 => 194.221.111.249:27915 Q2 : [DN] SoftCom Rogue => 194.221.111.249:27912 Q2 : [DN] SoftCom Xatrix => 194.221.111.249:27911 Q2 : [GdI] Gravediggaz Inc. Cemetery (WF) => 193.25.22.197:27910 Q2 : [LF]'s Kampfgrunz => 192.109.226.20:27955 Q2 : [LF]'s Rocket Arena II => 192.109.226.20:27910 Q2 : [MAM] Quake2 Deathmatch => 129.187.214.112:27910 Q2 : [McF] Dirt cleans the stomach. => 130.149.29.40:27910 Q2 : [RYL]=DM-Stuetzpunkt => 134.130.17.9:27910 Q2 : [gs] ActionQuake => 195.227.38.243:27940 Q2 : [gs] Battleground 1 => 195.227.38.243:27920 Q2 : [gs] Battleground 2 => 195.227.38.243:27921 Q2 : [gs] Battleground 3 => 195.227.38.243:27922 Q2 : [gs] CTF => 195.227.38.243:27930 Q2 : [gs] Deathmatch 1 => 195.227.38.243:27910 Q2 : ]II[ USS Invincible I WF 4.1 FAST! => 129.206.119.117:27910 Q2 : de.alt.games.quake => 134.76.27.223:27910 Q2 : eVIlBinG LaUFsTAl[L]itH => 195.8.224.142:27920 Q2 : eVIlBinG gRUppeNcHAos CTF => 195.8.224.142:27910 Q2 : eVIlBinG k[RA2]bbelgruppe => 195.8.224.142:27930 Q2 : eViLBinG sPiELplAtZ 1 => 195.8.224.142:27990 Q2 : noname => 134.102.96.151:27930 Q2 : noname => 141.100.40.69:27910 Q2 : quake.de Quake II => 194.64.176.5:27910 Q2 : quake.goe.net - Weapons of Destruction DM => 134.76.27.101:27911 Q2 : quake.goe.net - lithium => 134.76.27.101:27910 Q2 : tug-BABAIEL [Q2 DM] => 195.210.0.171:27910 Q2 : {rS} -- redSector -- LMCTF 5.0 w/o Plasma Rifle => 134.106.66.58:27910 Q2 : {rS} FragGym Rocket Arena: LMCTF TrainingsCamp - HOOK ON => 134.106.66.58:27911 Q2 : |3X| SplatterdoM o[Duel#1]o => 130.149.17.35:27910 Q2 : |3X| SplatterdoM o[Duel#2]o => 130.149.17.114:27910 Q2 : |3X| SplatterdoM o[LithiuM]o => 130.149.25.14:27910 Q2 : |3X| SplatterdoM o[WaR#1]o => 130.149.17.35:27920 Q2 : |3X| SplatterdoM o[WaR#2]o => 130.149.17.114:27920 HLMASTER : half-life.west.won.net:27010 Q2MASTER : q2master.gxp.de Q2MASTERLIST : http://user.cs.tu-berlin.de/~mrbrain/Q2List/q2list.cgi?action=gamespy Q3MASTER : gXp => q3master.gxp.de Q3MASTER : q3master.splatterworld.de QW : BD-Zeki => 132.230.63.23:27500 QW : Best of Usermaps FF => 132.252.106.69:27500 QW : Clan SCP Landliebe DM => 137.226.141.203:27501 QW : DDC Clanmatch => 130.149.237.13:27502 QW : Da N3w Faust DM6 #1 => 134.99.160.44:27500 QW : Da N3w Faust DM6 => 134.99.160.45:27500 QW : Don't Panic Duel #1 => 129.70.129.10:27101 QW : Don't Panic Duel #2 => 129.70.129.10:27102 QW : Don't Panic War => 129.70.129.10:27666 QW : Duel bei Germany.Net => 151.189.12.242:27510 QW : Dynamo's Headhunter Server => 134.99.160.45:27501 QW : Dynamo's und Totmacher's Duel => 134.99.160.45:27500 QW : Dynamo's und Totmacher's Duel B => 134.99.160.45:27502 QW : Dynamo's und Totmacher's Duel C => 134.99.160.45:27503 QW : Flys 1on1 => 134.169.8.2:27500 QW : Fragwuerdig CTF => 195.37.76.21:27500 QW : Fus!on World 1on1 => 129.217.172.19:27500 QW : Fus!on World 2on2 => 129.217.172.19:27666 QW : Germany.Net DECL => 151.189.12.243:27520 QW : Germany.Net DECL => 151.189.12.244:27666 QW : Germany.Net [ClanWars] => 151.189.12.243:27500 QW : GoC-ClanServer => 130.149.237.13:27666 QW : IBH's Lost Outpost => 195.211.161.211:27500 QW : LMS (internal) 1on1 => 143.93.40.152:27500 QW : MD CTF 4.2 => 141.44.25.32:27501 QW : MD TF 2.5 (modified) => 141.44.25.32:27500 QW : MindWaX War => 134.169.8.2:27666 QW : MindlessTown 1on1 => 130.149.17.27:27511 QW : MindlessTown 2on2 => 130.149.17.27:27522 QW : MindlessTown [ClanWar] => 130.149.17.27:27666 QW : MindlessTown-Clanwar TF => 130.149.17.27:27501 QW : QUADAVER 1on1 => 130.149.17.27:27511 QW : QUADAVER 2.20 DM6 => 130.149.17.29:27500 QW : QUADAVER 2on2 => 130.149.17.27:27522 QW : QUADAVER DM6 => 130.149.17.26:27500 QW : QUADAVER DeCL => 130.149.17.28:27666 QW : REAPER CTF QW2.21 => 132.230.153.50:27500 QW : Rocket-Arena Germany.net => 151.189.12.242:27520 QW : Splatterfest - Clan => 195.185.185.52:27888 QW : Splatterfest - Duel => 195.185.185.51:27101 QW : Splatterfest - FFA => 195.185.185.51:27500 QW : Splatterfest - WAR => 195.185.185.51:27666 QW : Splatterfest - WAR => 195.185.185.52:27500 QW : SwissQuake QW 2.30 => 195.186.2.100:27500 QW : TeamFortress Germany.net => 151.189.12.242:27500 QW : The DOOM of [LA] Competition => 129.13.209.22:27500 QW : The DOOM of [LA] Duel => 129.13.209.22:27101 QW : Topsid DM6 => 160.45.32.177:27500 QW : Topsid DeCL => 160.45.32.129:27666 QW : Topsid Death32 => 160.45.32.129:27500 QW : Topsid Duel #1 => 160.45.32.200:27501 QW : Topsid Duel #2 => 160.45.32.200:27502 QW : Z'ha'dum 1on1 Duel => 134.91.124.25:27501 QW : [GMBH]MindlessTownTF => 130.149.17.26:27501 QW : [GS] Der Quaker DeCL Teamplay => 195.227.38.243:27503 QW : [GS] Der Quaker Duel I => 195.227.38.243:27501 QW : [GS] Der Quaker Duel II => 195.227.38.243:27502 QW : [GS] Der Quaker FFA Deathmatch => 195.227.38.243:27500 QW : [GS] Der Quaker Rocket-/ClanArena => 195.227.38.243:27504 QW : [Hell] Clan [eLD] vs [JM] => 131.220.156.133:27500 QW : [IUZ]Knochenthron Clanwars => 129.217.210.90:27666 QW : [IUZ]Knochenthron Duel 1 => 129.217.210.90:27101 QW : [IUZ]Knochenthron Duel 2 => 129.217.210.90:27102 QW : [PiG]'s World TF => 134.130.48.99:27500 QW : deathmatch germany => 151.189.0.32:27500 QW : games.jena.thur.de => 193.174.15.19:27500 QWMASTER : qwmaster.ocrana.de QizmoProxy : Barrysworld 1 => 194.88.93.19:27500 QizmoProxy : Barrysworld 2 => 194.88.93.19:27501 QizmoProxy : OCRANA => 129.217.206.140:44444 QizmoProxy : Splatterfest => 195.185.185.57:27500 QizmoProxy : Topsid => 160.45.32.177:10000 SIN : SwissQuake.ch => 157.161.139.120:22450 Q3A: Zentralverriegelung => 131.234.126.49:27960data/3xUrls.db0100666000076700007670000007474407071712630012636 0ustar guppyguppy#quake.ger Votes => http://www.quakeress.de:6080/showvotings.php3 030 berlin => http://www.berlin030.de/ 2on2-Liga => http://www.oberland.net/homepages/waschtl/2on2/ 3 Fingers => http://www.voodooextreme.com/3Fingers/ 3D Explorer => http://www.xdsoft.com/explorer/ 3D action => http://3daction.gametown.de/ 3DFILES.COM => http://www.3dfiles.com/ 3DFX => http://www.3dfx.com/ 3DFX Mania => http://www.3dfxmania.com/ 3DNEWS.NET : News with Perspective => http://www.3dnews.net/ 3TCTF HomePage => http://3tctf.gamepoint.net/ 3rr0x Quake Pa6e => http://www.eqp.seite.ms/ 3xBot Votings => http://user.cs.tu-berlin.de/~mrbrain/3xBot/votes.cgi 3xCam => http://www.Da3X.de/3xCam/ Apache-SSL => http://www.apache-ssl.org/ BSEEN EggDrop TCL Script => http://mars.age.psu.edu/ BotNetCentral => http://botnetcentral.wingdesign.de/ CDDB - CompactDisk DataBase => http://www.cddb.com/ CP => http://www.computer-profis.de/ CR-bot für Quake II => http://www.planetquake.com/crbot/ CRT [Telnet] => http://www.vandyke.com/ CT HomePage => http://www.ix.de/ct/ CVS - Open Source Version Control Software => http://www.sourcegear.com/CVS Capture the Flag => http://threewave.planetquake.com/index.shtm Capture! - Quake2 CTF Mode => http://www.planetquake.com/kunani/capture/ Capture! CTF => http://www.planetquake.com/kunani/capture/ Catch the Chicken (CTC) => http://www.planetquake.com/chicken/ CebIT => http://www.cebit.de/ Celebraty Wallpapers => http://members.xoom.com/dg_wallpaper/index.htm Cenobite's Sanctuary => http://www.barrysworld.com/cenobite/ Champions League for Quake => http://www.theclq.com/ Chaos Deathmatch for Quake II => http://chaosdm.telefragged.com/ ChartHits => http://charthitz.tsx.org/ Cheapo QuakeWorld-Proxy => http://www.saunalahti.fi/~softech/cheapo.htm CheatSearch => http://www.cheatsearch.com/ CheatWeb [Referate/Prüfungen/etc] => http://www.cheatweb.de/ Cheats und Lösungen - StrathPage => http://www.netcologne.de/~nc-strather/ CherryRoms.com [Emulation] => http://www.cherryroms.com/ Chillcam => http://www.thegeek.com/chillcam/ Chinesische Tierkreiszeichen => http://www.tirol.com/layoutneu/magazin/astronline/neu/china/chinaindex.html Chriss's Demopage => http://come.to/chriss/ Cinescape Online => http://www.cinescape.com/ Click here to find => http://www.clickheretofind.com/ Club Kasparov HomePage => http://www.clubkasparov.ru/ Comics => http://surf.to/comic Computer Stupidities => http://rinkworks.com/stupid/ Cool archive => http://www.coolarchive.com/ Counter2000 => http://www.counter2000.de/ Covers archive => http://www.coversarchive.com/ Custom Eyes => http://www.glabouni.com/CustomEyes/ Cyberlink PowerDVD => http://www.cyberlink.com.tw/ Cygnus Cygwin [Unix-Tools for Windows] => http://www.cygnus.com/cygwin/ D2 Mannesmann => http://www.d2privat.de/ DFN NewsServer => news.cis.dfn.de DHTML Scripts, Demos, Tutorials and more [DynamicHTML] => http://www.bratta.com/dhtml/ DIrc => http://www.dragonmount.net/software/dirc/ DNS - Detmolder Netzerwerk-Session => http://www.dns-detmold.de/ DQL - The Dutch Quake League => http://dutch.quakeleague.com/ DVD Soft => http://www.dvd.da.ru/ DVD box Office => http://www.dvdboxoffice.com/ Da3X - TripleX WebpageS => http://www.Da3X.de/ DaPak => http://www.planetquake.com/dapak/ DaRTOMI => http://exodus.de/dartomi/ DaSnoop => http://maxpages.com/dasnoop/ DaU's Exchange Rates => http://www.questor.de/eggdrop/rates.txt Daddeln - CH@OS Q3a LEaGUE => http://www.daddeln.com/ Dark Horizonts => http://www.darkhorizons.com/ Darkbreed => http://www.darkbreed.net/ Das MoorHuhn => http://www.moorhuhn.de/ Das ZWeb => http://www.zaister.de/ Das aOL Tagebuch => http://www.questor.de/lol/tagebuch.html DeTeMedien [Telefon-auskunft] => http://www.teleauskunft.de/ Deathmatch Classics => http://www.planetquake.com/dmclassics/ DemoPlay => http://www.gibbed.com/demoplay/ Der Quaker - Quake News => http://www.der-quaker.de/ Der christliche InternetGuide => http://www.jesus.de/ Der schnelle Internetanschluß => http://telekom.iqweb.de/adsl/ Derbauer - FlashDesign => http://www.derbauer.de/ Deutsche CTF-Liga => http://ctf.home.pages.de/ Deutsche Clanliga => http://www.decl.de/ Deutsche Duel Liga => http://www.splatterworld.de/dedl/ Deutsche NationalLiga => http://www.quakeforum.de/national/ Deutsche Quake II ClanLiga => http://www.outpost.ieo.ch/dq2cl/ Deutsche TeamFortress League => http://www.dtfl.de/ Deutscher ClanRing => http://www.quakeforum.de/dcr/ Deutscher Mirror für Quake3 Stuff => http://scp.aachen.nu/~saloon/ Deutsches Quake Zentrum => http://www.dqz.de/ Developium [Game-Development] => http://www.developium.com/ Die Endgültige Müllseite => http://freunde.imperium.de/muell/muell.htm Die härtesten Videos der Welt => http://www.stileproject.com/video.html Die voll extreme TV-Total Page => http://members.tripod.de/tvtotal/ Digital audio Copy => http://www.windac.de/ Digital blasphemy [Wallpapers] => http://www.digitalblasphemy.com Dirty Little Helper [Cheats] => http://www.dlh.net/ Domain Registration Service => http://www.dnic.de/ Downloadware Collection => http://www.downloadware.de/ Dteam - The premiere 3d mapping guild => http://www.captured.com/dteam/ Dumm fickt Gut => http://www.dummficktgut.de/ Dynamic Drive DHTML code library! => http://dynamicdrive.com/ Ebay [auktionen] => http://www.ebay.de/ EggDrop CVS Usage => http://www.eggheads.org/txt/cvs.txt EggDrop FaQdrop => http://faqdrop.eggheads.org/ El Nino Quake Extensions => http://www.telefragged.com/vwep/ Elephant Seven GmbH [WebDesign] => http://www.e-7.com/ Emacs.org => http://www.emacs.org/ Emulation Excitement [Roms] => http://www.emux.com/ Eraserbot for Quake II => http://impact.frag.com/ EverQuest --- 989 Studio's Massively Multiplayer RPG => http://www.everquest.com/ FONTZ v2.0 => http://indigo.simplenet.com/fontz/ FQa [Federal Quake alliance] => http://www.gamescenter.de/akv/site/fqa/select.html FTP Search => http://ftpsearch.ntnu.no/ FUSE - Fallo's UO Server Engine => http://fuse.stratics.com/ FaQ-Proxy => http://www.finnish.allied.quakers.org/proxy/index.html Facts and Legends => http://www.falq.de/ Falk Verlag [Karten/Pläne/Routenplanung] => http://www.falk-verlag.de/ Famkebot for Quake II => http://www.quake2.com/famkebot/ Famous babes => http://www.famousbabes.com/ Fantasy Productions [DSa, Shadowrun & Co.] => http://www.shadowrun.de/ Fast MP3-Search => http://mp3.lycos.com/ FastSearch => http://www.alltheweb.com/ Feari's Waves-Liste => http://www.landshut.org/bnla01/members/feari/fearwave.txt Feari's Webcam => http://www.landshut.org/bnla01/members/feari/ Fellow - amiga Emulator => http://www.geocities.com/SiliconValley/Peaks/5244/ Femta : Software for Life => http://www.femta.com/ Film ab - Online - KinoMagazin => http://www.film-ab.de/ Final Fantasy : The Movie => http://www.finalfantasy.com/ Final Fantasy Extreme => http://www.ff8.org/ Final Reality [benchmark] => http://www.finalreality.com/ Firearms - a Quake2 Total Conversion => http://firearms.telefragged.com/ FragNow '99 [LanSession] => http://fraqnow.lanparty.de/ Free Fonts at Fontastic! => http://rover.wiesbaden.netsurf.de/~kikita/ Free Media Network => http://www.freetextures.com/ Freestyle Quake => http://freestyle.splatterworld.de/ FreezeTag [Quake II Mod] => http://www.planetquake.com/freeze/ Fulgore => http://www.fulgore.de/ Future vs. Fantasy (Quake-Mod) => http://fvf.warzone.com/ GNN - GOLEM Network News => http://www.gnn.de/ GO Translator - Übersetzer => http://translator.go.com/ GOa.TRaNCE.STREaM [MP3] => http://www.bigfreakinserver.com/ GRaDE - Internet Graphic Design => http://www.gra.de/ GaMERS.DE => http://www.gamers.de/ GameDev.net => http://www.demonews.com/ GameSpy => http://www.gamespy.com/ Gameart => http://www.gameart.com/ Gamers Gathering [GaGa] => http://www.gamers-gathering.de/ German Gamers League => http://www.ggl.de/ German Quake News => http://gqn.home.pages.de/ German Shooter League => http://www.gsl-liga.de/ GetRight [Download-Software] => http://www.getright.com/ Ghostscript, Ghostview & GSview => http://www.cs.wisc.edu/~ghost/ GibStats => http://www.planetquake.com/gibstats/ GibWorld '98 => http://www.gibworld.erdmann.de/ Gonz-O-Matic => http://www.planetquake.com/gonzomatic/ Gonzo's Graveyard => http://www.planetquake.com/gonzo/ Gore Gallery => http://www.goregallery.com/ Götzenzar's Quake-Paradise => http://members.xoom.com/Goetzenzar/ HaRTWaRE => http://www.hartware.de/ Hackbox Search => http://astalavista.box.sk/ Hamburgs Lan Party Site => http://hlps.lanparty.de/ HardOCP [Hardeware] => http://www.hardocp.com/ HauDraufWieNix => http://www.haudraufwienix.com/ HeadHunters => http://www.planetquake.com/headhunters/ HeadHunters III => http://tarot.telefragged.com/ Headshot's Tiny Deathmatch Map Depot => http://headshot.terrafusion.com/ Heise News - Ticker => http://www.heise.de/newsticker/ Herberts Maennerseiten => http://www.maennerseiten.de/ Homebase - Die Internet Tools Site => http://www.goldnagl.at/homebase/ Homebase der German Fighters => http://www.german-fighters.de/ ICQ => http://www.icq.com/ IGL : Incite Gaming League => http://www.gxp.de/igl IParty => http://www.bumpkinland.com/iparty/index.asp IRC News => http://www.ircnews.com/ IRC Scripting Support => http://www.irc-scripts.com/articles/browse.php3 IRC Scripts => http://www.irc-scripts.com/ IRCN [Script] => http://www.ircn.org/ IdGamma HomePage => http://d128.com/idgamma/ Infobot => http://www.cs.cmu.edu/~infobot/infobot.html Internet Traffic Report => http://www.internettrafficreport.com/ Internet ohne Taktung => http://www.ungetaktet.de/ Jagged's Quake Movie Reviews => http://qmovies.vortexq.com/ Jailbreak for Quake II => http://planetquake.com/rxn/jail/ Jump this => http://vespa.gametown.de/ Justdis Radio HomePage => http://www.justdis.com/ K-jöfol => http://www.kjofol.org/ KRaWaLL [Online SpieleMagazin] => http://www.krawall.de/ Kate Winslet Fan Club Homepage => http://www.kwfc.com/ Kawasaki Sports => http://www.kawasaki.com/ Kerlchen's Fun Page => http://www.funnypics.de/ KeyGrip [QuakeDemoEditing] => http://www.planetquake.com/keygrip/ Klient [IrcClient] => http://www.klient.com/ Knack & back => http://www.knack-und-back.de/ Kochen und Rezepte => http://www.chefkoch.de/ Kostenlose SMS, Pager, Fax => http://spf.here.de/ Kostenloser Weckruf => http://www.weckruf.de/ Kreaturen => http://hell.home.pages.de/ L-Fire CTF für Quake II => http://yyz.com/LFire/ L33T - LanParty in Mainz => http://www.grabellus.de/l33t!/ LaYER3.ORG [WinaMP Skins] => http://www.layer3.org/software/winampmangled.html LakermaN's Demopage => http://www.come.to/lakerman Lan-Party.de Lanparties in Deutschland und Umgebung => http://www.gamers.de/lan-party.de/ LeapFTP => http://www.leapware.com/leapftp.html LeechFTP [Freeware] => http://linux.fh-heilbronn.de/~debis/leechftp/ LinuX & UniX Shell accounts => http://www.shells.org/ Linux Games => http://www.linuxgames.com/ Listbot [free MailingLists] => http://www.listbot.com/ LiteStep => http://www.litestep.net/ Lithium Mod für Quake II => http://www.lithium.com/ LockDown 2000 => http://www.lockdown2000.com/ LogiTech => http://www.logitech.com/ Lokis Minions Capture the Flag => http://www.planetquake.com/lmctf/ Lycos SMS => http://www.lycos.de/service/sms/agb.html M-U-C-K => http://muck.home.pages.de/ MD3 Model Viewer [Java] => http://fragland.net/md3view/ MD3 Model Viewer [NonJava] => http://q3arena.net/mentalvortex/md3view/ MLPS [Munich's Lan Party Site] => http://mlps.acos.net/ MP3 Club => http://www.djstuff.net/mp3club/ MP3 Napster => http://www.napster.com/ MP3 News => http://mp3.lion.cc/ MP3 Search => http://194.95.209.6/ MP3-Now - Ultimate MP3-Resource => http://www.mp3now.com/ MP3-Spy => http://www.mp3spy.com/ MPeX.NET => http://www.mpex.net/ MUNDSTUHL comedy! => http://www.mundstuhl.de/ Manga Heaven => http://mangaheaven.cjb.net/ Martin's Grimoire => http://grimoire.gnw.de/ Matt's Script archive => http://www.worldwidemart.com/scripts/ McDonnald's => http://www.mcdonalds.de/ MechCommander => http://www.mechcommander.com/ Media Control => http://www.mc-charts.de/ Media-SearchEngine [MP3&Co.] => http://oth.net/ MegaTF => http://www.antrononline.com/mega-tf/ Megadeth's Homepage => http://www.koeln.netsurf.de/~georg.wrobel/ MetaCrawler [SearchRobot] => http://www.metacrawler.com/ Methos Quake => http://methos.barrysworld.com/ Metropolis: Frogbot Homepage => http://www.telefragged.com/metro/ Microsoft DirectX => http://www.microsoft.com/directx/ Middle Earth => http://www.middle-earth.com/ Mindless Town => http://mindless.home.pages.de/ Minigolf Sport-Reisinger => http://www.minigolf-reisinger.com/ Mobiler Imbiss => http://www.lamm.net/lippstadt/essen/kebap/kebimb.htm Mod of the Week => http://www.planetquake.com/motw/ Mr. Stone´s bot Page => http://stone.splatterworld.de/ MultiPlayer Online Gaming => http://www.mpog.com/ MultiPlayer Quake => http://www.planetquake.com/mpq/ Multiplayer WebDarts => http://meteora.areti.com/rglennie/applet/joinapplet.html NERO brenner Software => http://www.ahead.de/ NEXGEN IRC-Script => http://www.europa.com/~colin/ NF-Proxy => http://nitro.splatterworld.de/ NONaGS [Freeware & Shareware] => http://www.nonags.com/ NObO => http://web.cip.com.br/nobo/ Nacamar => http://www.nacamar.de/ Navy Seals [Quake I & II] => http://seals.warzone.com/ NetSurf => http://www.netsurf.de/ Netropia's Timbuktu => http://www.netropia.com/ ORIGIN Ultima Online II => http://www.uo2.com/ Obelisk Central => http://www.planetquake.com/obelisk/ OneList [free MailingLists] => http://www.onelist.com/ OneView - Onlinebookmarks => http://www.oneview.com/ Online TV => http://onlinetv.tvtoday.de/onlinetv/TVframeset.hbs OnlineCost [Counter] => http://come.to/onlinecost/ Onlinekosten.de => http://www.onlinekosten.de/ OpenQuake => http://www.openquake.org/ OpenSSL => http://www.openssl.org/ Operation 3DFX => http://www.op3dfx.com/ Operation Plug'n'Play [LanParty] => http://www.operationpnp.de/ Orkland Weekend 98 => http://user.cs.tu-berlin.de/~tumogel/olw/ Overclocking => http://uebertakten.hypermart.net/ PERVERS ;] => http://www.home.fh-karlsruhe.de/~kaje0012/faxen/reschkysfetterbauch.jpg PHP-Center => http://www.php-center.de/ PSYbNC => http://www.psychoid.lam3rz.de/psybnc.html PainKeep => http://www.planetquake.com/skins/painkeep/ Palavista Digital Music Metacrawler => http://www.palavista.com/ Party.de - House, Techno, Dancefloor Events in Germany => http://www.party.de/ Paul's ascII art archive => http://pcheise1.mathematik.tu-muenchen.de/~heise/aSCII/index.html Peace & Protection => http://www.pairc.com/pnp/ Perl => http://www.perl.com/ Perl Tutorial => http://www.scs.leeds.ac.uk/Perl/start.html Perl Tutorial [deutsch] => http://www.phy.uni-bayreuth.de/~btpa25/perl/perl_main.html Pico [TextEditor] => http://newgrounds.com/pico/ PizzaTest => http://www.pizzatest.de/ Planet Insomnia => http://www.planet-insomnia.de/ PlanetLaN [Lan-Party-News] => http://www.planetlan.de/ Playboy => http://www.playboy.com/ Powertweak => http://www.powertweak.com/ ProQuake => http://elohim.ai.mit.edu/proquake/ ProRocket Quake 2 mod => http://www.planetquake.com/pro-rocket/ Professional Gamers League Germany => http://www.pgl.de/ Programmers Heaven => http://www.programmersheaven.com/ ProntoEdit [MegaFernbedienung] => http://www.prontoedit.com/html/pronto.html ProxyLite QuakeWorld-Proxy => http://nator.iconofpain.org:8080/prqxy.html Q-Conference => http://www.qonference.com/ Q-Continuum => http://www.q-continuum.de/ Q-MESS Party => http://www.q-mess.de/ Q-Nite => http://userpage.fu-berlin.de/~xenon/qnite/ Q2 1on1 League => http://www.liga.net/ Q2 Competition Mod => http://www.telefragged.com/q2comp/ Q2 Ring Mod => http://www.planetquake.com/q2ring/ Q2PMP - PlayerModels => http://www.planetquake.com/q2pmp/ Q3Fortress => http://www.q3fortress.com/ Q3Post - mIRC Support for Q3a => http://sklith.8k.com/ QDay3 Homepage => http://qday.concepts.nl/ QNEWS77 => http://www.swissquake.ch/news/ QPong => http://www.planetquake.com/rxn/qpong/ QSTaT HomePage => http://www.activesw.com/people/steve/qstat.html Qizmo => http://www.students.tut.fi/~zibbo/qizmo/ Qoole => http://www.qoole.com/ Quake & Quake2 Masterbrowser for Linux => http://www.thegrid.net/smiller/Masterbrowser/Linux/ Quake 2 Modeller Page => http://www.quake2.com/modeling/q2modeller/ Quake 3 arena - Jailbreak => http://www.planetquake.com/rxn/q3jb/ Quake DevelS => http://www.planetquake.com/qdevels/ Quake Devels - Duel Patch for Quake2 => http://www.planetquake.com/qdevels/duel/index.html Quake II Com => http://www.quake2.com/ Quake II Mission Pack => http://www4.activision.com/games/quake2mp1/ Quake II over Germany => http://rei41159.stw.gm.fh-koeln.de:8080/Q2OG/ Quake III arena - Total Control => http://www.planetquake.com/borderfield/q3atc.shtml Quake III arena [gXp] => http://www.quake3arena.de/ Quake TV => http://savageuk.com/quaketv/ Quake Universe => http://www.quake-universe.de/ Quake ]I[ arena Renderings => http://www.stomped.com/articles/q3acr1.html Quake ]|[ arena => http://www.q3a.de/ Quake done quick => http://www.planetquake.com/QdQ/ Quake2 Skin's Central => http://www.gamesnet.com/q2skins/ Quake2 The bodyShop => http://bodyshop.logicquest.com/ QuakeForum => http://www.quakeforum.de/ QuakeNet => http://www.quakenet.eu.org/ QuakeNet IRC-Server => copenhagen.dk.quakenet.eu.org QuakeNet IRC-Server => irc.de.quakenet.eu.org QuakeNet IRC-Server => irc.uk.quakenet.eu.org QuakeWorld Central => http://qwcentral.stomped.com/ QuakeWorld Frag Scores => http://qstats2.germany.net/deathmatch/ QuakeWorld Master browser => http://www.casus-software.nl/Masterbrowser/ QuakeWorld Net => http://www.quakeworld.net/ QuakeWorld Wizard [ProxyTool] => http://www.vob.de/hades/qwwiz/ Quakeress => http://www.quakeress.de/ Quakeress HomePage => http://topwebsites.de/2myplace Quakeress Swisscon Pics => http://www.swissquake.ch/swisscon98/pics/pics4.html QuarK => http://www.planetquake.com/quark/index.shtm Questor => http://www.questor.de/ Quetiquette : Quaker's Etiquette => http://www.planetquake.com/quetiquette/ RTOM-I-CaM => http://www.rtom.de/rtomzcam/ Ramboost => http://www.neosoft.de/ Real Doll [Ficköööhhhn] => http://www.realdoll.com/ Red Rover [Quake II Mod] => http://www.planetquake.com/infinity/roverind.html Referate => http://www.referate.de/ ReferateFundus => http://www.fundus.org/ ReschGay => http://www.rulers.de/reschgay.html Reschky's RCam => http://reschky.gametown.de/webcam/ ReviewNews - Latest Computer Hardware Reviews and News => http://www.reviewnews.com/ Ricardo [auktionen] => http://www.ricardo.de/ RiksJotto => http://riks.jotto.no/riksjotto.html Rocket arena => http://www.planetquake.com/servers/arena/ Roger Wilco [VoiceComm] => http://www.resounding.com/ RoutenPlaner bei WEb.DE => http://route.web.de/ Routenplanung für Deutschland => http://www.routenplanung.de/ Rust - GameDesign.net => http://www.gamedesign.net/ SHOUTcast! => http://www.shoutcast.com/ SKI Online => http://www.ski-online.de/ SKINZ.ORG [allForSkins] => http://www.skinz.org/ SMS und vieles mehr => http://www.mtn.co.za/sms/secure/normal.html SMS, Fax, Pager [kostenfrei] => http://www.vlf.net/ SOCKS Proxy Protocol => http://www.socks.nec.com/ ST Weapons Factory => http://www.captured.com/weaponsfactory/ Scrab => http://www.scrab.de/ ScreenShots => http://www.screenshots.net/ Scriptics: The Tcl Platform Company => http://www.scriptics.com/ Seagate => http://www.seagate.com/ SelfHTML => http://www.teamone.de/selfhtml/ Sensiva => http://www.sensiva.com/ Seti@home => http://setiathome.ssl.berkeley.edu/ Sharky Extreme => http://www.sharkyextreme.com/ Shockwave Flash => http://www.macromedia.com/ Shoran => http://www.shoran.com/ Short News => http://www.shortnews.de/ Silver => http://www.silver-game.com/ Slipgate Central => http://www.slipgatecentral.com/ Slipgate Complex - Central Processing => http://scp.aachen.nu/ Snake Online Game => http://www.nokia.com/snake/game.html Sniffit Page => http://reptile.rug.ac.be/~coder/sniffit/sniffit.html Sonique [audioPlayer] => http://www.sonique.com/ Spexter's Homepage => http://user.cs.tu-berlin.de/~spexter/ Splatterfest => http://www.quakeforum.de/clans/ea/splatterfest/ Splatterworld [GamingNews] => http://www.splatterworld.de/ Split's Homepage => http://internet.freepage.de/split/ Stadtplan => http://www.stadtplan.de/ Starr Report => http://thomas.loc.gov/icreport/ Stats für #quake.ger & #quake2.ger => http://www.quakeress.de:8033/ Stayne's House of Demons => http://shod.gamers.com/ Stroggs gone mad => http://www.inside3d.com/legion/ SubSpace HeadQuarters => http://subspace.vie.com/ Sun Microsystems => http://www.usec.sun.com/ Super Fast MP3s => http://fast.village21.com/super SuperConnect => http://www.superconnect.de/ SuperGamer => http://www.supergamer.de/ Swedish National Quake Team => http://teamsweden.fragzone.se/ SwissCon '98 => http://www.swissquake.ch/swisscon98/ T-OnLine => http://www.t-online.de/ THE GaTE - Die neue deutsche Quake2 Page => http://www.gerbach.com/gate/ THE iNNOCENT CREW => http://www.tic.de/ TalkHouse : UltimaOnline Chat Forum => http://www.talkhouse.de/ TaskInfo => http://www.iarsn.com/ Team Fortress => http://www.planetquake.com/teamfortress/ TeamFortress 2 News => http://tf2.gagames.com/ Telefon-auskunft => http://www.telefonauskunft.de/ Telefontarife [Inland & ausland] => http:// www.telefontarif-info.de/ TerraFusion - Your LevelSource => http://www.terrafusion.com/ TetriNet => http://www.tetrinet.org/ The Apache Software Foundation => http://www.apache.org/ The GeNClasses Homepage => http://www.telefragged.com/genclasses/ The Homepage of God => http://www.netstore.de/~god/ The Hornet archive => http://www.hornet.org/ The Internet Movie Database => http://us.imdb.com/ The Iron Glove League => http://www.tfclans.com/ironglove/ The Kate Winslet Show => http://jaolu.simplenet.com/ The PIRCH Page => http://www.pirchat.com/ The Quake Lounge => http://quakelounge.pixelhouse.de The Quake Prefab Park => http://www.planetquake.com/qpp/ The Survey Project => http://survey.home.pages.de/ The Unofficial GLQuake Project => http://www.netcomuk.co.uk/~sio2/glquake.htm The Webjerk => http://www.webjerk.com/ The Wunderful World of Gummy bear Sex => http://129.118.1.24/~emyrs/bears/bear.html The actionXChange [PhotoShop actions] => http://www.actionxchange.com/ The bastard Son of the Lord => http://www.trog.com/jesus/ TheLe => http://www.frank-borrmann.de/ Thefly => http://www.thefly.de/ Threewave CTF => http://threewave.planetquake.com/ Thresh's FrontLine => http://www.gamers.com/columns/thresh/ ThunderWalker CTF => http://www.thunderwalker.net/ Times News burlington NC => http://www.times-news.freedom.com/ Titanic Quake 2 => http://www.planetquake.com/titanic/ Tom's Hardware Guide => http://www.tomshardware.com/ Topsid Server Stats => http://fargo.physik.fu-berlin.de/quake/ Translations - Übersetzer => http://babelfish.altavista.com/ TripleX QuakE-II-ServerlisT => http://q2list.home.pages.de/ TripleXnetzinE => http://3xnetzine.home.pages.de/ True Gamers => http://www.truegamers.net/ TrueTech Streaming WebCam => http://www.camarades.com/ Tweak Files => http://www.tweakfiles.com/ Twisted Matrix - Rob the Strogg [RTS] Quake II Mod => http://tmatrix.telefragged.com/ USK => http://www.usk.de/ UaE amiga Emulator => http://www.freiburg.linux.de/~uae/ Ultima Offline Experiment => http://uox.stratics.com/ Ultima Online [UO] - The Second age => http://www.owo.com/t2a/ Ultimative Quake Cheating Page => http://www.gamescenter.de/uqc/ UltraEdit => http://www.ultraedit.com/ UnderNet's #eggdrop Site => http://www.eggheads.org/ User Friendly - The Comic Strip => http://www.userfriendly.org/ VI HaTE CLUb => http://zeus.informatik.uni-osnabrueck.de/~fsievert/vi-hate.html VIVa TV => http://www.vivaliebtdich.de/ VQF [audioCompression] => http://www.vqf.com/ Vanilla CTF => http://www.frag.com/vanctf/ Video Game Strategies => http://vgstrategies.tqn.com/ Viechas => http://viechas.home.pages.de/ Viking Mod => http://www.planetquake.com/viking/ Villains - Top European Gaming => http://www.clanworld.org/villains/ Volltextsuche auf Servern öffentlicher Schulen => http://dbs.schule.de/search/ VooDoo SpotLight => http://www.voodoospotlight.com/ WWW.PaSSWORDHQ.COM --- P s y c h o s i s => http://www.passwordhq.com/ Wallpaper Central => http://www.12c4.com/bestbest/wpc.htm WebCam 32 => http://surveyorcorp.com/webcam32/ WebWorker => http://www.web-worker.de/ Welcome to the Teen-Files => http://www.teen-files.com/ WinGate Proxy Server, Firewall and DHCP Server => http://www.wingate.net/ Winamp PlugIns => http://www.3dfiles.com/utility/winampplugins.shtml Windowblinds => http://www.stardock.com/products/windowblinds/ WorldCharts => http://worldchartz.tsx.org/ WorldCraft => http://www.gamecraft.com/ XCalibre : mIRC and EggDrop Resources => http://www.xcalibre.com/ XS Reality => http://www.xsreality.com/ XXX Password.org => http://www.xxxpassword.org/ XXX Persian Kitty => http://www.persiankitty.com/ XXX The Huns Yellow Pages => http://www.thehun.net/ Xenon's Demopage => http://www.demolition.org/xenon/ XiRCON [IRC-Client] => http://www.xircon.com/ Yet another IRC Page => http://irc.fu-berlin.de/ ZDNet News => http://www.zdnet.de/news/ ZDoom - Doom for Win32 => http://zdoom.notgod.com/ ZUM Internet => http://www.zum.de/ ZYN! Das Satire Magazin => http://www.zyn.de/ Zaisters Zcam => http://www.zaister.de/zcam/ Zanshin's GLQuake Dojo => http://www.planetquake.com/gldojo/ Zerstörer => http://www.killme.com/zer.htm ZeuS' QuakeTologY => http://www.swissquake.ch/quaketology/ Zockparade => http://www.zockparade.notrix.de/ aLDI FanPage => http://members.aol.com/MFiutak/aldi.htm aSUS Home Page => http://www.asus.com.tw/ aUTCH! das tut weh..... Satire und Witze => http://www.autsch.de/ aVI-2-MPEG => http://www.geocities.com/CapeCanaveral/5229/avi2mpeg1.htm abC Youngstars [Hausaufgaben/Referate/etc.] => http://www.youngstars.de/ abIT => http://www.abit.nl/ abdul FanPage => http://www.clan-octagon.com/abdul/ ach Du Scheisse => http://www.ach-du-scheisse.de/ action Quake II => http://action.telefragged.com/ action Quake2 edition => http://action.gametown.de/deutsch/ adQuedit: The Quake Workstation => http://www.goldrush.com/~hicks/adquedit/ ain't it cool News => http://www.aint-it-cool-news.com/ akillion - Das Rollenspiel => http://www.akilion.de/ all Free Stripper MPEGs => http://www.rockr.com/clublist.html all for Winamp => http://members.tripod.com/~all4winamp/ all good Things Typography (Fonts) => http://www.redsun.com/ allStar CTF for Quake II => http://www.captured.com/allstar2/ anandTech [Hardware] => http://www.anandtech.com/ apple - Products - Quicktime => http://www.apple.com/quicktime/ arena Universe => http://terror.splatterworld.de/pages/arena/ arena Universe => http://www.quake-universe.de/arena/ audioGalaxy [MP3 Suchmaschine] => http://www.audiogalaxy.com/ avm => http://www.avm.de/ bC-GianT's aNTI-LaG-PaGE => http://antilag.home.pages.de/ bNC - IRC Proxy Server => http://bnc.dragondata.com/ bSP Headquarter => http://www.bsphq.com/ baCKSPaCE.DE [Emulation/amiga/etc] => http://www.backspace.de/ babes => http://www.babes.nl/index2.html backyard Emulation Links [ Roms arcade Console Computers Emulation Links ] => http://www.backyard.u-net.com/ battlefield Communicator => http://www.shadowfactor.com/ beben - LanParty in Erfurt => http://beben.lanparty.de/ beerDM [Quake II Mod] => http://quake2.stomped.com/hostile/downloads/beerdm/beerdm.zip berlin => http://www.berlin.de/ bertelsmann [Wissen Lexikon begriffe] => http://www.lexikonverlag.de/wissen/ best of the alps => http://www.best-of-the-alps.com/ bleem [PlayStationEmulator] => http://www.bleem.com/ bluesNews => http://www.bluesnews.com/ boellerheide => http://www.boelerhei.de/ bookmarklets => http://www.bookmarklets.com/ bot Epidemic II Total bot Coverage => http://www.botepidemic.com/ brazen Q2 Mod => http://www.planetquake.com/brazen/ bringDienst [Pizza und Co] => http://www.bringdienst.de/ britannica - Online-Lexikon / Enzyklopädie => http://www.britannica.com/ britney Spears FanPage => http://www.spears.de/ britney Spears breast Pump => http://www.z100.com/source/hpsn/britney/index.html bundesprüfstelle für jugendgefährdende Schriften => http://www.bmfsfj.de/bpjs/ d-TOP - Desktop Wallpapers => http://www.d-top.com/ da allmightY wizarD => http://wizard.notrix.de/ de.alt.games.quake [dagq] => http://mrwilson.wh.uni-heidelberg.de/quake/ eFX => http://skinz.org/thirty4/ eNigMa => http://ruler.daimlercity.de/enigma/ gXp => http://www.gxp.de/ gXp Episode II [LanSession] => http://www.gxp.de/episode2 gXp WebCam => http://www.reschky.de/webcam/ id Software => http://www.idsoftware.com/ mIRC => http://www.mirc.co.uk/ mobidig SMail [SMS] => http://www.mobidig.net/smail.php3 pHreaX.n3T => http://www.phreax.net/ paIRC => http://www.pairc.com/ sLoP's German Demo archive => http://gerda.ocrana.de/ vIRC => http://www.virc.com/ www.guestbook.de => http://www.guestbook.de/ www.studieren.de => http://www.studieren.de/ |24| => http://www.planetquake.com/24/ °--==> REDOO <==--° => http://spiele.freepage.de/redoo/ Futurama Episodes => http://cgef.sweeetnet.com/videos/germ.shtml Ost-Versand => http://www.ostversand.de/ Can't get enough Futurama => http://www.morefuturama.com/ Spumco's Web Cartoons => http://www.spumco.com/entertainment/webcartoon.html XFree86 => http://www.xfree.org/ Encyclopedia Mythica => http://www.pantheon.org/mythica/ ACDSee => http://www.acdsystems.com/products/acdsee/ Götter, Mythen und Ähnliches => http://www.manu.de/gott.htm Dilbert Zone => http://www.dilbert.com/ 3xIrc => http://www.Da3X.de/ Deutsche Post AG => http://www.postag.de/ Nandini => http://www.nandini.de/ Yellow River Band => http://www.yrb.de/ PARAdies => http://bru.de/ Q3A Console Guide => http://q3a.pcgame.com/console/index.html EyeBall Design - PhotoShop Tutorials => http://www.eyeball-design.com/ Projekt Gutenberg => http://gutenberg.aol.de/ DVD - Dolby Digital Trailer => http://www.supplex.com/dvd/dolby.htm Gamers Board => http://www.gamersboard.de/ Urban Terror => http://www.quake3mods.net/urbanterror/ Matrix Quake II => http://www.planetquake.com/kickme/matrix/ XIPOLIS.NET => http://demo.xipolis.net/ Fast BeOS Download => ftp://ftp.sunet.se/pub/os/BeOS/ BeBits - BeOS Software => http://www.bebits.com/ Ugly People => http://uglypeople.com/ Reiseplanung => http://www.reiseplanung.de/ LAN Conference => http://www.lancon.de/ Rolls-Royce & Bentley => http://www.rolls-royceandbentley.co.uk/ AutoScout24 => http://www.autoscout24.de/ Parsec - Free Online Space Game => http://www.parsec.org/ NapiGator - Napster Navigator => http://www.napigator.com/data/3xWhat.db0100666000076700007670000000126407071712632012601 0ustar guppyguppyTANJ => There Ain´t No Justice IMO => In my opinion IMHO => In my humble opinion ROTFL => Rolling on the Flour laughing! BRB => Be right back! BBL => Be back later! IC => I see! NP => No Problem! LOL => Laughing Out Loud RE => Returned! WB => Welcome back! QW => The great Game : QuakeWorld ! Q2 => The ultimate Game : Quake II ! Q3 => The Future of Gaming : Quake III : Arena ! AFK => Away from Keyboard! GL => Good Luck! DAU => Dümmster anzunehmender User WE => WeekEnd IRC => Internet Relay Chat BTW => By The Way LMPAO => Laughing My PAnts Off WTF => What The Fuck BHOTF => Banging Head On The Floor RTFM => Read The Fucking Manual BMSMA => Byte My Shiny Metal Assdata/3xVotes.log0100666000076700007670000000346407064314630013174 0ustar guppyguppy952564740 #quake.ger Schon eingeschlafen? 3 1 952637820 #quake.ger Is der |3X|777| nen geiler Bot? 0 8 952639020 #quake.ger Ist Dir ein einheitlicher Style bei deinen Windowsprogrammen wichtig? 5 4 952641120 #quake.ger Glaubst Du eigentlich Zaister seine Geschichten? 1 4 952645440 #quake.ger Möchstest Du mal Nandini's "StinkeSchlitz" lecken? 2 3 952648860 #quake.ger Bist Du auch Napster-süchtig? 1 4 952650240 #quake.ger Bist Du auch geil auf jede Art von Stats?! 2 3 952682580 #quake.ger Kannst Du Demon|Wrk oder N|Wicked leiden? 0 4 952683360 #quake.nope ist vince doof ? 1 0 952732200 #quake.ger Würdest Du je woanders voten als in diesem Channel? 3 2 952738380 #quake.ger Zeit zum Schlafen gehen? 4 5 952774980 #TripleX 1 1 952775520 #quake.ger Gibts bei Dir heute Mittag von Muttern? (*HUNGER*) 4 5 952776000 #quake.ger Nimmst Du an dieser Abstimmung teil? 2 1 952797360 #shoran Soll ich Mendrik auch die Mail mit der neuen URL schicken? ¦-> 0 0 952812241 #quake2.ukn Findest Du nicht auch hier könnte mal wer nen OP vergeben? 3 0 952814461 #quake.ger Möchtest du Cindy mal poppen? (http://www.lanparty.de/misc/fun/cindysalsa.mpg) 3 3 952818000 #quake.ger Ist Quake für Dich ein Leistungssport? 4 3 952870680 #quake.ger Sollen die Stats jetzt resettet werden? 2 3 952886580 #quake.ger Hast Du heute schon was Sinnvolles getan? 6 8 952970520 #quake.ger Magst Du die Bayern? *g* 2 14 952971000 #TripleX Soll Sledge eine Freundin kriegen? 3 0 952992721 #quake.ger Interessieren Dich die Stats in überhaupt? 2 2 953031000 #quake.ger Soll ich nun endlich mal die Stats resetten? (wird echt öde) 0 1 953112480 #quake.ger Findest Du Chatten lame? 1 2 953209621 #quake.ger Hältst Du dich für "normal" ??? 0 6 953234700 #quake.ger Nerven Dich zuviele Farben im IRC? 6 3 953235240 #quake.ger Interessiert Dich BigBrother auch nur die Bohne? 3 7 help/0040777000076700007670000000000007071711506011132 5ustar guppyguppyhelp/3xBot.help0100666000076700007670000000542007071712414013000 0ustar guppyguppy%{help=3xBot} ### This Script provides several usefull Features. The following Help ### tries to explain their Usage. If you have further Questions contact ### TripleX - daniel.bleisteiner@berlin.de ### %bGeneral Infos%b This Script does some automated Stuff i'll tell you in this Part! First of all reminds joining Users to set their Password if they don't have done so allready. More automated Actions might be added later... Some public Commands are checked for their Usage via Timers. Users with Master or OwnerStatus will be ignored in these Checks. ### %b!topic%b Sets a Topic for the Channel this Command is used in. If there exists a locked Topic, the Users gets notified if he has not the Right to overwrite the locked Topic. ### %b!ltopic%b Sets a locked Topic for the Channel the Command is used in. Locked Topics are marked with an @ at their End. If there exists a locked Topic, the Users gets notified if he has not the Right to overwrite the locked Topic. ### %b?topic%b Gives Information on when and by which User the Topic got set! ### %b.massnote%b Sends a Note to all Users matching the Flags. See whois for more Infos on Flags! %{+o|o} ### %b!vote%b Starts a Voting on the Channel this Command is used in. The Voting will last 5 Minutes and allows Users to vote for YES or NO via public or private Message. %{-} ### %b!stats%b Used in a Channel this Command displays some simple Stats. These include TopChatter,TopWords and TopIdler. All Users known to this Bot as Bots (+b) will be ignored for Stats. Users who issue a single Word more than 4x in one Message will be ignored for Stats in that Channel for some Minutes! ### %b!mystats%b This Command tells the User where he/she is located in the Stats for the Channel this Command is used in. %{+m|m} ### %b.resetstats%b <#channel> Use this one on the Partyline to reset the Stats for a Channel! %{-} ### %b!clan%b, %b!url%b, %b!server%b, %b!email%b, %b!icq%b, %b!country%b, %b!what%b These Commands can be used in a Channel to trigger different Queries on one of the Databases used for these Commands! Users can use %b!add%b in a Channel to announce new Entries to an Admin, which have to be added by Hand so far. Later i'll include some Add/Sub Commands for the Partyline! Using %b!help%b on a Channel will send some short Notices to the User! %{+m|-} Use %b.addentry%b on the Partyline to add Entries to the Database! Use %b.delentry%b on the Partyline to delete Entries from the Database! %{-} ### %b!calc%b Calculates the given Arguments as a mathematical Term and returns the Result. Can be used in Channel or private Chat. scripts/0040777000076700007670000000000007071711506011671 5ustar guppyguppyscripts/3xBot.tcl0100666000076700007670000016120007071712364013374 0ustar guppyguppy##### 3xBot.tcl - TripleX ##### ##### 2000-01-14 : v0.01 + trying to replace .adduser ##### 2000-01-26 : v0.02 + 3xCheckPassword ##### 2000-01-27 : v0.03 + 3xLockTopic ##### + 3xUnlockTopic ##### + 3xResetTopic ##### 2000-02-06 : v0.04 * different small Things ##### 2000-02-09 : v0.05 + !topic Function ##### + Function to compare Users Rights ##### + Comparsion of Rights to TopicFunctions ##### 2000-02-10 : v0.06 + !ltopic instead of !locktopic and !unlocktopic ##### !topic sets normal, !ltopic sets locked Topic ##### Locked Topic can't be overwritten by Users with less Rights ##### Locked Topic is marked via @ at the End ##### 2000-02-11 : v0.07 + first Stats ##### + VoteSystem ##### + NoteSystem to send to all Users with certain Flags ##### + HelpFile ##### 2000-02-17 : v0.08 - working on Stats ##### 2000-02-25 : v0.09 + TopChatter ##### + Reset for Stats ##### 2000-02-27 : v0.10 + TopWords ##### 2000-02-28 : v0.11 + Replacement of dangerous Chars ##### + Remove of dangerous Chars ##### * Stats ##### + TopIdler ##### * Stats ignoring Bots ##### 2000-02-29 : v0.12 + simple CheatProtection to Stats ##### + UsageSwitches ##### + TimerCheck for public Commands ##### 2000-02-29 : v0.13 + Channels to ignore for Topic ##### + Channels to ignore for Stats ##### * Topic for allready joined Channels ##### + MasterCheck to TimerCheck ##### 2000-02-29 : v0.14 + first Version of !url ##### * Topic-Init only triggering when 3xUseTopic is set to 1 ##### + Commands !url, !clan, !server, !email, !icq, !what and !country ##### to search single Databases ##### + !add to support the above Commands ##### + simple !help ##### + .addentry to extend the Database ##### + .delentry to shorten the Database ##### 2000-03-01 : v0.15 * Stats messing up on { or [ or \ in Nick ##### + linked Bots to Channel Procs ##### 2000-03-05 : v0.16 + !url and Co for Query ##### * .addentry and .delentry for global Masters only ##### + Removes all ColorCodes and Co. for Stats ##### * Error in 3xSearchDatabase ##### 2000-03-06 : v0.17 * .addentry to strip [ { and Co. ##### + BackUp for .addentry and .delentry ##### * 3xReplaceDangerousChars not replacing leading ] and trailing [ ##### * Div/0 in some initial !stats ##### + Logging to Vote ##### + Ignore of Bots for PasswordCheck ##### * 3xCompareFlags using [matchattr ...] ##### * TimeString sometimes messed up ##### * double LineFeed in VoteLog ##### 2000-03-08 : v0.18 * Stats through using a Hash for Nicks ##### + Ignore for Bots on Votes ##### + CGI to display older Votes on WWW ##### 2000-03-11 : v0.19 + Nick to !add Notes ##### * MissSpelling in Votes ##### * !ltopic loosing Nick on TopicRestore ##### * trailing LineFeeds removed from DBs to avoid empty Lines ##### * !email Bug ##### * TimeString to be more generell ##### 2000-03-11 : v0.20 + Check for a valid Vote-Question ##### + !mystats ##### + Notice in Query in Message that too many Entries matched ##### * empty Args an !add ##### 2000-03-16 : v0.21 + Kick for too much ColorCodes ##### 2000-03-16 : v1.00 * SyntaxError in matchattr ##### - first non-beta Release of this Script! ##### 2000-03-16 : v1.01 * BotCheck in Stats ##### + Channel to LogMsg for ColorKick ##### 2000-03-23 : v1.02 + !calc as public Command ##### + Display of first Entries if more then max are found ##### * wrong Handling of "?" in !clan & Co. ##### 2000-04-01 : v1.03 + ?topic to get Infos on ChannelTopic ##### * Overhead in !topic ##### * all english Language ##### + TimerCheck for TopicCommands ##### * corrected TimerCheck for Calc ##### Set the following Variables to affect the Features of this Script. ##### All Stuff after this Block should be left untouched! set 3xUsePasswordCheck 1 set 3xUseTopic 1 set 3xTopicTimerCheck "2:5" set 3xTopicIgnoreChannels {#dummy1 #dummy2} set 3xTopicLinkedBots {Dummy1 Dummy2} set 3xUseStats 1 set 3xStatsTimeForIgnore 15 set 3xStatsTimerCheck "1:30" set 3xStatsForUserTimerCheck "3:5" set 3xStatsIgnoreChannels {#dummy1 #dummy2} set 3xStatsLinkedBots {Dummy1 Dummy2} set 3xUseVote 1 set 3xVoteLinkedBots {Dummy1 Dummy2} set 3xVoteLogfile "./data/3xVotes.log" set 3xUseMassNote 1 set 3xUseColorKick 1 set 3xColorKickMaxColors 3 set 3xColorKickIgnoreChannels {#dummy1 #dummy2} set 3xUseCalc 1 set 3xCalcTimerCheck "2:3" set 3xCalcKickIgnoreChannels {#dummy #dummy} set 3xCalcLinkedBots {} ##### These Settings affect !url, !clan, !email, !icq, !server, !country and !what ##### You can enable every single Command. The AccessTimer used for ChannelProtection ##### is the same for all of these. Also the maximum Number of displayed Entries is global ##### for all of them. But you can specify different Channels for Ignore for every Command! ##### You can also enable the NotificationFeature which allows Users to !add new Entries which ##### will be stored as Notes for the NoticifationHandle! set 3xMaxEntriesToShowInChannel 3 set 3xMaxEntriesToShowInQuery 15 set 3xDatabaseTimerCheck "2:3" set 3xUseAddNotification 1 set 3xNotificationHandle "NotesHandle" set 3xNotificationLinkedBots {Dummy1 Dummy2} set 3xUseUrl 1 set 3xUrlIgnoreChannels {#dummy1 #dummy2} set 3xUrlLinkedBots {Dummy1 Dummy2} set 3xFileUrl "./data/3xUrls.db" set 3xUseClan 1 set 3xClanIgnoreChannels {#dummy1 #dummy2} set 3xClanLinkedBots {Dummy1 Dummy2} set 3xFileClan "./data/3xClans.db" set 3xUseEmail 1 set 3xEmailIgnoreChannels {#dummy1 #dummy2} set 3xEmailLinkedBots {Dummy1 Dummy2} set 3xFileEmail "./data/3xEmails.db" set 3xUseIcq 1 set 3xIcqIgnoreChannels {#dummy1 #dummy2} set 3xIcqLinkedBots {Dummy1 Dummy2} set 3xFileIcq "./data/3xIcq.db" set 3xUseServer 1 set 3xServerIgnoreChannels {#dummy1 #dummy2} set 3xServerLinkedBots {Dummy1 Dummy2} set 3xFileServer "./data/3xServer.db" set 3xUseCountry 1 set 3xCountryIgnoreChannels {#dummy1 #dummy2} set 3xCountryLinkedBots {Dummy1 Dummy2} set 3xFileCountry "./data/3xCountries.db" set 3xUseWhat 1 set 3xWhatIgnoreChannels {#dummy1 #dummy2} set 3xWhatLinkedBots {Dummy1 Dummy2} set 3xFileWhat "./data/3xWhat.db" set 3xUseHelp 1 set 3xHelpLinkedBots {Dummy1 Dummy2} ################################################################################################### ################################################################################################### ################################################################################################### ##### Some global Variables! set 3xLogo \002\|\002\003123xBot\003\002\|\002 ##### Reminds Users to set a Password if they didn't so far! proc 3xCheckPassword {nick uhost handle chan} { global 3xLogo botnick if {[matchattr $handle +b]} { return } if {[passwdok $handle ""]} { puthelp "NOTICE $nick :I don't have a Password from you yet! Use /msg $botnick PASS to set yours!" putlog "$3xLogo <=> Reminded $nick ($handle) to set a Password!" } } if {$3xUsePasswordCheck} { bind JOIN -|- * 3xCheckPassword } ##### The following handles the ChannelCommands !topic and !ltopic ##### which can be used by all Users in a Channel. Their Meaning is ##### self-explaining. Users with more or equal Rights can overwrite ##### locked Topics of others! proc 3xInitTopicChannel {nick uhost handle chan} { global 3xLogo 3xCurrentTopic 3xTopicLocked 3xTopicLockedByNick 3xTopicLockedByHandle botnick 3xTopicIgnoreChannels 3xTopicSetByNick 3xTopicSetByUser 3xTopicSetAtTime if {[lsearch -exact [string tolower $3xTopicIgnoreChannels] [string tolower $chan]] > -1} { return } if {$nick == $botnick} { if {![info exists 3xCurrentTopic([string tolower $chan])]} { set 3xCurrentTopic([string tolower $chan]) "" } if {![info exists 3xTopicLocked([string tolower $chan])]} { set 3xTopicLocked([string tolower $chan]) 0 } if {![info exists 3xTopicLockedByNick([string tolower $chan])]} { set 3xTopicLockedByNick([string tolower $chan]) "" } if {![info exists 3xTopicLockedByHandle([string tolower $chan])]} { set 3xTopicLockedByHandle([string tolower $chan]) "" } if {![info exists 3xTopicSetByNick([string tolower $chan])]} { set 3xTopicSetByNick([string tolower $chan]) "" } if {![info exists 3xTopicSetByUser([string tolower $chan])]} { set 3xTopicSetByUser([string tolower $chan]) "" } if {![info exists 3xTopicSetAtTime([string tolower $chan])]} { set 3xTopicSetAtTime([string tolower $chan]) [clock seconds] } } } proc 3xSetTopic {nick user handle channel topic} { global 3xLogo 3xTopicLocked 3xCurrentTopic 3xTopicLockedByNick 3xTopicLockedByHandle 3xTopicIgnoreChannels 3xTopicLinkedBots 3xTopicSetByNick 3xTopicSetByUser 3xTopicSetAtTime 3xTopicTimerCheck if {[lsearch -exact [string tolower $3xTopicIgnoreChannels] [string tolower $channel]] > -1} { return } foreach {bot} $3xTopicLinkedBots { if {[handonchan $bot $channel]} { return } } if {![3xCheckTimer $channel topic [lindex [split $3xTopicTimerCheck :] 0] [lindex [split $3xTopicTimerCheck :] 1] $nick $handle]} { return } if (![botisop $channel]) { return 0 } if {$3xTopicLocked([string tolower $channel]) == 1} { if {![3xCompareFlags $handle $3xTopicLockedByHandle([string tolower $channel]) $channel]} { puthelp "NOTICE $nick :This Topic got locked by $3xTopicLockedByNick([string tolower $channel])" putlog "$3xLogo <=> $nick ($handle) tries to change locked Topic in [string tolower $channel]!" return 0 } set 3xTopicLocked([string tolower $channel]) 0 puthelp "NOTICE $nick :Topic unlocked on [string tolower $channel]!" } set 3xTopicSetByNick([string tolower $channel]) $nick set 3xTopicSetByUser([string tolower $channel]) [maskhost $user] set 3xTopicSetAtTime([string tolower $channel]) [clock seconds] puthelp "TOPIC $channel :$nick: $topic" putlog "$3xLogo <=> $nick ($handle) sets Topic in [string tolower $channel]!" } proc 3xLockTopic {nick user handle channel topic} { global 3xLogo 3xTopicLocked 3xCurrentTopic 3xTopicLockedByNick 3xTopicLockedByHandle 3xTopicIgnoreChannels 3xTopicLinkedBots 3xTopicSetByNick 3xTopicSetByUser 3xTopicSetAtTime 3xTopicTimerCheck if {[lsearch -exact [string tolower $3xTopicIgnoreChannels] [string tolower $channel]] > -1} { return } foreach {bot} $3xTopicLinkedBots { if {[handonchan $bot $channel]} { return } } if {![3xCheckTimer $channel topic [lindex [split $3xTopicTimerCheck :] 0] [lindex [split $3xTopicTimerCheck :] 1] $nick $handle]} { return } if (![botisop $channel]) { return 0 } if {$3xTopicLocked([string tolower $channel]) == 1} { if {![3xCompareFlags $handle $3xTopicLockedByHandle([string tolower $channel]) $channel]} { puthelp "NOTICE $nick :This Topic got locked by $3xTopicLockedByNick([string tolower $channel])" putlog "$3xLogo <=> $nick ($handle) tries to change locked Topic in [string tolower $channel]!" return 0 } } set 3xCurrentTopic([string tolower $channel]) $topic set 3xTopicLocked([string tolower $channel]) 1 set 3xTopicLockedByNick([string tolower $channel]) $nick set 3xTopicLockedByHandle([string tolower $channel]) $handle set 3xTopicSetByNick([string tolower $channel]) $nick set 3xTopicSetByUser([string tolower $channel]) [maskhost $user] set 3xTopicSetAtTime([string tolower $channel]) [clock seconds] puthelp "TOPIC $channel :$nick: $topic @" puthelp "NOTICE $nick :Topic locked on [string tolower $channel]!" putlog "$3xLogo <=> $nick ($handle) sets locked Topic in [string tolower $channel]!" } proc 3xInfoTopic {nick user handle channel topic} { global 3xLogo 3xTopicLocked 3xCurrentTopic 3xTopicLockedByNick 3xTopicLockedByHandle 3xTopicIgnoreChannels 3xTopicLinkedBots 3xTopicSetByNick 3xTopicSetByUser 3xTopicSetAtTime 3xTopicTimerCheck if {[lsearch -exact [string tolower $3xTopicIgnoreChannels] [string tolower $channel]] > -1} { return } foreach {bot} $3xTopicLinkedBots { if {[handonchan $bot $channel]} { return } } if {![3xCheckTimer $channel topic [lindex [split $3xTopicTimerCheck :] 0] [lindex [split $3xTopicTimerCheck :] 1] $nick $handle]} { return } puthelp "PRIVMSG $channel :$3xLogo Topic set by $3xTopicSetByNick([string tolower $channel]) ($3xTopicSetByUser([string tolower $channel])), [3xGetTimeString [expr [clock seconds] - $3xTopicSetAtTime([string tolower $channel])]] ago!" putlog "$3xLogo <=> $nick ($handle) asks for TopicInfo in [string tolower $channel]!" } proc 3xResetTopic {nick user handle channel topic} { global botnick 3xLogo 3xTopicLocked 3xCurrentTopic 3xTopicLockedByNick 3xTopicLockedByHandle 3xTopicIgnoreChannels 3xTopicLinkedBots 3xTopicSetByNick 3xTopicSetByUser 3xTopicSetAtTime if {[lsearch -exact [string tolower $3xTopicIgnoreChannels] [string tolower $channel]] > -1} { return } foreach {bot} $3xTopicLinkedBots { if {[handonchan $bot $channel]} { return } } if (![botisop $channel]) { return 0 } if {$nick == $botnick} { return 0 } if {$3xTopicLocked([string tolower $channel]) == 1} { if {[3xCompareFlags $handle $3xTopicLockedByHandle([string tolower $channel]) $channel]} { set 3xTopicLocked([string tolower $channel]) 0 puthelp "NOTICE $nick :Topic unlocked on [string tolower $channel]!" set 3xTopicSetByNick([string tolower $channel]) $nick set 3xTopicSetByUser([string tolower $channel]) [maskhost $user] set 3xTopicSetAtTime([string tolower $channel]) [clock seconds] putlog "$3xLogo <=> $nick ($handle) sets Topic in [string tolower $channel]!" return 0 } puthelp "TOPIC $channel :$3xTopicLockedByNick([string tolower $channel]): $3xCurrentTopic([string tolower $channel]) @" puthelp "NOTICE $nick :This Topic got locked by $3xTopicLockedByNick([string tolower $channel])" putlog "$3xLogo <=> $nick ($handle) tries to change locked Topic in [string tolower $channel]! Reset Topic!" return 0 } set 3xTopicSetByNick([string tolower $channel]) $nick set 3xTopicSetByUser([string tolower $channel]) [maskhost $user] set 3xTopicSetAtTime([string tolower $channel]) [clock seconds] putlog "$3xLogo <=> $nick ($handle) sets Topic in [string tolower $channel]!" } if {$3xUseTopic} { set tmpChans [channels] foreach {c} $tmpChans { 3xInitTopicChannel $botnick dummy dummy $c } bind PUB -|- !topic 3xSetTopic bind PUB -|- !ltopic 3xLockTopic bind PUB -|- ?topic 3xInfoTopic bind TOPC -|- * 3xResetTopic bind JOIN -|- * 3xInitTopicChannel } ##### The following deals with all the Stats. The Bot counts the Number ##### of Words everbody says and generates some simple Stats out of this! proc 3xUpdateStats {nick user handle channel msg} { global 3xLogo 3xStatsNumberOfWordsInChannel 3xStatsStarted 3xStatsWordsOfUsersInChannel 3xStatsWordsInChannel 3xStatsUsersOnIgnoreInChannel 3xStatsTimeForIgnore 3xStatsIgnoreChannels 3xStatsNicksForHosts ##### Ignore defined Channels! if {[lsearch -exact [string tolower $3xStatsIgnoreChannels] [string tolower $channel]] > -1} { return } ##### Make Channel lower-case! set channel [string tolower $channel] ##### Filter all ColorCodes and Co! set msg [3xRemoveColorCodesAndCo $msg] ##### Check for initialized Variables! if {![info exists 3xStatsStarted($channel)]} { set 3xStatsStarted($channel) [expr [clock seconds] - 1] } if {![info exists 3xStatsNumberOfWordsInChannel($channel)]} { set 3xStatsNumberOfWordsInChannel($channel) 0 } if {![info exists 3xStatsWordsOfUsersInChannel($channel)]} { set 3xStatsWordsOfUsersInChannel($channel) {} } if {![info exists 3xStatsWordsInChannel($channel)]} { set 3xStatsWordsInChannel($channel) {} } if {![info exists 3xStatsUsersOnIgnoreInChannel($channel)]} { set 3xStatsUsersOnIgnoreInChannel($channel) {} } ##### Ignore any Bots! if {[matchattr $handle +b]} { return } ##### Ignore cheating Users! if {[lsearch -exact $3xStatsUsersOnIgnoreInChannel($channel) [maskhost $user]] > -1} { return } ##### Do some CheatProtection! ##### The following will ignore all Messages with when a single Word ##### is used more then 5x in the Message! set msg [3xRemoveDangerousChars $msg] if {[info exists tmpCount]} { unset tmpCount } foreach {w} $msg { if {[info exists tmpCount($w)]} { set tmpCount($w) [expr $tmpCount($w) + 1] } if {![info exists tmpCount($w)]} { set tmpCount($w) 1 } if {$tmpCount($w) > 4} { set 3xStatsUsersOnIgnoreInChannel($channel) [concat $3xStatsUsersOnIgnoreInChannel($channel) [maskhost $user]] timer $3xStatsTimeForIgnore "3xRemoveUserFromStatsIgnore $channel $user" puthelp "NOTICE $nick :Sorry! You will be ignored for Stats in $channel for the next Minutes!" putlog "$3xLogo <=> $nick ([maskhost $user]) tries to cheat Stats in [string tolower $channel]!" return } } ##### Raise total Number of Words in the Channel! set 3xStatsNumberOfWordsInChannel($channel) [expr $3xStatsNumberOfWordsInChannel($channel) + [llength [split $msg " "]]] ##### Raise Counter for the current Nick in Channel! set found 0 set i 0 foreach {u c} $3xStatsWordsOfUsersInChannel($channel) { if {$u == [maskhost $user]} { set 3xStatsWordsOfUsersInChannel($channel) [lreplace $3xStatsWordsOfUsersInChannel($channel) [expr $i * 2] [expr ($i * 2) + 1] [maskhost $user] [expr $c + [llength [split $msg " "]]]] set 3xStatsNicksForHosts([maskhost $user]) $nick set found 1 break } set i [expr $i + 1] } if {!$found} { set 3xStatsWordsOfUsersInChannel($channel) [concat $3xStatsWordsOfUsersInChannel($channel) [maskhost $user] [llength [split $msg " "]]] set 3xStatsNicksForHosts([maskhost $user]) $nick } ##### Raise Counter for every single Word of the current Message! foreach {word} $msg { if {[string length $word] < 6} { continue } set word [string tolower $word] set found 0 set i 0 foreach {w c} $3xStatsWordsInChannel($channel) { if {$w == $word} { set 3xStatsWordsInChannel($channel) [lreplace $3xStatsWordsInChannel($channel) [expr $i * 2] [expr ($i * 2) + 1] $word [expr $c + 1]] set found 1 break } set i [expr $i + 1] } if {!$found} { set 3xStatsWordsInChannel($channel) [concat $3xStatsWordsInChannel($channel) $word 1] } } } proc 3xShowStats {nick user handle channel msg} { global botnick 3xLogo 3xStatsNumberOfWordsInChannel 3xStatsStarted 3xStatsWordsOfUsersInChannel 3xStatsWordsInChannel 3xStatsTimerCheck 3xStatsIgnoreChannels 3xStatsLinkedBots 3xStatsNicksForHosts if {[lsearch -exact [string tolower $3xStatsIgnoreChannels] [string tolower $channel]] > -1} { return } foreach {bot} $3xStatsLinkedBots { if {[handonchan $bot $channel]} { return } } set channel [string tolower $channel] ##### Check the Timer! if {![3xCheckTimer $channel stats [lindex [split $3xStatsTimerCheck :] 0] [lindex [split $3xStatsTimerCheck :] 1] $nick $handle]} { return } if {![info exists 3xStatsStarted($channel)]} { set 3xStatsStarted($channel) [expr [clock seconds] - 1] } if {![info exists 3xStatsNumberOfWordsInChannel($channel)]} { set 3xStatsNumberOfWordsInChannel($channel) 0 } if {![info exists 3xStatsWordsOfUsersInChannel($channel)]} { set 3xStatsWordsOfUsersInChannel($channel) {} } if {![info exists 3xStatsWordsInChannel($channel)]} { set 3xStatsWordsInChannel($channel) {} } ##### Build up sorted List and String for TopChatter! set tmpList {} foreach {u c} $3xStatsWordsOfUsersInChannel($channel) { set tmpList [concat $tmpList \{$u $c\}] } set tmpList [lsort -decreasing -integer -index 1 $tmpList] set tmpList [lrange $tmpList 0 2] foreach {l} $tmpList { if {[info exists topchatter]} { set topchatter "$topchatter, $3xStatsNicksForHosts([lindex $l 0]) ([lindex $l 1])" } if {![info exists topchatter]} { set topchatter "$3xStatsNicksForHosts([lindex $l 0]) ([lindex $l 1])" } } if {![info exists topchatter]} { set topchatter "none" } ##### Build up sorted List and String for TopWords! set tmpList {} foreach {w c} $3xStatsWordsInChannel($channel) { if {[string length $w] < 6} { continue; } set tmpList [concat $tmpList \{$w $c\}] } set tmpList [lsort -decreasing -integer -index 1 $tmpList] set tmpList [lrange $tmpList 0 2] foreach {l} $tmpList { if {[info exists topwords]} { set topwords "$topwords, [lindex $l 0] ([lindex $l 1])" } if {![info exists topwords]} { set topwords "[lindex $l 0] ([lindex $l 1])" } } if {![info exists topwords]} { set topwords "none" } ##### Build up sorted List and String for TopIdler! set tmpList {} set tmpNicks [chanlist $channel] set tmpBots [chanlist $channel +b] foreach {n} $tmpNicks { ##### Ignore the Bot itself! if {$n == $botnick} { continue } ##### Ignore all other Bots! set found 0 foreach {b} $tmpBots { if {$b == $n} { set found 1 break } } if {!$found} { set tmpList [concat $tmpList \{[3xReplaceDangerousChars $n] [getchanidle $n $channel]\}] } } set tmpList [lsort -decreasing -integer -index 1 $tmpList] set tmpList [lrange $tmpList 0 2] foreach {l} $tmpList { if {[info exists topidler]} { set topidler "$topidler, [lindex $l 0] ([lindex $l 1])" } if {![info exists topidler]} { set topidler "[lindex $l 0] ([lindex $l 1])" } } if {![info exists topidler]} { set topidler "none" } puthelp "PRIVMSG $channel :$3xLogo All Totals : [3xGetTimeString [expr [clock seconds] - $3xStatsStarted($channel)]] - $3xStatsNumberOfWordsInChannel($channel) Words ([format %.2f [expr $3xStatsNumberOfWordsInChannel($channel) / ((([clock seconds] - $3xStatsStarted($channel)) / 60.0) + 0.0)]] per Minute)" puthelp "PRIVMSG $channel :$3xLogo TopChatter : $topchatter!" puthelp "PRIVMSG $channel :$3xLogo TopIdler \002\002 \002\002 : $topidler!" puthelp "PRIVMSG $channel :$3xLogo TopWords \002\002 \002\002 : $topwords!" putlog "$3xLogo <=> $nick ($handle) calls for Stats in [string tolower $channel]!" } proc 3xShowStatsForUser {nick user handle channel msg} { global botnick 3xLogo 3xStatsWordsOfUsersInChannel 3xStatsIgnoreChannels 3xStatsLinkedBots 3xStatsForUserTimerCheck if {[lsearch -exact [string tolower $3xStatsIgnoreChannels] [string tolower $channel]] > -1} { return } foreach {bot} $3xStatsLinkedBots { if {[handonchan $bot $channel]} { return } } set channel [string tolower $channel] ##### Check the Timer! if {![3xCheckTimer $channel stats [lindex [split $3xStatsForUserTimerCheck :] 0] [lindex [split $3xStatsForUserTimerCheck :] 1] $nick $handle]} { return } if {![info exists 3xStatsWordsOfUsersInChannel($channel)]} { set 3xStatsWordsOfUsersInChannel($channel) {} } ##### Build up sorted List and String for TopChatter! set tmpList {} if {[info exists tmpChatter]} { unset tmpChatter } foreach {u c} $3xStatsWordsOfUsersInChannel($channel) { set tmpList [concat $tmpList \{$u $c\}] if {$u == [maskhost $user]} { set tmpChatter [subst {$u $c}] } } set tmpList [lsort -decreasing -integer -index 1 $tmpList] if {![info exists tmpChatter]} { puthelp "NOTICE $nick :You don't have any Stats for this Channel!" return } set tmpChatterIndex [lsearch -exact $tmpList $tmpChatter] puthelp "PRIVMSG $channel :$3xLogo $nick, You're placed [expr $tmpChatterIndex + 1]. with [lindex $tmpChatter 1] total Words!" putlog "$3xLogo <=> $nick ($handle) calls for MyStats in [string tolower $channel]!" } proc 3xResetStats {handle idx arg} { global 3xLogo 3xStatsNumberOfWordsInChannel 3xStatsStarted 3xStatsWordsOfUsersInChannel 3xStatsWordsInChannel 3xStatsUsersOnIgnoreInChannel set channel [string tolower [lindex $arg 0]] if {[string length $channel] < 2} { putlog "$3xLogo <=> $handle, you need to specify a valid Channel to reset Stats on!" return } set 3xStatsStarted($channel) [clock seconds] set 3xStatsNumberOfWordsInChannel($channel) 0 set 3xStatsWordsOfUsersInChannel($channel) {} set 3xStatsWordsInChannel($channel) {} set 3xStatsUsersOnIgnoreInChannel($channel) {} putlog "$3xLogo <=> $handle resets Stats in [string tolower $channel]!" } proc 3xRemoveUserFromStatsIgnore {channel user} { global 3xLogo 3xStatsUsersOnIgnoreInChannel set i [lsearch -exact $3xStatsUsersOnIgnoreInChannel($channel) [maskhost $user]] set 3xStatsUsersOnIgnoreInChannel($channel) [lreplace $3xStatsUsersOnIgnoreInChannel($channel) $i $i] putlog "$3xLogo <=> [maskhost $user] is no longer ignored for Stats in [string tolower $channel]!" } if {$3xUseStats} { bind PUBM -|- * 3xUpdateStats bind PUB -|- !stats 3xShowStats bind PUB -|- !mystats 3xShowStatsForUser bind DCC m|m resetstats 3xResetStats } ##### Here the VotingSystem gets implemented. Use !vote to start a new Vote in a Channel. ##### All +o Users have Access in there Channel. All Users can vote to it via Channel or Query. ##### The Vote lasts 5 Minutes and can't be canceled. proc 3xStartVote {nick user handle channel vote} { global 3xLogo 3xVoteQuestion 3xVoteChannel 3xVoteRunning 3xVotesYes 3xVotesNo 3xVotesIdents 3xVoteLinkedBots foreach {bot} $3xVoteLinkedBots { if {[handonchan $bot $channel]} { return } } if {[info exists 3xVoteRunning]} { if {$3xVoteRunning == 1} { puthelp "NOTICE $nick :There is allready a Vote running! Please try again later!" return 0 } } if {[string length $vote] < 1} { puthelp "NOTICE $nick :Please specify your Vote by using !vote !" return 0 } set 3xVoteRunning 1 set 3xVoteChannel $channel set 3xVoteQuestion $vote set 3xVotesYes 0 set 3xVotesNo 0 if {[info exists 3xVotesIdents]} { unset 3xVotesIdents } puthelp "PRIVMSG $3xVoteChannel :$3xLogo Vote: $3xVoteQuestion" puthelp "PRIVMSG $3xVoteChannel :$3xLogo Use \002!yes\002 or \002!no\002 to submit your Vote! There are 5 Minutes left!" timer 3 3xRemindVote timer 5 3xEndVote putlog "$3xLogo <=> $nick ($handle) started Vote in [string tolower $channel]!" } proc 3xRemindVote { } { global 3xLogo 3xVoteQuestion 3xVoteChannel 3xVoteRunning 3xVotesYes 3xVotesNo 3xVotesIdents puthelp "PRIVMSG $3xVoteChannel :$3xLogo Vote: $3xVoteQuestion" puthelp "PRIVMSG $3xVoteChannel :$3xLogo Use \002!yes\002 or \002!no\002 to submit your Vote! There are 2 Minutes left!" putlog "$3xLogo <=> Reminded on Vote in [string tolower $3xVoteChannel]!" } proc 3xEndVote { } { global 3xLogo 3xVoteQuestion 3xVoteChannel 3xVoteRunning 3xVotesYes 3xVotesNo 3xVotesIdents 3xVoteLogfile puthelp "PRIVMSG $3xVoteChannel :$3xLogo Vote: $3xVoteQuestion" puthelp "PRIVMSG $3xVoteChannel :$3xLogo The Results are \002$3xVotesYes\002 yes -vs- \002$3xVotesNo\002 no!" set tmpFile [open $3xVoteLogfile a+] puts $tmpFile "[clock seconds]\t$3xVoteChannel\t$3xVoteQuestion\t$3xVotesYes\t$3xVotesNo" close $tmpFile set 3xVoteRunning 0 putlog "$3xLogo <=> Vote ended in [string tolower $3xVoteChannel]! Result got logged!" } proc 3xVoteYes {nick user handle channel msg} { global 3xLogo 3xVoteQuestion 3xVoteChannel 3xVoteRunning 3xVotesYes 3xVotesNo 3xVotesIdents if {[matchattr $handle +b]} { return } if {![info exists 3xVoteRunning]} { return 0 } if {$3xVoteRunning == 0} { return 0 } if {[info exists 3xVotesIdents($user)]} { return 0 } incr 3xVotesYes set 3xVotesIdents($user) 1 puthelp "NOTICE $nick :Thanx for your Voting!" putlog "$3xLogo <=> $nick ($user) voted for YES!" } proc 3xVoteNo {nick user handle channel msg} { global 3xLogo 3xVoteQuestion 3xVoteChannel 3xVoteRunning 3xVotesYes 3xVotesNo 3xVotesIdents if {[matchattr $handle +b]} { return } if {![info exists 3xVoteRunning]} { return 0 } if {$3xVoteRunning == 0} { return 0 } if {[info exists 3xVotesIdents($user)]} { return 0 } incr 3xVotesNo set 3xVotesIdents($user) 1 puthelp "NOTICE $nick :Thanx for your Voting!" putlog "$3xLogo <=> $nick ($user) voted for NO!" } proc 3xVoteYesMsg {nick user handle msg} { 3xVoteYes $nick $user $handle "dummy" $msg } proc 3xVoteNoMsg {nick user handle msg} { 3xVoteNo $nick $user $handle "dummy" $msg } if {$3xUseVote} { bind PUB o|o !vote 3xStartVote bind PUB -|- !yes 3xVoteYes bind PUB -|- !no 3xVoteNo bind MSG -|- !yes 3xVoteYesMsg bind MSG -|- !no 3xVoteNoMsg } ##### This one sends the Note to all Users with the specified Flag. This allows easy Usage ##### of Notes for Admins. The Notes-Module will be needed for that! proc 3xSendNote {handle idx arg} { global 3xLogo set flags [lindex $arg 0] set matchedUsers [userlist $flags] foreach user $matchedUsers { if {[storenote $handle $user "[lrange $arg 1 end]" -1] == 0} { putlog "$3xLogo <=> $handle couldn't store Note for $user!" } } putlog "$3xLogo <=> $handle stored Note for [join $matchedUsers ","]!" } if {$3xUseMassNote} { bind DCC -|- massnote 3xSendNote } ##### The following Block will deal with the Commands !url, !clan, !server, !email and !icq. ##### They are used to grep some Database for Lines matching at least one of the issued Keywords. ##### Additionally several Search-Features are supported like + and - Switches in Front of Strings! proc 3xSearchDatabase {nick user handle channel db type args} { global 3xLogo 3xMaxEntriesToShowInChannel 3xMaxEntriesToShowInQuery 3xDatabaseTimerCheck if {$type == "channel"} { if {![3xCheckTimer $channel database [lindex [split $3xDatabaseTimerCheck :] 0] [lindex [split $3xDatabaseTimerCheck :] 1] $nick $handle]} { return } } set channel [string tolower $channel] ##### Try to match the Line! set tmpList {} set args [3xRemoveDangerousChars $args] regsub -all -- \\\? $args \\\\\? args set args [split $args " "] foreach {l} $db { set valid 0 foreach {k} $args { ##### If the Keyword starts with + it MUST be found! if {[string first + $k] == 0} { set valid 1 if {![string match [string tolower \*[string trimleft $k +]\*] [string tolower $l]]} { set valid 0 break } continue } ##### If the Keyword starts with - it must NOT be found! if {[string first - $k] == 0} { set valid 1 if {[string match [string tolower \*[string trimleft $k -]\*] [string tolower $l]]} { set valid 0 break } continue } ##### Every other Keyword is might be matched! if {[string match [string tolower \*$k\*] [string tolower $l]]} { set valid 1 } } if {$valid} { set tmpList [concat $tmpList \{$l\}] } } ##### Check if at least one got found! if {[llength $tmpList] == 0} { puthelp "NOTICE $nick :Sorry... found no Entry matching your Query!" return } ##### Check how many have been found! if {($type == "channel") && ([llength $tmpList] > $3xMaxEntriesToShowInChannel)} { set tmpCount [llength $tmpList] set tmpList [lrange $tmpList 0 [expr $3xMaxEntriesToShowInChannel - 1]] puthelp "NOTICE $nick :These are only the first $3xMaxEntriesToShowInChannel of $tmpCount Entries matching your Query!" puthelp "NOTICE $nick :You might need to redefine your Search using + and - as Qualifiers!" puthelp "NOTICE $nick :Displaying max $3xMaxEntriesToShowInChannel Entries in Channels and $3xMaxEntriesToShowInQuery in private Chat!" } if {($type == "query") && ([llength $tmpList] > $3xMaxEntriesToShowInQuery)} { set tmpCount [llength $tmpList] set tmpList [lrange $tmpList 0 [expr $3xMaxEntriesToShowInQuery - 1]] puthelp "NOTICE $nick :These are only the first $3xMaxEntriesToShowInQuery of $tmpCount Entries matching your Query!" puthelp "NOTICE $nick :You might need to redefine your Search using + and - as Qualifiers!" puthelp "NOTICE $nick :Displaying max $3xMaxEntriesToShowInChannel Entries in Channels and $3xMaxEntriesToShowInQuery in private Chat!" } ##### Print all found Results! if {$type == "channel"} { foreach {l} $tmpList { puthelp "PRIVMSG $channel :$3xLogo $l" } return } if {$type == "query"} { foreach {l} $tmpList { puthelp "PRIVMSG $nick :$3xLogo $l" } return } } proc 3xSearchUrl {nick user handle channel args} { global 3xLogo 3xDataUrl 3xUrlIgnoreChannels 3xUrlLinkedBots if {[lsearch -exact [string tolower $3xUrlIgnoreChannels] [string tolower $channel]] > -1} { return } foreach {bot} $3xUrlLinkedBots { if {[handonchan $bot $channel]} { return } } 3xSearchDatabase $nick $user $handle $channel $3xDataUrl "channel" $args putlog "$3xLogo <=> $nick ($handle) calls for !url in [string tolower $channel]!" } proc 3xSearchUrlQuery {nick user handle args} { global 3xLogo 3xDataUrl 3xSearchDatabase $nick $user $handle "dummy" $3xDataUrl "query" $args putlog "$3xLogo <=> $nick ($handle) calls for !url in Query!" } proc 3xSearchClan {nick user handle channel args} { global 3xLogo 3xDataClan 3xClanIgnoreChannels 3xClanLinkedBots if {[lsearch -exact [string tolower $3xClanIgnoreChannels] [string tolower $channel]] > -1} { return } foreach {bot} $3xClanLinkedBots { if {[handonchan $bot $channel]} { return } } 3xSearchDatabase $nick $user $handle $channel $3xDataClan "channel" $args putlog "$3xLogo <=> $nick ($handle) calls for !clan in [string tolower $channel]!" } proc 3xSearchClanQuery {nick user handle args} { global 3xLogo 3xDataClan 3xSearchDatabase $nick $user $handle "dummy" $3xDataClan "query" $args putlog "$3xLogo <=> $nick ($handle) calls for !clan in Query!" } proc 3xSearchEmail {nick user handle channel args} { global 3xLogo 3xDataEmail 3xEmailIgnoreChannels 3xEmailLinkedBots if {[lsearch -exact [string tolower $3xEmailIgnoreChannels] [string tolower $channel]] > -1} { return } foreach {bot} $3xEmailLinkedBots { if {[handonchan $bot $channel]} { return } } 3xSearchDatabase $nick $user $handle $channel $3xDataEmail "channel" $args putlog "$3xLogo <=> $nick ($handle) calls for !email in [string tolower $channel]!" } proc 3xSearchEmailQuery {nick user handle args} { global 3xLogo 3xDataEmail 3xSearchDatabase $nick $user $handle "dummy" $3xDataEmail "query" $args putlog "$3xLogo <=> $nick ($handle) calls for !email in Query!" } proc 3xSearchIcq {nick user handle channel args} { global 3xLogo 3xDataIcq 3xIcqIgnoreChannels 3xIcqLinkedBots if {[lsearch -exact [string tolower $3xIcqIgnoreChannels] [string tolower $channel]] > -1} { return } foreach {bot} $3xIcqLinkedBots { if {[handonchan $bot $channel]} { return } } 3xSearchDatabase $nick $user $handle $channel $3xDataIcq "channel" $args putlog "$3xLogo <=> $nick ($handle) calls for !icq in [string tolower $channel]!" } proc 3xSearchIcqQuery {nick user handle args} { global 3xLogo 3xDataIcq 3xSearchDatabase $nick $user $handle "dummy" $3xDataIcq "query" $args putlog "$3xLogo <=> $nick ($handle) calls for !icq in Query!" } proc 3xSearchServer {nick user handle channel args} { global 3xLogo 3xDataServer 3xServerIgnoreChannels 3xServerLinkedBots if {[lsearch -exact [string tolower $3xServerIgnoreChannels] [string tolower $channel]] > -1} { return } foreach {bot} $3xServerLinkedBots { if {[handonchan $bot $channel]} { return } } 3xSearchDatabase $nick $user $handle $channel $3xDataServer "channel" $args putlog "$3xLogo <=> $nick ($handle) calls for !server in [string tolower $channel]!" } proc 3xSearchServerQuery {nick user handle args} { global 3xLogo 3xDataServer 3xSearchDatabase $nick $user $handle "dummy" $3xDataServer "query" $args putlog "$3xLogo <=> $nick ($handle) calls for !server in Query!" } proc 3xSearchCountry {nick user handle channel args} { global 3xLogo 3xDataCountry 3xCountryIgnoreChannels 3xCountryLinkedBots if {[lsearch -exact [string tolower $3xCountryIgnoreChannels] [string tolower $channel]] > -1} { return } foreach {bot} $3xCountryLinkedBots { if {[handonchan $bot $channel]} { return } } 3xSearchDatabase $nick $user $handle $channel $3xDataCountry "channel" $args putlog "$3xLogo <=> $nick ($handle) calls for !country in [string tolower $channel]!" } proc 3xSearchCountryQuery {nick user handle args} { global 3xLogo 3xDataCountry 3xSearchDatabase $nick $user $handle "dummy" $3xDataCountry "query" $args putlog "$3xLogo <=> $nick ($handle) calls for !country in Query!" } proc 3xSearchWhat {nick user handle channel args} { global 3xLogo 3xDataWhat 3xWhatIgnoreChannels 3xWhatLinkedBots if {[lsearch -exact [string tolower $3xWhatIgnoreChannels] [string tolower $channel]] > -1} { return } foreach {bot} $3xWhatLinkedBots { if {[handonchan $bot $channel]} { return } } 3xSearchDatabase $nick $user $handle $channel $3xDataWhat "channel" $args putlog "$3xLogo <=> $nick ($handle) calls for !what in [string tolower $channel]!" } proc 3xSearchWhatQuery {nick user handle args} { global 3xLogo 3xDataWhat 3xSearchDatabase $nick $user $handle "dummy" $3xDataWhat "query" $args putlog "$3xLogo <=> $nick ($handle) calls for !what in Query!" } proc 3xNotifyOnAdd {nick user handle channel args} { global 3xLogo 3xNotificationHandle 3xNotificationLinkedBots foreach {bot} $3xNotificationLinkedBots { if {[handonchan $bot $channel]} { return } } set msg [join $args " "] if {[string length $msg] < 1} { puthelp "NOTICE $nick :Please specify the Infos needed to insert the Data into the Database!" return } if {[storenote $3xNotificationHandle $3xNotificationHandle "$nick => $msg" -1] == 0} { puthelp "NOTICE $nick :Sorry... couldn't store your Note! Try again later!" return } puthelp "NOTICE $nick :Thanx for your Entry! The Admin will check and add it to the Database!" putlog "$3xLogo <=> $nick ($handle) announced a new Entry for the Database!" } proc 3xNotifyOnAddQuery {nick user handle args} { global 3xLogo 3xNotificationHandle set msg [join $args " "] if {[string length $msg] < 1} { puthelp "NOTICE $nick :Please specify the Infos needed to insert the Data into the Database!" return } if {[storenote $3xNotificationHandle $3xNotificationHandle "$nick => $msg" -1] == 0} { puthelp "NOTICE $nick :Sorry... couldn't store your Note! Try again later!" return } puthelp "NOTICE $nick :Thanx for your Entry! The Admin will check and add it to the Database!" putlog "$3xLogo <=> $nick ($handle) announced a new Entry for the Database!" } proc 3xDatabaseHelp {nick user handle channel args} { global 3xLogo 3xHelpLinkedBots foreach {bot} $3xHelpLinkedBots { if {[handonchan $bot $channel]} { return } } puthelp "NOTICE $nick :This Bot features \0023xBot.tcl\002! You can use the following Commands!" puthelp "NOTICE $nick :!clan !url !server !email !icq !what !country !stats !topic !ltopic and ?topic" puthelp "NOTICE $nick :Use !add to announce new Entries for the Database!" putlog "$3xLogo <=> $nick ($handle) calls for !help in [string tolower $channel]!" } proc 3xDatabaseHelpQuery {nick user handle args} { global 3xLogo puthelp "NOTICE $nick :This Bot features \0023xBot.tcl\002! You can use the following Commands!" puthelp "NOTICE $nick :!clan !url !server !email !icq !what !country !stats !topic !ltopic and ?topic" puthelp "NOTICE $nick :Use !add to announce new Entries for the Database!" putlog "$3xLogo <=> $nick ($handle) calls for !help in Query" } proc 3xAddEntryToDatabase {handle idx arg} { global 3xLogo 3xDataUrl 3xDataServer 3xDataClan 3xDataEmail 3xDataIcq 3xDataWhat 3xDataCountry 3xFileUrl 3xFileServer 3xFileClan 3xFileEmail 3xFileIcq 3xFileWhat 3xFileCountry set arg [3xRemoveDangerousChars $arg] set db [string tolower [lindex $arg 0]] if {($db != "url") && ($db != "clan") && ($db != "server") && ($db != "icq") && ($db != "email") && ($db != "what") && ($db != "country")} { putlog "$3xLogo <=> You need to specify the Database! Use url, clan, server, icq, email, what or country!" return } set msg [join [lrange $arg 1 end] " "] if {[string length $msg] < 1} { putlog "$3xLogo <=> You need to specify the new Entry!" return } if {$db == "url"} { file rename -force $3xFileUrl "$3xFileUrl.bak" set 3xDataUrl [concat $3xDataUrl \{$msg\}] set tmpFile [open $3xFileUrl w] puts -nonewline $tmpFile [join $3xDataUrl "\r\n"] close $tmpFile } if {$db == "clan"} { file rename -force $3xFileClan "$3xFileClan.bak" set 3xDataClan [concat $3xDataClan \{$msg\}] set tmpFile [open $3xFileClan w] puts -nonewline $tmpFile [join $3xDataClan "\r\n"] close $tmpFile } if {$db == "server"} { file rename -force $3xFileServer "$3xFileServer.bak" set 3xDataServer [concat $3xDataServer \{$msg\}] set tmpFile [open $3xFileServer w] puts -nonewline $tmpFile [join $3xDataServer "\r\n"] close $tmpFile } if {$db == "email"} { file rename -force $3xFileEmail "$3xFileEmail.bak" set 3xDataEmail [concat $3xDataEmail \{$msg\}] set tmpFile [open $3xFileEmail w] puts -nonewline $tmpFile [join $3xDataEmail "\r\n"] close $tmpFile } if {$db == "icq"} { file rename -force $3xFileIcq "$3xFileIcq.bak" set 3xDataIcq [concat $3xDataIcq \{$msg\}] set tmpFile [open $3xFileIcq w] puts -nonewline $tmpFile [join $3xDataIcq "\r\n"] close $tmpFile } if {$db == "what"} { file rename -force $3xFileWhat "$3xFileWhat.bak" set 3xDataWhat [concat $3xDataWhat \{$msg\}] set tmpFile [open $3xFileWhat w] puts -nonewline $tmpFile [join $3xDataWhat "\r\n"] close $tmpFile } if {$db == "country"} { file rename -force $3xFileCountry "$3xFileCountry.bak" set 3xDataCountry [concat $3xDataCountry \{$msg\}] set tmpFile [open $3xFileCountry w] puts -nonewline $tmpFile [join $3xDataCountry "\r\n"] close $tmpFile } putlog "$3xLogo <=> $handle added a new Entry to the Database!" } bind DCC m|- addentry 3xAddEntryToDatabase proc 3xDelEntryFromDatabase {handle idx arg} { global 3xLogo 3xDataUrl 3xDataServer 3xDataClan 3xDataEmail 3xDataIcq 3xDataWhat 3xDataCountry 3xFileUrl 3xFileServer 3xFileClan 3xFileEmail 3xFileIcq 3xFileWhat 3xFileCountry set arg [3xReplaceDangerousChars $arg] set db [string tolower [lindex $arg 0]] if {($db != "url") && ($db != "clan") && ($db != "server") && ($db != "icq") && ($db != "email") && ($db != "what") && ($db != "country")} { putlog "$3xLogo <=> You need to specify the Database! Use url, clan, server, icq, email, what or country!" return } set msg [join [lrange $arg 1 end] " "] if {[string length $msg] < 1} { putlog "$3xLogo <=> You need to specify the Entry to delete!" return } if {$db == "url"} { set i [lsearch -exact $3xDataUrl $msg] if {$i > -1} { file rename -force $3xFileUrl "$3xFileUrl.bak" set 3xDataUrl [lreplace $3xDataUrl $i $i] set tmpFile [open $3xFileUrl w] puts -nonewline $tmpFile [join $3xDataUrl "\r\n"] close $tmpFile } if {$i == -1} { putlog "$3xLogo <=> This Entry couldn't be found in the Database!" return } } if {$db == "clan"} { set i [lsearch -exact $3xDataClan $msg] if {$i > -1} { file rename -force $3xFileClan "$3xFileClan.bak" set 3xDataClan [lreplace $3xDataClan $i $i] set tmpFile [open $3xFileClan w] puts -nonewline $tmpFile [join $3xDataClan "\r\n"] close $tmpFile } if {$i == -1} { putlog "$3xLogo <=> This Entry couldn't be found in the Database!" return } } if {$db == "server"} { set i [lsearch -exact $3xDataServer $msg] if {$i > -1} { file rename -force $3xFileServer "$3xFileServer.bak" set 3xDataServer [lreplace $3xDataServer $i $i] set tmpFile [open $3xFileServer w] puts -nonewline $tmpFile [join $3xDataServer "\r\n"] close $tmpFile } if {$i == -1} { putlog "$3xLogo <=> This Entry couldn't be found in the Database!" return } } if {$db == "email"} { set i [lsearch -exact $3xDataEmail $msg] if {$i > -1} { file rename -force $3xFileEmail "$3xFileEmail.bak" set 3xDataEmail [lreplace $3xDataEmail $i $i] set tmpFile [open $3xFileEmail w] puts -nonewline $tmpFile [join $3xDataEmail "\r\n"] close $tmpFile } if {$i == -1} { putlog "$3xLogo <=> This Entry couldn't be found in the Database!" return } } if {$db == "icq"} { set i [lsearch -exact $3xDataIcq $msg] if {$i > -1} { file rename -force $3xFileIcq "$3xFileIcq.bak" set 3xDataIcq [lreplace $3xDataIcq $i $i] set tmpFile [open $3xFileIcq w] puts -nonewline $tmpFile [join $3xDataIcq "\r\n"] close $tmpFile } if {$i == -1} { putlog "$3xLogo <=> This Entry couldn't be found in the Database!" return } } if {$db == "what"} { set i [lsearch -exact $3xDataWhat $msg] if {$i > -1} { file rename -force $3xFileWhat "$3xFileWhat.bak" set 3xDataWhat [lreplace $3xDataWhat $i $i] set tmpFile [open $3xFileWhat w] puts -nonewline $tmpFile [join $3xDataWhat "\r\n"] close $tmpFile } if {$i == -1} { putlog "$3xLogo <=> This Entry couldn't be found in the Database!" return } } if {$db == "country"} { set i [lsearch -exact $3xDataCountry $msg] if {$i > -1} { file rename -force $3xFileCountry "$3xFileCountry.bak" set 3xDataCountry [lreplace $3xDataCountry $i $i] set tmpFile [open $3xFileCountry w] puts -nonewline $tmpFile [join $3xDataCountry "\r\n"] close $tmpFile } if {$i == -1} { putlog "$3xLogo <=> This Entry couldn't be found in the Database!" return } } putlog "$3xLogo <=> $handle deleted an Entry from the Database!" } bind DCC m|- delentry 3xDelEntryFromDatabase if {$3xUseUrl} { global 3xDataUrl set tmpFile [open $3xFileUrl r] set 3xDataUrl [split [read $tmpFile] "\r\n"] close $tmpFile bind PUB -|- !url 3xSearchUrl bind MSG -|- !url 3xSearchUrlQuery } if {$3xUseClan} { global 3xDataClan set tmpFile [open $3xFileClan r] set 3xDataClan [split [read $tmpFile] "\r\n"] close $tmpFile bind PUB -|- !clan 3xSearchClan bind MSG -|- !clan 3xSearchClanQuery } if {$3xUseEmail} { global 3xDataEmail set tmpFile [open $3xFileEmail r] set 3xDataEmail [split [read $tmpFile] "\r\n"] close $tmpFile bind PUB -|- !email 3xSearchEmail bind MSG -|- !email 3xSearchEmailQuery } if {$3xUseIcq} { global 3xDataIcq set tmpFile [open $3xFileIcq r] set 3xDataIcq [split [read $tmpFile] "\r\n"] close $tmpFile bind PUB -|- !icq 3xSearchIcq bind MSG -|- !icq 3xSearchIcqQuery } if {$3xUseServer} { global 3xDataServer set tmpFile [open $3xFileServer r] set 3xDataServer [split [read $tmpFile] "\r\n"] close $tmpFile bind PUB -|- !server 3xSearchServer bind MSG -|- !server 3xSearchServerQuery } if {$3xUseCountry} { global 3xDataCountry set tmpFile [open $3xFileCountry r] set 3xDataCountry [split [read $tmpFile] "\r\n"] close $tmpFile bind PUB -|- !country 3xSearchCountry bind MSG -|- !country 3xSearchCountryQuery } if {$3xUseWhat} { global 3xDataWhat set tmpFile [open $3xFileWhat r] set 3xDataWhat [split [read $tmpFile] "\r\n"] close $tmpFile bind PUB -|- !what 3xSearchWhat bind MSG -|- !what 3xSearchWhatQuery } if {$3xUseAddNotification} { bind PUB -|- !add 3xNotifyOnAdd bind MSG -|- !add 3xNotifyOnAddQuery } if {$3xUseHelp} { bind PUB -|- !help 3xDatabaseHelp bind MSG -|- !help 3xDatabaseHelpQuery } ##### This one counts the ColorCodes used in a Message and kicks for using too much of them! proc 3xColorKick {nick user handle channel args} { global 3xLogo 3xColorKickMaxColors 3xColorKickIgnoreChannels if {[lsearch -exact [string tolower $3xColorKickIgnoreChannels] [string tolower $channel]] > -1} { return } set s [join $args " "] if {[regsub -all --  $s "" s] > $3xColorKickMaxColors} { if {[matchattr $handle f|f $channel]} { puthelp "NOTICE $nick :Don't use that much Color! You might loose your +f for this Channel!" putlog "$3xLogo <=> $nick ($handle) uses too much Color in [string tolower $channel]... warned!" return } putkick $channel $nick "Don't use that much Color!" putlog "$3xLogo <=> $nick ($handle) uses too much Color in [string tolower $channel]... kicked!" } } if {$3xUseColorKick} { bind PUBM -|- * 3xColorKick } ##### Calc can be used to calculate some simple mathmematical Terms. proc 3xCalc {nick user handle channel args} { global 3xLogo 3xCalcTimerCheck 3xCalcKickIgnoreChannels 3xCalcLinkedBots if {![3xCheckTimer $channel calc [lindex [split $3xCalcTimerCheck :] 0] [lindex [split $3xCalcTimerCheck :] 1] $nick $handle]} { return } if {[lsearch -exact [string tolower $3xCalcKickIgnoreChannels] [string tolower $channel]] > -1} { return } foreach {bot} $3xCalcLinkedBots { if {[handonchan $bot $channel]} { return } } catch { puthelp "PRIVMSG $channel :$3xLogo [3xRemoveDangerousChars $args] = [expr [3xRemoveDangerousChars $args]]" } putlog "$3xLogo <=> $nick ($handle) calls for !calc in [string tolower $channel]!" } proc 3xCalcQuery {nick user handle args} { global 3xLogo catch { puthelp "PRIVMSG $nick :$3xLogo [3xRemoveDangerousChars $args] = [expr [3xRemoveDangerousChars $args]]" } putlog "$3xLogo <=> $nick ($handle) calls for !calc in Query" } if {$3xUseCalc} { bind PUB -|- !calc 3xCalc bind MSG -|- !calc 3xCalcQuery } ################################################################################################### ################################################################################################### ################################################################################################### ##### This Procedure wil be used for all the TimeChecks for public Commands. ##### It deals with different Timers and controls the Usage of Commands in the Channel! proc 3xCheckTimer {channel command count time nick handle} { global 3xTimerForCommand if {[string first m [chattr $handle $channel]] != -1} { return 1 } if {[string first n [chattr $handle $channel]] != -1} { return 1 } if {![info exists 3xTimerForCommand($channel\ $command)]} { set 3xTimerForCommand($channel\ $command) 0 } if {$3xTimerForCommand($channel\ $command) >= $count} { puthelp "NOTICE $nick :Keep waiting... Usage only $count times in $time Minutes!" return 0 } set 3xTimerForCommand($channel\ $command) [expr $3xTimerForCommand($channel\ $command) + 1] timer $time "3xRemoveTimer $channel $command" return 1 } proc 3xRemoveTimer {channel command} { global 3xTimerForCommand set 3xTimerForCommand($channel\ $command) [expr $3xTimerForCommand($channel\ $command) - 1] } proc 3xGetTimeString {seconds} { if {$seconds < 60} { return "a few Seconds" } set 3xTimeDays [format %i [expr $seconds / 86400]] set seconds [expr $seconds - (86400 * $3xTimeDays)] set 3xTimeHours [format %i [expr $seconds / 3600]] set seconds [expr $seconds - (3600 * $3xTimeHours)] set 3xTimeMinutes [format %i [expr $seconds / 60]] set 3xTimeString "" if {($3xTimeDays > 1) && ($3xTimeHours || $3xTimeMinutes)} { set 3xTimeString "$3xTimeDays Days, " } if {($3xTimeDays == 1) && ($3xTimeHours || $3xTimeMinutes)} { set 3xTimeString "$3xTimeDays Day, " } if {($3xTimeDays > 1) && !$3xTimeHours && !$3xTimeMinutes} { set 3xTimeString "$3xTimeDays Days" } if {($3xTimeDays == 1) && !$3xTimeHours && !$3xTimeMinutes} { set 3xTimeString "$3xTimeDays Day" } if {($3xTimeHours > 1) && $3xTimeMinutes} { set 3xTimeString "$3xTimeString $3xTimeHours Hours, " } if {($3xTimeHours == 1) && $3xTimeMinutes} { set 3xTimeString "$3xTimeString $3xTimeHours Hour, " } if {($3xTimeHours > 1) && !$3xTimeMinutes} { set 3xTimeString "$3xTimeString $3xTimeHours Hours" } if {($3xTimeHours == 1) && !$3xTimeMinutes} { set 3xTimeString "$3xTimeString $3xTimeHours Hour" } if {$3xTimeMinutes > 1} { set 3xTimeString "$3xTimeString $3xTimeMinutes Minutes" } if {$3xTimeMinutes == 1} { set 3xTimeString "$3xTimeString $3xTimeMinutes Minute" } return $3xTimeString } ##### This one replaces all these dangerous Characters in Strings! proc 3xReplaceDangerousChars {s} { regsub -all -- \\\\ $s \\\\\\\\ s regsub -all -- \\\[ $s \\\\\[ s regsub -all -- \\\] $s \\\\\] s regsub -all -- \\\} $s \\\\\} s regsub -all -- \\\{ $s \\\\\{ s regsub -all -- \\\" $s \\\\\" s if {[string first $s "\]"] == 0} { set s "\\\][string trimleft $s \]]" } if {[string last $s "\["] == [expr [string length $s] - 1]} { set s "[string trimright $s \[]\\\[" } return $s } ##### This one replaces all these dangerous Characters in Strings! proc 3xReplaceMostDangerousChars {s} { regsub -all -- \\\} $s \\\\\} s regsub -all -- \\\{ $s \\\\\{ s regsub -all -- \\\] $s \\\\\] s regsub -all -- \\\[ $s \\\\\[ s if {[string first $s "\]"] == 0} { set s "\\\][string trimleft $s \]]" } if {[string last $s "\["] == [expr [string length $s] - 1]} { set s "[string trimright $s \[]\\\[" } return $s } ##### This one replaces all these dangerous Characters in Strings! proc 3xReplaceDangerousSlashes {s} { regsub -all -- \\\\ $s \\\\\\\\ s return $s } ##### This one removes all these dangerous Characters in Strings! proc 3xRemoveDangerousChars {s} { regsub -all -- \\\\ $s "" s regsub -all -- \\\[ $s "" s regsub -all -- \\\] $s "" s regsub -all -- \\\} $s "" s regsub -all -- \\\{ $s "" s regsub -all -- \\\" $s "" s if {[string first $s "\]"] == 0} { set s [string trimleft $s \]] } if {[string last $s "\["] == [expr [string length $s] - 1]} { set s [string trimright $s \[] } return $s } ##### This one removes all ColorCodes, Bolds and Co. from Strings! proc 3xRemoveColorCodesAndCo {s} { regsub -all --  $s "" s regsub -all --  $s "" s regsub -all --  $s "" s regsub -all -- \[0-9\]\[0-9\],\[0-9\]\[0-9\] $s "" s regsub -all -- \[0-9\],\[0-9\]\[0-9\] $s "" s regsub -all -- \[0-9\]\[0-9\],\[0-9\] $s "" s regsub -all -- \[0-9\],\[0-9\] $s "" s regsub -all -- \[0-9\]\[0-9\] $s "" s regsub -all -- \[0-9\] $s "" s return $s } ##### Just tests the two given Handles and returns 1 if the first submited has more or equal Rights than the second! proc 3xCompareFlags {handle1 handle2 channel} { set s_max1 0 set s_max2 0 if {[matchattr $handle1 v|v $channel]} { set s_max1 1 } if {[matchattr $handle1 g|g $channel]} { set s_max1 2 } if {[matchattr $handle1 o|o $channel]} { set s_max1 3 } if {[matchattr $handle1 m|m $channel]} { set s_max1 4 } if {[matchattr $handle1 n|n $channel]} { set s_max1 5 } if {[matchattr $handle2 v|v $channel]} { set s_max2 1 } if {[matchattr $handle2 g|g $channel]} { set s_max2 2 } if {[matchattr $handle2 o|o $channel]} { set s_max2 3 } if {[matchattr $handle2 m|m $channel]} { set s_max2 4 } if {[matchattr $handle2 n|n $channel]} { set s_max2 5 } if {$s_max1 >= $s_max2} { return 1 } return 0 } #proc xrange {xr xr1 xr2} { # return [join [lrange [split $xr] $xr1 $xr2]] #} #proc xindex {xr xr1} { # return [join [lrange [split $xr] $xr1 $xr1]] #} ##### Load the HelpFile! loadhelp 3xBot.help ##### Close with short Message! putlog "$3xLogo v1.03 loaded! - TripleX - use \002.help 3xBot\002 for Infos!" votes.cgi0100666000076700007670000000407407062115462012027 0ustar guppyguppy#!/usr/local/bin/perl my $buffer, $value, $pair, $name, $ARGS; read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); my @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/\\/\//g; $ARGS{$name} = $value; } $buffer=$ENV{'QUERY_STRING'}; @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/\\/\//g; $ARGS{$name} = $value; } if (!open(FILE,"/home/m/mrbrain/EggDrop/data/3xVotes.log")) { exit; } my @allVotes = ; close(FILE); print "Content-type: text/html\n\n"; print "3xBot - Votings\n"; my $i; my $aTime,$aChannel,$aVote,$aYes,$aNo; my $sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst; for ($i=@allVotes; $i>0; $i--) { $actVote = $allVotes[$i-1]; $actVote =~ s/\r//g; $actVote =~ s/\n//g; ($aTime,$aChannel,$aVote,$aYes,$aNo) = split (/\t/,$actVote); if (!$aVote) { next; } ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($aTime); $year += 1900; $mon += 1; if ($mon < 10) { $mon = "0".$mon; } if ($mday < 10) { $mday = "0".$mday } if ($hour < 10) { $hour = "0".$hour; } if ($min < 10) { $min = "0".$min; } print "
\n"; print "Es war am $mday.$mon.$year um $hour:$min in $aChannel...
\n"; print "$aVote
\n"; print "
  ".$aYes."x Ja
\n"; print "
  ".$aNo."x Nein
\n"; print "
\n"; print "
\n"; } print "\n";