这是用于游戏应用程序
我声明了变量skipnpc,该变量被设计为指示非玩家角色已使用过自己的回合,并且与他的行为有关的任何AI代码都将跳过一段时间。我遇到的问题是我以某种方式表明我在console.log命令中的位置与可变范围有关,从而失去了skipnpc的值,但我不知道如何解决它。

function npcMovement() {
    skipnpc = false;...
    sql4 = "SELECT id FROM game_moblist WHERE spawn_id =" + spawnid + " AND posx=" + parseInt(mobpathx[mobpathx.length - 1]) + " AND posy=" + parseInt(mobpathy[mobpathy.length - 1])
    connection.query(sql4, function (err, send, fields) {
        console.log("skipnpc pathing")
        io.sockets.emit('groupmoveresult', send, parseInt(mobpathx[mobpathx.length - 1]), parseInt(mobpathy[mobpathy.length - 1]))
        skipnpc = true
        console.log("skipnpc=true:" + skipnpc)
    });
    console.log("skipnpc = false:" + skipnpc)


后来我用

if (skipnpc==false){
  ...


在尝试任何进一步的AI代码之前

最佳答案

connection.query是异步执行的。这样,您就可以在此完成最后一行。

07-26 03:41