असर मूलतः अपने उपयोगकर्ता नाम बदल रहा है / IRCname ने फ्लाई पर. यद्यपि आप अपने सर्वर और reconnected से काट रहे हैं, इस ircII ग्राहक, इस प्रकार आपके सारे राज्य जानकारी रखने और अक्षुण्ण उपनाम exited कभी नहीं रहा है. इसका मतलब यह है कि वास्तव में प्रतिबंध चोरी में अप्रिय होने की इच्छा bots के लिए आदर्श है. ;)
जैसा कि यह अब ircII में एक नया आदेश है, यह स्क्रिप्ट में प्रयोग किया जा सकता है. यह है कि इस NEWUSER कमांड से जुड़े reconnect अवगत रहें, ताकि तुरंत NEWUSER आज्ञाओं का पालन करना चाहिए किसी भी मज़दूर समय लगता है. उदाहरण के लिए ... प्रतिबंध अपवंचन आसान (लेकिन अनंत खबरदार कर दिया, जब आपकी साइट पर प्रतिबंध लगाया जाता है) reconnects:
पर ^ 474 * (
गूंज *** प्रतिबंधित चैनल से $ 1
($ अगर एन == [AnnMurray]) (
निक $ randomstring
$ 1 में शामिल
) (
निक AnnMurray
newuser $ randomstring
5 $ 1 में शामिल घड़ी
)
)
या सिर्फ कष्टप्रद हो ... एक / BE <nickname> उर्फ है कि एक व्यक्ति के उपयोगकर्ता नाम और IRCNAME मान होगा:
उर्फ हो (
^ पर ^ 311 * (
311 ^ पर -*
newuser $ 2 $ 5 --
)
whois $ 0
)
अब ... आदेश में अपने ircII ग्राहक को नवीनतम ग्राहक स्रोत (या जो भी ग्राहक स्रोत आप का प्रयोग कर रहे हैं) इस कमांड को जोड़ने के लिए. Cd स्रोत निर्देशिका में है और फाइल को संपादित "" edit.c. निम्नलिखित बदलाव करें:
जो पढ़ता पंक्ति ढूँढें:
extern शून्य सर्वर ();
स्थैतिक शून्य newuser ();
इससे पूर्व एक नया समारोह "newuser परिभाषित ()" कहा कि हम बाद में जोड़ देंगे.
"नाम", "नाम", funny_stuff, 0,इसे बाद में निम्नलिखित पंक्ति डालें:
"NEWUSER", Null, newuser, 0,
यह वैध IRCII आज्ञाओं की सूची में, एक नया कमांड NEWUSER कहते हैं और यह हमारी नई समारोह newuser कॉल करने के लिए कहता है () इसे पूरा करने के लिए.
अंत में, फ़ाइल के नीचे जाओ और निम्नलिखित कोड जोड़ने हमारी नई समारोह "newuser के रूप में ()":
/ * * Newuser: इस / NEWUSER आदेश. हेंड्रिक्स के द्वारा जोड़ा गया के रूप में * पैरामीटर प्रकार: * / NEWUSER[New_IRCNAME] * [new_IRCNAME] * आवश्यकता है एक नया उपयोगकर्ता नाम का उपयोग करने के लिए है और का उपयोग करने के लिए एक नया IRCNAME स्ट्रिंग है और * यह आपके सर्वर से काट देगा और * इस नई जानकारी का उपयोग कर दिया फिर वैकल्पिक है. * वर्तमान में आप पर और अपने वर्तमान उपनाम रख रहे हैं सभी चैनलों को फिर से जोड़ना होगा. * / स्थैतिक शून्य newuser (कमांड, args) चार * कमांड, * args; (चार * newuname, अगर (= (args, और args)) next_arg newuname ( strmcpy (, NAME_LEN newuname) उपयोक्तानाम, अगर (* args) strmcpy (realname, args, REALNAME_LEN); कहना ( "सर्वर से Reconnecting ... close_server (from_server); यदि (connect_to_server (server_list [from_server]. नाम, server_list [ from_server]. बंदरगाह, primary_server)! = -1) (change_server_channels (primary_server, from_server); set_window_server (-1, from_server, 1);) और ( "reconnect करने में असमर्थ है. प्रयोग / सर्वर से कनेक्ट करने के लिए.) और कहने (" तुम और एक उपयोगकर्ता नाम निर्दिष्ट करना होगा, वैकल्पिक, एक IRCNAME)
/ NEWUSER एक CTCP क्वेरी से छुपा नहीं होगा. के रूप में निम्नलिखित diff में दिखाया गया है और एक पर्यावरण नाम CTCPFINGER आप जब queried प्रदर्शन करना चाहेंगे जानकारी के साथ चर सेट कि, ctcp.c संशोधित करने के लिए.
*** Ctcp.old --- ctcp.c *************** *** 334 ****! चार ग; --- 334 ---! चार ग, * fing; *************** *** 350.354 ****! अगर (पी डब्लू डी = ()) uid (चार * tmp; --- 350.356 ---- getpwuid! अगर (= getenv fing ( "CTCPFINGER"))! ctcp send_ctcp_reply (से-> नाम, fing, diff, ग);! और अगर (पी डब्लू डी = ()) uid (चार * tmp getpwuid;