Jump to content

coders-irc_Bot

Administrators
  • Posts

    580
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by coders-irc_Bot

  1. Version 1.0.0

    0 downloads

    Kaguya A small but powerful IRC bot Installation Add kaguya to your list of dependencies in mix.exs: def deps do [{:kaguya, "~> x.y.z"}] end Run mix deps.get Ensure kaguya is started before your application: def application do [applications: [:kaguya]] end Configure kaguya in config.exs: config :kaguya, server: "my.irc.server", port: 6666, bot_name: "kaguya", channels: ["#kaguya"] Usage By default Kaguya won't do much. This is an example of a module which will perform a few simple commands: defmodule Kaguya.Module.Simple do use Kaguya.Module, "simple" handle "PRIVMSG" do match ["!ping", "!p"], :pingHandler match "hi", :hiHandler match "!say ~message", :sayHandler end defh pingHandler, do: reply "pong!" defh hiHandler(%{user: %{nick: nick}}), do: reply "hi #{nick}!" defh sayHandler(%{"message" => response}), do: reply response end This module defines four commands to be handled: !ping and !p are aliased to the same handler, which has the bot respond pong!. hi will cause the bot to reply saying "hi" with the persons' nick !say [some message] will have the bot echo the message the user gave. The handler macro can accept up to two different parameters, a map which destructures a message struct, and a map which destructures a match from a command. You can find a more full featured example in example/basic.ex. Configuration server - Hostname or IP address to connect with. String. server_ip_type - IP version to use. Can be either inet or inet6 port - Port to connect on. Integer. bot_name - Name to use by bot. String. channels - List of channels to join. Format: #<name>. List help_cmd - Specifies command to act as help. Defaults to .help. String use_ssl - Specifies whether to use SSL or not. Boolean reconnect_interval - Interval for reconnection in ms. Integer. Not used. server_timeout - Timeout(ms) that determines when server gets disconnected. Integer. When omitted Kaguya does not verifies connectivity with server. It is recommended to set at least few minutes.
  2. Version 1.0.0

    0 downloads

    An advanced and scriptable PHP IRC bot. It is designed to run off a local LAMP, WAMP, MAMP stack or just plain PHP installation. No web server is required, only a working PHP installation. System requirements In order to run WildPHP, we ask a few things from your system. Notably: A PHP version equal to or higher than 7.1.0. Command-line access to the system you plan on running WildPHP on. WildPHP will NOT run inside a web server like Apache or Nginx. Do not ask for support for doing so. WildPHP has been tested to work on Linux and macOS. Other platforms are not supported and not guaranteed to work. For the best experience, we recommend either using the included systemd service (adjust it to your needs) or using tmux or screen to allow the bot to run in the background. IRC Community & Support If you need help or just want to idle in the IRC channel join us at #wildphp@irc.freenode.net. Development discussion in #wildphp-dev@irc.freenode.net. Features and Functions Right now this version of the bot is under heavy development, therefore the feature list is not definitive. We will update this once a reliable list becomes available. Installation To install the latest development build, you need Composer. Install WildPHP using the following commands: $ git clone https://github.com/WildPHP/irc-bot $ cd irc-bot $ composer install This will pull all Composer dependencies required to run the bot. Please note that the bot may be unstable and that it might not even start. Please file a bug if you encounter an issue! Configuration Copy the example configuration file and edit it to suit your needs. Carefully read the comments. $ cp config/config.sample.php config/config.php Running the bot While you can run the bot in a terminal it is best to run it in tmux or screen so that it can run in background. $ php bin/wildphp.php Alternatively, a systemd service is included. Edit it (carefully read the comments), then drop it in /etc/systemd/system/. Issue a systemctl daemon-reload afterwards and you should be able to use the service. Contributors You can see the full list of contributors in the GitHub repository. Major & Past Major Contributors Super3 Pogosheep Matejvelikonja Yoshi2889 TimTims Amunak
  3. Version 1.0.0

    0 downloads

    About RITlug TeleIRC is a Go implementation of a Telegram <=> IRC bridge. TeleIRC works with any IRC channel and Telegram group. It bridges messages between a Telegram group and an IRC channel. This bot was originally written for RITlug. Today, it is used by various communities. Live demo A public Telegram supergroup and IRC channel (on Freenode) are available for testing. Our developer community is found in these channels. Telegram IRC (#rit-lug-teleirc @ irc.freenode.net)
  4. Version 1.0.0

    0 downloads

    BitBot Python3 event-driven modular IRC bot! Setup Requirements $ pip3 install --user -r requirements.txt Config See docs/help/config.md. Backups If you wish to create backups of your BitBot instance (which you should, borgbackup is a good option), I advise backing up the entirety of ~/.bitbot - where BitBot by-default keeps config files, database files and rotated log files. Github, Gitea and GitLab web hooks I run BitBot as-a-service on most popular networks (willing to add more networks!) and offer github/gitea/gitlab webhook to IRC notifications for free to FOSS projects. Contact me for more information!
  5. Version 1.0.0

    0 downloads

    The Kitteh IRC Client Library (KICL) is a powerful, modern Java IRC library built with NIO using the Netty library to maximize performance and scalability.
  6. Version 1.0.0

    0 downloads

    Tenyks is a computer program designed to relay messages between connections to IRC networks and custom built services written in any number of languages. More detailed, Tenyks is a service oriented IRC bot rewritten in Go. Service/core communication is handled by ZeroMQ 4 PubSub via json payloads. The core acts like a relay between IRC channels and remote services. When a message comes in from IRC, that message is turned into a json data structure, then sent over the pipe on a Pub/Sub channel that services can subscribe to. Services then parse or pattern match the message, and possibly respond back via the same method. This design, while not anything new, is very flexible because one can write their service in any number of languages. The current service implementation used for proof of concept is written in Python. You can find that here. It's also beneficial because you can take down or bring up services without the need to restart the bot or implement a complicated hot pluggable core. Services that crash also don't run the risk of taking everything else down with it. Installation and whatnot Building Current supported Go version is 1.7. All packages are vendored with Godep and stored in the repository. I update these occasionally. Make sure you have a functioning Go 1.7 environment. Install ZeroMQ4 (reference your OSs package install documentation) and make sure libzmq exists on the system. go get github.com/kyleterry/tenyks cd ${GOPATH}/src/github.com/kyleterry/tenyks make - this will run tests and build sudo make install - otherwise you can find it in ./bin/tenyks cp config.json.example config.json Edit config.json to your liking. Uninstall Why would you ever want to do that? cd ${GOPATH}/src/github.com/kyleterry/tenyks sudo make uninstall Docker There is a Docker image on Docker hub called kyleterry/tenyks. No configuration is available in the image so you need to use it as a base image. You can pass your own configuration in like so: FROM kyleterry/tenyks:latest COPY my-config.json /etc/tenyks/config.json Then you can build your image: docker build -t myuser/tenyks . and run it with: docker run -d -P --name tenyks myuser/tenyks. Binary Release You can find binary builds on bintray. I cross compile for Linux {arm,386,amd64} and Darwin {386,amd64}. Configuration Configuration is just json. The included example contains everything you need to get started. You just need to swap out the server information. cp config.json.example ${HOME}/tenyks-config.json Running tenyks ${HOME}/tenyks-config.json If a config file is excluded when running, Tenyks will look for configuration in /etc/tenyks/config.json first, then ${HOME}/.config/tenyks/config.json then it will give up. These are defined in tenyks/tenyks.go and added with ConfigSearch.AddPath(). If you feel more paths should be searched, please feel free to add it and submit a pull request. Vagrant If you want to play right fucking now, you can just use vagrant: vagrant up and then vagrant ssh. Tenyks should be built and available in your $PATH. There is also an IRC server running you can connect to server on 192.168.33.66 with your IRC client. Just run tenyks & && disown from the vagrant box and start playing. Testing I'm a horrible person. There aren't tests yet. I'll get right on this.... There are only a few tests. Builtins Tenyks comes with very few commands that the core responds to directly. You can get a list of services and get help for those services. tenyks: !services will list services that have registered with the bot through the service registration API.. tenyks: !help will show a quick help menu of all the commands available to tenyks. tenyks: !help servicename will ask the service to sent their help message to the user. Services Libraries tenyksservice (Python) quasar (Go) To Services Example JSON payload sent to services: { "target":"#tenyks", "command":"PRIVMSG", "mask":"unaffiliated/vhost-", "direct":true, "nick":"vhost-", "host":"unaffiliated/vhost-", "full_message":":vhost-!~vhost@unaffiliated/vhost- PRIVMSG #tenyks :tenyks-demo: weather 97217", "user":"~vhost", "from_channel":true, "connection":"freenode", "payload":"weather 97217", "meta":{ "name":"Tenyks", "version":"1.0" } } To Tenyks for IRC Example JSON response from a service to Tenyks destined for IRC { "target":"#tenyks", "command":"PRIVMSG", "from_channel":true, "connection":"freenode", "payload":"Portland, OR is 63.4 F (17.4 C) and Overcast; windchill is NA; winds are Calm", "meta":{ "name":"TenyksWunderground", "version":"1.1" } } Service Registration Registering your service with the bot will let people ask Tenyks which services are online and available for use. Registering is not requires; anything listening on the pubsub channel can respond without registration. Each service should have a unique UUID set in it's REGISTER message. An example of a valid register message is below: { "command":"REGISTER", "meta":{ "name":"TenyksWunderground", "version":"1.1", "UUID": "uuid4 here", "description": "Fetched weather for someone who asks" } } Service going offline If the service is shutting down, you should send a BYE message so Tenyks doesn't have to timeout the service after PINGs go unresponsive: { "command":"BYE", "meta":{ "name":"TenyksWunderground", "version":"1.1", "UUID": "uuid4 here", "description": "Fetched weather for someone who asks" } } Commands for registration that go to services Services can register with Tenyks. This will allow you to list the services currently online from the bot. This is not persistent. If you shut down the bot, then all the service UUIDs that were registered go away. The commands sent to services are: { "command": "HELLO", "payload": "!tenyks" } HELLO will tell services that Tenyks has come online and they can register if they want to. { "command": "PING", "payload": "!tenyks" } PING will expect services to respond with PONG. List and Help commands are coming soon. Lets make a service! This service is in python and uses the tenyks-service package. You can install that with pip: pip install tenyksservice. from tenyksservice import TenyksService, run_service, FilterChain class Hello(TenyksService): irc_message_filters = { 'hello': FilterChain([r"^(?i)(hi|hello|sup|hey), I'm (?P<name>(.*))$"], direct_only=False), # This is will respond to /msg tenyks this is private 'private': FilterChain([r"^this is private$"], private_only=True) } def handle_hello(self, data, match): name = match.groupdict()['name'] self.logger.debug('Saying hello to {name}'.format(name=name)) self.send('How are you {name}?!'.format(name=name), data) def handle_private(self, data, match): self.send('Hello, private message sender', data) def main(): run_service(Hello) if __name__ == '__main__': main() Okay, we need to generate some settings for our new service. tenyks-service-mkconfig hello >> hello_settings.py Now lets run it: python main.py hello_settings.py If you now join the channel that tenyks is in and say "tenyks: hello, I'm Alice" then tenyks should respond with "How are you Alice?!". More Examples There is a repository with some services on my Github called tenyks-contrib. These are all using the older tenyksclient class and will probably work out of the box with Tenyks. I'm going to work on moving them to the newer tenyks-service class. A good example of something more dynamic is the Weather service.
  7. Version 1.0.0

    0 downloads

    A pluggable irc client library based on python's asyncio. Requires python 3.5+ Python 2 is no longer supported, but if you don't have a choice you can use an older version: $ pip install "irc3<0.9" Source: https://github.com/gawel/irc3/ Docs: https://irc3.readthedocs.io/ Irc: irc://irc.freenode.net/irc3 (www) I've spent hours writing this software, with love. Please consider tipping if you like it: BTC: 1PruQAwByDndFZ7vTeJhyWefAghaZx9RZg ETH: 0xb6418036d8E06c60C4D91c17d72Df6e1e5b15CE6 LTC: LY6CdZcDbxnBX9GFBJ45TqVj8NykBBqsmT
  8. Version 1.0.0

    0 downloads

    Limnoria is a multipurpose Python IRC bot, designed for flexibility and robustness, while being easy to install, set up, and maintain. It aims to be an adequate replacement for most existing IRC bots. It includes a very flexible and powerful ACL system for controlling access to commands, an equality powerful configuration system to customize your bot, as well as more than 60 builtin plugins providing around 400 actual commands. There are also dozens of third-party plugins written by dozens of independent developers, and it is very easy to write your own with only basic knowledge of Python. It is the successor of Supybot since 2010 and provides many new features, but keeps full compatibility with existing configurations and plugins. Support Documentation If this is your first install, there is an install guide. You will probably be pointed to it if you ask on IRC how to install Limnoria. TL;DR version: sudo apt-get install python3 python3-pip python3-wheel pip3 install --user limnoria # You might need to add $HOME/.local/bin to your PATH supybot-wizard There is extensive documentation at docs.limnoria.net and at Gribble wiki. We took the time to write it; you should take the time to read it. IRC channels In English If you have any trouble, feel free to swing by #limnoria on Libera.Chat and ask questions. We'll be happy to help wherever we can. And by all means, if you find anything hard to understand or think you know of a better way to do something, please post it on the issue tracker so we can improve the bot! In Other languages Only in French at the moment, located at #limnoria-fr on Libera.Chat.
  9. Version 1.0.0

    0 downloads

    Introduction Sopel is a simple, lightweight, open source, easy-to-use IRC Utility bot, written in Python. It's designed to be easy to use, run and extend. Installation Latest stable release On most systems where you can run Python, the best way to install Sopel is to install pip and then pip install sopel. Arch users can install the sopel package from the [community] repository, though new versions might take slightly longer to become available. Failing both of those options, you can grab the latest tarball from GitHub and follow the steps for installing from the latest source below. Latest source First, either clone the repository with git clone git://github.com/sopel-irc/sopel.git or download a tarball from GitHub. Note: Sopel requires Python 3.7+ to run. In the source directory (whether cloned or from the tarball) run pip install -e .. You can then run sopel to configure and start the bot. Database support Sopel leverages SQLAlchemy to support the following database types: SQLite, MySQL, PostgreSQL, MSSQL, Oracle, Firebird, and Sybase. By default Sopel will use a SQLite database in the current configuration directory, but alternative databases can be configured with the following config options: db_type, db_filename (SQLite only), db_driver, db_user, db_pass, db_host, db_port, and db_name. You will need to manually install any packages (system or pip) needed to make your chosen database work. Note: Plugins not updated since Sopel 7.0 was released might have problems with database types other than SQLite (but many will work just fine). Adding plugins The easiest place to put new plugins is in ~/.sopel/plugins. Some newer plugins are installable as packages; search PyPI for these. Many more plugins written by other users can be found using your favorite search engine. Some older, unmaintained plugins are available in the sopel-extras repository, but of course you can also write your own. A tutorial for creating new plugins is available on Sopel's website. API documentation can be found online at https://sopel.chat/docs/, or you can create a local version by running make docs. Further documentation The official website includes such valuable information as a full listing of built-in commands, tutorials, API documentation, and other usage information. Questions? Join us in #sopel on Libera Chat. Donations We're thrilled that you want to support the project! You can sponsor Sopel here on GitHub or donate through Open Collective. Any donations received will be used to cover infrastructure costs, such as our domain name and hosting services. Our main project site is easily hosted by Netlify, but we are considering building a few new features that would require more than static hosting. All project-related expenses are tracked on our Open Collective profile, for transparency.
  10. coders-irc_Bot

    botnix

    Botnix - A highly modular perl bot for IRC. Botnix is a highly modular, highly portable IRC bot designed to be connected to multiple networks at any one time. It is lightweight, fast and expandable, written in Perl. Botnix supports SSL, IPv6 and proxies, and is currently in beta stages of development. Many modules are already tested and working, such as modules to imitate an InfoBot, or to track when users were last seen. You can download it from our subversion repository or visit our forums below. There is a sizeable amount of documentation on our wiki, and more documentation will follow as it is needed. What is required to run Botnix? Perl (5.8.0 or above) with the Socket6 module and Digest::SHA1 module (bundled with perl or available from CPAN). For SSL support you also require the Net::SSLeay module. I can't get ActiveState perl to install Socket6 through PPM! A lot of the time you will find that PPM fails to install Socket6 (simply because ActiveState broke the package!). If you have problems you should install it with one of the following commands: ppm install http://www.botnix.org/ppm/Socket6.ppd ppm install http://www.open.com.au/radiator/free-downloads/Socket6.ppd These are precompiled binary packages which will work in ActiveState perl 5.8 and will run correctly. If one command fails, this is because the required tarballs are not on the server, please try the next command in this list. If you wish to mirror this directory structure, you may find a zip of the /ppm directory here. What is required for Gentoo users to run Botnix? For the very lazy: emerge Socket6 Digest-SHA1 Net-SSLeay. Do i need the Socket6 module even if my machine does not have ipv6 enabled? Yes. This is essentially a wrapper over Socket, so it is still required. It should still compile, so long as your operating system has the neccessary headers (e.g. if it's newer than around five years old... which it should be unless you like to run insecure software!) Can i have more than one logging module at a time? Yes, why not? 🙂 Remember to configure all the modules you use. Does the DCC module depend on the CTCP module, with DCC technically being a CTCP? No, we decided that this would be a somewhat pointless and annoying dependency. Why Perl? Because we felt like it. No, really... Perl is a text processing language, and IRC is essentially just text. Compared to high level languages like C and object languages like Python, Perl is able to process IRC text in a much more efficient manner, plus its support for regexps and its portability are second to none. Can i link my botnix bots together? Not yet. Why isn't my bot responding to any commands? You probably haven't loaded the modules/irc/cli.pm module. This module is essential if you want to issue any commands on channel or in private message. Please see the Annotated Example Config for more information. Are passwords case sensitive? Yes, also for the time being, network names are also case sensitive. I have the global owner flag, why won't the bot op me? In botnix, no flag should ever indirectly give the privilages of another flag. Therefore even if you are the bot owner you must add the 'operator' flag for yourself (addflags handle * * operator) for the bot to be able to op you. Where does botnix store its data? Botnix stores its data in two files which are specified in your configuration file. These two files are the userfile (usually with the extension .uf) and the store file (usually with the extension .store). All modules store their data in the store file, centralizing the information. Both are plaintext, however it is not recommended you edit these by hand unless you absolutely must, otherwise you may corrupt your settings. Can the bot join completely different channels on different networks? Yes, you could for example connect your bot to both ircnet and efnet, and have the bot on #one on ircnet and #two on efnet, or even on #three on both, at the same time. There are no real limitations on what can be joined and where. Do i have to use the same nick for my bot on all networks? No, you can configure a different nick, ident and GECOS (fullname field) for every network you connect your bot to. What does botnix support? Because botnix is beta software it does not yet have a full feature set. However it does support a large number of features already based upon what was learned from previous projects such as WinBot and IRC Defender, as shown below: Support for both IPv4 and IPv6 connections Support for HTTP Proxies SSL-encrypted IRC connections (over both IPv4 and IPv6) SQL Support Channel Mirroring (relay channel text between multiple networks) Support for multiple network connections in one bot process Modular support for CTCP Modular support for DCC CHAT Modular bot channel commands such as .OP and .BAN Sticky-ban support Powerful API with nonblocking sockets, timers and events Simplified bind-style configuration file format Mode queueing (merge several +b or +o into one line) Support for unrealircd founder/protect/halfop plus many InspIRCd modes and features Userfile and user manipulation with login/logout Local and global user flags (global to a network or to all networks) Mode enforcement (modelock) Channel key management 'Floating' channel limits Modular command interpreter (load/unload the ability to issue commands in message or on channel etc) Flood protection Clone protection Support for telnet control of the bot (via a module) Why is botnix spamming my console? You didn't load a logging module. You must load and configure at least one logging module. If you do not want to log you should probably load the 'null' logging module, modules/log/null.pm. Why did you name this project 'botnix'? What does it mean? The name just sounded kind of cool. No, really. Actually the name has two origins... Firstly, it comes from a character from the video game "Sonic The Hedgehog", called Dr Robotnik. This project being an IRC robot, it seemed perfectly apt. Not just that, but, if you take the two words bot and unix.... well, you get the idea... When i load botnix on windows, it says its going into the background, but then it hangs! It hasn't actually hung. If you have text like this in your command prompt: Botnix 0.4.5 Initializing: STORE MODULES CONFIG USERS Done, switching to background using SW_HIDE... Then all you need to do is press enter, and you will return to the command prompt again. The bot will continue to run in the background. On windows, when i close the window that started botnix, it takes botnix with it! There is nothing we can do about this. You should probably bug the perl win32 maintainers and get them to fix the severely broken fork emulation on windows which stops perl programs forking normally. If this bugs you, find another use for the console after you spawn botnix. Fire up lynx or something. Will botnix let me connect the same bot multiple times to the same network with different nicks? Yes, but why would you want to do this legitimately? To do this, simply give each connection a different network name. botnix-master.zip
  11. ;remotes ;usage: /agreet <nick> <message> ;will only activate one every 5 seconds for each nick. remove the set line to disable it. on *:join:#coders-irc-lounge: { var %e $+($nick,.txt) if ($read(%e) && !%flood. [ $+ [ $nick ] ]) { echo -a $readn msg # $read(%e, $rand(1,$readn)) set -u5 $+(%,flood,.,$nick) 1 } } alias agreet { write -a $+($1,.txt) $2- }
  12. IRC × OAuth 2.0 2022-09-13 In the past few days I’ve been working on better integrating IRC with OAuth 2.0. In a nutshell, my goal is to make IRC clients obtain a token by interacting with an OAuth 2.0 server, and then use that token to authenticate with the IRC server. This effort has resulted in various patches for meta.sr.ht’s OAuth 2.0 server, for the soju IRC bouncer and for the gamja & goguma IRC clients. Read more here
  13. I've been playing with Bot Manager v2.2 by entropy Its amazing all what you need for a bot control in your room and server. I congradulate him on a well done job on this. I have it running on my server and in my room #coders-irc-lounge 0n irc.coders-irc.net 6667 This addon has many exceptiona l feature and commands if you looking to download it get it here or mircscripts
  14. Beta v7.71.1275 changes: 1.Item 1, https://forums.mirc.com/ubbthreads.php/topics/270820 2.Item 2, changed. 3.Item 3, https://forums.mirc.com/ubbthreads.php/topics/270870 These test scripts have been added to my if/while/bracket/ separator unit tests. 4.Item 4, https://forums.mirc.com/ubbthreads.php/topics/270870 5.Item 5, https://forums.mirc.com/ubbthreads.php/topics/270870 6.Item 6, https://forums.mirc.com/ubbthreads.php/topics/270888 7.Item 7, https://forums.mirc.com/ubbthreads.php/topics/270837 https://forums.mirc.com/ubbthreads.php/topics/270785 8.Item 8, updated. 9.Item 9, https://forums.mirc.com/ubbthreads.php/topics/270754 Experimental. See forum post for details. 10.Item 10, https://forums.mirc.com/ubbthreads.php/topics/270754 Now automatically detects an overflow and switches to big float for large numbers. Changes: 1.Changed /nick, /mnick, /anick, to override /server -i local settings when not connected to a server. 2.Changed $wrap() to allow an empty switch parameter. 3.Fixed script parser bug when handling non-while/if { } brackets. 4.Fixed /var parsing bug in single-line scripts split across multiple lines using combinations of {} and |. 5.Fixed nested single-line if/while bug. 6.Fixed scripts editor not allowing multiple empty alias files. 7.Fixed scripts editor Listen and View menu bugs when in the users/variables sections. 8.Updated zlib library to v1.2.13. 9.Added support for big float calculations using MAPM library. This can be enabled with the command /bigfloat [on|off] for the whole script or by using a %var.bf variable name to enable it for a command/identifier. The $bigfloat identifier can be used to check the current bigfloat state. 10.Extended $base() to handle big numbers. download here
  15. This is a forum request made by toclafane1 who wants a script to be able to report the info about a snippet or script's title, likes, average score, date added, and last updated via its link when posted.> check out www.hawkee.com/snippet/9097/ Title: RottenTomato Movie Search Likes: 2 like(s) Average Score: 6.5 (of 2 scores) Date Added: Oct 23, 2011 Last Updated: Oct 24, 2011> let's see about this link: http://www.hawkee.com/scripts/23905971/ Title: Password Character Picker Developer: Jonesy44 Likes: 0 like(s) Date Added: Nov 12, 2011 ```mirc on *:exit: if ($isfile(hawkee)) .remove hawkee on *:sockclose:hawkeesnippet_*:{ .play -c $token($sock($sockname).mark,4,32) hawkee 2000 } on *:sockopen:hawkeesnippet_*:{ if (!$sockerr) { write -c hawkee tokenize 32 $sock($sockname).mark var %hawkee = sockwrite -nt $sockname %hawkee GET $2 HTTP/1.0 %hawkee Host: $+($sock($sockname).addr,$str($crlf,2)) %hawkee Connection: close } else $3-4 $sock($sockname).addr is having a technical difficulty. Try again later. } on $*:text:/(http\072\/\/)?w{3}\.hawkee\.com(\/s(nippet|cripts).*\/)/:#:{ if (!$play(#)) { var %hawkeee = $+(hawkeesnippet_script,$site,$str($ticks,3)) var %hawkeeinfo = $remove($+($regml(1),$regml(2)),http://) sockopen %hawkeee www.hawkee.com 80 sockmark %hawkeee $!bvar(&hawkee,1-).text %hawkeeinfo .msg # } } on *:sockread:hawkeesnippet_*:{ tokenize 32 $sock($sockname).mark | sockread &hawkee if (!$sockerr) { var %d = /(?s)(Description)(\s*\K.+?(?=\s*).*)/ var %t = /(.*)-/, %l = /(\d+)<\/b>( like\(s\))<\/span>/ var %s = /px">(.*)<\/b>.*(\(.*\))<\/span>/, %a = /(.*)/ var %lu = /(?s)Last Updated <\/td>(\s*\K.+?(?=\s*).*)/ if ($regex([ [ $1 ] ],%t)) { write hawkee $3-4 $+($chr(2),Title:,$chr(2)) $regml(1) } if ($regex([ [ $1 ] ],/-bottom: 6px;">(.*) on *:sockclose:hawkeesnippet_*:{ .msg %HawkeeC [14TiTLE] $+(7,%Hawkee_Title,) $+($iif(%Hawkee_Score,$+(15,$chr(40),,$v1)),$iif(%Hawkee_Likes,$+($chr(32),14-4#14-) $v1 $+(3like,$iif($v1 > 1,s),15,$chr(41),))) 14Added: $iif(%Hawkee_DateA != %Hawkee_DateU,$v1 5Updated: $v2,$v1) $iif(%Hawkee_Devl,14by: $v1) | unset %Hawkee* } on *:sockopen:hawkeesnippet_*:{ if ($sockerr) { $3-4 $sock($sockname).addr is having a technical difficulty. Try again later. | return } tokenize 32 $sock($sockname).mark var %hawkee = sockwrite -nt $sockname %hawkee GET $2 HTTP/1.0 %hawkee Host: $+($sock($sockname).addr,$str($crlf,2)) %hawkee Connection: close } on $*:text:/(http\072\/\/)?w{3}\.hawkee\.com(\/s(nippet|cripts).*\/)/:#:{ if (!%Hawkee) { set -u30 %HawkeeC # var %hawkeee = $+(hawkeesnippet_script,$site,$str($ticks,3)) var %hawkeeinfo = $remove($+($regml(1),$regml(2)),http://) sockopen %hawkeee www.hawkee.com 80 sockmark %hawkeee $!bvar(&hawkee,1-).text %hawkeeinfo .msg # } } on *:sockread:hawkeesnippet_*:{ tokenize 32 $sock($sockname).mark | sockread &hawkee if ($sockerr) { $3-4 $sock($sockname).addr is having a technical difficulty. Try again later. | return } ;******************************************************************************************************** var %d = /(?s)(Description)</h1>(\s*\K.+?(?=\s*).*)/ var %t = /<title>(.*)-/, %l = /<b>(\d+)<\/b>( like\(s\))<\/span>/ var %s = /px"><b>(.*)<\/b>.*(\(.*\))<\/span>/, %a = /(.*)</b></td>/ var %lu = /(?s)Last Updated&nbsp;<\/td>(\s*\K.+?(?=\s*).*)/ ;******************************************************************************************************** if ($regex([ [ $1 ] ],%t)) { set %Hawkee_Title $regml(1) } if ($regex([ [ $1 ] ],/-bottom: 6px;">(.*)</div>/)) { set %Hawkee_Devl $regml(1) } if ($regex([ [ $1 ] ],%l)) { set %Hawkee_Likes $regml(1) } if ($regex([ [ $1 ] ],%s)) { set %Hawkee_Score $+($regml(1),14/10) } if (date added isin [ [ $1 ] ]) && ($regex($v2,%a)) { set %Hawkee_DateA $token($regml(1),-1,62) } if ($regex([ [ $1 ] ],%lu)) { set %Hawkee_DateU $token($token($regml(1),3,62),1,60) } if ($regex([ [ $1 ] ],/6px;"><b>(\S+ \d+, \d{4})/)) { set %Hawkee_DateA $regml(1) } if ($regex([ [ $1 ] ],/center;">(\S+ \d+, \d{4})/)) { set %Hawkee_DateU $regml(1) } ;******************************************************************************************************** }
  16. This is a forum request made by maria who wishes to have the latest comment checked via reddit.com. The script will then send the info to a channel with its title, short link and by whom. I thought I'd make this a snippet submission to benefit those who find it useful or usable. Usage: right-click on your channel or nick list to toggle "Reddit On" and "Reddit Off" to get started. Edit: I've updated the script to include the latest post as requested by maria previously. alias -l reddit { var %i = 1, %socks = reddit reddit2 while ($gettok(%socks,%i,32)) { var %v1 = $v1 if ($sock(%v1)) sockclose $v1 sockopen %v1 www.reddit.com 80 sockmark %v1 msg $1 inc %i } } alias -l trans { return $replace($1,&lt;,<,&gt;,>,&quot;,",&nbsp;,$chr(160),&amp;,&,&amp;#39;,') } on *:sockclose:reddit*:{ if ($sock($sockname).name == reddit) { if ($hget(data2)) && ($hget(data3)) && ($hget(data4)) { $sock($sockname).mark $+($chr(2),Latest Comment:,$chr(2)) $& [ [ $remove($+($hget(data2,1).item,$chr(32),$hget(data2,1).data),r/) ] ] $sock($sockname).mark $+($chr(2),Latest Post:,$chr(2)) $& $+($hget(data3,1).item,$chr(32),$hget(data3,1).data) - $& $hget(data4,1).item by $hget(data5,1).item hfree -w data* } } else { if ($sock(reddit2)) sockclose $v1 sockopen reddit2 www.reddit.com 80 sockmark reddit2 msg $1 } } menu channel,nicklist { Reddit .ON { if (!%reddits) { set -e %reddits $$?"Which Reddit to Watch?" set -e %reddittime $$?"How often do you want the latest post checked $& and sent to the channel in seconds?" $+(.timer,#,$network) 0 %reddittime reddit # echo 2 # * Reddit Set for: $+($chr(2),%reddits) echo 2 # * Time Interval in Seconds: $+($chr(2),%reddittime) if (%true) unset $v1 } else echo 4 # * Reddit is Already Switched On! } .OFF { if (%reddits) { $+(.timer,#,$network) off echo 2 * Reddit Has Been Turned Off! unset %reddit* %true } else echo 4 # * Reddit is Already Switched Off! } } on *:sockopen:reddit*:{ if ($sockerr) { echo 4 $gettok($sock(reddit).mark,2,32) Error Connecting to $sock(reddit).addr sockclose reddit } if ($sock($sockname).name == reddit) { var %reddit = sockwrite -nt reddit %reddit GET $+(/r/,%reddits,/comments?limit=1) HTTP/1.0 %reddit Connection: close %reddit Host: $+($sock(reddit).addr,$str($crlf,2)) } else { var %reddit2 = sockwrite -nt reddit2 %reddit2 GET $+(/r/,%reddits,/new.json?sort=new) HTTP/1.0 %reddit2 Connection: close %reddit2 Host: $+($sock(reddit).addr,$str($crlf,2)) } } on *:sockread:reddit*:{ if ($sockerr) { echo 4 $gettok($sock(reddit).mark,2,32) Error Reading $sock(reddit).addr sockclose reddit } if ($sock($sockname).name == reddit) { sockread &reddit var %g = $regsubex($bvar(&reddit,1-).text,/\/r\/|&#\d+;/g,) if ($regex(%g,/<\/div><\/form><ul class="flat-list buttons">(.*)/)) { hadd -m data $+($sock(reddit).addr,/tb/,$gettok($iif($regex($regml(1),$& /\/comments\/(\S+)\//),$trans($regml(1))),1,47)) } if ($regex(%g,/class="title" rel="nofollow" >(.*)class="author/)) { hadd -m data2 $gettok($trans($regml(1)),1,60) - $& $!+($chr(3),12,$hget(data,1).item,$chr(3)) by $+($chr(3),05,$& $iif($regex($regml(1),/\/user\/(\S+)"/),$regml(1))) } } else { sockread &reddit2 var %g2 = $bvar(&reddit2,1-).text if ($regex(%g2,/"title"\: "(.*)"/)) { hadd -m data3 $gettok($trans($regml(1)),1,34) } if ($regex(%g2,/"id"\: "(.*)"/)) { hadd -m data4 $+($chr(3),12,$gettok($+(http://redd.it/,$& $trans($regml(1))),1,34),$chr(3)) sockclose $sockname } if ($regex(%g2,/"author"\: "(.*)"/)) { hadd -m data5 $+($chr(3),05,$gettok($regml(1),1,34)) } } } on me:*:join:#:{ if (%true) notice $me Reddit has been toggled off. Right-click on $& the nicklist or channel to toggle it on. | unset %true } on *:disconnect: if (%reddits) $+(.timer,#,$network) off | set -e %true 1 on me:*:part:#: if (%reddits) $+(.timer,#,$network) off | set -e %true 1 on *:kick:#:{ if ($knick == $me) && (%reddits) $+(.timer,#,$network) off set -e %true 1 } on *:quit:{ if ($nick == $me) && (%reddits) { var %c = 1 while ($comchan($me,%c)) { $+(.timer,$v1,$network) off set -e %true 1 inc %c } } }
  17. This work below is yet another forum request that I've decided to submit as a part of my snippet collection. For those who find this snippet useful, It's for the bot client, and the trigger is either !facts, @facts, .facts or !jokes, @jokes, .jokes. on $*:text:/^[!@.](fact|joke)s$/iS:#:{ if (!%f) { inc -u3 %f var %s = $+(rjf,$str($ticks,2),$site) if ($sock(%s)) sockclose $v1 sockopen %s www.randomfunfacts.com 80 sockmark %s .msg # $regml(1) } } on *:sockclose:rjf*:{ tokenize 32 $sock($sockname).mark var %s = $+(rjf,$str($ticks,2),$site) if ($sock(%s)) sockclose $v1 sockopen %s www.jokesclean.com 80 sockmark %s $1-2 } on *:sockopen:rjf*:{ tokenize 32 $sock($sockname).mark if ($sockerr) { $1-2 Error: Connection Issue... sockclose $sockname } else { if ($3 == fact) { var %rjf = sockwrite -nt $sockname %rjf GET / HTTP/1.1 %rjf Connection: close %rjf Host: $+($sock($sockname).addr,$str($crlf,2)) } else { var %rjf = sockwrite -nt $sockname %rjf GET /OneLiner/Random/ HTTP/1.0 %rjf Host: $+($sock($sockname).addr,$str($crlf,2)) } } } on *:sockread:rjf*:{ tokenize 32 $sock($sockname).mark if ($sockerr) { $1-2 Error: Issues in Reading... sockclose $sockname halt } goto $iif($3 == fact,fact,joke) :fact sockread &rjf var %info = $regsubex($bvar(&rjf,1-).text,/<[^>]*>|\t$& $+ RLOpenInNewWindow|"1";|var RLRepeatKeywords/g,$chr(32)) if ($gettok($replace(%info,&nbsp;,$chr(94)),2,94)) { $1-2 $remove($gettok($v1,11-,32),24c6) sockclose $sockname | halt :joke var %jokes sockread %jokes if ($regex(%jokes,/(.*)<\/font><\/p>/)) { $sock($sockname).mark $replace($gettok($regml(1),3-,62),&nbsp;,$chr(32)) sockclose $sockname } halt } }
  18. Version 1.7.0

    1 download

    Basically its like a table top RPG for mIRC. It also has a feature so that you can download addons (addons still in production as of 7/03/2010) to customize your RPGenerator to suit the needs of your RPG character. Right now its current motive is to promote my RPG DarkCastle RPG ( http://darkcastle.darkbb.com ) and to bring a new level of RPG to IRC. Please enjoy. Addons will be available soon! Also PLEASE read the ReadMe file! It contains loading instructions that MUST be followed for proper installation of the RPGenerator. Also, requires two players! If you'd like to play me I can be found in my RPG (link above.) NOTE: Please do not hack, edit, or mod this game. If you mod it I will remove it.
  19. MASS JOIN KICKER II Stomps out large amounts of clones/spam bots from entering your channel. Triggered at 7 joins in 5 seconds, it automatically locks down the channel and kicks out all the clones/spam bots that come in. Just copy and paste to your remotes After loading if it asks to run initialization commands, click "Yes". Then right click and go down to MASS JOIN KICKER II and it can be toggled on and off. ;MASS JOIN KICKER II ;By Neo Nemesis ;Contributors: Jethro_ ;Thanks to: Hawkee Forums on *:START: { massjoin } on *:LOAD: { massjoin } on *:CONNECT: { massjoin } alias -l massjoin { if ($hget(massjoin) == $null) { hmake massjoin 750 } } alias -l abmj { echo -a 12,1*!14 MASS JOIN KICKER II 12!* echo -a 12,1*!14 By Neo Nemesis 12!* echo -a 12,1*!14 http://mirc-deluxe.webs.com 12!* } on @*:JOIN:#: { if (%massjoin == $true) { set -u15 %mj1 $addtok(%mj1,$nick,44) hinc -mu5 massjoin JOIN 1 if ($hget(massjoin,JOIN) >= 7) { if (%modechan != $true) { mode $chan +im set -u15 %modechan $true set -u15 %mj2 1 notice $chan 12*! 4MASS JOIN DETECTED12 !* 2- 12channel locked down for4 5-7 minuets.12 Sorry for any inconvenience this may cause. .timermjs 1 300 mode $chan -im } while (%mj2 <= $numtok(%mj1,44)) { if ($gettok(%mj1,%mj2,44) ison $chan) && ($gettok(%mj1,%mj2,44) !isreg $chan) { if (%mj2 <= 8) { .timermj $+ %mj2 -m 1 $calc(780 * %mj2 kick $chan $gettok(%mj1,%mj2,44) 2MASS JOIN KICKER II - By Neo Nemesis } elseif (%mj2 > 8) { .timermj $+ %mj2 -m 1 $calc(897 * %mj2) kick $chan $gettok(%mj1,%mj2,44) 2MASS JOIN KICKER II - By Neo Nemesis } } inc %mj2 } } } } menu status,query,nicklist,channel { MASS JOIN KICKER II - $iif(%massjoin = $true,ON,OFF) .ON:/set %massjoin $true .OFF:/set %massjoin $false .About:/abmj }
  20. Using mIRC's raw numeric events, this script modifies the information that is shown when you do /whois or /whowas. Shows more info on the user. DeluXe Whois II - By Neo Nemesis ;whois script raw 311:*: { echo -a $+ $color(whois) $+ - | echo -a 12*!*14 DeluXe Whois II 12*!*4 ( $+ $2 $+ )12 *!* | echo -a 4Hostmask: $+ $color(whois) *!*@ $+ $4 $+ | echo -a 4E-mail: $+ $color(whois) $3 $+ | echo -a 4Fullname: $+ $color(whois) $6- $+ | halt } raw 307:*: { echo -a 4Registered: $+ $color(whois) $4- $+ | halt } raw 319:*: { echo -a 4Channels: $+ $color(whois) $3- $+ | halt } raw 312:*: { if (%whowas != $true) { echo -a 4Server: $+ $color(whois) $3 $+ | echo -a 4IRCd: $+ $color(whois) $4- $+ | halt } | elseif (%whowas == $true) { echo -a 4Server: $+ $color(whois) $3 | echo -a 4Date: $+ $color(whois) $4- | unset %whowas | halt } } raw 317:*: { echo -a 4Idle time: $+ $color(whois) $duration($3) $+ | echo -a 4Sign on: $+ $color(whois) $asctime($4) $+ | halt } raw 313:*: { echo -a 4IRCop: $+ $color(whois) $5- $+ | halt } raw 310:*: { echo -a 4Helpful: $+ $color(info) $3- $+ | halt } raw 309:*: { echo -a 4Language: $+ $color(info) $3- $+ | halt } raw 325:*: { echo -a 4Language Filter: $+ $color(info) $3- $+ | halt } raw 301:*: { echo -a 4Away: $+ $color(info) $3- $+ | halt } raw 318:*: { echo -a 12*!*14 End of /whois 12*!* | echo -a $+ $color(whois) $+ - | halt } raw 314:*: { %whowas = $true | echo -a $+ $color(whois) $+ - | echo -a 12*!*14 DeluXe Whowas 12*!*4 ( $+ $2 $+ )12 *!* | echo -a 4Hostkmask: $+ $color(whois) *!*@* $+ $4 $+ | echo -a 4E-mail: $+ $color(whois) $3 $+ | echo -a 4Fullname: $+ $color(whois) $6- | halt } raw 406:*: { echo -a $+ $color(whois) $+ - | echo -a 12*!*14 $2 there was no such nickname. 12*!* | halt } raw 369:*: { echo -a 12*!*14 End of /whowas 12*!* | echo -a $+ $color(whois) $+ - | halt } raw 344:*: { echo -a 4SSL: $+ $color(whois) $4- $+ | halt } raw 334:*: { if (interests isin $1-) { echo -a 4Interests: $+ $color(whois) $4- $+ } | elseif (location isin $1-) { echo -a 4Location: $+ $color(whois) $4- $+ } | elseif (occupation isin $1-) { echo -a 4Occupation: $+ $color(whois) $4- $+ } | halt } raw 379:*: { echo -a 4User Modes: $+ $color(whois) $6- | halt } raw 671:*: { echo -a 4Secure Connection: $+ $color(whois) $3- | halt } raw 320:*: { echo -a 4Info: $+ $color(whois) $3- | halt } raw 338:*: { echo -a 4IP: $+ $color(whois) $3- | halt } raw 340:*: { echo -a 4IP: $+ $color(whois) $2- | halt }
  21. Updated to version 1.81, fixed the bugs from 1.76 DeluXe MP3 1.81 is a nice MP3 player for your mIRC. It works nicely and doesn't require you moving any MP3 files into a certain directory, and can play mp3 files that are stored anywhere on your computer! It can play only .mp3 format sound files. Has a customizable colour pop-up (for music info) As well as a built in volume control and iconic buttons. It also has a nice "size efficient" look and fits nicely right at the top of your screen, under the toolbar or wherever you want to put it! Much more better than its built-into-the-custom-toolbar counter-part version 1.5 which will be featured in mIRC-DeluXe 1.5.5 (Hopefully to be released soon). Made by request for Shizuma ❤️ Available to everyone, try it out let me know what you think. PLEASE READ THE README!!! FILE LOCATED IN THE ZIP FILE IT CONTAINS SPECIAL LOADING INSTRUCTIONS THAT MUST BE FOLLOWED IN ORDER FOR THE SCRIPT INITIATE PROPERLY. WORKS THE BEST IN C:\mIRC\ Works best on mIRC 6.35 and Windows XP. As for Windows Vista and Windows 7 I am unsure how they will work. Version 1.76 had compatibility problems with Windows Vista for some reason, hopefully those problems were eliminated in 1.81 DeluXeMP3181.zip
  22. ntended for a channel bot. Just copy and paste into remotes. mIRC 6.35+ Gives information on youtube links when posted in the channel, and can now also do YOUTBUE SEARCHES! Triggered when YouTube link is posted in chat.... YouTube Link Info: [15:42] <@Neo-Nemesis> http://www.youtube.com/watch?v=rwY3Ftfdy6M [15:42] <@Boris_III> YouTube Title: Iron Maiden - Killers [15:42] <@Boris_III> YouTube Info: Iron Maiden - Killers Members: Paul Di'Anno - vocals Steve Harris - bass guitar Dave Murray - guitar Adrian Smith - guitar Clive Burr - drums Iron Maiden's o... Triggered when user types !youtube YouTube Search: [15:43] <@Neo-Nemesis> !youtube Iron Maiden [15:43] <@Boris_III> YouTube Search - About 105,000 results - http://www.youtube.com/results?search_query=Iron+Maiden&aq=f [15:43] <@Boris_III> YouTube Official YouTube Channel Link http://www.youtube.com/user/ironmaiden?blend=1 [15:43] <@Boris_III> YouTube Iron Maiden Wasted Years Link: http://www.youtube.com/watch?v=SwB9zg7Tbx8 [15:43] <@Boris_III> YouTube Iron Maiden, ACDC and Guns N Roses 4 LIFE Link http://www.youtube.com/user/benoitiginla12?blend=3 [15:43] <@Boris_III> YouTube aces high Link: http://www.youtube.com/watch?v=4Sam5omG0v0 ;YouTube Info 2.0 ;By Neo Nemesis on *:TEXT:*youtube*:#: { if ($1 == !youtube) { %c.ytb = $chan YouTube search $2- } else { %c.ytb = $chan YouTube $1 } } alias s.YTB.Parse { if (&amp; isin $remove($gettok($1-,2,32),href=",$chr(34))) { return $replace($remove($gettok($remove($1-,<h3>,<b>,</b>,</h3>),2,62),</a),&quot;,$chr(34),&#39;,$chr(39),&amp;,$chr(38)) 4Link15 http://www.youtube.com $+ $gettok($remove($gettok($1-,2,32),href=",$chr(34)),1,38) } else { return $replace($remove($gettok($remove($1-,<h3>,<b>,</b>,</h3>),2,62),</a),&quot;,$chr(34),&#39;,$chr(39),&amp;,$chr(38)) 4Link:15 http://www.youtube.com $+ $remove($gettok($1-,2,32),href=",$chr(34)) } } alias YouTube { if ($1 == search) { ;search unset %ysrc* sockclose s.ytb %ysrch = /results?search_query= $+ $replace($2-,$chr(32),$chr(43)) $+ &aq=f sockopen s.ytb www.youtube.com 80 } else { unset %ytb* sockclose ytb %ytb1 = $remove($1,http://,www.,youtube,.com) sockopen ytb www.youtube.com 80 } } on *:SOCKOPEN:s.ytb: { sockwrite -n $sockname GET %ysrch HTTP/1.1 sockwrite -n $sockname Host: www.youtube.com sockwrite -n $sockname Connection: Close sockwrite -n $sockname Content-Type: text/html sockwrite -n $sockname $crlf } on *:SOCKREAD:s.ytb: { sockread %ysrc.1 if (About <strong> isin %ysrc.1) { .timerYTB6 1 1 msg %c.ytb 1,0You0,4Tube15,1 Search - $remove(%ysrc.1,<strong>,</strong>) - http://www.youtube.com $+ %ysrch %ysrc.3 = $true } if (dir="ltr" title=" isin %ysrc.1) && (%ysrc.3 == $true) { if (%ysrc.2) { inc %ysrc.2 } else { %ysrc.2 = 1 } if (%ysrc.2 <= 4) { .timerYTBb $+ %ysrc.2 1 $calc(%ysrc.2 + $rand(1,2)) msg %c.ytb 1,0You0,4Tube15,1 $s.YTB.Parse(%ysrc.1) } else { sockclose s.ytb } } } on *:SOCKOPEN:ytb: { sockwrite -n $sockname GET %ytb1 HTTP/1.1 sockwrite -n $sockname Host: www.youtube.com sockwrite -n $sockname Connection: Close sockwrite -n $sockname Content-Type: text/html sockwrite -n $sockname $crlf } on *:SOCKREAD:ytb: { sockread %ytb2 if (<meta name=" isin %ytb2) { if (="title" content=" isin %ytb2) { %ytb.title = $remove(%ytb2,<meta name="title" content=",">) .timerYTB1 1 1 msg %c.ytb 1,0You0,4Tube15,1 Title: $replace(%ytb.title,&#39;,$chr(39),&quot;,$chr(34),&amp;,$chr(38)) $+ } if (="description" content=" isin %ytb2) { %ytb.desc = $remove(%ytb2,<meta name="description" content=",">) .timerYTB2 1 2 msg %c.ytb 1,0You0,4Tube15,1 Info: $replace(%ytb.desc,&#39;,$chr(39),&quot;,$chr(34),&amp;,$chr(38)) $+ } if (%ytb.title) && (%ytb.desc) { sockclose ytb } } }
  23. Simple LAZOR script. Variation of the FIRIN' MAH LAZOR snippet. Contributors: Maximus Commands /minilazor Examples: /minilazor This fires the mini lazor at the active window. /minilazor napa182 This fires the mini lazor at napa182 /minilazor #channel This fires the mini lazor at #channel Paste in remotes or in aliases file. If your going to paste in the aliases file, remove the "alias" infront of MiniLazor in the code snippet below. alias MiniLazor { if ($1 == $null) && ($active != status window) { %minilazor = $active } elseif ($1 != $null) { %minilazor = $1 } .timermlzr -m 10 1000 msg %minilazor 7,4./¯/_____________________________\ .timermlzr1 -m 10 1050 msg %minilazor 7,4| 4,7D7,4R4,7. 7,4O4,7C7,4T4,7O7,4G4,7O7,4N4,7A7,4P4,7U7,4S4,7! 7,4B7,4L4,7A7,4R4,7R7,4R4,7R7,4G4,7G7,4G7,4H4,7H7,4!4,4***7,4| .timermlzr2 -m 10 1075 msg %minilazor 7,4.\_\¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯/
  24. Version 1.6.0

    9 downloads

    This is a nice mIRC with many features. Emoticons, Media player, favorite channels manager, notify list manager, query blocker (gate keeper), YouTube support, channel protections, flood protections, custom toolbar/menubar, OP Control Panel, Troll Smasher, Color Cut Script, CD Tray opener and more! mIRC DeluXe has a extensive online help center, and can be accessed with the /dxhelp command. THIS SCRIPT REQUIRES: mIRC v6.35+ Windows XP+ and DirectX 9.0+ without ALL THREE of these items the program will not work. PLEASE READ THE "READ ME 1ST!!!.txt FILE CONTAINED IN THE .rar FILE IT CONTAINS IMPORTANT INSTALLATION INSTRUCTIONS THAT MUST BE FOLLOWED. 1.6.00 Changes: First public release! 3 different editions will shortly be available. Final Fantasy Edition (Special Edition), Professional Killer Edition (Special Edition), DeluXe Lite 1.6 (normal edition). Visit website for more info on editions. Fixed a few more bugs, recoded new Troll Smasher II, recoded black list, added SpamGuard 1.0 (non-lite versions only) added Google Search (non-lite versions only), added new online help center. New graphics! Also added a check for updates feature, that will check for patches or new versions of mIRC DeluXe! 1.5.84 Changes: Fixed the last of the quirks in the favorite channels auto-join (hopefuly), small media player bug fixes, another emoticon bug fix (from error in 1.5.83). And squashed a couple quirks here and there. 1.5.83 Changes: Fixed many media player bugs now DeluXe Media Player 1.05 beta. Fixed menubar bug when selecting mIRC options. Turned on show mode prefix. Fixed YouTube scanner bug. Fixed server notice event. Fixed a few typos. Recoded away system and changed it to DCX.dll instead of MDX.dll. Modified IAL Checker. Recoded Favorite Channels list with DCX instead of MDX. Fixed a feq quirks here and there. 1.5.82 Changes: Fixed emoticon bug, Fixed right click on nick list bug, fixed server list bug in options menu, added YouTube scanner, added multiple file uploader to the Media player, recoded whois script, updated help file, fixed YouTube and Join "nothing on enter" bug, added /j command, fixed (hopefuly) server notice bug, fixed favorite channel auto join bug added CD Tray opener 1.5.81 Changes: Fixed user interface auto-rename bug added enable feature to user interface, set away dialog on desktop, added DNS to active window, added emoticons, fixed OPCP bugs, fixed ¯°º·º°¯ DeluXe Lite ¯°º·º°¯ fullname bug, modified nick list colors, updated help file. 1.5.8 Changes: Fixed Troll Smasher colors bug, fixed user interface auto identify bug. 1.5.7 Changes: Made it "lite" removed RPGenerator added Troll Smasher, fix a few small bugs and removed need for loading screen on start up.
  25. A nice protection script, has channel protections from Deop, Ban, Kick and also has flood protections. ;Protection Script Z31 ;Made for mIRC Script Z31 ;By Neo Nemesis ;Version 1.1 on *:LOAD: { writeini z31.ini main protect on,on,on,on,on,on,2,5,on echo -a $+ $color(info) $+ * Protection Script Z31 Loaded successfuly! Use /protection for the options menu! } menu channel,nicklist,query,status { Protection Script Z31:/protection } alias protection { if (!$1) { dialog -m protect protect } if ($1 == op) { if ($2) { writeini z31.ini Main Protect $puttok($protect.file,$2,1,44) } elseif (!$2) { return $gettok($protect.file,1,44) } } if ($1 == kick) { if ($2) { writeini z31.ini Main Protect $puttok($protect.file,$2,2,44) } elseif (!$2) { return $gettok($protect.file,2,44) } } if ($1 == ban) { if ($2) { writeini z31.ini Main Protect $puttok($protect.file,$2,3,44) } elseif (!$2) { return $gettok($protect.file,3,44) } } if ($1 == massjoin) { if ($2) { writeini z31.ini Main Protect $puttok($protect.file,$2,4,44) } elseif (!$2) { return $gettok($protect.file,4,44) } } if ($1 == flood) { if ($2) { writeini z31.ini Main Protect $puttok($protect.file,$2,5,44) } elseif (!$2) { return $gettok($protect.file,5,44) } } if ($1 == iflood) { if ($2) { writeini z31.ini Main Protect $puttok($protect.file,$2,6,44) } elseif (!$2) { return $gettok($protect.file,6,44) } } if ($1 == timer) { if ($2) { writeini z31.ini Main Protect $puttok($protect.file,$2,7,44) } elseif (!$2) { return $gettok($protect.file,7,44) } } if ($1 == num) { if ($2) { writeini z31.ini Main Protect $puttok($protect.file,$2,8,44) } elseif (!$2) { return $gettok($protect.file,8,44) } } if ($1 == pmflood) { if ($2) { writeini z31.ini Main Protect $puttok($protect.file,$2,9,44) } elseif (!$2) { return $gettok($protect.file,9,44) } } } alias protect.file { return $readini(z31.ini,Main,Protect) } alias z31.file { return $readini(z31.ini,$1,$2) } alias exempt { if ($1 == chan) { if (!$2) { return $z31.file(exempt,01) } if ($2 == add) { writeini z31.ini exempt 01 $addtok($z31.file(exempt,01),$3,44) } if ($2 == del) { if ($z31.file(exempt,01) == $3) { remini z31.ini exempt 01 } elseif ($z31.file(exempt,01) != $3) { writeini z31.ini exempt 01 $remtok($z31.file(exempt,01),$3,1,44) } } elseif ($2) { if ($z31.file(exempt,01)) { %Z31.1 = 1 while (%Z31.1 <= $numtok($z31.file(exempt,01),44)) { if ($gettok($z31.file(exempt,01),%Z31.1,44) == $2) { return $true } else { inc %Z31.1 } } } return $false } } if ($1 == user) { if (!$2) { return $z31.file(exempt,02) } if ($2 == add) { writeini z31.ini exempt 02 $addtok($z31.file(exempt,02),$3,44) } if ($2 == del) { if ($z31.file(exempt,02) == $3) { remini z31.ini exempt 02 } elseif ($z31.file(exempt,02) != $3) { writeini z31.ini exempt 02 $remtok($z31.file(exempt,02),$3,1,44) } } elseif ($2) { if ($z31.file(exempt,02)) { %Z31.2 = 1 while (%Z31.2 <= $numtok($z31.file(exempt,02),44)) { if ($gettok($z31.file(exempt,02),%Z31.2,44) == $2) { return $true } else { inc %Z31.2 } } } return $false } } if ($1 == host) { if (!$2) { return $z31.file(exempt,03) } if ($2 == add) { writeini z31.ini exempt 03 $addtok($z31.file(exempt,03),$3,44) } if ($2 == del) { if ($z31.file(exempt,03) == $3) { remini z31.ini exempt 03 } elseif ($z31.file(exempt,03) != $3) { writeini z31.ini exempt 03 $remtok($z31.file(exempt,03),$3,1,44) } } elseif ($2) { if ($z31.file(exempt,03)) { %Z31.3 = 1 while (%Z31.3 <= $numtok($z31.file(exempt,03),44)) { if ($gettok($z31.file(exempt,03),%Z31.3,44) == $2) { return $true } else { inc %Z31.3 } } } return $false } } } dialog protect { size -1 -1 445 272 title Protection box "Protections"1, 5 5 140 205 check "DeOP Protection"2, 10 20 98 15 check "Kick Protection"3, 10 35 90 15 check "Ban Protection"4, 10 50 88 15 check "Mass Join Protection"5, 10 65 115 15 check "Flood Protection"6, 10 80 95 15 check "Invite Flood Protection"7, 10 95 128 15 text "Flood trigger:"8, 10 110 80 15 edit ""9, 20 125 40 23 text "Joins/Messages"10, 65 130 75 15 text "in"11, 23 150 15 15 edit ""12, 20 165 40 23 text "seconds."13, 65 170 50 15 check "PM Flood Protection"28, 10 190 113 15 box "Exceptions"14, 150 5 293 265 tab "Channels"15, 155 20 280 245 tab "Users"16 tab "Hostmasks"17 ;tab 15 list 18, 160 45 270 200,vsbar,tab 15 button "Add"19, 160 235 80 23,tab 15 button "Remove"20, 245 235 80 23,tab 15 ;tab 16 list 21, 160 45 270 200,vsbar,tab 16 button "Add"22, 160 235 80 23,tab 16 button "Remove"23, 245 235 80 23,tab 16 ;tab 17 list 24, 160 45 270 200,vsbar,tab 17 button "Add"25, 160 235 80 23,tab 17 button "Remove"26, 245 235 80 23,tab 17 button "Close"27, 35 225 80 23,ok } on *:DIALOG:protect:init:*: { if ($protection(op) == on) { did -c protect 2 } if ($protection(kick) == on) { did -c protect 3 } if ($protection(ban) == on) { did -c protect 4 } if ($protection(massjoin) == on) { did -c protect 5 } if ($protection(flood) == on) { did -c protect 6 } if ($protection(iflood) == on) { did -c protect 7 } did -a protect 9 $protection(num) did -a protect 12 $protection(timer) if ($exempt(chan)) { %Z31.4 = 1 while (%Z31.4 <= $numtok($exempt(chan),44)) { did -a protect 18 $gettok($exempt(chan),%Z31.4,44) inc %Z31.4 } } if ($exempt(user)) { %Z31.5 = 1 while (%Z31.5 <= $numtok($exempt(user),44)) { did -a protect 21 $gettok($exempt(user),%Z31.5,44) inc %Z31.5 } } if ($exempt(host)) { %Z31.6 = 1 while (%Z31.6 <= $numtok($exempt(host),44)) { did -a protect 24 $gettok($exempt(host),%Z31.6,44) inc %Z31.6 } } if ($protection(pmflood) == on) { did -c protect 28 } unset %Z31.* } on *:DIALOG:protect:sclick:*: { if ($did == 2) { if ($did(2).state == 1) { protection op on } else { protection op off } } if ($did == 3) { if ($did(3).state == 1) { protection kick on } else { protection kick off } } if ($did == 4) { if ($did(4).state == 1) { protection ban on } else { protection ban off } } if ($did == 5) { if ($did(5).state == 1) { protection massjoin on } else { protection massjoin off } } if ($did == 6) { if ($did(6).state == 1) { protection flood on } else { protection flood off } } if ($did == 7) { if ($did(7).state == 1) { protection iflood on } else { protection iflood off } } if ($did == 19) { %z31.7 = $input(Please enter the channel you wish to add to the exception list.,oe,Protection) if ($chr(35) !isin %z31.7) { %z31.dump = $input(You must enter the # symbol before the channel name.,oh,Protection) } elseif ($chr(35) isin %z31.7) { exempt chan add %z31.7 did -a protect 18 %z31.7 } } if ($did == 20) { if (!$did(18).sel) { %z31.dump = $input(Please select the channel you wish to remove from the exception list first.,oh,Protection) } elseif ($did(18).sel) { %z31.dump = $input(Are you sure you want to remove $did(18).seltext from the exception list?,yw,Protection) if (%z31.dump == $true) { exempt chan del $did(18).seltext did -r protect 18 if ($exempt(chan)) { %Z31.4 = 1 while (%Z31.4 <= $numtok($exempt(chan),44)) { did -a protect 18 $gettok($exempt(chan),%Z31.4,44) inc %Z31.4 } } } } } if ($did == 22) { %z31.8 = $input(Please enter the user name you wish to add to the exception list.,oe,Protection) if (%z31.8 != $false) && (%z31.8 != $null) { exempt user add %z31.8 did -a protect 21 %z31.8 } } if ($did == 23) { if (!$did(21).sel) { %z31.dump = $input(Please select the user name you wish to remove from the exception list first.,oh,Protection) } elseif ($did(21).sel) { %z31.dump = $input(Are you sure you want to remove $did(21).seltext from the exception list?,yw,Protection) if (%z31.dump == $true) { exempt user del $did(21).seltext did -r protect 21 if ($exempt(user)) { %Z31.5 = 1 while (%Z31.5 <= $numtok($exempt(user),44)) { did -a protect 21 $gettok($exempt(user),%Z31.5,44) inc %Z31.5 } } } } } if ($did == 25) { %z31.9 = $input(Please enter the hostmask you wish to add to the exception list. NOTE: It must be a valid hostmask!,oe,Protection) if ($chr(46) !isin %z31.9) || ($chr(64) !isin %z31.9) || ($chr(33) !isin %z31.9) { %z31.dump = $input(%z31.9 is not a valid host mask.,oh,Protection) } elseif ($chr(46) isin %z31.9) && ($chr(64) isin %z31.9) && ($chr(33) isin %z31.9) { exempt host add %z31.9 did -a protect 24 %z31.9 } } if ($did == 26) { if (!$did(24).sel) { %z31.dump = $input(Please select the hostmask you wish to remove from the exception list first.,oh,Protection) } elseif ($did(24).sel) { %z31.dump = $input(Are you sure you want to remove $did(24).seltext from the exception list?,yw,Protection) if (%z31.dump == $true) { exempt host del $did(24).seltext did -r protect 24 if ($exempt(host)) { %Z31.6 = 1 while (%Z31.6 <= $numtok($exempt(host),44)) { did -a protect 24 $gettok($exempt(user),%Z31.6,44) inc %Z31.6 } } } } } if ($did == 28) { if ($did(28).state == 1) { protection pmflood on } else { protection pmflood off } } :end unset %z31.* } on *:DIALOG:protect:edit:9: { if ($did(9).text) { protection num $did(9).text } } on *:DIALOG:protect:edit:12: { if ($did(12).text) { protection timer $did(12).text } } alias IsExempt { if ($1) { if ($exempt(chan,$1) == $true) { return $true } if ($exempt(user,$1) == $true) { return $true } if ($exempt(host,$address($1,0)) == $true) { return $true } if ($exempt(host,$address($1,1)) == $true) { return $true } if ($exempt(host,$address($1,2)) == $true) { return $true } if ($exempt(host,$address($1,3)) == $true) { return $true } if ($exempt(host,$address($1,4)) == $true) { return $true } if ($exempt(host,$address($1,5)) == $true) { return $true } if ($exempt(host,$address($1,6)) == $true) { return $true } if ($exempt(host,$address($1,7)) == $true) { return $true } if ($exempt(host,$address($1,8)) == $true) { return $true } if ($exempt(host,$address($1,9)) == $true) { return $true } else { return $false } } } on *:DEOP:#: { if ($protection(op) == on) { if ($nick == $me) || ($nick == ChanServ) || ($IsExempt($chan) == $true) || ($IsExempt($nick) == $true) { goto end } if ($opnick == $me) { %z31-op = $true %z31-chan = $chan %z31-nick = $nick .timerZ31.1 1 1 chanserv op $chan $me } } :end } on *:OP:%z31-chan: { if (%z31-op == $true) || (%z31-kick == $true) || (%z31-ban == $true) { if (%z31-nick ison $chan) { mode $chan -ob %z31-nick %z31-banmask .timerZ31.3 -m 1 1500 kick $chan %z31-nick Kicked by $me 4(OP Abuse) } } unset %z31-* } on @*:KICK:#: { if ($protection(kick) == on) { if ($nick == $me) || ($nick == ChanServ) || ($IsExempt($chan) == $true) || ($IsExempt($nick) == $true) { goto end } if ($knick == $me) { %z31-kick = $true %z31-chan = $chan %z31-nick = $nick .timerZ31.4 1 1 join %z31-chan } } :end } alias IsBanned { if ($me isin $1) { return $true } if ($address($me,0) == $1) { return $true } if ($address($me,1) == $1) { return $true } if ($address($me,2) == $1) { return $true } if ($address($me,3) == $1) { return $true } if ($address($me,4) == $1) { return $true } if ($address($me,5) == $1) { return $true } if ($address($me,6) == $1) { return $true } if ($address($me,7) == $1) { return $true } if ($address($me,8) == $1) { return $true } if ($address($me,9) == $1) { return $true } if ($gettok($host,4,46) isin $1) { return $true } else { return $false } } on @*:BAN:#: { if ($protection(ban) == on) { if ($nick == $me) || ($nick == ChanServ) || ($IsExempt($chan) == $true) || ($IsExempt($nick) == $true) { goto end } if ($IsBanned($banmask) == $true) { set -u8 %z31-ban $true set -u8 %z31-banmask $banmask set -u8 %z31-chan $chan set -u8 %z31-nick $nick .timerZ31.6 1 1 mode $chan -bo $banmask $nick .timerZ31.7 1 2 kick $chan $nick Kicked by $me 4(OP Abuse) } } :end } raw *:*: { if (%z31-kick == $true) { if ($numeric == 471) || ($numeric == 473) || ($numeric == 474) || ($numeric == 475) { .timerZ31.5 1 1 chanserv invite %z31-chan halt } } } on ^*:NOTICE:*:*: { if (%z31-op == $true) || (%z31-kick == $true) || (%z31-ban == $true) && ($nick == ChanServ) { %chanserv = $strip($1-) if (access denied isin %chanserv) || (permission denied isin %chanserv) || (You do not have access isin %chanserv) { echo -a $+ $color(info) $+ * ChanServ could not complete the operation on %z31-chan $+ . (Access Denied) unset %z31-* } if (not registered isin %chanserv) { echo -a $+ $color(info) $+ * ChanServ could not complete the operation on %z31-chan $+ . (Channel not registered) unset %z31-* } unset %chanserv halt } } on @*:JOIN:#: { if ($protection(massjoin) == on) { if ($IsExempt($chan) == $true) || ($nick isreg $chan) { goto end } inc % [ $+ [ $chan ] ] %clones. [ $+ [ $chan ] ] = $addtok(%clones. [ $+ [ $chan ] ],$nick,44) .timerJOINS1 1 $protection(timer) unset % [ $+ [ $chan ] ] .timerJOINS2 1 $protection(timer) unset %clones. [ $+ [ $chan ] ] if (% [ $+ [ $chan ] ] >= $protection(num)) { mode $chan +dim .timerJOINS* off .timerMODE 1 300 mode $chan -dim clonek $chan } } :end } alias clonek { %kick = 1 while (%kick <= $numtok(%clones. [ $+ [ $1 ] ],44)) { if ($gettok(%clones. [ $+ [ $1 ] ],%kick,44) ison $1) { .timerCK $+ %kick -m 1 $calc(1300 * %kick + 660) kick $chan $gettok(%clones. [ $+ [ $1 ] ],%kick,44) Mass Join 4(Clone) } inc %kick } if (!$timerKICK*) { .timerKICK $+ $rand(1,999) 1 $calc($numtok(%clones. [ $+ [ $1 ] ],44) + 2) ck.us $1 } } alias ck.us { unset % [ $+ [ $1 ] ] unset %clones. [ $+ [ $1 ] ] unset %kick } on *:TEXT:*:#: { if ($protection(flood) == on) { if (Serv isin $nick) || ($IsExempt($chan) == $true) || ($IsExempt($nick) == $true) { goto end } inc % [ $+ [ $nick ] ] if (!$timer($nick)) { .timer $+ $nick 1 $protection(timer) unset % $+ $nick } if (% [ $+ [ $nick ] ] >= $protection(num)) { if ($me isop $chan) { .timer $+ $nick $+ 1 1 1 kick $chan $nick Slow down! 4(Flooding) } elseif ($me !isop $chan) { .ignore -u180 $nick $+ !*@* .echo -a $+ $color(info) $+ * 4Flooding Detected: $+ $color(info) $chan by $nick - Ignored for 3 minutes. } unset % [ $+ [ $nick ] ] } } :end } on *:NOTICE:*:#: { if ($protection(flood) == on) { if (Serv isin $nick) || ($IsExempt($chan) == $true) || ($IsExempt($nick) == $true) { goto end } inc % [ $+ [ $nick ] ] if (!$timer($nick)) { .timer $+ $nick 1 $protection(timer) unset % $+ $nick } if (% [ $+ [ $nick ] ] >= $protection(num)) { if ($me isop $chan) { .timer $+ $nick $+ 1 1 1 kick $chan $nick Slow down! 4(Flooding) } elseif ($me !isop $chan) { .ignore -u180 $nick $+ !*@* .echo -a $+ $color(info) $+ * 4Flooding Detected: $+ $color(info) $chan by $nick - Ignored for 3 minutes. } unset % [ $+ [ $nick ] ] } } :end } on *:ACTION:*:#: { if ($protection(flood) == on) { if (Serv isin $nick) || ($IsExempt($chan) == $true) || ($IsExempt($nick) == $true) { goto end } inc % [ $+ [ $nick ] ] if (!$timer($nick)) { .timer $+ $nick 1 $protection(timer) unset % $+ $nick } if (% [ $+ [ $nick ] ] >= $protection(num)) { if ($me isop $chan) { .timer $+ $nick $+ 1 1 1 kick $chan $nick Slow down! 4(Flooding) } elseif ($me !isop $chan) { .ignore -u180 $nick $+ !*@* .echo -a $+ $color(info) $+ * 4Flooding Detected: $+ $color(info) $chan by $nick - Ignored for 3 minutes. } unset % [ $+ [ $nick ] ] } } :end } on *:TEXT:*:?: { if ($protection(pmflood) == on) { if (Serv isin $nick) || ($IsExempt($chan) == $true) || ($IsExempt($nick) == $true) { goto end } inc % [ $+ [ $nick ] ] if (!$timer($nick)) { .timer $+ $nick 1 $protection(timer) unset % $+ $nick } if (% [ $+ [ $nick ] ] >= $protection(num)) { .ignore -u180 $nick $+ !*@* .echo -a $+ $color(info) $+ * 4Flooding Detected: $+ $color(info) Private Message by $nick - Ignored for 3 minutes. close -m $nick unset % [ $+ [ $nick ] ] } } :end } on *:ACTION:*:?: { if ($protection(pmflood) == on) { if (Serv isin $nick) || ($IsExempt($chan) == $true) || ($IsExempt($nick) == $true) { goto end } inc % [ $+ [ $nick ] ] if (!$timer($nick)) { .timer $+ $nick 1 $protection(timer) unset % $+ $nick } if (% [ $+ [ $nick ] ] >= $protection(num)) { .ignore -u180 $nick $+ !*@* .echo -a $+ $color(info) $+ * 4Flooding Detected: $+ $color(info) Private Message by $nick - Ignored for 3 minutes. close -m $nick unset % [ $+ [ $nick ] ] } } :end } on *:NOTICE:*:?: { if ($protection(flood) == on) { if (Serv isin $nick) || ($IsExempt($chan) == $true) || ($IsExempt($nick) == $true) { goto end } inc % [ $+ [ $nick ] ] if (!$timer($nick)) { .timer $+ $nick 1 $protection(timer) unset % $+ $nick } if (% [ $+ [ $nick ] ] >= $protection(num)) { .ignore -u180 $nick $+ !*@* .echo -a $+ $color(info) $+ * 4Flooding Detected: $+ $color(info) Notice by $nick - Ignored for 3 minutes. close -m $nick unset % [ $+ [ $nick ] ] } } :end } on *:INVITE:#: { if ($protection(iflood) == on) { if (Serv isin $nick) || ($IsExempt($chan) == $true) || ($IsExempt($nick) == $true) { goto end } inc %invites if (!$timer(invite)) { .timerinvite 1 $protection(timer) unset %invites } if (%invites >= $calc($protection(num) - 1)) { ignore -iu240 *!*@* echo -a $+ $color(info) $+ * - 4Flooding Detected: $+ $color(info) Invite Flood - All invites ignored for 4 minutes. } } :end }
×
×
  • Create New...