如果它有空格,为什么这个命令不起作用?
我想像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;
}
非常感谢,并且在我的英语不好的情况下将其解雇了
答案 0 :(得分:1)
如果你的程序使用令牌系统来解析命令,并将空间视为分隔符,那么这就是为什么空格具有这种效果的一种解释。
答案 1 :(得分:1)
该命令被解析为一个String,然后,该空间产生了很大的不同。鉴于你正在研究这种类型的程序,你必须明白这一点。
如果你需要绝对分开alani和hur这两个词,你可以添加一个下划线,使其看起来像alani_hur。