【发布时间】:2013-07-01 10:57:59
【问题描述】:
我正在尝试编写一段代码,它会喊出我输入的任何内容。
所以命令是'yell'
我希望能够输入'yell (whatever I want here)',它会大声喊出来。在朋友的帮助下,我设法完成了这项工作。但由于某种原因,它只会喊出输出的第一个单词。所以我不能输入句子,因为它只会说出句子的第一个词。
这是一段代码,希望对你有所帮助。
case "npcyell":
for (NPC n : World.getNPCs()) {
if (n != null && Utils.getDistance(player, n) < 9) {
String sentence = "";
for (int i = 1; i < cmd.length; i++) {
sentence = sentence + " " + cmd[i];
}
n.setNextForceTalk(new ForceTalk("[Alert] "
+ Utils.getFormatedMessage(sentence)));
}
}
return true;
【问题讨论】:
-
@spaniard 他从 1 开始,因为他不希望他的命令成为他句子的一部分 ^_^ 例如“喊这是我的句子”
-
@Jack:在您提供的代码之前的某个时间点,应该有一行或多行以“String[] cmd =”或“cmd =”(或类似名称)开头。如果您可以将这些行复制并粘贴到评论或原始问题中,它可能会为我们简化事情。
-
@Jack:基本上,从提供的代码来看,cmd[] 是一个仅包含 2 个字符串的字符串数组。 cmd[0] 似乎是命令本身,而 cmd[1] 似乎是您正在输出的“句子”。但是,您期望的字符串不止两个(cmd[2]、cmd[3] ... cmd[n])。我们需要看看 cmd[] 是在哪里创建的,所以我们可以告诉你为什么它只包含 2 个字符串。
-
嗯。就cmd而言,一切看起来都不错。如果是这样,则问题必须出在变量“command”、方法“setNextForceTalk”或“getFormatedMessage”中。 耸耸肩
-
我修复了它,我只是删除了格式化消息的东西。谢谢大家。