如果该命令中有空格,为什么不起作用?
我想像alani hur up
和alani hur down
这样使用它,但是它不起作用,我尝试将命令重命名为alanihur
只是为了查看其是否存在其他问题,但是它确实起作用了,所以我做到了。
我为什么不能有空间?
blabla.h
bool Levitate(Creature* creature, const std::string& cmd, const std::string& param);
blabla.cpp
{"alani hur",&Commands::Levitate}
bool Commands::Levitate(Creature* creature, const std::string &cmd, const std::string ¶m)
{
if(param == "up"){
Position newPos = creature->getPosition();
newPos.z--;
if(g_game.internalTeleport(creature, newPos) == RET_NOERROR){
g_game.addMagicEffect(newPos, NM_ME_ENERGY_AREA);
return true;
}
}
else if(param == "down"){
Position newPos = creature->getPosition();
newPos.z++;
Tile* tile = g_game.getTile(newPos.x, newPos.y, newPos.z);
if(tile && tile->creatures.size() != 0){
newPos.x++;
}
if(g_game.internalTeleport(creature, newPos) == RET_NOERROR){
g_game.addMagicEffect(newPos, NM_ME_ENERGY_AREA);
return true;
}
}
return false;
}
十分感谢,请原谅我可怜的英语
最佳答案
如果您的程序使用令牌系统来解析命令,并且将空格视为定界符,那将是为什么空格具有这种效果的一种解释。