hwj35
5 天以前 25d76560c9ed18c0cea12d6196144bebe16f2c11
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
áVic@sòddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZejddƒejddƒejddƒej ƒa!da"d„Z#d„Z$d    „Z%d
„Z&d „Z'd „Z(d „Z)d„Z*d„Z+d„Z,d„Z-d„Z.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d„Z6d„Z7d„Z8d„Z9d„Z:d„Z;d „Z<d!„Z=d"„Z>d#„Z?dd$„Z@d%„ZAd&„ZBd'„ZCd(„ZDd)„ZEd*„ZFd+„ZGd,„ZHd-„ZId.„ZJd/„ZKd0„ZLd1„ZMd2„ZNd3„ZOd4„ZPd5„ZQd6„ZRd7„ZSd8„ZTd9„ZUd:„ZVdd;„ZXd<„ZYd=„ZZd>„Z[d?„Z\d@„Z]dA„Z^e_dB„Z`dC„ZaddD„ZbdE„ZcdddF„ZddG„ZedH„ZfdI„ZgdJ„ZhdK„ZidL„ZjdM„ZkdN„ZlgddO„ZmgddP„ZnddddQ„ZoddR„ZpdS„ZqdT„ZrdU„ZsdV„ZtdW„ZudX„ZvgdY„ZwdZ„Zxd[„Zyddd\„Zzddd]„Z{d^„Z|d_„Z}d`„Z~da„Zdb„Z€ddedc„Z‚ddedd„Zƒddede„Z„df„Z…dg„Z†ddedh„Z‡di„Zˆdj„Z‰dk„ZŠdl„Z‹dm„ZŒdn„Zdo„ZŽdp„Zedq„Zddr„Z‘ds„Z’dS(tiÿÿÿÿNs Script\Skill\t
GameSkillst    GameBuffsticCsDtjƒd}tj|dƒtjƒd}tj|dƒdS(NsScript\Skill\GameSkillsRs Script\SkillR(tChConfigt
GetAppPatht    GameWorldt ReloadScript(ttickt
scriptPath((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt ReloadSkill;s
cCs$tjƒd}tj|dƒdS(NsScript\Skill\GameBuffsR(RRRR(RR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt
ReloadBuffGscCs|jƒdS(Ni
(tGetTag(tcurSkill((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillAffectTagPscCs|jƒdS(Ni
(R (R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillFireAimWscCstS(N(tg_UseSkillPlayerID(((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetUseSkillPlayerID[scCstS(N(tg_ClientHurtDict(((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetClientHurtDict`scCstjƒadadS(Ni(t collectionst OrderedDictRR(t    curPlayer((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearClientHurtDictds cCstj||fgƒS(N(Rtget(tobjIDtobjType((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetClientHurtByObjkscCs:tj||fgƒ}|s"tS|ddkr6tStS(Nii(RRtFalsetTrue(RRtresult((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytisClientHurtValueps cCs$t|ƒtj||ƒ}t|ƒ|kr2tSxß|D]×}|j|jtj}|dkr‡||j    gt
|j |j f<q9n|j t jkrtStj|j |j ƒ}|s¿tS|jƒdkrÕtS|j |j ft
krñtS||j    gt
|j |j f<q9W|jƒatS(Ni(Rt SkillCommontGetSkillArea_Atk_CounttlenRtHurtHPtHurtHPExt ShareDefinetDef_PerPointValuet
AttackTypeRtObjIDtObjTypet IPY_GameWorldtgotNPCRtGetObjt    GetIsBosstGetIDRR(RR thurtListt    hurtCountthurobjthurtHPtcurTag((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytInitClientHurtDict|s*
  # cCs|jƒtjkrtS|s#tStƒ|jƒkr<tS|jƒ}|r||jƒ|jƒkr|tj    |ƒs|tSnt
ƒs‰tSt S(N( tGetGameObjTypeR)t    gotPlayerRRR-t GetUseSkilltGetSkillTypeIDRtIsBuffRR(tattackerR t useSkillData((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytIsPlayerUseSkill¨s     cCsV|jƒr tj|dƒdStj|ƒdkrItj|dƒtS|jƒ}|tjkrxtj|dƒtS|s’tj|dƒtSt    j
|ƒr¥tS|j ƒ}t    j ||ƒs×tj|dƒtS|j ƒj|ƒ}|stj|dƒtSt    j||ƒdkr,|jƒtStj||ƒrRtj|dƒtStS(NtPlay_Attack_NullitPK_chenxin_612029tUseMagicLost02tUseMagicLost09t FB_Skill_Lost(tGetGMForbidenFightt PlayerControlt
NotifyCodetGameObjtGetHPRtGetPlayerActionRtDef_PlayerCanAttackStateRtisPassiveSkillR7t CheckSkillJobtGetSkillManagertFindSkillBySkillTypeIDtRefreshSkillRemainTimet
Sync_SkilltFBLogictOnForbidUseSkillR(RR RtcurPlayerActiont skillTypeIDt playerSkill((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCheckSkillConditionÇs<    
2cCs\|jƒ}|jƒ}| s&| r*tStj||tjƒ}|sLtS|jƒ|kS(N(    t GetUseItemIDtGetUseItemCountRt
ItemCommontFindItemInPackByItemIDR)trptItemRtGetCount(RR t    useItemIDt useItemCounttitem((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__CheckSkillUseItemDs  cCs2|jƒrt|d||ƒSt||||ƒS(N(t GetCastTimetNPCUseSkillWarntNonetDoLogic_UseSkill(tcurNPCR R((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt NPCUseSkillYs cCst|ƒ}|tjkr4t|ƒ}|s4tSnt||||ƒsMtSt|||ƒ|jƒr|t||||ƒSt    ||||ƒ}|r|j
tj ƒdkr|j |j
tj ƒ|j
tj ƒƒ|jtj dƒ|jtj dƒn|S(Ni(R RtDef_UseSkillTag_AppointNPCtGetAppointNPCBySkillEffectRtNPCCanUseSkillTagtNPCAttackMovePosR^R_Rat GetDictByKeytDef_NPC_Dict_AtkMovePosXt    ChangePostDef_NPC_Dict_AtkMovePosYtSetDict(RbR2R RtskillTagR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytNPCUseSkillTagfs"   cCsd}tj}xftd|jƒƒD]O}|j|ƒ}|jƒ}|sRq%n||krdq%n|jdƒ}Pq%W|s‚dStj    |ƒS(Ni(
RtDef_Skill_Effect_AppointNPCtxrangetGetEffectCountt    GetEffectt GetEffectIDtGetEffectValueR`RtFindNPCByNPCID(R tnpcIDteffectIDtit    curEffectt curEffectID((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRe€s      c
Csh|jtjƒdkrdStj|tjƒ}|s;dS|jdƒ}|dkr|jƒ}|jƒ}xft    |ddƒD]R}t
j ||||jƒ|jƒƒ\}}    t
j ƒj ||    ƒsÒqnPqWt
j ƒj ||    ƒs>||}}    q>n<|r|jƒn    |jƒ}|r2|jƒn    |jƒ}    |jtj|ƒ|jtj|    ƒdS(Niiiÿÿÿÿ(RhRRiRtGetSkillEffectByEffectIDtDef_Skill_Effect_AttackMoveRttGetPosXtGetPosYRpRtPosInLineByDistExtGetMaptCanMoveRlRk(
RbR2R t skillEffecttmoveDistttagPosXttagPosYtdisttposXtposY((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRg˜s*   -cCs
|jƒ}|stS|jƒtjkrog}|jdƒjdƒ}t|jdƒjdƒdƒ}t|jdƒjdƒdƒ}tj    ||ƒ}    |    |kr­tSt
|||    ƒ}
|j ƒdkrô|j |j ƒ|jƒgƒq|jƒs    tjn    |jƒ} xt|
ƒD]F} tj|j ƒ|jƒ| ƒ} |j | j ƒ| jƒgƒq"Wn¯tj|tjƒ}|r‘|jƒd} t|j ƒ| dƒ|j ƒ| }}t|jƒ| dƒ|jƒ| }}g}xJt||dƒD]6}x-t||dƒD]}|j ||gƒq WqWtj|t
|jdƒdt|ƒƒƒ}|j |j ƒ|jƒgƒn|jtjƒdkrÓ|jtjƒ|jtjƒgg}nK|rå|j ƒn    |j ƒ}|r|jƒn    |jƒ}||gg}|sKtjd|jƒ|j ƒfƒtS|j ƒ}|j!tj"|ƒ|j!tj#|ƒ|j!tj$t|ƒƒxPt%|ƒD]B\} }|j!tj&| |dƒ|j!tj'| |dƒq£W|j(t)j*ƒt+||ƒt,S(Niiiiis%ûÓÐÔ¤¾¯×ø±êÐÅÏ¢£¡npcID=%s,skillID=%s(-R^Rt GetSkillTypeRtDef_SkillType_SummonRrRttmaxRtGetSummonCountByNPCIDtmint
GetAtkTypetappendR}R~t
GetAtkDisttDef_DropItemDistRptGameMaptGetEmptyPlaceInAreaR{tDef_Skill_Effect_RandWarntrangetrandomtsampleR!RhRiRkRtErrLogtGetNPCIDt
GetSkillIDRltDef_NPC_Dict_SkillWarnSkillIDtDef_NPC_Dict_SkillWarnTimetDef_NPC_Dict_SkillWarnPosCntt    enumeratetDef_NPC_Dict_SkillWarnPosXtDef_NPC_Dict_SkillWarnPosYt SetCurActionR)tlaNPCSkillWarningtNotifyNPCSkillWarnR(RbR2R RtwarnTimet warnPosListt curSummonIDtcurSummonCounttsummonCountAlltcurSummonNPCCntt canSummonCnttatkDistRxt    resultPosR‚tfromXttoXtfromYttoYt
warnPointstxtyR‡RˆtskillIDtposInfo((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR_¸s^ !! "!!&**."*#  c    Csb|jƒtjkrdS|jtjƒ}|jtjƒ}|||jƒ}|dkradStj    ƒ}|j
ƒ|j ƒ|_ |j ƒ|_||_||_||_g|_|jtjƒ}xbt|ƒD]T}tjƒ}|jtj|ƒ|_|jtj|ƒ|_|jj|ƒqØWt|jƒ|_|j|jƒ|jƒƒdS(Ni( t GetCurActionR)R¢RhRR›Rœt GetActionTicktChPyNetSendPackttagMCNPCSkillWarntClearR-R'R™tNPCIDtSkillIDtWarnTimet
RemainTimet WarnPosListRRpttagMCNPCSkillWarnPosRŸtPosXR tPosYRR!t
WarnPosCntt    NotifyAllt    GetBuffert    GetLength(    RbRt warnSkillIDR¤t
remainTimetsendPacktposCntRxtpos((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR£s0  
                 cCs×t|ƒ}|tjkrtSt||ƒr2tSt|||ƒrHtStj|ƒ}|tjkr‚|jƒt    j
kr‚t Snt j ||||ƒd}|tjkrÀ|tjkrÀtS|tjkrÓt StS(Ni(R RRdRtIsToPetOwnerSkilltIsSummomToOwnerSkillt
SkillShelltDef_UseSkillTag_CanAttackPlayerR4R)R5Rt
BaseAttacktGetTagRelationtDef_UseSkillTag_FriendNPCtType_Relation_FriendtType_Relation_Enemy(RbR2R RRmtcurSkillUseTagtrelation((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRf's" cCsK|jƒtjkrtStjd|jƒƒ}|rG|jƒrGtStS(NtBOSSInfo(    R¶R)R¢Rt IpyGameDataPYtGetIpyGameDataNotLogR™tGetSkillResistR(Rbt bossIpyData((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytIsNPCSkillResistBs cCs‚|tjtjgkrtS|jƒtjkr5tStjtj    |ƒ}|shtjtj
|ƒ}n|srtSt j ||ƒS(N( RtDef_UseSkillTag_FriendtDef_UseSkillTag_SummonMasterRtGetGameNPCObjTypeR)t
gnotSummont    NPCCommontGetSummonNPCOwnerR*R5Rt    IsSameObj(RbRmR2towner((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÍTscCs†|tjkrtStj|ƒsItjd|jƒ|jƒfƒtStj    |ƒ}|dkr‚tjd|j ƒj ƒtSt S(Ns+NPCID %s AI %s ·Ç³èÎÎÞ·¨»ñµÃÖ÷ÈËÊͷż¼ÄÜs$³èÎ%s£©¶ÔÖ÷ÈËÊͷż¼ÄÜ£¬ÕÒ²»µ½Ö÷ÈË(RtDef_UseSkillTag_PetMasterRt
PetControltIsPetRR˜R™t    GetAITypet GetPetOwnerR`t
GetRolePettPetIDR(RbRmtpetOwner((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÌjs# c
Cstjƒj|ƒ}tjƒjƒ}|jtjkrä|jdkrä|j    d}|j
|j ƒkrndSt j |ƒdkr‡dStjƒj|j|jƒs©dS|jƒ|j|j|jƒtjd|j ƒƒdSt|jdƒ}xt|ƒD]}|j    |}tj|j
tjƒ}    |    s:qn|    jƒtjkrd|tjkrdqnt j |    ƒdkrqntjƒj|j|jƒs£qntj|    jƒ|    jƒ|j|jƒdkrÙqn|    jƒtj krôqn|    jƒ|    j|j|jƒqWdS(Niis---Íæ¼Ò±»»÷ÍË %si
i(!RtGetPlayerManagertGetPlayerByIndexR€t GetMapFBTypeR(R)R5tCountt
NPCPosListR'R-RDRERRÁRÂtStopMoveRjtLogRR•R+R*R,RtDef_NPCType_Ogre_SupertfbtNulltGetDistR}R~R¶R¢(
tindext
clientDataRRtmapTypeRËtcountRxtnpcPostnpcObj((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt NPCBeatBacksB! 
 $0
cCsdS(N((R÷RøR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt NPCAttentionëscCs•|jƒ}tj|tjƒ}|ra|jtjƒdkra|jtj|jdƒƒqan|j    dƒt
j |t j ƒtj||ƒdS(Ni(R6RR{RtDef_Skill_Effect_PowerPartRhtDef_PlayerKey_PowerPartCountRlRttSetPrepareStateRBtChangePlayerActionR)tpaAttackt PlayerStatet ProcessFight(RRR t    hasEffect((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytSkillPrepareEndls " cCsPd}t||ƒ|kr7|jƒtjdƒtS||jdƒdkrp|jdƒ|jd|ƒn||jƒkr¿tjdƒ|j    ƒ}|j|dƒ|dkr¿tSn||jƒt
j |ƒd    kr?tjd
||jƒt
j |ƒd fƒ|j    ƒ}|j|dƒ|dkr?tSn|j |ƒt S( Niˆstick Îó²î¹ý´óÔò¹ýÂË > 5000t    CheckTicki`êis¿Í»§¶Ëtick£¬Ð¡ÓڼǼÔòΪÒì³£iigffffffæ?s # ¹¥»÷¼ä¸ô¹ý¿ì %s - %s < %sgè?(tabstSync_ClientTickRtDebugLogRRht SetMoveCountRltGetPlayerAttackTickt GetMoveCountRBtGetAtkIntervalt SetAttackTickR(Rt
clientTickRtDef_Attack_DelayTickterrCnt((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCheckClientAttackTick}s,
     #-   c CsFtjƒj|ƒ}|jƒ}|j}|j}|j}|j}|j}    |j    }
|j
} |j ƒj |ƒ} | sdS|t jkrÄt||
|ƒsÄt|| t jƒ|jƒdSn|jƒtjkrêt|| ƒdStj|t j| jƒ| ƒst|| ƒdSt|| | ƒs?t|| ƒdSt|||| ƒset|| ƒdStj|tƒ|jƒ|j | j!ƒƒ|j"|ƒ|j#|    ƒt$| ƒdkré|j%| dj&ƒ|j'| dj(ƒn|j)||ƒ| j*ƒdkrt+|| |ƒdStj,|tjƒt-j.||ƒdS(sk
        Óɿͻ§¶ËËÑË÷¶ÔÏó£¬Ð¡¹ÖÓɿͻ§¶Ë¼ÆËãÉ˺¦£¬·þÎñ¶Ë¿ØÖÆÉ˺¦Öµ·¶Î§
        ÆäËû¶ÔÏóÂß¼­ÓÉ·þÎñ¶Ë´¦Àí
    Ni(/RRíRîR-R¼RÁRÂtTagPosXtTagPosYt    WorldTicktHurtListRJtFindSkillBySkillIDRtDef_SkillID_SomersaultRtAttackFailNotifytSkillFail_AtkIntervalR
RFR)RtOperControlManagertIsObjCanDoActiontDef_Obj_ActState_ClientSkilltGetSkillOfSeriesR3t __CheckPlayerUseSkill_ClientPackRBtSetIsNeedProcessRtClearUseSkillRect SetUseSkillt GetSkillDatatSetUseSkillPosXtSetUseSkillPosYR!tSetUseSkillTagTypeR(tSetUseSkillTagIDR'tSetAttackTargetPosR^tOnPrepareSkillRRR( R÷RøRRt curPlayerIDt pack_SkillIDt    pack_PosXt    pack_PosYR„R…RR.R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt
UseSkillExºs\                             
        
  cCstj||ƒdkrtSd}tj|tjƒ}|jƒtjkræ|j    ƒtj
kræ|skdS|j ƒ|j ƒkr‡dS|j dƒ}t|||jƒ|jtjƒdƒ}|jtj|ƒt||ƒn—|jtjdƒ|jtjdƒt|jƒtj|jƒƒ}|rZ|jtj|ƒ|j dƒ}ntj|||tj
|j ƒƒtS(Nii(RRLRR{RRÿRFR)t paPreparingtGetPrepareStatetpstSkillt GetPrepareIDRšRtRtGetPlayerActionTickRhtDef_PlayerKey_PowerPartTimeRlRRtintRtDef_AtkSpeedBaseR^RBtSync_PrepareBeginR(RR RRúRtcnttcastTime((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR+ s**-##cCs8tjƒ}|jƒ|_||_tj||ƒdS(N(R¸ttagMCAttackFailRšR¼tReasont NetPackCommont SendFakePack(RR treasonRÉ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR2s     cCstjtƒ||ƒdS(N(Rt GetPsycoFunct__Func_UseSkill(R÷R((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytUseSkillLsc    CsHtjƒj|ƒ}|jƒ}tjƒ}|jƒ}|jƒ}|jƒ}|j    ƒj
|ƒ}|s„tj d||ƒdSt ||||ƒsdSt j|tj|jƒƒs¿dStj|tƒ|jƒ|j|jƒƒ|j|jƒ|jƒƒ|jƒtjkr!dStj|tjƒtj||ƒdS(NsUseSkill findSkillErr = %s(RRíRîR-R)tIPY_RoleUseSkillRšR}R~RJRR˜R!RRRRR RBR"RR#R$R%R*RFRRRR(    R÷RRR,RÉR-R.R/R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRBUs2         
cCstjtƒ||ƒdS(N(RRAt__Func_UseSkillTag(R÷R((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt UseSkillTagžsc CsZtjƒj|ƒ}|jƒ}tjƒ}|jƒ}|jƒ}|jƒ}|j    ƒ}|j
ƒ}    |j ƒj |ƒ}
|
sˆdSt j|tj|
jƒƒsªdSt|||    |
ƒsÃdStj|tƒ|jƒ|j|
jƒƒ|j|ƒ|j|ƒ|j||    ƒ|jƒtjkr3dStj|tjƒtj ||ƒdS(N(!RRíRîR-R)tIPY_CUseSkillTagRšt
GetTagTypetGetTagIDR}R~RJRRRRRR R!RBR"RR#R$R%R(R)R*RFRRRR( R÷RRR,RÉR-t pack_TagTypet
pack_TagIDR.R/R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRE§s8           
  cCstjtƒ||ƒdS(N(RRAt__Func_UseSkillGround(R÷R((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytUseSkillGroundósc Csntjƒj|ƒ}|jƒ}tjƒ}|jƒ}|jƒ}|jƒ}|j    ƒ}|j
ƒ}    |j ƒj |ƒ}
|
sœtj d||ƒdStj|tj|
jƒƒs¾dSt||||
ƒs×dStj|tƒ|jƒ|j|
jƒƒ|j|ƒ|j|    ƒ|j||ƒ|jƒtjkrGdStj|tjƒt j!||ƒdS(Ns UseSkillGround findSkillErr = %s("RRíRîR-R)tIPY_CUseSkillGroundRšR}R~t
GetTagPosXt
GetTagPosYRJRR˜RRRRR R!RBR"RR#R$R%R&R'R*RFRRRR( R÷RRR,RÉR-R.R/t pack_TagPosXt pack_TagPosYR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRLüs:            
  cCs’tj|ƒdkrdStj|ƒs,tStj|jƒ|jƒƒt    j
kro|j ƒt j krotSntj||||tƒsŽtStS(Ni(RDRERBtPlayerCanStateTransferRR’tGetAreaTypeByMapPosR}R~R)tgatSafeRšRRtPlayerRefreshPosR(RR‡RˆR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR!Cs '    cCs€t|||ƒsdSt|ƒtjkr/dS|jƒtjkrit|d|||jƒ|j    ƒƒSt||||ƒSdS(N(
RSRRtDef_UseSkillAim_NoneR‰tDef_CanAttackSkill_ListRaR`R}R~(RR R((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoPlayerUseSkillns%cCsOt|||ƒs#tjdƒdSt||||ƒs<dSt||||ƒS(Ns#DoPlayerUseSkillTag, ²»Âú×ãʹÓÃÌõ¼þ(RSRR tCheckTag_DoPlayerUseSkillTagRa(RR R2R((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoPlayerUseSkillTags  cCsõt|ƒ}|tjkr(t||ƒStj|ƒdkrAdS|tjkrct||||ƒS|tjkrt    ||ƒS|tj
kr›t ||ƒS|tj kr½t ||||ƒStj||ƒrÓdS|tjkrõt||||ƒS|tjkrt||||ƒS|tjkr?t|||tj|ƒS|tjkrgt|||tj|ƒS|tjkrà|jƒtjkrtStjƒjƒtjkr®tS|j ƒtj!krÇtSt|||tj|ƒStj"d|ƒtS(NiscurSkillUseTag noFind = %s(#R RtDef_UseSkillTag_PlayerAshest!__DoPlayerUseSkillTag_PlayerAshesRDREtDef_UseSkillTag_SelfAndFriendt#__DoPlayerUseSkillTag_SelfAndFriendtDef_UseSkillTag_PlayerHasHPt!__DoPlayerUseSkillTag_PlayerHasHPtDef_UseSkillTag_Teamt__DoPlayerUseSkillTag_Teamt Def_UseSkillTag_SelfFriendAttackt&__DoPlayerUseSkillTag_SelfFriendAttackRRãRÝt__DoPlayerUseSkillTag_FriendtDef_UseSkillTag_CanAttackt__DoPlayerUseSkillTag_CanAttacktDef_UseSkillTag_CanAttackNPCt!__DoPlayerUseSkillTag_CanAttackExR)R*RÏR5t Def_UseSkillTag_CanAttackBaseNPCR4RR€RïRõR,RôR˜(RR R2RRÕ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRZ—sH                cCs)tj||ƒrtSt||||ƒS(N(RRãRRf(RR2R R((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR_ßscCsXtj||ƒrtStj||||ƒ}|dtjkrEtSt||||ƒS(Ni(RRãRRÐRÑRRÓRh(RR2R RRÖ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyReís cCs{tj||||ƒstStj||||ƒ}|dtjkrKtS|jƒtjkrwt    j
||dƒntS(Nii( RÐt GetCanAttackRRÑRRÔRt GetFuncTypetDef_SkillFuncType_FbSkillt AttackCommontPlayerAttackFailSysMessanage(RR2R RRÖ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRhscCs)|jƒ|krtSt||||ƒS(N(R4RRh(RR2R RR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRjscCs_tj||||ƒ}|dtjkr/tS|jƒtjkr[tj||dƒnt    S(Nii(
RÐRÑRRÓRRmRnRoRpR(RR2R RRÖ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRf*s cCsc|jƒtjkrtStj||ƒr/tS|jƒ}|jƒ}| sU| rYtS||kS(N(R4R)R5RRRãRt    GetTeamID(RR2tcurPlayerTeamIDt curTagTeamID((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRc=s  cCs,|jƒtjkrdStj|ƒdkS(Ni(R4R)R5RDRE(RR2((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR]SscCs,|jƒtjkrdStj|ƒdkS(Ni(R4R)R5RDRE(RR2((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRa_sc    Cs‡t|||ƒsdSt|ƒtjkr/dSd}|jƒ}|jƒ}|rhtj||ƒ}nt    ||||d|d|ƒS(Nt tagRoundPosXt tagRoundPosY(
RSRRtDef_UseSkillAim_GroundR`tGetUseSkillTagIDtGetUseSkillTagTypeRR+Ra(RR tdestXtdestYRtdefendert useSkillTagIDtuseSkillTagType((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoPlayerUseSkillGroundms  c
Csí|}|jƒ}t|ƒ}t|ƒ}|tjkr|tjkrXt|||ƒS|tjkrzt    ||||ƒSt    ||||ƒSnY|tj
kré|tj ks½|tjkrÍt |||ƒS|tj kr>tj|ƒsütjdƒtStj|ƒ}|dkr5tjd|jƒjƒtS|}n˜|tjkrÖtj|ƒsmtjdƒtStjtj|ƒ}    |    dkr¦tjtj
|ƒ}    n|    dkrÍtjd|jƒƒdS|    }nt||||ƒStS(Ns!¸ÃNPC·Ç³èÎÎÞ·¨»ñµÃÖ÷ÈËÊͷż¼ÄÜs$³èÎ%s£©¶ÔÖ÷ÈËÊͷż¼ÄÜ£¬ÕÒ²»µ½Ö÷ÈËs#¸ÃNPC·ÇÕÙ»½ÊÞ£¬ÎÞ·¨»ñµÃÖ÷ÈËÊͷż¼ÄÜs&ÕÙ»½ÊÞ£¨%s£©¶ÔÖ÷ÈËÊͷż¼ÄÜ£¬ÕÒ²»µ½Ö÷ÈË(R4R RR)R5RRWRYtDef_ST_CanPlayerUseSkillR[R*tDef_ST_CanNPCUseSkillRcRåRæRçRR˜RRéR`RêRëRÞRát IsSummonNPCRâR™Rn(
R9R{R RR2tattackerObjTypetskillAffectTagtskillAimRìtcurSummonOwner((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytObjAutoUseSkill—sF                cCsa|jƒ}|jƒ}xBtd|jƒƒD]+}|j|ƒ}|jƒ|kr.tSq.WtS(Ni(R7RJR•t GetSkillCounttGetSkillByIndexRR(RtskillRQt skillManagerRxtcurPlayerSkill((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCheckPlayerHasSkillÚs  c Csutjƒj|ƒ}|jƒtjkr.dStjƒ}|jƒ}|j    ƒ}|j
|ƒ}|dkr|d}d}n>|j ƒ}|j ƒ}||jƒkrºtj|dƒdS|d}    |sÐ|n    |jƒ}
tjƒj||    ƒ} | sþdSt|||
|    |ƒsdS|j|
ƒ|j
|ƒ}|jƒtjkr]tj|ƒr]nGtj|ƒrˆtj|ƒ} | jƒntjƒj||jƒƒtj|ƒj|jƒ|ƒ|jdƒ|jƒtjkrtjdd|j ƒ|
gƒntj|d|
|j ƒgƒ|j ƒ}t!j"||
|ƒtj#d|j$ƒ|j ƒf|j%ƒƒt&S(NitUseMagicLost16it GetMountSkilltGeRen_admin_31379s#Éý¼¶¼¼ÄÜÃû = %s ³É¹¦, µ±Ç°µÈ¼¶ = %s('RRíRîRFRt$Def_Player_Cannot_LearnLvSkill_StateR)tIPY_CAddSkillPointRšRJRKR`t
GetSkillLVt GetFightPowert GetSkillMaxLVRBRCt GetGameDatatFindSkillByTypetDoLogic_PlayerSkillLvUpCostt LVUPSkillByIDRmtDef_SkillFuncType_HorseSkillRt isPassiveAttrtRefreshPlayerAttrStatetPassiveBuffEffMngtGetPassiveEffManagertRegistPassiveEfftRefreshSkillFightPowerExt SetRemainTimet WorldNotifytGetNametDataRecordPacktDR_LearnORUPSkillRót GetSkillNamet GetPlayerIDR( R÷RRtpackRQRŠR t
curSkillLVtbeforeFightPowert    upSkillLvt
curSkillIDtupSkillt
curControl((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytPlayerSkillLvUpösN          
 
$  " ,cCsçtjƒj||ƒ}|dkrHtjd||f|jƒƒtSt||ƒs[tS|jƒ}t    j
|ƒ}||kr–t    j |dƒtS|j ƒ}|j ƒ}    g}
t|ƒ} t|ƒ} | dkrA| dkrA|jƒjtjƒ} tj| | | ƒ\}}
|sAtjd|jƒ| fƒdSni|d6|d6|tj6}|    rˆt    j|||    tj|ƒ rˆtS|
rªtj|| |
| tƒn|dkrãt    j|||ƒt    j |d|gƒntS(NsÎÞ´ËÉý¼¶¼¼ÄÜ = %s,%stGeRen_jin_671654is=DoLogic_PlayerSkillLvUpCost() up skill(%s) item(%s) no enoughR¼tSkillLVtGeRen_jin_474794(RR•R–R`R˜R-RtCheckLearnSkillConditiontGetLVUpCostExpRBtGetPlayerTotalExpRCtGetLVUpCostMoneyTypetGetLVUpCostMoneytGetUpLVCostItemIdtGetUpLVCostItemNumtGetItemManagertGetPackR)RXRVtGetItem_FromPack_ByIDR RšRtDef_Cost_Reason_SonKeytPayMoneytDef_Cost_SkillLvUpt
ReduceItemtSetPlayerTotalExpR(RtcurSkillTypeIDR«RªR R¬tskillLvUpNeedExptcurExptskillLvUpNeedMoneyTypetskillLvUpNeedMoneyCountt itemIndexListt
costItemIdt costItemNumtitemPacktisEnoughtinfoDict((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR—Ks@            % cCs|jƒ|jƒkr3tjd|jƒƒtS|jƒ}t}d}|jƒ}|jƒ}|jƒ}|d|d}}    |j    ƒ}
t
j d|
ƒ} | r´| j ƒnd} xÊt |jƒƒD]¶} |j| ƒ}|dkrôqÍn|j    ƒ}|jƒ}||kr4||kr4| r4t}nt
j d|ƒ} | rÍ| j ƒ| krÍ| jƒ|krÍ||jƒ7}qÍqÍW|dkr·| r·tj|d||gƒtS|dkré||    krétj|d|    gƒtSt||ƒsütStS(Ns'Íæ¼ÒµÈ¼¶²»¹»Éý¼¶ curSkill.GetLVReq()=%sii't TalentSkilltGeRen_wjr_717982tUseMagicLost13(tGetLVtGetLVReqRR RRJtGetLearnSkillReqtGetLearnSkillLVtGetLearnSkillPointReqR7RØRÙt GetTalentTypeRpR‡RˆR`R’Rt    GetSeriesRBRCtCheckLearnSkillNeedAttr(RR RŠthasLearnSkillReqtnumLearnSkillPointtcurSkillLearnReqtlvCurSkillLearnReqtlearnSkillPointReqt
needSeriestneedSeriesPointRÁtipyDatat curTalentTypeRxR‰RQtlvSkill((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR²©sB            *cCsŒ|jƒ}|jƒ}t|ƒ\}}|rˆ|rˆi}||krctjd||fƒtS|j|dƒ}||krˆtSntS(NsC    ¼¼ÄÜÉý¼¶ÊôÐÔµãÌõ¼þÅäÖôíÎó£¬curSkillTypeID=%s,needBaseAttrID=%si(R7tGetStateSkillLVtGetSkillUpNeedAttrRR˜RRR(RR RÁt stateSkillLVtneedBaseAttrIDtneedBaseAttrValuet baseAttrDicttcurBaseAttrValue((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÖås     cCs|d|dfS(Ni †((Rã((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRâüscCs|jƒdS(Ni †(Rá(R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillElementTypeþscCsRtjƒj|ƒ}|j}tjd|ƒ}|s:dS|jƒ}|jƒ|jƒkrotj    dƒdS|j
ƒ}|j |ƒ}|s¥tj    d|ƒdS|j }    |j tj|ƒ}
|j tj|ƒ} t} | } |    dkrstjƒj|| dƒ}|sdSt||ƒs+dS| d} t|ƒ}tj|tj|| ƒ|
|kr“t} q“n | s}dS||
krdSt} | r,t||ƒdsÁtj    d|ƒdSt|||ƒ|
ró|
|kró|j|
ƒntjƒj|ƒtj|ƒ}|jƒ|j ƒnt!||| | krG|ndƒdS(Nt SkillElementsÑ¡Ôñ¼¼ÄÜÎåÐÐר¾«µÈ¼¶²»×㣡s&Ö÷¼¼ÄÜδѧϰ£¬ÎÞ·¨Ñ¡×¨¾«mainSkillID=%siis ¸ü»»×¨¾« ²»³É¹¦ selectSkillID=%s("RRíRît SkillTypeIDRØtGetIpyGameDatatGetMainSkillIDRÏt    GetNeedLVR RJRKtDoTypetNomalDictGetPropertyRtDef_PDict_SkillElementIDtDef_PDict_SkillElementLVRR•R–RÖRèRBtNomalDictSetPropertyRtRefreshElementSkilltUpdateElementSkillSelecttDeleteSkillBySkillTypeIDRœRRžtRefreshAllSkillR›tNotifyElementSkillInfo(R÷RøRRt selectSkillIDRÞt mainSkillIDRŠt    mainSkilltdoTypetcurElementSkillIDt activeSkillLVt isChangeSkilltupdSelectSkillLVt    nextSkilltskillElementTypeR­((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytOnSelectSkillElements`            
 
 "c
Cstj|tj||ƒtjd|jƒƒ}||krBdS|j|ƒ}|tj    kru|j
ƒ}|}n|j ƒ}|tj    }d}|rÄtj d|ƒ}|rÄ|j ƒ}qÄntj|||ƒ}    |tj    krû|j|    tƒn|j|    tƒdS(NtSkillActTypeIdSortiRé(RBRòRRðRØtGetFuncEvalCfgtGetJobR÷R$tDef_PDictDigitCntt
GetExAttr7t
GetExAttr8RëtGetElementSkillNumRtChangeDataByDigitPlacet
SetExAttr7Rt
SetExAttr8(
RRùRøt mainSkillListtmainSkillIndext exAttrValuet exAttrIndextelementSkillNumRÞtupdExAttrValue((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRôLs(        cCstt}}tƒ|tjkr-||fSi}|jtj|ƒ}tj|}t|ƒ}d}    xXt|ƒD]J\}
} t    | ƒ\} } |j
| dƒ}|| kru||
}    PququW||    kròt j |tj||    ƒt }nt|    |ƒ}    |jƒ}|j|ƒ}|r.|jƒnd}|sD||fS|    |krZ||fS|    |krÝ|j|ƒx!t|    ƒD]}|j|ƒq€W|    dkrtjd|ƒ}|jƒ}t||dƒt }qn(x%t|    |ƒD]}|j|ƒqîW|t fS(NiRé(Rt__InitElementSkillInfot
PyGameDatatg_elemntSkillDictRïRRñR!RžRâRRBRòRRRJRKR’RõRptLVUpSkillBySkillTypeIDRØRëRìRô(RRQt
isChangeLVtisNotifyt hasChangeLVRæRýt limitInfoListt
maxSkillLVt
updSkillLVRxt    limitInfot
needAttrIDt needAttrValuet curAttrValueRŠR R¨t_RÞRù((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRónsL 
 
      
 
     cCs·tƒi}|jƒ}xåt|jƒƒD]Ñ}|j|ƒ}|jƒ}tjdi|d6tt    ƒ}|sxq,n|j
t j |ƒ}xl|D]d}    |    j ƒ}
|
tjkr¼q•nttj|
dƒd} | |kréq•n||
k||
<q•Wq,Wt    t    } } xP|jƒD]B\}}t|||ƒ\}}|rNt} n|rt} qqW| r tjƒj|ƒtj|ƒ}|jƒ|jƒn| r³t|ƒndS(NRét MainSkillIDi(RRJRpR‡RˆR7RØtGetIpyGameDataByConditionRRRïRRðtGetElementSkillIDRRRâtitemsRóRœRRžRBRöR›R÷(Rt
attrIDListtneedRefreshSkillIDDictRŠRxthasSkillt
hasSkillIDt ipyDataListtcurSelectSkillIDRÞRütattrIDt
needNotifyt    isRefreshR´RRRR­((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytRefreshElementSkillByAttr sB           
  cCstjƒ}d}|jƒ}xît|jƒƒD]Ú}|j|ƒ}|jƒ}    |    |krdq1ntjdi|    d6t    t
ƒ}
|
sq1nxy|
D]q} | j ƒ} |rØ|j | ƒ} t | ƒ|krØq–qØn|jtj| ƒ}||kr–|d7}q–q–Wq1W|S(NiRéR"i(RR•RJRpR‡RˆR7RØR#RRR$tGetSkillBySkillIDRèRïRRñ(RtmainSkillIDListtactiveLVt elementTypetgameDataR:RŠRxR(R)R*RÞtelementSkillIDtelementSkillDatat curActiveLV((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetElementSkillCntÉs*           cCsþtjsútjƒ}xât|jƒƒD]Ë}|j|ƒ}|jƒ}tj    ƒj
|dƒ}|smq(n|j ƒ}xwt|ddƒD]c}tj    ƒj
||ƒ}|s¶qŒn|tjkrÕgtj|<ntj|j |j ƒƒqŒWq(WndS(Niiiÿÿÿÿ(RRRØtIPY_DataRptGetSkillElementCounttGetSkillElementByIndexR$RR•R–R”RRá(tipyMgrRxRÞR5R‰t
skillMaxLVtskillLVR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRâs"       %cCsÙ|s°i}|jƒ}x¸t|jƒƒD]~}|j|ƒ}|jƒ}tjdi|d6ttƒ}|swq+ng||<x%|D]}    ||j    |    j
ƒƒqˆWq+Wn#|rÆi|g|6n
ig|6}t j ƒ}
g|
_ xÈ|jƒD]º\} } |jtj| ƒ} t jƒ}| |_| |_g|_xL| D]D}t jƒ}||_|jtj|ƒ|_|jj    |ƒqEWt|jƒ|_|
j j    |ƒqõWt|
j ƒ|
_tj||
ƒdS(NRéR"(RJRpR‡RˆR7RØR#RRRR$R¸ttagMCSkillElementInfotInfoListR%RïRRðttagMCSkillElementDataR"tElementSkillIDt ActiveSkillttagMCSkillElementActiveDataR¼RñtActiveLVR!tSkillCnttCntR>R?(RRùt changeSkillIDtsyncMainSkillDictRŠRxR(R)R*RÞRÉtmSkillIDt elementListRüt elementDataR5t
activeData((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR÷ös>  
 "#                        cCs#|jƒ}|tjkrtStS(N(R‰RtDef_LstBuff_ListRR(tcurObjt curBuffSkillt buffSkillType((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__BuffCanProcess     s cCsotj}tj|tjƒ}|dkrk|jdƒ}|jdƒrkt|jƒtj    |ƒ}qkn|S(Nii(
RtDef_ProcessPersistBuffRR{tDef_Skill_Effect_BuffTickR`RtR7RR8(RPROtbuffTickRy((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetProcessBuffTick3    s     #c Cs3|jƒ}|sdSxtd|ƒD]}|j|ƒ}|sGq&n|jƒ}t||ƒshq&nt||ƒ}||jƒ|kr“q&n|j|ƒxˆtd|jƒƒD]q}|j    |ƒ}    |    j
ƒ}
|
sãq¶nd|
df} t j t | ƒ} | sq¶n| |||    ||ƒq¶Wq&WdS(NisBuffProcess_%d.%st ProcessBuff(t GetBuffCountR•tGetBufftGetSkillRRRVtGetProcessIntervaltSetProcessIntervalRqRrRsRt GetExecFuncR( ROt    buffStateRtbuffStateCountRxtcurBuffRPtprocessBuffTickteffIndexRyRzt
processStrtcallBuffProcessFunc((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__ProcessCurPersistBuffE    s0    cCstt||jƒ|ƒt||jƒ|ƒ|jƒtjkrpt||jƒ|ƒt||jƒ|ƒndS(N(RetGetProcessBuffStatetGetProcessDeBuffStateR4R)R5t GetEquipBufft
GetMapBuff(ROR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytProcessPersistBuffy    s cCs]||jtjƒtjtjkr*dS|jtj|ƒt||ƒrYt|ƒndS(N(t GetTickByTypeRtTYPE_Player_Tick_MapBufftTYPE_Player_Tick_Timet SetTickByTypet__ProcessMapEffecttProcessPlayerAreaState(RR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytProcessMapBuffŽ    s cCsþtjƒ}|jƒdkr"dS|j|jƒ|jƒƒ}|jƒ}|dkr|tjd|j    ƒƒ|j
ƒt S|j ƒ}|dks¡|j ƒ r¯t|ƒt St}d}x)||jƒkræ|j|ƒ}|jƒ|jƒ}    }
|jƒjƒ} |j| ƒsÙ|jƒ} x…td| j ƒƒD]n} | j| ƒ}|jƒ}|dkrnq;ntjtd|dfƒ}|dkrœq;n|||ƒq;W|j|ƒt|| |    |
ƒt }q¾n|d7}q¾Wtjƒ}xtd|ƒD]ó}|j|ƒ}|dkr*qn|j|ƒ} | dkrctjd||j    ƒƒPn| j ƒ}|j!|ƒ}|rÏ|jƒjƒ| jƒkr¨qn|jƒj"ƒ| j"ƒkrÏqqÏnt#j$|t%j&| |ƒ}|pó|}qW|S(Ns###´¦Àí³¡¾°buff²éÕÒÍæ¼Òʧ°Üis MapBuff_%d.%st OnMapBuffDelis"ProcessMapEffect skill = %s ²»´æÔÚ(('RR€tGetMapIDt    GetPosObjR}R~RiR`R˜R-RºRRqtIsAlivetDoMapBuffClearRRXRYt
GetOwnerIDt GetOwnerTypeRZRšt
HaveEffectR•RrRsR]RtDeleteBuffByIndextClearBuffEffectBySkillIDR•R0R7tFindBuffR’t    BuffSkilltAddBuffNoRefreshStateR)t    bfMapBuff(RRtgameMapt    curPosObjtmapBuffManagert effectCountt processResultR÷t curRoleBufftownerIDt    ownerTypeR´R t effectIndexRyRwtcallFuncR4RxRQtfindBufftisOK((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRo¢    sl   
 
             c    Csõ|jƒ}xØtd|jƒƒD]Á}|j|ƒ}|jƒ}|jƒdkr[q"nx…td|jƒƒD]n}|j|ƒ}|jƒ}|dkr¤qqnt    j
t d|dfƒ}|dkrÒqqn|||ƒqqWq"W|j ƒdS(Nis MapBuff_%d.%sRr(RiR•RXRYRZRšRqRrRsRR]RR`Rº(    Rt buffManagert    buffIndexR`R RˆRyRwR‰((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRvû    s"     
c    Csë|jƒ}xØtd|jƒƒD]Á}|j|ƒ}|jƒ}|jƒdkr[q"nx…td|jƒƒD]n}|j|ƒ}|jƒ}|dkr¤qqnt    j
t d|dfƒ}|dkrÒqqn|||ƒqqWq"WdS(Nis MapBuff_%d.%st    OnMapBuff( RiR•RXRYRZRšRqRrRsRR]RR`(    RRŒRR`R RˆRyRwR‰((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRp
s      cCst|||||ƒdS(N(t__CallBuffFunc(R^t curObjDetailt allAttrListtcalcEffectIDListt    calcLevel((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcCurBuffer_Effect@
sc Csxtd|jƒƒD]ê}|j|ƒ}|jƒ}t|ƒ}|r|jƒtjkr|tj    |j
ƒƒkrqnx~t|j ƒƒD]j}|j |ƒ}    |    j ƒ}
|
dkrÅq’n|rÝ|
|krÝq’nt||    |||jƒ|ƒq’WqWdS(Ni(RpRXRYRZt GetAttrMapIDR4R)R5tFBCommontGetRecordMapIDRsRqRrRstCalcBuffEffAttrtGetValue( R^tobjDetelR‘R’R“RxR`t    buffSkillt    attrMapIDRyRz((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRJ
s     'c CsX|jƒ}|dkrdSt||ƒ}tjtd|dfƒ}|sQdSttj|ƒ|ƒƒ}    |    dkr|dStjtd|dfƒ}
|
r¸|
||||    |ƒn<tjtd|dfƒ}
|
rô|
||||    |ƒn|rT|jƒj    ƒt
j krTtjtd|dfƒ}
|
rT|
||||    |ƒqTndS(Nis
Buff_%s.%st GetCalcTypeiÿÿÿÿt
OnCalcBufft OnCalcBuffExsBuffProcess_%s.%s( RstGetBuffModuleSuffixRR]RtGetAttrListIndexRt IsBaseEffectRZR‰RRN( RšRyR‘R“t    plusValueR`Rzt moduleSuffixt skillTypeFuncR÷R‰((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR˜b
s*   !cCs[|jƒ}|tjkr8tjj|dggƒdStj|ƒ\}}|rW|S|S(NRi(RsRtCalcBuffLevel_1tDef_Skill_BuffEffectOutsideRR}tFindBuffAttrByEffectID(RyR“Rzt
suffixNametattrList((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR ˆ
s
 cCs!|dkrdStj||fS(Niÿÿÿÿ(R`RtDef_CalcAttrIndexDict(t    isBaseEfftcalcType((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR¡˜
s c Cs3tjƒj|ƒ}tj|ƒ}tj||ƒ}|dkrFdS|d}g}x¨td|jƒƒD]‘}    |j|    ƒ}
|
j    ƒ} | dkrŸqln|j
|    ƒ|krºqln|j |    ƒ|krÕqln|j |    ƒ|krðqln|j |    ƒqlW|jdtƒx|D]}    |j|    ƒqWdS(Nitreverse((RR•R0Rt GetBuffTypetGetBuffManagerByBuffTypeRpRqRrRstGetEffectFromSkillIDtGetEffectOwnerIDtGetEffectOwnerTypeRtsortRtDeleteEffectByIndex( ROR´R†R‡R tbuffTypet    buffTupleR^teffectIndexListRxRyRz((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR{Ÿ
s, 
   cCsTtjƒj|ƒ}tj|ƒ}tj||ƒ}|dkrFdS|d}g}xÉtd|jƒƒD]²}    |j|    ƒ}
|
j    ƒ} | dkrŸqln|j
|    ƒ|krºqln|j |    ƒ|krÕqln|j |    ƒ} tjƒj| ƒ} | j ƒ|krqln|j|    ƒqlW|jdtƒx|D]}    |j|    ƒq9WdS(NiR®((RR•R0RR¯R°RpRqRrRsR²R³R±R7RR´RRµ(RORQR†R‡R R¶R·R^R¸RxRyRzt buffSkillIDR›((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearBuffEffectBySkillTypeIDÃ
s0 
   cCs­g}xrtd|jƒƒD][}|j|ƒ}|jƒ}|dkrOqn|j|ƒ|krjqn|j|ƒqW|jdtƒx|D]}|j|ƒq’WdS(NiR®(    RpRqRrRsR±RR´RRµ(ROR^t skillIDListR¸RxRyRz((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearBuffEffectBySkillIDListç
s  
 cCsp|jƒ}x]t|jƒƒD]I}|j|ƒ}|s@qn|jƒ}|sXqntj||ƒqWdS(N(tGetActionBuffManagerR•RXRYRZRtSetObjActState(ROtactionBuffManagerRxR`R›((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffer_ActionState s  c    Cs£|jƒ}xàt|jƒƒD]Ì}|j|ƒ}|dkrFqntj|ƒs[qn|jƒtj    tj
tj tj tj gkr‘qnxWt|jƒƒD]C}|j|ƒ}|jƒ}|dkr×q¤nt|||ƒq¤WqWtj|ƒ}xž|D]–}|j|ƒ}|dkr,qntj|ƒsAqnxWt|jƒƒD]C}|j|ƒ}|jƒ}|dkr‡qTnt|||ƒqTWqWdS(Ni(RJRpR‡RˆR`RRšRmRRntDef_SkillFuncType_FbSPSkilltDef_SkillFuncType_GiftSkilltDef_SkillFuncType_GWSkilltDef_SkillFuncType_ZhuXianRqRrRsR˜RœtFindUsePassiveSkillsR(    RR‘RŠRxR‹RyRztskillsR´((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcPassiveAttr_Effect s@        cCs‰x‚ttjtjƒD]k}|tjtjtjgkr@qntj||ƒ}|dkrdqn|d}t    ||||ƒqWdS(Ni((
R•R)tbfBufftbtBufMaxt bfProcessBuffRt bfEquipBuffRR°R”(RR‘R’R¶R·RŒ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffers_EffectN s     
cCsŠtj|tƒ}gtdƒD] }i^q}x$|D]\}}t|||ƒq8Wtj||tjƒt    j
||tj ƒ|S(Ni( RátGetNPCBuffRefreshListRR•R”tCalcNoLineEffecttChangeNPCAttrInNoLineEffectListRtCalcAttr_BattleNolinetCalcLineEffecttChangeNPCAttrInLineEffectListtCalcAttr_Battle(RbtbuffRefreshListRxR‘R^t    canPileup((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffer_NPCBattleEffectº scCsdS(N((Rb((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffer_NPCBaseEffectÏ scCsR|s
dSt||||||jƒ|ƒt||||||jƒ|ƒdS(N(t__SkillTrigSkilltGetSkillEnhance1tGetSkillEnhance2(R9R{R RRyRz((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoLogic_UseEnhanceSkilló s
""cCs*|s
dSt|||||||ƒdS(N(RØ(R9R{R tskillEnhanceIDRRyRz((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytSkillTrigSkill sc Cs2|s
dS|jƒ}tjƒj|ƒ}|s[tjd|jƒ||jƒfƒdSt||||ƒ}    |    ds~dS|    d}|dkr¼tj    |ƒdks¸tj
|ƒr¼dStj ||ƒ rët j |ƒtjkrëdSt|||ƒ}
tj|
tjƒstSt||||||tƒS(Ns.¶ÔÏó = %s, ÕÒ²»µ½¸½¼Ó¼¼ÄÜID = %s, skillLv = %sii(R’RR•R0R˜R-tCheeckTrigSkillandTagR`RDREtGetNPC_Is_GateRãRÐt GetHurtTypeRtDef_HurtType_MisstGetSkillOfSeriesHitRatet    CanHappentDef_MaxRateValueRRaR( R9R{tuseSkillRyRzRÜRR>texSkillt
resultListtrate((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRØ s( &
 
0    cCs|jƒ}|S(N(t GetHappenRate(R9R{RætbaseRate((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRâ} s cCs˜|jƒtjkrGt|ƒtjtjgkr=t|fSt|fSt|ƒtjtjgkrot|fSt|ƒtj    krŽt|fSt|fS(N(
R4R)R5R RtDef_UseSkillTag_SelfR^RRRv(R9RæR{R((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÞˆ s
 
 
 
cCs“|jƒ}|dkr%d|}nd||jƒf}d||f}tjt|ƒ}|dkr|dkrtjd||fƒn|S(NisSkillModule_%ss%s_%ds%s.%st SkillAttacks'¹¥»÷¼¼ÄÜÎļþ²»¿Éµ÷Óà%s fuctionName: %s(RŽR7RR]RR`R˜(R tpyNameExtfuncNametatkTypetpyNamet fuctionNameR‰((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillCallFuncByName¬ s   cCsdS(N((R9R{RåR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoLogic_SkillAttackDieÈ sc    CsÉtj|tj|jƒƒs"dS|r[tj|ƒtjkr[|jƒ}|j    ƒ}nt
j |ƒr­|j ƒtj tjgkr‘|}nt|||||||ƒSt|||||||ƒS(N(RRRtDef_Obj_ActState_ServerSkillR RÎRRWR}R~RR8R‰tDef_SkillType_LstPlsBuffAtkt"Def_SkillType_PassiveLstPlsBuffAtkt__DoLogic_AddBufft__DoLogic_UseAttackSkill(R9R{R RRtRutisEnhanceSkill((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRaî s         cCsetj|ƒrItj|jƒkr-|}nt|||||||ƒSt|||||||ƒS(N(RR8RRõR‰R÷Rø(R9R{R RRtRuRù((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytTrigger_UseSkill s
    c Csˆ|jƒ}tj|ƒ}    |rDtj||    ||jƒƒ rDdStj|jƒtj    ƒscdS|r—|j
ƒtj kr—t j ||ƒs—dSntjƒt|ddƒ}
|
dkrç|
||||||ƒ} | sBdSn[t|||ƒ} tj||    ||| |d|ƒ} | dk    rBt|||||ƒn|rbtj||||ƒtStj|tj|ƒ|||ƒtS(Nt    SkillBufftUseBufftaddForcei(R7RR¯tCheckCanAddBuffR’RRãRéRRäR‰tDef_Debuff_ListRotCheckCanAttackTagRÐtClearSkillHurtListRòR`tGetAddBuffValueR}t    DoAddBufft AddBuffOvertOnHurtTypeTriggerPassiveSkillRtDoAttackSuccessExRDRE( R9R{R RùRRtRuRýRQt skillBuffTypeR‰RtaddBuffValueList((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR÷ s0 %
 $ 
"cCsŽ|jdƒ}t|ƒ}i}|jƒtjkrUtjtd|dfƒ}ntjtd|dfƒ}|s{gS|||||ƒS(NisBuffProcess_%s.%st CalcBuffValues
Buff_%s.%s(RrR R‰RRNRR]R(R9R R{RyR¤tchangeBuffValueDictR‰((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR] s c
CsVxstd|jƒƒD]\}|j|ƒ}tjtd|jƒdfƒ}|dkr_qn|||||ƒqW|jƒ}|dkr­|t    j
kr­|j t ƒn|r·dSt ||||ƒ|t    jkrR|dkrRtj||ƒ rR|jƒtjkr9tj|ƒ}    |    j||jƒdƒntj||d|ƒndS(Nis
Buff_%d.%st    OnAddBuffi(R•RqRrRR]RRsR`R‰RRNR"RRÛRÿRãR4R)R*Rát
NPCControltAddObjToAngryListt GetSkillAngryRÐtDoLogic_AttackResult(
R9R{R RRùRˆRyR‰t    skillTypet
npcControl((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRy s&"  cCs>t|ddƒ}|dkr"tS||||||||ƒS(NRìRC(RòR`R(R9R{R RRtRuRùR‰((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRø­ s cCsAtjƒj|ƒ}tjƒ}|j|jƒ|jƒƒdS(N(RRíRîR)tIPY_CSetAutoSkillt
SetAutoAtktGetTypeRš(R÷RRRÉ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt SetAutoSkillË s cCs
|jƒS(N(t
GetExAttr1(R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetConnectSkillIDÖ scCsdS(Ni((R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetLVUpCostZhenQiÝ scCs|s
dS|jƒS(Ni(t
GetExAttr2(R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetHappenStateã scCs
|jƒS(N(t
GetExAttr3(R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR•ê scCs
|jƒS(N(t
GetExAttr4(R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR·ñ scCs
|jƒS(N(t
GetExAttr5(R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR¸÷ scCsv|jƒ}|jƒ}|jƒd}t||ƒ}tjƒj||ƒ}|sftjdƒdSt|ƒ}|S(Nis!»ñÈ¡ÏûºÄÕæÆøÖµ´íÎó£¬skill is Nonei(    R7R”R’RRR•R–RóR(R RÁRRªtskillLvR¬tskillLvUpNeedZhenQi((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillLVUpCostZhenQiÿ s    cCst}tjdkrÊ|rÊ|jtjƒrÊ|jƒ}|rK|jƒnd}|jƒ}tjj    |||gƒt
tjƒdkrÊt j ƒj ƒ}    t jdd|    tjfƒdt_|Sn|jƒdkrÌ| rÌt jƒj|jƒƒ}
|
rFt j|
jƒtjƒrFt||
||tƒr=tn|}nt jƒj|jƒƒ} | r©t j| jƒtjƒr©t|| ||tƒr tn|}ntj|tj|ƒ||ƒ|St|ƒ} t|ƒ} t jd| |jƒ|j ƒf|jƒƒ| tj!krý|j"ƒtj#krß| tj$krß|r¯|j%ƒt&j'kr¯|j(ƒt&j)kr¯t*j+|ƒ}|r¯|jƒ|jƒkr¯d}q¯nt,|||||j-ƒ|j.ƒd|ƒ}qot,||||d|ƒ}nr| tj/krk|r.|j-ƒ|j.ƒ}}n|j-ƒ|j.ƒ}}t,||||||d|ƒ}n| tj0krÎt1j2|ƒstSt1j3|ƒ}|dkr¬tS|}t4j5|ƒdkrÎtSn| tj6tj$gkrT|st jdƒt}qo|j%ƒt&j7kr6t8||||ƒ r6t}qot,||||d|ƒ}nt,||||d|ƒ}t jd||jƒƒ|S(    NiidtMirrorAIAtkDepthErrors mapID=%s, %ssÊͷű»¶¯´¥·¢¼¼ÄÜ : %s- %s %sRùs$ÅäÖÃÁ˿ɹ¥»÷Ä¿±ê£¬µ«Ã»Ä¿±ê¾Í²»Èô¥·¢s´¥·¢½á¹û-----------%s(9RRtg_singleAtkRecordListR`RhRtDef_PlayerKey_MirrorBattleIDR-RšRR!RR€Rst SendGameErrorR R•R0RÙRãRéRätUsePassiveTriggerSkillRRÚRtSetSkillRemainTimeRBtGetReduceSkillCDPerRR R R¥RWR‰RXRëR4R)R*RßRàRátGetNpcObjOwnerDetailRaR}R~RvRåRæRçRéRDREtDef_UseSkillTag_NoneR5RZ(R9R ttargetRRùRtatkIDttagIDR´tmapIDtskill1tskill2R„t    affectTagRäR‡RˆRì((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR%sp'      !'!'  /$0 0$          cCs‹d}|jƒ}xrt|jƒƒD]^}|j|ƒ}|dkrLq%n|jƒ|krdq%n|jƒ|kr%|d7}q%q%W|S(Nii(RJRpR‡RˆR`RmR’(RtfuncTypetskilllvt allSkillCntRŠRxR‹((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillCntByFuncrs  cCs‚d}|jƒ}xit|jƒƒD]U}|j|ƒ}|dkrLq%n|jƒ|krdq%n|jƒ}||7}q%W|S(Ni(RJRpR‡RˆR`RmR’(RR1t
allSkillLVRŠRxR‹R>((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt GetAllSkillLVƒs   (“RR)RRR}RBRRÐRÑRÎRáRRoRRNRVRRæR£R$RDR–R>R¸R’RRœRÎR–RØRt    ImportAllRRRR    R
R RRRRRRR3R;RSR]RcRnReRgR_R£RfRÜRÍRÌRýRþRRR0R+RRCRBRFRERMRLR!RYR[RZR_ReRhRjRfRcR]RaR~R†RŒR®R`R—R²RÖRâRèRRôRRóR/R8RR÷RRRVReRjRqRoRvRpR”RR˜R R¡R{RºR¼RÀRÇRÌRÖR×RÛRÝRØRâRÞRòRóRRaRúR÷RRRøRRRRR•R·R¸R R%R4R6(((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt<module> s"                                                                              ,        }                          L    #                #    ^            =    Q    '             I            L            G    +            H                                     *    C        U ^    <            
    D    " 2    )     *            4            Y        &
&         $    $             / l        $    ^         $        &@        4                                  ^