useItem( Socket, Nodes.item( i ).toElement(), true );
QDomElement Action = Nodes.item( i ).toElement(); useItem( Socket, Action, true );
bool checkSkill( UOXSOCKET Socket, QDomElement& Action ){	SI32 Minimum = 0;	SI32 Maximum = 1000;	UI08 Skill;	P_CHAR Character = currchar[ Socket ];	if( Character == NULL )		return false;	if( !Action.attributes().contains( "id" ) )		return false;	Skill = Action.attributeNode( "id" ).nodeValue().toUShort();		// Minimum and Maximum ARE optional	if( Action.attributes().contains( "min" ) )		Minimum = Action.attributeNode( "min" ).nodeValue().toInt();	if( Action.attributes().contains( "max" ) )		Maximum = Action.attributeNode( "max" ).nodeValue().toInt();	// We only make items depending on the server-setting	if( Character->baseskill[ Skill ] < Minimum ) 	{		// If the server owner wants it		//if( !SrvParams->BelowMinSkillFails() ) <<<<< DOESNT WORK ?!?!?		//{			sysmessage( Socket, "You lack the skill to make this item" );			return false;		//}				}	// Play the sound for the corresponding skill	playSkillSound( Socket, Skill, true );	if( ( Character->baseskill[ Skill ] >= Minimum ) && ( Skills->CheckSkill( Character, Skill, Minimum, Maximum ) ) )		return true;	// Handle the failure(!)	QString Message = "You did not manage to make the item";	// If there's a custom failure message display it instead of ours	if( Action.attributes().contains( "fail" ) )		Message = Action.attributeNode( "fail" ).nodeValue();	sysmessage( Socket, Message );	// After we notified the user use up 1/2 of the resources	QDomNodeList Nodes = Action.parentNode().childNodes();	for( SI32 i = 0; i < Nodes.count(); i++ )	{		// Only process Resource nodes		if( ( !Nodes.item( i ).isElement() ) || ( Nodes.item( i ).toElement().nodeName() != "useitem" ) )			continue;		// Process the Resource Node		useItem( Socket, Nodes.item( i ).toElement(), true );	}	return false;}