Commas haven't been able to be used in quest text because they are used as a delimiter for the command queue. The idea behind this is to always assume that quest::say and quest::echo take a single argument. Parser::ExCommands() seems to handle everything fine as long as num_args is set to 1 for these commands. Changes below:
zone/embparser.cpp, line 387, replace:
Code:
size_t num_args = std::count(args.begin(), args.end(), ',') + 1;
with:
Code:
size_t num_args = 1;
if (!(!strcmp(cmd.c_str(), "say") ||
!strcmp(cmd.c_str(), "echo") ))
for (const char *c = args.c_str(); *c; c++)
if (*c == ',')
num_args++;
I only did this for say and echo commands. If any others need this, they should be added easily. Also, as a side note, using std::count(), things were coming out funny (previous data hiding somewhere, don't know full details). Using the C-style delimiter count works.