From 623442b524137821ea6abb1b429660a9a107b364 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 31 一月 2019 19:27:01 +0800
Subject: [PATCH] 6118 【后端】【1.5.200】新增技能效果-- 宠物技能-宠物主人受到暴击伤害时触发技能 - 效果填写错误
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py | 63 +++++++++++++++++++++++++++++++
1 files changed, 62 insertions(+), 1 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
index 484338f..ed6e2f4 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
@@ -29,6 +29,7 @@
import ItemControler
import PlayerMagicWeapon
import PlayerFamilyRedPacket
+import PlayerGatherSoul
import IpyGameDataPY
import EventShell
import PyGameData
@@ -42,6 +43,7 @@
import Operate_EquipStone
import Operate_EquipWash
import Operate_EquipSuitCompose
+import PlayerFeastRedPacket
import PlayerDogz
import QuestCommon
import DataRecordPack
@@ -273,6 +275,9 @@
ShareDefine.SuccType_DogzBattle,
ShareDefine.SuccType_DogzEquipPlus,
ShareDefine.SuccType_MainTaskNode,
+ ShareDefine.SuccType_InlayGatherSoul,
+ ShareDefine.SuccType_GatherSoulLvUp,
+ ShareDefine.SuccType_UseStoveBylv,
]
curCheckVersion = GetPDictValue(curPlayer, ChConfig.Def_PDict_Success_CheckVersion)
@@ -297,6 +302,7 @@
passlv = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_TrialTower_PassLV)
DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_PassRuneTower, 1, [passlv])
elif succType == ShareDefine.SuccType_GodWeapon:
+ ResetSuccessByType(curPlayer, succType)
maxType = ipyDataMgr.GetGodWeaponByIndex(ipyDataMgr.GetGodWeaponCount()-1).GetType()
for i in xrange(1, maxType + 1):
weaponLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % i)
@@ -323,7 +329,10 @@
DoEquipSuccessLogic(curPlayer)
elif succType in [ShareDefine.SuccType_InlayRune, ShareDefine.SuccType_RuneLvUp]:
PlayerRune.DoRuneSuccessLogic(curPlayer)
+ elif succType in [ShareDefine.SuccType_InlayGatherSoul, ShareDefine.SuccType_GatherSoulLvUp]:
+ PlayerGatherSoul.DoGatherSoulSuccessLogic(curPlayer)
elif succType == ShareDefine.SuccType_RealmlvUp:
+ ResetSuccessByType(curPlayer, succType)
UptateSuccessProgress(curPlayer, succType, curPlayer.GetOfficialRank())
elif succType == ShareDefine.SuccType_PetClassLV:
ResetSuccessByType(curPlayer, succType)
@@ -345,6 +354,7 @@
elif succType in [ShareDefine.SuccType_EquipWashLV1,ShareDefine.SuccType_EquipWashLV2,ShareDefine.SuccType_EquipWashLV3]:
Operate_EquipWash.EquipWashSuccess(curPlayer)
elif succType == ShareDefine.SuccType_MWSkillUp:
+ ResetSuccessByType(curPlayer, succType)
skillManager = curPlayer.GetSkillManager()
for i in range(0, skillManager.GetSkillCount()):
curSkill = skillManager.GetSkillByIndex(i)
@@ -355,12 +365,14 @@
elif succType == ShareDefine.SuccType_EquipSuit:
Operate_EquipSuitCompose.DoSuiteSuccess(curPlayer)
elif succType == ShareDefine.SuccType_FamilyTechLV:
+ ResetSuccessByType(curPlayer, succType)
techNeedLVDict = IpyGameDataPY.GetFuncEvalCfg('FamilyTechNeedLV', 1, {})
techIDList = techNeedLVDict.keys()
for techID in techIDList:
techLV = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyTechLV % techID)
UptateSuccessProgress(curPlayer, succType, techLV, [techID])
elif succType == ShareDefine.SuccType_AlchemyLV:
+ ResetSuccessByType(curPlayer, succType)
alchemyLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AlchemyLV)
UptateSuccessProgress(curPlayer, succType, alchemyLV)
elif succType == ShareDefine.SuccType_VIPLV:
@@ -387,6 +399,17 @@
missionID = succData.condition[0]
if QuestCommon.GetHadFinishMainMission(curPlayer, missionID):
DoAddSuccessProgress(curPlayer, succType, 1, [missionID])
+ elif succType == ShareDefine.SuccType_UseStoveBylv:
+ ResetSuccessByType(curPlayer, succType)
+ for i in xrange(ipyDataMgr.GetAttrFruitCount()):
+ ipyData = ipyDataMgr.GetAttrFruitByIndex(i)
+ fruitItemID = ipyData.GetID()
+ hasUseCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AttrFruitEatCnt % fruitItemID)
+ if ipyData.GetFuncID() == ShareDefine.Def_AttrFruitFunc_Stove:
+ itemData = GameWorld.GetGameData().GetItemByTypeID(fruitItemID)
+ if not itemData:
+ continue
+ DoAddSuccessProgress(curPlayer, succType, hasUseCnt, [itemData.GetLV()])
DataRecordPack.DR_CheckOldPlayerSuccess(curPlayer)
SetPDictValue(curPlayer, ChConfig.Def_PDict_Success_CheckVersion, initGameWorldTime)
@@ -413,6 +436,29 @@
SetSuccHasGot(curPlayer, succID, False)
resetList.append(succID)
GameWorld.DebugLog(" OnWeek 重置成就类型: succID=%s" % (succID))
+ if resetList:
+ Sync_SuccTypeIndexAwardRecord(curPlayer, resetList, True)
+ Sync_SuccessInfo(curPlayer, resetList, True)
+ return
+
+def DoResetSuccessIDList(curPlayer, resetSuccIDList):
+ ## 重置成就相关数据
+ if not resetSuccIDList:
+ return
+ resetList = []
+ for succID in resetSuccIDList:
+ succData = GetSuccDataMng().GetSuccessData(succID)
+ if not succData:
+ continue
+ succType = succData.succType
+ condition = succData.condition
+ #if not GetSuccFinishValue(curPlayer, succType, condition):
+ # continue
+ SetSuccFinishValue(curPlayer, succType, condition, 0)
+ SetSuccFinish(curPlayer, succID, False)
+ SetSuccHasGot(curPlayer, succID, False)
+ resetList.append(succID)
+ GameWorld.DebugLog(" 重置成就类型: succType=%s,succID=%s" % (succType, succID))
if resetList:
Sync_SuccTypeIndexAwardRecord(curPlayer, resetList, True)
Sync_SuccessInfo(curPlayer, resetList, True)
@@ -537,6 +583,9 @@
def UptateSuccessProgress(curPlayer, successType, newCnt, condition=[]):
if successType not in ShareDefine.SuccessTypeList:
return
+ if successType in ShareDefine.FeastRedPackSuccessTypeList:
+ if not PlayerFeastRedPacket.GetFeastRedPacketState():
+ return
succInfoList = GetSuccDataMng().GetSuccDataByType(successType)
if not succInfoList:
return
@@ -558,6 +607,11 @@
succID = succDataObj.succID
cond = succDataObj.condition
+ if successType in ShareDefine.FeastRedPackSuccessTypeList:
+ todayFeastSuccIDList = PlayerFeastRedPacket.GetTodayFeastSuccIDList()
+ if not todayFeastSuccIDList or succID not in todayFeastSuccIDList:
+ #GameWorld.DebugLog(" 非今日节日红包成就,不增加进度! succID=%s,todayFeastSuccIDList=%s" % (succID, todayFeastSuccIDList))
+ return
isUnDownCheck = successType in ShareDefine.UnDownCheckSuccessTypeList
isContain = successType in ShareDefine.ContainSuccessTypeList
# 已完成的不再检查
@@ -628,7 +682,14 @@
def DoAddSuccessProgress(curPlayer, successType, addCnt, condition=[], delayCalc=True):
#GameWorld.DebugLog("DoAddSuccessProgress type=%s,addCnt=%s,condition=%s"
# % (successType, addCnt, condition), curPlayer.GetPlayerID())
-
+ if GameWorld.IsCrossServer():
+ return
+
+ if successType in ShareDefine.FeastRedPackSuccessTypeList:
+ if not PlayerFeastRedPacket.GetFeastRedPacketState():
+ #GameWorld.DebugLog("非节日红包活动时间,不增加成就!successType=%s" % successType)
+ return
+
playerID = curPlayer.GetID()
if delayCalc and successType not in ShareDefine.NeedResetSuccessTypeList:
if playerID not in PyGameData.g_delaySuccessDict:
--
Gitblit v1.8.0