6603 【后端】【2.0】增加新版的sp和被动技能
| | |
| | |
|
| | | # Elfçµä¸ºæ¿èº«æ»å»ï¼è¦åç©å®¶ç屿§ï¼NPC为主人åè¿æ¯åçµ
|
| | | def ElfChangeAttacker(attacker):
|
| | | if not attacker:
|
| | | return attacker
|
| | | if attacker.GetGameObjType() != IPY_GameWorld.gotNPC:
|
| | | # --ç©å®¶
|
| | | return attacker
|
| | |
| | | # atkSkillPer å
嫿®æ»ï¼æä»¥ä¸æ¯ç¨æè½å¢å¼ºå¤ç
|
| | | atkSkillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddSkillPer)
|
| | | atkSkillPer += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddSkillPer)
|
| | | atkSkillPer += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(defObj, atkObj, curSkill, ChConfig.TriggerType_BeAttackAddSkillPer)
|
| | |
|
| | | if isSuperHit and hurtType == ChConfig.Def_HurtType_SuperHit:
|
| | | aSuperHit += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_SuperHitValue)
|
| | |
| | | Def_Skill_Effect_PowerPart = 1206 # å
è½è½éåæ®µï¼è§¦åå³ç®ä¸æ¬¡å
è½ï¼æè¿åº¦æ¡èå
|
| | | Def_Skill_Effect_ProcessAttack = 1314 # é´éæ§æ»å»ï¼Aå¼ä¸ºæ»å»æ¬¡æ°ï¼Bå¼ä¸ºæ¯å¦å¹¿æå®¢æ·ç«¯
|
| | | Def_Skill_Effect_BuffTick = 9999 #BUFFçæ¶é´å¤çé´é
|
| | | Def_Skill_Effect_BurnToAddHP = 1091 #buffä¸ç¼ç§ä¼¤å®³è½¬åå¸è¡ç» æ¾ç¼ç§è
|
| | | Def_Skill_Effect_ProBloodPer = 4505 #buffä¸ä¸æ¯ä¼¤å®³ç¾åæ¯å¢å ï¼ç»å害è
çbuffï¼
|
| | |
|
| | | #åæ»çæè½ææID------------NPCä¸ç¨
|
| | |
| | |
|
| | |
|
| | | #---------éè¦è®°å½å¨buff管çå¨ä¸çææID,主è¦ç¨äºæ¥æ¾ç¨---------------------------
|
| | | Def_BuffManager_EffectsID = [Def_Skill_Effect_AbsorbShield, Def_Skill_Effect_AbsorbShieldXMZJ, Def_Skill_Effect_StoreBlood]
|
| | | Def_BuffManager_EffectsID = [Def_Skill_Effect_AbsorbShield, Def_Skill_Effect_AbsorbShieldXMZJ, |
| | | Def_Skill_Effect_StoreBlood, Def_Skill_Effect_BurnToAddHP, Def_Skill_Effect_BuffState]
|
| | | #-------------------------------------------------------------------------
|
| | |
|
| | | #åºç¡å±æ§ææID
|
| | |
| | | # é线æ§å¢å
|
| | | #1015:("NoLinePlus", [TYPE_Calc_AttrATKMin, TYPE_Calc_AttrATKMax]), # æé«æ»å»åç¾åæ¯
|
| | |
|
| | | # é线æ§åå°
|
| | | #1098:("NoLineReduce", [TYPE_Calc_AttrATKMax, TYPE_Calc_AttrATKMin,
|
| | | # TYPE_Calc_AttrMATKMax, TYPE_Calc_AttrMATKMin]), # é使»å»ç¾åæ¯ |
| | |
|
| | | # æ ¹æ®ç级段线æ§å¢å ï¼ææBå¼ä¸ºç级段é
ç½®
|
| | | 500:("LinePlusByLV", [TYPE_Calc_HPCureEnhance]), # æé«è¡ç¶æ¢å¤ææ
|
| | |
| | | Def_PlayerState_LimitSkill, # ç¦éç¶æ 10
|
| | | Def_PlayerState_LimitAddHP, # ç¦çç¶æ 11
|
| | | Def_PlayerState_Blind, # è´ç²ç¶æ 12
|
| | | Def_PlayerState_LoseBlood1, # ç¼ç§ 13
|
| | | Def_PlayerState_Burn, # ç¼ç§ 13
|
| | | Def_PlayerState_LoseBlood2, # èä¸2æç»æè¡ç¶æ 14
|
| | | Def_PlayerState_LoseBlood3, # èä¸3æç»æè¡ç¶æ 15
|
| | | Def_PlayerState_MissSneerAtk, # 对å²è®½æ»å»å
ç«è¡¨ç°ä¸ºmiss 16
|
| | | Def_PlayerState_BeInAir, # 浮空ï¼åæ³åç©æç±»ï¼ 17
|
| | | Def_PlayerState_zqdlj, # ç´«æ°ä¸æ¥éçµæ ¹æè½ç¶æ 18
|
| | | ) = range(19)
|
| | | Def_PlayerState_Ice, # å¯å°ç¶æï¼ååéï¼ 19
|
| | | ) = range(20)
|
| | |
|
| | | #---SetDict å«NPCåå
¸KEYï¼ä¸åäºæ°æ®åº---
|
| | | Def_GameObjKey_InheritOwner = "InheritOwner" # ç±»æ´é£éªè®¡ç®æ¶ç¨ä¸»äººå±æ§
|
| | |
| | | TriggerType_AttackKill, # նɱ
|
| | | TriggerType_WillDead, # è¿å
¥æ¿æ»ç¶ææ¶è§¦åæè½ 25
|
| | | TriggerType_BuffBoom, # 䏿¯åçç¸
|
| | | TriggerType_Success_Buff_SkillPer, # æé«4501æåæ¦ç
|
| | | TriggerType_BeAttackAddSkillPer, # 被æ»å»æé«æè½ä¼¤å®³
|
| | | TriggerType_HurtObjAddBuff, # å¨ç®ä¼¤å®³æ¶ç¾¤æ»1对1å buffï¼å¯ç¨äºä¸ä¸ªä¼¤å®³å¤æ¬¡è§¦å
|
| | | TriggerType_BeBoomSeed, # 被å¨å¼çè§éå
对象çbuffç§å 29
|
| | | TriggerType_AttackCnt, # å¢å æè½æ»å»æ°éï¼ææID1200ï¼ 30
|
| | |
| | | # @param pyState ״̬
|
| | | # @return æ¯å¦è¯¥ç¶æ
|
| | | # @remarks è¯¥ç¶æä¸ºbuff对åºçèªå®ä¹ç¶æææ
|
| | | # ç®åå½ç®æ 身ä¸å¤ä¸ªbuff齿åä¸æææ¶(å¦å®èº«)ï¼å¨ä¸ä¸ªbuffæ¶å¤±æ¶ä¼è§£é¤è¯¥ç¶æ
|
| | | # æ
è¯¥ç¶ææ è®°ä»
为ä¸ä¸ªéç²¾ç¡®çæ è®°ï¼åºç¨ä¸è¯·æ³¨æï¼ï¼ï¼(å½ä¸ä»
å½å¤ä¸ªbuffæåä¸ä¸ªæææ¶ä¼æåç»æè¯¥ç¶æ)
|
| | |
|
| | | #===============================================================================
|
| | | # æ¤é®é¢å¨4012 æ¶å¤±æ¶å¤ç
|
| | | # # ç®åå½ç®æ 身ä¸å¤ä¸ªbuff齿åä¸æææ¶(å¦å®èº«)ï¼å¨ä¸ä¸ªbuffæ¶å¤±æ¶ä¼è§£é¤è¯¥ç¶æ
|
| | | # # æ
è¯¥ç¶ææ è®°ä»
为ä¸ä¸ªéç²¾ç¡®çæ è®°ï¼åºç¨ä¸è¯·æ³¨æï¼ï¼ï¼(å½ä¸ä»
å½å¤ä¸ªbuffæåä¸ä¸ªæææ¶ä¼æåç»æè¯¥ç¶æ)
|
| | | #===============================================================================
|
| | | def GetPyPlayerState(gameObj, pyState):
|
| | | curState = gameObj.GetDictByKey(ChConfig.Def_PlayerKey_CurState)
|
| | |
|
| | | state = curState & pow(2, pyState)
|
| | | return state
|
| | |
|
| | | def ClearPyPlayerState(gameObj):
|
| | | gameObj.SetDict(ChConfig.Def_PlayerKey_CurState, 0)
|
| | | return
|
| | |
|
| | | def GetPetDamPer(gameObj): return gameObj.GetDictByKey(ChConfig.Def_PlayerKey_AttrPetDamPer)
|
| | | def SetPetDamPer(gameObj, value):
|
| | |
| | | import PlayerDogz
|
| | | import ChPlayer
|
| | | import GMShell
|
| | | import GameObj
|
| | |
|
| | | import random
|
| | | import types
|
| | |
| | | DoPlayerDead(curPlayer)
|
| | |
|
| | | PlayerTJG.PlayerTJGReborn(curPlayer, tick)
|
| | | GameObj.ClearPyPlayerState(curPlayer)
|
| | | return
|
| | |
|
| | |
|
| | |
| | | import OperControlManager
|
| | | import GameObj
|
| | | import CrossPlayerData
|
| | | import AttackCommon
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | |
| | | and SkillCommon.GetSkillBattleType(curSkill) == ChConfig.Def_BattleRelationType_CommNoBoss:
|
| | | # éæ¾å 对æå®BOSSæ æçæè½
|
| | | return True
|
| | | |
| | | buffOwner = AttackCommon.ElfChangeAttacker(buffOwner) # Elfçµä¸ºæ¿èº«æ»å»ï¼è¦åç©å®¶ç屿§
|
| | |
|
| | | result = AddBuffNoRefreshState(curObj, buffType, curSkill, tick, addBuffValueList, buffOwner, addForce)
|
| | |
|
| | |
| | | if triggerType == -1:
|
| | | continue
|
| | | passiveEff = PassiveBuffEffMng.GetPassiveEffManager().InitObjPassiveEff(curObj)
|
| | | passiveEff.AddBuffInfoByEffect(curEffect, skillID)
|
| | | passiveEff.AddBuffInfoByEffect(curEffect, skillID, onwerID, onwerType)
|
| | |
|
| | |
|
| | | #æ·»å BUFFåçç¹æ®å¤ç
|
| | |
| | | return curBuff, i
|
| | |
|
| | | return None, 0
|
| | |
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | ## å·æ°BUFFçæ¶é´
|
| | | # @param curBuff å½åBUFF
|
| | |
| | | SkillShell.ClearBuffEffectBySkillID(curObj, curSkill.GetSkillID(), ownerID, ownerType)
|
| | |
|
| | | addSkillID = curObj.GetDictByKey(ChConfig.Def_PlayerKey_SkillInDelBuff)
|
| | | if addSkillID and addSkillID not in skillIDListInDelBuff:
|
| | | skillIDListInDelBuff.append(addSkillID)
|
| | | if addSkillID:
|
| | | skillInfo = [addSkillID, ownerID, ownerType]
|
| | | if skillInfo not in skillIDListInDelBuff:
|
| | | skillIDListInDelBuff.append(skillInfo)
|
| | |
|
| | | OnSkillAfterBuffDisappear(curObj, skillIDListInDelBuff, tick)
|
| | |
|
| | |
| | | # DoBuffDisApperä¸è½åBuffæ·»å åå é¤é»è¾!!!!!ä¸ç¶æéä¼éä¹±, æ
å¨å¤å±å¤ç
|
| | | def OnSkillAfterBuffDisappear(curObj, skillIDListInDelBuff, tick):
|
| | | posX, posY = curObj.GetPosX(), curObj.GetPosY()
|
| | | for skillID in skillIDListInDelBuff:
|
| | | skillData = GameWorld.GetGameData().GetSkillBySkillID(skillID)
|
| | | for skillInfo in skillIDListInDelBuff:
|
| | | attacker = GameWorld.GetObj(skillInfo[1], skillInfo[2])
|
| | | if not attacker:
|
| | | attacker = curObj
|
| | | skillData = GameWorld.GetGameData().GetSkillBySkillID(skillInfo[0])
|
| | | if not skillData:
|
| | | continue
|
| | |
|
| | | SkillShell.Trigger_UseSkill(curObj, curObj, skillData, tick, posX, posY)
|
| | | SkillShell.Trigger_UseSkill(attacker, curObj, skillData, tick, posX, posY)
|
| | | return
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | |
| | | import PlayerControl
|
| | | import PassiveBuffEffMng
|
| | | import GameObj
|
| | | import BuffSkill
|
| | | #---------------------------------------------------------------------
|
| | | #å
¨å±åé
|
| | | #---------------------------------------------------------------------
|
| | |
| | |
|
| | | SkillCommon.SkillLostHP(defender, curBuffSkillID, buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Bleed)
|
| | |
|
| | | if buffOwner and GameObj.GetHP(buffOwner) > 0:
|
| | | # æ¤å¤ææ æ³ç¨è¢«å¨ææå®ç°
|
| | | buffManager = defender.GetProcessDeBuffState()
|
| | | burnToHPEffect, plusValue, skillID = BuffSkill.FindBuffEffectByOwnertID(buffManager, ChConfig.Def_Skill_Effect_BurnToAddHP, |
| | | buffOwner.GetID(), buffOwner.GetGameObjType())
|
| | | if burnToHPEffect:
|
| | | addHP = singleDecHP*burnToHPEffect.GetEffectValue(0)/ChConfig.Def_MaxRateValue
|
| | | SkillCommon.SkillAddHP(buffOwner, curBuffSkillID, buffOwner, addHP, tick, hurtType=ChConfig.Def_HurtTYpe_Recovery)
|
| | | return
|
| | |
|
| | | # ç¼ç§çç¹å¾ä¸ºå»¶é¿buffæ¶é´ï¼éç®ä¼¤å®³
|
New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #
|
| | | ##@package
|
| | | #
|
| | | # @todo: 两个人ä¹é´æä¸æ¡ç¹æè¿æ¥ï¼é
å9999ç¨äºå¤æè·ç¦»
|
| | | #
|
| | | # @author: Alee
|
| | | # @date 2019-5-6 ä¸å04:30:33
|
| | | # @version 1.0
|
| | | #
|
| | | # @note: |
| | | #
|
| | | #---------------------------------------------------------------------
|
| | | #导å
¥
|
| | | import SkillCommon
|
| | | import GameWorld
|
| | | import ChConfig
|
| | |
|
| | | def ProcessBuff(defender, curBuff, curEffect, processBuffTick, tick):
|
| | | buffOwner = SkillCommon.GetBuffOwner(curBuff)
|
| | | |
| | | if not buffOwner:
|
| | | curBuff.SetRemainTime(0)
|
| | | return
|
| | | |
| | | if GameWorld.GetDistEx(defender.GetPosX(), defender.GetPosY(), buffOwner.GetPosX(), buffOwner.GetPosY()) > curEffect.GetEffectValue(0):
|
| | | curBuff.SetRemainTime(0)
|
| | | return |
| | | return
|
| | |
|
| | |
|
| | | def OnCalcBuffEx(defender, curEffect, calcDict, curBuff):
|
| | | |
| | | attrType = curEffect.GetEffectValue(1)
|
| | | value = curEffect.GetEffectValue(2)
|
| | | calcDict[attrType] = calcDict.get(attrType, 0) - value
|
| | | |
| | | return |
| | |
|
| | | ## è¿åbuffç±»åï¼çº¿æ§ä¸å¦
|
| | | # @param |
| | | # @return None
|
| | | # @remarks 彿°è¯¦ç»è¯´æ. |
| | | def GetCalcType():
|
| | | return ChConfig.TYPE_NoLinear |
| | |
| | | def OnBuffDisappear(curObj, curSkill, curBuff, curEffect, tick):
|
| | |
|
| | | stateType = curEffect.GetEffectValue(0)
|
| | | GameObj.SetPyPlayerState(curObj, stateType, 0)
|
| | | if CanDelStateEffect(curObj, ChConfig.Def_Skill_Effect_BuffState, stateType):
|
| | | GameObj.SetPyPlayerState(curObj, stateType, 0)
|
| | | GameWorld.DebugLog("åæ¶å½±åç©å®¶ç¶æææ---%s - %s"%(curObj.GetID(), stateType))
|
| | | return
|
| | |
|
| | |
|
| | | def OnBuffDisappearEx(curObj, curSkill, curBuff, curEffect, tick):
|
| | |
|
| | | stateType = curEffect.GetEffectValue(0)
|
| | | GameObj.SetPyPlayerState(curObj, stateType, 0)
|
| | | if CanDelStateEffect(curObj, ChConfig.Def_Skill_Effect_BuffState, stateType):
|
| | | GameObj.SetPyPlayerState(curObj, stateType, 0)
|
| | | GameWorld.DebugLog("åæ¶å½±åç©å®¶ç¶æææ---%s - %s"%(curObj.GetID(), stateType))
|
| | | return
|
| | |
|
| | | |
| | |
|
| | | # 大äºçäº2ä¸ªç¶æ å䏿¸
çç¶æ
|
| | | def CanDelStateEffect(curObj, effectID, stateType):
|
| | | cnt = 0
|
| | | for buffType in xrange(IPY_GameWorld.bfBuff, IPY_GameWorld.btBufMax):
|
| | | buffTuple = SkillCommon.GetBuffManagerByBuffType(curObj, buffType)
|
| | | #éè¿ç±»åè·åç®æ çbuff管çå¨ä¸ºç©ºï¼åè·³åº
|
| | | if buffTuple == ():
|
| | | continue
|
| | | |
| | | buffManager = buffTuple[0]
|
| | | |
| | | for i in range(buffManager.GetEffectCount()):
|
| | | effect = buffManager.GetEffect(i)
|
| | | if not effect:
|
| | | continue
|
| | | if effect.GetEffectID() != effectID:
|
| | | continue
|
| | | |
| | | if effect.GetEffectValue(0) == stateType:
|
| | | cnt += 1
|
| | | if cnt >= 2:
|
| | | return False
|
| | | |
| | | return True
|
| | |
| | |
|
| | |
|
| | | def OnBuffDisappear(curObj, curSkill, curBuff, curEffect, tick):
|
| | | skillID = curEffect.GetEffectValue(2)
|
| | | if not skillID:
|
| | | return
|
| | | boomValue = curBuff.GetValue1()
|
| | | # å©ä½æ¤ç¾å¼ç¨äºçç¸
|
| | | if boomValue == 0:
|
| | | return
|
| | |
|
| | | skillData = GameWorld.GetGameData().GetSkillBySkillID(curEffect.GetEffectValue(2))
|
| | | skillData = GameWorld.GetGameData().GetSkillBySkillID(skillID)
|
| | | if not skillData:
|
| | | return
|
| | | # åå¨èµ·æ¥ç¨äºä¼¤å®³
|
New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #
|
| | | ##@package
|
| | | #
|
| | | # @todo: åéä¸ç¨ï¼å屿§å½±åå¦ç¬¦æ
|
| | | #
|
| | | # @author: Alee
|
| | | # @date 2019-5-8 ä¸å02:55:40
|
| | | # @version 1.0
|
| | | #
|
| | | # @note: |
| | | #
|
| | |
|
| | | #------------------------------------------------------------------------------ |
| | | #导å
¥
|
| | | import ChConfig
|
| | | import PlayerControl
|
| | | import IPY_GameWorld
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | ## buffé线æ§åå°å±æ§
|
| | | # @param defender Buffæ¿åè
|
| | | # @param curEffect æè½ææ
|
| | | # @param calcDict æè½ææç´¯å æ»è¡¨
|
| | | # @return None
|
| | | def OnCalcBuffEx(defender, curEffect, calcDict, curBuff):
|
| | | |
| | | effect = curEffect.GetEffectValue(0)
|
| | | if curBuff and curBuff.GetLayer():
|
| | | # å±çº§å å ææ
|
| | | effect = effect*curBuff.GetLayer()
|
| | |
|
| | | effect += curBuff.GetValue()
|
| | | calcDict[ChConfig.TYPE_Calc_AttrSpeed] = calcDict.get(ChConfig.TYPE_Calc_AttrSpeed, 0) - effect
|
| | | |
| | | return |
| | |
|
| | |
|
| | | ## è¿åbuffç±»åï¼çº¿æ§ä¸å¦
|
| | | # @param |
| | | # @return None
|
| | | # @remarks 彿°è¯¦ç»è¯´æ. |
| | | def GetCalcType():
|
| | | return ChConfig.TYPE_NoLinear
|
| | |
|
| | |
|
| | | ##计ç®å¢å¼ºå¼
|
| | | # @param attacker æ»å»è
å®ä¾
|
| | | # @param curSkill æè½å®ä¾
|
| | | # @param curEffect å½åæè½ææ1
|
| | | # @return æ»å¼
|
| | | def CalcBuffValue(attacker, defender, curSkill, changeBuffValueDict):
|
| | | |
| | | return [PlayerControl.GetSubSpeedPer(attacker)]
|
| | |
| | |
|
| | | return returnInfo
|
| | |
|
| | |
|
| | | def FindBuffByOwner(gameObj, skillTypeID, ownerID, ownerType):
|
| | | findSkill = GameWorld.GetGameData().GetSkillBySkillID(skillTypeID)
|
| | | buffType = GetBuffType(findSkill)
|
| | | buffTuple = GetBuffManagerByBuffType(gameObj, buffType)
|
| | | if buffTuple == ():
|
| | | return None
|
| | | |
| | | buffManager = buffTuple[0]
|
| | | for i in range(0, buffManager.GetBuffCount()):
|
| | | curBuff = buffManager.GetBuff(i)
|
| | | if not curBuff:
|
| | | continue
|
| | | |
| | | #夿æ¯å¦æ¥æåä¸ç±»åçæè½
|
| | | if curBuff.GetSkill().GetSkillTypeID() != skillTypeID:
|
| | | continue
|
| | | |
| | | #夿æ¯å¦æ¥æåä¸ç±»åçæè½
|
| | | if curBuff.GetOwnerID() != ownerID:
|
| | | continue
|
| | | |
| | | if curBuff.GetOwnerType() != ownerType:
|
| | | continue
|
| | | |
| | | return curBuff
|
| | | |
| | | return None
|
| | | |
| | | #---------------------------------------------------------------------
|
| | | ## æ§è¡æ¸
空å½ä»¤ åæ°ï¼ç©å®¶, ä¿çæè½ç±»åå表
|
| | | # @param curPlayer ç©å®¶
|
| | |
| | | #æ¸
é¤å¤±è´¥ä¹è§¦åCD
|
| | | return BaseAttack.DoSkillEx_AttackSucess(attacker, defender, curSkill, tick, isEnhanceSkill)
|
| | |
|
| | | skillType = curSkill.GetEffect(0).GetEffectValue(0)
|
| | | if skillType == 0:
|
| | | # æ é
置代表æ¸
é¤è´é¢buffä»»æ1个
|
| | | skillTypeList = [
|
| | | ChConfig.Def_SkillType_LstDepBuff , #æç»åçBUFF 4
|
| | | ChConfig.Def_SkillType_DepBuff , #åçBUFF 6
|
| | | ChConfig.Def_SkillType_Action , #å½±åè¡ä¸ºBUFF 14
|
| | | ]
|
| | | else:
|
| | | skillTypeList = [skillType]
|
| | | |
| | | delSuccess = False
|
| | | buffSkill = None
|
| | | buffType = 0
|
| | |
|
| | | for skillType in skillTypeList:
|
| | | |
| | | buffType = ChConfig.Def_SkillBuffList.get(skillType)
|
| | | buffTuple = SkillCommon.GetBuffManagerByBuffType(defender, buffType)
|
| | | if buffTuple == ():
|
| | | continue
|
| | | |
| | | buffManager = buffTuple[0]
|
| | | if buffManager.GetBuffCount() == 0:
|
| | | continue
|
| | | |
| | | curBuff = buffManager.GetBuff(0)
|
| | | ownerID, ownerType = curBuff.GetOwnerID(), curBuff.GetOwnerType()
|
| | | |
| | | #å é¤Buff
|
| | | BuffSkill.DoBuffDisApperEx(defender, curBuff, tick)
|
| | | buffSkill = curBuff.GetSkill()
|
| | | if not buffSkill:
|
| | | continue
|
| | | skillID = buffSkill.GetSkillID()
|
| | | buffManager.DeleteBuffByTypeID(buffSkill.GetSkillTypeID())
|
| | | SkillShell.ClearBuffEffectBySkillID(defender, skillID, ownerID, ownerType)
|
| | | delSuccess = True
|
| | | break
|
| | | # ä¼å
æ¸
çæå®æè½
|
| | | theSkillID = curSkill.GetEffect(0).GetEffectValue(1)
|
| | | if theSkillID:
|
| | | if curSkill.GetEffect(0).GetEffectValue(1):
|
| | | findBuff = SkillCommon.FindBuffByID(defender, theSkillID)
|
| | | else:
|
| | | findBuff = SkillCommon.FindBuffByOwner(defender, theSkillID, attacker.GetID(), attacker.GetGameObjType())
|
| | | if findBuff:
|
| | | delSuccess = True
|
| | | buffSkill = findBuff.GetSkill()
|
| | | buffType = ChConfig.Def_SkillBuffList.get(buffSkill.GetSkillType())
|
| | | else:
|
| | | # æç±»æè½ä¸çä¸ä¸ª
|
| | | delSuccess, buffSkill, buffType = ClearBySkillType(curSkill, defender, tick)
|
| | |
|
| | | if not delSuccess:
|
| | | # 没æå¯æ¸
é¤BUFFä¹è¿å
¥CD
|
| | |
| | |
|
| | | return BaseAttack.DoSkillEx_AttackSucess(attacker, defender, curSkill, tick, isEnhanceSkill)
|
| | |
|
| | | def ClearBySkillType(curSkill, defender, tick):
|
| | | skillType = curSkill.GetEffect(0).GetEffectValue(0)
|
| | | if skillType == 0:
|
| | | # æ é
置代表æ¸
é¤è´é¢buffä»»æ1个
|
| | | skillTypeList = [
|
| | | ChConfig.Def_SkillType_LstDepBuff , #æç»åçBUFF 4
|
| | | ChConfig.Def_SkillType_DepBuff , #åçBUFF 6
|
| | | ChConfig.Def_SkillType_Action , #å½±åè¡ä¸ºBUFF 14
|
| | | ]
|
| | | else:
|
| | | skillTypeList = [skillType]
|
| | | |
| | | delSuccess = False
|
| | | buffSkill = None
|
| | | buffType = 0
|
| | | for skillType in skillTypeList:
|
| | | |
| | | buffType = ChConfig.Def_SkillBuffList.get(skillType)
|
| | | buffTuple = SkillCommon.GetBuffManagerByBuffType(defender, buffType)
|
| | | if buffTuple == ():
|
| | | continue
|
| | | |
| | | buffManager = buffTuple[0]
|
| | | if buffManager.GetBuffCount() == 0:
|
| | | continue
|
| | | |
| | | curBuff = buffManager.GetBuff(0)
|
| | | ownerID, ownerType = curBuff.GetOwnerID(), curBuff.GetOwnerType()
|
| | | |
| | | #å é¤Buff
|
| | | BuffSkill.DoBuffDisApperEx(defender, curBuff, tick)
|
| | | buffSkill = curBuff.GetSkill()
|
| | | if not buffSkill:
|
| | | continue
|
| | | skillID = buffSkill.GetSkillID()
|
| | | buffManager.DeleteBuffByTypeID(buffSkill.GetSkillTypeID())
|
| | | SkillShell.ClearBuffEffectBySkillID(defender, skillID, ownerID, ownerType)
|
| | | delSuccess = True
|
| | | break
|
| | | return delSuccess, buffSkill, buffType
|
| | | |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #
|
| | | # @todo: buff䏿»å»ç®æ å¤äºXXç¶ææé«å¢å 伤害
|
| | | ##@package
|
| | | #
|
| | | # @todo: buff䏿»å»å¤äºxxç¶æç®æ 触åæè½
|
| | | #
|
| | | # @author: Alee
|
| | | # @date 2018-1-30 ä¸å05:11:45
|
| | | # @date 2019-5-7 ä¸å09:17:25
|
| | | # @version 1.0
|
| | | #
|
| | | # @note:
|
| | | #
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | import ChConfig
|
| | | import GameWorld
|
| | | import GameObj
|
| | |
|
| | | def CheckCanHappen(attacker, defender, passiveEffect, skillID, **skillkwargs):
|
| | | if not defender:
|
| | | return False
|
| | | |
| | | if not passiveEffect.GetEffectValue(1):
|
| | | # ä¸é
ç½®ç¶æçæ
åµ
|
| | | return True
|
| | | |
| | | if GameObj.GetPyPlayerState(defender, passiveEffect.GetEffectValue(1)):
|
| | | #GameWorld.DebugLog("ç¶æè§¦å----%s"%effect.GetEffectValue(1))
|
| | | return True
|
| | | return False
|
| | | if passiveEffect.GetEffectValue(0):
|
| | | if not GameObj.GetPyPlayerState(defender, passiveEffect.GetEffectValue(0)):
|
| | | #GameWorld.DebugLog("ç¶æè§¦å----%s"%effect.GetEffectValue(1))
|
| | | return False
|
| | | return True
|
| | |
|
| | |
|
| | | def GetValue(attacker, defender, passiveEffect):
|
| | | return passiveEffect.GetEffectValue(0)
|
| | | def GetSkillData(passiveEffect):
|
| | | skillID = passiveEffect.GetEffectValue(1)
|
| | | return GameWorld.GetGameData().GetSkillBySkillID(skillID)
|
| | |
|
| | |
|
| | |
|
| | |
| | | import BuffSkill
|
| | | import IPY_GameWorld
|
| | |
|
| | | def CheckCanHappen(attacker, defender, effect, tagSkill):
|
| | | def CheckCanHappen(attacker, defender, effect, tagSkill, **skillkwargs):
|
| | | debuffState = effect.GetEffectValue(1)
|
| | | if debuffState and debuffState != SkillCommon.GetBuffStateType(tagSkill):
|
| | | return False
|
| | |
| | | import BuffSkill
|
| | | import IPY_GameWorld
|
| | |
|
| | | def CheckCanHappen(attacker, defender, effect, tagSkill):
|
| | | def CheckCanHappen(attacker, defender, effect, tagSkill, **skillkwargs):
|
| | | debuffState = effect.GetEffectValue(1)
|
| | | if debuffState and debuffState != SkillCommon.GetBuffStateType(tagSkill):
|
| | | return False
|
New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #
|
| | | ##@package
|
| | | #
|
| | | # @todo: buff䏿µæ¶æå®æè½buff
|
| | | #
|
| | | # @author: Alee
|
| | | # @date 2019-5-7 ä¸å09:27:34
|
| | | # @version 1.0
|
| | | #
|
| | | # @note: |
| | | #
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | import ChConfig
|
| | | import GameWorld
|
| | | import SkillCommon
|
| | | import BuffSkill
|
| | | import IPY_GameWorld
|
| | |
|
| | | def CheckCanHappen(attacker, defender, effect, tagSkill, **skillkwargs):
|
| | | if effect.GetEffectValue(0) != tagSkill.GetSkillTypeID():
|
| | | return False
|
| | | return True
|
| | |
|
New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #
|
| | | ##@package
|
| | | #
|
| | | # @todo: buffä¸è¢«æ»å»æé«æè½ä¼¤å®³
|
| | | #
|
| | | # @author: Alee
|
| | | # @date 2019-5-7 ä¸å09:32:34
|
| | | # @version 1.0
|
| | | #
|
| | | # @note: |
| | | #
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | import ChConfig
|
| | | import GameWorld
|
| | | import GameObj
|
| | | import SkillCommon
|
| | |
|
| | | def CheckCanHappen(attacker, defender, passiveEffect, skillID, **skillkwargs):
|
| | | |
| | | if passiveEffect.GetEffectValue(1):
|
| | | if not defender:
|
| | | return False
|
| | | |
| | | if skillkwargs.get("ownerID", 0) != defender.GetID():
|
| | | return False
|
| | | if skillkwargs.get("ownerType", 0) != defender.GetGameObjType():
|
| | | return False
|
| | | return True
|
| | |
|
| | |
|
| | | def GetValue(attacker, defender, passiveEffect):
|
| | | return passiveEffect.GetEffectValue(0)
|
New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #
|
| | | ##@package
|
| | | #
|
| | | # @todo: ç®æ æå®skillTypeIDçbuffä¸ï¼æå±çº§ç®æé«æè½ä¼¤å®³, å±äºèªå·±çbuffæææ
|
| | | #
|
| | | # @author: Alee
|
| | | # @date 2019-5-6 ä¸å05:10:52
|
| | | # @version 1.0
|
| | | #
|
| | | # @note: |
| | | #
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | import ChConfig
|
| | | import GameWorld
|
| | | import SkillCommon
|
| | | import GameObj
|
| | |
|
| | | # ç®æ æä¸ªç¶ææ¶è§¦å
|
| | | def CheckCanHappen(attacker, defender, effect, curSkill):
|
| | | if not defender:
|
| | | return False
|
| | | if not GameObj.GetPyPlayerState(defender, effect.GetEffectValue(1)):
|
| | | #GameWorld.DebugLog("ç¶æè§¦å----%s"%effect.GetEffectValue(1))
|
| | | return False
|
| | | return True
|
| | | |
| | |
|
| | | def GetValue(attacker, defender, effect):
|
| | | buff = SkillCommon.FindBuffByOwner(defender, effect.GetEffectValue(2), attacker.GetID(), attacker.GetGameObjType())
|
| | | if not buff:
|
| | | return 0
|
| | | return effect.GetEffectValue(0)*buff.GetLayer()
|
| | |
|
New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #
|
| | | ##@package
|
| | | #
|
| | | # @todo: ç®æ æå®buffä¸ï¼å¤§äºçäºå±çº§æé«æè½ä¼¤å®³
|
| | | #
|
| | | # @author: Alee
|
| | | # @date 2019-5-6 ä¸å05:10:52
|
| | | # @version 1.0
|
| | | #
|
| | | # @note: |
| | | #
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | import ChConfig
|
| | | import GameWorld
|
| | | import SkillCommon
|
| | | import GameObj
|
| | |
|
| | | # ç®æ æä¸ªç¶ææ¶è§¦å
|
| | | def CheckCanHappen(attacker, defender, effect, curSkill):
|
| | | if not defender:
|
| | | return False
|
| | | |
| | | buff = SkillCommon.FindBuffByOwner(defender, effect.GetEffectValue(1), attacker.GetID(), attacker.GetGameObjType())
|
| | | if not buff:
|
| | | return False
|
| | | |
| | | if buff.GetLayer() < effect.GetEffectValue(2):
|
| | | return False
|
| | | return True
|
| | | |
| | |
|
| | | def GetValue(attacker, defender, effect):
|
| | | return effect.GetEffectValue(0)
|
| | |
|
New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #
|
| | | ##@package
|
| | | #
|
| | | # @todo: 被æå®buffä¸çç©å®¶æ»å»è¿å
¥æ¿æ»ç¶æè§¦åæè½
|
| | | #
|
| | | # @author: Alee
|
| | | # @date 2019-5-7 ä¸å05:56:05
|
| | | # @version 1.0
|
| | | #
|
| | | # @note: |
| | | #
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | import ChConfig
|
| | | import GameWorld
|
| | | import GameObj
|
| | | import SkillCommon
|
| | | import IPY_GameWorld
|
| | |
|
| | | def CheckCanHappen(attacker, defender, effect, curSkill):
|
| | | if not defender:
|
| | | return False
|
| | | if attacker.GetPlayerAction() == IPY_GameWorld.paDie:
|
| | | # å½åå·²ç»è¢«å¤ç为æ»äº¡ï¼é£ä¹å°±ä¸è§¦å
|
| | | return False
|
| | |
|
| | | zhanshaState = attacker.GetDictByKey(ChConfig.Def_PlayerKey_Zhansha)
|
| | | |
| | | if zhanshaState:
|
| | | # æä½å¤æï¼1ä¸ºæ©ææ
åµä¸ï¼æ¤æè½ä¸å¯è¢«è§¦åï¼2ä¸ºç»ææ©æä¸è§¦åï¼3ä¸ºä»»ä½æ©æé½ä¸è§¦å
|
| | | if (effect.GetEffectValue(2) & pow(2, zhanshaState-1)) != 0:
|
| | | return False
|
| | | |
| | | buff = SkillCommon.FindBuffByOwner(defender, effect.GetEffectValue(0), attacker.GetID(), attacker.GetGameObjType())
|
| | | if not buff:
|
| | | return False
|
| | | |
| | | if buff.GetLayer() < effect.GetEffectValue(1):
|
| | | return False
|
| | | |
| | | GameObj.SetHP(attacker, 1) # 为äºé¿å
çå½ä¸º0æ¶ï¼å±è½è¿å¤é»è¾
|
| | |
|
| | | return True
|
New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #
|
| | | ##@package
|
| | | #
|
| | | # @todo: æ»å»æå®buffä¸çç©å®¶å触åè¢«å¨æè½
|
| | | #
|
| | | # @author: Alee
|
| | | # @date 2019-5-7 ä¸å08:06:30
|
| | | # @version 1.0
|
| | | #
|
| | | # @note: |
| | | #
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | import ChConfig
|
| | | import GameWorld
|
| | | import GameObj
|
| | | import SkillCommon
|
| | |
|
| | |
|
| | | def CheckCanHappen(attacker, defender, effect, curSkill):
|
| | | buff = SkillCommon.FindBuffByOwner(defender, effect.GetEffectValue(0), attacker.GetID(), attacker.GetGameObjType())
|
| | | if not buff:
|
| | | return False
|
| | | |
| | | if buff.GetLayer() < effect.GetEffectValue(1):
|
| | | return False
|
| | | |
| | | return True |
New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #
|
| | | ##@package
|
| | | #
|
| | | # @todo: æ¸
餿å®buffæååæé«æè½ä¼¤å®³
|
| | | #
|
| | | # @author: Alee
|
| | | # @date 2019-5-8 ä¸å02:31:07
|
| | | # @version 1.0
|
| | | #
|
| | | # @note: |
| | | #
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | import ChConfig
|
| | | import GameWorld
|
| | | import GameObj
|
| | | import SkillCommon
|
| | |
|
| | |
|
| | | def CheckCanHappen(attacker, defender, effect, curSkill):
|
| | | findBuff = SkillCommon.FindBuffByOwner(defender, effect.GetEffectValue(0), attacker.GetID(), attacker.GetGameObjType())
|
| | | if not findBuff:
|
| | | return False
|
| | | return True
|
| | |
|
| | |
|
| | | def GetValue(attacker, defender, effect):
|
| | | findBuff = SkillCommon.FindBuffByOwner(defender, effect.GetEffectValue(1), attacker.GetID(), attacker.GetGameObjType())
|
| | | if not findBuff:
|
| | | return 0
|
| | | return effect.GetEffectValue(0)*findBuff.GetLayer()
|
| | |
| | | 4027:ChConfig.TriggerType_AttackKill, # նɱ 24
|
| | | 4028:ChConfig.TriggerType_WillDead, # è¿å
¥æ¿æ»ç¶ææ¶è§¦åæè½ 25
|
| | | 4029:ChConfig.TriggerType_BuffBoom, # 䏿¯åçç¸ 26
|
| | | #4030:ChConfig.TriggerType_Success_Buff_SkillPer, # æé«4501æåæ¦ç 27
|
| | | 4031:ChConfig.TriggerType_HurtObjAddBuff, # å¨ç®ä¼¤å®³æ¶ç¾¤æ»1对1å buffï¼å¯ç¨äºä¸ä¸ªä¼¤å®³å¤æ¬¡è§¦å 28
|
| | | 4032:ChConfig.TriggerType_BeBoomSeed, # 被å¨å¼çè§éå
对象çbuffç§å 29
|
| | | 4033:ChConfig.TriggerType_AttackOver, # æ»å»ï¼å¯¹ææè½ï¼åè¢«å¨æè½è¢«è§¦å 4
|
| | |
| | | 4093:ChConfig.TriggerType_NoControl, # 使å
³èæè½ä¸åæ§å¶ 78
|
| | | 4094:ChConfig.TriggerType_Buff_AddSuperHitRate, # BUFFç±»:å¢å æ´å»ç
|
| | | 4095:ChConfig.TriggerType_SuperHitSuckBloodPer, # BUFFç±»ï¼ æ´å»ç¾åæ¯å¸è¡, 79
|
| | | 4096:ChConfig.TriggerType_AttackAddSkillPer, # æææ»å»ä¼¤å®³(SkillPer)å¢å ï¼å«æ®æ»ï¼è®¡ç®æ¶ 5
|
| | | 4097:ChConfig.TriggerType_BurnPer, # ç¼ç§ä¼¤å®³ç¾åæ¯ 80
|
| | | 4098:ChConfig.TriggerType_AttackAddSkillPer, # æææ»å»ä¼¤å®³(SkillPer)å¢å ï¼å«æ®æ»ï¼è®¡ç®æ¶ 5
|
| | | 4099:ChConfig.TriggerType_WillDead, # è¿å
¥æ¿æ»ç¶ææ¶è§¦åæè½ 25
|
| | | 4100:ChConfig.TriggerType_AttackOver, # æ»å»ï¼å¯¹ææè½ï¼åè¢«å¨æè½è¢«è§¦å 4
|
| | | 4101:ChConfig.TriggerType_AttackAddSkillPer, # æææ»å»ä¼¤å®³(SkillPer)å¢å ï¼å«æ®æ»ï¼è®¡ç®æ¶ 5
|
| | | }
|
| | | return tdict.get(effectID, -1)
|
| | | #===========================================================================
|
| | |
| | | 4500:ChConfig.TriggerType_AttackOver, # BUFFç±»ï¼æ»å»è§¦åæ°æè½
|
| | | 4501:ChConfig.TriggerType_AttackAddSkillPer, # BUFFç±»ï¼æé«ä¸»å¨æè½çæè½ä¼¤å®³
|
| | | 4502:ChConfig.TriggerType_BeAttackOver, # BUFFç±»ï¼è¢«æ»å»è§¦åæè½
|
| | | #4503:ChConfig.TriggerType_AttackAddSkillPer, # BUFFç±»ï¼ æ»å»æ¶æé«å¢å 伤害
|
| | | 4503:ChConfig.TriggerType_AttackOver, # BUFFç±»ï¼æ»å»è§¦åæ°æè½
|
| | | 4504:ChConfig.TriggerType_BounceHP, # BUFFç±»ï¼ å弹伤害åºå®å¼
|
| | | 4506:ChConfig.TriggerType_BeAttackOver, # BUFFç±»ï¼è¢«æ»å»è§¦åæè½ åªå·æ°å±æ§ ä¸è§¦åæè½
|
| | | 4507:ChConfig.TriggerType_Buff_AddSuperHitRate, # BUFFç±»:å¢å æ´å»ç
|
| | |
| | | 4531:ChConfig.TriggerType_BounceHPPerByAttacker, # å弹伤害ç¾åæ¯å¼, ç±æ»å»æ¹å³å® 77
|
| | | 4532:ChConfig.TriggerType_SuperHit, # buffä¸å¯¹ç¬¬ä¸ç®æ æ´å»è§¦åæè½
|
| | | 4533:ChConfig.TriggerType_BurnDisappear, # ç¼ç§æ¶å¤±è§¦å 81
|
| | | 4534:ChConfig.TriggerType_DebuffOff, # BUFFç±»ï¼ æµæ¶debuff
|
| | | 4535:ChConfig.TriggerType_BeAttackAddSkillPer, # buffä¸ï¼ 被æ»å»æé«æè½ä¼¤å®³
|
| | |
|
| | | 803:ChConfig.TriggerType_BloodShield, # è¡ç¾
|
| | | 806:ChConfig.TriggerType_BloodShield, # è¡ç¾
|
| | |
| | | self.AffectSuperEquipEffectCntDict = {} # ç¹æ®è£
å¤æè½ææå¯¹åºç已计ç®åçæ°å¼ï¼ç´æ¥è°ç¨
|
| | |
|
| | | #è®°å½ä¼å½±åå
¶ä»æè½æè
被å¨è§¦åéæ¾æè½çBUFF
|
| | | def AddBuffInfoByEffect(self, effect, skillID):
|
| | | def AddBuffInfoByEffect(self, effect, skillID, onwerID, onwerType):
|
| | | effectID = effect.GetEffectID()
|
| | |
|
| | | #{(è§¦åæ¹å¼/ç¹ï¼ å
³èæè½)ï¼{BUFFIDï¼ãææã}}
|
| | |
| | |
|
| | | if skillID not in self.AffectBuffDict[keyTuple]:
|
| | | self.AffectBuffDict[keyTuple][skillID] = []
|
| | | self.AffectBuffDict[keyTuple][skillID].append(effect) # åå¨åå½±åçä¿¡æ¯
|
| | | self.AffectBuffDict[keyTuple][skillID].append([effect, onwerID, onwerType]) # åå¨åå½±åçä¿¡æ¯
|
| | | return
|
| | |
|
| | |
|
| | |
| | | buffSkill = curBuff.GetSkill()
|
| | | if not buffSkill:
|
| | | continue
|
| | | |
| | | onwerID, onwerType = curBuff.GetOwnerID(), curBuff.GetOwnerType()
|
| | | for effectIndex in range(0, buffSkill.GetEffectCount()):
|
| | | curEffect = buffSkill.GetEffect(effectIndex)
|
| | | effectID = curEffect.GetEffectID()
|
| | |
| | | if triggerType == -1:
|
| | | continue
|
| | | passiveEff = self.InitObjPassiveEff(gameObj)
|
| | | passiveEff.AddBuffInfoByEffect(curEffect, buffSkill.GetSkillID())
|
| | | passiveEff.AddBuffInfoByEffect(curEffect, buffSkill.GetSkillID(), onwerID, onwerType)
|
| | |
|
| | | return
|
| | |
|
| | |
| | |
|
| | | if not IsValidPassiveSkill(curSkill):
|
| | | continue
|
| | | for passiveEffect in effectList:
|
| | | for effectInfo in effectList:
|
| | | passiveEffect = effectInfo[0]
|
| | | # 被å¨è§¦åçæè½
|
| | | pyName = "PassiveBuff_%s"%passiveEffect.GetEffectID()
|
| | |
|
| | |
| | | if not callFunc:
|
| | | continue
|
| | |
|
| | | if not callFunc(attacker, defender, passiveEffect, tagSkill):
|
| | | if not callFunc(attacker, defender, passiveEffect, tagSkill, ownerID=effectInfo[1], ownerType=effectInfo[2]):
|
| | | continue
|
| | |
|
| | | callFunc = GameWorld.GetExecFunc(PassiveBuff, "%s.%s" % (pyName, "DoLogic"))
|
| | |
| | |
|
| | | if not IsValidPassiveSkill(curSkill):
|
| | | continue
|
| | | for passiveEffect in effectList:
|
| | | for effectInfo in effectList:
|
| | | passiveEffect = effectInfo[0]
|
| | | # 被å¨è§¦åçæè½
|
| | | pyName = "PassiveBuff_%s"%passiveEffect.GetEffectID()
|
| | | callFunc = GameWorld.GetExecFunc(PassiveBuff, "%s.%s" % (pyName, "CheckCanHappen"))
|
| | | if not callFunc:
|
| | | continue
|
| | |
|
| | | if not callFunc(attacker, defender, passiveEffect, skillID, useSkill=useSkill):
|
| | | if not callFunc(attacker, defender, passiveEffect, skillID, useSkill=useSkill, ownerID=effectInfo[1], ownerType=effectInfo[2]):
|
| | | continue
|
| | |
|
| | | callFunc = GameWorld.GetExecFunc(PassiveBuff, "%s.%s" % (pyName, "GetSkillData"))
|
| | |
| | | if not IsValidPassiveSkill(curSkill):
|
| | | continue
|
| | |
|
| | | for passiveEffect in effectList:
|
| | | for effectInfo in effectList:
|
| | | if stopPassiveSkill and curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_GiftSkill:
|
| | | # åªæå¤©èµæå¯ä»¥å次被触å
|
| | | continue
|
| | | |
| | | passiveEffect = effectInfo[0]
|
| | | # 被å¨è§¦åçæè½
|
| | | pyName = "PassiveBuff_%s"%passiveEffect.GetEffectID()
|
| | |
|
| | |
| | | continue
|
| | |
|
| | | # æ¡ä»¶ä¸æ»¡è¶³
|
| | | if not callFunc(attacker, defender, passiveEffect, skillID, useSkill=useSkill):
|
| | | if not callFunc(attacker, defender, passiveEffect, skillID, useSkill=useSkill, ownerID=effectInfo[1], ownerType=effectInfo[2]):
|
| | | continue
|
| | |
|
| | | callFunc = GameWorld.GetExecFunc(PassiveBuff, "%s.%s" % (pyName, "GetValue"))
|
| | |
| | | continue
|
| | |
|
| | | # å¦è¢«å¨æè½ï¼åå¹»å¥ççå®ä¼¤å®³ä»2å4å
|
| | | curValue += GetPassiveSkillValueByTriggerType(attacker, defender, curSkill, ChConfig.TriggerType_PassiveBuffValue)
|
| | | #curValue += GetPassiveSkillValueByTriggerType(attacker, defender, curSkill, ChConfig.TriggerType_PassiveBuffValue)
|
| | | curValue += callFunc(attacker, defender, passiveEffect)
|
| | |
|
| | | return curValue
|
| | |
| | | continue
|
| | | npcObj.StopMove()
|
| | | npcObj.ChangePos(npcPos.PosX, npcPos.PosY)
|
| | |
|
| | | BeatBackMove(curPlayer, npcObj)
|
| | | return
|
| | |
|
| | | # é对NPC被æ¨åºè¿è·ç¦»ä¸ç´å¡å¢è§é®é¢ï¼æ³å®ææå¯æ¬ç¹æ®å¤ç为è¶
è¿4ç±³ NPCèªå¨åéä¸äº
|
| | | def BeatBackMove(curPlayer, npcObj):
|
| | | if GameWorld.GetMap().GetMapID() != ChConfig.Def_FBMapID_MagicWeapon:
|
| | | return
|
| | | if npcObj.GetCurAction() == IPY_GameWorld.laNPCSkillWarning:
|
| | | return
|
| | | |
| | | posMap = npcObj.GetRefreshPosAt(npcObj.GetCurRefreshPointIndex())
|
| | | #èå´æ ¡éª
|
| | | posMapX = posMap.GetPosX()
|
| | | posMapY = posMap.GetPosY()
|
| | | if GameWorld.GetDist(npcObj.GetPosX(), npcObj.GetPosY(), posMapX, posMapY) < 8:
|
| | | # 忬¡ä½ç§»ä¸è¶
è¿5ç±³
|
| | | return
|
| | | npcControl = NPCCommon.NPCControl(npcObj)
|
| | | moveDestX, moveDestY = npcControl.GetMoveNearPosEx(posMapX, posMapY, 5)
|
| | | npcObj.Move(moveDestX, moveDestY)
|
| | | return
|
| | |
|
| | | #===============================================================================
|
| | | # //B4 03 å¸å¼NPC仿¨ #tagNPCAttention
|
| | |
| | | if callFunc:
|
| | | callFunc(objDetel, curEffect, allAttrList[index], curBuff)
|
| | |
|
| | | # æç»æ§å±æ§ååçbuffï¼ç®ååªææç»åç
|
| | | callFunc = GameWorld.GetExecFunc(GameBuffs, "BuffProcess_%s.%s"%(moduleSuffix, "OnCalcBuffEx"))
|
| | | if callFunc:
|
| | | callFunc(objDetel, curEffect, allAttrList[index], curBuff)
|
| | | #æ¯å¦æç»æ§æè½
|
| | | if curBuff and curBuff.GetSkill().GetSkillType() in ChConfig.Def_LstBuff_List:
|
| | | # æç»æ§å±æ§ååçbuffï¼ç®ååªææç»åç
|
| | | callFunc = GameWorld.GetExecFunc(GameBuffs, "BuffProcess_%s.%s"%(moduleSuffix, "OnCalcBuffEx"))
|
| | | if callFunc:
|
| | | callFunc(objDetel, curEffect, allAttrList[index], curBuff)
|
| | | return
|
| | |
|
| | | ## è·å¾buffææçè®¡ç®æ¨¡åæä»¶åç¼
|
| | |
| | | print 'table:tagDSAccount update successfully! cnt=%s changeto %s-%s'%(cnt, DBConfig.Spid, DBConfig.Serverid)
|
| | |
|
| | |
|
| | | for table in ['tagDBPlayer', 'tagAccIDSendPrize', 'tagDBGMIP', 'tagGameWorldEvent']:
|
| | | for table in ['tagDBPlayer', 'tagAccIDSendPrize', 'tagDBGMIP', 'tagGameWorldEvent', 'tagPayInfo']:
|
| | | # ä¿®æ¹ç©å®¶è¡¨åè´¦å·è¡¨ä¸çç©å®¶è´¦å·
|
| | | colPlayer = db[table]
|
| | | cnt = 0
|