基本上我有这个
CSGOCli.playerProfileRequest(CSGOCli.ToAccountID(userId));
但我想在事件监听器中获得一些我想要的额外信息。所以我想我可以改成它:
CSGOCli.playerProfileRequest(CSGOCli.ToAccountID(row.steam64ID), "checkRank", myData[0]);
这是现在的事件监听器:
CSGOCli.on("playerProfile", function(profile) {
所以我猜它必须看起来像这样:
CSGOCli.on("playerProfile", function(profile, eventType, userData) {
现在处理这些函数的处理程序是这样的:
CSGO.CSGOClient.prototype.playerProfileRequest = function(accountId, even_type, my_data req_level, callback) {
callback = callback || null;
if (!this._gcReady) {
if (this.debug) {
util.log("GC not ready");
}
return null;
}
if (this.debug) {
util.log("Sending player profile request");
}
var payload = new protos.CMsgGCCStrike15_v2_ClientRequestPlayersProfile({
account_id: accountId,
request_level: req_level || 32
});
this._gc.send({msg:CSGO.ECSGOCMsg.k_EMsgGCCStrike15_v2_ClientRequestPlayersProfile, proto: {}}, payload.toBuffer(), callback);
};
var handlers = CSGO.CSGOClient.prototype._handlers;
handlers[CSGO.ECSGOCMsg.k_EMsgGCCStrike15_v2_PlayersProfile] = function onPlayerProfileResponse(message) {
var playerProfileResponse = protos.CMsgGCCStrike15_v2_PlayersProfile.decode(message);
if (this.debug) {
util.log("Received player profile");
}
this.emit("playerProfile", playerProfileResponse, eventType, userData);
};
就像你可以看到的那样,在最后一行" this.emit"我已经改变了我想要它的样子,但现在这是我的问题所在的地方。我怎么能编辑这个处理程序,所以在最后一个发射器中它将从最后一个函数发送我的信息。
如果我在这里不清楚,我很抱歉。
编辑:
仅使用全局变量解决。 所以:
var event_type = null; var myData = null;
不编辑处理程序。 然后在函数中设置变量,稍后您可以在事件侦听器中使用它。 这不是一个非常有效的解决方案,但它对我有用。