cehua_ZWJ
2019-01-30 6afaa4408f4e09e3e95dbd92f0d1cd5a1fb2942b
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
169
170
 d&\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$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„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d „Z6d!„Z7e8e8d"„Z9e8d#„Z:d$„Z;e8e8e8ej<d%„Z=d&„Z>d'„Z?d(„Z@d)„ZAd*„ZBd+„ZCdd,„ZDdgdd-„ZEd.„ZFd/„ZGd0„ZHd1„ZIgd2„ZJd3„ZKd4„ZLd5„ZMd6„ZNd7„ZOd8„ZPd9„ZQd:„ZRd;„ZSd<„ZTd=„ZUd>„ZVd?„ZWd@„ZXdA„ZYdB„ZZdC„Z[dD„Z\dE„Z]dF„Z^ej_dG„Z`ejadH„ZbdI„ZcdS(Jiÿÿÿÿ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ƒtjkr˜|tj|d|tj    ƒ7}|dkr˜t
|t dt j |ƒt j ƒ}q˜n|j|ƒdS|tj|d|tjƒ7}|dkrþt
|t dt j |ƒt j ƒ}n|j|ƒ||kr$|jƒndS(Ni(tSetLastUseTicktGetCoolDownTimetisPassiveSkillt GetFuncTypeRtDef_SkillFuncType_GiftSkilltPassiveBuffEffMngt!GetPassiveSkillValueByTriggerTypeR'tTriggerType_GiftReduceCDtinttmaxt ShareDefinetDef_MaxRateValuet SetRemainTimetTriggerType_ReduceCDt
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 GetRemainTimeR5tGetLastUseTickR,R8(R!R<tremainTime_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 GetSkillCounttGetSkillByIndexRARE(t    curPlayerR<t 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(RFRGRHRIRAR,(RJR<RKRLR!((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_DICTtGetJobRFRt GetGameDatatGetSkillBySkillIDRtGetSkillTypeIDtFindSkillBySkillTypeIDtLVUpSkillBySkillTypeIDtDataRecordPacktDR_LearnORUPSkilltLogt GetPlayerID(    RJtjobLearnSkillDicttjobTypetlearnSkillListRKtgameDatatskillIDR!tcurSkillTypeID((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytPlayerLoginCheckLearnSkill¼s& 
     c    Cs™|jƒ}tjƒs,tjd|ƒdSg}tjd|ƒg}xttjtjƒD]x}t    ||ƒ}|d kr–tjd|ƒq^n|d}|j
ƒ}|dkr¾q^ntjd||f|ƒxût|ƒD]í}    |j |    ƒ}
|
stjd||    fƒqån|
j ƒ} | sLtjd||    fƒqån| j ƒ} | jƒ} | |kr–tjd||    | | f|ƒqån|j| jƒƒtjd    ||    | | jƒ| f|ƒqåWq^Wx5|D]-}tj|||ƒtjd
||ƒqáW|jƒ}xttd|jƒƒD]]}    |j|    ƒ} | jƒdkr4| jdƒtjd | jƒ| j ƒf|ƒq4q4WdS( Ns·Ç¿ç·þ·þÎñÆ÷ÉÏÏß²»Çå³ýbuff...s¿ç·þ·þÎñÆ÷ÉÏÏßÇå³ý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((R\Rt IsCrossServertDebugLogR[RGRRtbtBufMaxRt GetBuffCounttGetBufftGetSkillRVt GetSkillNametappendt
GetSkillIDt    BuffSkilltDelBuffBySkillIDRFRHRIRAR8(RJR<tplayerIDtClearBuffSkillTypeIDListt clearBuffListRt    buffTuplet    buffStatetbuffCntRLtcurBuffR!t skillTypeIDt    skillNameRaRK((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt PlayerLoginMergeServerSkillLogicÜs\   
              (       $cCsh|jƒ}xUt|jƒƒD]A}|j|ƒ}|jƒdkr|jdƒ|jƒqqWdS(Ni(RFtxrangeRHRIRAR8R:(RJRKRLtskill((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytResetAllSkillCDs  cCsÃtj|ƒ}|dkrdS|jƒ}x‘td|jƒƒD]z}|j|ƒ}|jƒ}|dkrtqAn||d}|dkr¡|jdƒqAn|j|ƒ|j|ƒqAWdS(Niiè(    t PlayerControltGetPlayerLeaveServerSecondRFRGRHRIRAR8R,(RJR<tleaveServerSecondsRKRLR!tskillRemainTimetlastTime((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytPlayerLoginUpdateSkillCD+s        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)RTtFindNPCDataByIDt    GetAITypet GetLastTimet    NPCCommont SummonMapNpctSetIsNeedProcessR ( tattackerR!R<tcurPosXtcurPosYR*tnpcIDtcurNPCtaiTypeR€tcurNpc((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytSummonMapNPCBySkillZs&        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 RRTR…R'R[R\RtGetTypet__GetSummonByFuncTypeListtlentGetFunctionTypeRˆt
NPCControlt    SetKilled( RJt summonNPCIDR<t summonCountt    curSummont curSummonTypet
summonListt maxBornIndextcurSummonFunctionTypet    summonNPCt
npcControl((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytSummonNPCOccurRule€s$      
c Cs¥g}d}d}d}x€td|ƒD]o}|j|ƒ}    |    jƒ|krUq(n|j|    ƒ||    jƒ}
|
|kr|
}|}n|d7}q(W||fS(Nii(RGtGetSummonNPCAtR”Rkt GetBornTime( RJR›RR<t summonNPCListt
list_Indext maxBornTimeRŸRLR¡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'RR[RlR\RR7tfloatR4(
RJR!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_SummonMapNPCPlayerIDR\tReborntGameMaptGetEmptyPlaceInAreaR‚Rƒt SetBornTimet SetLastTimeR‡t SetCanAttackR( RJR!tsummonIDt
summonDistR<tisAppointBornPostbornPosXtbornPosYR¡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(RJR¡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 RGR“R¤tGetNPCIDR'tGameObjtGetHPRtAddSummonCountRlRRtSummonNPCByInstance(RR!R›t maxAngryCountRšR<taddAngrytcountt
isAddCountR¯RLR¡RŽRa((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(RGR“R¤RÖ(tgameObjRÌRÝRLR¡((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetSummonCountByNPCID„sc 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(
R5RáRÙRGR“R¤RÖR×RØRÚ( RR!RšR›RÛR<RÜtaddCountRÝRLR¡((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ÙRGR“R¤RÖR×RØRÚ( RR!RštsummonAllCountRÛR<RÜtdistt
rebornPosXt
rebornPosYRâRLR¡((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)R7t SetBaseMinAtkR4t    GetMinAtkt SetBaseMaxAtkt    GetMaxAtkR×tSetMaxHPtGetMaxHPtSetHPtDoNPCAttrStrengthentFBLogictDoFBRebornSummonNPCR¿RGt GetAngryCounttGetAngryValueTagtGetObjIDtAddAngryt
GetObjTypet GetAngryValuet NotifyAppear(RR¡R!R<RÜRætposXtposYt    resultPostatkpert
findEffecttmaxHPPertsummonNPCAngryt curNPCAngryRLt
angryValuet angryValue_ID((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRÚñsB !   #)   #
cCsdS(N((RJR¡RÌ((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt!__PassiveSkill_AddSummonAttributebscCsjt|ƒ}g}xQtd|ƒD]@}|j|ƒjdƒ}|||tj}|j|ƒq"W|S(Ni(R–RGRªR)RR7Rk(t    valueListR!teffCountt
returnListR¯teffValueR³((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetValueBySkillEffectjs 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__CalcSummonEffectValuezs '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'RR[RlR\RR)R­RR7RëR4RìRíRît
SetBaseDeftGetDeft
SetBaseHittGetHittSetBasePoisionAtkt GetPoisionAtktSetBaseFireAtkt
GetFireAtkt SetBaseIceAtkt    GetIceAtktSetBaseThunderAtkt GetThunderAtktSetBaseWindAtkt
GetWindAtktSetBasePoisionDeft GetPoisionDeftSetBaseFireDeft
GetFireDeft SetBaseIceDeft    GetIceDeftSetBaseThunderDeft GetThunderDeftSetBaseWindDeft
GetWindDeftSetBaseMissRatetGetMisstSetBaseSuperHiteRatetGetSuperHitRatet SetBaseMaxHPRð(RJR¡R!R*R°((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRԇs6   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îRRRRRRRRRRRRRRRRRR R!R"R#R$R%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(RtGetMaptGetTeamR|tGetAreaTeamMemberRktGetIDt    GetPosObjRGt GetObjCountt GetObjByIndextGetGameObjTypeRt    gotPlayertGetObjR'(RJtsrcPosXtsrcPosYt skillMatrixtareatgameMapt curPlayerTeamtteamPlayerListt
teamIDListt
teamPlayertinAreaTeamPlayerListtcurPostmapObjRLRt
curObjTypetcurObjID((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetSkillAreaTeamPlayer×s2    "    cCsA|jƒj|ƒ}|dkr%dS|jdƒjdƒ}|S(Ni(RFRWR'RªR)(RJt    skillTypeRzR±((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt GetSkillEffs
 cCsdS(N((RRvtaddValue((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt
SkillAddMPscCsdS(N((RRvt
skillOwnert    lostValueR<tviewtreduce((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ð?( R7R×tGetPyPlayerStateRtDef_PlayerState_LimitAddHPRR[RØR1t GetValueByPassiveBuffTriggerTypeR'tTriggerType_ForbidenCureRR8R|t
GetCurePerR7R4Rðt AttackCommont ChangeHPViewtDef_HurtTYpe_RecoveryRäRñRót    OnFBAddHPtgotNPCtGetGameNPCObjTypetgnotPett
PetControltSetPetHPt Notify_HPEx(    RRvRKtisNotifyRFtcurHPtcurePertmaxHPtremainHP((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt
SkillAddHPds>   ' cCsn|s
|S|jƒ}|tjkrj|jƒ}|tjkrjttjdƒƒ}t    ||ƒ}qjn|S(NtGoblinHurtValue(
R7RR[R—RtDef_NPCFuncType_GoblinR4RPRQRä(tdefendert    hurtValuet
defObjTypet npcFuncTypetgoblinHurtValue((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetGoblinLostHP¦s  c    Cs\|dkr'tjd||fƒdS|jƒs7dS|jƒ}    tjƒj|dƒ}
|    tjkr¡|jƒt    j
kr¡|
r¡t |
ƒt    j kr¡dSn|} t j|ƒ} | dkrÆdS|rƒtj||||
|ƒ}tj|||ƒ}t| |dƒ} |    tjkrl|jƒtjkrFtj|| ƒq€t j|| ƒ|s€|jƒq€qƒt j|| | ƒn|r¥tj|||| |ƒnt j|ƒdkrõtj|d|
t    j|ƒtj|d|
t    j|ƒn|stjd||
|ƒdS|    tjkrªd}|jƒtjkrQt j!|ƒ}nt j|ƒdkrªt j"|ƒ}|j#||ƒ|dkr§|j#|dƒq§qªn|jƒtjkrÑt j!|ƒ}n|}|dkr9|jƒtj$kr9tj%||| |ƒ|    tj$kr9tj&|||dƒq9n|rXt'j(||d|ƒndS(Nis1###¼¼ÄÜÉ˺¦ÑªÁ¿Òì³£,ÊýÖµ´íÎó = %s,¼¼ÄÜÀàÐÍID = %sit SkillLostHP()RR[t GetCanAttackR7RTtFindSkillByTypeRR[t    GetIsBossRtDef_SkillAttack_NPCIsBosstGetSkillBattleTypet!Def_BattleRelationType_CommNoBossR×RØRWt CalcAtkProDeftCalcBloodShieldR5R\R]R^R_RñR`RXR1tOnPassiveSkillTriggerR'tTriggerType_WillDeadtOnPassiveBuffTriggertDoLogic_ObjDeadRˆtGetNpcObjOwnerDetailR˜tAddObjToAngryListR8tNPCAddObjInHurtListt OnPVPDamaget
BaseAttacktDoLogic_AttackResult(RRvt    buffOwnerRNR<ROtreduceHPtisDoAttackResultthurtTypeRFR!tnotifyLostValuetcurObjHP_BeforeAttackRet attackerOwnert curNPCControl((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRo½sh   $  !cCsŸ|jƒ}|jƒ}|tjks6|tjkr:dS|dkr›tj|ƒdkr›tj}|jƒj|ƒ}|r›t    j
||||ƒq›ndS(NiiÜi(iiÜ( R7RR8R×RØRtDef_SkillID_PoisonAtkBuffRFRWt
SkillShelltDoLogic_UseSkill(RvR‹tdefObjR<tattackerObjTypeRktpoisionAtkBuffIDR!((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytCheckAddPoisonAtkBuff%s  !    cCs?|jƒtjkrdS|jƒtjkr1n
|jƒdS(N(R7RR[R\R]R`(R((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt NotifyNPCHP:s
cCsD|jƒ}|jƒ}|dks0|dkr4dStj||ƒS(Ni(t
GetOwnerIDt GetOwnerTypeRR9(tbufft buffOwnerIDt buffOwnerType((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt GetBuffOwnerKs
  cCsŽ|jƒ}|jƒ}tj||ƒ}|dkrftjd|jƒjƒ||||fƒdS||}|jtd||ƒƒ|S(NisJ skillID = %s, lostTime = %s ,value = %s , remainTime = %s , refuTime = %s(    tGetValueRARt GetIntUpperRRiRVtSetValueR5(RutrefuTimeR<R³R?tlostTimeRN((sf.\\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(R7R    RGRgRhRkR’R“RR9R'RR8R\R[R3R€tSkillAddAuraBuffRi( t curObjDetelR<RFt buffManagert auraBuffListR¯tauraBuffR•R–R‚tbuffOwnerObjType((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytCheckAddAuraSkillrs4         !!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(&R7R    RRGRgRhRkRiRlRVR’R“RR9R'RmRnR t GetAtkRadiustGetDistR‚RƒRFRR[t
GetVisibleRWRtDef_SkillID_XuanTianZhenYanR8RˆtGetSummonNPCOwnert    IsSameObjt    GetTeamIDtDef_SuperBuffListRtFindBuffR[(RŸR<RFR 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'RRTRURqR[R$tCheckCanAddBuffRVt
GetSkillLVR RtDef_LstBuff_Listt GetExecFunct
GameSkillsR4RRmt    DoAddBuff(RRIR<tskillLVR!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'RRTRURqR[R$R·RVR¸RmtAddBuffNoRefreshState(RRIR<R½t plusValueListR‚R!R((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytAddBuffBySkillType_NoRefurbishAs   !c    Cs¾t||ƒ}|dkrdS|d}|dkrPtjd||fƒtS|j|ƒ}|dkrotS|tjkr‚tS|jƒ}|j    ƒ}||krªdS|j
ƒsºdStS(Nis+###Òì³£,ÎÞ·¨²éÕÒÕâÀ༼ÄÜ = %s,buffÀàÐÍ = %s(( RR'RR[R R­RR
RiR¸R‡(    RRRbt
curSkillLVRrtcurObjBuffManagert
curObjBuffR¯t buffSkillLV((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyR·\s& 
      cCsjxctd|jƒƒD]L}|j|ƒ}|s7qn|jƒ}|jdƒjƒ|kr|SqWdS(Ni(RGRgRhRiRªt GetEffectID(R teffectIDRLtfindBuffR¯((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytFindBuff_BuffM_EffID†s cCsƒtjƒj|ƒ}|dkr6tjd|ƒdSt|t|ƒƒ}|dkrltjd|ƒdS|d}|j|ƒS(Ns0FindBuffBySkillAndEffID skillTypeID= %s DBNoFinds0FindBuffBySkillAndEffID skillTypeID= %s IsNoBuffi((RRTRUR'RRR$t
FindEffect(RJRvteffIDR!RrR ((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'RRTRURR$RR­(ttagObjRvt
returnInfot    findSkillRRrR 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(RtClearR|tKillPlayerSummonNPCtGetPlayerUseSkillPointtClearSkillManagertSetFreeSkillPointtGetFreeSkillPoint(RJtsaveSkillTypeListt    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(RFRPRQRGRHRIRVR¸(RJt    usePointsRKtnoPoints_SkillType_ListRLR!((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(    RFRGRHRIRVRkRlt
ResetSkillt LVUPSkillByID(RJRÙtplayerHasSaveListRKRLR!t curSkillTypeRa((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.pyRt    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 isPassiveAttr&scCs|jƒtjkS(N(R RRæ(R!((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytisPassiveBuffSkill)scCs |jdƒS(Nt
UsePassive(t GetDictByKey(R‹((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetUsingPassiveSkill-scCs|jd|ƒS(NRð(R¼(R‹R³((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytSetUsingPassiveSkill0scCstS(s ÑéÖ¤ÊÇ·ñ»ù±¾¹¥»÷¼ä¸ô (R(RJRvR<((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytCheckPlayerAtkInterval3scCs=|jƒ}|dkrtS|td|jƒƒ@r9tStS(Nii(t
GetUseTypeR tpowRSR(RJR!t skillUseType((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt CheckSkillJobDs  cCs|jƒtjkS(N(RÈRtDef_BaseEffectList(R±((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt IsBaseEffectSscCst|tj||ƒƒS(N(tGetAttackerHurtValueByAtkTypeRWt GetBattleType(R‹tuseSkill((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetCureBaseValue\scCst|tj||ƒƒS(N(RûRWRü(R‹Rý((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetHurtBaseValuedscCs(|jƒtjƒ|jƒ|jƒS(N(RìtrandomRî(R‹tatkType((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyRûmscCsX|jƒ}xEt|ƒD]7}|j|ƒ}|jƒjƒ}||krtSqWtS(N(RgRGRhRiR R R(t
buffManagetgivenSkillTypeListt    buffCountRLtbuffObjRâ((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytIsHasGivenBuffs  cCsbd}t|tjƒ}|dkr?t|jdƒ|ƒ}n|tj|d|tjƒ7}|S(Ni2i(    R%Rt!Def_Skill_Effect_AreaAttackkCountR'RäR)R1R2tTriggerType_AttackCnt(R‹R!t    hurtCountR*((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetSkillArea_Atk_Counts  cCs^xWtd|jƒƒD]@}|j|ƒ}|jƒ}|sCqn||krUqn|SWdS(Ni(RGtGetEffectCountRªRÈ(R!RÉRLR*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((RRTRUR'RRR$R­(RJRvR!RrR ((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytGetPlayerBuffBySkillTypeID¼s  
cCs;t||ƒ}|dkrdS|jƒj|jdƒƒS(Ni(R%R'RFRWR)(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­R7t Def_Cure_PHYtDef_Cure_HurtValueRñtDef_PlayerKey_LastHurtValuetDef_Cure_TagMaxHPR5tGetPHYtGetSTRRReR4( 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_PHYR5RRR­RªR)RReR7R4(RRÏR!t restoreTypeRR°R t    restoreMP((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt GetRestoreMP#s;)%cCsdS(N((R‹RzR<((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pytUpdateSkillComboBs(dRRˆRRR|R»RmRWRÇR«RóRPRR€R^R‹RYtChPyNetSendPackt NetPackCommonR6R×R1RR"R$R+R'R@RERMRNRcRxR{RR’R£R•RµRRÓRÂRßRáRãtDef_DropItemDistRéRÚRR RRÔRÕRHRJRLR RQRfRntDef_HurtType_NormalRoRR‘R—RR¤R¶RÀRÃR·RËRÎRÒRÛRÕRÖRtR.RíRîRïRòRóRôRøRúRþRÿRûRR
R%R RRR"R#R(R)(((sf.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\GameSkills\SkillCommon.pyt<module>s¾                                       &                     A        /    &    %    ( #, $ D     .'    p                 ,    $    1        %( B    g                    0    y &    *                                  
                                                                    >