Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
def triggerUseSkillEvent(event):
    """
    使用技能事件
    """
    userId = event.userId
    roomId = event.roomId
    if util.isNewbieRoom(util.getRoomTypeName(roomId)):
        return
    incrQuestTypeData(userId, QuestType.UseSkill, 1)
Ejemplo n.º 3
0
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))
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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))
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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)