From 50086ccb3ade4bdc47b32af7e097ec9e2c2d3f88 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 25 八月 2025 18:35:04 +0800
Subject: [PATCH] 1111 删除不需要内容;
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py | 310 ++------------------------------------------------
1 files changed, 17 insertions(+), 293 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
index a6a329f..11a06b4 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -42,18 +42,12 @@
import FBCommon
import PlayerActivity
import PlayerSuccess
-import BossHurtMng
import PlayerPrestigeSys
import GY_Query_BossFirstKill
-import GameLogic_FamilyInvade
-import GameLogic_GatherSoul
import FormulaControl
import PlayerBossReborn
-import PlayerFairyCeremony
import PlayerCrossYaomoBoss
import PlayerActCollectWords
-import PlayerNewFairyCeremony
-import GameLogic_CrossGrassland
import PlayerActGarbageSorting
import PlayerActBossTrial
import PlayerTongTianLing
@@ -63,19 +57,14 @@
import PlayerGoldInvest
import PlayerWeekParty
import NPCRealmRefresh
-import NPCHurtManager
import PlayerActLogin
import PlayerActTask
import PlayerZhanling
-import FamilyRobBoss
import IpyGameDataPY
import PlayerGubao
import PlayerState
import TurnAttack
import PyGameData
-import PlayerTeam
-import NPCHurtMgr
-import PlayerVip
import GameObj
import ChNPC
@@ -177,13 +166,10 @@
gameFB = GameWorld.GetGameFB()
if strengthenIpyData.GetIsStrengthenByPlayerCount():
- if FamilyRobBoss.IsHorsePetRobBoss(npcID):
- strengthenPlayerCnt = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_HorsePetRobBossPlayerCount)
- else:
- strengthenPlayerCnt = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_NPCStrengthenPlayerCnt)
- if not strengthenPlayerCnt:
- GameWorld.ErrLog("NPC配置了按玩家人数成长类型,但是无法获取到对应的玩家人数!npcID=%s" % (npcID))
- return
+ strengthenPlayerCnt = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_NPCStrengthenPlayerCnt)
+ if not strengthenPlayerCnt:
+ GameWorld.ErrLog("NPC配置了按玩家人数成长类型,但是无法获取到对应的玩家人数!npcID=%s" % (npcID))
+ return
lvStrengthenType = strengthenIpyData.GetLVStrengthenType()
# 根据世界等级
@@ -296,27 +282,6 @@
for skillID in skillIDList:
skillManager.LearnSkillByID(skillID)
FBLogic.OnRandomRobotJob(curNPC, lineRobotJobDict)
- return
-
-
-def __DoGiveVSPlayerNPCSkill(curNPC, job, npcLV):
- skillManager = curNPC.GetSkillManager()
- jobSkillDict = IpyGameDataPY.GetFuncEvalCfg("XMZZRobotSkill", 1)
- if job not in jobSkillDict:
- return
- skillInfoDict = jobSkillDict[job]
- #{1:{(100, 101, 102, 103):1, 50000:100, 50100:200, 50400:300}, 2:{(200, 201, 202, 203):1, 55000:100, 55100:200, 55200:300}}
- skillIDList = []
- for skillInfo, needLV in skillInfoDict.items():
- if npcLV < needLV:
- continue
- if isinstance(skillInfo, int):
- skillIDList.append(skillInfo)
- else:
- skillIDList += list(skillInfo)
- GameWorld.DebugLog("给NPC技能: job=%s,npcLV=%s, %s" % (job, npcLV, skillIDList))
- for skillID in skillIDList:
- skillManager.LearnSkillByID(skillID)
return
def GiveKillNPCDropPrize(curPlayer, mapID, npcCountDict, exp_rate=None, mailTypeKey=None, isMail=False,
@@ -769,7 +734,7 @@
#===============================================================================
def GetDefaultMaxAngryNPCIDList():
- return GameLogic_FamilyInvade.GetDefaultMaxAngryNPCIDList()
+ return []
#---------------------------------------------------------------------
##NPC进入战斗状态
@@ -1090,9 +1055,7 @@
#GameWorld.GetGameWorld().SetGameWorldDict(ChConfig.Map_NPC_WorldBossDeadTick % npcid, GameWorld.GetGameWorld().GetTick())
#因为存在boss分流,所以用gameFB字典,但是存活状态还是用GameWorld字典
GameWorld.GetGameFB().SetGameFBDict(ChConfig.Map_NPC_WorldBossDeadTick % npcid, GameWorld.GetGameWorld().GetTick())
-
- if GetDropOwnerType(curNPC) == ChConfig.DropOwnerType_Family:
- FamilyRobBoss.ClearFamilyOwnerBossHurt(curNPC)
+
ChNPC.OnNPCSetDead(curNPC)
if npcid == IpyGameDataPY.GetFuncCfg("CrossYaomoBoss", 1):
@@ -1100,10 +1063,6 @@
# 清除队伍成员伤血列表
AttackCommon.ClearTeamPlayerHurtValue(curNPC)
- # 清除自定义伤血列表
- #BossHurtMng.ClearHurtValueList(curNPC)
- NPCHurtManager.DeletePlayerHurtList(curNPC)
- NPCHurtMgr.DeletePlayerHurtList(curNPC)
if curNPC.GetType() == ChConfig.ntRobot:
lineID = GameWorld.GetGameWorld().GetLineID()
lineRobotJobDict = PyGameData.g_fbRobotJobDict.get(lineID, {})
@@ -1184,7 +1143,6 @@
key = ChConfig.Def_PDict_Boss_KillCnt % limitIndex
newCnt = curPlayer.NomalDictGetProperty(key, 0) + 1
PlayerControl.NomalDictSetProperty(curPlayer, key, newCnt)
- BossHurtMng.NotifyAttackBossCnt(curPlayer, limitIndex)
GameWorld.DebugLog("更新击杀Boss次数: index=%s, todayCnt=%s, totalCnt=%s" % (limitIndex, newCnt, totalCnt), curPlayer.GetPlayerID())
dataDict = {"objID":npcID, "bossID":npcID, "touchCnt":newCnt, "totalCnt":totalCnt,
@@ -1203,8 +1161,6 @@
# 每日活动
PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_WorldBOSS)
PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_WorldBOSS, 1)
- PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_WorldBoss, 1)
- PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_WorldBoss, 1)
PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_WorldBOSS, 1)
PlayerFeastTravel.AddFeastTravelTaskValue(curPlayer, ChConfig.Def_FeastTravel_WorldBoss, 1)
PlayerActLogin.AddLoginAwardActionCnt(curPlayer, ChConfig.Def_LoginAct_WorldBOSS, 1)
@@ -1220,8 +1176,6 @@
# 每日活动
PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_BOSSHome)
PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_BOSSHome, 1)
- PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_BossHome, 1)
- PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_BossHome, 1)
PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_BOSSHome, 1)
PlayerFeastTravel.AddFeastTravelTaskValue(curPlayer, ChConfig.Def_FeastTravel_BossHome, 1)
PlayerActTask.AddActTaskValue(curPlayer, ChConfig.ActTaskType_BossHome, 1)
@@ -2071,8 +2025,6 @@
#清除所有身上buff
self.ClearAllBuff(isClearAuraBuff)
curNPC = self.__Instance
- NPCHurtManager.ClearPlayerHurtList(curNPC)
- NPCHurtMgr.ClearPlayerHurtList(curNPC)
return True
#---------------------------------------------------------------------
@@ -2421,9 +2373,7 @@
ipyData = IpyGameDataPY.GetIpyGameDataNotLog('BOSSInfo', curNPCID)
if ipyData:
GameServe_GameWorldBossState(curNPCID, 1)
- if GetDropOwnerType(curNPC) == ChConfig.DropOwnerType_Family:
- FamilyRobBoss.FamilyOwnerBossOnReborn(curNPC)
-
+
# 检查是否有光环, 在重生时处理,不然可能导致有些无战斗逻辑的怪物无法套上光环buff
skillManager = curNPC.GetSkillManager()
for index in xrange(skillManager.GetSkillCount()):
@@ -2644,29 +2594,6 @@
return
- def SetHelpBattleRobotRebornAttr(self, fightPower):
- '''助战机器人只设置血量属性
- 血量算法,(助战玩家=助战机器人):每个副本配置伤害*(助战玩家战力/副本规定战力)*系数值 系数值暂定为50
- '''
- curNPC = self.__Instance
- mapID = FBCommon.GetRecordMapID(GameWorld.GetMap().GetMapID())
- funcLineID = FBCommon.GetFBPropertyMark()
- ipyData = IpyGameDataPY.GetIpyGameData("FBHelpBattle", mapID, funcLineID)
- if not ipyData:
- return
-
- SetSuppressFightPower(curNPC, fightPower)
- fbFightPower = ipyData.GetFightPowerMin()
- baseHurt = ipyData.GetRobotBaseHurt()
- hpCoefficient = ipyData.GetRobotHPCoefficient()
- maxHP = int(eval(IpyGameDataPY.GetFuncCompileCfg("HelpBattleRobot", 2)))
- GameWorld.DebugLog("设置助战机器人属性: objID=%s,fightPower=%s,maxHP=%s" % (curNPC.GetID(), fightPower, maxHP))
- GameObj.SetMaxHP(curNPC, maxHP)
- GameObj.SetHP(curNPC, maxHP)
- curNPC.Notify_HP()
- curNPC.Notify_MaxHP()
- return
-
# NPC移动速度特殊处理,只处理百分比不能处理固定值
# 因为 ChConfig.TYPE_Calc_AttrSpeed 非服务端移动速度,偷懒处理法
def RefreshNPCSpeed(self, allAttrList):
@@ -2680,9 +2607,6 @@
speed = int(curNPC.GetSpeed() * (ShareDefine.Def_MaxRateValue) / max(100.0, float(ShareDefine.Def_MaxRateValue + speedPer)))
curNPC.SetSpeed(speed)
curNPC.SetDict(ChConfig.Def_NPC_Dict_SpeedPer, speedPer)
- if GameWorld.GetMap().GetMapID() == ChConfig.Def_FBMapID_GatherSoul:
- #目前只在聚魂副本里通知
- NPCSpeedChangeNotify(curNPC, curNPC.GetSpeed())
return
@@ -2785,9 +2709,6 @@
npcID = curNPC.GetNPCID()
#######################特殊NPC的处理
- #boss伤血排行榜击杀逻辑
- #BossHurtMng.BossOnKilled(curNPC)
-
#掉落需要用到摸怪,所以在处理掉落奖励之前设置
self.__SetFeelNPCPlayerList()
@@ -2802,22 +2723,12 @@
# 记录boss击杀信息的NPC
bossIpyData = IpyGameDataPY.GetIpyGameDataListNotLog('BOSSInfo', npcID)
if bossIpyData and mapID not in [ChConfig.Def_FBMapID_ZhuXianBoss, ChConfig.Def_FBMapID_SealDemon]:
- if GetDropOwnerType(curNPC) == ChConfig.DropOwnerType_Family:
- killerName = FamilyRobBoss.FamilyOwnerBossOnKilled(curNPC, self.__OwnerHurtID)
- #KillerJob = 0 if not self.__Killer else self.__Killer.GetJob()
killerIDList = [player.GetPlayerID() for player in self.__ownerPlayerList]
GameServer_KillGameWorldBoss(curNPC.GetNPCID(), killerName, 0, True, killerIDList)
if npcID == IpyGameDataPY.GetFuncCfg("BossRebornServerBoss", 3):
PlayerControl.WorldNotify(0, "BossRebornBossKilled", [curNPC.GetNPCID()])
- #===========================================================================================
- # # 暗金boss
- # if curNPC.GetIsBoss() == ChConfig.Def_NPCType_Boss_Dark:
- # #PlayerControl.WorldNotify(0, "Old_andyshao_861048", [curNPC.GetNPCID()])
- # if mapID == ChConfig.Def_MapID_DouHunTan:
- # NPCCustomRefresh.DoRefreshNeutralBoss(npcID)
-
#清空NPC的仇恨
curNPC.GetNPCAngry().Clear()
return
@@ -2827,7 +2738,7 @@
curNPC = self.__Instance
self.__FeelPlayerList = []
- npcHurtList = NPCHurtManager.GetPlayerHurtList(curNPC)
+ npcHurtList = [] #NPCHurtManager.GetPlayerHurtList(curNPC)
if not npcHurtList:
npcHurtList = curNPC.GetPlayerHurtList()
#npcHurtList.Sort() #这里不排序,只要有伤害就算
@@ -3087,12 +2998,6 @@
return
curNPC = self.__Instance
-
- # VIP杀怪加攻
- PlayerVip.DoAddVIPKillLVExp(lastHurtPlayer, GetNPCLV(curNPC))
-
- # SP值
- #PlayerControl.AddZhenQiByKillNPC(lastHurtPlayer, curNPC.GetSP())
return
#---------------------------------------------------------------------
@@ -3206,13 +3111,6 @@
hurtID = killerDict.keys()[0]
if isGameBoss:
GameWorld.Log(" 归属默认玩家, npcID=%s,playerID=%s" % (npcID, hurtID))
- elif GameWorld.GetMap().GetMapID() == ChConfig.Def_FBMapID_GatherSoul:
- player = FBCommon.GetCurSingleFBPlayer()
- if player:
- hurtID = player.GetPlayerID()
- killerDict[hurtID] = player
- hurtType = ChConfig.Def_NPCHurtTypePlayer
- #GameWorld.Log(" 聚魂副本归属默认玩家, npcID=%s,playerID=%s" % (npcID, hurtID))
return killerDict, killTeam, hurtType, hurtID
@@ -3574,7 +3472,6 @@
## 测试查错日志,临时用
## 相关bug: 仙界秘境无经验、boss无掉落
return ChConfig.IsGameBoss(self.__Instance)
- #return GameWorld.GetMap().GetMapID() == ChConfig.Def_FBMapID_BZZD or ChConfig.IsGameBoss(self.__Instance)
#---------------------------------------------------------------------
## 普通组队给经验
@@ -3717,19 +3614,14 @@
GameWorld.Log("检查Boss死亡: lineID=%s,objID=%s,npcID=%s,dropOwnerType=%s"
% (GameWorld.GetGameWorld().GetLineID(), curNPC.GetID(), curNPC.GetNPCID(), dropOwnerType))
#if dropOwnerType == ChConfig.DropOwnerType_MaxHurt:
- maxHurtInfo = NPCHurtManager.RefreshHurtList(curNPC, tick, refreshInterval, isDead, checkCanDead)
- if not maxHurtInfo:
- maxHurtInfo = NPCHurtMgr.RefreshHurtList(curNPC, tick, refreshInterval, isDead)
-
- if maxHurtInfo:
- tagObj, ownerType, ownerID = maxHurtInfo
+ #maxHurtInfo = NPCHurtManager.RefreshHurtList(curNPC, tick, refreshInterval, isDead, checkCanDead)
+ #
+ #if maxHurtInfo:
+ # tagObj, ownerType, ownerID = maxHurtInfo
elif dropOwnerType == ChConfig.DropOwnerType_Family:
- ownerInfo = FamilyRobBoss.RefreshFamilyOwnerNPCHurt(self, curNPC, tick, refreshInterval)
- if ownerInfo:
- tagObj, ownerFamilyID = ownerInfo
- ownerType, ownerID = ChConfig.Def_NPCHurtTypeFamily, ownerFamilyID
-
+ pass
+
elif dropOwnerType == ChConfig.DropOwnerType_Contend:
tagObj = self.__RefreshContendOwner()
if tagObj:
@@ -3853,7 +3745,7 @@
if isDead:
GameWorld.Log("Boss归属: key=%s,ownerType=%s,ownerID=%s" % (key, ownerType, ownerID))
- hurtList = NPCHurtManager.GetPlayerHurtList(curNPC)
+ hurtList = [] #NPCHurtManager.GetPlayerHurtList(curNPC)
# 刷新归属
if ownerType == ChConfig.Def_NPCHurtTypePlayer:
curPlayer = GameWorld.GetObj(ownerID, IPY_GameWorld.gotPlayer)
@@ -4175,9 +4067,6 @@
# 采集耗时
prepareTime = collectNPCIpyData.GetPrepareTime() * 1000
- collTimeReduceRate = PlayerVip.GetPrivilegeValue(curPlayer, ChConfig.VIPPrivilege_CollTimeReduceRate)
- if collTimeReduceRate:
- prepareTime = max(1000, int(prepareTime * (ShareDefine.Def_MaxRateValue - collTimeReduceRate) / float(ShareDefine.Def_MaxRateValue)))
prepareType = IPY_GameWorld.pstCollecting if curNPC.GetType() == IPY_GameWorld.ntCollection else IPY_GameWorld.pstMissionCollecting
PlayerControl.Sync_PrepareBegin(curPlayer, prepareTime, prepareType, prepareID=curNPC.GetID())
if collectNPCIpyData.GetLostHPPer():
@@ -4311,93 +4200,7 @@
return
def DoGiveCollectNPCAward(curPlayer, npcID, collectNPCIpyData, collectCnt=1, crossCollectOK=False, isSweep=False):
- GameWorld.DebugLog("给采集奖励: npcID=%s,collectCnt=%s,crossCollectOK=%s" % (npcID, collectCnt, crossCollectOK))
- if collectCnt <= 0:
- return
-
- if collectNPCIpyData.GetIsMissionCollectNPC():
- #GameWorld.DebugLog("任务采集物暂不处理")
- return
-
- isMaxTime = False # 是否达到了采集最大次数
- limitMaxTime = collectNPCIpyData.GetMaxCollectCount()
- if limitMaxTime > 0:
- todayCollTime = GetTodayCollectCount(curPlayer, npcID)
- canCollectCnt = max(0, limitMaxTime - todayCollTime)
- collectCnt = min(collectCnt, canCollectCnt)
- if collectCnt <= 0:
- GameWorld.DebugLog(" 该NPC已达到最大采集次数: npcID=%s,todayCollTime=%s,limitMaxTime=%s" % (npcID, todayCollTime, limitMaxTime))
- return
-
- curCollTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CollNpcIDCollTime % npcID)
- updCollTime = curCollTime + collectCnt
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CollNpcIDCollTime % npcID, updCollTime)
- SyncCollNPCTime(curPlayer, [npcID])
- GameWorld.DebugLog(" 增加采集次数: npcID=%s,todayCollTime=%s,curCollTime=%s,updCollTime=%s" % (npcID, todayCollTime, curCollTime, updCollTime))
- isMaxTime = todayCollTime + collectCnt >= limitMaxTime
-
- awardItemList = []
- collectAwardCfg = collectNPCIpyData.GetCollectAward()
- collectAppointAwardCfg = collectNPCIpyData.GetCollectAppointAward()
- if collectAppointAwardCfg:
- #缥缈草园的采集定制由缥缈寻访次数决定
- if collectNPCIpyData.GetCollectResetType() in [12, 14]:
- fairyDomainVisitCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainVisitCnt)
- grasslandCollectAppointCfg = collectAppointAwardCfg.get(fairyDomainVisitCnt, {})
- curCollTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CollNpcIDCollTime % npcID)
- if curCollTime in grasslandCollectAppointCfg:
- awardItemList.append(grasslandCollectAppointCfg[curCollTime])
- GameWorld.DebugLog(" 草园采集定制奖励: fairyDomainVisitCnt=%s,curCollTime=%s,awardItemList=%s" % (fairyDomainVisitCnt, curCollTime, awardItemList))
- else:
- collTotalTime = min(curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CollNpcIDCollTimeTotal % npcID) + 1, ChConfig.Def_UpperLimit_DWord)
- if collTotalTime in collectAppointAwardCfg:
- awardItemList.append(collectAppointAwardCfg[collTotalTime])
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CollNpcIDCollTimeTotal % npcID, collTotalTime)
- GameWorld.DebugLog(" 采集次数定制奖励: collTotalTime=%s,awardItemList=%s" % (collTotalTime, awardItemList))
-
- if not awardItemList:
- alchemyDiffLV = collectNPCIpyData.GetAlchemyDiffLV()
- giveItemWeightList = ItemCommon.GetWeightItemListByAlchemyDiffLV(curPlayer, collectAwardCfg, alchemyDiffLV)
- GameWorld.DebugLog(" 常规采集物品权重列表: alchemyDiffLV=%s,collectAwardCfg=%s,giveItemWeightList=%s" % (alchemyDiffLV, collectAwardCfg, giveItemWeightList))
- giveItemInfo = GameWorld.GetResultByWeightList(giveItemWeightList)
- if giveItemInfo:
- awardItemList.append(giveItemInfo)
-
- GameWorld.DebugLog(" 最终采集奖励: awardItemList=%s" % awardItemList)
- jsonItemList = []
- if awardItemList:
- for itemID, itemCount, isAuctionItem in awardItemList:
- if ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isAuctionItem, [IPY_GameWorld.rptItem]):
- jsonItemList.append(ItemCommon.GetJsonItem([itemID, itemCount, isAuctionItem]))
-
- if not isSweep:
- if collectNPCIpyData.GetNotifyCollectResult():
- awardPack = ChPyNetSendPack.tagMCCollectAwardItemInfo()
- awardPack.CollectNPCID = npcID
- for itemID, itemCount, isAuctionItem in awardItemList:
- awardItem = ChPyNetSendPack.tagMCCollectAwardItem()
- awardItem.ItemID = itemID
- awardItem.Count = itemCount
- awardItem.IsAuctionItem = isAuctionItem
- awardPack.AwardItemList.append(awardItem)
- awardPack.Count = len(awardPack.AwardItemList)
- NetPackCommon.SendFakePack(curPlayer, awardPack)
- GameLogic_CrossGrassland.RecordGrasslandAward(curPlayer, awardItemList)
- else:
- GameWorld.ErrLog("采集物品没有奖励!npcID=%s" % (npcID))
-
- #采集成就
- PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Collect, collectCnt, [npcID])
- if crossCollectOK:
- PlayerActGarbageSorting.AddActGarbageTaskProgress(curPlayer, ChConfig.Def_GarbageTask_CrossCollect)
- #SyncCollectionItemInfo(curPlayer, addExp, addMoney, addZhenQi, giveItemInfoList, npcID)
-
- if not isSweep:
- GameLogic_CrossGrassland.DecCustomSceneNPCCount(curPlayer, npcID)
- if isMaxTime:
- GameLogic_CrossGrassland.DoCheckUpdateGrasslandEnd(curPlayer)
-
- return jsonItemList
+ return
## 采集结果同步
# @param None
@@ -4659,16 +4462,12 @@
buyTimesVIPPriID = IpyGameDataPY.GetFuncEvalCfg("KillBossCntLimit1", 1, {}).get(killBossMark)
if not buyTimesVIPPriID:
return
- canBuyCnt = PlayerVip.GetPrivilegeValue(curPlayer, buyTimesVIPPriID)
+ canBuyCnt = 0
canBuyCnt += PlayerGoldInvest.GetAddBossBuyCnt(curPlayer, killBossMark)
hasBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_Boss_KillCntBuyCnt%killBossMark, 0)
playerID = curPlayer.GetPlayerID()
if hasBuyCnt >= canBuyCnt:
GameWorld.DebugLog('购买BOSS可击杀次数, 已达到今日最大可购买次数,hasBuyCnt=%s, canBuyCnt=%s'%(hasBuyCnt, canBuyCnt), playerID)
- return
- canKillCnt, dayTimesLimit = BossHurtMng.GetCanKillBossCnt(curPlayer, killBossMark)
- if canKillCnt >= dayTimesLimit:
- GameWorld.DebugLog('购买BOSS可击杀次数, 剩余次数已满!,canKillCnt=%s'%(canKillCnt), playerID)
return
costGold = IpyGameDataPY.GetFuncEvalCfg("KillBossCntLimit1", 2, {}).get(killBossMark)
@@ -4694,7 +4493,6 @@
return
# 增加购买次数
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_Boss_KillCntBuyCnt%killBossMark, hasBuyCnt + 1)
- BossHurtMng.NotifyAttackBossCnt(curPlayer, killBossMark)
CrossPlayerData.SendMergePlayerDataNow(curPlayer)
return
@@ -4743,26 +4541,10 @@
GameWorld.DebugLog("通知GameServer地图Boss分流信息: mapID=%s,lineID=%s,shuntPlayerDict=%s" % (mapID, lineID, shuntPlayerDict), lineID)
return
-def NPCSpeedChangeNotify(curNPC, speed):
- ##通知NPC速度
- GameObj.NotifyObjInfoRefresh(curNPC, IPY_GameWorld.CDBPlayerRefresh_Speed, speed)
- return
-
def UpdateNPCAttackCount(curPlayer, npcID, attackCount, maxCount=0):
## 更新玩家攻击NPC次数
if not npcID:
return
- GameWorld.DebugLog("更新玩家攻击NPC次数: npcID=%s,attackCount=%s,maxCount=%s" % (npcID, attackCount, maxCount))
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_NPCAttackCount % npcID, attackCount)
-
- if GameWorld.IsCrossServer():
- serverGroupID = PlayerControl.GetPlayerServerGroupID(curPlayer)
- msgInfo = {"PlayerID":curPlayer.GetPlayerID(), "NPCID":npcID, "AttackCount":attackCount, "MaxCount":maxCount}
- GameWorld.SendMsgToClientServer(ShareDefine.CrossServerMsg_NPCAttackCount, msgInfo, [serverGroupID])
- else:
- SyncNPCAttackCount(curPlayer, [npcID])
- if attackCount and attackCount >= maxCount:
- GameLogic_CrossGrassland.DoCheckUpdateGrasslandEnd(curPlayer)
return
def CrossServerMsg_NPCAttackCount(curPlayer, msgData):
@@ -4800,64 +4582,6 @@
# @param curNPC 被攻击NPC
# @return None
def __OnAttackedDropItem(atkObj, curNPC):
- attackPlayer, npcObjType = AttackCommon.GetAttackPlayer(atkObj)
- if npcObjType:
- return
- if not attackPlayer:
- return
- npcID = curNPC.GetNPCID()
- ipyData = IpyGameDataPY.GetIpyGameDataNotLog("TreasureNPC", npcID)
- if not ipyData:
- return
- attackCountDropWeightInfo = ipyData.GetAttackCountDropWeightInfo()
- attackDropWeightList = ipyData.GetAttackDropWeightList()
- attackDropWeightListEx = ipyData.GetAttackDropWeightListEx()
- dropCountEx = ipyData.GetDropCountEx()
- alchemyDiffLV = ipyData.GetAlchemyDiffLV()
-
- mainItemWeightList = []
- if attackCountDropWeightInfo:
- maxCount = max(attackCountDropWeightInfo)
- attackCount = attackPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NPCAttackCount % npcID) + 1
- if attackCount <= maxCount:
- if attackCount in attackCountDropWeightInfo:
- mainItemWeightList = attackCountDropWeightInfo[attackCount]
- UpdateNPCAttackCount(attackPlayer, npcID, attackCount, maxCount)
-
- if mainItemWeightList:
- mainItemWeightList = ItemCommon.GetWeightItemListByAlchemyDiffLV(attackPlayer, mainItemWeightList, alchemyDiffLV)
- elif attackDropWeightList:
- mainItemWeightList = ItemCommon.GetWeightItemListByAlchemyDiffLV(attackPlayer, attackDropWeightList, alchemyDiffLV)
-
- mainItemInfo = GameWorld.GetResultByWeightList(mainItemWeightList)
-
- if not mainItemInfo:
- notDropNotify = ipyData.GetNotDropNotify()
- if notDropNotify:
- PlayerControl.NotifyCode(attackPlayer, notDropNotify)
- return
-
- dropItemList = []
- if mainItemInfo:
- dropItemList.append(mainItemInfo)
-
- if attackDropWeightListEx and dropCountEx:
- weightListEx = ItemCommon.GetWeightItemListByAlchemyDiffLV(attackPlayer, attackDropWeightListEx, alchemyDiffLV)
- for _ in xrange(dropCountEx):
- itemInfo = GameWorld.GetResultByWeightList(weightListEx)
- if itemInfo:
- dropItemList.append(itemInfo)
-
- if not dropItemList:
- return
-
- mapID = PlayerControl.GetCustomMapID(attackPlayer)
- if mapID:
- DoGiveItemByVirtualDrop(attackPlayer, dropItemList, npcID)
- GameLogic_CrossGrassland.RecordGrasslandAward(attackPlayer, dropItemList)
- else:
- dropPosX, dropPosY = curNPC.GetPosX(), curNPC.GetPosY()
- ChItem.DoMapDropItem(attackPlayer, dropItemList, npcID, dropPosX, dropPosY, isOnlySelfSee=False)
return
\ No newline at end of file
--
Gitblit v1.8.0