From 3beded4a9ae2e126158d89a4e7048f595ea0bc1b Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 25 八月 2025 12:01:24 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(技能触发来源触发逻辑优化;增加承伤盾支持,0428通知buff相关值;增加嘲讽支持,优化技能选择目标逻辑;增加连击、反击、格挡、暴击、通用击晕支持;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRefineStove.py | 130 ++++++++++++++++++++----------------------- 1 files changed, 60 insertions(+), 70 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRefineStove.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRefineStove.py index 761950d..78630bc 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRefineStove.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRefineStove.py @@ -25,10 +25,7 @@ import ShareDefine import ItemCommon import PlayerSuccess -import PlayerAttrFruit import IpyGameDataPY -import EventShell -import PlayerActivity import PlayerFairyCeremony import PlayerNewFairyCeremony import PlayerActGarbageSorting @@ -132,9 +129,6 @@ GameWorld.DebugLog("配方材料不足!alchemyID=%s,needMaterialDict=%s,lackItemDict=%s,hasItemDict=%s" % (alchemyItemID, needMaterialDict, lackItemDict, delInfoDict), playerID) return - #任务 - for _ in xrange(refineTimes): - EventShell.EventRespons_RefineItem(curPlayer, alchemyQuality, alchemyItemID) #扣消耗 ItemCommon.DelCostItem(curPlayer, itemPack, delInfoDict, ChConfig.ItemDel_Alchemy) @@ -226,10 +220,6 @@ notNotifyItemIDList = IpyGameDataPY.GetFuncEvalCfg("AlchemyNotify", 3) if alchemyItemID not in notNotifyItemIDList and (alchemyItemID in needNotifyItemIDList or makeItemData.GetItemColor() >= notifyColor): PlayerControl.WorldNotify(0, "AchemyGreatSuccess", [curPlayer.GetPlayerName(), alchemyItemID]) - -# #任务,改为开始炼丹触发 -# for _ in xrange(refineTimes): -# EventShell.EventRespons_RefineItem(curPlayer, alchemyQuality, alchemyItemID) #重置 PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_AlchemyItemID % alchemType, 0) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_AlchemyStartTime % alchemyID, 0) @@ -280,7 +270,6 @@ alchemyLV += 1 GameWorld.DebugLog(" 炼丹升级: alchemyLV=%s,alchemyExp=%s" % (alchemyLV, alchemyExp), curPlayer.GetPlayerID()) isLVUp = True - EventShell.EventRespons_RefineStoveUp(curPlayer, alchemyLV) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_AlchemyExp, alchemyExp) if not isLVUp: return False @@ -331,10 +320,10 @@ def CalcStoveAttr(curPlayer): # 果实加成 - allAttrYaoList = [{} for _ in range(4)] - fightPowerEx = PlayerAttrFruit.CalcAttrFruitAddAtrr(curPlayer, allAttrYaoList, ShareDefine.Def_AttrFruitFunc_Stove) - PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_StoveYao, allAttrYaoList) - PlayerControl.SetMFPExFightPower(curPlayer, ShareDefine.Def_MFPType_StoveYao, fightPowerEx) +# allAttrYaoList = [{} for _ in range(4)] +# fightPowerEx = PlayerAttrFruit.CalcAttrFruitAddAtrr(curPlayer, allAttrYaoList, ShareDefine.Def_AttrFruitFunc_Stove) +# PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_StoveYao, allAttrYaoList) +# PlayerControl.SetMFPExFightPower(curPlayer, ShareDefine.Def_MFPType_StoveYao, fightPowerEx) return @@ -346,62 +335,63 @@ # tagHead Head; #}; def PlayerPrayElixir(index, clientPack, tick): - curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) - prayCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AlchemyPrayCnt) - limitCnt = PlayerVip.GetPrivilegeValue(curPlayer, ChConfig.VIPPrivilege_PrayElixir) - if prayCnt >= limitCnt: - GameWorld.DebugLog('今日祈福丹药次数已满!prayCnt=%s' % prayCnt) - return - packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, 1) - if not packSpace: - PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371") - return - - alchemyItemList = IpyGameDataPY.GetFuncEvalCfg('GodAlchemy') - - newItemInfoList = [] - for itemInfo in alchemyItemList: - itemID = itemInfo[1] -# if not GetIsCanOutByAlchemyLV(curPlayer, itemID): -# #GameWorld.DebugLog('祈福丹药,炼丹等级未达到,移除产出库!itemID=%s'%itemID) -# continue - if PlayerAttrFruit.IsFruitEatFull(curPlayer, itemID): - #GameWorld.DebugLog('祈福丹药,使用次数已满,移除产出库!itemID=%s'%itemID) - continue - newItemInfoList.append(itemInfo) - if not newItemInfoList: - GameWorld.DebugLog('祈福丹药,没有丹药可产出!!') - return - - makeItemInfo = GameWorld.GetResultByWeightList(newItemInfoList) - if not makeItemInfo: - GameWorld.DebugLog("祈福丹药, 结果错误!") - return - - makeItemID, itemCount = makeItemInfo - makeItemData = GameWorld.GetGameData().GetItemByTypeID(makeItemID) - if not makeItemData: - return - - costMoney = IpyGameDataPY.GetFuncCfg('GodAlchemy', 2) - if not PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costMoney, ChConfig.Def_Cost_AlchemyPray): - return - #给物品 - ItemControler.GivePlayerItem(curPlayer, makeItemID, itemCount, 0, [IPY_GameWorld.rptItem], - event=[ChConfig.ItemGive_Refine, False, {}]) - #GameWorld.DebugLog('makeItemID=%s,newItemInfoList=%s'%(makeItemID, newItemInfoList)) - - #紫色及以上全服广播 - notifyColor = IpyGameDataPY.GetFuncCfg("AlchemyNotify", 1) - needNotifyItemIDList = IpyGameDataPY.GetFuncEvalCfg("AlchemyNotify", 2) - notNotifyItemIDList = IpyGameDataPY.GetFuncEvalCfg("AlchemyNotify", 3) - if makeItemID not in notNotifyItemIDList and (makeItemID in needNotifyItemIDList or makeItemData.GetItemColor() >= notifyColor): - PlayerControl.WorldNotify(0, "BlastfurnaceBlessing", [curPlayer.GetPlayerName(), makeItemID]) - - #更新次数 - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_AlchemyPrayCnt, prayCnt + 1) - Sycn_AlchemyPrayMsg(curPlayer, makeItemID) return +# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) +# prayCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AlchemyPrayCnt) +# limitCnt = PlayerVip.GetPrivilegeValue(curPlayer, ChConfig.VIPPrivilege_PrayElixir) +# if prayCnt >= limitCnt: +# GameWorld.DebugLog('今日祈福丹药次数已满!prayCnt=%s' % prayCnt) +# return +# packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, 1) +# if not packSpace: +# PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371") +# return +# +# alchemyItemList = IpyGameDataPY.GetFuncEvalCfg('GodAlchemy') +# +# newItemInfoList = [] +# for itemInfo in alchemyItemList: +# itemID = itemInfo[1] +## if not GetIsCanOutByAlchemyLV(curPlayer, itemID): +## #GameWorld.DebugLog('祈福丹药,炼丹等级未达到,移除产出库!itemID=%s'%itemID) +## continue +# if PlayerAttrFruit.IsFruitEatFull(curPlayer, itemID): +# #GameWorld.DebugLog('祈福丹药,使用次数已满,移除产出库!itemID=%s'%itemID) +# continue +# newItemInfoList.append(itemInfo) +# if not newItemInfoList: +# GameWorld.DebugLog('祈福丹药,没有丹药可产出!!') +# return +# +# makeItemInfo = GameWorld.GetResultByWeightList(newItemInfoList) +# if not makeItemInfo: +# GameWorld.DebugLog("祈福丹药, 结果错误!") +# return +# +# makeItemID, itemCount = makeItemInfo +# makeItemData = GameWorld.GetGameData().GetItemByTypeID(makeItemID) +# if not makeItemData: +# return +# +# costMoney = IpyGameDataPY.GetFuncCfg('GodAlchemy', 2) +# if not PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costMoney, ChConfig.Def_Cost_AlchemyPray): +# return +# #给物品 +# ItemControler.GivePlayerItem(curPlayer, makeItemID, itemCount, 0, [IPY_GameWorld.rptItem], +# event=[ChConfig.ItemGive_Refine, False, {}]) +# #GameWorld.DebugLog('makeItemID=%s,newItemInfoList=%s'%(makeItemID, newItemInfoList)) +# +# #紫色及以上全服广播 +# notifyColor = IpyGameDataPY.GetFuncCfg("AlchemyNotify", 1) +# needNotifyItemIDList = IpyGameDataPY.GetFuncEvalCfg("AlchemyNotify", 2) +# notNotifyItemIDList = IpyGameDataPY.GetFuncEvalCfg("AlchemyNotify", 3) +# if makeItemID not in notNotifyItemIDList and (makeItemID in needNotifyItemIDList or makeItemData.GetItemColor() >= notifyColor): +# PlayerControl.WorldNotify(0, "BlastfurnaceBlessing", [curPlayer.GetPlayerName(), makeItemID]) +# +# #更新次数 +# PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_AlchemyPrayCnt, prayCnt + 1) +# Sycn_AlchemyPrayMsg(curPlayer, makeItemID) +# return def Sycn_AlchemyPrayMsg(curPlayer, itemID=0): -- Gitblit v1.8.0