hch
2018-11-24 f20790fdb4470c4e114a461a9a86f00bf0c9901e
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
r'ø[c@sïddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    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&d„Z'd„Z(d„Z)d    „Z*d
„Z+d „Z,d „Z-d „Z.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d„Z6d„Z7d„Z8d„Z9d„Z:d„Z;d„Z<d„Z=d„Z>d„Z?d„Z@d „ZAd!d"„ZBd#„ZCd$„ZDd%„ZEd&„ZFd'„ZGd(„ZHd)„ZId*„ZJd+„ZKd,„ZLd-„ZMd.„ZNd/„ZOd0„ZPd1„ZQd2„ZRd3„ZSd4„ZTd5„ZUd6„ZVd7„ZWd8„ZXdd9„ZZd:„Z[d;„Z\d<„Z]d=„Z^d>„Z_d?„Z`d@„ZadA„ZbdB„ZcdC„ZddD„ZedE„ZfegdF„Zhgd!dG„Zigd!dH„Zjd!d!ddI„Zkd!dJ„ZldK„ZmddL„ZndM„ZodN„ZpdO„ZqdP„ZrdQ„ZsdR„ZtdS„ZugdT„ZvdU„ZwdV„ZxdddW„ZydddX„ZzdY„Z{dZ„Z|d[„Z}d\„Z~d]„Zddegd^„Z€d!d!egd_„Zd!d!d`„Z‚da„Zƒdb„Z„ddegdc„Z…dd„Z†de„Z‡df„Zˆdg„Z‰dh„ZŠdi„Z‹dj„ZŒdk„Zdl„ZŽegdm„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((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt ReloadSkill>s
cCs$tjƒd}tj|dƒdS(NsScript\Skill\GameBuffsR(RRRR(RR((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt
ReloadBuffJscCs|jƒdS(Ni
(tGetTag(tcurSkill((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillAffectTagSscCs|jƒdS(Ni
(R (R ((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillFireAimZscCstS(N(tg_ClientHurtDict(((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetClientHurtDict_scCs#tjƒa|jtjdƒdS(Ni(t collectionst OrderedDictRtSetDictRt Def_PlayerKey_ClientMaxHurtValue(t    curPlayer((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearClientHurtDictcs cCstj||fgƒS(N(Rtget(tobjIDtobjType((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetClientHurtByObjkscCs:tj||fgƒ}|s"tS|ddkr6tStS(Nii(RRtFalsetTrue(RRtresult((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytisClientHurtValueps 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((sZ.\\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((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytIsPlayerUseSkill¥s     cCsl|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||ƒdkrBtj|dƒt||tjƒtStj||ƒrhtj|dƒtStS(NtPlay_Attack_NullitPK_chenxin_612029tUseMagicLost02tUseMagicLost09tUseSkillCDLimitt FB_Skill_Lost(tGetGMForbidenFightt PlayerControlt
NotifyCodetGetHPRtGetPlayerActionRtDef_PlayerCanAttackStateRtisPassiveSkillR2t CheckSkillJobtGetSkillManagertFindSkillBySkillTypeIDtRefreshSkillRemainTimetAttackFailNotifyt SkillFail_CDtFBLogictOnForbidUseSkillR(RR RtcurPlayerActiont skillTypeIDt playerSkill((sZ.\\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((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__CheckSkillUseItem;s  cCs2|jƒrt|d||ƒSt||||ƒS(N(t GetCastTimetNPCUseSkillWarntNonetDoLogic_UseSkill(tcurNPCR R((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt NPCUseSkillPs 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_AppointNPCtGetAppointNPCBySkillEffectRtNPCCanUseSkillTagtNPCAttackMovePosRZR[R]t GetDictByKeytDef_NPC_Dict_AtkMovePosXt    ChangePostDef_NPC_Dict_AtkMovePosYR(R^R-R RtskillTagR((sZ.\\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((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRaws      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ÿÿÿÿ(RdRReRtGetSkillEffectByEffectIDtDef_Skill_Effect_AttackMoveRotGetPosXtGetPosYRkRtPosInLineByDistExtGetMaptCanMoveRRg(
R^R-R t skillEffecttmoveDistttagPosXttagPosYtdisttposXtposY((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRc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(-RZRt GetSkillTypeRtDef_SkillType_SummonRmRotmaxRtGetSummonCountByNPCIDtmint
GetAtkTypetappendRxRyt
GetAtkDisttDef_DropItemDistRktGameMaptGetEmptyPlaceInAreaRvtDef_Skill_Effect_RandWarntrangetrandomtsampleR!RdReRgRtErrLogtGetNPCIDt
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 canSummonCnttatkDistRst    resultPosR}tfromXttoXtfromYttoYt
warnPointstxtyR‚RƒtskillIDtposInfo((sZ.\\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RdRR–R—t GetActionTicktChPyNetSendPackttagMCNPCSkillWarntCleartGetIDR$R”tNPCIDtSkillIDtWarnTimet
RemainTimet WarnPosListR˜RkttagMCNPCSkillWarnPosRštPosXR›tPosYRŠR!t
WarnPosCntt    NotifyAllt    GetBuffert    GetLength(    R^Rt warnSkillIDRŸt
remainTimetsendPacktposCntRstpos((sZ.\\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 RRhtcurSkillUseTagtrelation((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRbs" cCsd|tjtjgkrtS|jƒtjkr5tStjtj    |ƒ}|sTtSt
j ||ƒS(N( RtDef_UseSkillTag_FriendtDef_UseSkillTag_SummonMasterRtGetGameNPCObjTypeR&t
gnotSummont    NPCCommontGetSummonNPCOwnerR'Rt    IsSameObj(R^RhR-towner((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÉ?scCs†|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^RhtpetOwner((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÈSs# 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(!RtGetPlayerManagertGetPlayerByIndexR{t GetMapFBTypeR%R&R0tCountt
NPCPosListR$R¶tGameObjR@R|R½R¾tStopMoveRftLogRˆRR(R'R)RtDef_NPCType_Ogre_SupertfbtNulltGetDistRxRyR±R(
tindext
clientDataRRtmapTypeRÇtcountRstnpcPostnpcObj((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt NPCBeatBackšsB! 
 $0
cCsdS(N((RîRïR((sZ.\\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(R1RRvRtDef_Skill_Effect_PowerPartRdtDef_PlayerKey_PowerPartCountRRotSetPrepareStateR>tChangePlayerActionR&tpaAttackt PlayerStatet ProcessFight(RRR t    hasEffect((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytSkillPrepareEndes " cCsFd}t||ƒ|kr-tjdƒtS||jdƒdkrf|jdƒ|jd|ƒn||jƒkrµtjdƒ|jƒ}|j|dƒ|dkrµtSn||jƒt    j
|ƒd    kr5tjd
||jƒt    j
|ƒd fƒ|jƒ}|j|dƒ|dkr5tSn|j |ƒt S( Niˆstick Îó²î¹ý´óÔò¹ýÂË > 5000t    CheckTicki`êis¿Í»§¶Ëtick£¬Ð¡ÓڼǼÔòΪÒì³£iigffffffæ?s # ¹¥»÷¼ä¸ô¹ý¿ì %s - %s < %sgè?( tabsRtDebugLogRRdt SetMoveCountRtGetPlayerAttackTickt GetMoveCountR>tGetAtkIntervalt SetAttackTickR(Rt
clientTickRtDef_Attack_DelayTickterrCnt((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCheckClientAttackTickvs*     #-   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
RHRtSkillFail_AtkIntervaltSync_ClientTickRAR&RútOperControlManagertIsObjCanDoActiontDef_Obj_ActState_ClientSkilltGetSkillOfSeriesR.t __CheckPlayerUseSkill_ClientPackR>tSetIsNeedProcessRtClearUseSkillRect SetUseSkillt GetSkillDatatSetUseSkillPosXtSetUseSkillPosYR!tSetUseSkillTagTypeR%tSetUseSkillTagIDR$tSetAttackTargetPosRZtOnPrepareSkillRùRûRü( RîRïRRt curPlayerIDt pack_SkillIDt    pack_PosXt    pack_PosYRR€RR*R ((sZ.\\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(RRGRRvRRöRAR&t paPreparingtGetPrepareStatetpstSkillt GetPrepareIDR•RoRˆtGetPlayerActionTickRdtDef_PlayerKey_PowerPartTimeRR÷RþtintRtDef_AtkSpeedBaseRZR>tSync_PrepareBeginR(RR RRñRýtcnttcastTime((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR s**-##icCs/tjƒ}|jƒ|_tj||ƒdS(N(R³ttagMCAttackFailR•R¸t NetPackCommont SendFakePack(RR treasonRÅ((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRH's cCstjtƒ||ƒdS(N(Rt GetPsycoFunct__Func_UseSkill(RîR((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytUseSkill@sc    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•RxRyRERR“RRRRRRR>RRRRRRRARúRùRûRü(    RîRRR!RÅR"R#R$R ((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR6Is2         
cCstjtƒ||ƒdS(N(RR5t__Func_UseSkillTag(RîR((sZ.\\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
GetTagTypetGetTagIDRxRyRERRRRRRRR>RRRRRRRRRARúRùRûRü( RîRRR!RÅR"t pack_TagTypet
pack_TagIDR#R$R ((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR9›s8           
  cCstjtƒ||ƒdS(N(RR5t__Func_UseSkillGround(RîR((sZ.\\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•RxRyt
GetTagPosXt
GetTagPosYRERR“RRRRRRR>RRRRRRRRRARúRùRûRü( RîRRR!RÅR"R#R$t pack_TagPosXt pack_TagPosYR ((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR@ð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tGetAreaTypeByMapPosRxRytgatSafeR•RtDef_SkillID_SomersaulttPlayerRefreshPosR(RR‚RƒR ((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR7s'    cCs€t|||ƒsdSt|ƒtjkr/dS|jƒtjkrit|d|||jƒ|j    ƒƒSt||||ƒSdS(N(
RORRtDef_UseSkillAim_NoneR„tDef_CanAttackSkill_ListR]R\RxRy(RR R((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoPlayerUseSkillbs%cCsOt|||ƒs#tjdƒdSt||||ƒs<dSt||||ƒS(Ns#DoPlayerUseSkillTag, ²»Âú×ãʹÓÃÌõ¼þ(RORRtCheckTag_DoPlayerUseSkillTagR](RR R-R((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoPlayerUseSkillTagus  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/RR{RåRìR)RëR“(RR R-RRÑ((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRS‹sH                cCs)tj||ƒrtSt||||ƒS(N(RRÙRR_(RR-R R((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRXÓscCsXtj||ƒrtStj||||ƒ}|dtjkrEtSt||||ƒS(Ni(RRÙRRÌRÍRRÏRa(RR-R RRÒ((sZ.\\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Ò((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRaøscCs)|jƒ|krtSt||||ƒS(N(R/RRa(RR-R RR((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRcscCs_tj||||ƒ}|dtjkr/tS|jƒtjkr[tj||dƒnt    S(Nii(
RÌRÍRRÏRRfRgRhRiR(RR-R RRÒ((sZ.\\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((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR\1s  cCs,|jƒtjkrdStj|ƒdkS(Ni(R/R&R0RèR@(RR-((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRVGscCs,|jƒtjkrdStj|ƒdkS(Ni(R/R&R0RèR@(RR-((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRZSsc    Cs‡t|||ƒsdSt|ƒtjkr/dSd}|jƒ}|jƒ}|rhtj||ƒ}nt    ||||d|d|ƒS(Nt tagRoundPosXt tagRoundPosY(
RORRtDef_UseSkillAim_GroundR\tGetUseSkillTagIDtGetUseSkillTagTypeRR(R](RR tdestXtdestYRtdefendert useSkillTagIDtuseSkillTagType((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoPlayerUseSkillGroundas  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&R0RRPRRtDef_ST_CanPlayerUseSkillRTR'tDef_ST_CanNPCUseSkillR_RÛRÜRÝRR“RRßR\RàRáRÔR×t IsSummonNPCRØR”Ri(
R4RtR RR-tattackerObjTypetskillAffectTagtskillAimRâtcurSummonOwner((sZ.\\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(RtskillRMt skillManagerRstcurPlayerSkill((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCheckPlayerHasSkillÎs  c Cs‚tjƒj|ƒ}|jƒtjkr.dStjƒ}|jƒ}|j    ƒ}|j
|ƒ}|dkr|d}d}n>|j ƒ}|j ƒ}||jƒkrºtj|dƒdS|d}    |sÐ|n    |jƒ}
tjƒj||    ƒ} | sþdSt|||
|    |ƒsdS|j|
ƒ|j
|ƒ}|jƒtjkrjtj|ƒrjtj|ƒnGtj|ƒr•tj|ƒ} | jƒntjƒj||jƒƒtj|ƒj|jƒ|ƒ|j dƒ|jƒtjkrtj!dd|j"ƒ|
gƒntj|d|
|j ƒgƒ|j ƒ}t#j$||
|ƒtj%d|j&ƒ|j ƒf|j'ƒƒt(S(NitUseMagicLost16it GetMountSkilltGeRen_admin_31379s#Éý¼¶¼¼ÄÜÃû = %s ³É¹¦, µ±Ç°µÈ¼¶ = %s()RRãRäRARt$Def_Player_Cannot_LearnLvSkill_StateR&tIPY_CAddSkillPointR•RERFR\t
GetSkillLVt GetFightPowert GetSkillMaxLVR>R?t GetGameDatatFindSkillByTypetDoLogic_PlayerSkillLvUpCostt LVUPSkillByIDRftDef_SkillFuncType_HorseSkillRt isPassiveAttrRItRefreshHorseAttrtRefreshPlayerAttrStatetPassiveBuffEffMngtGetPassiveEffManagertRegistPassiveEfftRefreshSkillFightPowerExt SetRemainTimet WorldNotifytGetNametDataRecordPacktDR_LearnORUPSkillRêt GetSkillNamet GetPlayerIDR( RîRRtpackRMRƒR t
curSkillLVtbeforeFightPowert    upSkillLvt
curSkillIDtupSkillt
curControl((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytPlayerSkillLvUpêsN          
 
$  " ,cCshtjƒj||ƒ}|dkrHtjd||f|jƒƒtSt||ƒs[tS|jƒt    j
kr‰t j ||ƒs‰tSn|jƒt    j kr´tj|ƒs´tSn|jƒ}tj|ƒ}||krïtj|dƒtS|jƒ}|jƒ}    g}
t|ƒ} t|ƒ} | dkrš| dkrš|jƒjtjƒ} tj| | | ƒ\}}
|sštjd|jƒ| fƒdSni|d6|d6|t    j 6}|    rátj!|||    t    j"|ƒ rátS|
rtj#|| |
| tƒn|dkr<tj$|||ƒtj|d|gƒn|jƒt    j krdtj%|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¶RtCheckLearnSkillConditionRfRR’RItCheckLearnHorseSkilltDef_SkillFuncType_GiftSkilltPlayerGreatMastertGetGreatMasterFreeSkillPointtGetLVUpCostExpR>tGetPlayerTotalExpR?tGetLVUpCostMoneyTypetGetLVUpCostMoneytGetUpLVCostItemIdtGetUpLVCostItemNumtGetItemManagertGetPackR&RTRRtGetItem_FromPack_ByIDRR•tDef_Cost_Reason_SonKeytPayMoneytDef_Cost_SkillLvUpt
ReduceItemtSetPlayerTotalExptAddGreatMasterSkillPointByLVR(RtcurSkillTypeIDR¥R¤R R¦tskillLvUpNeedExptcurExptskillLvUpNeedMoneyTypetskillLvUpNeedMoneyCountt itemIndexListt
costItemIdt costItemNumtitemPacktisEnoughtinfoDict((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRAsP            % 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!("tGetLVtGetLVReqRRRREtGetLearnSkillReqtGetLearnSkillLVtGetLearnSkillPointReqR2t IpyGameDataPYtGetIpyGameDataNotLogt GetTalentTypeRkR€RR\R‹Rt    GetSeriesR>R?tGetStateSkillLVtGetSTRt ShareDefinetDef_Effect_STRtGetPHYtDef_Effect_PHYtGetCONtDef_Effect_CONtGetPNEtDef_Effect_PNER“R(RR RƒthasLearnSkillReqtnumLearnSkillPointtcurSkillLearnReqtlvCurSkillLearnReqtlearnSkillPointReqt
needSeriestneedSeriesPointRÀtipyDatat curTalentTypeRsR‚RMtlvSkillt stateSkillLVtneedBaseAttrIDtneedBaseAttrValuet baseAttrDicttcurBaseAttrValue((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR¬žs\            *    cCs#|jƒ}|tjkrtStS(N(R„RtDef_LstBuff_ListRR(tcurObjt curBuffSkillt buffSkillType((sZ.\\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_ProcessPersistBuffRRvtDef_Skill_Effect_BuffTickR\RoR,RR-(RòRñtbuffTickRt((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetProcessBuffTicks     #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øtGetProcessIntervaltSetProcessIntervalRlRmRnRt GetExecFuncRt__DoProcessBuff_PlayerKey( Rñt    buffStateRtbuffStateCountRstcurBuffRòtprocessBuffTickteffIndexRtRut
processStrtcallBuffProcessFunc((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__ProcessCurPersistBuffs2    cCsdS(N((RñR((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRJscCstt||jƒ|ƒt||jƒ|ƒ|jƒtjkrpt||jƒ|ƒt||jƒ|ƒndS(N(RtGetProcessBuffStatetGetProcessDeBuffStateR/R&R0t GetEquipBufft
GetMapBuff(RñR((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytProcessPersistBuffas cCs]||jtjƒtjtjkr*dS|jtj|ƒt||ƒrYt|ƒndS(N(t GetTickByTypeRtTYPE_Player_Tick_MapBufftTYPE_Player_Tick_Timet SetTickByTypet__ProcessMapEffecttProcessPlayerAreaState(RR((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytProcessMapBuffvs 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 ²»´æÔÚ((+RR{tGetMapIDt    GetPosObjRxRyR R\R“R¶RµRRltIsAlivetDoMapBuffClearRRúRût
GetOwnerIDt GetOwnerTypeRüR•t
HaveEffectRRmRnRÿRtDeleteBuffByIndextClearBuffEffectBySkillIDRtDef_SkillID_ManorFlagAreatGameLogic_ManorWartCanManorWarAtkRŽtGetSkillBySkillIDR2tFindBuffR‹t    BuffSkilltAddBuffNoRefreshStateR&t    bfMapBuff(RRtgameMapt    curPosObjtmapBuffManagert effectCountt processResultRît curRoleBufftownerIDt    ownerTypeR¯R t effectIndexRtRrtcallFunctgameDataRsRMtfindBufftisOK((sZ.\\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(R RRúRûRüR•RlRmRnRRÿRR\Rµ(    Rt buffManagert    buffIndexRR R/RtRrR0((sZ.\\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>tInitMapBuffStateR RRúRûRüR•RlRmRnRRÿRR\(
Rt playerControlR4R5RR R/RtRrR0((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR     s$
     cCst||ƒdS(N(t__DoEquip_AddBuff(RtcurEquip((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytRefreshSkillBuffByEquip0    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ŽRGtGetPlayerRidehorseStateRtGetAddSkillCountt GetAddSkillR"R\RêR RtDef_Skill_TypeID_SpeedR2R&RHt    prsNormaltprsRunR$R%t bfEquipBuff(
RR:R1t playerVehiclet
houseStateRîR¥R t
houseSkillt curSkillType((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR9;    s,               &cCsdS(N((RtsameEffectCanWork((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__RefreshSkillBuffEffectf    scCst|||||ƒdS(N(t__CallBuffFunc(Rt curObjDetailt allAttrListtcalcEffectIDListt    calcLevel((sZ.\\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(RkRúRûRüt GetAttrMapIDR/R&R0tFBCommontGetRecordMapIDRRlRmRntCalcBuffEffAttrtGetValue( RtobjDetelRLRMRNRsRt    buffSkillt    attrMapIDRtRu((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRJ    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(RntGetBuffModuleSuffixRRÿRtGetAttrListIndexRt IsBaseEffect( RURtRLRNt    plusValueRRut moduleSuffixt skillTypeFuncRîR0((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRS¥    s"   cCs[|jƒ}|tjkr8tjj|dggƒdStj|ƒ\}}|rW|S|S(NRi(RnRtCalcBuffLevel_1tDef_Skill_BuffEffectOutsideRR$tFindBuffAttrByEffectID(RtRNRut
suffixNametattrList((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR[Ä    s
 cCs!|dkrdStj||fS(Niÿÿÿÿ(R\RtDef_CalcAttrIndexDict(t    isBaseEfftcalcType((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR\Ô    s cCsdS(N((RtbuffType((sZ.\\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 GetBuffTypetGetBuffManagerByBuffTypeRkRlRmRntGetEffectFromSkillIDtGetEffectOwnerIDtGetEffectOwnerTypeRŠtsortRtDeleteEffectByIndex( RñR¯R-R.R Rit    buffTupleRteffectIndexListRsRtRu((sZ.\\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(NiRk((RRŽR"RRlRmRkRlRmRnRoRpRnR2RŠRqRRr(RñRMR-R.R RiRsRRtRsRtRut buffSkillIDRV((sZ.\\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(NiRk(    RkRlRmRnRnRŠRqRRr(RñRt skillIDListRtRsRtRu((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearBuffEffectBySkillIDList@
s  
 cCs(x!|D]\}}t||ƒqWdS(N(RI(tbuffRefreshListRt    canPileUp((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__DoRefreshBuffa
scCsp|jƒ}x]t|jƒƒD]I}|j|ƒ}|s@qn|jƒ}|sXqntj||ƒqWdS(N(tGetActionBuffManagerRRúRûRüRtSetObjActState(RñtactionBuffManagerRsRRV((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffer_ActionStatel
s  cCsO|jƒtjkrdSt|ƒ}|dkr5dStjtj||ƒdS(Ni(RfRtDef_SkillFuncType_FbSPSkilltGetMaxHPAttrValueR>tCalcAttrDict_TypeRÙtDef_Effect_MaxHP(RR„RLtvalue((sZ.\\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(RERkR€RR\R…RR“RfRRgR€R®tDef_SkillFuncType_GWSkillRlRmRnRSR–tFindUsePassiveSkillsR(    RRLRƒRsR„RtRutskillsR¯((sZ.\\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&tbfBufftbtBufMaxRRmt bfProcessBufftbfProcessDeBuffR&RCRO(RRLRMRiRsR4((sZ.\\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ROtCalcNoLineEffecttChangeNPCAttrInNoLineEffectListRtCalcAttr_BattleNolinetCalcLineEffecttChangeNPCAttrInLineEffectListtCalcAttr_Battle(R^RyRsRLRt    canPileup((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffer_NPCBattleEffect, scCsdS(N((R^((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffer_NPCBaseEffectA scCsR|s
dSt||||||jƒ|ƒt||||||jƒ|ƒdS(N(t__SkillTrigSkilltGetSkillEnhance1tGetSkillEnhance2(R4RtR RRrRs((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoLogic_UseEnhanceSkille s
""cCs*|s
dSt|||||||ƒdS(N(R™(R4RtR tskillEnhanceIDRRrRs((sZ.\\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( R4RttuseSkillRrRsRRtskillLVtexSkillt
resultListtrate((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR™‘ s( &
 
0    cCs|jƒ}|S(N(t GetHappenRate(R4RtR¨tbaseRate((sZ.\\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_SelfRWRRRo(R4R¨RtR((sZ.\\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‰R2RRÿRR\R“(R tpyNameExtfuncNametatkTypetpyNamet fuctionNameR0((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillCallFuncByName s   cCsdS(N((R4RtR¦R((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoLogic_SkillAttackDie9 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ÊRRPRxRyRR3tDef_SkillType_LstPlsBuffAtkR„t__DoLogic_AddBufft__DoLogic_UseAttackSkill(R4RtR RRmRntisEnhanceSkill((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR]_ s         cCsetj|ƒrItj|jƒkr-|}nt|||||||ƒSt|||||||ƒS(N(RR3RR·R„R¸R¹(R4RtR RRmRnRº((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytTrigger_UseSkillw 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(R2RRltCheckCanAddBuffR‹RR¤R«RR¥R„tDef_Debuff_ListRhtCheckCanAttackTagRÌtClearSkillHurtListR´R\tGetAddBuffValueR$t    DoAddBufft AddBuffOverRtDoAttackSuccessExRèR@( R4RtR RºRRmRnRMt skillBuffTypeR0RtaddBuffValueList((sZ.\\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(    RmRnR[R„RRðRRÿR(R4R RtRtRrR_tchangeBuffValueDictR0((sZ.\\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RlRmRRÿRRnR\R„RRðRRRœR¿RÙR/R&R'R×t
NPCControltAddObjToAngryListt GetSkillAngryRÌtDoLogic_AttackResult(
R4RtR RRºR/RtR0t    skillTypet
npcControl((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRÄõ s&"  cCs>t|ddƒ}|dkr"tS||||||||ƒS(NR®R7(R´R\R(R4RtR RRmRnRºR0((sZ.\\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Å((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt SetAutoSkillF s cCs
|jƒS(N(t
GetExAttr1(R ((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetConnectSkillIDQ scCsdS(Ni((R ((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetLVUpCostZhenQiX scCs|s
dS|jƒS(Ni(t
GetExAttr2(R ((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetHappenState^ scCs
|jƒS(N(t
GetExAttr3(R ((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRPe scCs
|jƒS(N(t
GetExAttr4(R ((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRµl scCs
|jƒS(N(t
GetExAttr5(R ((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR¶r scCs
|jƒS(N(tGetMP(R ((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRv 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((sZ.\\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•RRPR„RQR/R&R'RÕRÖR×tGetNpcObjOwnerDetailR¶R\R]RxRyRoRÛRÜRÝRßR@tDef_UseSkillTag_NoneR­R0RS(R4R ttargetRRºRtskill1tskill2R}t    affectTagRÚR‚RƒRâ((sZ.\\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ƒRsR„RMR§((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt GetAllSkillLVà s     (‘RR&RRR$R>RRÌR“RR×RRhRûRJRRRR RÜRìRtChItemtPlayerActivityRÙR¯RIRèR‘R2R³RRR–RÊRQRÓt    ImportAllRRR    R
R RRRRRR.R6RORYR_RiRaRcR[RžRbRÉRÈRôRõRþR
R%R RHR7R6R:R9RAR@RRRRTRSRXR^RaRcR_R\RVRZRwRR…R¨R\RR¬RôRøRRR RRRRR;R9RRIRORJRSR[R\RjRRvRxR{RR…R‰RŽR—R˜RœRžR™R£RŸR´RµR]R»R¸RÂRÄR¹RÔRÖR×RÙRPRµR¶RRáRâRð(((sZ.\\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt<module> s                                                                                )        |                          L    #    !        G    J            ;    O    '             I            L            G    +            H                                     *    C        W ]    P            7                d        #         + 
          $    $    !                  / l        $    ]         $        &I        3                                      O