def _triggerUseSkillEvent(event): if util.getRoomTypeName(event.roomId) not in config.NORMAL_ROOM_TYPE: return userId = event.userId clientId = util.getClientId(userId) ftlog.debug("piggy_bank, userId =", userId, "chip =", event.chip) vipLevel = hallvip.userVipSystem.getVipInfo(userId).get("level", 0) fireCostChip(userId, clientId, vipLevel, event.chip)
def triggerUseSkillEvent(event): """ 使用技能事件 """ userId = event.userId roomId = event.roomId if util.isNewbieRoom(util.getRoomTypeName(roomId)): return incrQuestTypeData(userId, QuestType.UseSkill, 1)
def triggerCatchEvent(event): """ 捕获鱼事件 """ userId = event.userId fishTypes = event.fishTypes roomId = event.roomId typeName = util.getRoomTypeName(roomId) if util.isNewbieRoom(typeName): return gainChip = event.gainChip for fishType in fishTypes: fishConf = config.getFishConf(fishType, typeName) questType = None if fishConf["type"] in config.MULTIPLE_FISH_TYPE: # 倍率鱼 questType = QuestType.CatchMultipleFish elif fishConf["type"] in config.BOMB_FISH_TYPE: # 炸弹鱼|炸弹蟹 questType = QuestType.CatchBombFish elif fishConf["type"] in config.DRILL_FISH_TYPE: # 钻头鱼 questType = QuestType.CatchDrillFish elif fishConf["type"] in config.PLATTER_FISH_TYPE: # 大盘鱼 questType = QuestType.CatchPlatterFish elif fishConf["type"] in config.SUPER_BOSS_FISH_TYPE: # 超级boss questType = QuestType.CatchSuperBossFish if questType: incrQuestTypeData(userId, questType, 1) if fishConf["type"] in config.TERROR_FISH_TYPE: # 特殊鱼 incrQuestTypeData(userId, QuestType.CatchTerrorFish, 1) if fishConf["type"] in config.COlOR_GOLD_FISH_TYPE: # 捕获彩金鱼 incrQuestTypeData(userId, QuestType.CatchColorGoldFish, 1) if fishConf["type"] in config.BOSS_FISH_TYPE: # Boss incrQuestTypeData(userId, QuestType.CatchBossFish, 1) tmpQuestType = None for qt, fishTp in TaskTypeFishTypeMap.items(): # 具体的鱼 if fishConf["fishType"] in fishTp: tmpQuestType = qt break if tmpQuestType: incrQuestTypeData(userId, tmpQuestType, 1) if gainChip: incrQuestTypeData(userId, QuestType.CatchGotChip, gainChip) if len(fishTypes): incrQuestTypeData(userId, QuestType.CatchFishNum, len(fishTypes))
def triggerCatchEvent(event): """捕获事件""" bigRoomId, _ = util.getBigRoomId(event.roomId) typeName = util.getRoomTypeName(event.roomId) fishPool = util.getFishPoolByBigRoomId(bigRoomId) fpMultiple = event.fpMultiple if hasattr(event, "fpMultiple") else 0 userId = event.userId fishTypes = event.fishTypes gain_chip = event.gainChip resetTime = event.resetTime gunX = event.gunX * event.gunSkinMul fish_boss_num = 0 fish_multiple_num = 0 terror_num = 0 all_fish_num = len(fishTypes) for fishType in fishTypes: fishConf = config.getFishConf(fishType, typeName) if fishConf["type"] in config.BOSS_FISH_TYPE: # Boss fish_boss_num += 1 elif fishConf["type"] in config.ROBBERY_BOSS_FISH_TYPE: # 招财Boss fish_boss_num += 1 all_fish_num -= 1 elif fishConf["type"] in config.MULTIPLE_FISH_TYPE: # 倍率鱼 fish_multiple_num += 1 elif fishConf["type"] in config.ROBBERY_MULTIPLE_FISH_TYPE: # 招财倍率鱼 fish_multiple_num += 1 all_fish_num -= 1 if fishConf["type"] in config.TERROR_FISH_TYPE: # 特殊鱼 terror_num += 1 if fish_boss_num: _incQuestValue(userId, TaskType.GunYBossFishNum, fish_boss_num, resetTime, fishPool=fishPool, fpMultiple=fpMultiple, gunX=gunX) if fish_multiple_num: _incQuestValue(userId, TaskType.GunYMultipleFishNum, fish_multiple_num, resetTime, fishPool=fishPool, fpMultiple=fpMultiple, gunX=gunX) if all_fish_num: _incQuestValue(userId, TaskType.GunYFishNum, all_fish_num, resetTime, fishPool=fishPool, fpMultiple=fpMultiple, gunX=gunX) _incQuestValue(userId, TaskType.FishNum, all_fish_num, resetTime, fishPool=fishPool, fpMultiple=fpMultiple) if gain_chip: _incQuestValue(userId, TaskType.CoinNum, gain_chip, resetTime, fishPool=fishPool, fpMultiple=fpMultiple) if terror_num: _incQuestValue(userId, TaskType.GunYTerrorFishNum, terror_num, resetTime, fishPool=fishPool, fpMultiple=fpMultiple, gunX=gunX) _incQuestValue(userId, TaskType.TerrorFishNum, terror_num, resetTime, fishPool=fishPool, fpMultiple=fpMultiple)
def _EnterRoomEvent(userId, roomId, isMath): achConfigs = getAchievementAllTask(userId) if not achConfigs: return for honorId, tasksConf in achConfigs.iteritems(): for _, conf in tasksConf.iteritems(): if conf["type"] == AchieveType.JoinMatch and isMath: # 参加比赛多少场 targetRoomId = conf["target"].get("roomId") if not targetRoomId or targetRoomId == roomId: taskClass = FishAchievementTask(userId, conf) if taskClass.addProgress(1): module_tip.addModuleTipEvent(userId, "achievement", int(honorId)) elif conf["type"] == AchieveType.EnterRobbery: # 参加招财模式多少次 if util.getRoomTypeName( roomId) == config.FISH_ROBBERY: # 获取房间名 taskClass = FishAchievementTask(userId, conf) if taskClass.addProgress(1): module_tip.addModuleTipEvent(userId, "achievement", int(honorId))
def dealTreasureReward(userId, clientId, dayFirst): """ 处理宝藏奖励发放 """ if ftlog.is_debug(): ftlog.debug("dealTreasureReward", userId, clientId, dayFirst) for kindId, _ in config.getTreasureConf().iteritems(): refreshTreasureState(userId, kindId) if dayFirst: isIn, roomId, tableId, seatId = util.isInFishTable(userId) if isIn and util.getRoomTypeName(roomId) in config.NORMAL_ROOM_TYPE: mo = MsgPack() mo.setCmd("table_call") mo.setParam("action", "treasure_rewards") mo.setParam("gameId", FISH_GAMEID) mo.setParam("clientId", clientId) mo.setParam("userId", userId) mo.setParam("roomId", roomId) mo.setParam("tableId", tableId) mo.setParam("seatId", seatId) router.sendTableServer(mo, roomId) else: getTreasureRewards(userId)
def getLevelRewardsData(userId): """ 获取等级奖励数据 """ clientId = util.getClientId(userId) userLevel = util.getUserLevel(userId) levels = gamedata.getGameAttrJson(userId, config.FISH_GAMEID, GameData.levelRewards, []) levelRewards = config.getLevelRewards(clientId) _level = userLevel _rewards = [] if util.isFinishAllNewbieTask(userId): isIn, roomId, _, _ = util.isInFishTable(userId) if isIn and util.getRoomTypeName(roomId) in config.NORMAL_ROOM_TYPE: lang = util.getLanguage(userId) sortedLevelRewards = sorted(levelRewards.items(), key=lambda v: int(v[0])) for item in sortedLevelRewards: level, val = item level = int(level) if val and level not in levels: _level = level for _r in val.get("rewards", []): itemId = _r["name"] desId = _r.get("des") if desId: des = config.getMultiLangTextConf(str(desId), lang=lang) else: des = "" if util.isChestRewardId(itemId): _rewards.append({ "name": itemId, "count": _r["count"], "des": des, "info": chest_system.getChestInfo(itemId) }) else: _rewards.append({ "name": itemId, "count": _r["count"], "des": des, "info": {} }) if level <= userLevel: module_tip.addModuleTipEvent(userId, "levelrewards", _level) break mo = MsgPack() mo.setCmd("levelRewardsData") mo.setResult("gameId", config.FISH_GAMEID) mo.setResult("userId", userId) mo.setResult("level", _level) mo.setResult("rewards", _rewards) router.sendToUser(mo, userId) ftlog.debug("level_rewards, userId =", userId, "userLevel =", userLevel, "level =", _level, "rewards =", _rewards)