From ffb198b68f7e75f4fb2046189f1e7b2992d2ebac Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 15 九月 2025 14:41:24 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(于禁技能,支持格挡印记;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py | 161 ++++++----------------------------------------------- 1 files changed, 18 insertions(+), 143 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py index caa2f54..9560250 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py @@ -32,7 +32,6 @@ import DataRecordPack #import ChItem import ShareDefine -import PlayerGreatMaster import PlayerHorse import GameObj import random @@ -1891,9 +1890,9 @@ # if not PlayerHorse.CheckLearnHorseSkill(curPlayer, curSkillTypeID): # return False #天赋技学习点数判断 - if upSkill.GetFuncType() == ChConfig.Def_SkillFuncType_GiftSkill: - if not PlayerGreatMaster.GetGreatMasterFreeSkillPoint(curPlayer): - return False + #if upSkill.GetFuncType() == ChConfig.Def_SkillFuncType_GiftSkill: + # if not PlayerGreatMaster.GetGreatMasterFreeSkillPoint(curPlayer): + # return False #经验检测 skillLvUpNeedExp = upSkill.GetLVUpCostExp() @@ -1958,8 +1957,8 @@ #GeRen_jin_474794 <n color="255,255,0" BKCOLOR="0,0,0">您消耗了经验值:</n><n color="0,190,255" BKCOLOR="0,0,0">{%S1%}</n> PlayerControl.NotifyCode(curPlayer, "GeRen_jin_474794", [skillLvUpNeedExp]) - if upSkill.GetFuncType() == ChConfig.Def_SkillFuncType_GiftSkill: - PlayerGreatMaster.AddGreatMasterSkillPointByLV(curPlayer, -1) + #if upSkill.GetFuncType() == ChConfig.Def_SkillFuncType_GiftSkill: + # PlayerGreatMaster.AddGreatMasterSkillPointByLV(curPlayer, -1) return True #--------------------------------------------------------------------- ##检测学习技能需求条件 @@ -2034,11 +2033,11 @@ needBaseAttrID, needBaseAttrValue = GetSkillUpNeedAttr(stateSkillLV) if needBaseAttrID and needBaseAttrValue: baseAttrDict = { - ShareDefine.Def_Effect_Metal:PlayerControl.GetMetal(curPlayer), - ShareDefine.Def_Effect_Wood:PlayerControl.GetWood(curPlayer), - ShareDefine.Def_Effect_Water:PlayerControl.GetWater(curPlayer), - ShareDefine.Def_Effect_Fire:PlayerControl.GetFire(curPlayer), - ShareDefine.Def_Effect_Earth:PlayerControl.GetEarth(curPlayer), + #ShareDefine.Def_Effect_Metal:PlayerControl.GetMetal(curPlayer), + #ShareDefine.Def_Effect_Wood:PlayerControl.GetWood(curPlayer), + #ShareDefine.Def_Effect_Water:PlayerControl.GetWater(curPlayer), + #ShareDefine.Def_Effect_Fire:PlayerControl.GetFire(curPlayer), + #ShareDefine.Def_Effect_Earth:PlayerControl.GetEarth(curPlayer), } if needBaseAttrID not in baseAttrDict: GameWorld.ErrLog(' 技能升级属性点条件配置错误,curSkillTypeID=%s,needBaseAttrID=%s'%(curSkillTypeID, needBaseAttrID)) @@ -2171,11 +2170,11 @@ if skillTypeID not in PyGameData.g_elemntSkillDict: return isNotify, hasChangeLV baseAttrDict = { - ShareDefine.Def_Effect_Metal:PlayerControl.GetMetal(curPlayer), - ShareDefine.Def_Effect_Wood:PlayerControl.GetWood(curPlayer), - ShareDefine.Def_Effect_Water:PlayerControl.GetWater(curPlayer), - ShareDefine.Def_Effect_Fire:PlayerControl.GetFire(curPlayer), - ShareDefine.Def_Effect_Earth:PlayerControl.GetEarth(curPlayer), + #ShareDefine.Def_Effect_Metal:PlayerControl.GetMetal(curPlayer), + #ShareDefine.Def_Effect_Wood:PlayerControl.GetWood(curPlayer), + #ShareDefine.Def_Effect_Water:PlayerControl.GetWater(curPlayer), + #ShareDefine.Def_Effect_Fire:PlayerControl.GetFire(curPlayer), + #ShareDefine.Def_Effect_Earth:PlayerControl.GetEarth(curPlayer), } activeSkillLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SkillElementLV % skillTypeID) limitInfoList = PyGameData.g_elemntSkillDict[skillTypeID] @@ -2594,8 +2593,8 @@ # @remarks 刷新玩家场景状态 def ProcessPlayerAreaState(curPlayer): #初始化所有的场景buff状态 - playerControl = PlayerControl.PlayerControl(curPlayer) - playerControl.InitMapBuffState() + #playerControl = PlayerControl.PlayerControl(curPlayer) + #playerControl.InitMapBuffState() buffManager = curPlayer.GetMapBuff() @@ -2621,89 +2620,6 @@ callFunc(curPlayer, curEffect) return -#--------------------------------------------------------------------- -##添加装备触发的Buff -# @param curPlayer 玩家实例 -# @param curEquip 装备实例 -# @return 返回值无意义 -# @remarks 添加装备触发的Buff -def RefreshSkillBuffByEquip(curPlayer, curEquip) : - #一般装备新增Buff - __DoEquip_AddBuff(curPlayer, curEquip) - return - -#--------------------------------------------------------------------- -##添加装备触发的Buff, 一般装备新增Buff -# @param curPlayer 玩家实例 -# @param curEquip 装备实例 -# @return 返回值无意义 -# @remarks 添加装备触发的Buff, 一般装备新增Buff -def __DoEquip_AddBuff(curPlayer, curEquip): - gameData = GameWorld.GetGameData() - playerVehicle = curPlayer.GetPlayerVehicle() - houseState = curPlayer.GetPlayerRidehorseState() - - for index in range(0 , curEquip.GetAddSkillCount()): - curSkillID = curEquip.GetAddSkill(index) - - if curSkillID == 0: - continue - - #通过技能ID获得使用技能 - curSkill = gameData.GetSkillBySkillID(curSkillID) - - if curSkill == None : - GameWorld.Log("装备触发技能,物品表错误 curSkillID = %s"%(curSkillID) , curPlayer.GetPlayerID()) - continue - - #骑马触发技能 - houseSkill = ChConfig.Def_Skill_TypeID_Speed - curSkillType = curSkill.GetSkillTypeID() - - if not SkillCommon.IsBuff(curSkill): - continue - - if curSkillType in houseSkill: - #不使用,不添加buff - if playerVehicle != IPY_GameWorld.pvHorse : - continue - - if curSkillType == houseSkill[0] and houseState != IPY_GameWorld.prsNormal : - continue - - if curSkillType == houseSkill[1] and houseState != IPY_GameWorld.prsRun : - continue - - #添加Buff - BuffSkill.AddBuffNoRefreshState(curPlayer, IPY_GameWorld.bfEquipBuff, curSkill, 0, [], buffOwner = curPlayer) - - return -#--------------------------------------------------------------------- -##刷新buff的效果 -# @param buffState Buff管理器 -# @param sameEffectCanWork 是否可以叠加相同效果, <sameEffectCanWork> : 效果是否可以叠加, 默认为否 -# @return 返回值无意义 -# @remarks 刷新buff的效果 (参数 -> buff管理器,是否叠加) -def __RefreshSkillBuffEffect(buffState, sameEffectCanWork = False): - return - #=========================================================================== - # buffState.ClearEffects() - # for buffIndex in range(0, buffState.GetBuffCount()): - # curBuff = buffState.GetBuff(buffIndex) - # buffValue = curBuff.GetValue() - # curSkill = curBuff.GetSkill() - # skillID = curSkill.GetSkillID() - # if skillID == 0: - # continue - # - # for effectIndex in range(0, curSkill.GetEffectCount()): - # curEffect = curSkill.GetEffect(effectIndex) - # effectID = curEffect.GetEffectID() - # if effectID == 0: - # continue - # - # buffState.AddEffect(curEffect, buffValue, skillID, curBuff.GetOwnerID(), curBuff.GetOwnerType()) - #=========================================================================== #--------------------------------------------------------------------- ##计算效果值 @@ -2807,35 +2723,6 @@ return ChConfig.Def_CalcAttrIndexDict[(isBaseEff, calcType)] - -##刷新玩家所有影响属性的Buff,添加时只重计算同类型BUFF,删除时刷新所有类型BUFF -# @param curPlayer 玩家实例 -# @param buffType buff类型 -1代表全部刷性 -# @return 返回值无意义 -def RefreshPlayerBuffOnAttrAddEffect(curPlayer, buffType=-1): - return -#=============================================================================== -# GameWorld.DebugLog("Start RefreshPlayerBuffOnAttrAddEffect!!!") -# -# #[[BuffState, CanPileup]] -# if buffType == -1: -# buffRefreshList = [ -# [curPlayer.GetBuffState(), False], [curPlayer.GetDeBuffState(), False], -# [curPlayer.GetAura(), False], [curPlayer.GetIncBuff(), True], -# [curPlayer.GetPassiveBuf(), True], [curPlayer.GetEquipBuff(), True], -# ] -# else: -# #只重计算改变的BUFF, 这里不防范非属性类型BUFF外层过滤 -# buffManagerInfo = SkillCommon.GetBuffManagerByBuffType(curPlayer, buffType) -# buffRefreshList = [[buffManagerInfo[0], buffManagerInfo[2]]] -# -# #执行刷新逻辑 -# __DoRefreshBuff(buffRefreshList) -# -# return -#=============================================================================== - - # 通过技能ID删除buff对应的效果ID def ClearBuffEffectBySkillID(curObj, skillID, ownerID, ownerType): curSkill = GameWorld.GetGameData().GetSkillBySkillID(skillID) @@ -2936,18 +2823,6 @@ for i in effectIndexList: buffState.DeleteEffectByIndex(i) - - -##刷新管理器中的Buff -# @param buffRefreshList Buff刷新列表[[BuffState, CanPileup]] -# @return 返回值无意义 -# @remarks 按照叠加规则, 刷新指定管理中的Buff -def __DoRefreshBuff(buffRefreshList): - for buffState, canPileUp in buffRefreshList: - __RefreshSkillBuffEffect(buffState, canPileUp) - - return - ##计算行为BUFF对人物行为状态的改变 # @param curPlayer 玩家实例 @@ -3618,7 +3493,7 @@ #调用攻击惩罚逻辑 BaseAttack.DoLogic_AttackResult(attacker, defender, None, tick) - TurnAttack.OnTurnfightAttackResult(attacker, defender, curSkill) + #TurnAttack.OnTurnfightAttackResult(attacker, defender, curSkill) return #--------------------------------------------------------------------- -- Gitblit v1.8.0