hzr
2018-08-09 4b1349442d9288d19f63bf78634080aa1398d26b
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
W–Y[c@sõddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl!Z!ddl"Z"ddl#Z#ddl$Z$ddl%Z%ej&ddƒej&ddƒej&ddƒe"j'ƒa(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.„ZPd/„ZQd0„ZRd1„ZSd2„ZTd3„ZUd4„ZVd5„ZWd6„ZXd7„ZYd8„ZZdd9„Z\d:„Z]d;„Z^d<„Z_d=„Z`d>„Zad?„Zbd@„ZcdA„ZddB„ZedC„ZfdD„ZgdE„ZheidF„Zjgd dG„Zkgd dH„Zld d ddI„Zmd dJ„ZndK„ZoddL„ZpdM„ZqdN„ZrdO„ZsdP„ZtdQ„ZudR„ZvgdS„ZwdT„ZxdU„ZydddV„ZzdddW„Z{dX„Z|dY„Z}dZ„Z~d[„Zd\„Z€ddeid]„Zd d eid^„Z‚d d d_„Zƒd`„Z„da„Z…ddeidb„Z†dc„Z‡dd„Zˆde„Z‰df„ZŠdg„Z‹dh„ZŒdi„Zdj„ZŽeidk„Zdl„ZdS(miÿÿÿÿ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((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt ReloadSkill@s
cCs$tjƒd}tj|dƒdS(NsScript\Skill\GameBuffsR(RRRR(RR((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt
ReloadBuffLscCs|jƒdS(Ni
(tGetTag(tcurSkill((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillAffectTagUscCs|jƒdS(Ni
(R (R ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillFireAim\scCstS(N(tg_ClientHurtDict(((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetClientHurtDictascCs#tjƒa|jtjdƒdS(Ni(t collectionst OrderedDictRtSetDictRt Def_PlayerKey_ClientMaxHurtValue(t    curPlayer((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearClientHurtDictes cCstj||fgƒS(N(Rtget(tobjIDtobjType((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetClientHurtByObjmscCs:tj||fgƒ}|s"tS|ddkr6tStS(Nii(RRtFalsetTrue(RRtresult((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytisClientHurtValuers 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((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytInitClientHurtDict~s&
 "&cCsj|jƒtjkrtS|jƒ}|rY|jƒ|jƒkrYtj|ƒsYtSntƒsftSt    S(N(
tGetGameObjTypeR&t    gotPlayerRt GetUseSkilltGetSkillTypeIDRtIsBuffRR(tattackerR t useSkillData((sh.\ProjectSServer\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((sh.\ProjectSServer\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((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__CheckSkillUseItem9s  cCs2|jƒrt|d||ƒSt||||ƒS(N(t GetCastTimetNPCUseSkillWarntNonetDoLogic_UseSkill(tcurNPCR R((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt NPCUseSkillNs cCsÐt||||ƒstSt|||ƒ|jƒrHt||||ƒSt||||ƒ}|rÌ|jtjƒdkrÌ|j    |jtjƒ|jtj
ƒƒ|j tjdƒ|j tj
dƒn|S(Ni( tNPCCanUseSkillTagRtNPCAttackMovePosRZR[R]t GetDictByKeyRtDef_NPC_Dict_AtkMovePosXt    ChangePostDef_NPC_Dict_AtkMovePosYR(R^R-R RR((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytNPCUseSkillTag[s c
Csh|jtjƒdkrdStj|tjƒ}|s;dS|jdƒ}|dkr|jƒ}|jƒ}xft    |ddƒD]R}t
j ||||jƒ|jƒƒ\}}    t
j ƒj ||    ƒsÒqnPqWt
j ƒj ||    ƒs>||}}    q>n<|r|jƒn    |jƒ}|r2|jƒn    |jƒ}    |jtj|ƒ|jtj|    ƒdS(Niiiÿÿÿÿ(RbRRcRtGetSkillEffectByEffectIDtDef_Skill_Effect_AttackMovetGetEffectValuetGetPosXtGetPosYtxrangeRtPosInLineByDistExtGetMaptCanMoveRRe(
R^R-R t skillEffecttmoveDistttagPosXttagPosYtdisttposXtposY((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRaos*   -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_Summont    GetEffectRitmaxRtGetSummonCountByNPCIDtmint
GetAtkTypetappendRjRkt
GetAtkDisttDef_DropItemDistRltGameMaptGetEmptyPlaceInAreaRgtDef_Skill_Effect_RandWarntrangetrandomtsampleR!RbRcReRtErrLogtGetNPCIDt
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 canSummonCnttatkDisttit    resultPosRptfromXttoXtfromYttoYt
warnPointstxtyRuRvtskillIDtposInfo((sh.\ProjectSServer\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‘RbRRŠR‹t GetActionTicktChPyNetSendPackttagMCNPCSkillWarntCleartGetIDR$RˆtNPCIDtSkillIDtWarnTimet
RemainTimet WarnPosListRŒRlttagMCNPCSkillWarnPosRŽtPosXRtPosYR~R!t
WarnPosCntt    NotifyAllt    GetBuffert    GetLength(    R^Rt warnSkillIDR“t
remainTimetsendPacktposCntR›tpos((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR’Ûs0  
                 cCsÄt|ƒ}t||ƒrtSt|||ƒr5tStj|ƒ}|tjkro|jƒtj    krot
Snt j ||||ƒd}|tj kr­|tjkr­tS|tjkrÀt
StS(Ni(R tIsToPetOwnerSkillRtIsSummomToOwnerSkillt
SkillShellRtDef_UseSkillTag_CanAttackPlayerR/R&R0Rt
BaseAttacktGetTagRelationtDef_UseSkillTag_FriendNPCtType_Relation_FriendtType_Relation_Enemy(R^R-R RtskillTagtcurSkillUseTagtrelation((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR`þs cCsd|tjtjgkrtS|jƒtjkr5tStjtj    |ƒ}|sTtSt
j ||ƒS(N( RtDef_UseSkillTag_FriendtDef_UseSkillTag_SummonMasterRtGetGameNPCObjTypeR&t
gnotSummont    NPCCommontGetSummonNPCOwnerR'Rt    IsSameObj(R^RÆR-towner((sh.\ProjectSServer\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^RÆtpetOwner((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR½0s# 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(!RtGetPlayerManagertGetPlayerByIndexRnt GetMapFBTypeR%R&R0tCountt
NPCPosListR$R«tGameObjR@RoR²R³tStopMoveRdtLogR|R„R(R'R)RtDef_NPCType_Ogre_SupertfbtNulltGetDistRjRkR¦R‘(
tindext
clientDataRRtmapTypeR¼tcountR›tnpcPostnpcObj((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt NPCBeatBackwsB! 
 $0
cCsdS(N((RäRåR((sh.\ProjectSServer\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(R1RRgRtDef_Skill_Effect_PowerPartRbtDef_PlayerKey_PowerPartCountRRitSetPrepareStateR>tChangePlayerActionR&tpaAttackt PlayerStatet ProcessFight(RRR t    hasEffect((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytSkillPrepareEndBs " 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è?( tabsRtDebugLogRRbt SetMoveCountRtGetPlayerAttackTickt GetMoveCountR>tGetAtkIntervalt SetAttackTickR(Rt
clientTickRtDef_Attack_DelayTickterrCnt((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCheckClientAttackTickSs*     #-   c Cs'tjƒj|ƒ}|jƒ}|j}|j}|j}|j}|j}    |j    }
|j
} |j ƒj |ƒ} | sdSt ||
|ƒs¨t|| tjƒdS|jƒtjkrÎt|| ƒdStj|tj| jƒƒsýt|| ƒdSt|| | ƒs t|| ƒdSt|||| ƒsFt|| ƒ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    WorldTicktHurtListREtFindSkillBySkillIDRRHRtSkillFail_AtkIntervalRAR&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_PosYRrRsRýR*R ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt
UseSkillExŽsX                                     
  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(RRGRRgRRìRAR&t paPreparingtGetPrepareStatetpstSkillt GetPrepareIDR‰RiR|tGetPlayerActionTickRbtDef_PlayerKey_PowerPartTimeRRíRôtintRûtDef_AtkSpeedBaseRZR>tSync_PrepareBeginR(RR RRçRótcnttcastTime((sh.\ProjectSServer\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º((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRHs cCstjtƒ||ƒdS(N(Rt GetPsycoFunct__Func_UseSkill(RäR((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytUseSkillsc    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‰RjRkRERR‡R RRRR    R
R>R RR RRRRARðRïRñRò(    RäRRRRºRRRR ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR+%s2         
cCstjtƒ||ƒdS(N(RR*t__Func_UseSkillTag(RäR((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt UseSkillTagnsc 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
GetTagTypetGetTagIDRjRkRERRRRR    R
R R>R RR RRRRRRARðRïRñRò( RäRRRRºRt pack_TagTypet
pack_TagIDRRR ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR.ws8           
  cCstjtƒ||ƒdS(N(RR*t__Func_UseSkillGround(RäR((sh.\ProjectSServer\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‰RjRkt
GetTagPosXt
GetTagPosYRERR‡RRRR    R
R R>R RR RRRRRRARðRïRñRò( RäRRRRºRRRt pack_TagPosXt pack_TagPosYR ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR5Ì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tGetAreaTypeByMapPosRjRktgatSafeR‰RtDef_SkillID_SomersaulttPlayerRefreshPosR(RRuRvR ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR s'    cCs€t|||ƒsdSt|ƒtjkr/dS|jƒtjkrit|d|||jƒ|j    ƒƒSt||||ƒSdS(N(
RORRtDef_UseSkillAim_NoneRwtDef_CanAttackSkill_ListR]R\RjRk(RR R((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoPlayerUseSkill>s%cCsOt|||ƒs#tjdƒdSt||||ƒs<dSt||||ƒS(Ns#DoPlayerUseSkillTag, ²»Âú×ãʹÓÃÌõ¼þ(RORR÷tCheckTag_DoPlayerUseSkillTagR](RR R-R((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoPlayerUseSkillTagQs  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/RRnRÛRâR)RáR‡(RR R-RRÇ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRHgsH                cCs)tj||ƒrtSt||||ƒS(N(RRÏRRT(RR-R R((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRM¯scCsXtj||ƒrtStj||||ƒ}|dtjkrEtSt||||ƒS(Ni(RRÏRRÁRÂRRÄRV(RR-R RRÈ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRS½s cCsctj||||ƒstStj||||ƒ}|dtjkrKtStj||dƒtS(Nii(    RÁt GetCanAttackRRÂRRÅRt AttackCommontPlayerAttackFailSysMessanage(RR-R RRÈ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRVÔscCs)|jƒ|krtSt||||ƒS(N(R/RRV(RR-R RR((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRXêscCsGtj||||ƒ}|dtjkr/tStj||dƒtS(Nii(RÁRÂRRÄRR[R\R(RR-R RRÈ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRTùs
cCsc|jƒtjkrtStj||ƒr/tS|jƒ}|jƒ}| sU| rYtS||kS(N(R/R&R0RRRÏRt    GetTeamID(RR-tcurPlayerTeamIDt curTagTeamID((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRQ s  cCs,|jƒtjkrdStj|ƒdkS(Ni(R/R&R0RÞR@(RR-((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRK!scCs,|jƒtjkrdStj|ƒdkS(Ni(R/R&R0RÞR@(RR-((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRO-sc    Cs‡t|||ƒsdSt|ƒtjkr/dSd}|jƒ}|jƒ}|rhtj||ƒ}nt    ||||d|d|ƒS(Nt tagRoundPosXt tagRoundPosY(
RORRtDef_UseSkillAim_GroundR\tGetUseSkillTagIDtGetUseSkillTagTypeRR(R](RR tdestXtdestYRtdefendert useSkillTagIDtuseSkillTagType((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoPlayerUseSkillGround;s  c
Csí|}|jƒ}t|ƒ}t|ƒ}|tjkr|tjkrXt|||ƒS|tjkrzt    ||||ƒSt    ||||ƒSnY|tj
kré|tj ks½|tjkrÍt |||ƒS|tj kr>tj|ƒsütjdƒtStj|ƒ}|dkr5tjd|jƒjƒtS|}n˜|tjkrÖtj|ƒsmtjdƒtStjtj|ƒ}    |    dkr¦tjtj
|ƒ}    n|    dkrÍtjd|jƒƒdS|    }nt||||ƒStS(Ns!¸ÃNPC·Ç³èÎÎÞ·¨»ñµÃÖ÷ÈËÊͷż¼ÄÜs$³èÎ%s£©¶ÔÖ÷ÈËÊͷż¼ÄÜ£¬ÕÒ²»µ½Ö÷ÈËs#¸ÃNPC·ÇÕÙ»½ÊÞ£¬ÎÞ·¨»ñµÃÖ÷ÈËÊͷż¼ÄÜs&ÕÙ»½ÊÞ£¨%s£©¶ÔÖ÷ÈËÊͷż¼ÄÜ£¬ÕÒ²»µ½Ö÷ÈË(R/R RR&R0RRERGtDef_ST_CanPlayerUseSkillRIR'tDef_ST_CanNPCUseSkillR_RÑRÒRÓRR‡RRÕR\RÖR×RÊRÍt IsSummonNPCRÎRˆRf(
R4RgR RR-tattackerObjTypetskillAffectTagtskillAimRØtcurSummonOwner((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytObjAutoUseSkillesF                cCsa|jƒ}|jƒ}xBtd|jƒƒD]+}|j|ƒ}|jƒ|kr.tSq.WtS(Ni(R2RER„t GetSkillCounttGetSkillByIndexRR(RtskillRMt skillManagerR›tcurPlayerSkill((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCheckPlayerHasSkill¨s  c CsWtjƒ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|ƒntjƒj||jƒƒtj|ƒj|jƒ|ƒ|jdƒ|jƒtjkrétj 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 LVUPSkillByIDt GetFuncTypetDef_SkillFuncType_HorseSkillRt isPassiveAttrR>tRefreshHorseAttrtPassiveBuffEffMngtGetPassiveEffManagertRegistPassiveEfftRefreshSkillFightPowerExt SetRemainTimet WorldNotifytGetNametDataRecordPacktDR_LearnORUPSkillRàt GetSkillNamet GetPlayerIDR( RäRRtpackRMRvR t
curSkillLVtbeforeFightPowert    upSkillLvt
curSkillIDtupSkill((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytPlayerSkillLvUpÄsH          
 
$ " ,cCsX|jƒ}||jƒkr2tj|dƒtS|jƒ}t||||d|ƒS(NRyi(R~R€R>R?RR2Rƒ(RR R˜R•tcurSkillTypeID((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoLogic_PlayerSkillLVUpCosts   cCstjƒj||ƒ}|dkrHtjd||f|jƒƒtSt||ƒs[tS|jƒt    j
kr‰t j ||ƒs‰tSn|j ƒ}tj|ƒ}||krÄtj|dƒtS|jƒ}|jƒ}    g}
t|ƒ} t|ƒ} | dkro| dkro|jƒjtjƒ} tj| | | ƒ\}}
|sotjd|jƒ| fƒdSni|d6|d6|t    j6}|    r¶tj|||    t    j|ƒ r¶tS|
rØtj || |
| tƒn|dkrtj!|||ƒtj|d|gƒnt"S(NsÎÞ´ËÉý¼¶¼¼ÄÜ = %s,%stGeRen_jin_671654is=DoLogic_PlayerSkillLvUpCost() up skill(%s) item(%s) no enoughR­tSkillLVtGeRen_jin_474794(#RRR‚R\R‡R«RtCheckLearnSkillConditionR…RR†R>tCheckLearnHorseSkilltGetLVUpCostExpR>tGetPlayerTotalExpR?tGetLVUpCostMoneyTypetGetLVUpCostMoneytGetUpLVCostItemIdtGetUpLVCostItemNumtGetItemManagertGetPackR&RTRRtGetItem_FromPack_ByIDR÷R‰tDef_Cost_Reason_SonKeytPayMoneytDef_Cost_SkillLvUpt
ReduceItemtSetPlayerTotalExpR(RR›R˜R—R R™tskillLvUpNeedExptcurExptskillLvUpNeedMoneyTypetskillLvUpNeedMoneyCountt itemIndexListt
costItemIdt costItemNumtitemPacktisEnoughtinfoDict((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRƒ+sF            % c Cs(|jƒ|jƒkr3tjd|jƒƒtS|jƒ}t}d}|jƒ}|jƒ}xŽtd|j    ƒƒD]w}|j
|ƒ}|dkr qyn|j ƒ}    |j ƒ}
|    |krà|
|krà| ràt}n||j ƒ7}qyW|dkr$| r$tj|d||gƒtStS(Ns'Íæ¼ÒµÈ¼¶²»¹»Éý¼¶ curSkill.GetLVReq()=%sitGeRen_wjr_717982(tGetLVtGetLVReqRR÷RREtGetLearnSkillReqtGetLearnSkillLVR„RsRtR\R2R~RR>R?( RR RvthasLearnSkillReqtnumLearnSkillPointtcurSkillLearnReqtlvCurSkillLearnReqR›RuRMtlvSkill((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR ƒs*           cCs#|jƒ}|tjkrtStS(N(RwRtDef_LstBuff_ListRR(tcurObjt curBuffSkillt buffSkillType((sh.\ProjectSServer\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_ProcessPersistBuffRRgtDef_Skill_Effect_BuffTickR\RiR!RûR"(RÆRÅtbuffTickt    curEffect((sh.\ProjectSServer\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ÍtGetProcessIntervaltSetProcessIntervaltGetEffectCountRyt GetEffectIDRt GetExecFuncRt__DoProcessBuff_PlayerKey( RÅt    buffStateRtbuffStateCountR›tcurBuffRÆtprocessBuffTickteffIndexRÌt curEffectIDt
processStrtcallBuffProcessFunc((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__ProcessCurPersistBuffìs2    cCsdS(N((RÅR((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR×#scCstt||jƒ|ƒt||jƒ|ƒ|jƒtjkrpt||jƒ|ƒt||jƒ|ƒndS(N(RàtGetProcessBuffStatetGetProcessDeBuffStateR/R&R0t GetEquipBufft
GetMapBuff(RÅR((sh.\ProjectSServer\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((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytProcessMapBuffOs 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 ²»´æÔÚ((+RRntGetMapIDt    GetPosObjRjRkRäR\R‡R«RªRRÔtIsAlivetDoMapBuffClearRRÏRÐt
GetOwnerIDt GetOwnerTypeRÑR‰t
HaveEffectR„RyRÕRÖRtDeleteBuffByIndextClearBuffEffectBySkillIDRtDef_SkillID_ManorFlagAreatGameLogic_ManorWartCanManorWarAtkRtGetSkillBySkillIDR2tFindBuffR~t    BuffSkilltAddBuffNoRefreshStateR&t    bfMapBuff(RRtgameMapt    curPosObjtmapBuffManagert effectCountt processResultRät curRoleBufftownerIDt    ownerTypeR¤R t effectIndexRÌteffectIDtcallFunctgameDataR›RMtfindBufftisOK((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRêcsz   
 
              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‰RÔRyRÕRRÖRR\Rª(    Rt buffManagert    buffIndexRÚR RRÌRR    ((sh.\ProjectSServer\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‰RÔRyRÕRRÖRR\(
Rt playerControlR RRÚR RRÌRR    ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRëæs$
     cCst||ƒdS(N(t__DoEquip_AddBuff(RtcurEquip((sh.\ProjectSServer\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R<tGetPlayerRidehorseStateR„tGetAddSkillCountt GetAddSkillRúR\RàR“RtDef_Skill_TypeID_SpeedR2R&R=t    prsNormaltprsRunRüRýt bfEquipBuff(
RRR
t playerVehiclet
houseStateRäR˜R t
houseSkillt curSkillType((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR    s,               &cCsdS(N((RØtsameEffectCanWork((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__RefreshSkillBuffEffect?    scCst|||||ƒdS(N(t__CallBuffFunc(RØt curObjDetailt allAttrListtcalcEffectIDListt    calcLevel((sh.\ProjectSServer\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(RlRÏRÐRÑt GetAttrMapIDR/R&R0tFBCommontGetRecordMapIDRîRÔRyRÕtCalcBuffEffAttrtGetValue( RØtobjDetelR%R&R'R›RÚt    buffSkillt    attrMapIDRÌRÝ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR#f    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(RÕtGetBuffModuleSuffixRRÖRtGetAttrListIndexRt IsBaseEffect( R.RÌR%R't    plusValueRÚRÝt moduleSuffixt skillTypeFuncRäR    ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR,~    s"   cCs[|jƒ}|tjkr8tjj|dggƒdStj|ƒ\}}|rW|S|S(NRi(RÕRtCalcBuffLevel_1tDef_Skill_BuffEffectOutsideRRütFindBuffAttrByEffectID(RÌR'RÝt
suffixNametattrList((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR4    s
 cCs!|dkrdStj||fS(Niÿÿÿÿ(R\RtDef_CalcAttrIndexDict(t    isBaseEfftcalcType((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR5­    s cCsdS(N((RtbuffType((sh.\ProjectSServer\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 GetBuffTypetGetBuffManagerByBuffTypeRlRÔRyRÕtGetEffectFromSkillIDtGetEffectOwnerIDtGetEffectOwnerTypeR~tsortRtDeleteEffectByIndex( RÅR¤RRR RBt    buffTupleRØteffectIndexListR›RÌRÝ((sh.\ProjectSServer\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(NiRD((RRRúRRERFRlRÔRyRÕRHRIRGR2R~RJRRK(RÅRMRRR RBRLRØRMR›RÌRÝt buffSkillIDR/((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearBuffEffectBySkillTypeIDõ    s0 
   cCsÈg}xtd|jƒƒD]v}|j|ƒ}|jƒ}|dkrOqn|j|ƒ|j|ƒ|j|ƒg|kr…qn|j|ƒqW|jdt    ƒx|D]}|j
|ƒq­WdS(NiRD( RlRÔRyRÕRGRHRIR~RJRRK(RÅRØt skillIDListRMR›RÌRÝ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytClearBuffEffectBySkillIDList
s     cCs(x!|D]\}}t||ƒqWdS(N(R"(tbuffRefreshListRØt    canPileUp((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt__DoRefreshBuff4
scCsp|jƒ}x]t|jƒƒD]I}|j|ƒ}|s@qn|jƒ}|sXqntj||ƒqWdS(N(tGetActionBuffManagerR„RÏRÐRÑRtSetObjActState(RÅtactionBuffManagerR›RÚR/((sh.\ProjectSServer\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 gkr‹qnxWt|j ƒƒD]C}|j|ƒ}|jƒ}|dkrÑqžnt|||ƒqžWqWtj|ƒ}xž|D]–}|j|ƒ}|dkr&qÿntj|ƒs;qÿnxWt|j ƒƒD]C}|j|ƒ}|jƒ}|dkrqNnt|||ƒqNWqÿWdS(Ni(RERlRsRtR\RR‡R…RtDef_SkillFuncType_FbSkilltDef_SkillFuncType_FbSPSkilltDef_SkillFuncType_GiftSkilltDef_SkillFuncType_GWSkillRÔRyRÕR,R‰tFindUsePassiveSkillsR(    RR%RvR›RwRÌRÝtskillsR¤((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcPassiveAttr_EffectV
s>        cCsxˆttjtjƒD]q}tj||ƒ}|dkr@qn|tjtjtjtj    gkrjqn|d}t
||||ƒqWdS(Ni(( R„R&tbfBufftbtBufMaxRRFt bfProcessBufftbfProcessDeBuffRþRR((RR%R&RBRLR ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffers_Effect„
s      
cCsŠtj|tƒ}gtdƒD] }i^q}x$|D]\}}t|||ƒq8Wtj||tjƒt    j
||tj ƒ|S(Ni( RÍtGetNPCBuffRefreshListRR„R(tCalcNoLineEffecttChangeNPCAttrInNoLineEffectListRtCalcAttr_BattleNolinetCalcLineEffecttChangeNPCAttrInLineEffectListtCalcAttr_Battle(R^RRR›R%RØt    canPileup((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffer_NPCBattleEffectð
scCsdS(N((R^((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytCalcBuffer_NPCBaseEffect scCsR|s
dSt||||||jƒ|ƒt||||||jƒ|ƒdS(N(t__SkillTrigSkilltGetSkillEnhance1tGetSkillEnhance2(R4RgR RReRf((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytDoLogic_UseEnhanceSkill) s
""cCs*|s
dSt|||||||ƒdS(N(Ro(R4RgR tskillEnhanceIDRReRf((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytSkillTrigSkillE sc Cs[|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ƒstStjd|jƒ|jƒ|
fƒt||||||tƒS(Ns.¶ÔÏó = %s, ÕÒ²»µ½¸½¼Ó¼¼ÄÜID = %s, skillLv = %siis1µ±Ç°¼¼ÄÜ = %s,´¥·¢¸½¼Ó¼¼Äܳɹ¦ = %s,´¥·¢¼¸ÂÊ = %s(R~RRR‚R‡R«tCheeckTrigSkillandTagR\RÞR@tGetNPC_Is_GateRÏRÁt GetHurtTypeRtDef_HurtType_MisstGetSkillOfSeriesHitRatet    CanHappentDef_MaxRateValueRRàR’R]R( R4RgtuseSkillReRfRsRtskillLVtexSkillt
resultListtrate((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRoU s* &
 
0&cCs|jƒ}|S(N(t GetHappenRate(R4RgR~tbaseRate((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRy² s     cCs˜|jƒtjkrGt|ƒtjtjgkr=t|fSt|fSt|ƒtjtjgkrot|fSt|ƒtj    krŽt|fSt|fS(N(
R/R&R0R RtDef_UseSkillTag_SelfRLRRRb(R4R~RgR((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRuÅ 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 fuctionNameR    ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillCallFuncByNameé s   cCsdS(N((R4RgR|R((sh.\ProjectSServer\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¤tj |j ƒkrˆ|}nt|||||||ƒSt|||||||ƒS(N(RRRtDef_Obj_ActState_ServerSkillR
R¿RRERjRkRR3tDef_SkillType_LstPlsBuffAtkRwt__DoLogic_AddBufft__DoLogic_UseAttackSkill(R4RgR RR`RatisEnhanceSkill((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR]+ s         cCsetj|ƒrItj|jƒkr-|}nt|||||||ƒSt|||||||ƒS(N(RR3RRRwRŽR(R4RgR RR`RaR((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytTrigger_UseSkillD 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(R2RREtCheckCanAddBuffR~RRzRRR{RwtDef_Debuff_ListR[tCheckCanAttackTagRÁtClearSkillHurtListRŠR\tGetAddBuffValueRüt    DoAddBufft AddBuffOverRtDoAttackSuccessExRÞR@( R4RgR RRR`RaRMt skillBuffTypeR    RtaddBuffValueList((sh.\ProjectSServer\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(    RyRÕR4RwRRÄRRÖR(R4R RgRÌRR8tchangeBuffValueDictR    ((sh.\ProjectSServer\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„RÔRyRRÖRRÕR\RwRRÄR RRrR•RÏR/R&R'RÍt
NPCControltAddObjToAngryListt GetSkillAngryRÁtDoLogic_AttackResult(
R4RgR RRRRÌR    t    skillTypet
npcControl((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyRš s&"  cCs>t|ddƒ}|dkr"tS||||||||ƒS(NR„R,(RŠR\R(R4RgR RR`RaRR    ((sh.\ProjectSServer\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º((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt SetAutoSkill s cCs
|jƒS(N(t
GetExAttr1(R ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetConnectSkillID scCsdS(Ni((R ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetLVUpCostZhenQi% scCs|s
dS|jƒS(Ni(t
GetExAttr2(R ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetHappenState+ scCs
|jƒS(N(t
GetExAttr3(R ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR)2 scCs
|jƒS(N(t
GetExAttr4(R ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR¦9 scCs
|jƒS(N(t
GetExAttr5(R ((sh.\ProjectSServer\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((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pytGetSkillLVUpCostZhenQiF s    c
Csýt}|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ƒ|tjkry|jƒtjkr[t|||||jƒ|jƒd|ƒ}qèt||||d|ƒ}no|tjkrç|rª|jƒ|jƒ}
} n|jƒ|jƒ}
} t|||||
| d|ƒ}n|    tjkrGtj|ƒs    tStj|ƒ} | dkr(tS| }|jƒdkrGtSn|    tjtj gkrÍ|s{tjdƒt}qè|j!ƒt"j#kr¯t$||||ƒ r¯t}qèt||||d|ƒ}nt||||d|ƒ}tjd|ƒ|S(NisÊͷű»¶¯´¥·¢¼¼ÄÜ : %s- %sRs$ÅäÖÃÁ˿ɹ¥»÷Ä¿±ê£¬µ«Ã»Ä¿±ê¾Í²»Èô¥·¢s´¥·¢½á¹û-----------%s(%RR RRRúRptUsePassiveTriggerSkillRRqRtSetSkillRemainTimeR>tGetReduceSkillCDPerRR R÷R‰RRERwRFR]RjRkRbRÑRÒRÓRÕR\R@tDef_UseSkillTag_NoneRƒR/R&R0RH( R4R ttargetRRRtskill1tskill2Rpt    affectTagRuRvRØ((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyR·[ sT''  0$          cCsštjdƒ}d}|jƒ}xrtd|jƒƒD][}|j|ƒ}|dkr^q7n|jƒ}||kr|q7n|jƒ}||7}q7W|S(NtSuccessSkillIDListi(    t ReadChConfigtGetEvalChConfigRER„RsRtR\R2R~(RtsuccessSkillIDListt
allSkillLVRvR›RwRMR}((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt GetAllSkillLV¤ s     (‘RR&RRRüR>RRÁRiRfRÍRR[RñRJRRRRøRÒRÀRtChItemtSkillDataBoosttPlayerActivityt ShareDefinetPlayerGodWeapont PlayerSuccesstPlayerMagicWeaponR>RÞR…R'R¨RRR‰R¿R*t    ImportAllRRR    R
R RRRRRR.R6RORYR_RfRaR[R’R`R¾R½RêRëRôRRRRHR,R+R/R.R6R5R RGRIRHRMRSRVRXRTRQRKRORjRrRxRšRœR\RƒR RÈRÍRàR×RåRìRêRñRëRRRR"R(R#R,R4R5RCRöRORQRTRXR_RdRmRnRrRtRoRyRuRŠR‹R]R‘RŽR˜RšRRªR¬R­R¯R)R¦R§R¶R·RÄ(((sh.\ProjectSServer\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Skill\SkillShell.pyt<module> s                                                                                  )        |                      L    #            G    J            ;    N    '             I            L            G    +            H                                     *    C        Q     X    D            7                d        #         + 
          $    $                 . l        $    ]        $        &I        3                                  I