gpt4 book ai didi

c++ - 在 Photon Cloud 上使用 Hashtable 发送数据

转载 作者:行者123 更新时间:2023-11-30 04:22:28 24 4
gpt4 key购买 nike

我正在尝试使用 Hashtable 在光子云上发送数据,我确实收到了具有正确 eventCode 的数据,但键值对返回了一些随机数。发送数据时我的代码是这样的:-

void NetworkLogic::sendEvent(void)
{
ExitGames::Common::Hashtable* table =new ExitGames::Common::Hashtable;
table->put<int,int>(4,21);
const ExitGames::Common::Hashtable temp = (const ExitGames::Common::Hashtable)*table;//= new ExitGames::Common::Hashtable;
mLoadBalancingClient.opRaiseEvent(false, temp, 100);
}

接收数据时,代码是这样的:-

void NetworkLogic::customEventAction(int playerNr, nByte eventCode, const ExitGames::Common::Hashtable& eventContent)
{
// you do not receive your own events, unless you specify yourself as one of the receivers explicitly, so you must start 2 clients, to receive the events, which you have sent, as sendEvent() uses the default receivers of opRaiseEvent() (all players in same room like the sender, except the sender itself)
PhotonPeer_sendDebugOutput(&mLoadBalancingClient, DEBUG_LEVEL_ALL, L"");
cout<<((int)(eventContent.getValue(4)));
}

我在控制台上打印的是一些随机值或 int,而它应该是 21。我在这里做错了什么?

编辑:
customEventAction() 中,我使用了以下语句:

cout<<eventContent.getValue(4)->getType()<<endl;
cout<<"Event code = "<<eventCode<<endl;

我得到了以下输出:

i
Event code = d

我搜索并发现 'i'EG_INTEGER 的值,这意味着我发送的值已正确接收。我只是无法将其转换回 int。为什么事件代码以 'd' 的形式出现?

最佳答案

eventContent.getValue(4)

返回一个对象。您不能简单地将对象转换为 int,而是必须访问其中的 int 值:

if(eventContent.getValue(4))
myInt = ExitGames::Common::ValueObject<int>(eventContent.getValue(4)).getDataCopy();
cout << myInt;

关于c++ - 在 Photon Cloud 上使用 Hashtable 发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13801332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com