我在这里要实现的是,当IF
语句是true
时,fightID
将更改为其他值,因此它将与之前分配的值不匹配,因此在战斗结束后无法立即通过控制台运行win-fight
发出。但是我现在得到的只有Bad id
,所以它甚至不会运行win-fight
发出。我怎么才能解决这个问题?
var uuid = uuid4();
socket.on('attack', () => {
var fightID = uuid;
if(enemyHealth === 0 && uuid4.valid(uuid) === fightID|| userHealth === 0
&& enemyHealth === 0 && uuid4.valid(uuid) === fightID) {
fightID = 185;
socket.emit('win-fight'); // next emit
} else {
console.log('Bad id');
}
});
发布于 2018-10-14 21:01:20
如果我正确理解你的问题,应该通过以下调整来解决这个问题:
var uuid = uuid4();
var isFightFinished = false;
// Declare fightID here
var fightID = uuid;
socket.on('attack', () => {
// Remove fightID from here
// var fightID = uuid;
if(isFightFinished === false && (enemyHealth <= 0 || userHealth <= 0)) {
// Now you're newly assigned fightID is remembered for the next attack
// event
fightID = 185;
isFightFinished = true;
socket.emit('win-fight'); // next emit
} else {
console.log('Bad id');
}
});
https://stackoverflow.com/questions/52807036
复制相似问题