| | |
| | | if maxPlayerLV < curPlayer.GetLV():
|
| | | maxPlayerLV = curPlayer.GetLV()
|
| | | dropPlayer = curPlayer
|
| | | |
| | | if isGameBoss and curPlayer.GetOfficialRank() < GetRealmLV(curNPC):
|
| | | GameWorld.Log("玩家境界不足,无法获得Boss归属奖励! playerRealmLV=%s,npcID=%s,npcRealmLV=%s" |
| | | % (curPlayer.GetOfficialRank(), npcID, GetRealmLV(curNPC)), curPlayer.GetPlayerID())
|
| | | continue
|
| | | |
| | | self.__KilledByPlayerSetPrize(curPlayer)
|
| | | ownerPlayerList.append(curPlayer)
|
| | | self.__ownerPlayerList = ownerPlayerList
|
| | |
|
| | | #调用物品掉落
|
| | | self.__NPCDropItem(dropPlayer, hurtType, hurtID, ownerPlayerList)
|
| | |
|
| | | #调用物品掉落,boss一人一份
|
| | | if isGameBoss:
|
| | | for curPlayer in ownerPlayerList:
|
| | | self.__NPCDropItem(curPlayer, ChConfig.Def_NPCHurtTypePlayer, curPlayer.GetPlayerID(), [curPlayer])
|
| | | elif dropPlayer:
|
| | | self.__NPCDropItem(dropPlayer, hurtType, hurtID, ownerPlayerList)
|
| | | |
| | | #被队伍杀死
|
| | | elif curTeam != None:
|
| | | self.__KilledByTeamSetPrize(curTeam, hurtType, hurtID)
|
| | |
| | | teamMaxLV = 0
|
| | | dropPlayer = None
|
| | | ownerPlayerList = []
|
| | | npcID = curNPC.GetNPCID()
|
| | | isGameBoss = ChConfig.IsGameBoss(curNPC)
|
| | | #遍历队伍,半径为一屏半的距离内的所有队伍/团队成员,可以获得经验
|
| | | for curPlayer in playerlist:
|
| | | if isGameBoss and curPlayer.GetOfficialRank() < GetRealmLV(curNPC):
|
| | | GameWorld.Log("队员境界不足,无法获得Boss归属奖励! playerRealmLV=%s,npcID=%s,npcRealmLV=%s" |
| | | % (curPlayer.GetOfficialRank(), npcID, GetRealmLV(curNPC)), curPlayer.GetPlayerID())
|
| | | continue
|
| | | |
| | | curPlayerLV = curPlayer.GetLV()
|
| | | if teamMaxLV < curPlayerLV:
|
| | | teamMaxLV = curPlayerLV
|
| | |
| | | self.__DoNormalTeamExp(curPlayer)
|
| | | self.__KillNPCFuncEx(curPlayer, curNPC, maxHurtID, True)
|
| | | self.__ownerPlayerList = ownerPlayerList
|
| | | |
| | | #调用物品掉落
|
| | | self.__NPCDropItem(dropPlayer, hurtType, hurtID, ownerPlayerList)
|
| | | |
| | | #调用物品掉落,boss一人一份
|
| | | if isGameBoss:
|
| | | for curPlayer in ownerPlayerList:
|
| | | self.__NPCDropItem(curPlayer, ChConfig.Def_NPCHurtTypePlayer, curPlayer.GetPlayerID(), [curPlayer])
|
| | | elif dropPlayer:
|
| | | self.__NPCDropItem(dropPlayer, hurtType, hurtID, ownerPlayerList)
|
| | | #GameWorld.Log("队伍杀死怪物奖励,逻辑成功结束")
|
| | | return
|
| | |
|
| | |
| | |
|
| | | # 在地上添加物品(统一接口)
|
| | | dropNPCID = 0 if not ChConfig.IsGameBoss(curNPC) else curNPCID
|
| | | specOwnerIDList = self.__AllKillerDict.keys() if (len(self.__AllKillerDict) > 1 or dropType == ChConfig.Def_NPCHurtTypeSpecial) else []
|
| | | specOwnerIDList = [player.GetPlayerID() for player in self.__ownerPlayerList] if dropType == ChConfig.Def_NPCHurtTypeSpecial else []
|
| | | curMapItem = ChItem.AddMapDropItem(posX, posY, curItem, ownerInfo=[dropType, ownerID, specOwnerIDList], dropNPCID=dropNPCID)
|
| | |
|
| | | #设置该物品生前拥有者(那个NPC掉落的)
|