From 7d74fb08b06e9d5d5236c017e23daf3807dd4d5a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 24 十一月 2018 15:08:54 +0800
Subject: [PATCH] 4762 副本总表增加助战相关字段;VIP特权表增加助战相关特权;
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py | 46 +++++++++++++++++++++++++++++++++++++---------
1 files changed, 37 insertions(+), 9 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py
index 50db3f4..32dd8df 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py
@@ -25,7 +25,7 @@
import IpyGameDataPY
import PyGameData
import ChConfig
-import NPCCommon
+import PlayerActivity
import ItemCommon
import ItemControler
import EventReport
@@ -358,7 +358,7 @@
maxCnt = npcInfo[DL_ScreenMaxNPC]
totalMaxCnt = npcInfo[DL_TotalNPCCnt]
NPCCustomRefresh.SetNPCRefresh(npcInfo[Def_RefreshMark], [npcid], maxCnt, totalMaxCnt)
- npcCnt += maxCnt
+ npcCnt += totalMaxCnt
NPCCustomRefresh.ProcessAllNPCRefresh(tick) # 立即出发一次标识点刷新
gameFB.SetGameFBDict(FBPlayerDict_RemainNPCCnt, npcCnt)
@@ -521,14 +521,16 @@
lineID = FBCommon.GetFBPropertyMark()
star = GameWorld.GetGameFB().GetGameFBDictByKey(FBPlayerDict_FBStar)
mapID = ChConfig.Def_FBMapID_IceLode
-
+ isInFBOnDay = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_IceLodeIsInFBOnDay)
#更新星级
lastStar = GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineID, False, [mapID])
if isPass and star > lastStar:
GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineID, star, False, [mapID])
FBCommon.Sync_FBPlayerFBInfoData(curPlayer, mapID) # 同步信息
- isInFBOnDay = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_IceLodeIsInFBOnDay)
- if isInFBOnDay: #在副本里过天,副本结束后再补发奖励
+ if not lastStar and not isInFBOnDay: #每日活动
+ PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_IceLode)
+
+ if isInFBOnDay: #在副本里过天,副本结束后再补发星级奖励
CheckIceLodeStarAwardMail(curPlayer)
# exp = gameFB.GetPlayerGameFBDictByKey(playerID, FBPlayerDict_TotalExp)
# expPoint = gameFB.GetPlayerGameFBDictByKey(playerID, FBPlayerDict_TotalExpPoint)
@@ -538,9 +540,22 @@
if not costTime:
costTime = tick - GameWorld.GetGameFB().GetFBStepTick()
#jsonItemList = PyGameData.g_fbPickUpItemDict.get(playerID, [])
- jsonItemList = FBCommon.GetJsonItemList(FBCommon.GetFBLineReward(mapID, lineID))
+ overDict = {FBCommon.Over_isPass:int(isPass), FBCommon.Over_costTime:costTime}
+ if isPass:
+ itemList = FBCommon.GetFBLineReward(mapID, lineID)
+ # 给物品
+ needSpace = len(itemList)
+ packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
+ if needSpace > packSpace:
+ PlayerControl.SendMailByKey('', [curPlayer.GetID()], itemList)
+ else:
+ for itemID, itemCount, isBind in itemList:
+ ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem])
+
+ jsonItemList = FBCommon.GetJsonItemList(itemList)
+ overDict[FBCommon.Over_itemInfo] = jsonItemList
# 通知结果
- __SendIceLodeOverInfo(curPlayer, {FBCommon.Over_isPass:int(isPass), FBCommon.Over_costTime:costTime, FBCommon.Over_itemInfo:jsonItemList})
+ __SendIceLodeOverInfo(curPlayer, overDict)
# 进入离开阶段
FBCommon.SetFBStep(FB_Step_Over, tick)
@@ -575,6 +590,9 @@
## 可否扫荡
def OnPlayerFBSweepAsk(curPlayer, mapID, lineID, sweepCnt, isFinish, dataEx):
+ if curPlayer.GetMapID() == ChConfig.Def_FBMapID_IceLode:
+ GameWorld.DebugLog('冰晶矿脉扫荡 副本里不能扫荡 ')
+ return
#战力判断
LVIpyData = PlayerControl.GetPlayerLVIpyData(curPlayer.GetLV())
reFightPower = 0 if not LVIpyData else LVIpyData.GetIceLodeFightPower() # 当前等级参考战力
@@ -612,8 +630,16 @@
else:
for itemID, itemCnt, isBind in itemList:
ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, isBind, [IPY_GameWorld.rptItem])
-
-
+ #直接将5条线星级改为3星
+ addCnt = 0
+ starCnt, lineList = GetIceLodeAllStarCnt(curPlayer)
+ for lineid in lineList:
+ curStar = GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineid, False, [mapID])
+ if curStar == 0:
+ addCnt += 1
+ GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineid, 3, False, [mapID])
+ PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_IceLode, addCnt)
+ FBCommon.Sync_FBPlayerFBInfoData(curPlayer, mapID) # 同步信息
# npcCountDict = {}
# iceLodeSweepDict = IpyGameDataPY.GetFuncEvalCfg('IceLodeSweep')
# for npcID, count in iceLodeSweepDict.items():
@@ -718,8 +744,10 @@
maxCnt, randomCnt = IpyGameDataPY.GetFuncEvalCfg('IceLodeCfg', 2)
for i in xrange(maxCnt):
GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, i, 0, False, [ChConfig.Def_FBMapID_IceLode])
+ FBCommon.Sync_FBPlayerFBInfoData(curPlayer, ChConfig.Def_FBMapID_IceLode) # 同步信息
#重置领奖记录
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_IceLodeStarAwardRecord, 0)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_IceLodeHasSweep, 0)
#随机今日玩法
__RandomLine(curPlayer)
#通知
--
Gitblit v1.8.0