【发布时间】:2021-06-18 17:37:53
【问题描述】:
我使用this library 制作了一个简单的控制台式计分机器人,用于输出 CS:GO 现场比赛的日志(例如碎片、助攻、连接到服务器的玩家),我编写了这段代码来输出所有日志JSON 样式对象:
const HLTV = require('hltv').default
HLTV.connectToScorebot({
id: 2349500,
onLogUpdate: (data) => {
console.log(data.log)
}
})
而且控制台的输出是很多这样的日志,没错:
[
{
Kill: {
killerName: 'kr1vda',
killerNick: 'kr1vda',
killerSide: 'TERRORIST',
victimNick: 'nonick',
victimName: 'nonick',
victimSide: 'CT',
weapon: 'ak47',
headShot: true,
eventId: 2151088609,
victimX: -1728,
victimY: -1182,
killerX: -1861,
killerY: -1165,
killerId: -1,
victimId: 10732
}
}
]
但我想要单行输出,例如“PlayerX 用 ak47 杀死了 PlayerY”,所以我做了这个:
const HLTV = require('hltv').default
HLTV.connectToScorebot({
id: 2349500,
onLogUpdate: (data, done) => {
const event = Object.keys(data)[0]
const eventData = data[event]
if (event === 'Kill') {
console.log(`${eventData.killerNick} killed ${eventData.victimNick} using ${eventData.weapon}`)
}
}
})
当发生 kill 时应该打印一个单行字符串,但输出不是空的,而是什么都没有显示。 我知道这并不难,但我不是专家,如果有人能帮我解决这个问题,我将不胜感激。谢谢
【问题讨论】:
-
如果你使用
console.log(data)而不是console.log(data.log),输出是什么? -
{ Kill: [Object] }, { Kill: [Object] }, { Kill: [Object] }, { Kill: [Object] }, { Kill: [Object] }, { Kill : [Object] }, { RoundStart: {} }, { RoundEnd: [Object] }, { BombDefused: [Object] }, { Kill: [Object] }, { Assist: [Object] }, { Kill: [Object] ] },
-
发生在第一个代码中
标签: javascript node.js sockets