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
299
300
301
302
303
304
îœ}hc@s7ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl!Z!ddl"Z"ddl#Z#ej$ddƒej$ddƒej$ddƒej%ƒa&da'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?d„Z@d „ZAd!„ZBd"„ZCd#„ZDd$„ZEdd%„ZFd&„ZGd'„ZHd(„ZId)„ZJd*„ZKd+„ZLd,„ZMd-„ZNd.„ZOd/„ZPd0„ZQd1„ZRd2„ZSd3„ZTd4„ZUd5„ZVd6„ZWd7„ZXd8„ZYd9„ZZd:„Z[d;„Z\dd<„Z^d=„Z_d>„Z`d?„Zad@„ZbdA„ZcdB„ZdeedC„ZfdD„ZgddE„ZhdF„ZidddG„ZjdH„ZkdI„ZldJ„ZmdK„ZndL„ZodM„ZpdN„ZqdO„ZrgddP„ZsgddQ„ZtddddR„ZuddS„ZvdT„ZwdU„ZxdV„ZydW„ZzdX„Z{dY„Z|gdZ„Z}d[„Z~d\„Zddd]„Z€ddd^„Zd_„Z‚d`„Zƒda„Z„db„Z…dc„Z†dde‡dd„Zˆdde‡de„Z‰dde‡df„ZŠdg„Z‹dh„ZŒdde‡di„Zdj„ZŽdk„Zdl„Zdm„Z‘dn„Z’do„Z“dp„Z”dq„Z•e‡dr„Z–dds„Z—dt„Z˜dS(uiÿÿÿÿ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
ReloadBuffLscCs|jƒdS(Ni
(tGetTag(tcurSkill((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillAffectTagUscCs|jƒdS(Ni
(R (R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillFireAim\scCstS(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.pytGetClientHurtDictescCstjƒadadS(Ni(t collectionst OrderedDictRR(t    curPlayer((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearClientHurtDictis cCstj||fgƒS(N(Rtget(tobjIDtobjType((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetClientHurtByObjpscCs:tj||fgƒ}|s"tS|ddkr6tStS(Nii(RRtFalsetTrue(RRtresult((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytisClientHurtValueus 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__CheckSkillUseItemIs  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 NPCUseSkill^s 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.pytNPCUseSkillTagks"   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.pytIsNPCSkillResistGs 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ÍYscCs†|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Ìos# c
Cs)tjƒ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ƒ}x,t|ƒ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ƒt!||    ƒ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¢t BeatBackMove(
tindext
clientDataRRtmapTypeRËtcountRxtnpcPostnpcObj((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt NPCBeatBack’sD! 
 $0
cCsÛtjƒjƒtjkrdS|jƒtjkr8dS|j|j    ƒƒ}|sWdS|j
ƒ}|j ƒ}tj |j
ƒ|j ƒ||ƒdkrdSt j|ƒ}|j||dƒ\}}|j||ƒdS(Nii(RR€tGetMapIDRtDef_FBMapID_MagicWeaponR¶R)R¢tGetRefreshPosAttGetCurRefreshPointIndexR}R~RöRát
NPCControltGetMoveNearPosExtMove(RRýtposMaptposMapXtposMapYt
npcControlt    moveDestXt    moveDestY((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR÷Ìs  *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.pytSkillPrepareEndqs " 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_SomersaultR"tAttackFailNotifytSkillFail_AtkIntervalRRFR)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.pyR9s**-##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.pyR)7s     cCstjtƒ||ƒdS(N(Rt GetPsycoFunct__Func_UseSkill(RøR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytUseSkillQsc    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~RJR'R˜R/R+R,RR-R.RBR0RR1R2R3R8RFRRRR(    RøRRR:RÉR;R<R=R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRPZs2         
cCstjtƒ||ƒdS(N(RROt__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~RJR'R+R,RR-R.R/RBR0RR1R2R3R6R7R8RFRRRR( RøRRR:RÉR;t pack_TagTypet
pack_TagIDR<R=R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRS¬s8           
  cCstjtƒ||ƒdS(N(RROt__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
GetTagPosYRJR'R˜R+R,RR-R.R/RBR0RR1R2R3R4R5R8RFRRRR( RøRRR:RÉR;R<R=t pack_TagPosXt pack_TagPosYR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRZs:            
  cCsÍtj|ƒdkrdS|jtjƒr/tS|jƒtjkrTt    j
|ƒnt j |ƒsgt Stj|jƒ|jƒƒtjkrª|jƒtjkrªt Snt j||||t ƒsÉt StS(Ni(RDRERhRtDef_PlayerKey_ClientCustomSceneRtGetPlayerVehicleR)tpvHorset PlayerHorsetPlayerRideHorseDownRBtPlayerCanStateTransferRR’tGetAreaTypeByMapPosR}R~tgatSafeRšR(tPlayerRefreshPos(RR‡RˆR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR/Hs'    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.pytDoPlayerUseSkillws%cCsOt|||ƒs#tjdƒdSt||||ƒs<dSt||||ƒS(Ns#DoPlayerUseSkillTag, ²»Âú×ãʹÓÃÌõ¼þ(RSRRtCheckTag_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.pyRm sH                cCs)tj||ƒrtSt||||ƒS(N(RRãRRy(RR2R R((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRrèscCsXtj||ƒrtStj||||ƒ}|dtjkrEtSt||||ƒS(Ni(RRãRRÐRÑRRÓR{(RR2R RRÖ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRxö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.pyR{ scCs)|jƒ|krtSt||||ƒS(N(R4RR{(RR2R RR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR}$scCs_tj||||ƒ}|dtjkr/tS|jƒtjkr[tj||dƒnt    S(Nii(
RÐRÑRRÓRR€RR‚RƒR(RR2R RRÖ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRy3s 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.pyRvFs  cCs,|jƒtjkrdStj|ƒdkS(Ni(R4R)R5RDRE(RR2((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRp\scCs,|jƒtjkrdStj|ƒdkS(Ni(R4R)R5RDRE(RR2((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRthsc    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.pytDoPlayerUseSkillGroundvs  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)R5RRjRltDef_ST_CanPlayerUseSkillRnR*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 Cs‚tjƒ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ƒtjkrjtj|ƒrjtj|ƒnGtj|ƒr•tj|ƒ} | jƒntjƒj||jƒƒtj|ƒj|jƒ|ƒ|j dƒ|jƒtjkrtj!dd|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 LVUPSkillByIDR€tDef_SkillFuncType_HorseSkillRt isPassiveAttrRdtRefreshHorseAttrtRefreshPlayerAttrStatetPassiveBuffEffMngtGetPassiveEffManagertRegistPassiveEfftRefreshSkillFightPowerExt 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 |ƒs†tSn|j ƒ}tj|ƒ}||krÁtj|dƒtS|jƒ}|jƒ}    g}
t|ƒ} t|ƒ} | dkrl| dkrl|jƒjtjƒ} tj| | | ƒ\}}
|sltjd|jƒ| fƒdSni|d6|d6|t    j6}|    r³tj|||    t    j|ƒ r³tS|
rÕtj || |
| tƒn|dkrtj!|||ƒtj|d|gƒn|jƒt    j
kr6t j"|dƒnt#S(    NsÎÞ´ËÉý¼¶¼¼ÄÜ = %s,%stGeRen_jin_671654is=DoLogic_PlayerSkillLvUpCost() up skill(%s) item(%s) no enoughR¼tSkillLVtGeRen_jin_474794iÿÿÿÿ($RR¨R©R`R˜R-RtCheckLearnSkillConditionR€RtDef_SkillFuncType_GiftSkilltPlayerGreatMastertGetGreatMasterFreeSkillPointtGetLVUpCostExpRBtGetPlayerTotalExpRCtGetLVUpCostMoneyTypetGetLVUpCostMoneytGetUpLVCostItemIdtGetUpLVCostItemNumtGetItemManagertGetPackR)RXRVtGetItem_FromPack_ByIDRRštDef_Cost_Reason_SonKeytPayMoneytDef_Cost_SkillLvUpt
ReduceItemtSetPlayerTotalExptAddGreatMasterSkillPointByLVR(RtcurSkillTypeIDR¿R¾R RÀtskillLvUpNeedExptcurExptskillLvUpNeedMoneyTypetskillLvUpNeedMoneyCountt itemIndexListt
costItemIdt costItemNumtitemPacktisEnoughtinfoDict((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRªTsJ            % 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(tGetLVtGetLVReqRRRRJtGetLearnSkillReqtGetLearnSkillLVtGetLearnSkillPointReqR7RØ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.pytGetSkillElementTypescCsRtjƒ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    GetNeedLVRRJRKtDoTypetNomalDictGetPropertyRtDef_PDict_SkillElementIDtDef_PDict_SkillElementLVRR¨R©RîRRBtNomalDictSetPropertyRtRefreshElementSkilltUpdateElementSkillSelecttDeleteSkillBySkillTypeIDR°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
RRRØtGetFuncEvalCfgtGetJobRøR$tDef_PDictDigitCntt
GetExAttr7t
GetExAttr8RtGetElementSkillNumRtChangeDataByDigitPlacet
SetExAttr7Rt
SetExAttr8(
RRRt mainSkillListtmainSkillIndext exAttrValuet exAttrIndextelementSkillNumRötupdExAttrValue((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR Us(        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_elemntSkillDictRRR    R!RžRúRRBR
RRRJRKR¥R RptLVUpSkillBySkillTypeIDRØRRR (RRQt
isChangeLVtisNotifyt hasChangeLVRþRt 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 wsL 
 
      
 
     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(NRt MainSkillIDi(R+RJRpRšR›R7RØtGetIpyGameDataByConditionRRRRRtGetElementSkillIDR,R-RútitemsR R°R±R²RBRR¯R(Rt
attrIDListtneedRefreshSkillIDDictRRxthasSkillt
hasSkillIDt ipyDataListtcurSelectSkillIDRöRtattrIDt
needNotifyt    isRefreshR´R/R0R1RÁ((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(NiRR:i(RR¨RJRpRšR›R7RØR;RRR<tGetSkillBySkillIDRRRR    (RtmainSkillIDListtactiveLVt elementTypetgameDataRHRRxR@RARBRö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ÿÿÿÿ(R,R-RØtIPY_DataRptGetSkillElementCounttGetSkillElementByIndexR<RR¨R©R§RRù(tipyMgrRxRöRMRœ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(NRR:(RJRpRšR›R7RØR;RRRR<R¸ttagMCSkillElementInfotInfoListR=RRRttagMCSkillElementDataR:tElementSkillIDt ActiveSkillttagMCSkillElementActiveDataR¼R    tActiveLVR!tSkillCnttCntRLRM(RRt changeSkillIDtsyncMainSkillDictRRxR@RARBRöRÉtmSkillIDt elementListRt elementDataRMt
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`RtRERRF(RhRgtbuffTickRy((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetProcessBuffTick<    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•tGetBufftGetSkillRjRntGetProcessIntervaltSetProcessIntervalRqRrRsRt GetExecFuncR( Rgt    buffStateRtbuffStateCountRxtcurBuffRhtprocessBuffTickteffIndexRyRzt
processStrtcallBuffProcessFunc((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__ProcessCurPersistBuffN    s0    cCstt||jƒ|ƒt||jƒ|ƒ|jƒtjkrpt||jƒ|ƒt||jƒ|ƒndS(N(R}tGetProcessBuffStatetGetProcessDeBuffStateR4R)R5t GetEquipBufft
GetMapBuff(RgR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytProcessPersistBuff‚    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€Rÿt    GetPosObjR}R~RR`R˜R-RºRRqtIsAlivetDoMapBuffClearRRpRqt
GetOwnerIDt GetOwnerTypeRrRšt
HaveEffectR•RrRsRuRtDeleteBuffByIndextClearBuffEffectBySkillIDR¨RHR7tFindBuffR¥t    BuffSkilltAddBuffNoRefreshStateR)t    bfMapBuff(RRtgameMapt    curPosObjtmapBuffManagert effectCountt processResultRøt curRoleBufftownerIDt    ownerTypeR´R t effectIndexRyRwtcallFuncRLRxRQtfindBufftisOK((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR‡«    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.%sRŠ(RR•RpRqRrRšRqRrRsRRuRR`Rº(    Rt buffManagert    buffIndexRxR RŸRyRwR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR
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( RR•RpRqRrRšRqRrRsRRuRR`(    RR£R¤RxR RŸRyRwR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRˆ#
s      cCst|||||ƒdS(N(t__CallBuffFunc(Rvt curObjDetailt allAttrListtcalcEffectIDListt    calcLevel((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcCurBuffer_EffectI
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(RpRpRqRrt GetAttrMapIDR4R)R5tFBCommontGetRecordMapIDRÿRqRrRstCalcBuffEffAttrtGetValue( RvtobjDetelR¨R©RªRxRxt    buffSkillt    attrMapIDRyRz((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR¦S
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( RstGetBuffModuleSuffixRRuRtGetAttrListIndexRt IsBaseEffectRrR‰RRf( R±RyR¨Rªt    plusValueRxRzt moduleSuffixt skillTypeFuncRøR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR¯k
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¨RHRt GetBuffTypetGetBuffManagerByBuffTypeRpRqRrRstGetEffectFromSkillIDtGetEffectOwnerIDtGetEffectOwnerTypeRtsortRtDeleteEffectByIndex( RgR´RRžR tbuffTypet    buffTupleRvteffectIndexListRxRyRz((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¨RHRRÆRÇRpRqRrRsRÉRÊRÈR7RRËRRÌ(RgRQRRžR RÍRÎRvRÏ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Ì(RgRvt 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•RpRqRrR+tSetObjActState(RgtactionBuffManagerRxRxR²((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­R€RRtDef_SkillFuncType_FbSPSkillRÇtDef_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 bfProcessBuffR–t bfEquipBuffRRÇR«(RR¨R©RÍRÎR£((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffers_EffectW 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¨Rvt    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 RRŒR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoLogic_UseEnhanceSkillü s
""cCs*|s
dSt|||||||ƒdS(N(Rî(R9RŽR tskillEnhanceIDRRŒR((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¨RHR˜R-tCheeckTrigSkillandTagR`RDREtGetNPC_Is_GateRãRÐt GetHurtTypeRtDef_HurtType_MisstGetSkillOfSeriesHitRatet    CanHappentDef_MaxRateValueRRaR( R9RŽtuseSkillRŒRRòRRVtexSkillt
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_SelfRqRRR‰(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ŽR7RRuRR`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(R+R,RtDef_Obj_ActState_ServerSkillR.RÎRRjR}R~RR8R‰tDef_SkillType_LstPlsBuffAtkt"Def_SkillType_PassiveLstPlsBuffAtkt__DoLogic_AddBufft__DoLogic_UseAttackSkill(R9RŽR RR‡RˆtisEnhanceSkill((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 RR‡RˆR((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_ListR‚tCheckCanAttackTagRÐtClearSkillHurtListRR`tGetAddBuffValueR”t    DoAddBufft AddBuffOvertOnHurtTypeTriggerPassiveSkillRtDoAttackSuccessExRDRE( R9RŽR RRR‡RˆRRQt 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‰RRfRRuR(R9R RŽRyR»tchangeBuffValueDictR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRf s c
Csixstd|jƒƒD]\}|j|ƒ}tjtd|jƒdfƒ}|dkr_qn|||||ƒqW|jƒ}|dkr­|t    j
kr­|j t ƒn|r·dSt ||||ƒ|t    jkre|dkretj||ƒ re|jƒtjkr9tj|ƒ}    |    j||jƒdƒntj||d|ƒtj|||ƒndS(Nis
Buff_%d.%st    OnAddBuffi(R•RqRrRRuRRsR`R‰RRfR0RRñRRãR4R)R*RáRtAddObjToAngryListt GetSkillAngryRÐtDoLogic_AttackResultt
TurnAttacktOnTurnfightAttackResult(
R9RŽR RRRŸRyR t    skillTypeR    ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR‚ s("  cCs>t|ddƒ}|dkr"tS||||||||ƒS(NRRQ(RR`R(R9RŽR RR‡RˆRR ((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ÙR3R¾tskillLvRÀtskillLvUpNeedZhenQi((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillLVUpCostZhenQis    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 %sRs$ÅäÖÃÁ˿ɹ¥»÷Ä¿±ê£¬µ«Ã»Ä¿±ê¾Í²»Èô¥·¢s´¥·¢½á¹û-----------%s(9RR,tg_singleAtkRecordListR`RhRtDef_PlayerKey_MirrorBattleIDR-RšRR!RR€Rÿt SendGameErrorR R¨RHRïRùRÿRútUsePassiveTriggerSkillRRðRtSetSkillRemainTimeRBtGetReduceSkillCDPerRR RR¹RjR‰RkRR4R)R*RßRàRátGetNpcObjOwnerDetailRaR}R~R‰RåRæRçRéRDREtDef_UseSkillTag_NoneR5Rm(R9R ttargetRRRtatkIDttagIDR´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`R€R¥(RtfuncTypetskilllvt allSkillCntRRxRž((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillCntByFunc{s  cCs‚d}|jƒ}xit|jƒƒD]U}|j|ƒ}|dkrLq%n|jƒ|krdq%n|jƒ}||7}q%W|S(Ni(RJRpRšR›R`R€R¥(RRGt
allSkillLVRRxRžRV((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt GetAllSkillLVŒs   (™RR)RRR”RBRRÐRçRäRáRR‚RRNRVR+Ræt ReadChConfigR·R$RÈRdRDR–RLR¸R’RR°tChEquipRÎR­RØR,R%t    ImportAllRRRR    R
R RRRRRRR3R;RSR]RcRnReRgR_R£RfRÜRÍRÌRþR÷R RR"R>R9R)RQRPRTRSR[RZR/RlRnRmRrRxR{R}RyRvRpRtR‘R™RŸRÂR`RªRÆRîRúRRR RR RGRPR+RRjRnR}R‚R‰R‡RRˆR«R¦R¯R·R¸R’RÑRÓR×RÝRâRìRíRñRóRîRøRôRR    RRaRR RRRR+R-R.R0R¬RÎRÏR6R;RJRL(((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                                  ^