<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://graalonline.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DeathDark</id>
	<title>Graal Bible - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://graalonline.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DeathDark"/>
	<link rel="alternate" type="text/html" href="https://graalonline.net/Special:Contributions/DeathDark"/>
	<updated>2026-04-07T07:57:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Management/Contacts&amp;diff=6884</id>
		<title>Creation/Management/Contacts</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Management/Contacts&amp;diff=6884"/>
		<updated>2006-04-24T03:32:53Z</updated>

		<summary type="html">&lt;p&gt;DeathDark: /* Playerworld Administrators */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Generally directors will not reply as they are busy with duties, which is why you should contact admins or the separate divisions related to your problem (e.g: GST for NPC-Server issues)&lt;br /&gt;
&lt;br /&gt;
''All staff listed, except the Kingdoms staff, Zone staff and Super Moderators are Graalonline Global Admins, with a Global RC.''&lt;br /&gt;
&lt;br /&gt;
=Managing Director=&lt;br /&gt;
* [[User:Unixmad|Stéphane Portha]]&lt;br /&gt;
** ''Deals with payment issues only (e.g: Double charges/CC Fraud Bans).''&lt;br /&gt;
** E-Mail: unixmad@graalonline.com&lt;br /&gt;
&lt;br /&gt;
=Technical Director=&lt;br /&gt;
* [[User:Stefan|Stefan]]&lt;br /&gt;
** ''Deals with extreme playerworld issues/in-game bugs/game development.''&lt;br /&gt;
** Forum PM: Stefan&lt;br /&gt;
&lt;br /&gt;
=Account Support=&lt;br /&gt;
* [[User:Spark910|Spark911]]&lt;br /&gt;
* [[User:Ibonic|Ibonic]]&lt;br /&gt;
* [[User:Lyndzey|Lyndzey]]&lt;br /&gt;
&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
=Global Guild Administrator=&lt;br /&gt;
* [[User:VulcanP2P|Vulcan]] (account VulcanP2P)&lt;br /&gt;
** Forum PM: VulcanP2P&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
=Playerworld Administration=&lt;br /&gt;
* [[User:HoudiniMan|HoudiniMan]]&lt;br /&gt;
** Forum PM: HoudiniMan&lt;br /&gt;
** AIM: HoudiniGraal&lt;br /&gt;
** E-mail: houdiniman@graalonline.com&lt;br /&gt;
* [[User:GrowlZ1010|Growlz]]&lt;br /&gt;
** E-mail: growlz@graalonline.com&lt;br /&gt;
* [[User:dNeonb|Björn]]&lt;br /&gt;
** Forum PM: dNeonb&lt;br /&gt;
** AIM: GraalNeoN&lt;br /&gt;
** E-mail: dNeonb@graalonline.com&lt;br /&gt;
* [[User:Malinko|Malinko]]&lt;br /&gt;
** Forum PM: Malinko&lt;br /&gt;
** E-mail: malinko.graalonline@gmail.com&lt;br /&gt;
&lt;br /&gt;
=Global Scripting Team=&lt;br /&gt;
* [[User:Skyld|Skyld]]&lt;br /&gt;
** ''Deals with scripting issues, scripting inspections, scripting advice, and general issues.''&lt;br /&gt;
** Forum PM: Skyld&lt;br /&gt;
* [[User:CheeToS2|CheeToS]]&lt;br /&gt;
** ''Deals with scripting issues, scripting advice, and general issues.''&lt;br /&gt;
** AIM: Cheetah643&lt;br /&gt;
** Forum PM: CheeToS2&lt;br /&gt;
* [[User:Python523|Jagen]]&lt;br /&gt;
** ''Deals with scripting issues and scripting advice.''&lt;br /&gt;
** Forum PM: Python523&lt;br /&gt;
=Playerworld Revision=&lt;br /&gt;
* [[User:Deathdark|Conner]]&lt;br /&gt;
** ''Makes sure there are no Abusives or Hackers.'' &lt;br /&gt;
** AIM: RaMedia06&lt;br /&gt;
** Forum PM: (None)&lt;br /&gt;
&lt;br /&gt;
=Graal Kingdoms Administration=&lt;br /&gt;
* [[User:Sam|Sam]]&lt;br /&gt;
** Forum PM: Sam&lt;br /&gt;
&lt;br /&gt;
* [[User:Cruchot|Yann]] (Police)&lt;br /&gt;
** Forum PM: Cruchot&lt;br /&gt;
&lt;br /&gt;
=Zone Staff Team=&lt;br /&gt;
* [[User:VulcanP2P|Vulcan]] (account VulcanP2P)&lt;br /&gt;
** Forum PM: VulcanP2P&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
* [[User:Huwajux|Huwajux (Events)]]&lt;br /&gt;
** Forum PM: Huwajux&lt;br /&gt;
** AIM: Dark Xanadu&lt;br /&gt;
** MSN: johnsh9991@aol.com&lt;br /&gt;
** Email: darksabre@blueyonder.co.uk&lt;br /&gt;
&lt;br /&gt;
* [[User:SayianOozaru|Sayian (GFX)]]&lt;br /&gt;
** Forum PM: SayianOozaru&lt;br /&gt;
&lt;br /&gt;
* [[User:Gerami|Crono (Events)]]&lt;br /&gt;
** Forum PM: Gerami&lt;br /&gt;
** AIM: CronoPker&lt;br /&gt;
&lt;br /&gt;
=Forum Super Moderators=&lt;br /&gt;
* [[User:Darlene159|Moonie]]&lt;br /&gt;
** Forum PM: Darlene159&lt;br /&gt;
** AIM/ICQ: 20828121&lt;br /&gt;
** E-mail: moonie@graalonline.com&lt;br /&gt;
* [[User:Spark910|Spark911]]&lt;br /&gt;
** Forum PM: Spark910&lt;br /&gt;
* [[User:ZanderX|Kamuii]]&lt;br /&gt;
** Forum PM: ZanderX&lt;br /&gt;
** AIM: iharuzim&lt;br /&gt;
** ICQ: 307557649&lt;br /&gt;
** Yahoo: misery@pacbell.net&lt;br /&gt;
** MSN: sol@guiltygear.org&lt;br /&gt;
** Jabber: kamuii@jabber.org&lt;br /&gt;
** E-mail: kamuii@toroimerai.net&lt;/div&gt;</summary>
		<author><name>DeathDark</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Management/Contacts&amp;diff=6883</id>
		<title>Creation/Management/Contacts</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Management/Contacts&amp;diff=6883"/>
		<updated>2006-04-24T03:32:13Z</updated>

		<summary type="html">&lt;p&gt;DeathDark: /* Playerworld Administrators */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Generally directors will not reply as they are busy with duties, which is why you should contact admins or the separate divisions related to your problem (e.g: GST for NPC-Server issues)&lt;br /&gt;
&lt;br /&gt;
''All staff listed, except the Kingdoms staff, Zone staff and Super Moderators are Graalonline Global Admins, with a Global RC.''&lt;br /&gt;
&lt;br /&gt;
=Managing Director=&lt;br /&gt;
* [[User:Unixmad|Stéphane Portha]]&lt;br /&gt;
** ''Deals with payment issues only (e.g: Double charges/CC Fraud Bans).''&lt;br /&gt;
** E-Mail: unixmad@graalonline.com&lt;br /&gt;
&lt;br /&gt;
=Technical Director=&lt;br /&gt;
* [[User:Stefan|Stefan]]&lt;br /&gt;
** ''Deals with extreme playerworld issues/in-game bugs/game development.''&lt;br /&gt;
** Forum PM: Stefan&lt;br /&gt;
&lt;br /&gt;
=Account Support=&lt;br /&gt;
* [[User:Spark910|Spark911]]&lt;br /&gt;
* [[User:Ibonic|Ibonic]]&lt;br /&gt;
* [[User:Lyndzey|Lyndzey]]&lt;br /&gt;
&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
=Global Guild Administrator=&lt;br /&gt;
* [[User:VulcanP2P|Vulcan]] (account VulcanP2P)&lt;br /&gt;
** Forum PM: VulcanP2P&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
=Playerworld Administration=&lt;br /&gt;
* [[User:HoudiniMan|HoudiniMan]]&lt;br /&gt;
** Forum PM: HoudiniMan&lt;br /&gt;
** AIM: HoudiniGraal&lt;br /&gt;
** E-mail: houdiniman@graalonline.com&lt;br /&gt;
* [[User:GrowlZ1010|Growlz]]&lt;br /&gt;
** E-mail: growlz@graalonline.com&lt;br /&gt;
* [[User:dNeonb|Björn]]&lt;br /&gt;
** Forum PM: dNeonb&lt;br /&gt;
** AIM: GraalNeoN&lt;br /&gt;
** E-mail: dNeonb@graalonline.com&lt;br /&gt;
* [[User:Malinko|Malinko]]&lt;br /&gt;
** Forum PM: Malinko&lt;br /&gt;
** E-mail: malinko.graalonline@gmail.com&lt;br /&gt;
&lt;br /&gt;
=Global Scripting Team=&lt;br /&gt;
* [[User:Skyld|Skyld]]&lt;br /&gt;
** ''Deals with scripting issues, scripting inspections, scripting advice, and general issues.''&lt;br /&gt;
** Forum PM: Skyld&lt;br /&gt;
* [[User:CheeToS2|CheeToS]]&lt;br /&gt;
** ''Deals with scripting issues, scripting advice, and general issues.''&lt;br /&gt;
** AIM: Cheetah643&lt;br /&gt;
** Forum PM: CheeToS2&lt;br /&gt;
* [[User:Python523|Jagen]]&lt;br /&gt;
** ''Deals with scripting issues and scripting advice.''&lt;br /&gt;
** Forum PM: Python523&lt;br /&gt;
=Playerworld Administrators=&lt;br /&gt;
* [[User:Deathdark|Conner]]&lt;br /&gt;
** ''Makes sure there are no Abusives or Hackers.'' &lt;br /&gt;
** AIM: RaMedia06&lt;br /&gt;
** Forum PM: (None)&lt;br /&gt;
&lt;br /&gt;
=Graal Kingdoms Administration=&lt;br /&gt;
* [[User:Sam|Sam]]&lt;br /&gt;
** Forum PM: Sam&lt;br /&gt;
&lt;br /&gt;
* [[User:Cruchot|Yann]] (Police)&lt;br /&gt;
** Forum PM: Cruchot&lt;br /&gt;
&lt;br /&gt;
=Zone Staff Team=&lt;br /&gt;
* [[User:VulcanP2P|Vulcan]] (account VulcanP2P)&lt;br /&gt;
** Forum PM: VulcanP2P&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
* [[User:Huwajux|Huwajux (Events)]]&lt;br /&gt;
** Forum PM: Huwajux&lt;br /&gt;
** AIM: Dark Xanadu&lt;br /&gt;
** MSN: johnsh9991@aol.com&lt;br /&gt;
** Email: darksabre@blueyonder.co.uk&lt;br /&gt;
&lt;br /&gt;
* [[User:SayianOozaru|Sayian (GFX)]]&lt;br /&gt;
** Forum PM: SayianOozaru&lt;br /&gt;
&lt;br /&gt;
* [[User:Gerami|Crono (Events)]]&lt;br /&gt;
** Forum PM: Gerami&lt;br /&gt;
** AIM: CronoPker&lt;br /&gt;
&lt;br /&gt;
=Forum Super Moderators=&lt;br /&gt;
* [[User:Darlene159|Moonie]]&lt;br /&gt;
** Forum PM: Darlene159&lt;br /&gt;
** AIM/ICQ: 20828121&lt;br /&gt;
** E-mail: moonie@graalonline.com&lt;br /&gt;
* [[User:Spark910|Spark911]]&lt;br /&gt;
** Forum PM: Spark910&lt;br /&gt;
* [[User:ZanderX|Kamuii]]&lt;br /&gt;
** Forum PM: ZanderX&lt;br /&gt;
** AIM: iharuzim&lt;br /&gt;
** ICQ: 307557649&lt;br /&gt;
** Yahoo: misery@pacbell.net&lt;br /&gt;
** MSN: sol@guiltygear.org&lt;br /&gt;
** Jabber: kamuii@jabber.org&lt;br /&gt;
** E-mail: kamuii@toroimerai.net&lt;/div&gt;</summary>
		<author><name>DeathDark</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Management/Contacts&amp;diff=6882</id>
		<title>Creation/Management/Contacts</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Management/Contacts&amp;diff=6882"/>
		<updated>2006-04-24T03:31:11Z</updated>

		<summary type="html">&lt;p&gt;DeathDark: /* Playerworld Administrators */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Generally directors will not reply as they are busy with duties, which is why you should contact admins or the separate divisions related to your problem (e.g: GST for NPC-Server issues)&lt;br /&gt;
&lt;br /&gt;
''All staff listed, except the Kingdoms staff, Zone staff and Super Moderators are Graalonline Global Admins, with a Global RC.''&lt;br /&gt;
&lt;br /&gt;
=Managing Director=&lt;br /&gt;
* [[User:Unixmad|Stéphane Portha]]&lt;br /&gt;
** ''Deals with payment issues only (e.g: Double charges/CC Fraud Bans).''&lt;br /&gt;
** E-Mail: unixmad@graalonline.com&lt;br /&gt;
&lt;br /&gt;
=Technical Director=&lt;br /&gt;
* [[User:Stefan|Stefan]]&lt;br /&gt;
** ''Deals with extreme playerworld issues/in-game bugs/game development.''&lt;br /&gt;
** Forum PM: Stefan&lt;br /&gt;
&lt;br /&gt;
=Account Support=&lt;br /&gt;
* [[User:Spark910|Spark911]]&lt;br /&gt;
* [[User:Ibonic|Ibonic]]&lt;br /&gt;
* [[User:Lyndzey|Lyndzey]]&lt;br /&gt;
&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
=Global Guild Administrator=&lt;br /&gt;
* [[User:VulcanP2P|Vulcan]] (account VulcanP2P)&lt;br /&gt;
** Forum PM: VulcanP2P&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
=Playerworld Administration=&lt;br /&gt;
* [[User:HoudiniMan|HoudiniMan]]&lt;br /&gt;
** Forum PM: HoudiniMan&lt;br /&gt;
** AIM: HoudiniGraal&lt;br /&gt;
** E-mail: houdiniman@graalonline.com&lt;br /&gt;
* [[User:GrowlZ1010|Growlz]]&lt;br /&gt;
** E-mail: growlz@graalonline.com&lt;br /&gt;
* [[User:dNeonb|Björn]]&lt;br /&gt;
** Forum PM: dNeonb&lt;br /&gt;
** AIM: GraalNeoN&lt;br /&gt;
** E-mail: dNeonb@graalonline.com&lt;br /&gt;
* [[User:Malinko|Malinko]]&lt;br /&gt;
** Forum PM: Malinko&lt;br /&gt;
** E-mail: malinko.graalonline@gmail.com&lt;br /&gt;
&lt;br /&gt;
=Global Scripting Team=&lt;br /&gt;
* [[User:Skyld|Skyld]]&lt;br /&gt;
** ''Deals with scripting issues, scripting inspections, scripting advice, and general issues.''&lt;br /&gt;
** Forum PM: Skyld&lt;br /&gt;
* [[User:CheeToS2|CheeToS]]&lt;br /&gt;
** ''Deals with scripting issues, scripting advice, and general issues.''&lt;br /&gt;
** AIM: Cheetah643&lt;br /&gt;
** Forum PM: CheeToS2&lt;br /&gt;
* [[User:Python523|Jagen]]&lt;br /&gt;
** ''Deals with scripting issues and scripting advice.''&lt;br /&gt;
** Forum PM: Python523&lt;br /&gt;
=Playerworld Administrators=&lt;br /&gt;
* [[User:Deathdark|Conner]]&lt;br /&gt;
** ''Deals with scripting issues, scripting inspections, scripting advice, and general issues.'' &lt;br /&gt;
** AIM: RaMedia06&lt;br /&gt;
** Forum PM: (None)&lt;br /&gt;
&lt;br /&gt;
=Graal Kingdoms Administration=&lt;br /&gt;
* [[User:Sam|Sam]]&lt;br /&gt;
** Forum PM: Sam&lt;br /&gt;
&lt;br /&gt;
* [[User:Cruchot|Yann]] (Police)&lt;br /&gt;
** Forum PM: Cruchot&lt;br /&gt;
&lt;br /&gt;
=Zone Staff Team=&lt;br /&gt;
* [[User:VulcanP2P|Vulcan]] (account VulcanP2P)&lt;br /&gt;
** Forum PM: VulcanP2P&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
* [[User:Huwajux|Huwajux (Events)]]&lt;br /&gt;
** Forum PM: Huwajux&lt;br /&gt;
** AIM: Dark Xanadu&lt;br /&gt;
** MSN: johnsh9991@aol.com&lt;br /&gt;
** Email: darksabre@blueyonder.co.uk&lt;br /&gt;
&lt;br /&gt;
* [[User:SayianOozaru|Sayian (GFX)]]&lt;br /&gt;
** Forum PM: SayianOozaru&lt;br /&gt;
&lt;br /&gt;
* [[User:Gerami|Crono (Events)]]&lt;br /&gt;
** Forum PM: Gerami&lt;br /&gt;
** AIM: CronoPker&lt;br /&gt;
&lt;br /&gt;
=Forum Super Moderators=&lt;br /&gt;
* [[User:Darlene159|Moonie]]&lt;br /&gt;
** Forum PM: Darlene159&lt;br /&gt;
** AIM/ICQ: 20828121&lt;br /&gt;
** E-mail: moonie@graalonline.com&lt;br /&gt;
* [[User:Spark910|Spark911]]&lt;br /&gt;
** Forum PM: Spark910&lt;br /&gt;
* [[User:ZanderX|Kamuii]]&lt;br /&gt;
** Forum PM: ZanderX&lt;br /&gt;
** AIM: iharuzim&lt;br /&gt;
** ICQ: 307557649&lt;br /&gt;
** Yahoo: misery@pacbell.net&lt;br /&gt;
** MSN: sol@guiltygear.org&lt;br /&gt;
** Jabber: kamuii@jabber.org&lt;br /&gt;
** E-mail: kamuii@toroimerai.net&lt;/div&gt;</summary>
		<author><name>DeathDark</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Management/Contacts&amp;diff=6881</id>
		<title>Creation/Management/Contacts</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Management/Contacts&amp;diff=6881"/>
		<updated>2006-04-24T03:30:41Z</updated>

		<summary type="html">&lt;p&gt;DeathDark: /* Playerworld Administrators */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Generally directors will not reply as they are busy with duties, which is why you should contact admins or the separate divisions related to your problem (e.g: GST for NPC-Server issues)&lt;br /&gt;
&lt;br /&gt;
''All staff listed, except the Kingdoms staff, Zone staff and Super Moderators are Graalonline Global Admins, with a Global RC.''&lt;br /&gt;
&lt;br /&gt;
=Managing Director=&lt;br /&gt;
* [[User:Unixmad|Stéphane Portha]]&lt;br /&gt;
** ''Deals with payment issues only (e.g: Double charges/CC Fraud Bans).''&lt;br /&gt;
** E-Mail: unixmad@graalonline.com&lt;br /&gt;
&lt;br /&gt;
=Technical Director=&lt;br /&gt;
* [[User:Stefan|Stefan]]&lt;br /&gt;
** ''Deals with extreme playerworld issues/in-game bugs/game development.''&lt;br /&gt;
** Forum PM: Stefan&lt;br /&gt;
&lt;br /&gt;
=Account Support=&lt;br /&gt;
* [[User:Spark910|Spark911]]&lt;br /&gt;
* [[User:Ibonic|Ibonic]]&lt;br /&gt;
* [[User:Lyndzey|Lyndzey]]&lt;br /&gt;
&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
=Global Guild Administrator=&lt;br /&gt;
* [[User:VulcanP2P|Vulcan]] (account VulcanP2P)&lt;br /&gt;
** Forum PM: VulcanP2P&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
=Playerworld Administration=&lt;br /&gt;
* [[User:HoudiniMan|HoudiniMan]]&lt;br /&gt;
** Forum PM: HoudiniMan&lt;br /&gt;
** AIM: HoudiniGraal&lt;br /&gt;
** E-mail: houdiniman@graalonline.com&lt;br /&gt;
* [[User:GrowlZ1010|Growlz]]&lt;br /&gt;
** E-mail: growlz@graalonline.com&lt;br /&gt;
* [[User:dNeonb|Björn]]&lt;br /&gt;
** Forum PM: dNeonb&lt;br /&gt;
** AIM: GraalNeoN&lt;br /&gt;
** E-mail: dNeonb@graalonline.com&lt;br /&gt;
* [[User:Malinko|Malinko]]&lt;br /&gt;
** Forum PM: Malinko&lt;br /&gt;
** E-mail: malinko.graalonline@gmail.com&lt;br /&gt;
&lt;br /&gt;
=Global Scripting Team=&lt;br /&gt;
* [[User:Skyld|Skyld]]&lt;br /&gt;
** ''Deals with scripting issues, scripting inspections, scripting advice, and general issues.''&lt;br /&gt;
** Forum PM: Skyld&lt;br /&gt;
* [[User:CheeToS2|CheeToS]]&lt;br /&gt;
** ''Deals with scripting issues, scripting advice, and general issues.''&lt;br /&gt;
** AIM: Cheetah643&lt;br /&gt;
** Forum PM: CheeToS2&lt;br /&gt;
* [[User:Python523|Jagen]]&lt;br /&gt;
** ''Deals with scripting issues and scripting advice.''&lt;br /&gt;
** Forum PM: Python523&lt;br /&gt;
=Playerworld Administrators=&lt;br /&gt;
* [[User:Deathdark|Conner]]&lt;br /&gt;
** ''Deals with scripting issues, scripting inspections, &lt;br /&gt;
         ** scripting advice, and general issues.'' &lt;br /&gt;
** AIM: RaMedia06&lt;br /&gt;
** Forum PM: (None)&lt;br /&gt;
&lt;br /&gt;
=Graal Kingdoms Administration=&lt;br /&gt;
* [[User:Sam|Sam]]&lt;br /&gt;
** Forum PM: Sam&lt;br /&gt;
&lt;br /&gt;
* [[User:Cruchot|Yann]] (Police)&lt;br /&gt;
** Forum PM: Cruchot&lt;br /&gt;
&lt;br /&gt;
=Zone Staff Team=&lt;br /&gt;
* [[User:VulcanP2P|Vulcan]] (account VulcanP2P)&lt;br /&gt;
** Forum PM: VulcanP2P&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
* [[User:Huwajux|Huwajux (Events)]]&lt;br /&gt;
** Forum PM: Huwajux&lt;br /&gt;
** AIM: Dark Xanadu&lt;br /&gt;
** MSN: johnsh9991@aol.com&lt;br /&gt;
** Email: darksabre@blueyonder.co.uk&lt;br /&gt;
&lt;br /&gt;
* [[User:SayianOozaru|Sayian (GFX)]]&lt;br /&gt;
** Forum PM: SayianOozaru&lt;br /&gt;
&lt;br /&gt;
* [[User:Gerami|Crono (Events)]]&lt;br /&gt;
** Forum PM: Gerami&lt;br /&gt;
** AIM: CronoPker&lt;br /&gt;
&lt;br /&gt;
=Forum Super Moderators=&lt;br /&gt;
* [[User:Darlene159|Moonie]]&lt;br /&gt;
** Forum PM: Darlene159&lt;br /&gt;
** AIM/ICQ: 20828121&lt;br /&gt;
** E-mail: moonie@graalonline.com&lt;br /&gt;
* [[User:Spark910|Spark911]]&lt;br /&gt;
** Forum PM: Spark910&lt;br /&gt;
* [[User:ZanderX|Kamuii]]&lt;br /&gt;
** Forum PM: ZanderX&lt;br /&gt;
** AIM: iharuzim&lt;br /&gt;
** ICQ: 307557649&lt;br /&gt;
** Yahoo: misery@pacbell.net&lt;br /&gt;
** MSN: sol@guiltygear.org&lt;br /&gt;
** Jabber: kamuii@jabber.org&lt;br /&gt;
** E-mail: kamuii@toroimerai.net&lt;/div&gt;</summary>
		<author><name>DeathDark</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Management/Contacts&amp;diff=6880</id>
		<title>Creation/Management/Contacts</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Management/Contacts&amp;diff=6880"/>
		<updated>2006-04-24T03:29:46Z</updated>

		<summary type="html">&lt;p&gt;DeathDark: /* Global Scripting Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Generally directors will not reply as they are busy with duties, which is why you should contact admins or the separate divisions related to your problem (e.g: GST for NPC-Server issues)&lt;br /&gt;
&lt;br /&gt;
''All staff listed, except the Kingdoms staff, Zone staff and Super Moderators are Graalonline Global Admins, with a Global RC.''&lt;br /&gt;
&lt;br /&gt;
=Managing Director=&lt;br /&gt;
* [[User:Unixmad|Stéphane Portha]]&lt;br /&gt;
** ''Deals with payment issues only (e.g: Double charges/CC Fraud Bans).''&lt;br /&gt;
** E-Mail: unixmad@graalonline.com&lt;br /&gt;
&lt;br /&gt;
=Technical Director=&lt;br /&gt;
* [[User:Stefan|Stefan]]&lt;br /&gt;
** ''Deals with extreme playerworld issues/in-game bugs/game development.''&lt;br /&gt;
** Forum PM: Stefan&lt;br /&gt;
&lt;br /&gt;
=Account Support=&lt;br /&gt;
* [[User:Spark910|Spark911]]&lt;br /&gt;
* [[User:Ibonic|Ibonic]]&lt;br /&gt;
* [[User:Lyndzey|Lyndzey]]&lt;br /&gt;
&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
=Global Guild Administrator=&lt;br /&gt;
* [[User:VulcanP2P|Vulcan]] (account VulcanP2P)&lt;br /&gt;
** Forum PM: VulcanP2P&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
=Playerworld Administration=&lt;br /&gt;
* [[User:HoudiniMan|HoudiniMan]]&lt;br /&gt;
** Forum PM: HoudiniMan&lt;br /&gt;
** AIM: HoudiniGraal&lt;br /&gt;
** E-mail: houdiniman@graalonline.com&lt;br /&gt;
* [[User:GrowlZ1010|Growlz]]&lt;br /&gt;
** E-mail: growlz@graalonline.com&lt;br /&gt;
* [[User:dNeonb|Björn]]&lt;br /&gt;
** Forum PM: dNeonb&lt;br /&gt;
** AIM: GraalNeoN&lt;br /&gt;
** E-mail: dNeonb@graalonline.com&lt;br /&gt;
* [[User:Malinko|Malinko]]&lt;br /&gt;
** Forum PM: Malinko&lt;br /&gt;
** E-mail: malinko.graalonline@gmail.com&lt;br /&gt;
&lt;br /&gt;
=Global Scripting Team=&lt;br /&gt;
* [[User:Skyld|Skyld]]&lt;br /&gt;
** ''Deals with scripting issues, scripting inspections, scripting advice, and general issues.''&lt;br /&gt;
** Forum PM: Skyld&lt;br /&gt;
* [[User:CheeToS2|CheeToS]]&lt;br /&gt;
** ''Deals with scripting issues, scripting advice, and general issues.''&lt;br /&gt;
** AIM: Cheetah643&lt;br /&gt;
** Forum PM: CheeToS2&lt;br /&gt;
* [[User:Python523|Jagen]]&lt;br /&gt;
** ''Deals with scripting issues and scripting advice.''&lt;br /&gt;
** Forum PM: Python523&lt;br /&gt;
=Playerworld Administrators=&lt;br /&gt;
* [[User:Deathdark|Conner]]&lt;br /&gt;
** ''Deals with scripting issues, scripting inspections, scripting advice, and general issues.'' AIM: RaMedia06&lt;br /&gt;
** Forum PM: (None)&lt;br /&gt;
&lt;br /&gt;
=Graal Kingdoms Administration=&lt;br /&gt;
* [[User:Sam|Sam]]&lt;br /&gt;
** Forum PM: Sam&lt;br /&gt;
&lt;br /&gt;
* [[User:Cruchot|Yann]] (Police)&lt;br /&gt;
** Forum PM: Cruchot&lt;br /&gt;
&lt;br /&gt;
=Zone Staff Team=&lt;br /&gt;
* [[User:VulcanP2P|Vulcan]] (account VulcanP2P)&lt;br /&gt;
** Forum PM: VulcanP2P&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
* [[User:Huwajux|Huwajux (Events)]]&lt;br /&gt;
** Forum PM: Huwajux&lt;br /&gt;
** AIM: Dark Xanadu&lt;br /&gt;
** MSN: johnsh9991@aol.com&lt;br /&gt;
** Email: darksabre@blueyonder.co.uk&lt;br /&gt;
&lt;br /&gt;
* [[User:SayianOozaru|Sayian (GFX)]]&lt;br /&gt;
** Forum PM: SayianOozaru&lt;br /&gt;
&lt;br /&gt;
* [[User:Gerami|Crono (Events)]]&lt;br /&gt;
** Forum PM: Gerami&lt;br /&gt;
** AIM: CronoPker&lt;br /&gt;
&lt;br /&gt;
=Forum Super Moderators=&lt;br /&gt;
* [[User:Darlene159|Moonie]]&lt;br /&gt;
** Forum PM: Darlene159&lt;br /&gt;
** AIM/ICQ: 20828121&lt;br /&gt;
** E-mail: moonie@graalonline.com&lt;br /&gt;
* [[User:Spark910|Spark911]]&lt;br /&gt;
** Forum PM: Spark910&lt;br /&gt;
* [[User:ZanderX|Kamuii]]&lt;br /&gt;
** Forum PM: ZanderX&lt;br /&gt;
** AIM: iharuzim&lt;br /&gt;
** ICQ: 307557649&lt;br /&gt;
** Yahoo: misery@pacbell.net&lt;br /&gt;
** MSN: sol@guiltygear.org&lt;br /&gt;
** Jabber: kamuii@jabber.org&lt;br /&gt;
** E-mail: kamuii@toroimerai.net&lt;/div&gt;</summary>
		<author><name>DeathDark</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Management/Contacts&amp;diff=6879</id>
		<title>Creation/Management/Contacts</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Management/Contacts&amp;diff=6879"/>
		<updated>2006-04-24T03:28:32Z</updated>

		<summary type="html">&lt;p&gt;DeathDark: /* Global Scripting Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Generally directors will not reply as they are busy with duties, which is why you should contact admins or the separate divisions related to your problem (e.g: GST for NPC-Server issues)&lt;br /&gt;
&lt;br /&gt;
''All staff listed, except the Kingdoms staff, Zone staff and Super Moderators are Graalonline Global Admins, with a Global RC.''&lt;br /&gt;
&lt;br /&gt;
=Managing Director=&lt;br /&gt;
* [[User:Unixmad|Stéphane Portha]]&lt;br /&gt;
** ''Deals with payment issues only (e.g: Double charges/CC Fraud Bans).''&lt;br /&gt;
** E-Mail: unixmad@graalonline.com&lt;br /&gt;
&lt;br /&gt;
=Technical Director=&lt;br /&gt;
* [[User:Stefan|Stefan]]&lt;br /&gt;
** ''Deals with extreme playerworld issues/in-game bugs/game development.''&lt;br /&gt;
** Forum PM: Stefan&lt;br /&gt;
&lt;br /&gt;
=Account Support=&lt;br /&gt;
* [[User:Spark910|Spark911]]&lt;br /&gt;
* [[User:Ibonic|Ibonic]]&lt;br /&gt;
* [[User:Lyndzey|Lyndzey]]&lt;br /&gt;
&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
=Global Guild Administrator=&lt;br /&gt;
* [[User:VulcanP2P|Vulcan]] (account VulcanP2P)&lt;br /&gt;
** Forum PM: VulcanP2P&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
=Playerworld Administration=&lt;br /&gt;
* [[User:HoudiniMan|HoudiniMan]]&lt;br /&gt;
** Forum PM: HoudiniMan&lt;br /&gt;
** AIM: HoudiniGraal&lt;br /&gt;
** E-mail: houdiniman@graalonline.com&lt;br /&gt;
* [[User:GrowlZ1010|Growlz]]&lt;br /&gt;
** E-mail: growlz@graalonline.com&lt;br /&gt;
* [[User:dNeonb|Björn]]&lt;br /&gt;
** Forum PM: dNeonb&lt;br /&gt;
** AIM: GraalNeoN&lt;br /&gt;
** E-mail: dNeonb@graalonline.com&lt;br /&gt;
* [[User:Malinko|Malinko]]&lt;br /&gt;
** Forum PM: Malinko&lt;br /&gt;
** E-mail: malinko.graalonline@gmail.com&lt;br /&gt;
&lt;br /&gt;
=Global Scripting Team=&lt;br /&gt;
* [[User:Skyld|Skyld]]&lt;br /&gt;
** ''Deals with scripting issues, scripting inspections, scripting advice, and general issues.''&lt;br /&gt;
** Forum PM: Skyld&lt;br /&gt;
* [[User:CheeToS2|CheeToS]]&lt;br /&gt;
** ''Deals with scripting issues, scripting advice, and general issues.''&lt;br /&gt;
** AIM: Cheetah643&lt;br /&gt;
** Forum PM: CheeToS2&lt;br /&gt;
* [[User:Python523|Jagen]]&lt;br /&gt;
** ''Deals with scripting issues and scripting advice.''&lt;br /&gt;
** Forum PM: Python523&lt;br /&gt;
=Global Scripting Team=&lt;br /&gt;
* [[User:Deathdark|Conner]]&lt;br /&gt;
** ''Deals with scripting issues, scripting inspections, scripting advice, and general issues.'' AIM: RaMedia06&lt;br /&gt;
** Forum PM: (None)&lt;br /&gt;
&lt;br /&gt;
=Graal Kingdoms Administration=&lt;br /&gt;
* [[User:Sam|Sam]]&lt;br /&gt;
** Forum PM: Sam&lt;br /&gt;
&lt;br /&gt;
* [[User:Cruchot|Yann]] (Police)&lt;br /&gt;
** Forum PM: Cruchot&lt;br /&gt;
&lt;br /&gt;
=Zone Staff Team=&lt;br /&gt;
* [[User:VulcanP2P|Vulcan]] (account VulcanP2P)&lt;br /&gt;
** Forum PM: VulcanP2P&lt;br /&gt;
[http://support.graalonline.com Use the Support Center for help].&lt;br /&gt;
&lt;br /&gt;
* [[User:Huwajux|Huwajux (Events)]]&lt;br /&gt;
** Forum PM: Huwajux&lt;br /&gt;
** AIM: Dark Xanadu&lt;br /&gt;
** MSN: johnsh9991@aol.com&lt;br /&gt;
** Email: darksabre@blueyonder.co.uk&lt;br /&gt;
&lt;br /&gt;
* [[User:SayianOozaru|Sayian (GFX)]]&lt;br /&gt;
** Forum PM: SayianOozaru&lt;br /&gt;
&lt;br /&gt;
* [[User:Gerami|Crono (Events)]]&lt;br /&gt;
** Forum PM: Gerami&lt;br /&gt;
** AIM: CronoPker&lt;br /&gt;
&lt;br /&gt;
=Forum Super Moderators=&lt;br /&gt;
* [[User:Darlene159|Moonie]]&lt;br /&gt;
** Forum PM: Darlene159&lt;br /&gt;
** AIM/ICQ: 20828121&lt;br /&gt;
** E-mail: moonie@graalonline.com&lt;br /&gt;
* [[User:Spark910|Spark911]]&lt;br /&gt;
** Forum PM: Spark910&lt;br /&gt;
* [[User:ZanderX|Kamuii]]&lt;br /&gt;
** Forum PM: ZanderX&lt;br /&gt;
** AIM: iharuzim&lt;br /&gt;
** ICQ: 307557649&lt;br /&gt;
** Yahoo: misery@pacbell.net&lt;br /&gt;
** MSN: sol@guiltygear.org&lt;br /&gt;
** Jabber: kamuii@jabber.org&lt;br /&gt;
** E-mail: kamuii@toroimerai.net&lt;/div&gt;</summary>
		<author><name>DeathDark</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Graal_IRC&amp;diff=6878</id>
		<title>Creation/Dev/Graal IRC</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Graal_IRC&amp;diff=6878"/>
		<updated>2006-04-24T03:19:21Z</updated>

		<summary type="html">&lt;p&gt;DeathDark: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by [[User:Skyld|Skyld]], 26/07/2005. Edits made by [[User:Stefan|Stefan]] since. Hooray for [[User:Stefan|Stefan]]!&lt;br /&gt;
= IRC Information =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Graal 4 comes with a built-in form of IRC to allow people to chat between servers in rooms. Like IRC. But not, if you get my point. Now, there are ways in which you can use this IRC system to your advantage. Perhaps you want to script some kind of client for your players to use, or perhaps you want to script some kind of bot. Either way, the communication is simple.&lt;br /&gt;
&lt;br /&gt;
=== Links===&lt;br /&gt;
* [http://forums.graalonline.com/forums/showthread.php?t=60809 Graal v4 IRC Problem Information Thread]&lt;br /&gt;
* [[Creation/Dev/Troubleshooting Graal v4 IRC|Troubleshooting Graal v4 IRC]]&lt;br /&gt;
&lt;br /&gt;
== Logging In ==&lt;br /&gt;
To use the IRC, you just need to have basic knowledge of sendtext() and onReceiveText(). The fundamentals are that you have three parameters for each outgoing and incoming message. If you have used onReceiveText() before, you are likely to know &lt;br /&gt;
it has a structure like this: &lt;br /&gt;
&amp;lt;pre&amp;gt;function onReceiveText(texttype, textoptions, textlines)&amp;lt;/pre&amp;gt;&lt;br /&gt;
The texttype will always equal &amp;quot;irc&amp;quot; if it is an IRC command. This helps to filter out unwanted commands from, say, the scripted RC. The textoptions will always equal the command that you've sent, and the textlines will equal any parameters necessary for that command. &lt;br /&gt;
&lt;br /&gt;
An important thing to note is that the IRC server will not throw any errors at you if you make a mistake with a command, so you should ensure throughly that your requests are correct. &lt;br /&gt;
&lt;br /&gt;
You send requests like this: &lt;br /&gt;
&amp;lt;pre&amp;gt;sendtext(&amp;quot;irc&amp;quot;, &amp;quot;command&amp;quot;, &amp;quot;params&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
Like any other IRC server, you need to log in before you can use it. &lt;br /&gt;
This is quite simply done. From your NPC, use the following command: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sendtext(&amp;quot;irc&amp;quot;, &amp;quot;login&amp;quot;, &amp;quot;nickname&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' The nickname behaviour is different on the serverside. If you are logging in from the serverside, your nickname MUST begin with Graal, EventsBot or IRCBot. If you do not provide a valid nickname, then a suitable name (like IRCBot_2) will be automatically assigned and your nickname ignored. &lt;br /&gt;
Now, with any luck, you will have been logged in successfully!&amp;lt;br&amp;gt;&lt;br /&gt;
'''NOTE2:''' There is also the command requesttext(texttype,textoption), but it is not used for irc communication since most irc commands require additional data.&lt;br /&gt;
&lt;br /&gt;
== Joining a Channel ==&lt;br /&gt;
Now, you could probably get away with not joining a channel if you felt it necessary, but that would make communicating with you hard. So, why not join a channel? Joining and leaving channels is much like, again, in normal IRC. You sendtext(&amp;quot;irc&amp;quot;, &amp;quot;join&amp;quot;, &amp;quot;#channame&amp;quot;) to join a channel, and you sendtext(&amp;quot;irc&amp;quot;, &amp;quot;part&amp;quot;, &amp;quot;#channame&amp;quot;) to leave one. &lt;br /&gt;
&lt;br /&gt;
You can be in multiple channels, however, if you are writing a bot, you should probably make sure that you are always replying to the correct channel. I suppose the same applies to if you are writing a client - make sure you are sending to the right channel! &lt;br /&gt;
&lt;br /&gt;
== Receiving Information ==&lt;br /&gt;
Information from the IRC server comes to you in the form of onReceiveText(),providing you have logged into the server first. So, you will want to make sure that your script is receiving the information, or you might as well talk to a nice stone. I am not sure that it will help you, however. &lt;br /&gt;
&lt;br /&gt;
Now, earlier in the document, I said about the onReceiveText structure. &lt;br /&gt;
Just for reference, it looks like this: &lt;br /&gt;
&amp;lt;pre&amp;gt;function onReceiveText(texttype, textoptions, textlines)&amp;lt;/pre&amp;gt;&lt;br /&gt;
To ensure that you are only receiving information from the IRC server, you should put an if check to check that the texttype is always &amp;quot;irc&amp;quot;: &lt;br /&gt;
&amp;lt;pre&amp;gt;if (texttype == &amp;quot;irc&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
 // Let's do this if we get IRC data&lt;br /&gt;
} &lt;br /&gt;
else echo(&amp;quot;I am receiving non-IRC data!&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''NOTE:''' Commands like &amp;quot;privmsg&amp;quot; will be broadcasted to the whole channel, and will be sent back to you in the process. &amp;quot;join&amp;quot; and &amp;quot;part&amp;quot; are also sent to you to confirm that you have joined a channel, but can also be used for kicking.&lt;br /&gt;
&lt;br /&gt;
The textoptions will equal the command type, such as &amp;quot;join&amp;quot;, &amp;quot;part&amp;quot; or whatever. &lt;br /&gt;
&lt;br /&gt;
So, you will want next to check what kind of information is being sent to you: &lt;br /&gt;
&amp;lt;pre&amp;gt;if (textoptions == &amp;quot;join&amp;quot;) echo(&amp;quot;You joined the channel successfully!&amp;quot;);&lt;br /&gt;
if (textoptions == &amp;quot;part&amp;quot;) echo(&amp;quot;You left successfully&amp;quot;);&lt;br /&gt;
if (textoptions == &amp;quot;privmsg&amp;quot;) echo(&amp;quot;Message!&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;quot;privmsg&amp;quot; differs here - it contains messages from anyone, not just yourself. I'll explain about &amp;quot;privmsg&amp;quot; in a second. To know who is joining or leaving your channel you need to handle the &amp;quot;addchanneluser&amp;quot; and &amp;quot;deletechanneluser&amp;quot; types.&lt;br /&gt;
&lt;br /&gt;
You may also receive information of the &amp;quot;notice&amp;quot; or &amp;quot;topic&amp;quot; types. These aren't so important yet and will be explained later.&lt;br /&gt;
&lt;br /&gt;
== Working With Messages Specifically ==&lt;br /&gt;
The type you will most likely be interested in receiving is the &amp;quot;privmsg&amp;quot; command. This is the most complicated, as if it isn't used correctly, you'll end up no further forward then you were at the beginning of this section. &lt;br /&gt;
* When you send a &amp;quot;privmsg&amp;quot;, you send the destination and the message.&lt;br /&gt;
* When you receive a &amp;quot;privmsg&amp;quot;, you receive the source, destination and message.&lt;br /&gt;
&lt;br /&gt;
So, let's assume that you've joined the channel #test. If you want to send a message to #test, you would use the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sendtext(&amp;quot;irc&amp;quot;, &amp;quot;privmsg&amp;quot;, {&amp;quot;#test&amp;quot;, &amp;quot;THIS IS MY MESSAGE&amp;quot;});&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A sensible idea would be to create a function that makes that mildly less tedious, so let's use this for example: &lt;br /&gt;
&amp;lt;pre&amp;gt;function send(dest, msg) &lt;br /&gt;
  sendtext(&amp;quot;irc&amp;quot;, &amp;quot;privmsg&amp;quot;, {dest, msg});&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now, you can just use send(&amp;quot;#test&amp;quot;, &amp;quot;lolmsg&amp;quot;); to send a message to a channel or user. &lt;br /&gt;
&lt;br /&gt;
However! Like I said before with &amp;quot;privmsg&amp;quot;, what you get back will not be the same! &lt;br /&gt;
&lt;br /&gt;
Instead of receiving {&amp;quot;destination&amp;quot;,&amp;quot;message&amp;quot;}, you will get {&amp;quot;source&amp;quot;,&amp;quot;destination&amp;quot;,&amp;quot;message&amp;quot;}, where source is the nickname that you logged in with. This allows you to find out who sent a message in the case that you are writing a client script, or for using people's names as an identity, say, with a bot. &lt;br /&gt;
&lt;br /&gt;
So, what about parsing an incoming privmsg? &lt;br /&gt;
&amp;lt;pre&amp;gt;function onReceiveText(texttype, textoptions, textlines)&lt;br /&gt;
{&lt;br /&gt;
 if (texttype == &amp;quot;irc&amp;quot;)&lt;br /&gt;
 {&lt;br /&gt;
   if (textoptions == &amp;quot;privmsg&amp;quot;)&lt;br /&gt;
   {&lt;br /&gt;
     // Do some stuff here&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
In the function, you can read who sent the message with textlines[0], where it was directed to with textlines[1] (say, #test) and the actual message with textlines[2].&lt;br /&gt;
&lt;br /&gt;
== Logging Out ==&lt;br /&gt;
If you are writing a client, or a bot that might have a reason to log out of the IRC server, you send a &amp;quot;logout&amp;quot; command like this: &lt;br /&gt;
&amp;lt;pre&amp;gt;sendtext(&amp;quot;irc&amp;quot;, &amp;quot;logout&amp;quot;, &amp;quot;&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''NOTE:''' The third parameter is ignored in this case.&lt;br /&gt;
&lt;br /&gt;
== Other IRC Commands ==&lt;br /&gt;
There are a couple of other IRC commands, such as ''TOPIC'' and ''NOTICE''. &lt;br /&gt;
&lt;br /&gt;
=== topic (Channel Topic) ===&lt;br /&gt;
''TOPIC'' commands are used to set the topic of a channel. This might be useful for you if you are writing a client, and simply uses this format: &lt;br /&gt;
&amp;lt;pre&amp;gt;sendtext(&amp;quot;irc&amp;quot;, &amp;quot;topic&amp;quot;, {&amp;quot;#channel&amp;quot;, &amp;quot;Topic goes here&amp;quot;});&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should also receive any ''TOPIC'' commands in the same format.&lt;br /&gt;
&lt;br /&gt;
=== notice (Notices) ===&lt;br /&gt;
''NOTICE'' is similar to ''PRIVMSG'', but is considered less important, and while ''PRIVMSG'' to a single player is automatically converted into a regular [[PM]], ''NOTICE'' is not, and can so be used for sending information back to the user. The events bot is using ''NOTICE'' commands for event management.&lt;br /&gt;
&lt;br /&gt;
=== addchanneluser (Channel Join Notifications) ===&lt;br /&gt;
''ADDCHANNELUSER'' is received when a new user joins a channel. The received data contains the channel name, irc nick, [[Server|Graal server]] and account name of the new user.&lt;br /&gt;
&lt;br /&gt;
=== deletechanneluser (Channel Part Notifications) ===&lt;br /&gt;
''DELETECHANNELUSER'' is received when a user leaves a channel. Only the channel name and the irc nick of the leaving user are received.&lt;br /&gt;
&lt;br /&gt;
== Multiple bots on one machine ==&lt;br /&gt;
It is possible to have more than one irc bot per machine - on the client you need to use two different weapon scripts which both login to the irc, on serverside you must use two independent database npcs or weapon scripts which both login to the irc and possibly use different nicknames.&lt;br /&gt;
&lt;br /&gt;
= Extra Information =&lt;br /&gt;
== Events Bots ==&lt;br /&gt;
For making it possible that events from your [[server]] are displayed on the global events list of [[Graal4]], the server needs to have an '''EventsBot'''. That is an irc bot with a name starting with EventsBot. That [[NPC|npc]] or weapon npc automatically gets information about when events should be started. It needs to login to the irc and then wait for instructions using '''onReceiveText'''. If there is no EventsBot for the server, then events will not work for it. The EventsBot also needs to send some information to the IRCBot about who is [[Events Team|Events Admin]] on the server, and which channel should be used for talking about the events. That must be done as answer to a &amp;quot;!eventsbotlogin&amp;quot; message from the IRC Bot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function onCreated() doConnect();&lt;br /&gt;
function onInitialized() doConnect();&lt;br /&gt;
function onServerListerConnect() doConnect();&lt;br /&gt;
&lt;br /&gt;
function doConnect()&lt;br /&gt;
{&lt;br /&gt;
  sendtext(&amp;quot;irc&amp;quot;, &amp;quot;login&amp;quot;, &amp;quot;EventsBot&amp;quot;);&lt;br /&gt;
  sendtext(&amp;quot;irc&amp;quot;, &amp;quot;privmsg&amp;quot;, {&amp;quot;IRCBot&amp;quot;, &amp;quot;!resetevents&amp;quot;});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function onReceiveText(texttype,textoption,textlines)&lt;br /&gt;
{&lt;br /&gt;
  if (texttype == &amp;quot;irc&amp;quot; &amp;amp;&amp;amp; textoption == &amp;quot;privmsg&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
  textlines[0] == &amp;quot;IRCBot&amp;quot; &amp;amp;&amp;amp; textlines[2] == &amp;quot;!eventsbotlogin&amp;quot;)&lt;br /&gt;
  {&lt;br /&gt;
    sendtext(&amp;quot;irc&amp;quot;, &amp;quot;privmsg&amp;quot;, {&amp;quot;IRCBot&amp;quot;, {&amp;quot;!eventadmins&amp;quot;, &amp;quot;AccountName&amp;quot;, &amp;quot;AccountName2&amp;quot;}});&lt;br /&gt;
    sendtext(&amp;quot;irc&amp;quot;, &amp;quot;privmsg&amp;quot;, {&amp;quot;IRCBot&amp;quot;, {&amp;quot;!eventchannel&amp;quot;, &amp;quot;#ChannelName&amp;quot;}});&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The EventsBot will also need to start events on the server, and tell the IRCbot about the status of the events.&lt;br /&gt;
&lt;br /&gt;
== Quick Reference ==&lt;br /&gt;
Here are some quick reference notes.&lt;br /&gt;
&lt;br /&gt;
=== Outgoing data ===&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;pre&amp;gt;sendtext(&amp;quot;irc&amp;quot;, command, parameters)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Format:&lt;br /&gt;
* '''command:''' ''parameters'' - description&lt;br /&gt;
Outgoing data:&lt;br /&gt;
* '''login:''' ''name'' - Connects to the IRC using name as the connection's nickname&lt;br /&gt;
* '''logout:''' ''&amp;quot;&amp;quot;'' - Disconnects from the IRC&lt;br /&gt;
* '''privmsg:''' ''{destination, message}'' - Sends a message to a channel or user&lt;br /&gt;
* '''notice:''' ''{destination, message}'' - Sends a &amp;quot;notice&amp;quot; message to a channel or user&lt;br /&gt;
* '''join:''' ''channelname'' - Join channelname&lt;br /&gt;
* '''part:''' ''channelname'' - Leave channelname&lt;br /&gt;
* '''topic:''' ''{channel, topic}'' - Set the topic for the channel&lt;br /&gt;
&lt;br /&gt;
=== Incoming data ===&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;pre&amp;gt;function onReceiveText(texttype, textoptions, textlines)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Format:&lt;br /&gt;
* '''textoptions:''' ''textlines'' - description&lt;br /&gt;
Note:&lt;br /&gt;
''The texttype will always be &amp;quot;irc&amp;quot; when information is sent from the IRC server.''&lt;br /&gt;
Incoming data:&lt;br /&gt;
* '''privmsg:''' ''{source, destination, message}'' - Sends the ''source'' of a message, where the message was directed to (''destination'') and the message&lt;br /&gt;
* '''notice:''' ''{source, destination, message}'' - Sends the ''source'' of a notice, where the notice was directed to (''destination'') and the notice&lt;br /&gt;
* '''addchanneluser:''' ''{channel, name, (servername), (account)}'' - Mechanism used to alert IRC scripts when users have joined the current channel, and lists users in the channel upon join. Shows the ''channel'' that ''name'' joined.&lt;br /&gt;
* '''deletechanneluser:''' ''{channel, name}'' - Mechanism used to alert IRC scripts when users have left the current channel&lt;br /&gt;
* '''join:''' ''{channel}'' - Mechanism used to confirm that you have joined ''channel''&lt;br /&gt;
* '''part:''' ''{channel}'' - Mechanism used to confirm that you have left ''channel''&lt;br /&gt;
&lt;br /&gt;
=== Nickname Rules ===&lt;br /&gt;
If you are connecting from the serverside, you must start your nickname with one of the following:&lt;br /&gt;
* IRCBot_&lt;br /&gt;
* EventsBot_&lt;br /&gt;
* Graal_&lt;br /&gt;
If an invalid nickname is provided from the serverside, you will automatically be assigned with an IRCBot_'''n''' nickname.&lt;br /&gt;
&lt;br /&gt;
Nicknames should not contain spaces.&lt;br /&gt;
&lt;br /&gt;
== IRCBots for Old Scripting ==&lt;br /&gt;
It is now possible for servers using the old scripting engine to do IRCBots using the commands sendtext, requesttext, and the &amp;quot;if (receivetext)&amp;quot; event. A script example for a simple EventsBot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (created || initialized || serverlisterconnect) {&lt;br /&gt;
  doConnect();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function doConnect() {&lt;br /&gt;
  sendtext irc,logout,;&lt;br /&gt;
  sendtext irc,login,EventsBot_OldScript;&lt;br /&gt;
  setstring this.options,;&lt;br /&gt;
  addstring this.options,IRCBot;&lt;br /&gt;
  addstring this.options,!resetevents;&lt;br /&gt;
  sendtext irc,privmsg,#s(this.options);&lt;br /&gt;
  sendtext irc,join,#OldScriptTest;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if (receivetext) {&lt;br /&gt;
  sendtonc irc: #p(0) - #p(1) - #p(2) - #p(3) - #p(4) - #p(5) - #p(6) - #p(7);&lt;br /&gt;
  if (strequals(#p(0),irc) &amp;amp;&amp;amp; strequals(#p(1),privmsg) &amp;amp;&amp;amp;&lt;br /&gt;
      strequals(#p(2),IRCBot)) {&lt;br /&gt;
    if (strequals(#p(4),!eventsbotlogin)) {&lt;br /&gt;
      setstring this.options,;&lt;br /&gt;
      addstring this.options,IRCBot;&lt;br /&gt;
        setstring this.options2,;&lt;br /&gt;
        addstring this.options2,!eventadmins;&lt;br /&gt;
        addstring this.options2,Stefan;&lt;br /&gt;
        addstring this.options2,Spark910;&lt;br /&gt;
      addstring this.options,#s(this.options2);&lt;br /&gt;
      sendtext irc,privmsg,#s(this.options);&lt;br /&gt;
&lt;br /&gt;
      setstring this.options,;&lt;br /&gt;
      addstring this.options,IRCBot;&lt;br /&gt;
        setstring this.options2,;&lt;br /&gt;
        addstring this.options2,!eventchannel;&lt;br /&gt;
        addstring this.options2,#OldScriptTest;&lt;br /&gt;
      addstring this.options,#s(this.options2);&lt;br /&gt;
      sendtext irc,privmsg,#s(this.options);&lt;br /&gt;
    } else if (strequals(#p(4),!startevent)) {&lt;br /&gt;
    } else if (strequals(#p(4),!resetevent)) {&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also need to add a few script lines to the Control-NPC because in old scripting only the Control-NPC gets an event if the serverlister (=irc server) is reconnecting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (serverlisterconnect) {&lt;br /&gt;
  with (getnpc(EventsBot)) {&lt;br /&gt;
    // Forwarding the event to the Events Bot&lt;br /&gt;
    callnpc -1,serverlisterconnect;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>DeathDark</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Graal_IRC&amp;diff=6877</id>
		<title>Creation/Dev/Graal IRC</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Graal_IRC&amp;diff=6877"/>
		<updated>2006-04-24T03:18:52Z</updated>

		<summary type="html">&lt;p&gt;DeathDark: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by [[User:Skyld|Skyld]], 26/07/2005. Edits made by [[User:Stefan|Stefan]] since. Hooray for [[User:Stefan|Stefan]]!&lt;br /&gt;
= IRC Information =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Graal 4 comes with a built-in form of IRC to allow people to chat between servers in rooms. Like IRC. But not, if you get my point. Now, there are ways in which you can use this IRC system to your advantage. Perhaps you want to script some kind of client for your players to use, or perhaps you want to script some kind of bot. Either way, the communication is simple.&lt;br /&gt;
&lt;br /&gt;
=== Links===&lt;br /&gt;
* [http://forums.graalonline.com/forums/showthread.php?t=60809 Graal v4 IRC Problem Information Thread]&lt;br /&gt;
* [[Creation/Dev/Troubleshooting Graal v4 IRC|Troubleshooting Graal v4 IRC]]&lt;br /&gt;
&lt;br /&gt;
HELLO!&lt;br /&gt;
&lt;br /&gt;
== Logging In ==&lt;br /&gt;
To use the IRC, you just need to have basic knowledge of sendtext() and onReceiveText(). The fundamentals are that you have three parameters for each outgoing and incoming message. If you have used onReceiveText() before, you are likely to know &lt;br /&gt;
it has a structure like this: &lt;br /&gt;
&amp;lt;pre&amp;gt;function onReceiveText(texttype, textoptions, textlines)&amp;lt;/pre&amp;gt;&lt;br /&gt;
The texttype will always equal &amp;quot;irc&amp;quot; if it is an IRC command. This helps to filter out unwanted commands from, say, the scripted RC. The textoptions will always equal the command that you've sent, and the textlines will equal any parameters necessary for that command. &lt;br /&gt;
&lt;br /&gt;
An important thing to note is that the IRC server will not throw any errors at you if you make a mistake with a command, so you should ensure throughly that your requests are correct. &lt;br /&gt;
&lt;br /&gt;
You send requests like this: &lt;br /&gt;
&amp;lt;pre&amp;gt;sendtext(&amp;quot;irc&amp;quot;, &amp;quot;command&amp;quot;, &amp;quot;params&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
Like any other IRC server, you need to log in before you can use it. &lt;br /&gt;
This is quite simply done. From your NPC, use the following command: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sendtext(&amp;quot;irc&amp;quot;, &amp;quot;login&amp;quot;, &amp;quot;nickname&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' The nickname behaviour is different on the serverside. If you are logging in from the serverside, your nickname MUST begin with Graal, EventsBot or IRCBot. If you do not provide a valid nickname, then a suitable name (like IRCBot_2) will be automatically assigned and your nickname ignored. &lt;br /&gt;
Now, with any luck, you will have been logged in successfully!&amp;lt;br&amp;gt;&lt;br /&gt;
'''NOTE2:''' There is also the command requesttext(texttype,textoption), but it is not used for irc communication since most irc commands require additional data.&lt;br /&gt;
&lt;br /&gt;
== Joining a Channel ==&lt;br /&gt;
Now, you could probably get away with not joining a channel if you felt it necessary, but that would make communicating with you hard. So, why not join a channel? Joining and leaving channels is much like, again, in normal IRC. You sendtext(&amp;quot;irc&amp;quot;, &amp;quot;join&amp;quot;, &amp;quot;#channame&amp;quot;) to join a channel, and you sendtext(&amp;quot;irc&amp;quot;, &amp;quot;part&amp;quot;, &amp;quot;#channame&amp;quot;) to leave one. &lt;br /&gt;
&lt;br /&gt;
You can be in multiple channels, however, if you are writing a bot, you should probably make sure that you are always replying to the correct channel. I suppose the same applies to if you are writing a client - make sure you are sending to the right channel! &lt;br /&gt;
&lt;br /&gt;
== Receiving Information ==&lt;br /&gt;
Information from the IRC server comes to you in the form of onReceiveText(),providing you have logged into the server first. So, you will want to make sure that your script is receiving the information, or you might as well talk to a nice stone. I am not sure that it will help you, however. &lt;br /&gt;
&lt;br /&gt;
Now, earlier in the document, I said about the onReceiveText structure. &lt;br /&gt;
Just for reference, it looks like this: &lt;br /&gt;
&amp;lt;pre&amp;gt;function onReceiveText(texttype, textoptions, textlines)&amp;lt;/pre&amp;gt;&lt;br /&gt;
To ensure that you are only receiving information from the IRC server, you should put an if check to check that the texttype is always &amp;quot;irc&amp;quot;: &lt;br /&gt;
&amp;lt;pre&amp;gt;if (texttype == &amp;quot;irc&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
 // Let's do this if we get IRC data&lt;br /&gt;
} &lt;br /&gt;
else echo(&amp;quot;I am receiving non-IRC data!&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''NOTE:''' Commands like &amp;quot;privmsg&amp;quot; will be broadcasted to the whole channel, and will be sent back to you in the process. &amp;quot;join&amp;quot; and &amp;quot;part&amp;quot; are also sent to you to confirm that you have joined a channel, but can also be used for kicking.&lt;br /&gt;
&lt;br /&gt;
The textoptions will equal the command type, such as &amp;quot;join&amp;quot;, &amp;quot;part&amp;quot; or whatever. &lt;br /&gt;
&lt;br /&gt;
So, you will want next to check what kind of information is being sent to you: &lt;br /&gt;
&amp;lt;pre&amp;gt;if (textoptions == &amp;quot;join&amp;quot;) echo(&amp;quot;You joined the channel successfully!&amp;quot;);&lt;br /&gt;
if (textoptions == &amp;quot;part&amp;quot;) echo(&amp;quot;You left successfully&amp;quot;);&lt;br /&gt;
if (textoptions == &amp;quot;privmsg&amp;quot;) echo(&amp;quot;Message!&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;quot;privmsg&amp;quot; differs here - it contains messages from anyone, not just yourself. I'll explain about &amp;quot;privmsg&amp;quot; in a second. To know who is joining or leaving your channel you need to handle the &amp;quot;addchanneluser&amp;quot; and &amp;quot;deletechanneluser&amp;quot; types.&lt;br /&gt;
&lt;br /&gt;
You may also receive information of the &amp;quot;notice&amp;quot; or &amp;quot;topic&amp;quot; types. These aren't so important yet and will be explained later.&lt;br /&gt;
&lt;br /&gt;
== Working With Messages Specifically ==&lt;br /&gt;
The type you will most likely be interested in receiving is the &amp;quot;privmsg&amp;quot; command. This is the most complicated, as if it isn't used correctly, you'll end up no further forward then you were at the beginning of this section. &lt;br /&gt;
* When you send a &amp;quot;privmsg&amp;quot;, you send the destination and the message.&lt;br /&gt;
* When you receive a &amp;quot;privmsg&amp;quot;, you receive the source, destination and message.&lt;br /&gt;
&lt;br /&gt;
So, let's assume that you've joined the channel #test. If you want to send a message to #test, you would use the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sendtext(&amp;quot;irc&amp;quot;, &amp;quot;privmsg&amp;quot;, {&amp;quot;#test&amp;quot;, &amp;quot;THIS IS MY MESSAGE&amp;quot;});&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A sensible idea would be to create a function that makes that mildly less tedious, so let's use this for example: &lt;br /&gt;
&amp;lt;pre&amp;gt;function send(dest, msg) &lt;br /&gt;
  sendtext(&amp;quot;irc&amp;quot;, &amp;quot;privmsg&amp;quot;, {dest, msg});&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now, you can just use send(&amp;quot;#test&amp;quot;, &amp;quot;lolmsg&amp;quot;); to send a message to a channel or user. &lt;br /&gt;
&lt;br /&gt;
However! Like I said before with &amp;quot;privmsg&amp;quot;, what you get back will not be the same! &lt;br /&gt;
&lt;br /&gt;
Instead of receiving {&amp;quot;destination&amp;quot;,&amp;quot;message&amp;quot;}, you will get {&amp;quot;source&amp;quot;,&amp;quot;destination&amp;quot;,&amp;quot;message&amp;quot;}, where source is the nickname that you logged in with. This allows you to find out who sent a message in the case that you are writing a client script, or for using people's names as an identity, say, with a bot. &lt;br /&gt;
&lt;br /&gt;
So, what about parsing an incoming privmsg? &lt;br /&gt;
&amp;lt;pre&amp;gt;function onReceiveText(texttype, textoptions, textlines)&lt;br /&gt;
{&lt;br /&gt;
 if (texttype == &amp;quot;irc&amp;quot;)&lt;br /&gt;
 {&lt;br /&gt;
   if (textoptions == &amp;quot;privmsg&amp;quot;)&lt;br /&gt;
   {&lt;br /&gt;
     // Do some stuff here&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
In the function, you can read who sent the message with textlines[0], where it was directed to with textlines[1] (say, #test) and the actual message with textlines[2].&lt;br /&gt;
&lt;br /&gt;
== Logging Out ==&lt;br /&gt;
If you are writing a client, or a bot that might have a reason to log out of the IRC server, you send a &amp;quot;logout&amp;quot; command like this: &lt;br /&gt;
&amp;lt;pre&amp;gt;sendtext(&amp;quot;irc&amp;quot;, &amp;quot;logout&amp;quot;, &amp;quot;&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''NOTE:''' The third parameter is ignored in this case.&lt;br /&gt;
&lt;br /&gt;
== Other IRC Commands ==&lt;br /&gt;
There are a couple of other IRC commands, such as ''TOPIC'' and ''NOTICE''. &lt;br /&gt;
&lt;br /&gt;
=== topic (Channel Topic) ===&lt;br /&gt;
''TOPIC'' commands are used to set the topic of a channel. This might be useful for you if you are writing a client, and simply uses this format: &lt;br /&gt;
&amp;lt;pre&amp;gt;sendtext(&amp;quot;irc&amp;quot;, &amp;quot;topic&amp;quot;, {&amp;quot;#channel&amp;quot;, &amp;quot;Topic goes here&amp;quot;});&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should also receive any ''TOPIC'' commands in the same format.&lt;br /&gt;
&lt;br /&gt;
=== notice (Notices) ===&lt;br /&gt;
''NOTICE'' is similar to ''PRIVMSG'', but is considered less important, and while ''PRIVMSG'' to a single player is automatically converted into a regular [[PM]], ''NOTICE'' is not, and can so be used for sending information back to the user. The events bot is using ''NOTICE'' commands for event management.&lt;br /&gt;
&lt;br /&gt;
=== addchanneluser (Channel Join Notifications) ===&lt;br /&gt;
''ADDCHANNELUSER'' is received when a new user joins a channel. The received data contains the channel name, irc nick, [[Server|Graal server]] and account name of the new user.&lt;br /&gt;
&lt;br /&gt;
=== deletechanneluser (Channel Part Notifications) ===&lt;br /&gt;
''DELETECHANNELUSER'' is received when a user leaves a channel. Only the channel name and the irc nick of the leaving user are received.&lt;br /&gt;
&lt;br /&gt;
== Multiple bots on one machine ==&lt;br /&gt;
It is possible to have more than one irc bot per machine - on the client you need to use two different weapon scripts which both login to the irc, on serverside you must use two independent database npcs or weapon scripts which both login to the irc and possibly use different nicknames.&lt;br /&gt;
&lt;br /&gt;
= Extra Information =&lt;br /&gt;
== Events Bots ==&lt;br /&gt;
For making it possible that events from your [[server]] are displayed on the global events list of [[Graal4]], the server needs to have an '''EventsBot'''. That is an irc bot with a name starting with EventsBot. That [[NPC|npc]] or weapon npc automatically gets information about when events should be started. It needs to login to the irc and then wait for instructions using '''onReceiveText'''. If there is no EventsBot for the server, then events will not work for it. The EventsBot also needs to send some information to the IRCBot about who is [[Events Team|Events Admin]] on the server, and which channel should be used for talking about the events. That must be done as answer to a &amp;quot;!eventsbotlogin&amp;quot; message from the IRC Bot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function onCreated() doConnect();&lt;br /&gt;
function onInitialized() doConnect();&lt;br /&gt;
function onServerListerConnect() doConnect();&lt;br /&gt;
&lt;br /&gt;
function doConnect()&lt;br /&gt;
{&lt;br /&gt;
  sendtext(&amp;quot;irc&amp;quot;, &amp;quot;login&amp;quot;, &amp;quot;EventsBot&amp;quot;);&lt;br /&gt;
  sendtext(&amp;quot;irc&amp;quot;, &amp;quot;privmsg&amp;quot;, {&amp;quot;IRCBot&amp;quot;, &amp;quot;!resetevents&amp;quot;});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function onReceiveText(texttype,textoption,textlines)&lt;br /&gt;
{&lt;br /&gt;
  if (texttype == &amp;quot;irc&amp;quot; &amp;amp;&amp;amp; textoption == &amp;quot;privmsg&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
  textlines[0] == &amp;quot;IRCBot&amp;quot; &amp;amp;&amp;amp; textlines[2] == &amp;quot;!eventsbotlogin&amp;quot;)&lt;br /&gt;
  {&lt;br /&gt;
    sendtext(&amp;quot;irc&amp;quot;, &amp;quot;privmsg&amp;quot;, {&amp;quot;IRCBot&amp;quot;, {&amp;quot;!eventadmins&amp;quot;, &amp;quot;AccountName&amp;quot;, &amp;quot;AccountName2&amp;quot;}});&lt;br /&gt;
    sendtext(&amp;quot;irc&amp;quot;, &amp;quot;privmsg&amp;quot;, {&amp;quot;IRCBot&amp;quot;, {&amp;quot;!eventchannel&amp;quot;, &amp;quot;#ChannelName&amp;quot;}});&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The EventsBot will also need to start events on the server, and tell the IRCbot about the status of the events.&lt;br /&gt;
&lt;br /&gt;
== Quick Reference ==&lt;br /&gt;
Here are some quick reference notes.&lt;br /&gt;
&lt;br /&gt;
=== Outgoing data ===&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;pre&amp;gt;sendtext(&amp;quot;irc&amp;quot;, command, parameters)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Format:&lt;br /&gt;
* '''command:''' ''parameters'' - description&lt;br /&gt;
Outgoing data:&lt;br /&gt;
* '''login:''' ''name'' - Connects to the IRC using name as the connection's nickname&lt;br /&gt;
* '''logout:''' ''&amp;quot;&amp;quot;'' - Disconnects from the IRC&lt;br /&gt;
* '''privmsg:''' ''{destination, message}'' - Sends a message to a channel or user&lt;br /&gt;
* '''notice:''' ''{destination, message}'' - Sends a &amp;quot;notice&amp;quot; message to a channel or user&lt;br /&gt;
* '''join:''' ''channelname'' - Join channelname&lt;br /&gt;
* '''part:''' ''channelname'' - Leave channelname&lt;br /&gt;
* '''topic:''' ''{channel, topic}'' - Set the topic for the channel&lt;br /&gt;
&lt;br /&gt;
=== Incoming data ===&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;pre&amp;gt;function onReceiveText(texttype, textoptions, textlines)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Format:&lt;br /&gt;
* '''textoptions:''' ''textlines'' - description&lt;br /&gt;
Note:&lt;br /&gt;
''The texttype will always be &amp;quot;irc&amp;quot; when information is sent from the IRC server.''&lt;br /&gt;
Incoming data:&lt;br /&gt;
* '''privmsg:''' ''{source, destination, message}'' - Sends the ''source'' of a message, where the message was directed to (''destination'') and the message&lt;br /&gt;
* '''notice:''' ''{source, destination, message}'' - Sends the ''source'' of a notice, where the notice was directed to (''destination'') and the notice&lt;br /&gt;
* '''addchanneluser:''' ''{channel, name, (servername), (account)}'' - Mechanism used to alert IRC scripts when users have joined the current channel, and lists users in the channel upon join. Shows the ''channel'' that ''name'' joined.&lt;br /&gt;
* '''deletechanneluser:''' ''{channel, name}'' - Mechanism used to alert IRC scripts when users have left the current channel&lt;br /&gt;
* '''join:''' ''{channel}'' - Mechanism used to confirm that you have joined ''channel''&lt;br /&gt;
* '''part:''' ''{channel}'' - Mechanism used to confirm that you have left ''channel''&lt;br /&gt;
&lt;br /&gt;
=== Nickname Rules ===&lt;br /&gt;
If you are connecting from the serverside, you must start your nickname with one of the following:&lt;br /&gt;
* IRCBot_&lt;br /&gt;
* EventsBot_&lt;br /&gt;
* Graal_&lt;br /&gt;
If an invalid nickname is provided from the serverside, you will automatically be assigned with an IRCBot_'''n''' nickname.&lt;br /&gt;
&lt;br /&gt;
Nicknames should not contain spaces.&lt;br /&gt;
&lt;br /&gt;
== IRCBots for Old Scripting ==&lt;br /&gt;
It is now possible for servers using the old scripting engine to do IRCBots using the commands sendtext, requesttext, and the &amp;quot;if (receivetext)&amp;quot; event. A script example for a simple EventsBot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (created || initialized || serverlisterconnect) {&lt;br /&gt;
  doConnect();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function doConnect() {&lt;br /&gt;
  sendtext irc,logout,;&lt;br /&gt;
  sendtext irc,login,EventsBot_OldScript;&lt;br /&gt;
  setstring this.options,;&lt;br /&gt;
  addstring this.options,IRCBot;&lt;br /&gt;
  addstring this.options,!resetevents;&lt;br /&gt;
  sendtext irc,privmsg,#s(this.options);&lt;br /&gt;
  sendtext irc,join,#OldScriptTest;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if (receivetext) {&lt;br /&gt;
  sendtonc irc: #p(0) - #p(1) - #p(2) - #p(3) - #p(4) - #p(5) - #p(6) - #p(7);&lt;br /&gt;
  if (strequals(#p(0),irc) &amp;amp;&amp;amp; strequals(#p(1),privmsg) &amp;amp;&amp;amp;&lt;br /&gt;
      strequals(#p(2),IRCBot)) {&lt;br /&gt;
    if (strequals(#p(4),!eventsbotlogin)) {&lt;br /&gt;
      setstring this.options,;&lt;br /&gt;
      addstring this.options,IRCBot;&lt;br /&gt;
        setstring this.options2,;&lt;br /&gt;
        addstring this.options2,!eventadmins;&lt;br /&gt;
        addstring this.options2,Stefan;&lt;br /&gt;
        addstring this.options2,Spark910;&lt;br /&gt;
      addstring this.options,#s(this.options2);&lt;br /&gt;
      sendtext irc,privmsg,#s(this.options);&lt;br /&gt;
&lt;br /&gt;
      setstring this.options,;&lt;br /&gt;
      addstring this.options,IRCBot;&lt;br /&gt;
        setstring this.options2,;&lt;br /&gt;
        addstring this.options2,!eventchannel;&lt;br /&gt;
        addstring this.options2,#OldScriptTest;&lt;br /&gt;
      addstring this.options,#s(this.options2);&lt;br /&gt;
      sendtext irc,privmsg,#s(this.options);&lt;br /&gt;
    } else if (strequals(#p(4),!startevent)) {&lt;br /&gt;
    } else if (strequals(#p(4),!resetevent)) {&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also need to add a few script lines to the Control-NPC because in old scripting only the Control-NPC gets an event if the serverlister (=irc server) is reconnecting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (serverlisterconnect) {&lt;br /&gt;
  with (getnpc(EventsBot)) {&lt;br /&gt;
    // Forwarding the event to the Events Bot&lt;br /&gt;
    callnpc -1,serverlisterconnect;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>DeathDark</name></author>
	</entry>
</feed>