hxp
6 天以前 2769930d36081c0a8e7fd84dac68301972ae84fe
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
Ù@ƒic@sæddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZejddƒejddƒejddƒejƒa da!d„Z"d„Z#d    „Z$d
„Z%d „Z&d „Z'd „Z(d„Z)d„Z*d„Z+d„Z,d„Z-d„Z.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d„Z6d„Z7d„Z8d„Z9d„Z:d „Z;d!„Z<d"„Z=d#„Z>dd$„Z?d%„Z@d&„ZAd'„ZBd(„ZCd)„ZDd*„ZEd+„ZFd,„ZGd-„ZHd.„ZId/„ZJd0„ZKd1„ZLd2„ZMd3„ZNd4„ZOd5„ZPd6„ZQd7„ZRd8„ZSd9„ZTd:„ZUdd;„ZWd<„ZXd=„ZYd>„ZZd?„Z[d@„Z\dA„Z]e^dB„Z_dC„Z`ddD„ZadE„ZbdddF„ZcdG„ZddH„ZedI„ZfdJ„ZgdK„ZhdL„ZidM„ZjdN„ZkgddO„ZlgddP„ZmddddQ„ZnddR„ZodS„ZpdT„ZqdU„ZrdV„ZsdW„ZtdX„ZugdY„ZvdZ„Zwd[„Zxddd\„Zyddd]„Zzd^„Z{d_„Z|d`„Z}da„Z~db„Zdde€dc„Zdde€dd„Z‚dde€de„Zƒdf„Z„dg„Z…dde€dh„Z†di„Z‡dj„Zˆdk„Z‰dl„ZŠdm„Z‹dn„ZŒdo„Zdp„ZŽe€dq„Zddr„Zds„Z‘dS(tiÿÿÿÿNs Script\Skill\t
GameSkillst    GameBuffsticCsDtjƒd}tj|dƒtjƒd}tj|dƒdS(NsScript\Skill\GameSkillsRs Script\SkillR(tChConfigt
GetAppPatht    GameWorldt ReloadScript(ttickt
scriptPath((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt ReloadSkill:s
cCs$tjƒd}tj|dƒdS(NsScript\Skill\GameBuffsR(RRRR(RR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt
ReloadBuffFscCs|jƒdS(Ni
(tGetTag(tcurSkill((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillAffectTagOscCs|jƒdS(Ni
(R (R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillFireAimVscCstS(N(tg_UseSkillPlayerID(((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetUseSkillPlayerIDZscCstS(N(tg_ClientHurtDict(((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetClientHurtDict_scCstjƒadadS(Ni(t collectionst OrderedDictRR(t    curPlayer((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearClientHurtDictcs cCstj||fgƒS(N(Rtget(tobjIDtobjType((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetClientHurtByObjjscCs:tj||fgƒ}|s"tS|ddkr6tStS(Nii(RRtFalsetTrue(RRtresult((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytisClientHurtValueos 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__CheckSkillUseItemCs  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 NPCUseSkillXs 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.pytNPCUseSkillTages"   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.pyRes      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.pytIsNPCSkillResistAs 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ÍSscCs|tjkrtStS(N(RtDef_UseSkillTag_PetMasterRR(RbRm((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÌisc
Cstjƒj|ƒ}tjƒjƒ}|jtjkrä|jdkrä|j    d}|j
|j ƒkrndSt j |ƒdkr‡dStjƒj|j|jƒs©dS|jƒ|j|j|jƒtjd|j ƒƒdSt|jdƒ}xt|ƒD]}|j    |}tj|j
tjƒ}    |    s:qn|    jƒtjkrd|tjkrdqnt j |    ƒdkrqntjƒj|j|jƒs£qntj|    jƒ|    jƒ|j|jƒdkrÙqn|    jƒtj krôqn|    jƒ|    j|j|jƒqWdS(Niis---Íæ¼Ò±»»÷ÍË %si
i(!RtGetPlayerManagertGetPlayerByIndexR€t GetMapFBTypeR(R)R5tCountt
NPCPosListR'R-RDRERRÁRÂtStopMoveRjtLogRR•R+R*R,RtDef_NPCType_Ogre_SupertfbtNulltGetDistR}R~R¶R¢(
tindext
clientDataRRtmapTypeRËtcountRxtnpcPostnpcObj((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt NPCBeatBack‚sB! 
 $0
cCsdS(N((RðRñR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt NPCAttentionàscCs•|jƒ}tj|tjƒ}|ra|jtjƒdkra|jtj|jdƒƒqan|j    dƒt
j |t j ƒtj||ƒdS(Ni(R6RR{RtDef_Skill_Effect_PowerPartRhtDef_PlayerKey_PowerPartCountRlRttSetPrepareStateRBtChangePlayerActionR)tpaAttackt PlayerStatet ProcessFight(RRR t    hasEffect((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytSkillPrepareEndas " 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.pytCheckClientAttackTickrs,
     #-   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)RütOperControlManagertIsObjCanDoActiontDef_Obj_ActState_ClientSkilltGetSkillOfSeriesR3t __CheckPlayerUseSkill_ClientPackRBtSetIsNeedProcessRtClearUseSkillRect SetUseSkillt GetSkillDatatSetUseSkillPosXtSetUseSkillPosYR!tSetUseSkillTagTypeR(tSetUseSkillTagIDR'tSetAttackTargetPosR^tOnPrepareSkillRûRýRþ( RðRñRRt curPlayerIDt pack_SkillIDt    pack_PosXt    pack_PosYR„R…R
R.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_PowerPartTimeRlRùRtintRtDef_AtkSpeedBaseR^RBtSync_PrepareBeginR(RR RRóRÿtcnttcastTime((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR$s**-##cCs8tjƒ}|jƒ|_||_tj||ƒdS(N(R¸ttagMCAttackFailRšR¼tReasont NetPackCommont SendFakePack(RR treasonRÉ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR's     cCstjtƒ||ƒdS(N(Rt GetPsycoFunct__Func_UseSkill(RðR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytUseSkillAsc    CsHtjƒj|ƒ}|jƒ}tjƒ}|jƒ}|jƒ}|jƒ}|j    ƒj
|ƒ}|s„tj d||ƒdSt ||||ƒsdSt j|tj|jƒƒs¿dStj|tƒ|jƒ|j|jƒƒ|j|jƒ|jƒƒ|jƒtjkr!dStj|tjƒtj||ƒdS(NsUseSkill findSkillErr = %s(RRæRçR-R)tIPY_RoleUseSkillRšR}R~RJRR˜RRRRRRRBRRRRRR#RFRüRûRýRþ(    RðRRR%RÉR&R'R(R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR;Js2         
cCstjtƒ||ƒdS(N(RR:t__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~RJRRRRRRRRBRRRRRR!R"R#RFRüRûRýRþ( RðRRR%RÉR&t pack_TagTypet
pack_TagIDR'R(R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR>œs8           
  cCstjtƒ||ƒdS(N(RR:t__Func_UseSkillGround(RðR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytUseSkillGroundèsc Csntjƒj|ƒ}|jƒ}tjƒ}|jƒ}|jƒ}|jƒ}|j    ƒ}|j
ƒ}    |j ƒj |ƒ}
|
sœtj d||ƒdStj|tj|
jƒƒs¾dSt||||
ƒs×dStj|tƒ|jƒ|j|
jƒƒ|j|ƒ|j|    ƒ|j||ƒ|jƒtjkrGdStj|tjƒt j!||ƒdS(Ns UseSkillGround findSkillErr = %s("RRæRçR-R)tIPY_CUseSkillGroundRšR}R~t
GetTagPosXt
GetTagPosYRJRR˜RRRRRRRBRRRRRRR R#RFRüRûRýRþ( RðRRR%RÉR&R'R(t pack_TagPosXt pack_TagPosYR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyREñs:            
  cCs’tj|ƒdkrdStj|ƒs,tStj|jƒ|jƒƒt    j
kro|j ƒt j krotSntj||||tƒsŽtStS(Ni(RDRERBtPlayerCanStateTransferRR’tGetAreaTypeByMapPosR}R~R)tgatSafeRšRRtPlayerRefreshPosR(RR‡RˆR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR8s '    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.pytDoPlayerUseSkillcs%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.pytDoPlayerUseSkillTagvs  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.pyRSŒsH                cCs)tj||ƒrtSt||||ƒS(N(RRãRR_(RR2R R((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRXÔscCsXtj||ƒrtStj||||ƒ}|dtjkrEtSt||||ƒS(Ni(RRãRRÐRÑRRÓRa(RR2R RRÖ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR^â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.pyRaùscCs)|jƒ|krtSt||||ƒS(N(R4RRa(RR2R RR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRcscCs_tj||||ƒ}|dtjkr/tS|jƒtjkr[tj||dƒnt    S(Nii(
RÐRÑRRÓRRfRgRhRiR(RR2R RRÖ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR_s cCsc|jƒtjkrtStj||ƒr/tS|jƒ}|jƒ}| sU| rYtS||kS(N(R4R)R5RRRãRt    GetTeamID(RR2tcurPlayerTeamIDt curTagTeamID((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR\2s  cCs,|jƒtjkrdStj|ƒdkS(Ni(R4R)R5RDRE(RR2((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRVHscCs,|jƒtjkrdStj|ƒdkS(Ni(R4R)R5RDRE(RR2((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRZTsc    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.pytDoPlayerUseSkillGroundbs  c    Cs||}|jƒ}t|ƒ}t|ƒ}|tjkr|tjkrXt|||ƒS|tjkrzt    ||||ƒSt    ||||ƒSnè|tj
krx|tj ks½|tjkrÍt |||ƒS|tj kretj|ƒsütjdƒtStjtj|ƒ}|dkr5tjtj
|ƒ}n|dkr\tjd|jƒƒdS|}nt||||ƒStS(Ns#¸ÃNPC·ÇÕÙ»½ÊÞ£¬ÎÞ·¨»ñµÃÖ÷ÈËÊͷż¼ÄÜs&ÕÙ»½ÊÞ£¨%s£©¶ÔÖ÷ÈËÊͷż¼ÄÜ£¬ÕÒ²»µ½Ö÷ÈË(R4R RR)R5RRPRRtDef_ST_CanPlayerUseSkillRTR*tDef_ST_CanNPCUseSkillRcRÞRát IsSummonNPCRR˜RRâR`R™Rn(    R9RtR RR2tattackerObjTypetskillAffectTagtskillAimtcurSummonOwner((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytObjAutoUseSkillŒs4          cCsa|jƒ}|jƒ}xBtd|jƒƒD]+}|j|ƒ}|jƒ|kr.tSq.WtS(Ni(R7RJR•t GetSkillCounttGetSkillByIndexRR(RtskillRQt skillManagerRxtcurPlayerSkill((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCheckPlayerHasSkillÁs  c Csutjƒj|ƒ}|jƒtjkr.dStjƒ}|jƒ}|j    ƒ}|j
|ƒ}|dkr|d}d}n>|j ƒ}|j ƒ}||jƒkrºtj|dƒdS|d}    |sÐ|n    |jƒ}
tjƒj||    ƒ} | sþdSt|||
|    |ƒsdS|j|
ƒ|j
|ƒ}|jƒtjkr]tj|ƒr]nGtj|ƒrˆtj|ƒ} | jƒntjƒj||jƒƒtj|ƒj|jƒ|ƒ|jdƒ|jƒtjkrtjdd|j ƒ|
gƒntj|d|
|j ƒgƒ|j ƒ}t!j"||
|ƒtj#d|j$ƒ|j ƒf|j%ƒƒt&S(NitUseMagicLost16it GetMountSkilltGeRen_admin_31379s#Éý¼¶¼¼ÄÜÃû = %s ³É¹¦, µ±Ç°µÈ¼¶ = %s('RRæRçRFRt$Def_Player_Cannot_LearnLvSkill_StateR)tIPY_CAddSkillPointRšRJRKR`t
GetSkillLVt GetFightPowert GetSkillMaxLVRBRCt GetGameDatatFindSkillByTypetDoLogic_PlayerSkillLvUpCostt LVUPSkillByIDRftDef_SkillFuncType_HorseSkillRt isPassiveAttrtRefreshPlayerAttrStatetPassiveBuffEffMngtGetPassiveEffManagertRegistPassiveEfftRefreshSkillFightPowerExt SetRemainTimet WorldNotifytGetNametDataRecordPacktDR_LearnORUPSkillRìt GetSkillNamet GetPlayerIDR( RðRRtpackRQRƒR t
curSkillLVtbeforeFightPowert    upSkillLvt
curSkillIDtupSkillt
curControl((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytPlayerSkillLvUpÝsN          
 
$  " ,cCsçtjƒj||ƒ}|dkrHtjd||f|jƒƒtSt||ƒs[tS|jƒ}t    j
|ƒ}||kr–t    j |dƒtS|j ƒ}|j ƒ}    g}
t|ƒ} t|ƒ} | dkrA| dkrA|jƒjtjƒ} tj| | | ƒ\}}
|sAtjd|jƒ| fƒdSni|d6|d6|tj6}|    rˆt    j|||    tj|ƒ rˆtS|
rªtj|| |
| tƒn|dkrãt    j|||ƒt    j |d|gƒntS(NsÎÞ´ËÉý¼¶¼¼ÄÜ = %s,%stGeRen_jin_671654is=DoLogic_PlayerSkillLvUpCost() up skill(%s) item(%s) no enoughR¼tSkillLVtGeRen_jin_474794(RRŽRR`R˜R-RtCheckLearnSkillConditiontGetLVUpCostExpRBtGetPlayerTotalExpRCtGetLVUpCostMoneyTypetGetLVUpCostMoneytGetUpLVCostItemIdtGetUpLVCostItemNumtGetItemManagertGetPackR)RXRVtGetItem_FromPack_ByIDRRšRtDef_Cost_Reason_SonKeytPayMoneytDef_Cost_SkillLvUpt
ReduceItemtSetPlayerTotalExpR(RtcurSkillTypeIDR¤R£R R¥tskillLvUpNeedExptcurExptskillLvUpNeedMoneyTypetskillLvUpNeedMoneyCountt itemIndexListt
costItemIdt costItemNumtitemPacktisEnoughtinfoDict((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR2s@            % 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.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.pytOnSelectSkillElementïs`            
 
 "c
Cstj|tj||ƒtjd|jƒƒ}||krBdS|j|ƒ}|tj    kru|j
ƒ}|}n|j ƒ}|tj    }d}|rÄtj d|ƒ}|rÄ|j ƒ}qÄntj|||ƒ}    |tj    krû|j|    tƒn|j|    tƒdS(NtSkillActTypeIdSortiRâ(RBRëRRéRØtGetFuncEvalCfgtGetJobRðR$tDef_PDictDigitCntt
GetExAttr7t
GetExAttr8RätGetElementSkillNumRtChangeDataByDigitPlacet
SetExAttr7Rt
SetExAttr8(
RRòRñt mainSkillListtmainSkillIndext exAttrValuet exAttrIndextelementSkillNumR×tupdExAttrValue((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRí3s(        cCstt}}tƒ|tjkr-||fSi}|jtj|ƒ}tj|}t|ƒ}d}    xXt|ƒD]J\}
} t    | ƒ\} } |j
| dƒ}|| kru||
}    PququW||    kròt j |tj||    ƒt }nt|    |ƒ}    |jƒ}|j|ƒ}|r.|jƒnd}|sD||fS|    |krZ||fS|    |krÝ|j|ƒx!t|    ƒD]}|j|ƒq€W|    dkrtjd|ƒ}|jƒ}t||dƒt }qn(x%t|    |ƒD]}|j|ƒqîW|t fS(NiRâ(Rt__InitElementSkillInfot
PyGameDatatg_elemntSkillDictRèRRêR!RžRÛRRBRëRRRJRKR‹RîRptLVUpSkillBySkillTypeIDRØRäRåRí(RRQt
isChangeLVtisNotifyt hasChangeLVRßRöt limitInfoListt
maxSkillLVt
updSkillLVRxt    limitInfot
needAttrIDt needAttrValuet curAttrValueRƒR R¡t_R×Rò((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRìUsL 
 
      
 
     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(R RJRpR€RR7RØtGetIpyGameDataByConditionRRRèRRétGetElementSkillIDR RRÛtitemsRìR•R–R—RBRïR”Rð(Rt
attrIDListtneedRefreshSkillIDDictRƒRxthasSkillt
hasSkillIDt ipyDataListtcurSelectSkillIDR×RõtattrIDt
needNotifyt    isRefreshR´RRRR¦((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytRefreshElementSkillByAttr‡sB           
  cCstjƒ}d}|jƒ}xît|jƒƒD]Ú}|j|ƒ}|jƒ}    |    |krdq1ntjdi|    d6t    t
ƒ}
|
sq1nxy|
D]q} | j ƒ} |rØ|j | ƒ} t | ƒ|krØq–qØn|jtj| ƒ}||kr–|d7}q–q–Wq1W|S(NiRâRi(RRŽRJRpR€RR7RØRRRRtGetSkillBySkillIDRáRèRRê(RtmainSkillIDListtactiveLVt elementTypetgameDataR3RƒRxR!R"R#R×telementSkillIDtelementSkillDatat curActiveLV((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetElementSkillCnt°s*           cCsþtjsútjƒ}xât|jƒƒD]Ë}|j|ƒ}|jƒ}tj    ƒj
|dƒ}|smq(n|j ƒ}xwt|ddƒD]c}tj    ƒj
||ƒ}|s¶qŒn|tjkrÕgtj|<ntj|j |j ƒƒqŒWq(WndS(Niiiÿÿÿÿ(R RRØtIPY_DataRptGetSkillElementCounttGetSkillElementByIndexRRRŽRRRRÚ(tipyMgrRxR×R.R‚t
skillMaxLVtskillLVR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR És"       %cCsÙ|s°i}|jƒ}x¸t|jƒƒD]~}|j|ƒ}|jƒ}tjdi|d6ttƒ}|swq+ng||<x%|D]}    ||j    |    j
ƒƒqˆWq+Wn#|rÆi|g|6n
ig|6}t j ƒ}
g|
_ xÈ|jƒD]º\} } |jtj| ƒ} t jƒ}| |_| |_g|_xL| D]D}t jƒ}||_|jtj|ƒ|_|jj    |ƒqEWt|jƒ|_|
j j    |ƒqõWt|
j ƒ|
_tj||
ƒdS(NRâR(RJRpR€RR7RØRRRRRR¸ttagMCSkillElementInfotInfoListRRèRRéttagMCSkillElementDataRtElementSkillIDt ActiveSkillttagMCSkillElementActiveDataR¼RêtActiveLVR!tSkillCnttCntR7R8(RRòt changeSkillIDtsyncMainSkillDictRƒRxR!R"R#R×RÉtmSkillIDt elementListRõt elementDataR.t
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`RtR0RR1(RIRHtbuffTickRy((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•tGetBufftGetSkillRKROtGetProcessIntervaltSetProcessIntervalRqRrRsRt GetExecFuncR( RHt    buffStateRtbuffStateCountRxtcurBuffRItprocessBuffTickteffIndexRyRzt
processStrtcallBuffProcessFunc((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__ProcessCurPersistBuff,    s0    cCstt||jƒ|ƒt||jƒ|ƒ|jƒtjkrpt||jƒ|ƒt||jƒ|ƒndS(N(R^tGetProcessBuffStatetGetProcessDeBuffStateR4R)R5t GetEquipBufft
GetMapBuff(RHR((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.pytProcessMapBuffu    s cCsþtjƒ}|jƒdkr"dS|j|jƒ|jƒƒ}|jƒ}|dkr|tjd|j    ƒƒ|j
ƒt S|j ƒ}|dks¡|j ƒ r¯t|ƒt St}d}x)||jƒkræ|j|ƒ}|jƒ|jƒ}    }
|jƒjƒ} |j| ƒsÙ|jƒ} x…td| j ƒƒD]n} | j| ƒ}|jƒ}|dkrnq;ntjtd|dfƒ}|dkrœq;n|||ƒq;W|j|ƒt|| |    |
ƒt }q¾n|d7}q¾Wtjƒ}xtd|ƒD]ó}|j|ƒ}|dkr*qn|j|ƒ} | dkrctjd||j    ƒƒPn| j ƒ}|j!|ƒ}|rÏ|jƒjƒ| jƒkr¨qn|jƒj"ƒ| j"ƒkrÏqqÏnt#j$|t%j&| |ƒ}|pó|}qW|S(Ns###´¦Àí³¡¾°buff²éÕÒÍæ¼Òʧ°Üis MapBuff_%d.%st OnMapBuffDelis"ProcessMapEffect skill = %s ²»´æÔÚ(('RR€tGetMapIDt    GetPosObjR}R~RbR`R˜R-RºRRqtIsAlivetDoMapBuffClearRRQRRt
GetOwnerIDt GetOwnerTypeRSRšt
HaveEffectR•RrRsRVRtDeleteBuffByIndextClearBuffEffectBySkillIDRŽR)R7tFindBuffR‹t    BuffSkilltAddBuffNoRefreshStateR)t    bfMapBuff(RRtgameMapt    curPosObjtmapBuffManagert effectCountt processResultRðt curRoleBufftownerIDt    ownerTypeR´R t effectIndexRyRwtcallFuncR-RxRQtfindBufftisOK((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRh‰    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.%sRk(RbR•RQRRRSRšRqRrRsRRVRR`Rº(    Rt buffManagert    buffIndexRYR RRyRwR‚((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRoâ    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( RbR•RQRRRSRšRqRrRsRRVRR`(    RR…R†RYR RRyRwR‚((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRi
s      cCst|||||ƒdS(N(t__CallBuffFunc(RWt 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(RpRQRRRSt GetAttrMapIDR4R)R5tFBCommontGetRecordMapIDRlRqRrRstCalcBuffEffAttrtGetValue( RWtobjDetelRŠR‹RŒRxRYt    buffSkillt    attrMapIDRyRz((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRˆ1
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( RstGetBuffModuleSuffixRRVRtGetAttrListIndexRt IsBaseEffectRSR‰RRG( R“RyRŠRŒt    plusValueRYRzt moduleSuffixt skillTypeFuncRðR‚((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR‘I
s*   !cCs[|jƒ}|tjkr8tjj|dggƒdStj|ƒ\}}|rW|S|S(NRi(RsRtCalcBuffLevel_1tDef_Skill_BuffEffectOutsideRRvtFindBuffAttrByEffectID(RyRŒRzt
suffixNametattrList((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR™o
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ŽR)Rt GetBuffTypetGetBuffManagerByBuffTypeRpRqRrRstGetEffectFromSkillIDtGetEffectOwnerIDtGetEffectOwnerTypeRtsortRtDeleteEffectByIndex( RHR´RR€R tbuffTypet    buffTupleRWteffectIndexListRxRyRz((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRt†
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ŽR)RR¨R©RpRqRrRsR«R¬RªR7RR­RR®(RHRQRR€R R¯R°RWR±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®(RHRWt 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•RQRRRSRtSetObjActState(RHtactionBuffManagerRxRYR”((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“RfRRgtDef_SkillFuncType_FbSPSkilltDef_SkillFuncType_GiftSkilltDef_SkillFuncType_GWSkilltDef_SkillFuncType_ZhuXianRqRrRsR‘R•tFindUsePassiveSkillsR(    RRŠRƒRxR„RyRztskillsR´((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcPassiveAttr_Effect s@        cCs‰x‚ttjtjƒD]k}|tjtjtjgkr@qntj||ƒ}|dkrdqn|d}t    ||||ƒqWdS(Ni((
R•R)tbfBufftbtBufMaxt bfProcessBuffRxt bfEquipBuffRR©R(RRŠR‹R¯R°R…((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffers_Effect5 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ŠRWt    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(R9RtR RRrRs((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoLogic_UseEnhanceSkillÚ s
""cCs*|s
dSt|||||||ƒdS(N(RÑ(R9RtR tskillEnhanceIDRRrRs((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ŽR)R˜R-tCheeckTrigSkillandTagR`RDREtGetNPC_Is_GateRãRÐt GetHurtTypeRtDef_HurtType_MisstGetSkillOfSeriesHitRatet    CanHappentDef_MaxRateValueRRaR( R9RttuseSkillRrRsRÕRR7texSkillt
resultListtrate((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÑ s( &
 
0    cCs|jƒ}|S(N(t GetHappenRate(R9RtRßtbaseRate((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÛd s cCs˜|jƒtjkrGt|ƒtjtjgkr=t|fSt|fSt|ƒtjtjgkrot|fSt|ƒtj    krŽt|fSt|fS(N(
R4R)R5R RtDef_UseSkillTag_SelfRWRRRo(R9RßRtR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR×o 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ŽR7RRVRR`R˜(R tpyNameExtfuncNametatkTypetpyNamet fuctionNameR‚((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillCallFuncByName“ s   cCsdS(N((R9RtRÞR((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoLogic_SkillAttackDie¯ sc    CsÉtj|tj|jƒƒs"dS|r[tj|ƒtjkr[|jƒ}|j    ƒ}nt
j |ƒr­|j ƒtj tjgkr‘|}nt|||||||ƒSt|||||||ƒS(N(RRRtDef_Obj_ActState_ServerSkillRRÎRRPR}R~RR8R‰tDef_SkillType_LstPlsBuffAtkt"Def_SkillType_PassiveLstPlsBuffAtkt__DoLogic_AddBufft__DoLogic_UseAttackSkill(R9RtR RRmRntisEnhanceSkill((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ñ(R9RtR RRmRnRò((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_ListRhtCheckCanAttackTagRÐtClearSkillHurtListRëR`tGetAddBuffValueRvt    DoAddBufft AddBuffOvertOnHurtTypeTriggerPassiveSkillRtDoAttackSuccessExRDRE( R9RtR RòRRmRnRöRQt skillBuffTypeR‚RtaddBuffValueList((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRð s0 %
 $ 
"cCsŽ|jdƒ}t|ƒ}i}|jƒtjkrUtjtd|dfƒ}ntjtd|dfƒ}|s{gS|||||ƒS(NisBuffProcess_%s.%st CalcBuffValues
Buff_%s.%s(RrR™R‰RRGRRVR(R9R RtRyRtchangeBuffValueDictR‚((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRûD 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•RqRrRRVRRsR`R‰RRGRRRÔRøRãR4R)R*Rát
NPCControltAddObjToAngryListt GetSkillAngryRÐtDoLogic_AttackResult(
R9RtR RRòRRyR‚t    skillTypet
npcControl((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRý` s&"  cCs>t|ddƒ}|dkr"tS||||||||ƒS(NRåR<(RëR`R(R9RtR RRmRnRòR‚((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRñ” s cCsAtjƒj|ƒ}tjƒ}|j|jƒ|jƒƒdS(N(RRæRçR)tIPY_CSetAutoSkillt
SetAutoAtktGetTypeRš(RðRRRÉ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt SetAutoSkill² s cCs
|jƒS(N(t
GetExAttr1(R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetConnectSkillID½ scCsdS(Ni((R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetLVUpCostZhenQiÄ scCs|s
dS|jƒS(Ni(t
GetExAttr2(R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetHappenStateÊ scCs
|jƒS(N(t
GetExAttr3(R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRŽÑ scCs
|jƒS(N(t
GetExAttr4(R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR°Ø scCs
|jƒS(N(t
GetExAttr5(R ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR±Þ scCsv|jƒ}|jƒ}|jƒd}t||ƒ}tjƒj||ƒ}|sftjdƒdSt|ƒ}|S(Nis!»ñÈ¡ÏûºÄÕæÆøÖµ´íÎó£¬skill is Nonei(    R7RR‹RRRŽRRìR(R RºRR£tskillLvR¥tskillLvUpNeedZhenQi((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillLVUpCostZhenQiæ s    cCs*t}tjdkrÊ|rÊ|jtjƒrÊ|jƒ}|rK|jƒnd}|jƒ}tjj    |||gƒt
tjƒdkrÊt j ƒj ƒ}    t jdd|    tjfƒdt_|Sn|jƒdkrÌ| rÌt jƒj|jƒƒ}
|
rFt j|
jƒtjƒrFt||
||tƒr=tn|}nt jƒj|jƒƒ} | r©t j| jƒtjƒr©t|| ||tƒr tn|}ntj|tj|ƒ||ƒ|St|ƒ} t|ƒ} t jd| |jƒ|j ƒf|jƒƒ| tj!krý|j"ƒtj#krß| tj$krß|r¯|j%ƒt&j'kr¯|j(ƒt&j)kr¯t*j+|ƒ}|r¯|jƒ|jƒkr¯d}q¯nt,|||||j-ƒ|j.ƒd|ƒ}q t,||||d|ƒ}n| tj/krk|r.|j-ƒ|j.ƒ}}n|j-ƒ|j.ƒ}}t,||||||d|ƒ}n¡| tj0tj$gkrñ|sŸt jdƒt}q |j%ƒt&j1krÓt2||||ƒ rÓt}q t,||||d|ƒ}nt,||||d|ƒ}t jd||jƒƒ|S(    NiidtMirrorAIAtkDepthErrors mapID=%s, %ssÊͷű»¶¯´¥·¢¼¼ÄÜ : %s- %s %sRòs$ÅäÖÃÁ˿ɹ¥»÷Ä¿±ê£¬µ«Ã»Ä¿±ê¾Í²»Èô¥·¢s´¥·¢½á¹û-----------%s(3RR tg_singleAtkRecordListR`RhRtDef_PlayerKey_MirrorBattleIDR-RšRR!RR€Rlt SendGameErrorR RŽR)RÒRÜRâRÝtUsePassiveTriggerSkillRRÓRtSetSkillRemainTimeRBtGetReduceSkillCDPerRR RRžRPR‰RQRäR4R)R*RßRàRátGetNpcObjOwnerDetailRaR}R~RotDef_UseSkillTag_NoneR5RS(R9R ttargetRRòRtatkIDttagIDR´tmapIDtskill1tskill2R}t    affectTagRäR‡Rˆ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRû s^'      !'!'  /$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`RfR‹(RtfuncTypetskilllvt allSkillCntRƒRxR„((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillCntByFuncMs  cCs‚d}|jƒ}xit|jƒƒD]U}|j|ƒ}|dkrLq%n|jƒ|krdq%n|jƒ}||7}q%W|S(Ni(RJRpR€RR`RfR‹(RR*t
allSkillLVRƒRxR„R7((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt GetAllSkillLV^s   (’RR)RRRvRBRRÐRÊRÇRáRRhRýRNRVRRœR$RDR–R7R¸R’RR•RÎRRØR t    ImportAllRRRR    R
R RRRRRRR3R;RSR]RcRnReRgR_R£RfRÜRÍRÌRöR÷RR R)R$RR<R;R?R>RFRERRRRTRSRXR^RaRcR_R\RVRZRwRR…R§R`RR«RÏRÛRáRûRíRRìR(R1R RðRKROR^RcRjRhRoRiRRˆR‘R™RšRtR³RµR¹RÀRÅRÏRÐRÔRÖRÑRÛR×RëRìRRaRóRðRûRýRñRRRRRŽR°R±RRR-R/(((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt<module> s                                                                              ,        }                          L    #                    ^            =    Q    '             I            L            G    +            H                                     *    5        U ^    <            
    D    " 2    )     *            4            Y        &
&         $    $             / l        $    ^         $        &@        4                                  R