hwj35
2025-06-23 aa0f971ae9a59f0fd98d57b6c1d1663a270be92c
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
Éhc@ssddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    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„ZrdP„ZsdQ„ZtdR„ZuevdS„ZwgddT„ZxgddU„ZyddddV„ZzddW„Z{dX„Z|ddY„Z}dZ„Z~d[„Zd\„Z€d]„Zd^„Z‚d_„Zƒgd`„Z„da„Z…db„Z†dddc„Z‡dddd„Zˆde„Z‰df„ZŠdg„Z‹dh„ZŒdi„Zddevdj„ZŽddevdk„Zddevdl„Zdm„Z‘dn„Z’ddevdo„Z“dp„Z”dq„Z•dr„Z–ds„Z—dt„Z˜du„Z™dv„Zšdw„Z›evdx„Zœddy„Zdz„ZždS({iÿÿÿÿ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((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt ReloadSkill@s
cCs$tjƒd}tj|dƒdS(NsScript\Skill\GameBuffsR(RRRR(RR((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt
ReloadBuffLscCs|jƒdS(Ni
(tGetTag(tcurSkill((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillAffectTagUscCs|jƒdS(Ni
(R (R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillFireAim\scCstS(N(tg_UseSkillPlayerID(((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetUseSkillPlayerID`scCstS(N(tg_ClientHurtDict(((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetClientHurtDictescCstjƒadadS(Ni(t collectionst OrderedDictRR(t    curPlayer((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearClientHurtDictis cCstj||fgƒS(N(Rtget(tobjIDtobjType((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetClientHurtByObjpscCs:tj||fgƒ}|s"tS|ddkr6tStS(Nii(RRtFalsetTrue(RRtresult((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__CheckSkillUseItemIs  cCs2|jƒrt|d||ƒSt||||ƒS(N(t GetCastTimetNPCUseSkillWarntNonetDoLogic_UseSkill(tcurNPCR R((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR÷ðs  *cCsdS(N((RøRùR((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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 ((siE:\SnxxServerCode\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((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR94s**-##cCs8tjƒ}|jƒ|_||_tj||ƒdS(N(R¸ttagMCAttackFailRšR¼tReasont NetPackCommont SendFakePack(RR treasonRÉ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR)[s     cCstjtƒ||ƒdS(N(Rt GetPsycoFunct__Func_UseSkill(RøR((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytUseSkillusc    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 ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRP~s2         
cCstjtƒ||ƒdS(N(RROt__Func_UseSkillTag(RøR((siE:\SnxxServerCode\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 ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRSÐs8           
  cCstjtƒ||ƒdS(N(RROt__Func_UseSkillGround(RøR((siE:\SnxxServerCode\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 ((siE:\SnxxServerCode\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 ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR/ls'    cCs€t|||ƒsdSt|ƒtjkr/dS|jƒtjkrit|d|||jƒ|j    ƒƒSt||||ƒSdS(N(
RSRRtDef_UseSkillAim_NoneR‰tDef_CanAttackSkill_ListRaR`R}R~(RR R((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoPlayerUseSkill›s%cCsOt|||ƒs#tjdƒdSt||||ƒs<dSt||||ƒS(Ns#DoPlayerUseSkillTag, ²»Âú×ãʹÓÃÌõ¼þ(RSRRtCheckTag_DoPlayerUseSkillTagRa(RR R2R((siE:\SnxxServerCode\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Õ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRmÄsH                cCs)tj||ƒrtSt||||ƒS(N(RRãRRy(RR2R R((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRr scCsXtj||ƒrtStj||||ƒ}|dtjkrEtSt||||ƒS(Ni(RRãRRÐRÑRRÓR{(RR2R RRÖ((siE:\SnxxServerCode\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Ö((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR{1scCs)|jƒ|krtSt||||ƒS(N(R4RR{(RR2R RR((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR}HscCs_tj||||ƒ}|dtjkr/tS|jƒtjkr[tj||dƒnt    S(Nii(
RÐRÑRRÓRR€RR‚RƒR(RR2R RRÖ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRyWs cCsc|jƒtjkrtStj||ƒr/tS|jƒ}|jƒ}| sU| rYtS||kS(N(R4R)R5RRRãRt    GetTeamID(RR2tcurPlayerTeamIDt curTagTeamID((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRvjs  cCs,|jƒtjkrdStj|ƒdkS(Ni(R4R)R5RDRE(RR2((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRp€scCs,|jƒtjkrdStj|ƒdkS(Ni(R4R)R5RDRE(RR2((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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$||
|ƒt%j&||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_LearnORUPSkillt
EventShelltEventRespons_SkillUpRót GetSkillNamet GetPlayerIDR( RøRRtpackRQRR t
curSkillLVtbeforeFightPowert    upSkillLvt
curSkillIDtupSkillt
curControl((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytPlayerSkillLvUp#sP          
 
$  " ,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((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRªysJ            % 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((siE:\SnxxServerCode\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((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRðs"     cCs|d|dfS(Ni †((R((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRü*scCs|jƒdS(Ni †(Rû(R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillElementType,scCshtjƒj|ƒ}|j}tjd|ƒ}|s:dS|jƒ}|jƒ|jƒkrotj    dƒdS|j
ƒ}|j |ƒ}|s¥tj    d|ƒdS|j }    |j tj|ƒ}
|j tj|ƒ} t} | } |    dkr‰tjƒj|| dƒ}|sdSt||ƒs+dS| d} t|ƒ}tj|||| ƒtj|tj|| ƒ|
|kr©t} q©n | s“dS||
kr£dSt} | rBt||ƒds×tj    d|ƒdSt|||ƒ|
r    |
|kr    |j|
ƒntjƒj |ƒtj|ƒ}|j!ƒ|j"ƒnt#||| | kr]|ndƒdS(Nt SkillElementsÑ¡Ôñ¼¼ÄÜÎåÐÐר¾«µÈ¼¶²»×㣡s&Ö÷¼¼ÄÜδѧϰ£¬ÎÞ·¨Ñ¡×¨¾«mainSkillID=%siis ¸ü»»×¨¾« ²»³É¹¦ selectSkillID=%s($RRíRît SkillTypeIDRØtGetIpyGameDatatGetMainSkillIDRét    GetNeedLVRRJRKtDoTypetNomalDictGetPropertyRtDef_PDict_SkillElementIDtDef_PDict_SkillElementLVRR¨R©RðR R¹tEventRespons_ElementSkillRBtNomalDictSetPropertyRtRefreshElementSkilltUpdateElementSkillSelecttDeleteSkillBySkillTypeIDR°R±R²tRefreshAllSkillR¯tNotifyElementSkillInfo(RøRùRRt selectSkillIDRøt mainSkillIDRt    mainSkilltdoTypetcurElementSkillIDt activeSkillLVt isChangeSkilltupdSelectSkillLVt    nextSkilltskillElementTypeRÃ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytOnSelectSkillElement6sb            
 
 "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
GetExAttr8RtGetElementSkillNumRtChangeDataByDigitPlacet
SetExAttr7Rt
SetExAttr8(
RRRt mainSkillListtmainSkillIndext exAttrValuet exAttrIndextelementSkillNumRøtupdExAttrValue((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR{s(        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ÿRRRRRRRRRRR!RžRüRRRRRJRKR¥RRptLVUpSkillBySkillTypeIDRØRRR(RRQt
isChangeLVtisNotifyt hasChangeLVR
R"t limitInfoListt
maxSkillLVt
updSkillLVRxt    limitInfot
needAttrIDt needAttrValuet curAttrValueRR R¾t_RøR((siE:\SnxxServerCode\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(R8RJRpRšR›R7RØtGetIpyGameDataByConditionRRRRRtGetElementSkillIDR9R:RütitemsRR°R±R²RBRR¯R(Rt
attrIDListtneedRefreshSkillIDDictRRxthasSkillt
hasSkillIDt ipyDataListtcurSelectSkillIDRøR!tattrIDt
needNotifyt    isRefreshR´R<R=R>RÃ((siE:\SnxxServerCode\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 RGi(RR¨RJRpRšR›R7RØRHRRRItGetSkillBySkillIDR RRR(RtmainSkillIDListtactiveLVt elementTypetgameDataRHRRxRMRNRORøtelementSkillIDtelementSkillDatat curActiveLV((siE:\SnxxServerCode\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ÿÿÿÿ(R9R:RØtIPY_DataRptGetSkillElementCounttGetSkillElementByIndexRIRR¨R©R§RRû(tipyMgrRxRøRZRœt
skillMaxLVtskillLVR ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR8    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 RG(RJRpRšR›R7RØRHRRRRIR¸ttagMCSkillElementInfotInfoListRJRRRttagMCSkillElementDataRGtElementSkillIDt ActiveSkillttagMCSkillElementActiveDataR¼RtActiveLVR!tSkillCnttCntRLRM(RRt changeSkillIDtsyncMainSkillDictRRxRMRNRORøRÉtmSkillIDt elementListR!t elementDataRZt
activeData((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR%    s>  
 "#                        cCs#|jƒ}|tjkrtStS(N(R‰RtDef_LstBuff_ListRR(tcurObjt curBuffSkillt buffSkillType((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__BuffCanProcessO    s cCsotj}tj|tjƒ}|dkrk|jdƒ}|jdƒrkt|jƒtj    |ƒ}qkn|S(Nii(
RtDef_ProcessPersistBuffRR{tDef_Skill_Effect_BuffTickR`RtRERRF(RuRttbuffTickRy((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetProcessBuffTickb    s     #c Cs@|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&Wt||ƒdS(NisBuffProcess_%d.%st ProcessBuff(t GetBuffCountR•tGetBufftGetSkillRwR{tGetProcessIntervaltSetProcessIntervalRqRrRsRt GetExecFuncRt__DoProcessBuff_PlayerKey( Rtt    buffStateRtbuffStateCountRxtcurBuffRutprocessBuffTickteffIndexRyRzt
processStrtcallBuffProcessFunc((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__ProcessCurPersistBufft    s2    cCsdS(N((RtR((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRƒ«    scCstt||jƒ|ƒt||jƒ|ƒ|jƒtjkrpt||jƒ|ƒt||jƒ|ƒndS(N(R‹tGetProcessBuffStatetGetProcessDeBuffStateR4R)R5t GetEquipBufft
GetMapBuff(RtR((siE:\SnxxServerCode\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((siE:\SnxxServerCode\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ºRRqtIsAlivetDoMapBuffClearRR}R~t
GetOwnerIDt GetOwnerTypeRRšt
HaveEffectR•RrRsR‚RtDeleteBuffByIndextClearBuffEffectBySkillIDR¨RUR7tFindBuffR¥t    BuffSkilltAddBuffNoRefreshStateR)t    bfMapBuff(RRtgameMapt    curPosObjtmapBuffManagert effectCountt processResultRøt curRoleBufftownerIDt    ownerTypeR´R t effectIndexRyRwtcallFuncRYRxRQtfindBufftisOK((siE:\SnxxServerCode\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•R}R~RRšRqRrRsRR‚RR`Rº(    Rt buffManagert    buffIndexR†R R­RyRwR®((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR›D
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•R}R~RRšRqRrRsRR‚RR`(
Rt playerControlR±R²R†R R­RyRwR®((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR–c
s$
     cCst||ƒdS(N(t__DoEquip_AddBuff(RtcurEquip((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytRefreshSkillBuffByEquip†
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 GetAddSkillRUR`RóR¼RtDef_Skill_TypeID_SpeedR7RR8R)Rct    prsNormaltprsRunR¢R£t bfEquipBuff(
RR·RYt playerVehiclet
houseStateRøRÁR t
houseSkillt curSkillType((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR¶‘
s0               &cCsdS(N((R„tsameEffectCanWork((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__RefreshSkillBuffEffect¿
scCst|||||ƒdS(N(t__CallBuffFunc(R„t curObjDetailt allAttrListtcalcEffectIDListt    calcLevel((siE:\SnxxServerCode\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(RpR}R~Rt GetAttrMapIDR4R)R5tFBCommontGetRecordMapIDRÿRqRrRstCalcBuffEffAttrtGetValue( R„tobjDetelRÉRÊRËRxR†t    buffSkillt    attrMapIDRyRz((siE:\SnxxServerCode\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( RstGetBuffModuleSuffixRR‚RtGetAttrListIndexRt IsBaseEffectRR‰RRs( RÒRyRÉRËt    plusValueR†Rzt moduleSuffixt skillTypeFuncRøR®((siE:\SnxxServerCode\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((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRØ$ s
 cCs!|dkrdStj||fS(Niÿÿÿÿ(R`RtDef_CalcAttrIndexDict(t    isBaseEfftcalcType((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÙ4 s cCsdS(N((RtbuffType((siE:\SnxxServerCode\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¨RURt GetBuffTypetGetBuffManagerByBuffTypeRpRqRrRstGetEffectFromSkillIDtGetEffectOwnerIDtGetEffectOwnerTypeRtsortRtDeleteEffectByIndex( RtR´R«R¬R Ræt    buffTupleR„teffectIndexListRxRyRz((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR X 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¨RURRéRêRpRqRrRsRìRíRëR7RRîRRï(RtRQR«R¬R RæRðR„RñRxRyRzt buffSkillIDRÓ((siE:\SnxxServerCode\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ï(RtR„t skillIDListRñRxRyRz((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearBuffEffectBySkillIDList  s  
 cCs(x!|D]\}}t||ƒqWdS(N(RÆ(tbuffRefreshListR„t    canPileUp((siE:\SnxxServerCode\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•R}R~RR+tSetObjActState(RttactionBuffManagerRxR†RÓ((siE:\SnxxServerCode\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´((siE:\SnxxServerCode\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±((siE:\SnxxServerCode\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((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffer_NPCBattleEffect scCsdS(N((Rb((siE:\SnxxServerCode\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((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoLogic_UseEnhanceSkill¸ s
""cCs*|s
dSt|||||||ƒdS(N(R(R9RŽR tskillEnhanceIDRRŒR((siE:\SnxxServerCode\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¨RUR˜R-tCheeckTrigSkillandTagR`RDREtGetNPC_Is_GateRãRÐt GetHurtTypeRtDef_HurtType_MisstGetSkillOfSeriesHitRatet    CanHappentDef_MaxRateValueRRaR( R9RŽtuseSkillRŒRRRRctexSkillt
resultListtrate((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRä s( &
 
0    cCs|jƒ}|S(N(t GetHappenRate(R9RŽRtbaseRate((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRB s cCs˜|jƒtjkrGt|ƒtjtjgkr=t|fSt|fSt|ƒtjtjgkrot|fSt|ƒtj    krŽt|fSt|fS(N(
R4R)R5R RtDef_UseSkillTag_SelfRqRRR‰(R9RRŽR((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRM 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®((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillCallFuncByNameq s   cCsdS(N((R9RŽRR((siE:\SnxxServerCode\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((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRa³ s         cCsetj|ƒrItj|jƒkr-|}nt|||||||ƒSt|||||||ƒS(N(RR8RR.R‰R0R1(R9RŽR RR‡RˆR2((siE:\SnxxServerCode\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¥RRR"RRR‰tDef_Debuff_ListR‚tCheckCanAttackTagRÐtClearSkillHurtListR+R`tGetAddBuffValueR¢t    DoAddBufft AddBuffOvertOnHurtTypeTriggerPassiveSkillRtDoAttackSuccessExRDRE( R9RŽR R2RR‡RˆR6RQt skillBuffTypeR®RtaddBuffValueList((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR0â s0 %
 $ 
"cCsŽ|jdƒ}t|ƒ}i}|jƒtjkrUtjtd|dfƒ}ntjtd|dfƒ}|s{gS|||||ƒS(NisBuffProcess_%s.%st CalcBuffValues
Buff_%s.%s(RrRØR‰RRsRR‚R(R9R RŽRyRÜtchangeBuffValueDictR®((siE:\SnxxServerCode\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‰RRsR0RRR8RãR4R)R*RáRtAddObjToAngryListt GetSkillAngryRÐtDoLogic_AttackResult(
R9RŽR RR2R­RyR®t    skillTypeR    ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR=>s&"  cCs>t|ddƒ}|dkr"tS||||||||ƒS(NR%RQ(R+R`R(R9RŽR RR‡RˆR2R®((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR1qs cCsAtjƒj|ƒ}tjƒ}|j|jƒ|jƒƒdS(N(RRíRîR)tIPY_CSetAutoSkillt
SetAutoAtktGetTypeRš(RøRRRÉ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt SetAutoSkills cCs
|jƒS(N(t
GetExAttr1(R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetConnectSkillIDšscCsdS(Ni((R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetLVUpCostZhenQi¡scCs|s
dS|jƒS(Ni(t
GetExAttr2(R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetHappenState§scCs
|jƒS(N(t
GetExAttr3(R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRͮscCs
|jƒS(N(t
GetExAttr4(R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRеscCs
|jƒS(N(t
GetExAttr5(R ((siE:\SnxxServerCode\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óRO(R RÛR@RÀtskillLvRÂtskillLvUpNeedZhenQi((siE:\SnxxServerCode\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›dt_|Sn|j ƒdkr| rt j ƒj|jƒƒ}    |    rt j|    jƒtjƒrt||    ||tƒrtn|}nt j ƒj|jƒƒ}
|
rzt j|
jƒtjƒrzt||
||tƒrqtn|}ntj|tj|ƒ||ƒ|St|ƒ} t|ƒ} t jd| |jƒ|jƒf|jƒƒ| tjkrÎ|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|ƒ}q@t)||||d|ƒ}nr| tj,kr<|rÿ|j*ƒ|j+ƒ}}n|j*ƒ|j+ƒ}}t)||||||d|ƒ}n| tj-krŸt.j/|ƒs^tSt.j0|ƒ}|dkr}tS|}t1j2|ƒdkrŸtSn| tj3tj!gkr%|sÓt jdƒt}q@|j"ƒt#j4krt5||||ƒ rt}q@t)||||d|ƒ}nt)||||d|ƒ}t jd||jƒƒ|S(NiidsÊͷű»¶¯´¥·¢¼¼ÄÜ : %s- %s %sR2s$ÅäÖÃÁ˿ɹ¥»÷Ä¿±ê£¬µ«Ã»Ä¿±ê¾Í²»Èô¥·¢s´¥·¢½á¹û-----------%s(6RR9tg_singleAtkRecordListR`RhRtDef_PlayerKey_MirrorBattleIDR-RšRR!R RR¨RURRR"RtUsePassiveTriggerSkillRRRtSetSkillRemainTimeRBtGetReduceSkillCDPerRR RR»RjR‰RkR$R4R)R*RßRàRátGetNpcObjOwnerDetailRaR}R~R‰RåRæRçRéRDREtDef_UseSkillTag_NoneR5Rm(R9R ttargetRR2RtatkIDttagIDR´tskill1tskill2R—t    affectTagRäR‡RˆRì((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRZØsl'      !'!'  /$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ž((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillCntByFunc6s  cCs‚d}|jƒ}xit|jƒƒD]U}|j|ƒ}|dkrLq%n|jƒ|krdq%n|jƒ}||7}q%W|S(Ni(RJRpRšR›R`R€R¥(RRet
allSkillLVRRxRžRc((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt GetAllSkillLVGs   (ŸRR)RRR¢RBRRÐR RRáRR‚RRNRVR+Ræt ReadChConfigR·R$RÊRdRDR–RLR¸R’RR°tChEquipRÎRÎRØR9R¹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üR R'RRRRTR]R8RRwR{R‹RƒRR—R•R›R–R¸R¶RRÆRÌRÇRÐRØRÙRçR RóRõRøRüRRRRRRRRRR+R,RaR3R0R;R=R1RLRNRORQRÍRÐRÑRWRZRhRj(((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt<module> s:                                                                                   ,        }                          L    #                G    :    $            =    Q    '             I            L            G    /            H                                     *    C        V ^    <            
    E    " 2    )     *            7                Y        #         . 
&          $    $    !             / l        $    ^         $        &@        3                                  ^