View Single Post
  #3  
Old 01-16-2014, 12:56 AM
Kingly_Krab
Administrator
 
Join Date: May 2013
Location: United States
Posts: 1,589
Default

This is pretty cool, although I don't believe you can use a # in a Perl script in the newer revisions of the source, as it comes up as unrecognized command. Here's the C++ for what I'm talking about.
I have personally tried #commands for my server and it doesn't work due to this code.
Code:
case 8: 
{ // /say
	if(message[0] == COMMAND_CHAR) 
	{
		if(command_dispatch(this, message) == -2) 
		{
			if(parse->PlayerHasQuestSub(EVENT_COMMAND)) 
			{
				int i = parse->EventPlayer(EVENT_COMMAND, this, message, 0);
				if(i != 0) 
				{
					Message(13, "Command '%s' not recognized.", message);
				}
			} 
			else 
			{
				Message(13, "Command '%s' not recognized.", message);
			}
		}
		break;
	}
	Mob* sender = this;
	if (GetPet() && GetPet()->FindType(SE_VoiceGraft))
		sender = GetPet();
	
	entity_list.ChannelMessage(sender, chan_num, language, lang_skill, message);
	parse->EventPlayer(EVENT_SAY, this, message, language);
	
	if (sender != this)
		break;
	
	if(quest_manager.ProximitySayInUse())
		entity_list.ProcessProximitySay(message, this, language);

	if (GetTarget() != 0 && GetTarget()->IsNPC()) 
	{
		if(!GetTarget()->CastToNPC()->IsEngaged()) 
		{
			CheckLDoNHail(GetTarget());
			CheckEmoteHail(GetTarget(), message);

			if(DistNoRootNoZ(*GetTarget()) <= 200) 
			{
				NPC *tar = GetTarget()->CastToNPC();
				parse->EventNPC(EVENT_SAY, tar->CastToNPC(), this, message, language);
				if(RuleB(TaskSystem, EnableTaskSystem)) 
				{
					if(UpdateTasksOnSpeakWith(tar->GetNPCTypeID())) 
					{
						tar->DoQuestPause(this);
					}
				}
			}
		}
		else 
		{
			if (DistNoRootNoZ(*GetTarget()) <= 200)
			{
				parse->EventNPC(EVENT_AGGRO_SAY, GetTarget()->CastToNPC(), this, message, language);
			}
		}
	}
	break;
}
Reply With Quote