cehua_wcy
2018-08-27 c6f03d29b8c78ea2298276ddb808bd2289baa9b3
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
Úú€[c@sëddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZd„Zd„Zd„Zd„Zdd„Zd„Zd„Zd    „Zd
„Zd „Z d „Z!d „Z"d„Z#d„Z$dd„Z%e&ddd„Z'dd„Z(e&d„Z)d„Z*e&d„Z+e&ej,ddd„Z-e&ej,ddd„Z.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d „Z6e7e7d!„Z8e7d"„Z9d#„Z:e7e7e7ej;d$„Z<d%„Z=d&„Z>d'„Z?d(„Z@d)„ZAd*„ZBdd+„ZCdgdd,„ZDd-„ZEd.„ZFd/„ZGd0„ZHgd1„ZId2„ZJd3„ZKd4„ZLd5„ZMd6„ZNd7„ZOd8„ZPd9„ZQd:„ZRd;„ZSd<„ZTd=„ZUd>„ZVd?„ZWd@„ZXdA„ZYdB„ZZdC„Z[dD„Z\dE„Z]ej^dF„Z_ej`dG„ZadH„ZbdS(IiÿÿÿÿNcCs‡|tjkr%|jƒtjtfS|tjkrJ|jƒtjtfS|tjkro|j    ƒtjtfS|tj
kr”|j ƒtjt fS|tj kr¹|jƒtjt fS|tjkrÞ|jƒtjtfS|tjkr|jƒtjt fS|tjkr(|jƒtjtfS|tjkrM|jƒtjtfS|tjkrr|jƒtjtfStjd|ƒdS(NsÎÞ·¨»ñÈ¡¼¼ÄÜÀàÐÍ = %s((t IPY_GameWorldtbfBufft GetBuffStatetChConfigtDef_Max_Buff_CounttFalsetbfDeBufftGetDeBuffStatetbfAuratGetAurat    bfIncBufft
GetIncBufftTruet bfEquipBufft GetEquipBufft    bfMapBufft
GetMapBufft btPassiveBuft GetPassiveBuft bfActionBufftGetActionBuffManagert bfProcessBufftGetProcessBuffStatetbfProcessDeBufftGetProcessDeBuffStatet    GameWorldtErrLog(tcurObjtbuffType((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetBuffManagerByBuffType+s,cCstjj|jƒƒS(N(RtDef_SkillBuffListthas_keyt GetSkillType(tcurSkill((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytIsBuffJscCstjj|jƒƒS(N(RRtgetR (R!((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt GetBuffTypeQscCs2t|tjƒ}|dkr%tjS|jdƒS(Ni(tGetSkillEffectByEffectIDRtDef_Skill_Effect_BuffStatetNonetDef_PlayerState_NormaltGetEffectValue(R!t    curEffect((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetBuffStateTypeTs cCs»|j|ƒ|jƒ}|}t|ƒr<|j|ƒdS|tj|d|tjƒ7}|dkr‘t    |t
dt j |ƒt j ƒ}n|j|ƒ||kr·|j ƒndS(Ni(tSetLastUseTicktGetCoolDownTimetisPassiveSkillt SetRemainTimetPassiveBuffEffMngt!GetPassiveSkillValueByTriggerTypeR'RtTriggerType_ReduceCDtinttmaxt ShareDefinetDef_MaxRateValuet
Sync_Skill(R!treduceSkillCDPertticktatkObjt coolDownTimet
remainTime((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytSetSkillRemainTime`s     *   cCsW|jƒ}|dkr|Std|||jƒƒ}|j|ƒ|j|ƒ|S(Ni(t GetRemainTimeR4tGetLastUseTickR,R/(R!R9tremainTime_OldtremainTime_New((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytRefreshSkillRemainTimes    cCsd|jƒ}xQtd|jƒƒD]:}|j|ƒ}|jƒdkrOq"nt||ƒq"WdS(Ni(tGetSkillManagertranget GetSkillCounttGetSkillByIndexR>RB(t    curPlayerR9t skillManagertiR!((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytRefreshAllSkillRemainTime‘s cCsd|jƒ}xQtd|jƒƒD]:}|j|ƒ}|jƒdkrOq"n|j|ƒq"WdS(Ni(RCRDRERFR>R,(RGR9RHRIR!((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytPlayerChangeMapUpdateSkillCD¤s c    Csðtjdƒ}tj|jƒ}||kr2dS||}|jƒ}tjƒ}x•|D]}|j|ƒ}|stj    d|ƒq[n|j
ƒ}|j |ƒr®q[n|j |ƒt j||dƒtjd||jƒƒq[WdS(NtLoginLearnSkillsDataBase No SkillId:%disÉÏÏßѧϰ¼¼ÄÜ£º%s(t ReadChConfigtGetEvalChConfigRt JOB_TYPE_DICTtGetJobRCRt GetGameDatatGetSkillBySkillIDRtGetSkillTypeIDtFindSkillBySkillTypeIDtLVUpSkillBySkillTypeIDtDataRecordPacktDR_LearnORUPSkilltLogt GetPlayerID(    RGtjobLearnSkillDicttjobTypetlearnSkillListRHtgameDatatskillIDR!tcurSkillTypeID((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytPlayerLoginCheckLearnSkillµs& 
     c    Cs¢|jƒ}tjƒs,tjd|ƒdStjdƒ}tjd|ƒg}xttj    tj
ƒD]x}t ||ƒ}|d krŸtjd|ƒqgn|d}|j ƒ}|dkrÇqgntjd||f|ƒxût|ƒD]í}    |j |    ƒ}
|
s&tjd||    fƒqîn|
jƒ} | sUtjd||    fƒqîn| jƒ} | jƒ} | |krŸtjd    ||    | | f|ƒqîn|j| jƒƒtjd
||    | | jƒ| f|ƒqîWqgWx5|D]-}tj|||ƒtjd ||ƒqêW|jƒ}xttd|jƒƒD]]}    |j|    ƒ} | jƒdkr=| jdƒtjd | jƒ| jƒf|ƒq=q=WdS(Ns·Ç¿ç·þ·þÎñÆ÷ÉÏÏß²»Çå³ýbuff...tClearBuffSkillTypeIDs¿ç·þ·þÎñÆ÷ÉÏÏßÇå³ýbuff...s    buffTuple == () buffType=%sis    buffType=%s,buffCnt=%ss!    buffType=%s,i=%s  not curBuffs!    buffType=%s,i=%s not curSkillsA    buffType=%s,i=%s,skillTypeID=%s,skillName=%s not in clearListsL        addClearBuff buffType=%s,i=%s,skillName=%s,skillID=%d,skillTypeID=%ds        delBuff skillID=%ds3        SetRemainTime 0 skillName=%s,skillTypeID=%s((RYRt IsMergeServertDebugLogRMRNRXRDRRtbtBufMaxRt GetBuffCounttGetBufftGetSkillRSt GetSkillNametappendt
GetSkillIDt    BuffSkilltDelBuffBySkillIDRCRERFR>R/(RGR9tplayerIDtClearBuffSkillTypeIDListt clearBuffListRt    buffTuplet    buffStatetbuffCntRItcurBuffR!t skillTypeIDt    skillNameR^RH((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt PlayerLoginMergeServerSkillLogicÕs\   
              (       $cCsÃtj|ƒ}|dkrdS|jƒ}x‘td|jƒƒD]z}|j|ƒ}|jƒ}|dkrtqAn||d}|dkr¡|jdƒqAn|j|ƒ|j|ƒqAWdS(Niiè(    t PlayerControltGetPlayerLeaveServerSecondRCRDRERFR>R/R,(RGR9tleaveServerSecondsRHRIR!tskillRemainTimetlastTime((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytPlayerLoginUpdateSkillCDs        c Csø|jƒ}|jƒ}t|tjƒ}|dkrNtjdtjƒtS|j    dƒ}tj
ƒj |ƒ}|dkr“tjd|ƒtS|j ƒ}|dkrÀtjd|ƒtS|j ƒ}    tj|||||    ƒ}
|
jtƒtS(NsûÓÐÕÒµ½ÏàÓ¦µÄЧ¹ûID %sis
ûÓÐNPC %ss AIÀàÐͲ»¶Ô %s(tGetPosXtGetPosYR%RtDef_Skill_Effect_SummonMapNPCR'RRRR)RQtFindNPCDataByIDt    GetAITypet GetLastTimet    NPCCommont SummonMapNpctSetIsNeedProcessR ( tattackerR!R9tcurPosXtcurPosYR*tnpcIDtcurNPCtaiTypeR{tcurNpc((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytSummonMapNPCBySkillIs&        c Csè|jƒ}|dkrtStjƒj|ƒ}|dkr[tjd||jƒƒtS|j    ƒ}t
||||ƒ\}}t |ƒdkr˜tS|j ƒ}x=|D]5}    |    j ƒ|kr«t j|    ƒ}
|
jƒtSq«WtS(Nis%¼¼ÄÜÌî±í´íÎó,ÎÞ´ËNPC,summonNPCID = %s(tGetSummonCountR RRQR€R'RXRYRtGetTypet__GetSummonByFuncTypeListtlentGetFunctionTypeRƒt
NPCControlt    SetKilled( RGt summonNPCIDR9t summonCountt    curSummont curSummonTypet
summonListt maxBornIndextcurSummonFunctionTypet    summonNPCt
npcControl((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytSummonNPCOccurRuleos$      
c Cs¥g}d}d}d}x€td|ƒD]o}|j|ƒ}    |    jƒ|krUq(n|j|    ƒ||    jƒ}
|
|kr|
}|}n|d7}q(W||fS(Nii(RDtGetSummonNPCAtRRit GetBornTime( RGR–R˜R9t summonNPCListt
list_Indext maxBornTimeRšRIRœtsummonNPC_BeingTime((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyR”s      c
Csè|jdƒ}|jdƒ}|jdƒ}|jdƒ}tj||ƒ}|dkr„tjd|jƒ|f|jƒƒ|Sd}|dkr®||t    j
|}n0d|t t    j
ƒ}    |||    t    j
|}t |ƒS(Niiis,¼ÆË㸽¼Ó¼¼ÄÜ×ÜÁ¿´íÎó,skillID = %s,index = %s( t    GetEffectR)t    EffGetSettGetValueByEffIndexR'RRXRjRYRR6tfloatR3(
RGR!t    skillPlusR*tindextskillPerteffecttmaxValuetvaluetplus((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetLastSkillMaxValue¼s & ic CsG|jƒ}|j|ƒ|jƒ}    |j|    ƒ|j|jƒƒ|jtj|j    ƒƒ|j
ƒj tj ƒt |||ƒtj|ƒ|j|ƒ|jtj|jƒƒ|rÐ|j||ƒn=tj|jƒ|jƒ|ƒ}
|j|
jƒ|
jƒƒ|j|ƒ|r6|j|jƒƒn|jtƒdS(N(t SummonNewNPCt SetNPCTypeIDtGetLVtSetLVt
SetCountryt
GetCountrytSetDictRtDef_NpcDictKey_CampTypet
GetFactiont GetNPCAngrytInittDef_SummonNPC_Angry_CounttSetSummonNPCPropertyRƒtInitNPCtSetOwnert!Def_NPC_Dict_SummonMapNPCPlayerIDRYtReborntGameMaptGetEmptyPlaceInAreaR}R~t SetBornTimet SetLastTimeR‚t SetCanAttackR( RGR!tsummonIDt
summonDistR9tisAppointBornPostbornPosXtbornPosYRœt lvSummonNPCt    summonPos((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytPlayerSummonNPCßs(      !  cCs(|rt|||ƒdSt|ƒdS(N(t Calc_Summon_BaseEffectBySkillPertCalc_Summon_BaseEffect(RGRœR!((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyR½ s
 
cCs]d}t}d}    x‘td|jƒƒD]z}
|j|
ƒ} | sIq(n| jƒ|kraq(n||krqdS|d7}tj| ƒdkr–q(nt}|
}    q(W|rÒ|j    d||ƒ|jƒd}    n|jƒ} |j
ƒ} |    dkrt j d| | |fƒdS|j|    ƒ} | sGt j d| | |fƒdSt || |||ƒS(Niiÿÿÿÿis.AddSummonErr NPCID=%s£¬ skillID=%s summonID=%ss+SummonErr NPCID=%s£¬ skillID=%s summonID=%s(R RDRŽRŸtGetNPCIDR'tGameObjtGetHPRtAddSummonCountRjRRtSummonNPCByInstance(RŠR!R–t maxAngryCountR•R9taddAngrytcountt
isAddCountRªRIRœR‰R^((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt$DoLogic_NPC_UseSkill_SummonNPCSingle.s: 
 
   cCsdd}xWtd|jƒƒD]@}|j|ƒ}|s=qn|jƒ|kr|d7}qqW|S(Nii(RDRŽRŸRÑ(RŠRÇRØRIRœ((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetSummonCountByNPCIDssc Csæt|t||ƒdƒ}|dkr>|j|||ƒnd}x›td|jƒƒD]„}    |j|    ƒ}
|
s{qZn|
jƒ|kr“qZn||kr£dS|d7}tj|
ƒdkrÈqZnt    ||
|||ƒqZWdS(Nii(
R4RÛRÔRDRŽRŸRÑRÒRÓRÕ( RŠR!R•R–RÖR9R×taddCountRØRIRœ((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt!DoLogic_NPC_UseSkill_SummonNPCAll‰s   
c
 
Csåt||ƒ|krdSt|t||ƒdƒ}
|
dkrW|j|
||ƒnx‡td|jƒƒD]p} |j| ƒ} | sŽqmn| jƒ|kr¦qmntj| ƒdkrÁqmnt    || ||||||    ƒSWdS(Nii(
RÛtminRÔRDRŽRŸRÑRÒRÓRÕ( RŠR!R•tsummonAllCountRÖR9R×tdistt
rebornPosXt
rebornPosYRÜRIRœ((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytDoLogic_NPC_UseSkill_SummonNPC·s  cCsItj|ƒ|dkr;|dkr;|j||tƒn@tj|jƒ|jƒ|ƒ}|j|jƒ|jƒtƒ|j|ƒ|j    |j
ƒƒ|j t ƒd}    t |tjƒ}
|
r“t|
jdƒƒtj}    t|
jdƒƒtj} |    rA|jt|jƒ|    ƒƒ|jt|jƒ|    ƒƒn| r£tj|ttj|ƒ| ƒƒtj|ttj|ƒ| ƒƒq£ntj|t ƒtj||ƒ|s½|S|jƒ} |jƒ} xct d| j!ƒƒD]L}| j"|ƒ}|j#ƒ}|sqën| j$||j%ƒ|j&ƒƒqëW|j'ƒ|S(Niii((RƒR¾RÁRRÂRÃR}R~RÄRÅR‚R…R R%RtDef_Skill_Effect_SummonAttrR¨R)R6t SetBaseMinAtkR3t    GetMinAtkt SetBaseMaxAtkt    GetMaxAtkRÒtSetMaxHPtGetMaxHPtSetHPtDoNPCAttrStrengthentFBLogictDoFBRebornSummonNPCRºRDt GetAngryCounttGetAngryValueTagtGetObjIDtAddAngryt
GetObjTypet GetAngryValuet NotifyAppear(RŠRœR!R9R×RàtposXtposYt    resultPostatkpert
findEffecttmaxHPPertsummonNPCAngryt curNPCAngryRIt
angryValuet angryValue_ID((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRÕàsB !   #)   #
cCsdS(N((RGRœRÇ((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt!__PassiveSkill_AddSummonAttributeQscCsjt|ƒ}g}xQtd|ƒD]@}|j|ƒjdƒ}|||tj}|j|ƒq"W|S(Ni(R‘RDR¥R)RR6Ri(t    valueListR!teffCountt
returnListRªteffValueR®((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetValueBySkillEffectYs cCsNxG|D]?}tj||dƒ}tj||d||d|ƒqWtS(Nii(R¦R§tSetValueByEffIndexR (RÌRœR™R®tcurValue((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt__CalcSummonEffectValueis 'cCs||jdƒ}|dkr?tjd|jƒ|jƒƒtS|jdƒ}|sxtjd|jƒ|jƒƒtS|tt    j
ƒ}|j t |j ƒ|ƒƒ|jt |jƒ|ƒƒ|jt |jƒ|ƒƒ|jt |jƒ|ƒƒ|jt |jƒ|ƒƒ|jt |jƒ|ƒƒ|jt |jƒ|ƒƒ|jt |jƒ|ƒƒ|jt |jƒ|ƒƒ|jt |jƒ|ƒƒ|j t |j!ƒ|ƒƒ|j"t |j#ƒ|ƒƒ|j$t |j%ƒ|ƒƒ|j&t |j'ƒ|ƒƒ|j(t |j)ƒ|ƒƒ|j*t |j+ƒ|ƒƒ|j,t |j-ƒ|ƒƒdS(NisÕÙ»½¼¼ÄÜÎÞЧ¹û,skillID = %sis%¼¼ÄÜ %sÌî±í´íÎó,ÕÙ»½¼¼ÄÜÊôÐÔ°Ù·Ö±ÈΪ0(.R¥R'RRXRjRYRR)R¨RR6RåR3RæRçRèt
SetBaseDeftGetDeft
SetBaseHittGetHittSetBasePoisionAtkt GetPoisionAtktSetBaseFireAtkt
GetFireAtkt SetBaseIceAtkt    GetIceAtktSetBaseThunderAtkt GetThunderAtktSetBaseWindAtkt
GetWindAtktSetBasePoisionDeft GetPoisionDeftSetBaseFireDeft
GetFireDeft SetBaseIceDeft    GetIceDeftSetBaseThunderDeft GetThunderDeftSetBaseWindDeft
GetWindDeftSetBaseMissRatetGetMisstSetBaseSuperHiteRatetGetSuperHitRatet SetBaseMaxHPRê(RGRœR!R*R«((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRÏvs6   cCsm|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|j    ƒƒ|j
|j ƒƒ|j |j ƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j |j!ƒƒ|j"|j#ƒƒ|j$|j%ƒƒdS(N(&RåRæRçRèR    R
R R R RRRRRRRRRRRRRRRRRRR tSetBaseAtkIntervaltGetAtkIntervalR!R"R#R$R%RêtSetBaseHPRestoret GetHPRestore(Rœ((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRТs(cCsTtjƒ}|jƒ}tj||||ƒ}g}x!|D]}    |j|    jƒƒq=Wg}
xí|D]å} |j|| d|| dƒ} | s›qgnx®td| j    ƒƒD]—} | j
| ƒ}|j ƒ}|t j krçq±n|jƒ}||jƒkr||krq±ntj||ƒ}|dkr;q±n|
j|ƒq±WqgW|
S(Nii(RtGetMaptGetTeamRwtGetAreaTeamMemberRitGetIDt    GetPosObjRDt GetObjCountt GetObjByIndextGetGameObjTypeRt    gotPlayertGetObjR'(RGtsrcPosXtsrcPosYt skillMatrixtareatgameMapt curPlayerTeamtteamPlayerListt
teamIDListt
teamPlayertinAreaTeamPlayerListtcurPostmapObjRIRt
curObjTypetcurObjID((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetSkillAreaTeamPlayerÆs2    "    cCsA|jƒj|ƒ}|dkr%dS|jdƒjdƒ}|S(Ni(RCRTR'R¥R)(RGt    skillTypetskillR¬((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt GetSkillEff÷s
 cCsdS(N((RRttaddValue((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt
SkillAddMPscCsdS(N((RRtt
skillOwnert    lostValueR9tviewtreduce((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt SkillLostMP+sc    CsÀ|jƒ}tj|tjƒr%dS|dkrLtjd||fƒdStj|ƒ}|dkrkdS|tj    kr‰t
j |ƒntj }t ||dtj ƒ}tj|ƒ}||krñ|rítj||||tjƒndSt|||ƒ}|tj    kr:tj||| ƒtj||ƒn]|tjkr—|jƒtjkrqtj||ƒq—tj||ƒ|s—|jƒq—n|r¼tj||||tjƒndS(Nis1###¼¼Äܻظ´ÑªÁ¿Òì³£,ÊýÖµ´íÎó = %s,¼¼ÄÜÀàÐÍID = %sgð?(R1RÒtGetPyPlayerStateRtDef_PlayerState_LimitAddHPRRXRÓRR2Rwt
GetCurePerR6R3Rêt AttackCommont ChangeHPViewtDef_HurtTYpe_RecoveryRÞRëRít    OnFBAddHPtgotNPCtGetGameNPCObjTypetgnotPett
PetControltSetPetHPt Notify_HPEx(    RRtRFtisNotifyR@tcurHPtcurePertmaxHPtremainHP((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt
SkillAddHPSs:   ' cCsn|s
|S|jƒ}|tjkrj|jƒ}|tjkrjttjdƒƒ}t    ||ƒ}qjn|S(NtGoblinHurtValue(
R1RRTR’RtDef_NPCFuncType_GoblinR3RMRNRÞ(tdefendert    hurtValuet
defObjTypet npcFuncTypetgoblinHurtValue((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetGoblinLostHP‘s  c    Csü|dkr'tjd||fƒdS|jƒ}    tjƒj|dƒ}
|    tjkr‘|jƒtj    kr‘|
r‘t
|
ƒtj kr‘dSn|} t j |ƒ} |rHtj|||ƒ}t| |dƒ} |    tjkr1|jƒtjkr tj|| ƒqEt j|| ƒ|sE|jƒqEqHt j|| | ƒn|rjtj|||| |ƒnt j |ƒdkržtj|d|
tj|ƒn|sµtj|ƒdS|    tjkrJd}|jƒtjkrñtj|ƒ}nt j |ƒdkrJtj|ƒ}|j ||ƒ|dkrG|j |dƒqGqJn|jƒtjkrqtj|ƒ}n|}|dkrÙ|jƒtj!krÙtj"||| |ƒ|    tj!krÙtj#|||dƒqÙn|røt$j%||d|ƒndS(Nis1###¼¼ÄÜÉ˺¦ÑªÁ¿Òì³£,ÊýÖµ´íÎó = %s,¼¼ÄÜÀàÐÍID = %sit SkillLostHP(&RRXR1RQtFindSkillByTypeRRTt    GetIsBossRtDef_SkillAttack_NPCIsBosstGetSkillBattleTypet!Def_BattleRelationType_CommNoBossRÒRÓRPtCalcBloodShieldR4RURVRWRXRëRYRQR0tOnPassiveSkillTriggerR'tTriggerType_WillDeadtDoLogic_ObjDeadRƒtGetNpcObjOwnerDetailR“tAddObjToAngryListR2tNPCAddObjInHurtListt OnPVPDamaget
BaseAttacktDoLogic_AttackResult(RRtt    buffOwnerRIR9RJtreduceHPtisDoAttackResultthurtTypeR@R!tnotifyLostValuetcurObjHP_BeforeAttackR^t attackerOwnert curNPCControl((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRh¨s\  $  !cCsŸ|jƒ}|jƒ}|tjks6|tjkr:dS|dkr›tj|ƒdkr›tj}|jƒj|ƒ}|r›t    j
||||ƒq›ndS(NiiÜi(iiÜ( R1RR2RÒRÓRtDef_SkillID_PoisonAtkBuffRCRTt
SkillShelltDoLogic_UseSkill(RtR†tdefObjR9tattackerObjTypeRdtpoisionAtkBuffIDR!((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytCheckAddPoisonAtkBuffs  !    cCs?|jƒtjkrdS|jƒtjkr1n
|jƒdS(N(R1RRTRURVRY(R((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt NotifyNPCHPs
cCsD|jƒ}|jƒ}|dks0|dkr4dStj||ƒS(Ni(t
GetOwnerIDt GetOwnerTypeRR3(tbufft buffOwnerIDt buffOwnerType((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt GetBuffOwner.s
  cCsŽ|jƒ}|jƒ}tj||ƒ}|dkrftjd|jƒjƒ||||fƒdS||}|jtd||ƒƒ|S(NisJ skillID = %s, lostTime = %s ,value = %s , remainTime = %s , refuTime = %s(    tGetValueR>Rt GetIntUpperRRgRStSetValueR4(RstrefuTimeR9R®R<tlostTimeRI((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetProcessBuffChangeHp_Time>s   ,
c CsR|jƒ}|jƒ}g}xEtd|jƒƒD].}|j|ƒ}|sUq4n|j|ƒq4W|spdSxÛ|D]Ó}|jƒ}|jƒ}|dkr§qwntj    ||ƒ}    |    dkrËqwn|    jƒ}
||
kréqwn|t j kr
||j ƒksw|t jkr1||jƒkr1qwntj||jƒ|ƒqwWdS(Ni(R1R    RDReRfRiRˆR‰RR3R'RR2RYRTR-RvtSkillAddAuraBuffRg( t curObjDetelR9R@t buffManagert auraBuffListRªtauraBuffR‹RŒRxtbuffOwnerObjType((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytCheckAddAuraSkillUs4         !!cCsg|jƒ}|jƒ}g}t}xEtd|jƒƒD].}|j|ƒ}|s[q:n|j|ƒq:Wxô|D]ì}|jƒ}|jƒ}    |j    ƒ}
|j
ƒ} |j ƒ} | dkrÇqsnt j | | ƒ} | dkrtj||    |ƒt}qsn|jƒ}t j|jƒ|jƒ| jƒ| jƒƒ}|ru||dkrutj||    |ƒt}qsn| jƒ}| tjkrž| jƒs»tj||    |ƒt}qsn|j|
ƒsétj||    |ƒt}qsn|
tjkr_|tjkr qsntjtj| ƒ}|dkr4qsnt j ||ƒrLqsn|j!ƒdkr||j!ƒ|j!ƒkr|qsntj||    |ƒt}qsq_qs| tjkr2|
tj"krÂqsn|j|
ƒs_| j#ƒj$|
ƒ}|dkr|jƒjƒ|    krqsntj||    |ƒt}qsq_qstj||    |ƒt}t j%d| ƒqsqsW|S(Niis!###¹â»·Òì³£,ÎÞ·¨²éÕÒ¹âÔ´ÀàÐÍ = %s(&R1R    RRDReRfRiRgRjRSRˆR‰RR3R'RkRlR t GetAtkRadiustGetDistR}R~RCRRTt
GetVisibleRTRtDef_SkillID_XuanTianZhenYanR2RƒtGetSummonNPCOwnert    IsSameObjt    GetTeamIDtDef_SuperBuffListRtFindBuffRX(R•R9R@R–R—treFlashRªR˜t    buffSkillt buffSkillIDtauraSkillTypeIDR‹RŒRxt    atkRadiusRàtbuffOwnerSkillMgrtpetOwnertgankBuff((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytCheckAuraSkill…s„           0   *    $    cCsd}|dkr*tjƒj|ƒ}ntjƒj||ƒ}|dkritjd||fƒdSt|ƒ}t|||jƒ|j    ƒƒsšdSd}|j
ƒt j krtj tdƒ}|dkrñt||d||ƒƒ}qtjdƒntj|||||gƒS(Ns0Ìí¼Óbuffʧ°Ü,Êý¾Ý¿â²éÕÒ¼¼ÄÜ = %s,ʧ°Ü!skillLV=%sis#SkillBuff_AddBuffValue.AddBuffValue(R'RRQRRRiRXR$tCheckCanAddBuffRSt
GetSkillLVR RtDef_LstBuff_Listt GetExecFunct
GameSkillsR3RRkt    DoAddBuff(RRCR9tskillLVR!Rt addBuffValuetcallFunc((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytAddBuffBySkillTypeþs"   ! cCs¶d}|dkr*tjƒj|ƒ}ntjƒj||ƒ}|dkritjd||fƒdSt|ƒ}t|||jƒ|j    ƒƒsšdSt
j ||||||ƒS(Ns0Ìí¼Óbuffʧ°Ü,Êý¾Ý¿â²éÕÒ¼¼ÄÜ = %s,ʧ°Ü!skillLV=%s( R'RRQRRRiRXR$R­RSR®RktAddBuffNoRefreshState(RRCR9R³t plusValueListRxR!R((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytAddBuffBySkillType_NoRefurbish$s   !c    Cs¾t||ƒ}|dkrdS|d}|dkrPtjd||fƒtS|j|ƒ}|dkrotS|tjkr‚tS|jƒ}|j    ƒ}||krªdS|j
ƒsºdStS(Nis+###Òì³£,ÎÞ·¨²éÕÒÕâÀ༼ÄÜ = %s,buffÀàÐÍ = %s(( RR'RRXR R£RR
RgR®R‚(    RRR_t
curSkillLVRptcurObjBuffManagert
curObjBuffR¥t buffSkillLV((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyR­?s& 
      cCsjxctd|jƒƒD]L}|j|ƒ}|s7qn|jƒ}|jdƒjƒ|kr|SqWdS(Ni(RDReRfRgR¥t GetEffectID(R–teffectIDRItfindBuffR¥((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytFindBuff_BuffM_EffIDis cCsƒtjƒj|ƒ}|dkr6tjd|ƒdSt|t|ƒƒ}|dkrltjd|ƒdS|d}|j|ƒS(Ns0FindBuffBySkillAndEffID skillTypeID= %s DBNoFinds0FindBuffBySkillAndEffID skillTypeID= %s IsNoBuffi((RRQRRR'RRR$t
FindEffect(RGRtteffIDR!RpR–((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt FindBuffEffxs  
cCs²ddddg}tjƒj|ƒ}|sBtjd|ƒ|St|ƒ}t||ƒ}||d<||d<|dkr|S|d}|j|ƒ}||d<||d<|S(Ns!FindBuff skillTypeID= %s DBNoFindiiii((R'RRQRRRR$RR£(ttagObjRtt
returnInfot    findSkillRRpR–RÀ((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt FindBuffByIDŽs  
 
 
 
 
cCsQ|jƒjƒtj|ƒt|ƒ}t||ƒ|j|jƒ|ƒ|S(N(RtClearRwtKillPlayerSummonNPCtGetPlayerUseSkillPointtClearSkillManagertSetFreeSkillPointtGetFreeSkillPoint(RGtsaveSkillTypeListt    savePoint((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytDoLogic_ReSetSkillªs    cCs|d}|jƒ}tjdƒ}xTtd|jƒƒD]=}|j|ƒ}|jƒ|krdq7n||jƒ}q7W|S(NitNoSkillPointSkill(RCRMRNRDRERFRSR®(RGt    usePointsRHtnoPoints_SkillType_ListRIR!((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyR˽s cCsžg}|jƒ}x]td|jƒƒD]F}|j|ƒ}|jƒ}||kr[q(n|j|jƒƒq(W|jƒx|D]}|j|ƒqƒWdS(Ni(    RCRDRERFRSRiRjt
ResetSkillt LVUPSkillByID(RGRÏtplayerHasSaveListRHRIR!t curSkillTypeR^((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRÌÓs   
 cCs|s tjS|jƒS(N(RtDef_BattleRelationType_Commt GetHurtType(R!((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRlìsc    Cs@|jƒtjtjtjtjtjtjtjtj    gkS(N(
R RtDef_SkillType_PassivetDef_SkillType_PassiveBufftDef_SkillType_AttrSkilltDef_SkillType_PassivePlsBufftDef_SkillType_PassiveDepBufftDef_SkillType_PassiveActionBufftDef_SkillType_PassiveLstPlsBufftDef_SkillType_PassiveLstDepBuff(R!((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyR.óscCs:|jƒtjtjtjtjtjtjtjgkS(N(    R RRÛRÜRÞRßRàRáRâ(R!((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytisPassiveTriggerSkillÿscCs|jƒtjkS(N(R RRÝ(R!((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt isPassiveAttr    scCs|jƒtjkS(N(R RRÜ(R!((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytisPassiveBuffSkill scCs |jdƒS(Nt
UsePassive(t GetDictByKey(R†((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetUsingPassiveSkillscCs|jd|ƒS(NRæ(R·(R†R®((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytSetUsingPassiveSkillscCstS(s ÑéÖ¤ÊÇ·ñ»ù±¾¹¥»÷¼ä¸ô (R(RGRtR9((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytCheckPlayerAtkIntervalscCs=|jƒ}|dkrtS|td|jƒƒ@r9tStS(Nii(t
GetUseTypeR tpowRPR(RGR!t skillUseType((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt CheckSkillJob's  cCs|jƒtjkS(N(R¾RtDef_BaseEffectList(R¬((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt IsBaseEffect6scCst|tj||ƒƒS(N(tGetAttackerHurtValueByAtkTypeRPt GetBattleType(R†tuseSkill((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetCureBaseValue?scCst|tj||ƒƒS(N(RñRPRò(R†Ró((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetHurtBaseValueGscCs(|jƒtjƒ|jƒ|jƒS(N(RætrandomRè(R†tatkType((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRñPscCsX|jƒ}xEt|ƒD]7}|j|ƒ}|jƒjƒ}||krtSqWtS(N(ReRDRfRgR R R(t
buffManagetgivenSkillTypeListt    buffCountRItbuffObjRØ((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytIsHasGivenBuffbs  cCsbd}t|tjƒ}|dkr?t|jdƒ|ƒ}n|tj|d|tjƒ7}|S(Ni2i(    R%Rt!Def_Skill_Effect_AreaAttackkCountR'RÞR)R0R1tTriggerType_AttackCnt(R†R!t    hurtCountR*((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetSkillArea_Atk_Countss  cCs^xWtd|jƒƒD]@}|j|ƒ}|jƒ}|sCqn||krUqn|SWdS(Ni(RDtGetEffectCountR¥R¾(R!R¿RIR*t curEffectID((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyR%ˆs  cCsƒtjƒj|ƒ}|dkr6tjd|ƒdSt|t|ƒƒ}|dkrltjd|ƒdS|d}|j|ƒS(Ns(GetPlayerBuffBySkillTypeID = %s DBNoFinds)GetPlayerBuffBySkillTypeID  = %s IsNoBuffi((RRQRRR'RRR$R£(RGRtR!RpR–((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetPlayerBuffBySkillTypeIDŸs  
cCs;t||ƒ}|dkrdS|jƒj|jdƒƒS(Ni(R%R'RCRTR)(RÅR!R¿t curSkillEff((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt GetSkillFromOtherSkillByEffectID¶s c Csìd}d}d}|tjkr3t||ƒ}né|tjkrTtj|ƒ}nÈ|tjkrª|jƒ}|jdƒj    dƒt
tj ƒ}t||ƒ|}nr|tj krËtj|ƒ}nQ|tj krï|jtjƒ}n-|tjkr|s
dn tj|ƒ}n|tj krtd|jƒ|jƒƒt
|jdƒj    dƒƒ}tjd|jƒ|jƒ|fƒn%|jdƒj    dƒt
tj ƒ}|jdƒj    dƒ}    t|||    ||ƒ}
|
S(Ngð?iis!Ó¢Ó¸´ËÕ: Ãô=%s,Á¦=%s,skillPer=%si(RtDef_Cure_AttackRôtDef_Cure_MaxHPRÒRêt Def_Cure_PNEtGetPNER¥R)R¨R6t Def_Cure_PHYtDef_Cure_HurtValueRçtDef_PlayerKey_LastHurtValuetDef_Cure_TagMaxHPR4tGetPHYtGetSTRRRcR3( tuserObjRÅR!tcureTypet curePercentt cureBaseValuet
addExValuetaddPerR«t
skillValuetcureHP((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt    GetCureHPÈs0 %;)%cCs
d}|tjkr$|jƒ}n|tjkrB|jƒ}n|tjkrµtd|jƒ|jƒƒt|jdƒj    dƒƒ}t
j d|jƒ|jƒ|fƒn%|jdƒj    dƒttj ƒ}|jdƒj    dƒ}t |||ƒ}|S(Nis!ħȪӿ¶¯: Ãô=%s,ÖÇ=%s,skillPer=%si(RtDef_Restore_MaxMPtGetMaxMPtDef_Restore_PHYR4RR    R¨R¥R)RRcR6R3(RRÅR!t restoreTypeRR«Rt    restoreMP((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt GetRestoreMPs;)%cCsdS(N((R†RDR9((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytUpdateSkillCombo%s(cRRƒRRRwR±RkRPRÂR¦RíRMRöRvRWRRVtChPyNetSendPackt NetPackCommonR5RÒR0RR"R$R+R'R=RBRJRKR`RvR|RRžRR°RRÎR½RÚRÛRÝtDef_DropItemDistRãRÕRRRRÏRÐRBRERGR RLR_RgtDef_HurtType_NormalRhR†R‡RR“RšR¬R¶R¹R­RÁRÄRÈRÑRËRÌRlR.RãRäRåRèRéRêRîRðRôRõRñRüRR%RRRRRRR(((se.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt<module>s¼                                                            E    /    &    %    ( #, $ D     .'    p                 ,    $    1        %( >    _                    0    y &    *                                  
                                                                    >