hxp
2025-05-29 f08058713e574c675579ca5ccbfabeb1e6702cf0
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
305
306
307
308
309
310
311
÷8hc@s^ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl 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„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$„ZDdd%„ZEd&„ZFd'„ZGd(„ZHd)„ZId*„ZJd+„ZKd,„ZLd-„ZMd.„ZNd/„ZOd0„ZPd1„ZQd2„ZRd3„ZSd4„ZTd5„ZUd6„ZVd7„ZWd8„ZXd9„ZYd:„ZZd;„Z[dd<„Z]d=„Z^d>„Z_d?„Z`d@„ZadA„ZbdB„ZceddC„ZedD„ZfddE„ZgdF„ZhdddG„ZidH„ZjdI„ZkdJ„ZldK„ZmdL„ZndM„ZodN„ZpdO„ZqdP„ZrdQ„ZsetdR„ZugddS„ZvgddT„ZwddddU„ZxddV„ZydW„ZzddX„Z{dY„Z|dZ„Z}d[„Z~d\„Zd]„Z€d^„Zgd_„Z‚d`„Zƒda„Z„dddb„Z…dddc„Z†dd„Z‡de„Zˆdf„Z‰dg„ZŠdh„Z‹ddetdi„ZŒddetdj„Zddetdk„ZŽdl„Zdm„Zddetdn„Z‘do„Z’dp„Z“dq„Z”dr„Z•ds„Z–dt„Z—du„Z˜dv„Z™etdw„Zšddx„Z›dy„ZœdS(ziÿÿÿÿ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
ReloadBuffKscCs|jƒdS(Ni
(tGetTag(tcurSkill((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillAffectTagTscCs|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.pytGetClientHurtDictdscCstjƒadadS(Ni(t collectionst OrderedDictRR(t    curPlayer((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearClientHurtDicths cCstj||fgƒS(N(Rtget(tobjIDtobjType((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetClientHurtByObjoscCs:tj||fgƒ}|s"tS|ddkr6tStS(Nii(RRtFalsetTrue(RRtresult((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytisClientHurtValuets 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__CheckSkillUseItemHs  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.pytNPCUseSkillTagjs"   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.pytIsNPCSkillResistFs 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ÍXscCs†|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Ìns# 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 NPCAttentionscCs•|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.pytSkillPrepareEnd”s " 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.pyR93s**-##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)Zs     cCstjtƒ||ƒdS(N(Rt GetPsycoFunct__Func_UseSkill(RøR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytUseSkilltsc    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.pyRP}s2         
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.pytUseSkillGroundsc 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.pyRZ$s:            
  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/ks'    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.pytDoPlayerUseSkillšs%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.pyRxs 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{0scCs)|jƒ|krtSt||||ƒS(N(R4RR{(RR2R RR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR}GscCs_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.pyRyVs 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.pyRvis  cCs,|jƒtjkrdStj|ƒdkS(Ni(R4R)R5RDRE(RR2((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRpscCs,|jƒtjkrdStj|ƒdkS(Ni(R4R)R5RDRE(RR2((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRt‹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.pytDoPlayerUseSkillGround™s  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.pytCheckPlayerHasSkills  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ªwsJ            % 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çitj|ƒtj6tj|ƒtj6tj    |ƒtj
6tj |ƒtj 6tj |ƒtj6}||krÂtjd||fƒtS|j|dƒ}||krçtSntS(NsC    ¼¼ÄÜÉý¼¶ÊôÐÔµãÌõ¼þÅäÖôíÎó£¬curSkillTypeID=%s,needBaseAttrID=%si(R7tGetStateSkillLVtGetSkillUpNeedAttrRBtGetMetalR$tDef_Effect_MetaltGetWoodtDef_Effect_WoodtGetWatertDef_Effect_WatertGetFiretDef_Effect_FiretGetEarthtDef_Effect_EarthRR˜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    GetNeedLVRRJRKtDoTypetNomalDictGetPropertyRtDef_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.pytOnSelectSkillElement4s`            
 
 "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 (RBRRRRØtGetFuncEvalCfgtGetJobRøR$tDef_PDictDigitCntt
GetExAttr7t
GetExAttr8R tGetElementSkillNumRtChangeDataByDigitPlacet
SetExAttr7Rt
SetExAttr8(
RRRt mainSkillListtmainSkillIndext exAttrValuet exAttrIndextelementSkillNumRötupdExAttrValue((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRxs(        cCsntt}}tƒ|tjkr-||fSitj|ƒtj6tj|ƒtj    6tj
|ƒtj 6tj |ƒtj 6tj|ƒtj6}|jtj|ƒ}tj|}t|ƒ}d}    xXt|ƒD]J\}
} t| ƒ\} } |j| dƒ}|| krÔ||
}    PqÔqÔW||    krQtj|tj||    ƒt}nt|    |ƒ}    |jƒ}|j|ƒ}|r|jƒnd}|s£||fS|    |kr¹||fS|    |kr<|j|ƒx!t|    ƒD]}|j|ƒqßW|    dkrdt j!d|ƒ}|j"ƒ}t#||dƒt}qdn(x%t|    |ƒD]}|j|ƒqMW|tfS(NiR ($Rt__InitElementSkillInfot
PyGameDatatg_elemntSkillDictRBRûR$RüRýRþRÿRRRRRRRRR!RžRúRRRRRJRKR¥RRptLVUpSkillBySkillTypeIDRØR RR(RRQt
isChangeLVtisNotifyt hasChangeLVRRt 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šsV 
 
      
 
     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(R5RJRpRšR›R7RØtGetIpyGameDataByConditionRRRRRtGetElementSkillIDR6R7RútitemsRR°R±R²RBRR¯R(Rt
attrIDListtneedRefreshSkillIDDictRRxthasSkillt
hasSkillIDt ipyDataListtcurSelectSkillIDRöRtattrIDt
needNotifyt    isRefreshR´R9R:R;RÁ((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 RDi(RR¨RJRpRšR›R7RØRERRRFtGetSkillBySkillIDR
RRR(RtmainSkillIDListtactiveLVt elementTypetgameDataRHRRxRJRKRLRö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ÿÿÿÿ(R6R7RØtIPY_DataRptGetSkillElementCounttGetSkillElementByIndexRFRR¨R©R§RRù(tipyMgrRxRöRWRœt
skillMaxLVtskillLVR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR5    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 RD(RJRpRšR›R7RØRERRRRFR¸ttagMCSkillElementInfotInfoListRGRRRttagMCSkillElementDataRDtElementSkillIDt ActiveSkillttagMCSkillElementActiveDataR¼RtActiveLVR!tSkillCnttCntRLRM(RRt changeSkillIDtsyncMainSkillDictRRxRJRKRLRöRÉtmSkillIDt elementListRt elementDataRWt
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__BuffCanProcessL    s cCsotj}tj|tjƒ}|dkrk|jdƒ}|jdƒrkt|jƒtj    |ƒ}qkn|S(Nii(
RtDef_ProcessPersistBuffRR{tDef_Skill_Effect_BuffTickR`RtRERRF(RrRqtbuffTickRy((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•tGetBufftGetSkillRtRxtGetProcessIntervaltSetProcessIntervalRqRrRsRt GetExecFuncR( Rqt    buffStateRtbuffStateCountRxtcurBuffRrtprocessBuffTickteffIndexRyRzt
processStrtcallBuffProcessFunc((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__ProcessCurPersistBuffq    s0    cCstt||jƒ|ƒt||jƒ|ƒ|jƒtjkrpt||jƒ|ƒt||jƒ|ƒndS(N(R‡tGetProcessBuffStatetGetProcessDeBuffStateR4R)R5t GetEquipBufft
GetMapBuff(RqR((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ºRRqtIsAlivetDoMapBuffClearRRzR{t
GetOwnerIDt GetOwnerTypeR|Ršt
HaveEffectR•RrRsRRtDeleteBuffByIndextClearBuffEffectBySkillIDR¨RRR7tFindBuffR¥t    BuffSkilltAddBuffNoRefreshStateR)t    bfMapBuff(RRtgameMapt    curPosObjtmapBuffManagert effectCountt processResultRøt curRoleBufftownerIDt    ownerTypeR´R t effectIndexRyRwtcallFuncRVRxRQtfindBufftisOK((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•RzR{R|RšRqRrRsRRRR`Rº(    Rt buffManagert    buffIndexR‚R R©RyRwRª((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR—'
s"     
c
Cstj|ƒ}|jƒ|jƒ}xØtd|jƒƒD]Á}|j|ƒ}|jƒ}|jƒdkrtq;nx…td|jƒƒD]n}|j    |ƒ}|j
ƒ}|dkr½qŠnt j t d|dfƒ}    |    dkrëqŠn|    ||ƒqŠWq;WdS(Nis MapBuff_%d.%st    OnMapBuff(RBtInitMapBuffStateR‹R•RzR{R|RšRqRrRsRRRR`(
Rt playerControlR­R®R‚R R©RyRwRª((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR’F
s$
     cCst||ƒdS(N(t__DoEquip_AddBuff(RtcurEquip((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytRefreshSkillBuffByEquipi
s c
Cs^tjƒ}|jƒ}|jƒ}x3td|jƒƒD]}|j|ƒ}|dkraq:n|j|ƒ}|dkrœtj    d||j
ƒƒq:nt j }|j ƒ}    tj|ƒsÆq:n|    |kr4|tjkrçq:n|    |dkr |tjkr q:n|    |dkr4|tjkr4q:q4ntj|tj|dgd|ƒq:WdS(Nis'×°±¸´¥·¢¼¼ÄÜ,ÎïÆ·±í´íÎó curSkillID = %sit    buffOwner(RR¨RbtGetPlayerRidehorseStateR•tGetAddSkillCountt GetAddSkillRRR`RóRºRtDef_Skill_TypeID_SpeedR7RR8R)Rct    prsNormaltprsRunRžRŸt bfEquipBuff(
RR³RVt playerVehiclet
houseStateRøR¿R t
houseSkillt curSkillType((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR²t
s0               &cCsdS(N((R€tsameEffectCanWork((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__RefreshSkillBuffEffect¢
scCst|||||ƒ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(RpRzR{R|t GetAttrMapIDR4R)R5tFBCommontGetRecordMapIDRÿRqRrRstCalcBuffEffAttrtGetValue( R€tobjDetelRÅRÆRÇRxR‚t    buffSkillt    attrMapIDRyRz((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÃÉ
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( RstGetBuffModuleSuffixRRRtGetAttrListIndexRt IsBaseEffectR|R‰RRp( RÎRyRÅRÇt    plusValueR‚Rzt moduleSuffixt skillTypeFuncRøRª((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÌá
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 cCsdS(N((RtbuffType((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt RefreshPlayerBuffOnAttrAddEffect" sc 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¨RRRt GetBuffTypetGetBuffManagerByBuffTypeRpRqRrRstGetEffectFromSkillIDtGetEffectOwnerIDtGetEffectOwnerTypeRtsortRtDeleteEffectByIndex( RqR´R§R¨R Rât    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¨RRRRåRæRpRqRrRsRèRéRçR7RRêRRë(RqRQR§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ë(RqR€t skillIDListRíRxRyRz((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearBuffEffectBySkillIDListƒ s  
 cCs(x!|D]\}}t||ƒqWdS(N(RÂ(tbuffRefreshListR€t    canPileUp((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__DoRefreshBuff¤ scCsp|jƒ}x]t|jƒƒD]I}|j|ƒ}|s@qn|jƒ}|sXqntj||ƒqWdS(N(tGetActionBuffManagerR•RzR{R|R+tSetObjActState(RqtactionBuffManagerRxR‚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­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 R¼RRæRÈ(RRÅRÆRâRìR­((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffers_Effectö s     
cCsŠtj|tƒ}gtdƒD] }i^q}x$|D]\}}t|||ƒq8Wtj||tjƒt    j
||tj ƒ|S(Ni( RátGetNPCBuffRefreshListRR•RÈtCalcNoLineEffecttChangeNPCAttrInNoLineEffectListRtCalcAttr_BattleNolinetCalcLineEffecttChangeNPCAttrInLineEffectListtCalcAttr_Battle(RbRòRxRÅR€t    canPileup((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffer_NPCBattleEffectb scCsdS(N((Rb((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffer_NPCBaseEffectw 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¨RRR˜R-tCheeckTrigSkillandTagR`RDREtGetNPC_Is_GateRãRÐt GetHurtTypeRtDef_HurtType_MisstGetSkillOfSeriesHitRatet    CanHappentDef_MaxRateValueRRaR( R9RŽtuseSkillRŒRRRR`texSkillt
resultListtrate((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR Ç s( &
 
0    cCs|jƒ}|S(N(t GetHappenRate(R9RŽRtbaseRate((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‰(R9RRŽR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR0 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ŽR7RRRR`R˜(R tpyNameExtfuncNametatkTypetpyNamet fuctionNameRª((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillCallFuncByNameT s   cCsdS(N((R9RŽRR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoLogic_SkillAttackDiep 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¥RRRRRR‰tDef_Debuff_ListR‚tCheckCanAttackTagRÐtClearSkillHurtListR'R`tGetAddBuffValueRžt    DoAddBufft AddBuffOvertOnHurtTypeTriggerPassiveSkillRtDoAttackSuccessExRDRE( R9RŽR R.RR‡RˆR2RQt 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‰RRpRRR(R9R RŽRyRØtchangeBuffValueDictRª((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR7s 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•RqRrRRRRsR`R‰RRpR0RRR4RãR4R)R*RáRtAddObjToAngryListt GetSkillAngryRÐtDoLogic_AttackResult(
R9RŽR RR.R©RyRªt    skillTypeR    ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR9!s&"  cCs>t|ddƒ}|dkr"tS||||||||ƒS(NR!RQ(R'R`R(R9RŽR RR‡RˆR.Rª((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR-Ts 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 SetAutoSkillrs 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óRK(R RÙR=R¾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(9RR6tg_singleAtkRecordListR`RhRtDef_PlayerKey_MirrorBattleIDR-RšRR!RR€Rÿt SendGameErrorR R¨RRRRRRtUsePassiveTriggerSkillRRRtSetSkillRemainTimeRBtGetReduceSkillCDPerRR RR¹RjR‰RkR R4R)R*RßRàRátGetNpcObjOwnerDetailRaR}R~R‰RåRæRçRéRDREtDef_UseSkillTag_NoneR5Rm(R9R ttargetRR.RtatkIDttagIDR´tmapIDtskill1tskill2R—t    affectTagRäR‡RˆRì((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRX»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.pytGetSkillCntByFuncs  cCs‚d}|jƒ}xit|jƒƒD]U}|j|ƒ}|dkrLq%n|jƒ|krdq%n|jƒ}||7}q%W|S(Ni(RJRpRšR›R`R€R¥(RRdt
allSkillLVRRxRžR`((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt GetAllSkillLV*s   (RR)RRRžRBRRÐRRRáRR‚RRNRVR+Ræt ReadChConfigR·R$RÈRdRDR–RLR¸R’RR°tChEquipRÎRÊRØR6t    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úR
R$RRRRQRZR5RRtRxR‡RŒR“R‘R—R’R´R²RRÂRÈRÃRÌRÔRÕRãRœRïRñRôRøRþRR R RRR RRR'R(RaR/R,R7R9R-RHRJRKRMRÉRÎRÏRSRXRgRi(((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt<module> s6                                                                                  ,        }                          L    #                G    :    $            =    Q    '             I            L            G    /            H                                     *    C        U ^    <            
    D    " 2    )     *            4            Y        #         . 
&          $    $    !             / l        $    ^         $        &@        3                                  ^