If there is an issue with selecting a race of multiple words then the issue would reside in the core functionality of MQ2 since It just uses spawnsearch.
In the logic the decision for what to kill is set here.
C++:
else if (!MyTargetID) {
GemIndex = 0;
MyTargetID = SearchSpawns(searchString); <~~~~~~~~~~~~~~Here
Mob = (PSPAWNINFO)GetSpawnByID(MyTargetID);
}
and "searchString" is set using the following.
C++:
void UpdateSearchString()
{
sprintf_s(searchString, MAX_STRING, "npc noalert 1 radius %i zradius %i targetable loc %f %f %f %s", Radius, ZRadius, AnchorX, AnchorY, AnchorZ, FarmMob);
}
So let's say that we're searching for "race dark elf" according to the users input.
radius is 1000
zradius is 300
and our "anchor" (start location) is 1, 2, 3
then we would effectively be doing
Then the result for the plugins search, and the result for a Spawn TLO query is the same.
Code:
/echo ${Spawn[npc noalert 1 radius 1000 zradius 300 targetable loc 1 2 3 race dark elf].Name}
The snippet of code that gets the race from the search is
C++:
else if (!_stricmp(szArg, "race")) {
GetArg(szArg, szRest, 1);
strcpy_s(pSearchSpawn->szRace, szArg);
szRest = GetNextArg(szRest, 1);
}
Since GetArg uses a space to determine the seperation of arguments, and the number of arguements for race is unknown, it appears that it only supports a single word race. It's plausbile that I'm incorrect and there's a way to do multiple word races, but I'm not currently aware of the method needed to do so.