From 0323f1602690cba6522523d968b5ed2032dccba2 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 16 九月 2025 14:37:45 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(李典技能;被动触发支持增加击晕概率;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTree.py | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 40 insertions(+), 2 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTree.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTree.py index e104f94..ae4a7e6 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTree.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTree.py @@ -35,6 +35,11 @@ SyncTreeInfo(curPlayer) return +def PlayerOnDay(curPlayer): + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreeFreeTimeCnt, 0) + SyncTreeInfo(curPlayer) + return + #// B2 23 仙树升级 #tagCMTreeLVUP # #struct tagCMTreeLVUP @@ -152,7 +157,7 @@ % (updLVUPRemainTime, treeLV, LVUPRemainTime, passSeconds, lastRefreshTime), curPlayer.GetPlayerID()) return -def ReduceTreeLVUPTime(curPlayer, reduceTime): +def ReduceTreeLVUPTime(curPlayer, reduceTime, isNotify=True): ## 减少仙树升级剩余时间,可能是使用道具或其他功能等 RefreshTreeLVUPTime(curPlayer) lvupState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreeLVUPState) @@ -165,8 +170,39 @@ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreeLVUPRemainTime, updLVUPRemainTime) GameWorld.DebugLog("减少仙树升级剩余时间! updLVUPRemainTime=%s,LVUPRemainTime=%s,reduceTime=%s" % (updLVUPRemainTime, LVUPRemainTime, reduceTime), curPlayer.GetPlayerID()) - SyncTreeInfo(curPlayer) + if isNotify: + SyncTreeInfo(curPlayer) return True + +def FreeReduceTreeLVTime(curPlayer): + ## 仙树免费减时 + dailyFreeCntMax = IpyGameDataPY.GetFuncCfg("TreeLVUP", 3) + freeCDSeconds = IpyGameDataPY.GetFuncCfg("TreeLVUP", 4) * 60 # 免费CD,秒 + + freeTimeCntToday = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreeFreeTimeCnt) + freeTimeLast = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreeFreeTimeLast) + + if dailyFreeCntMax and freeTimeCntToday >= dailyFreeCntMax: + GameWorld.DebugLog("已达今日免费仙树减时次数! freeTimeCntToday=%s >= %s" % (freeTimeCntToday, dailyFreeCntMax)) + return + + curTime = int(time.time()) + if freeCDSeconds and freeTimeLast and (curTime - freeTimeLast) < freeCDSeconds: + GameWorld.DebugLog("免费仙树减时CD未到! passSeconds=%s < %s" % (curTime - freeTimeLast, freeCDSeconds)) + return + + reduceTime = IpyGameDataPY.GetFuncCfg("TreeLVUP", 5) * 60 + if reduceTime <= 0: + return + + if not ReduceTreeLVUPTime(curPlayer, reduceTime, False): + return + + freeTimeCntToday += 1 + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreeFreeTimeCnt, freeTimeCntToday) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreeFreeTimeLast, curTime) + SyncTreeInfo(curPlayer) + return def DoTreeLVUP(curPlayer): ## 执行仙树升级 @@ -202,5 +238,7 @@ clientPack.TreeLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreeLV) clientPack.LVUPState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreeLVUPState) clientPack.LVUPRemainTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreeLVUPRemainTime) + clientPack.FreeTimeCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreeFreeTimeCnt) + clientPack.FreeTimeLast = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreeFreeTimeLast) NetPackCommon.SendFakePack(curPlayer, clientPack) return -- Gitblit v1.8.0