1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/python
# -*- coding: GBK -*-
#
# @todo: Ôö¼ÓÕ䯷·À¾ßÔö¼ÓµÄÉúÃüÖµ300%
#
# @author: Alee
# @date 2018-1-20 ÏÂÎç02:50:26
# @version 1.0
#
# @note: 
#
#---------------------------------------------------------------------
#µ¼Èë
import ChConfig
import BuffSkill
import IPY_GameWorld
import PlayerControl
import ShareDefine
#---------------------------------------------------------------------
 
## buffÏßÐÔÔö¼ÓÊôÐÔ
#  @param defender Buff³ÐÊÜÕß
#  @param curEffect ¼¼ÄÜЧ¹û
#  @param calcDict ¼¼ÄÜЧ¹ûÀÛ¼Ó×ܱí
#  @return None
def OnCalcBuffEx(defender, curEffect, calcDict, curBuff):
 
    totalHP = 0
    equipPack = defender.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
    for i in xrange(equipPack.GetCount()):
        curEquip = equipPack.GetAt(i)
        
        if curEquip.IsEmpty():
            continue
        if i not in ChConfig.EquipPlace_BaseArmor:
            continue
        if not curEquip.GetItemQuality():
            continue
        #»ù´¡ÊôÐÔЧ¹û
        for i in range(0, curEquip.GetEffectCount()):
            equipEffect = curEquip.GetEffectByIndex(i)
            if not equipEffect:
                break
            
            effectID = equipEffect.GetEffectID()
            if effectID == 0:
                #×îºóÒ»¸ö
                break
            if effectID != ShareDefine.Def_Effect_MaxHP:
                continue
            totalHP += equipEffect.GetEffectValue(0)
    
    totalHP = int(totalHP*float(curEffect.GetEffectValue(0))/ChConfig.Def_MaxRateValue)
    
    calcDict[ChConfig.TYPE_Calc_AttrMaxHP] = calcDict.get(ChConfig.TYPE_Calc_AttrMaxHP, 0) + totalHP
    return
 
 
## ·µ»ØbuffÀàÐÍ£¬ÏßÐÔÓë·ñ
#  @param 
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
def GetCalcType():
    return ChConfig.TYPE_Linear