def stealSearchTeam(db, conn, param): playerId = param["player_id"] playerName = param["player_name"] playerPic = param["player_pic"] friendId = param["friend_id"] friendPlayer = db_tool.__getPlayerById(friendId) if not friendPlayer or player_module.isVIP(friendPlayer): return {"status": 0, "error_type": 2, "msg": "friend is null or is vip"} searchInfo = lockSearchTeamById(db, conn, friendId) if not searchInfo or searchInfo["blue_box"] != 1: searchInfo = getSearchTeamDetail(friendId) return { "status": 0, "error_type": 1, "searcher": searchInfo, "msg": "searchInfo is done or stealed by other friend", } number = searchInfo["number"] searchTypeId = searchInfo["type"] areaId = searchInfo["area"] searchStartTime = searchInfo["last_start_time"] needTime = SEARCH_TYPE[searchTypeId]["time"] * 3600 time_now = int(time.time()) if (searchStartTime + needTime) > time_now: return {"status": 0, "msg": "need more time for searchInfo"} # 记录好友信息 friendsInfo = {} friendsInfo["id"] = playerId friendsInfo["name"] = playerName friendsInfo["pic"] = playerPic updateInfo = {} updateInfo["friends"] = db_tool.__dictToString(friendsInfo) updateInfo["number"] = number - 1 updateInfo["blue_box"] = 2 updateSearchTeamInfoForLock(db, conn, friendId, updateInfo) # 更新背包信息 propDict = db_tool.getAllProp(playerId) prop_id, num = odds.getItemByArea(areaId) db_tool.__addPropItem(propDict, prop_id, num) db_tool.saveAllProp(playerId, propDict) searchInfo = getSearchTeamDetail(friendId) # 添加交互日志 log_info = {} log_info["player_id"] = playerId log_info["player_name"] = playerName log_info["prop_id"] = prop_id interaction_event.writeInteractionEventLog(log_info, friendId, 1) return {"status": 1, "definitionId": prop_id, "bag": propDict, "searcher": searchInfo}
def getSearchTeam(db, conn, playerId, isBlueBox): searchInfo = lockSearchTeamById(db, conn, playerId) if not searchInfo: return {"status": 0, "msg": "no search team send"} # 奖励的箱子个数 number = searchInfo["number"] searchTypeId = searchInfo["type"] areaId = searchInfo["area"] searchStartTime = searchInfo["last_start_time"] blueBox = searchInfo["blue_box"] needTime = SEARCH_TYPE[searchTypeId]["time"] * 3600 time_now = int(time.time()) if (searchStartTime + needTime) > time_now: return {"status": 0, "msg": "need more time for searchInfo"} # 奖励个数减一 number -= 1 # 奖励个数为0 清除记录 if number < 1: delSearchTeamByIdForLock(db, conn, playerId) else: updateInfo = {} if isBlueBox: if blueBox == 1: updateInfo["blue_box"] = 3 else: return {"status": 0, "error_type": 1, "msg": "blue_box has bean opened or stealed"} updateInfo["number"] = number updateSearchTeamInfoForLock(db, conn, playerId, updateInfo) # 更新背包信息 propDict = db_tool.getAllProp(playerId) prop_id, num = odds.getItemByArea(areaId) db_tool.__addPropItem(propDict, prop_id, num) db_tool.saveAllProp(playerId, propDict) return {"status": 1, "item": prop_id, "bag": propDict, "number": number}