cehua_LC
2018-11-07 15c306dc41e38a73afd5a9e3c70e3f699ea8ae2b
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
168
»–á[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((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetBuffManagerByBuffType+s,cCstjj|jƒƒS(N(RtDef_SkillBuffListthas_keyt GetSkillType(tcurSkill((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytIsBuffJscCstjj|jƒƒS(N(RRtgetR (R!((sf.\\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((sf.\\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((sf.\\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((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytRefreshSkillRemainTime€s    cCsd|jƒ}xQtd|jƒƒD]:}|j|ƒ}|jƒdkrOq"nt||ƒq"WdS(Ni(tGetSkillManagertranget GetSkillCounttGetSkillByIndexR>RB(t    curPlayerR9t skillManagertiR!((sf.\\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!((sf.\\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((sf.\\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((sf.\\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((sf.\\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((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytSummonMapNPCBySkillJs&        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((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytSummonNPCOccurRuleps$      
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((sf.\\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((sf.\\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((sf.\\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!((sf.\\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^((sf.\\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Ñ(tgameObjRÇRØRIRœ((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetSummonCountByNPCIDtsc 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œ((sf.\\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œ((sf.\\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((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRÕásB !   #)   #
cCsdS(N((RGRœRÇ((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt!__PassiveSkill_AddSummonAttributeRscCsjt|ƒ}g}xQtd|ƒD]@}|j|ƒjdƒ}|||tj}|j|ƒq"W|S(Ni(R‘RDR¥R)RR6Ri(t    valueListR!teffCountt
returnListRªteffValueR®((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetValueBySkillEffectZs cCsNxG|D]?}tj||dƒ}tj||d||d|ƒqWtS(Nii(R¦R§tSetValueByEffIndexR (RÌRœR™R®tcurValue((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt__CalcSummonEffectValuejs '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«((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRÏws6   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 RRRRRRRRRRRRRRRRRRR R!tSetBaseAtkIntervaltGetAtkIntervalR"R#R$R%R&RëtSetBaseHPRestoret GetHPRestore(Rœ((sf.\\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((sf.\\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¬((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt GetSkillEfføs
 cCsdS(N((RRttaddValue((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt
SkillAddMPscCsdS(N((RRtt
skillOwnert    lostValueR9tviewtreduce((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt SkillLostMP,sc    Csß|jƒ}tj|tjƒr%dS|dkrLtjd||fƒdStj|ƒ}|dkrkdStj    |ddtj ƒrŠdS|t j kr¨tj|ƒntj}t||dtjƒ}tj|ƒ}||kr|r tj||||tjƒndSt|||ƒ}|t j krYtj||| ƒtj||ƒn]|t jkr¶|jƒt jkrtj||ƒq¶tj||ƒ|s¶|jƒq¶n|rÛtj||||tjƒndS(Nis1###¼¼Äܻظ´ÑªÁ¿Òì³£,ÊýÖµ´íÎó = %s,¼¼ÄÜÀàÐÍID = %sgð?( R2RÒtGetPyPlayerStateRtDef_PlayerState_LimitAddHPRRXRÓR0t GetValueByPassiveBuffTriggerTypeR'tTriggerType_ForbidenCureRR3Rwt
GetCurePerR6R3Rët AttackCommont ChangeHPViewtDef_HurtTYpe_RecoveryRßRìRît    OnFBAddHPtgotNPCtGetGameNPCObjTypetgnotPett
PetControltSetPetHPt Notify_HPEx(    RRtRGtisNotifyRAtcurHPtcurePertmaxHPtremainHP((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt
SkillAddHPTs>   ' cCsn|s
|S|jƒ}|tjkrj|jƒ}|tjkrjttjdƒƒ}t    ||ƒ}qjn|S(NtGoblinHurtValue(
R2RRWR’RtDef_NPCFuncType_GoblinR3RMRNRß(tdefendert    hurtValuet
defObjTypet npcFuncTypetgoblinHurtValue((sf.\\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|ƒtj|d|
tj|ƒn|sÑtj|ƒdS|    tjkrfd}|jƒtjkr tj|ƒ}nt j |ƒdkrftj |ƒ}|j!||ƒ|dkrc|j!|dƒqcqfn|jƒtjkrtj|ƒ}n|}|dkrõ|jƒtj"krõtj#||| |ƒ|    tj"krõtj$|||dƒqõn|rt%j&||d|ƒndS(Nis1###¼¼ÄÜÉ˺¦ÑªÁ¿Òì³£,ÊýÖµ´íÎó = %s,¼¼ÄÜÀàÐÍID = %sit SkillLostHP('RRXR2RQtFindSkillByTypeRRWt    GetIsBossRtDef_SkillAttack_NPCIsBosstGetSkillBattleTypet!Def_BattleRelationType_CommNoBossRÒRÓRStCalcBloodShieldR4RXRYRZR[RìR\RTR0tOnPassiveSkillTriggerR'tTriggerType_WillDeadtOnPassiveBuffTriggertDoLogic_ObjDeadRƒtGetNpcObjOwnerDetailR“tAddObjToAngryListR3tNPCAddObjInHurtListt OnPVPDamaget
BaseAttacktDoLogic_AttackResult(RRtt    buffOwnerRJR9RKtreduceHPtisDoAttackResultthurtTypeRAR!tnotifyLostValuetcurObjHP_BeforeAttackRat attackerOwnert curNPCControl((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRk­s^  $  !cCsŸ|jƒ}|jƒ}|tjks6|tjkr:dS|dkr›tj|ƒdkr›tj}|jƒj|ƒ}|r›t    j
||||ƒq›ndS(NiiÜi(iiÜ( R2RR3RÒRÓRtDef_SkillID_PoisonAtkBuffRCRTt
SkillShelltDoLogic_UseSkill(RtR†tdefObjR9tattackerObjTypeRgtpoisionAtkBuffIDR!((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytCheckAddPoisonAtkBuff s  !    cCs?|jƒtjkrdS|jƒtjkr1n
|jƒdS(N(R2RRWRXRYR\(R((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt NotifyNPCHP"s
cCsD|jƒ}|jƒ}|dks0|dkr4dStj||ƒS(Ni(t
GetOwnerIDt GetOwnerTypeRR4(tbufft buffOwnerIDt buffOwnerType((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt GetBuffOwner3s
  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<tlostTimeRJ((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetProcessBuffChangeHp_TimeCs   ,
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(R2R    RDReRfRiRŒRRR4R'RR3RYRWR.RztSkillAddAuraBuffRg( t curObjDetelR9RAt buffManagert auraBuffListRªtauraBuffRRR|tbuffOwnerObjType((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytCheckAddAuraSkillZs4         !!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(&R2R    RRDReRfRiRgRjRSRŒRRR4R'RkRlR t GetAtkRadiustGetDistR}R~RCRRWt
GetVisibleRTRtDef_SkillID_XuanTianZhenYanR3RƒtGetSummonNPCOwnert    IsSameObjt    GetTeamIDtDef_SuperBuffListRtFindBuffRX(R™R9RARšR›treFlashRªRœt    buffSkillt buffSkillIDtauraSkillTypeIDRRR|t    atkRadiusRátbuffOwnerSkillMgrtpetOwnertgankBuff((sf.\\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'RRQRRRlRXR$tCheckCanAddBuffRSt
GetSkillLVR RtDef_LstBuff_Listt GetExecFunct
GameSkillsR3RRkt    DoAddBuff(RRDR9tskillLVR!Rt addBuffValuetcallFunc((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytAddBuffBySkillTypes"   ! cCs¶d}|dkr*tjƒj|ƒ}ntjƒj||ƒ}|dkritjd||fƒdSt|ƒ}t|||jƒ|j    ƒƒsšdSt
j ||||||ƒS(Ns0Ìí¼Óbuffʧ°Ü,Êý¾Ý¿â²éÕÒ¼¼ÄÜ = %s,ʧ°Ü!skillLV=%s( R'RRQRRRlRXR$R±RSR²RktAddBuffNoRefreshState(RRDR9R·t plusValueListR|R!R((sf.\\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((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyR±Ds& 
      cCsjxctd|jƒƒD]L}|j|ƒ}|s7qn|jƒ}|jdƒjƒ|kr|SqWdS(Ni(RDReRfRgR¥t GetEffectID(RšteffectIDRItfindBuffR©((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytFindBuff_BuffM_EffIDns cCsƒtjƒj|ƒ}|dkr6tjd|ƒdSt|t|ƒƒ}|dkrltjd|ƒdS|d}|j|ƒS(Ns0FindBuffBySkillAndEffID skillTypeID= %s DBNoFinds0FindBuffBySkillAndEffID skillTypeID= %s IsNoBuffi((RRQRRR'RRR$t
FindEffect(RGRtteffIDR!RpRš((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt FindBuffEff}s  
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Ä((sf.\\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((sf.\\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!((sf.\\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^((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRÐØs   
 cCs|s tjS|jƒS(N(RtDef_BattleRelationType_Commt GetHurtType(R!((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRoñ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!((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyR.øscCs:|jƒtjtjtjtjtjtjtjgkS(N(    R RRßRàRâRãRäRåRæ(R!((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytisPassiveTriggerSkillscCs|jƒtjkS(N(R RRá(R!((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt isPassiveAttrscCs|jƒtjkS(N(R RRà(R!((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytisPassiveBuffSkillscCs |jdƒS(Nt
UsePassive(t GetDictByKey(R†((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetUsingPassiveSkillscCs|jd|ƒS(NRê(R·(R†R®((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytSetUsingPassiveSkillscCstS(s ÑéÖ¤ÊÇ·ñ»ù±¾¹¥»÷¼ä¸ô (R(RGRtR9((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytCheckPlayerAtkIntervalscCs=|jƒ}|dkrtS|td|jƒƒ@r9tStS(Nii(t
GetUseTypeR tpowRPR(RGR!t skillUseType((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt CheckSkillJob,s  cCs|jƒtjkS(N(RÂRtDef_BaseEffectList(R¬((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt IsBaseEffect;scCst|tj||ƒƒS(N(tGetAttackerHurtValueByAtkTypeRSt GetBattleType(R†tuseSkill((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetCureBaseValueDscCst|tj||ƒƒS(N(RõRSRö(R†R÷((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetHurtBaseValueLscCs(|jƒtjƒ|jƒ|jƒS(N(RçtrandomRé(R†tatkType((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRõUscCsX|jƒ}xEt|ƒD]7}|j|ƒ}|jƒjƒ}||krtSqWtS(N(ReRDRfRgR R R(t
buffManagetgivenSkillTypeListt    buffCountRItbuffObjRÜ((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytIsHasGivenBuffgs  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*((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetSkillArea_Atk_Countxs  cCs^xWtd|jƒƒD]@}|j|ƒ}|jƒ}|sCqn||krUqn|SWdS(Ni(RDtGetEffectCountR¥RÂ(R!RÃRIR*t curEffectID((sf.\\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š((sf.\\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((sf.\\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((sf.\\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((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt GetRestoreMP s;)%cCsdS(N((R†RER9((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytUpdateSkillCombo*s(cRRƒRRRwRµRkRSRÂR¦RîRMRúRzRZR…RVtChPyNetSendPackt NetPackCommonR5RÒR0RR"R$R+R'R=RBRJRKR`RvR|RRžRR°RRÎR½RÚRÜRÞtDef_DropItemDistRäRÕRRR    RÏRÐRCRFRHR RMRbRjtDef_HurtType_NormalRkRŠR‹R‘R—RžR°RºR½R±RÅRÈRÌRÕRÏRÐRoR.RçRèRéRìRíRîRòRôRøRùRõRRR%RR    R
RRR"R#(((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt<module>s¼                                                             E    /    &    %    ( #, $ D     .'    p                 ,    $    1        %( B    _                    0    y &    *                                  
                                                                    >