hxp
2019-01-22 f2ede99ffb2dae9dfe8d01c0bde78eaf7ebde496
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
‹G\c@sûddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl!Z!ddl"Z"ddl#Z#ddl$Z$ej%ddƒej%ddƒej%ddƒej&ƒa'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!d"„ZCd#„ZDd$„ZEd%„ZFd&„ZGd'„ZHd(„ZId)„ZJd*„ZKd+„ZLd,„ZMd-„ZNd.„ZOd/„ZPd0„ZQd1„ZRd2„ZSd3„ZTd4„ZUd5„ZVd6„ZWd7„ZXd8„ZYdd9„Z[d:„Z\d;„Z]d<„Z^d=„Z_d>„Z`d?„Zad@„ZbdA„ZcdB„ZddC„ZedD„ZfdE„ZgehdF„Zigd!dG„Zjgd!dH„Zkd!d!ddI„Zld!dJ„ZmdK„ZnddL„ZodM„ZpdN„ZqdO„ZrdP„ZsdQ„ZtdR„ZudS„ZvgdT„ZwdU„ZxdV„ZydddW„ZzdddX„Z{dY„Z|dZ„Z}d[„Z~d\„Zd]„Z€ddehd^„Zd!d!ehd_„Z‚d!d!d`„Zƒda„Z„db„Z…ddehdc„Z†dd„Z‡de„Zˆdf„Z‰dg„ZŠdh„Z‹di„ZŒdj„Zdk„ZŽdl„Zehdm„Zdn„Z‘dS(oiÿÿÿÿNs Script\Skill\t
GameSkillst    GameBuffstcCsDtjƒ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
ReloadBuffKscCs|jƒdS(Ni
(tGetTag(tcurSkill((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillAffectTagTscCs|jƒdS(Ni
(R (R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillFireAim[scCstS(N(tg_ClientHurtDict(((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetClientHurtDict`scCs#tjƒa|jtjdƒdS(Ni(t collectionst OrderedDictRtSetDictRt Def_PlayerKey_ClientMaxHurtValue(t    curPlayer((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearClientHurtDictds cCstj||fgƒS(N(Rtget(tobjIDtobjType((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetClientHurtByObjlscCs:tj||fgƒ}|s"tS|ddkr6tStS(Nii(RRtFalsetTrue(RRtresult((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytisClientHurtValueqs cCs
t|ƒtj||ƒ}t|ƒ|kr2tSxÑ|D]É}|jdkrv|j|jgt|j|j    f<q9n|j    t
j krŒtSt j |j|j    ƒ}|s®tS|jƒdkrÄtS|j|j    ftkràtS|j|jgt|j|j    f<q9WtS(Ni(Rt SkillCommontGetSkillArea_Atk_CounttlenRtHurtHPt
AttackTypeRtObjIDtObjTypet IPY_GameWorldtgotNPCRtGetObjt    GetIsBossR(RR thurtListt    hurtCountthurobjtcurTag((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytInitClientHurtDict}s&
 "&cCst|jƒtjkrtS|s#tS|jƒ}|rc|jƒ|jƒkrctj|ƒsctSntƒsptSt    S(N(
tGetGameObjTypeR&t    gotPlayerRt GetUseSkilltGetSkillTypeIDRtIsBuffRR(tattackerR t useSkillData((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytIsPlayerUseSkill¦s     cCsc|jƒr tj|dƒdS|jƒdkrFtj|dƒtS|jƒ}|tjkrutj|dƒtS|stj|dƒtStj    |ƒr¢tS|j
ƒ}tj ||ƒsÔtj|dƒtS|j ƒj |ƒ}|stj|dƒtStj||ƒdkr9tj|dƒ|jƒtStj||ƒr_tj|dƒtStS(NtPlay_Attack_NullitPK_chenxin_612029tUseMagicLost02tUseMagicLost09tUseSkillCDLimitt FB_Skill_Lost(tGetGMForbidenFightt PlayerControlt
NotifyCodetGetHPRtGetPlayerActionRtDef_PlayerCanAttackStateRtisPassiveSkillR2t 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__CheckSkillUseItem=s  cCs2|jƒrt|d||ƒSt||||ƒS(N(t GetCastTimetNPCUseSkillWarntNonetDoLogic_UseSkill(tcurNPCR R((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt NPCUseSkillRs 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_AppointNPCtGetAppointNPCBySkillEffectRtNPCCanUseSkillTagtNPCAttackMovePosRYRZR\t GetDictByKeytDef_NPC_Dict_AtkMovePosXt    ChangePostDef_NPC_Dict_AtkMovePosYR(R]R-R RtskillTagR((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytNPCUseSkillTag_s"   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.pyR`ys      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ÿÿÿÿ(RcRRdRtGetSkillEffectByEffectIDtDef_Skill_Effect_AttackMoveRntGetPosXtGetPosYRjRtPosInLineByDistExtGetMaptCanMoveRRf(
R]R-R t skillEffecttmoveDistttagPosXttagPosYtdisttposXtposY((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRb‘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(-RYRt GetSkillTypeRtDef_SkillType_SummonRlRntmaxRtGetSummonCountByNPCIDtmint
GetAtkTypetappendRwRxt
GetAtkDisttDef_DropItemDistRjtGameMaptGetEmptyPlaceInAreaRutDef_Skill_Effect_RandWarntrangetrandomtsampleR!RcRdRfRtErrLogtGetNPCIDt
GetSkillIDRtDef_NPC_Dict_SkillWarnSkillIDtDef_NPC_Dict_SkillWarnTimetDef_NPC_Dict_SkillWarnPosCntt    enumeratetDef_NPC_Dict_SkillWarnPosXtDef_NPC_Dict_SkillWarnPosYt SetCurActionR&tlaNPCSkillWarningtNotifyNPCSkillWarnR(R]R-R RtwarnTimet warnPosListt curSummonIDtcurSummonCounttsummonCountAlltcurSummonNPCCntt canSummonCnttatkDistRrt    resultPosR|tfromXttoXtfromYttoYt
warnPointstxtyRR‚tskillIDtposInfo((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRZ±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œRcRR•R–t GetActionTicktChPyNetSendPackttagMCNPCSkillWarntCleartGetIDR$R“tNPCIDtSkillIDtWarnTimet
RemainTimet WarnPosListR—RjttagMCNPCSkillWarnPosR™tPosXRštPosYR‰R!t
WarnPosCntt    NotifyAllt    GetBuffert    GetLength(    R]Rt warnSkillIDRžt
remainTimetsendPacktposCntRrtpos((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 RR_RtIsToPetOwnerSkilltIsSummomToOwnerSkillt
SkillShelltDef_UseSkillTag_CanAttackPlayerR/R&R0Rt
BaseAttacktGetTagRelationtDef_UseSkillTag_FriendNPCtType_Relation_FriendtType_Relation_Enemy(R]R-R RRgtcurSkillUseTagtrelation((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRa s" cCsd|tjtjgkrtS|jƒtjkr5tStjtj    |ƒ}|sTtSt
j ||ƒS(N( RtDef_UseSkillTag_FriendtDef_UseSkillTag_SummonMasterRtGetGameNPCObjTypeR&t
gnotSummont    NPCCommontGetSummonNPCOwnerR'Rt    IsSameObj(R]RgR-towner((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÈAscCs†|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(R]RgtpetOwner((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÇUs# c
Cstjƒj|ƒ}tjƒjƒ}|jtjkrä|jdkrä|j    d}|j
|j ƒkrndSt j |ƒdkr‡dStjƒj|j|jƒs©dS|jƒ|j|j|jƒtjd|j ƒƒdSt|jdƒ}xt|ƒD]}|j    |}tj|j
tjƒ}    |    s:qn|    jƒtjkrd|tjkrdqnt j |    ƒdkrqntjƒj|j|jƒs£qntj|    jƒ|    jƒ|j|jƒdkrÙqn|    jƒtj krôqn|    jƒ|    j|j|jƒqWdS(Niis---Íæ¼Ò±»»÷ÍË %si
i(!RtGetPlayerManagertGetPlayerByIndexRzt GetMapFBTypeR%R&R0tCountt
NPCPosListR$RµtGameObjR@R{R¼R½tStopMoveRetLogR‡RR(R'R)RtDef_NPCType_Ogre_SupertfbtNulltGetDistRwRxR°Rœ(
tindext
clientDataRRtmapTypeRÆtcountRrtnpcPostnpcObj((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt NPCBeatBackœsB! 
 $0
cCsdS(N((RíRîR((siE:\SnxxServerCode\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(R1RRuRtDef_Skill_Effect_PowerPartRctDef_PlayerKey_PowerPartCountRRntSetPrepareStateR>tChangePlayerActionR&tpaAttackt PlayerStatet ProcessFight(RRR t    hasEffect((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytSkillPrepareEndgs " 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_ClientTickRtDebugLogRRct SetMoveCountRtGetPlayerAttackTickt GetMoveCountR>tGetAtkIntervalt SetAttackTickR(Rt
clientTickRtDef_Attack_DelayTickterrCnt((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCheckClientAttackTickxs,
     #-   c Cs1tjƒj|ƒ}|jƒ}|j}|j}|j}|j}|j}    |j    }
|j
} |j ƒj |ƒ} | sdSt ||
|ƒs²t|| tjƒ|jƒdS|jƒtjkrØt|| ƒdStj|tj| jƒƒst|| ƒdSt|| | ƒs*t|| ƒdSt|||| ƒsPt|| ƒdStj|tƒ|jƒ|j| j ƒƒ|j!|ƒ|j"|    ƒt#| ƒdkrÔ|j$| dj%ƒ|j&| dj'ƒn|j(||ƒ| j)ƒdkr
t*|| |ƒdStj+|tjƒt,j-||ƒdS(sk
        Óɿͻ§¶ËËÑË÷¶ÔÏó£¬Ð¡¹ÖÓɿͻ§¶Ë¼ÆËãÉ˺¦£¬·þÎñ¶Ë¿ØÖÆÉ˺¦Öµ·¶Î§
        ÆäËû¶ÔÏóÂß¼­ÓÉ·þÎñ¶Ë´¦Àí
    Ni(.RRâRãRµR·R¼R½tTagPosXtTagPosYt    WorldTicktHurtListREtFindSkillBySkillIDR
tAttackFailNotifyRtSkillFail_AtkIntervalRRAR&RùtOperControlManagertIsObjCanDoActiontDef_Obj_ActState_ClientSkilltGetSkillOfSeriesR.t __CheckPlayerUseSkill_ClientPackR>tSetIsNeedProcessRtClearUseSkillRect SetUseSkillt GetSkillDatatSetUseSkillPosXtSetUseSkillPosYR!tSetUseSkillTagTypeR%tSetUseSkillTagIDR$tSetAttackTargetPosRYtOnPrepareSkillRøRúRû( RíRîRRt curPlayerIDt pack_SkillIDt    pack_PosXt    pack_PosYR~RRR*R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt
UseSkillEx´sZ                             
        
  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(RRGRRuRRõRAR&t paPreparingtGetPrepareStatetpstSkillt GetPrepareIDR”RnR‡tGetPlayerActionTickRctDef_PlayerKey_PowerPartTimeRRöRýtintRtDef_AtkSpeedBaseRYR>tSync_PrepareBeginR(RR RRðRütcnttcastTime((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR s**-##icCs8tjƒ}|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.pytUseSkillDsc    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”RwRxRERR’RRRRRRR>RRRRRRRARùRøRúRû(    RíRRR!RÄR"R#R$R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR7Ms2         
cCstjtƒ||ƒdS(N(RR6t__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
GetTagTypetGetTagIDRwRxRERRRRRRRR>RRRRRRRRRARùRøRúRû( RíRRR!RÄR"t pack_TagTypet
pack_TagIDR#R$R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR:Ÿs8           
  cCstjtƒ||ƒdS(N(RR6t__Func_UseSkillGround(RíR((siE:\SnxxServerCode\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”RwRxt
GetTagPosXt
GetTagPosYRERR’RRRRRRR>RRRRRRRRRARùRøRúRû( RíRRR!RÄR"R#R$t pack_TagPosXt pack_TagPosYR ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRAôs:            
  cCs´|jƒdkrdS|jƒtjkr;tj|ƒntj|ƒsNtSt    j
|j ƒ|j ƒƒtj kr‘|jƒtjkr‘tSntj||||tƒs°tStS(Ni(R@tGetPlayerVehicleR&tpvHorset PlayerHorsetPlayerRideHorseDownR>tPlayerCanStateTransferRRŒtGetAreaTypeByMapPosRwRxtgatSafeR”RtDef_SkillID_SomersaulttPlayerRefreshPosR(RRR‚R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR;s'    cCs€t|||ƒsdSt|ƒtjkr/dS|jƒtjkrit|d|||jƒ|j    ƒƒSt||||ƒSdS(N(
RNRRtDef_UseSkillAim_NoneRƒtDef_CanAttackSkill_ListR\R[RwRx(RR R((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoPlayerUseSkillfs%cCsOt|||ƒs#tjdƒdSt||||ƒs<dSt||||ƒS(Ns#DoPlayerUseSkillTag, ²»Âú×ãʹÓÃÌõ¼þ(RNRRtCheckTag_DoPlayerUseSkillTagR\(RR R-R((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoPlayerUseSkillTagys  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_PlayerAshesRçR@tDef_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ÊR0t Def_UseSkillTag_CanAttackBaseNPCR/RRzRäRëR)RêR’(RR R-RRÐ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRTsH                cCs)tj||ƒrtSt||||ƒS(N(RRØRR`(RR-R R((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRY×scCsXtj||ƒrtStj||||ƒ}|dtjkrEtSt||||ƒS(Ni(RRØRRËRÌRRÎRb(RR-R RRÑ((siE:\SnxxServerCode\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(RR-R RRÑ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRbüscCs)|jƒ|krtSt||||ƒS(N(R/RRb(RR-R RR((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRdscCs_tj||||ƒ}|dtjkr/tS|jƒtjkr[tj||dƒnt    S(Nii(
RËRÌRRÎRRgRhRiRjR(RR-R RRÑ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR`"s cCsc|jƒtjkrtStj||ƒr/tS|jƒ}|jƒ}| sU| rYtS||kS(N(R/R&R0RRRØRt    GetTeamID(RR-tcurPlayerTeamIDt curTagTeamID((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR]5s  cCs,|jƒtjkrdStj|ƒdkS(Ni(R/R&R0RçR@(RR-((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRWKscCs,|jƒtjkrdStj|ƒdkS(Ni(R/R&R0RçR@(RR-((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR[Wsc    Cs‡t|||ƒsdSt|ƒtjkr/dSd}|jƒ}|jƒ}|rhtj||ƒ}nt    ||||d|d|ƒS(Nt tagRoundPosXt tagRoundPosY(
RNRRtDef_UseSkillAim_GroundR[tGetUseSkillTagIDtGetUseSkillTagTypeRR(R\(RR tdestXtdestYRtdefendert useSkillTagIDtuseSkillTagType((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoPlayerUseSkillGroundes  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£©¶ÔÖ÷ÈËÊͷż¼ÄÜ£¬ÕÒ²»µ½Ö÷ÈË(R/R RR&R0RRQRStDef_ST_CanPlayerUseSkillRUR'tDef_ST_CanNPCUseSkillR^RÚRÛRÜRR’RRÞR[RßRàRÓRÖt IsSummonNPCR×R“Rh(
R4RuR RR-tattackerObjTypetskillAffectTagtskillAimRá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(R2RERt GetSkillCounttGetSkillByIndexRR(RtskillRLt skillManagerRrtcurPlayerSkill((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCheckPlayerHasSkillÒs  cCsÉ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ƒt!j"ddiƒ} |jƒtjkr)tj#dd|j$ƒ|
gƒnQ|| kr[tj#d| ||j$ƒ|
gƒntj|d|
|j ƒgƒ|j ƒ}t%j&||
|ƒtj'd|j(ƒ|j ƒf|j)ƒƒt*S(    NitUseMagicLost16it SPSkillTypeit GetMountSkilltGeRen_admin_31379s#Éý¼¶¼¼ÄÜÃû = %s ³É¹¦, µ±Ç°µÈ¼¶ = %s(+RRâRãRARt$Def_Player_Cannot_LearnLvSkill_StateR&tIPY_CAddSkillPointR”RERFR[t
GetSkillLVt GetFightPowert GetSkillMaxLVR>R?t GetGameDatatFindSkillByTypetDoLogic_PlayerSkillLvUpCostt LVUPSkillByIDRgtDef_SkillFuncType_HorseSkillRt isPassiveAttrRJtRefreshHorseAttrtRefreshPlayerAttrStatetPassiveBuffEffMngtGetPassiveEffManagertRegistPassiveEfftRefreshSkillFightPowerExt SetRemainTimet IpyGameDataPYtGetFuncEvalCfgt WorldNotifytGetNametDataRecordPacktDR_LearnORUPSkillRét GetSkillNamet GetPlayerIDR(RíRRtpackRLR„R t
curSkillLVtbeforeFightPowert    upSkillLvt
curSkillIDtupSkillt
curControltlearnSkillNotifyDict((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytPlayerSkillLvUpîsT          
 
$  " & ,cCs–tjƒj||ƒ}|dkrHtjd||f|jƒƒtSt||ƒs[tS|jƒt    j
kr‰t j ||ƒs‰tSn|jƒt    j kr´tj|ƒs´tSn|jƒt    jkrâtj||ƒsâtSn|jƒ}tj|ƒ}||krtj|dƒtS|jƒ}|jƒ}    g}
t|ƒ} t|ƒ} | dkrÈ| dkrÈ|jƒjtjƒ} tj | | | ƒ\}}
|sÈtj!d|j"ƒ| fƒdSni|d6|d6|t    j#6}|    rtj$|||    t    j%|ƒ rtS|
r1tj&|| |
| tƒn|dkrjtj'|||ƒtj|d|gƒn|jƒt    j kr’tj(|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µRtCheckLearnSkillConditionRgRR”RJtCheckLearnHorseSkilltDef_SkillFuncType_GiftSkilltPlayerGreatMastertGetGreatMasterFreeSkillPointtDef_SkillFuncType_ZhuXiant EquipZhuXiantCheckLearnZhuXianSkilltGetLVUpCostExpR>tGetPlayerTotalExpR?tGetLVUpCostMoneyTypetGetLVUpCostMoneytGetUpLVCostItemIdtGetUpLVCostItemNumtGetItemManagertGetPackR&RSRQtGetItem_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’HsV            % c    CsÉ|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ƒtS|jƒ}|d|d}}|rÅ|rÅi|jƒtj6|jƒtj6|jƒtj6|jƒtj6}||krƒtj d|
|fƒtS|j!|dƒ}||krÅtjd|
|||fƒtSntS(    Ns'Íæ¼ÒµÈ¼¶²»¹»Éý¼¶ curSkill.GetLVReq()=%sii't TalentSkilltGeRen_wjr_717982tUseMagicLost13sG    Ì츳¼¼ÄÜÉý¼¶ÊôÐÔµãÌõ¼þÅäÖôíÎó£¬curSkillTypeID=%s,needBaseAttrID=%ss+Éý¼¶¼¼ÄÜ%sÐèÒªÊôÐÔµã %s´ïµ½%s, µ±Ç°µãÊý=%s!("tGetLVtGetLVReqRRRREtGetLearnSkillReqtGetLearnSkillLVtGetLearnSkillPointReqR2RtGetIpyGameDataNotLogt GetTalentTypeRjRR‚R[RRt    GetSeriesR>R?tGetStateSkillLVtGetSTRt ShareDefinetDef_Effect_STRtGetPHYtDef_Effect_PHYtGetCONtDef_Effect_CONtGetPNEtDef_Effect_PNER’R(RR R„thasLearnSkillReqtnumLearnSkillPointtcurSkillLearnReqtlvCurSkillLearnReqtlearnSkillPointReqt
needSeriestneedSeriesPointRÈtipyDatat curTalentTypeRrRƒRLtlvSkillt stateSkillLVtneedBaseAttrIDtneedBaseAttrValuet baseAttrDicttcurBaseAttrValue((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__BuffCanProcessús cCsotj}tj|tjƒ}|dkrk|jdƒ}|jdƒrkt|jƒtj    |ƒ}qkn|S(Nii(
RtDef_ProcessPersistBuffRRutDef_Skill_Effect_BuffTickR[RnR,RR-(RùRøtbuffTickRs((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetProcessBuffTick 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tGetBufftGetSkillRûRÿtGetProcessIntervaltSetProcessIntervalRkRlRmRt GetExecFuncRt__DoProcessBuff_PlayerKey( Røt    buffStateRtbuffStateCountRrtcurBuffRùtprocessBuffTickteffIndexRsRtt
processStrtcallBuffProcessFunc((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__ProcessCurPersistBuffs2    cCsdS(N((RøR((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRVscCstt||jƒ|ƒt||jƒ|ƒ|jƒtjkrpt||jƒ|ƒt||jƒ|ƒndS(N(RtGetProcessBuffStatetGetProcessDeBuffStateR/R&R0t GetEquipBufft
GetMapBuff(RøR((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytProcessPersistBuffms 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 cCshtjƒ}|jƒdkr"dS|j|jƒ|jƒƒ}|jƒ}|dkr|tjd|j    ƒƒ|j
ƒt S|j ƒ}|dks¡|j ƒ r¯t|ƒt St}d}xq||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¾nH| tjkr!t j!ƒ r!|j|ƒt|| |    |
ƒt }q¾n|d7}q¾Wtj"ƒ}x&td|ƒD]}|j|ƒ}|dkrrqKn|j#|ƒ} | dkr«tjd||j    ƒƒPn| j$ƒ}|j%|ƒ}|r|jƒjƒ| jƒkrðqKn|jƒj&ƒ| j&ƒkrqKqn|tjkr9t j!ƒ r9qKnt'j(|t)j*| |ƒ}|p]|}qKW|S(Ns###´¦Àí³¡¾°buff²éÕÒÍæ¼Òʧ°Üis MapBuff_%d.%st OnMapBuffDelis"ProcessMapEffect skill = %s ²»´æÔÚ((+RRztGetMapIDt    GetPosObjRwRxRR[R’RµR´RRktIsAlivetDoMapBuffClearRRRt
GetOwnerIDt GetOwnerTypeRR”t
HaveEffectRRlRmRRtDeleteBuffByIndextClearBuffEffectBySkillIDRtDef_SkillID_ManorFlagAreatGameLogic_ManorWartCanManorWarAtkRtGetSkillBySkillIDR2tFindBuffRt    BuffSkilltAddBuffNoRefreshStateR&t    bfMapBuff(RRtgameMapt    curPosObjtmapBuffManagert effectCountt processResultRít curRoleBufftownerIDt    ownerTypeR®R t effectIndexRsRqtcallFunctgameDataRrRLtfindBufftisOK((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR–sz   
 
              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(RRRRRR”RkRlRmRRRR[R´(    Rt buffManagert    buffIndexR
R R6RsRqR7((siE:\SnxxServerCode\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(R>tInitMapBuffStateRRRRRR”RkRlRmRRRR[(
Rt playerControlR;R<R
R R6RsRqR7((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR    s$
     cCst||ƒdS(N(t__DoEquip_AddBuff(RtcurEquip((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytRefreshSkillBuffByEquip<    s c
CsItjƒ}|jƒ}|jƒ}xtd|jƒƒD]}|j|ƒ}|dkraq:n|j|ƒ}|dkrœtj    d||j
ƒƒq:nt j }|j ƒ}    |    |kr|tjkrÒq:n|    |dkr÷|tjkr÷q:n|    |dkr|tjkrq:qntj|tj|dgd|ƒq:WdS(Nis'×°±¸´¥·¢¼¼ÄÜ,ÎïÆ·±í´íÎó curSkillID = %sit    buffOwner(RRRHtGetPlayerRidehorseStateRtGetAddSkillCountt GetAddSkillR)R[RéR¤RtDef_Skill_TypeID_SpeedR2R&RIt    prsNormaltprsRunR+R,t bfEquipBuff(
RRAR8t playerVehiclet
houseStateRíR©R t
houseSkillt curSkillType((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR@G    s,               &cCsdS(N((RtsameEffectCanWork((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__RefreshSkillBuffEffectr    scCst|||||ƒdS(N(t__CallBuffFunc(Rt 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(RjRRRt GetAttrMapIDR/R&R0tFBCommontGetRecordMapIDRRkRlRmtCalcBuffEffAttrtGetValue( RtobjDetelRSRTRURrR
t    buffSkillt    attrMapIDRsRt((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRQ™    s     'c Csø|jƒ}|dkrdSt||ƒ}tjtd|dfƒ}|sQdSttj|ƒ|ƒƒ}    |    dkr|dStjtd|dfƒ}
|
r¸|
||||    |ƒn<tjtd|dfƒ}
|
rô|
||||    |ƒndS(Nis
Buff_%s.%st GetCalcTypeiÿÿÿÿt
OnCalcBufft OnCalcBuffEx(RmtGetBuffModuleSuffixRRRtGetAttrListIndexRt IsBaseEffect( R\RsRSRUt    plusValueR
Rtt moduleSuffixt skillTypeFuncRíR7((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRZ±    s"   cCs[|jƒ}|tjkr8tjj|dggƒdStj|ƒ\}}|rW|S|S(NRi(RmRtCalcBuffLevel_1tDef_Skill_BuffEffectOutsideRR+tFindBuffAttrByEffectID(RsRURtt
suffixNametattrList((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRbР   s
 cCs!|dkrdStj||fS(Niÿÿÿÿ(R[RtDef_CalcAttrIndexDict(t    isBaseEfftcalcType((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRcà    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R)Rt GetBuffTypetGetBuffManagerByBuffTypeRjRkRlRmtGetEffectFromSkillIDtGetEffectOwnerIDtGetEffectOwnerTypeR‰tsortRtDeleteEffectByIndex( RøR®R4R5R Rpt    buffTupleRteffectIndexListRrRsRt((siE:\SnxxServerCode\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(NiRr((RRR)RRsRtRjRkRlRmRvRwRuR2R‰RxRRy(RøRLR4R5R RpRzRR{RrRsRtt 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(NiRr(    RjRkRlRmRuR‰RxRRy(RøRt skillIDListR{RrRsRt((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearBuffEffectBySkillIDListL
s  
 cCs(x!|D]\}}t||ƒqWdS(N(RP(tbuffRefreshListRt    canPileUp((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__DoRefreshBuffm
scCsp|jƒ}x]t|jƒƒD]I}|j|ƒ}|s@qn|jƒ}|sXqntj||ƒqWdS(N(tGetActionBuffManagerRRRRRtSetObjActState(RøtactionBuffManagerRrR
R]((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffer_ActionStatex
s  cCsO|jƒtjkrdSt|ƒ}|dkr5dStjtj||ƒdS(Ni(RgRtDef_SkillFuncType_FbSPSkilltGetMaxHPAttrValueR>tCalcAttrDict_TypeRàtDef_Effect_MaxHP(RR…RStvalue((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcFabaoSPSkillAttr
s  c    Cs­|jƒ}xêt|jƒƒD]Ö}|j|ƒ}|dkrFqnt|||ƒtj|ƒskqn|jƒt    j
t    j t    j t    j gkr›qnxWt|jƒƒD]C}|j|ƒ}|jƒ}|dkráq®nt|||ƒq®WqWtj|ƒ}xž|D]–}|j|ƒ}|dkr6qntj|ƒsKqnxWt|jƒƒD]C}|j|ƒ}|jƒ}|dkr‘q^nt|||ƒq^WqWdS(Ni(RERjRR‚R[RŒRR•RgRRhR‡R³tDef_SkillFuncType_GWSkillRkRlRmRZR˜tFindUsePassiveSkillsR(    RRSR„RrR…RsRttskillsR®((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcPassiveAttr_Effect
s@        cCsxˆttjtjƒD]q}tj||ƒ}|dkr@qn|tjtjtjtj    gkrjqn|d}t
||||ƒqWdS(Ni(( RR&tbfBufftbtBufMaxRRtt bfProcessBufftbfProcessDeBuffR-RJRV(RRSRTRpRzR;((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RVtCalcNoLineEffecttChangeNPCAttrInNoLineEffectListRtCalcAttr_BattleNolinetCalcLineEffecttChangeNPCAttrInLineEffectListtCalcAttr_Battle(R]R€RrRSRt    canPileup((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffer_NPCBattleEffect8 scCsdS(N((R]((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffer_NPCBaseEffectM scCsR|s
dSt||||||jƒ|ƒt||||||jƒ|ƒdS(N(t__SkillTrigSkilltGetSkillEnhance1tGetSkillEnhance2(R4RuR RRsRt((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoLogic_UseEnhanceSkillq s
""cCs*|s
dSt|||||||ƒdS(N(R (R4RuR tskillEnhanceIDRRsRt((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytSkillTrigSkill sc Cs5|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[RçR@tGetNPC_Is_GateRØRËt GetHurtTypeRtDef_HurtType_MisstGetSkillOfSeriesHitRatet    CanHappentDef_MaxRateValueRR\R( R4RutuseSkillRsRtR¤RtskillLVtexSkillt
resultListtrate((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR  s( &
 
0    cCs|jƒ}|S(N(t GetHappenRate(R4RuR¯tbaseRate((siE:\SnxxServerCode\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(
R/R&R0R RtDef_UseSkillTag_SelfRXRRRp(R4R¯RuR((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR¦ s
 
 
 
cCs“|jƒ}|dkr%d|}nd||jƒf}d||f}tjt|ƒ}|dkr|dkrtjd||fƒn|S(NisSkillModule_%ss%s_%ds%s.%st SkillAttacks'¹¥»÷¼¼ÄÜÎļþ²»¿Éµ÷Óà%s fuctionName: %s(RˆR2RRRR[R’(R tpyNameExtfuncNametatkTypetpyNamet fuctionNameR7((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillCallFuncByName) s   cCsdS(N((R4RuR­R((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoLogic_SkillAttackDieE sc    CsÀtj|tj|jƒƒs"dS|r[tj|ƒtjkr[|jƒ}|j    ƒ}nt
j |ƒr¤tj |j ƒkrˆ|}nt|||||||ƒSt|||||||ƒS(N(RRRtDef_Obj_ActState_ServerSkillRRÉRRQRwRxRR3tDef_SkillType_LstPlsBuffAtkRƒt__DoLogic_AddBufft__DoLogic_UseAttackSkill(R4RuR RRnRotisEnhanceSkill((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR\k s         cCsetj|ƒrItj|jƒkr-|}nt|||||||ƒSt|||||||ƒS(N(RR3RR¾RƒR¿RÀ(R4RuR RRnRoRÁ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytTrigger_UseSkillƒ s
    c     Csl|jƒ}tj|ƒ}|rDtj||||jƒƒ rDdStj|jƒtj    ƒscdS|r—|j
ƒtj kr—t j ||ƒs—dSntjƒt|ddƒ}    |    dkrç|    ||||||ƒ}
|
s<dSnUt|||ƒ} tj||||| |ƒ}
|
dk    r<t|||||ƒn|rFtStj|tj|ƒ|||ƒtS(Nt    SkillBufftUseBuffi(R2RRstCheckCanAddBuffRRR«R²RR¬RƒtDef_Debuff_ListRitCheckCanAttackTagRËtClearSkillHurtListR»R[tGetAddBuffValueR+t    DoAddBufft AddBuffOverRtDoAttackSuccessExRçR@( R4RuR RÁRRnRoRLt skillBuffTypeR7RtaddBuffValueList((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR¿› s. %
 
"cCsš|jdƒ}|jƒ}t|ƒ}i}|jƒtjkratjtd|dfƒ}ntjtd|dfƒ}|s‡gS|||||ƒS(NisBuffProcess_%s.%st CalcBuffValues
Buff_%s.%s(    RlRmRbRƒRR÷RRR(R4R RuRsRqRftchangeBuffValueDictR7((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RkRlRRRRmR[RƒRR÷RRR£RÆRØR/R&R'RÖt
NPCControltAddObjToAngryListt GetSkillAngryRËtDoLogic_AttackResult(
R4RuR RRÁR6RsR7t    skillTypet
npcControl((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRË s&"  cCs>t|ddƒ}|dkr"tS||||||||ƒS(NRµR8(R»R[R(R4RuR RRnRoRÁR7((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÀ4 s 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 SetAutoSkillR 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.pytGetLVUpCostZhenQid scCs|s
dS|jƒS(Ni(t
GetExAttr2(R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetHappenStatej scCs
|jƒS(N(t
GetExAttr3(R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRWq scCs
|jƒS(N(t
GetExAttr4(R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR½x scCs
|jƒS(N(t
GetExAttr5(R ((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR¾~ scCs
|jƒS(N(tGetMP(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(    R2RRR‡RRR‘RéRÞ(R RÈt
maxSkillLVR¨tskillLvRªtskillLvUpNeedZhenQi((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillLVUpCostZhenQiˆ s    c Csft}|jƒdkrÒ| rÒtjƒj|jƒƒ}|rgt||||tƒr^tn|}ntjƒj|jƒƒ}|r¯t||||tƒr¦tn|}nt    j
|t j |ƒ||ƒ|St |ƒ}t|ƒ}    tjd||jƒfƒ|tjkrâ|jƒtjkrÄ|r”|jƒtjkr”|jƒtjkr”tj|ƒ}
|
r”|
jƒ|jƒkr”d}q”nt|||||jƒ|j ƒd|ƒ}qQt||||d|ƒ}no|tj!krP|r|jƒ|j ƒ} } n|jƒ|j ƒ} } t||||| | d|ƒ}n|    tj"kr°t#j$|ƒsrtSt#j%|ƒ} | dkr‘tS| }|j&ƒdkr°tSn|    tj'tj(gkr6|sätjdƒt}qQ|jƒtj)krt*||||ƒ rt}qQt||||d|ƒ}nt||||d|ƒ}tjd|ƒ|S(NisÊͷű»¶¯´¥·¢¼¼ÄÜ : %s- %sRÁs$ÅäÖÃÁ˿ɹ¥»÷Ä¿±ê£¬µ«Ã»Ä¿±ê¾Í²»Èô¥·¢s´¥·¢½á¹û-----------%s(+RR RRR)R¡tUsePassiveTriggerSkillRR¢RtSetSkillRemainTimeR>tGetReduceSkillCDPerRR RR”RRQRƒRRR/R&R'RÔRÕRÖtGetNpcObjOwnerDetailRµR[R\RwRxRpRÚRÛRÜRÞR@tDef_UseSkillTag_NoneR´R0RT(R4R ttargetRRÁRtskill1tskill2R~t    affectTagRÙRR‚Rá((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRé s\''  0 0$          cCsštjdƒ}d}|jƒ}xrtd|jƒƒD][}|j|ƒ}|dkr^q7n|jƒ}||kr|q7n|jƒ}||7}q7W|S(NtSuccessSkillIDListi(    t ReadChConfigtGetEvalChConfigRERRR‚R[R2R(RtsuccessSkillIDListt
allSkillLVR„RrR…RLR®((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt GetAllSkillLVì s     (’RR&RRR+R>RRËRšR—RÖRRiRúRIRQRR'RÛRóR¡tChItemtPlayerActivityRàR´RJRçRR3R²RŒRR˜RÉRXRR·t    ImportAllRRR    R
R RRRRRR.R6RNRXR^RhR`RbRZRRaRÈRÇRóRôRýR
R%R RR8R7R;R:RBRARRSRURTRYR_RbRdR`R]RWR[RxR€R†R­R[R’R±RûRÿRRRRRR RRBR@RRPRVRQRZRbRcRqR%R}RR‚R†RŒRR•RžRŸR£R¥R RªR¦R»R¼R\RÂR¿RÉRËRÀRÛRÝRÞRàRWR½R¾RˆRèRéR÷(((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt<module> s"                                                                                )        }                          L    #    !        G    J            <    O    '             I            L            G    +            H                                     *    C        Z b    P            7                d        #         + 
          $    $    !                  / l        $    ]         $        &I        3                                      O