TinTin++ Mud Client Scripts  
Get TinTin++ Mud Client at SourceForge.net. Fast, secure and Free Open Source software downloads
space
space
This is an example script showing how to use the telnet event handler to interact with a telnet server. ZMP is a data protocol to send out of bounds communication between a MUD server and MUD client. Similar protocols include MXP and MSSP.

space
#event {IAC WILL ZMP}
{
	#showme {<118>SEND IAC WILL ZMP};
	#send {\xFF\xFD\x5D\};

	#showme {<118>ZMP SEND zmp.ident (TinTin++ ZMP parser) (1.0) (Script for handling ZMP core commands.)};
	#send {\xFF\xFA\x5Dzmp.ident\x00TinTin++ ZMP parser\x001.0\x00Script for handling ZMP core commands.\x00\xFF\xF0\};

	#unevent {IAC WILL ZMP}
}

#event {IAC SB ZMP zmp.ident}
{
	#list zmp_ident ins -1 %0;
}

#event {IAC SB ZMP zmp.ident IAC SE}
{
	#showme <118>ZMP RECV zmp_ident ($zmp_ident[1]) ($zmp_ident[2]) ($zmp_ident[3]);

	#unevent {IAC SB ZMP zmp.ident};

	#unvar {zmp_ident}
}

#event {IAC SB ZMP zmp.ping IAC SE}
{
	#showme <118>ZMP RECV zmp.ping IAC SE;

	#format temp {%t} {%F %T};
	#showme <118>ZMP SEND zmp.time ($temp);
	#send {\xFF\xFA\x5Dzmp.time\x00$zmp_temp\xFF\xF0\}
}

#event {IAC SB ZMP zmp.time}
{
	#showme <118>ZMP RECV zmp.time (%0)
}

#event {IAC SB ZMP zmp.check}
{
	#showme <118>ZMP RECV zmp.check (%0);

	#regex {%0} {{zmp.ident|zmp.ping|zmp.time|zmp.check}}
	{
		zmp.support %0
	}
	{
		zmp.no-support %0
	}
}

#event {IAC SB ZMP zmp.input}
{
	#showme <118>ZMP RECV zmp.input (%0)
}

#alias {zmp.ping}
{
	#showme <118>ZMP SEND zmp.ping;

	#send {\xFF\xFA\x5Dzmp.ping\x00\xFF\xF0\}
}

#alias {zmp.support}
{
	#showme <118>ZMP SEND zmp.support (%0);
	#send {\xFF\xFA\x5Dzmp.support\x00%1\xFF\xF0\}
}

#alias {zmp.no-support}
{
	#showme <118>ZMP SEND zmp.no-support (%0);
	#send {\xFF\xFA\x5Dzmp.no-support\x00%1\xFF\xF0\}
}

#alias {zmp.debug}
{
	#ungag {^ZMP {SEND|RECV}}
}

#alias {zmp.no-debug}
{
	#gag {^ZMP {SEND|RECV}}
}