BOpenliveSDK-UE4 icon indicating copy to clipboard operation
BOpenliveSDK-UE4 copied to clipboard

blueprint call instance ptr -> stop() crashes

Open terrytz opened this issue 3 years ago • 4 comments

blueprint call instance ptr -> stop() crashes

terrytz avatar Oct 21 '22 05:10 terrytz

问题已找到,不要在调用start之前调用stop就没事,等有空的时候我更新下

tangclQaQ avatar Oct 21 '22 08:10 tangclQaQ

问题已找到,不要在调用start之前调用stop就没事,等有空的时候我更新下

主要是现在在blueprint 里无法判断是否已经 start,用户关闭游戏再重新打开之后,往往就会出现 “直播间游戏重复” 或者 “请求冷静期” 的报错。

建议也加个连接成功的callback,现在bp 那边只能 delay 几秒看有没有报错,没报错再进游戏的方式

terrytz avatar Oct 23 '22 00:10 terrytz

另外是礼物的json 解析有点问题导致在 bp 收不到,在 C++里注释掉不存在的key 重新编译才好了,fans_medal_wearing_status 这条

void FGiftData::setValue(const nlohmann::json& jsonData) { room_id = jsonData["room_id"].get<int64_t>(); uid = jsonData["uid"].get<int64_t>(); gift_id = jsonData["gift_id"].get<int64_t>(); gift_num = jsonData["gift_num"].get<int64_t>(); price = jsonData["price"].get<int64_t>(); fans_medal_level = jsonData["fans_medal_level"].get<int64_t>(); guard_level = jsonData["guard_level"].get<int64_t>(); timestamp = jsonData["timestamp"].get<int64_t>(); paid = jsonData["paid"].get(); // fans_medal_wearing_status = jsonData["fans_medal_wearing_status"].get(); uname = FString(UTF8_TO_TCHAR(jsonData["uname"].getstd::string().c_str())); uface = FString(UTF8_TO_TCHAR(jsonData["uface"].getstd::string().c_str())); gift_name = FString(UTF8_TO_TCHAR(jsonData["gift_name"].getstd::string().c_str())); fans_medal_name = FString(UTF8_TO_TCHAR(jsonData["fans_medal_name"].getstd::string().c_str())); msg_id = FString(UTF8_TO_TCHAR(jsonData["msg_id"].getstd::string().c_str()));

anchor_info.uid = jsonData["anchor_info"]["uid"].get<int64_t>();
anchor_info.uface = FString(UTF8_TO_TCHAR(jsonData["anchor_info"]["uface"].get<std::string>().c_str()));
anchor_info.uname = FString(UTF8_TO_TCHAR(jsonData["anchor_info"]["uname"].get<std::string>().c_str()));

}

terrytz avatar Oct 23 '22 00:10 terrytz

这俩问题解决了,提交好了

tangclQaQ avatar Oct 24 '22 09:10 tangclQaQ