cehua_wcy
2018-08-28 961d1c5e6f2d25aee75af3d484ff7ef3df1373b3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
[B…[c@sÇddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl!Z!ddl"Z"ddl#Z#ddl$Z$ddl%Z%ddl&Z&ddl'Z'ddl(Z(ddl)Z)ddl*Z*ddl+Z+ddl,Z,ddl-Z-ddl.Z.ddl/Z/ddl0Z0ddl1Z1ddl2Z2ddl3Z3ddl4Z4ddl5Z5ddl6Z6ddl7Z7ddl8Z8ddl9Z9ddl:Z:ddl;Z;ddl<Z<ddl=Z=ddl>Z>ddl?Z?ddl@Z@ddlAZAddlBZBddlCZCddlDZDddlEZEddlFZFddlGZGddlHZHddlIZIddlJZJddlKZKddlLZLddlMZMddlNZNddlOZOejPƒaQdZRdZSd„ZTeUdd„ZVd„ZWgd„ZXgdddgd    „ZYgd
„ZZgd „Z[gd „Z\gd „Z]d„Z^gd„Z_gggggd„Z`gdddd„Zadddd„Zbd„Zcd„Zdd„Zed„Zfd„Zgd„Zhdd„Ziejd„Zkd„Zld„Zmd„Znd„Zod„Zpd „Zqd!„Zrd"„Zsd#„Ztd$„Zud%„Zvd&„ZweUd'„Zxd(„Zyd)„Zzd*„Z{d+„Z|d,„Z}d-„Z~d.„Zd/„Z€d0„Zd1„Z‚d2„Zƒd3„Z„d4„Z…d5„Z†d6„Z‡d7„Zˆd8„Z‰d9„ZŠd:„Z‹d;„ZŒd<„Zd=„ZŽddd>„Zgd?„ZeUejd@„Z‘dA„Z’dB„Z“ddCeUddD„Z”dE„Z•dF„Z–dG„Z—ddCeUddH„Z˜ddI„Z™ešdJ„Z›dK„ZœdL„ZdM„ZždN„ZŸej ejdO„Z¡dP„Z¢dQ„Z£dR„Z¤dS„Z¥dT„Z¦dU„Z§ddV„Z¨dW„Z©eUdX„ZªeUdY„Z«ej¬iddeUdZ„Z­d[„Z®d\„Z¯dd]„Z°d^„Z±d_„Z²d`„Z³ej´ieUeUda„Zµdb„Z¶dc„Z·dd„Z¸de„Z¹df„Zºdg„Z»dh„Z¼di„Z½dj„Z¾dk„Z¿dl„ZÀdm„ZÁdn„ZÂdofdp„ƒYZÃdqfdr„ƒYZÄds„ZÅdt„ZÆdu„ZÇdv„ZÈeUdw„ZÉeUdx„ZÊdy„ZËdz„ZÌd{„ZÍejd|„ZÎd}„ZÏd~„ZÐd„ZÑd€„ZÒd„ZÓd‚„ZÔdƒ„ZÕd„„ZÖd…„Z×d†„ZØešd‡„ZÙdˆ„ZÚdddCd‰„ZÛdŠ„ZÜd‹„ZÝdŒ„ZÞd„ZßdŽ„Zàd„Zád„Zâd‘„Zãd’„Zäd“„Zåd”„Zæd•„Zçd–„Zèd—„Zéd˜„Zêd™„Zëdš„Zìd›„Zídœ„Zîdd„ZïejeUdždCdŸ„ZðdždCd „Zñd¡„Zòd¢„Zód£„Zôd¤„Zõd¥„Zöd¦„Z÷d§„Zød¨„Zùd©„Zúdª„Zûd«„Züd¬„Zýd­„Zþd®„Zÿd¯„Zd°„Zd±„Zd²„Zd³„Zd´„Zdµ„Zd¶„Zd·„Zd¸„Z    d¹„Z
dº„Z d»„Z d¼„Z d½„Zd¾„Zd¿„ZdÀ„ZdÁ„Zd„ZdÄZdĄZdńZdƄZdDŽZdȄZdɄZdʄZd˄Zd̄Zd̈́Zd΄ZdτZ dЄZ!dфZ"d҄Z#dӄZ$dԄZ%dՄZ&dքZ'dׄZ(d؄Z)dلZ*dڄZ+dۄZ,d܄Z-d݄Z.dބZ/d߄Z0dà„Z1dá„Z2dâ„Z3dã„Z4dä„Z5då„Z6dæ„Z7dç„Z8dè„Z9dé„Z:dê„Z;dë„Z<dì„Z=dí„Z>dî„Z?dï„Z@dð„ZAdñ„ZBdò„ZCdó„ZDdô„ZEdõ„ZFdö„ZGd÷„ZHdø„ZIdù„ZJdú„ZKdû„ZLdü„ZMdý„ZNdþ„ZOdÿ„ZPd„ZQd„ZRd„ZSd„ZTd„ZUd„ZVd„ZWd„ZXd„ZYd    „ZZd
„Z[d „Z\d „Z]d „Z^d„Z_d„Z`d„Zad„Zbd„Zcd„Zdd„Zed„Zfd„Zgd„Zhd„Zid„Zjd„Zkd„Zld„Zmd„Znd„Zod„Zpd „Zqd!„Zrd"„Zsd#„Ztd$„Zud%„Zvd&„Zwd'„Zxd(„Zyd)„Zzd*„Z{d+„Z|d,„Z}d-„Z~d.„Zd/„Z€d0„Zd1„Z‚d2„Zƒd3„Z„d4„Z…d5„Z†d6„Z‡d7„Zˆd8„Z‰d9„ZŠd:„Z‹d;„ZŒd<„Zd=„ZŽd>„Zd?„Zd@„Z‘dA„Z’dB„Z“dC„Z”dD„Z•dE„Z–dF„Z—dG„Z˜dH„Z™dI„ZšdJ„Z›dK„ZœdL„ZdM„ZždN„ZŸdO„Z dP„Z¡dQ„Z¢dR„Z£dS„Z¤dT„Z¥dU„Z¦dV„Z§dW„Z¨dX„Z©dY„ZªdZ„Z«d[„Z¬d\„Z­d]„Z®d^„Z¯d_„Z°d`„Z±da„Z²db„Z³dc„Z´dd„Zµde„Z¶df„Z·dg„Z¸dh„Z¹di„Zºdj„Z»dk„Z¼eUeUdl„Z½eUeUdm„Z¾dn„Z¿doZÀdp„ZÁdq„ZÂdr„ZÃds„ZÄdt„ZÅdu„ZÆddv„ZÇddw„ZÈdS(xiÿÿÿÿNiic
Cs·tjƒjƒ}d}t||ƒ|kr\tjd||f|jƒƒ|jƒtS||jdƒdkr•|j    dƒ|j
d|ƒn|j ƒ}||krôtjd|j ƒƒ|j ƒ}|j    |dƒ|dkrôtSntj|jƒ|jƒ||ƒ}tj||t|jƒƒƒd    }    ||    kr³tjd
||jƒ|jƒ||g|    ||fƒ|j ƒ}|j    |dƒ|dkr³tSntS( NiˆsZPlayerMoveCheckClientWorldTick -- ·þÎñÆ÷tick %s-¿Í»§¶Ë%sʱ¼äÏà²î¹ý´ó£¬¿ÉÄÜÒòÍøÂçÒýÆð£¬À­»Øt    CheckTicki`êis/---clientWorldTick < lastMoveTick: %s, TickÌ«Âýiiis>¾àÀë²î%s ×ø±êS/C:%s---ÑéÖ¤Á½´Îtick¼ä¿ÉÄܲúÉúµÄ×ø±ê²î%s %s - %s(t    GameWorldt GetGameWorldtGetTicktabstDebugLogtGetIDtSync_ClientTicktFalset GetDictByKeyt SetMoveCounttSetDicttGetClientMoveTicktGetAccIDt GetMoveCounttGetDisttGetPosXtGetPosYtmathtceiltfloattGetSpeedtTrue(
t    curPlayertclientWorldTickt sendPack_PosXt sendPack_PosYt gameWorldTicktDef_Max_Move_Tickt lastMoveTickterrCnttdistt canMoveDist((s.\\PlayerControl.pytPlayerMoveCheckClientWorldTickos6    
     $' #  ic    CsD|dkrtjdƒ}n|j|jƒ|jƒ||ƒdS(    Niÿÿÿÿi
iiiii2(i
i
iiiiii2(trandomtchoicet    NotifyAllt    GetBuffert    GetLength(RtsendPackt
notifySelft    notifyCnt((s.\\PlayerControl.pyt PyNotifyAll¢s cCsä|jƒ}|jƒ}|jƒ}tjƒj||ƒr@tStj||dƒ}|jƒ}|jƒ}||kr¬||kr¬|j    ƒtj
d||f|ƒn4|j ||ƒ|j    ƒtj
d||f|ƒt S(Nis Íæ¼ÒÎÞ·¿É×ß, ´ò»ØÖØÉúµã!(%d,%d)s"Íæ¼ÒÕ¾ÔÚÕϰ­µãÖÐ, Í£Ö¹Òƶ¯ (%d,%d)( RRRRtGetMaptCanMoveRtGameMaptGetEmptyPlaceInAreatStopMovetLogtResetPosR(Rt curPlayerPosXt curPlayerPosYt curPlayerIDt
curFindPost curFindPosXt curFindPosY((s.\\PlayerControl.pytDoLogic_PlayerInBarrierPoint¯s     
 
cCs7|dkrtjdƒdS|j|t|ƒƒdS(NsNotifyCode Player = None(tNoneRtErrLogt
NotifyCodet__GetNotifyCodeList(RtmsgMarkt msgParamList((s.\\PlayerControl.pyR;Õs
  cCsŽtjƒret|||||||gƒ}tjƒjdddd|t|ƒƒt||ƒn%tjƒj|d|t|ƒ|ƒdS(NitMergeWorldNotify(    Rt IsMergeServertstrtGetPlayerManagertGameServer_QueryPlayerResulttlentFBNotifytBroadcastCountry_NotifyCodeR<(tcountryR=R>tlineIDt mergeMinOSDt mergeMaxOSDt mergeMapInfotsendMsg((s.\\PlayerControl.pyt WorldNotifyæs !cCs&tjƒjd||t|ƒƒdS(Ni(RRBRFR<(tfamilyIDR=R>((s.\\PlayerControl.pyt FamilyNotifyùs"cCs tjƒj|t|ƒƒdS(N(RtGetMapCopyPlayerManagertBroadcastFB_NotifyCodeR<(R=R>((s.\\PlayerControl.pyREscCstjƒ}xlt|jƒƒD]X}|j|ƒ}|dks|jƒrRqn|jƒ|krt|||ƒqqWdS(N(    RRPtxrangetGetPlayerCounttGetPlayerByIndexR9tIsEmptyt
GetFactionR;(tfactionR=R>tcopyMapPlayerManagertiR((s.\\PlayerControl.pytFBFactionNotifySelfs cCstjƒ}xlt|jƒƒD]X}|j|ƒ}|dks|jƒrRqn|jƒ|krt|||ƒqqWdS(N(    RRPRRRSRTR9RURVR;(RWR=R>RXRYR((s.\\PlayerControl.pytFBFactionNotifyOthers cCstjƒ}x|t|jƒƒD]h}|j|ƒ}|dks|jƒrRqn|jƒ|krwt|||ƒqt|||ƒqWdS(N(    RRPRRRSRTR9RURVR;(RWt selfMsgMarktselfMsgParamListt otherMsgMarktotherMsgParamListRXRYR((s.\\PlayerControl.pytFBFactionNotifys cCsL|dkrdSd||f}tjƒjdd|d|t|ƒƒdS(Nis
("%s", %s)t
TeamNotify(RRBRCRD(tteamIDR=R>RL((s.\\PlayerControl.pyRa/s
 (c    Csst|||||||gƒ}tjƒjdddd|t|ƒƒtjd|||||||fƒdS(sÏÅúÁ¿·¢ËÍÓʼþ, ÓÃÓÚ˲¼äÐèÒª·¢ËͶà·â£¨´óÁ¿£©ÓʼþµÄ£¬±ÈÈçһЩ¹«¹²¸±±¾»î¶¯µÈ½áËãʱ
    @param mailTypeKey: ÓʼþÄ£°åkey
    @param batchPlayerIDList: [playerIDList, playerIDList, ...]
    @param batchAddItemList: [addItemList, addItemList, ...]
    @param batchParamList: [paramList, paramList, ...]
    @param batchGold: [batchGold, batchGold, ...]
    @param batchGold: [batchGoldPaper, batchGoldPaper, ...]
    @param batchGold: [batchSilver, batchSilver, ...]
    it SendMailBatchsSendMailBatch %s, batchPlayerIDList=%s, batchAddItemList=%s, batchParamList=%s, batchGold=%s, batchGoldPaper=%s, batchSilver=%sN(RARRBRCRDR0(t mailTypeKeytbatchPlayerIDListtbatchAddItemListtbatchParamListt    batchGoldtbatchGoldPapert batchSilvertmsgInfo((s.\\PlayerControl.pyRc8s
 
!(    c    CsT|stj}nd|tj|dtƒf}td|d|||||ƒdS(Ns!<MailTemplate>%s</MailTemplate>%st ensure_asciiti(t ShareDefinetDefaultLackSpaceMailTypetjsontdumpsRtSendMail(Rdt playerIDListt addItemListt    paramListtgoldt    goldPapertsilvertcontent((s.\\PlayerControl.pyt SendMailByKeyHs
 c    Cs¼|s
dS|dkrdStjƒr*dSi}g}    xð|D]è}
t|
tƒre|    j|
ƒq=nt|
ƒdkr}q=n|
\} } } tj| ƒrÿtjtj    | | ƒƒ}|sÜtj
d| | | fƒq=n|    jt j |ƒƒ|j ƒq=| | f}|j|dƒ| ||<q=Wx<|jƒD].\}} |\} } |    j| | | fƒq6W|||||    |||g}tjƒjddddd|tt|ƒƒƒtS(Niis-Óʼþ¶¨ÖÆÎïÆ·×ª»¯Ê§°Ü£¡itemID, itemCnt, isBindRrs%s(RR@t
isinstancetdicttappendRDt ItemControlertGetAppointItemRealIDt GetItemByDatatGetAppointItemDictDataR:t
ItemCommontGetMailItemDicttCleartgettitemsRBRCRAR(ttitleRytgetDaysRsRtRvRwRxt itemCountDicttcombineItemListtmailItemtitemIDtitemCnttisBindtappointItemObjtkeytcmdList((s.\\PlayerControl.pyRrSs<       2cCs†tjƒ|stSxk|D]c}t|ƒ}|tjkrLtj|ƒq|tjkrqtjt|ƒƒqtj|ƒqWtS(N(    tNotifyCodeListR„ttypettypestIntTypetAddInttLongTypetAddStrRA(R>tmsgtitemPythonType((s.\\PlayerControl.pyR<…s
  cCs\|jƒ}|dks$|dkr(dStj|ƒ}tjtjƒƒ}tj||ƒS(NRmt0i(t GetLogoffTimeRtGetDateTimeByStrtGetCurrentDataTimeStrtGetDiff_Minute(Rt logoffTimeStrt
logoffTimet    loginTime((s.\\PlayerControl.pytGetPlayerLeaveServerMinutežs  cCsp|jƒ}|dks$|dkr(dStj|ƒ}tjtjƒƒ}||}|jddd|jS(NRmR›iii<(RœRRRžtdaystseconds(RR R¡R¢t    diff_Time((s.\\PlayerControl.pytGetPlayerLeaveServerSecond®s 
cCs‰|jƒ}|dks$|dkr(dS|jƒd}tjƒjƒd}tj|tjƒ}tj|tjƒ}||}|jS(NRmR›i(RœtsplitRRžRtChConfigtTYPE_Time_Format_DayR¤(RR t loginTimeStrR¡R¢tdiffTime((s.\\PlayerControl.pytGetPlayerLastLeaveServerPastDayÀs 
cCs}|jƒdkrtSt|ƒs&tStjƒjƒtjkrytjƒjƒt    j
ddƒkryt |dƒtSnt S(NitDungeonDeliveritCarry_lhs_844170( tGetHPRtCheckTransStateRR+t GetMapFBTypet IPY_GameWorldtfbtNulltGetMapIDt IpyGameDataPYtGetFuncEvalCfgR;R(R((s.\\PlayerControl.pytCheckPlayerTransportÖs $ cCsh|dkrtS|jƒjtjƒ}|jtjƒ}|rQ|jƒ rQtSt|d|gƒt    S(NiL'tGeRen_lhs_861048(
RtGetItemManagertGetPackR³trptEquiptGetAttretWingRUR;R(Rt    destMapIDt playerEquiptcurEquip((s.\\PlayerControl.pytCheckEquipCanTranss cCsut|ƒ|jƒt|tƒ|j|ƒ|j|ƒ|j|ƒ|jƒtj    ƒj
ƒ}t ||ƒdS(N( tExitPlayerConfrontingR/tSetIsNeedProcessRtSetPrepareTimetSetPrepareStatet SetPrepareIDtSync_PrepareBeginRRRtDelLimitSuperBuff(Rt prepareTimet prepareTypet    prepareIDttick((s.\\PlayerControl.pyRÈs
 
 
 cCsð|jƒ}||krdSt|ƒ|tjkrBt|ƒn|tjkr‘| r‘|tjtjgkr‘t    j
d||j ƒƒdSn|tj kr­t |ƒn|j|ƒ|tjkrÍdSt    jƒjƒ}t||ƒdS(Ns²»Ç¿ÖÆ×ª»»×´Ì¬ %s(tGetPlayerActiont DoPlayerStandR©tDef_PlayerCancelConfrontingRÃR³tpaEventtpaNulltpaAttackRRRt paPreparingtDoExitPreparingtSetPlayerActionRRRÉ(Rt changeActiont forceChangetcurPlayerActionRÍ((s.\\PlayerControl.pytChangePlayerAction7s$  
    cCsÉtj|ƒ|jƒ}|dkr?tjd|jƒƒdS|jƒtj    krntjd|jƒƒdStj
ƒj |j ƒƒ}|dkr¯tjd|jƒƒdS|j ƒ}|jƒdS(NsDoExitPreparing -> Ã»ÓÐÄ¿±êsDoExitPreparing -> ²É¼¯¶ÔÏó²»¶ÔsDoExitPreparing ->ûÓÐÕâ¸öNPC(t    NPCCommontClearCollectNPCt GetActionObjR9RR0t GetPlayerIDtGetGameObjTypeR³tgotNPCt GetNPCManagert GetNPCByIndextGetIndextGetPlayerHurtListR„(RttagObjtcurNPCtcurNPC_HurtList((s.\\PlayerControl.pyRÕ\s     
cCsOt||ƒrdS|jtjƒ}|td|ƒB}t|tj|ƒdS(Ni(tGetPyPlayerActiontNomalDictGetPropertyR©tDef_Player_Dict_PyPlayerActiontpowtNomalDictSetProperty(RR×tstate((s.\\PlayerControl.pytChangePyPlayerActionxs cCs/|jtjƒ}|td|ƒ@}|dkS(Nii(RéR©RêRë(Rtactiont receiveStateRí((s.\\PlayerControl.pyRèˆscCsA|jƒ}||krdS|j|ƒtj|d|ƒdS(NsÉèÖÃÍæ¼ÒÊÇ·ñ¼¤»î:%s(tGetIsNeedProcessRÄRtGodLog(Rt isNeedProcesstcurPlayerIsNeedProcess((s.\\PlayerControl.pyRĖs    cCs|jƒtjkrtStS(N(RÎR³RÓRR(R((s.\\PlayerControl.pytIsPlayerInFight¥scCsdS(N((R((s.\\PlayerControl.pytAutoEnterPlayerConfronting¸scCsdS(N((R((s.\\PlayerControl.pyRÃÏscCs&|jƒtjkrdS|jƒtjtjgkr;dStjƒj    ƒtj
krZdS|j ƒ}|dkrvdS|j ƒtjkrdStjƒj|jƒƒ}|dkrºdS|jƒtjdƒkrÙdStjd|jƒƒt|tjƒ|j ƒdkr"|jdƒndS(NtBreakPlayerCollectNPCIDLists    ²É¼¯±»´ò¶Ï ²É¼¯ÎïNPCID=%s(RÎR³RÔtGetPrepareStatetpstMissionCollectingRntDef_PstProduceRR+R²R´RÝR9RßRàRáRâRãtGetNPCIDt ReadChConfigtGetEvalChConfigRRÚRÒt SetActionObj(RRåRæ((s.\\PlayerControl.pytBreakPlayerCollectäs*   cCs>|jƒtjkrdS|jƒt|tƒ|jƒdS(N(RÎR³tpaSitR/RÄRtSit(RRÍ((s.\\PlayerControl.pyt DoPlayerSits 
 
cCs'|jƒtjkrdS|jƒdS(N(RÎR³RtStand(R((s.\\PlayerControl.pyRÏ-s
cCs2|jdƒt|ƒ|jƒ|j|ƒdS(N(RþR9RÃR/tView_ShowPlayerFace(RtfaceType((s.\\PlayerControl.pytDoPlayerShowPlayerFace;s
 
 
 cCs6|jƒ|j|jtjƒ|jtjƒƒdS(N(R/tSetDeadR    R©tDef_NPCDead_KillerIDtDef_NPCDead_KillerType(R((s.\\PlayerControl.pyt DoPlayerDeadKs
c Csß|jƒs&tjd|jƒƒtS|jƒsLtjd|jƒƒtStjƒ}t}|j||ƒtkr#t    j
||t j ƒ}|j ƒ|krÖ|jƒ|krÖtjd||f|jƒƒtStjd|||j ƒ|jƒf|jƒƒ|j ƒ}|jƒ}n|j ƒ}|jƒ}    tj||||    ƒ}
|
dkryt|||||ƒtSt}tjd||||    |
fƒ|}|    }t|||||ƒtSt|||||ƒtS(NsµØÍ¼Ã»ÓжÁÈ¡³É¹¦, Ë¢ÐÂʧ°ÜsûÓÐËٶȲ»ÄÜË¢ÐÂ×ø±ê!s6Íæ¼ÒÖØÖÃλÖÃʧ°Ü, °ÑÍæ¼Ò´ò»ØÖØÉúµã posX = %s posY = %ssX×ø±ê´íÎ󣬼ì²éÍæ¼ÒͣϵÄ×ø±êÊÇ·ñÕýÈ· posX = %d, posY = %d, ÖØÖÃλÖÃ:posX = %d, posY = %dis+Client=(%s,%s), Server=(%s,%s), ²îÒì¾àÀë=%s(t GetMapLoadOKRR0RÞRRR+R,RR-R.R©tDef_DropItemDistRRRt__FixPlayerPosR( RtcheckObjtposXtposYtcanChangeClientPostcurMapt needResetPost    resultPostobjPosXtobjPosYR((s.\\PlayerControl.pytPlayerRefreshPos]sB       $        )        cCs8|r|j||ƒdS|r4|j||ƒdSdS(N(R1t    ChangePos(Rt
changePosXt
changePosYtneedResetServerPostneedChangeClientPos((s.\\PlayerControl.pyR scCsag}x6t|jƒƒD]"}|j|ƒ}|j|ƒqWx|D]}tj|ƒqFWdS(N(trangetGetSummonCounttGetSummonNPCAtR}RÛt    SetDeadEx(Rt summon_Listtindext curSummonNPCt    summonNPC((s.\\PlayerControl.pytKillPlayerSummonNPC/s cCs|jƒ}|tjkS(N(RÎR©tDef_Player_Can_Transfer_State(RRÙ((s.\\PlayerControl.pytPlayerCanStateTransfer>s cCsCdStj|ƒr?|jƒ}|jdƒtj||ƒndS(N(t PlayerTrucktGetHaveAutoTrucktGetTrucktSetOwnerR9tPlayerTruckDown(RtcurPlayerTruck((s.\\PlayerControl.pyt__TruckPlayerDisconnectKs   cCs,|jƒtjkr(tj|tƒndS(N(tGetPlayerVehicleR³tpvHorset PlayerHorsetPlayerRideHorseDownR(R((s.\\PlayerControl.pyt__RidingHorsePlayerDisconnectZscCs}tj|ƒ|jƒ}|dkr5|jdƒntj||ƒtj|dƒt    j
|||ƒt j |ƒtj |ƒtj|ƒtj|ƒtjƒjƒdkrþtjƒjƒ}|rÒdnd}||gtj|<tj||ƒntj||ƒt|ƒt||ƒtj|ƒ|jƒtj kr`tj j!|jƒƒnt"t_#t$j%||ƒdS(Niii(&t
EventShelltEventResponse_OnLeaveMapR*R9R+t SkillCommontRefreshAllSkillRemainTimet PlayerTradet
LeaveTradet
PlayerTeamtTeamPlayerLeaveMapRÛRÜt DoExitEventt ExitShopItemtExitWatchShopItemRR+R²RtGetCurGameWorldIndext
PyGameDatatg_lastExitFBTypetFBLogict DoExitFBLogictGameLogic_ManorWartDoExitFBt__ClearLeaveNoSaveBufftUpdateOnLineTimetPassiveBuffEffMngtOnPlayerLeaveMapRÞtg_maliciousAttackDicttpopRtg_needRefreshMapServerStatet PlayerSuccesstFinishDelayAddSuccessProgress(RRÍt isDisconnectR-tfbIndext
exitFBType((s.\\PlayerControl.pyt__PlayerLeaveServerLogicgs2       
      cCs—|jtjƒ}|dkr5|jtj|ƒdS|jtj|ƒ||d}|dkr“|j|jƒ|ƒ|j|jƒ|ƒndS(Niiè(R    R©tDef_PlayerKey_CalcOLTimeTickR tSetWeekOnlineTimetGetWeekOnlineTimet SetOnlineTimet GetOnlineTime(RRÍt lastCalcTicktdiffSec((s.\\PlayerControl.pyRG­s  cCs=dStjƒ}|jƒ|jƒ|_tj||ƒdS(N(tChPyNetSendPackttagMCOnLineTimeTotalR„RWtOnLineTimeTotalt NetPackCommont SendFakePack(RR'((s.\\PlayerControl.pytSyncOnLineTimeTotalÁs  
cCsPdStjƒ}|jƒ||_|jtj|ƒ|_tj    ||ƒdS(N(
RZttagMCOnlineTimeLastOpenPackR„tPackTypeRéR©t$Def_Player_Dict_LastAutoOpenPackTicktLastOnLineTimeR]R^(RtpackTypeR'((s.\\PlayerControl.pytSyncOnLineTimeLastOpenPackÍs 
    cCs|jƒjƒdS(N(t
GetMapBuffR„(R((s.\\PlayerControl.pyRFÚscCsÌt||jƒt|ƒt||jƒt|ƒt||jƒt|ƒt||jƒt|ƒt||jƒt|ƒt||jƒt|ƒt||jƒt|ƒt||j    ƒt|ƒdS(N(
tPlayerClearBuff_Singlet GetBuffStatetClearBuffByDisconnecttGetDeBuffStatetGetAurat
GetIncBuffRftGetActionBuffManagertGetProcessBuffStatetGetProcessDeBuffState(RRÍ((s.\\PlayerControl.pyt__DisconnectClearBuffêscCsÇtj||ƒt||ƒt|ƒ}|jƒtj|ƒtj||ƒt    ||t
ƒt |ƒt |ƒt |ƒ||jƒ|jƒgtj|jƒ<tjdtj|jƒƒdS(NsÍæ¼Ò´Ó±¾µØÍ¼ÀëÏß: %s(t
PetControltDoLogic_PetInfo_OnLeaveServerRpt PlayerControltRefreshAllStatetPlayerBillboardt"UpdatePlayerBillboardOnLeaveServertPlayerViewCacheTubetOnPlayerLogOutRRRR3R.R%RRR@tg_disconnectPlayerRÞRR(RRÍt playerControl((s.\\PlayerControl.pytPlayerLeaveServers  
 
 
 
(cCs"|tjkrdStj|dS(Ni(R@Ry(tplayerID((s.\\PlayerControl.pytGetPlayerLeaveServerTick!scCs%|tjkrdStj|dd!S(Nii(R@Ry(R|((s.\\PlayerControl.pytGetPlayerLeaveServerPos(scCsQxJtjjƒD]9\}}|d}||dkrtjj|ƒqqWdS(Nii€î6(R@RyR†RK(RÍR|t    leaveInfot    leaveTick((s.\\PlayerControl.pyt"RemoveTimeoutLeaveServerPlayerInfo.s
 
cCs6|tjkr2tjj|ƒtjd|ƒndS(Ns%½øÈë±¾µØÍ¼£¬ÒƳýÉÏ´ÎÔÚ±¾µØÍ¼ÀëÏ߼Ǽ!(R@RyRKRR(R|((s.\\PlayerControl.pytRemoveLeaveServerPlayerInfo6scCs~|jƒjtjƒ}xLt|jƒƒD]8}|j|ƒ}| s+|jƒrYq+n|jƒq+Wt    |t
j dƒdS(Ni( RºR»R³t
rptRecycleRtGetCountR½RUR„RìR©tDef_Player_Dict_DelPackIndex(RtbackPackRYtcurItem((s.\\PlayerControl.pytDelRecylcePackAscCsc|jƒ}|dkrtStj|jƒ|jƒ|jƒ|jƒƒ}|tjkr_tSt    S(N(
R*R9RRRRRR©tDef_PlayerTruckEventDistR(RtcurTruckR((s.\\PlayerControl.pyt__GetCanChangeMapSetTruckTs  
cCsVt|ƒ|jƒ}|tkr:t|ƒs:t}q:n|tkrƒ|jƒtjkrƒ|jƒ}|rƒt    j
||ƒqƒn|j |ƒ|j ƒ}|j ƒr¸t|dƒnt||tƒtj||ƒx,|jƒr|jdƒ}tj|ƒqÛW|jƒ|tkrR|jƒ}|dkrR|jdƒ|jƒqRndS(NtGeRen_admin_70569i(tNotifyStartChangeMaptGetChangeMapTakeTruckRR‹RR/R³tpvTruckR*R(R,tSetChangeMapTakeTruckt GetPlayerShoptGetIsStartShopR;RRRBtDoPlayerChangeMapLogicRRRÛR tDoResetWorldPosAndClearR9tSetTruckt    Disappear(RRÍt    takeTruckRŠt
playerShopR$((s.\\PlayerControl.pytDoPlayerResetWorldPosqs2
    !    
    cCsT|jtjƒs&tj|dƒdS|jƒ}|jƒ}|jƒ}||jƒkr‘t    j
ƒ}|j ƒ|j ƒ|j ƒ}}}nt    jd|||f|jƒƒt    j
ƒjƒrt    jƒjƒjƒdkrt    jƒ}|jdƒnt||||t|jƒƒ|jƒtjgksC|jƒrP|jƒndS(Nis.PlayerLeaveFB MapID = %d, PosX = %d, PosY = %d(RéR©t!Def_Player_Dict_RouteServerInitOKtGameServerRefresht%Set_PlayerRouteServerInitOK_OnLeaveFBt GetFromMapIDt GetFromPosXt GetFromPosYRµRR+tGetRebornMapIDt GetRebornMapXt GetRebornMapYR0RÞt GetAutoSizeRRPRSt    GetGameFBtSetIsSafeClosetPlayerResetWorldPosFBRt GetFromLineIDRÎR³RÒtIsMovingt
BeginEvent(RtmapIDRRtgameMaptgameFB((s.\\PlayerControl.pyt PlayerLeaveFB¿s"    )#0 
$ c
Cs@tjƒjƒ}|tjkr%dStjd|ƒtjƒ}tjdƒ}xè|j    ƒD]Ú\}}|r‚||kr‚q^nx³|dD]§}|j
tj |ƒ}xqt dd|ƒD]\}|j
tj ||fƒ}    |jtj ||fdƒ|jtj||    fdƒq½W|jtj |dƒqWq^WdS(Ns3ÖØÖÿç·þ»î¶¯¸±±¾µØÍ¼ÈËÊý·ÖÅäÇé¿öÐÅÏ¢: resetMapID=%stMergeFBPlayerCountii(RR+RµR©tDef_MergeTransMapIDR0RRüRýR†tGetGameWorldDictByKeyt Map_WorldKey_MergeFBMapPlayerCntRRtMap_WorldKey_MergeFBMapPlayerIDtSetGameWorldDicttMap_WorldKey_MergeFBPlayerMapID(
t
resetMapIDRªt    gameWorldtmergeFBPlayerCntDicttreqMapIDtmapInfot playerMapIDt    playerCnttnumR|((s.\\PlayerControl.pytResetMergeFBPlayerCntInfoës" !c Cs–tjdƒ}||kr|S|jƒ}tjƒ}|jtj||fƒ}|rqtjd||ƒ|S||\}}d}d}    xb|D]Z}
|jtj    |
ƒ} | |krÆ|
}Pn| sß|r”| |kr”| }|
}    q”q”W|s|    }n|r’|jtj    |ƒd} |j
tj    || ƒ|j
tj || f|ƒ|j
tj||f|ƒtj d|||| fƒn|S(NR®s0ÒѾ­ÓзÖÅä¿ç·þ»î¶¯µØÍ¼£¬Ö±½Ó·µ»Ø£¡playerMapID=%siisN·ÖÅä¿ç·þ»î¶¯Íæ¼ÒËùÊôµØÍ¼: plaeyrID=%s,reqMapID=%s,·ÖÅäMapID=%s,mapPlayerCnt=%s( RüRýRÞRRR°R©R´RR±R³R²R0( RR¸R·R|R¶Rºt maxPlayerCntt    mapIDListtminPlayerCounttminPlayerMapIDtmIDtcurMapPlayerCntt mapPlayerCnt((s.\\PlayerControl.pyt__GetMergeFBPlayerMapIDÿs<              c Cs÷tj|ƒ}tjd||||f|jƒƒtjƒrt|}t||ƒ}|sttjd|ƒdSntjƒj    |ƒs§tjd||j
ƒƒdStj |ƒ}tj ||ƒ}|sÔ|n    |j ƒ}tjƒjƒ}    t||||||    ƒtjkrdS|dkr’|dkr’tj|||ƒ}
tj||||
|    ƒ} | sƒtjd||fƒdS| \}}n|jƒr«|jƒnd} t} tjƒj|ƒ}|tjkr|jƒr|jƒtjkrtjd|jƒƒdSt} n| sI|t j!ksI|t"j#dƒkrÔg}|t j$krºt%j&dd    ƒ}||krŸt'||||t| d
|ƒdSt(j)|ƒ}|g}nt*||||    |ƒdSt'||||t| d
|ƒdS( Ns4Íæ¼ÒÇëÇó½øÈ븱±¾! mapID=%s,lineID=%s,posX=%s,posY=%ss-ÕÒ²»µ½¿É·ÖÅä½øÈëµÄ¿ç·þ»î¶¯µØÍ¼ID! reqMapID=%ss###·Ç·¨µØÍ¼Êý¾Ý£¬mapID: %sis&δÕÒµ½½øÈ븱±¾×ø±ê£¡mapID=%s,lineID=%ss!·Ç¶Ó³¤£¬ÎÞ·¨·¢Æð½øÈë×é¶Ó¸±±¾ÇëÇó!tMapID_SendToGameServertSealDemonNewbieLineit
funcLineID(+tFBCommontGetRecordMapIDRR0RÞR@RÅR:R+t IsMapIDExistRt GetFBIpyDatatGetFBLineIpyDataRµRRt CheckMoveToFBRntEntFBAskRet_OKtGetFBLineEnterPosInfoRBtOnGetFBEnterPosR¨R/RtGetMapFBTypeByMapIDR³tfbtTeamt    GetTeamIDt    GetTeamLVt    tmlLeaderRR©tDef_MapID_SendToGameServerRüRýtDef_FBMapID_SealDemonR¶R·R¦tGameLogic_SealDemontCurFBLineBOSSIDtSendToGameServerEnterFB(RRªRHRRR¸t    fbIpyDatat fbLineIpyDatat
sceneMapIDRÍtipyEnterPosInfotretPostfbIDtisSendToGameServert    mapFBTypetextendParamListtnewbielineListtbossID((s.\\PlayerControl.pyt PlayerEnterFB4sb         $        cCstjd|||f|jƒƒ|dkrGtj|||ƒ}n||g}|j|ƒd|}|jtj    dd|t
|ƒƒdS(Ns=SendToGameServerEnterFB mapID=%s,lineID=%s,extendParamList=%ss%sitEnterFB( RR0RR9RBtGetPlayerFBLineIDtextendtGameServer_QueryPlayerByIDR©tqueryType_EnterFBRD(RRªRHRÍRäRL((s.\\PlayerControl.pyRۏs       
"c    Cs7tj|||||d||ƒ}|tjkr7|S|jƒdkr]tjdƒtjStj    |ƒr|rˆt
|d|gƒntj S|rÃ|j ƒt jkrÃtj|ƒrÃtjSntj|ƒrõ|rît
|d|gƒntjS|jƒ}    |    t jkr3|r,t
|d|gƒntjS|    t jkr_|rXt
|dƒntjS|    tjkr‹|r„t
|dƒntjSx=tjD]2}
t||
ƒr•|rÀt
|dƒntjSq•Wtjƒjƒt j kråt!} t"j#dƒ} tjƒj$ƒ} | | kr2|| | kr2t%} ntjƒj&|ƒ}|t j krz| t'j(d    dƒkr¹t%} q¹n?tj)| ƒtj)|ƒkr¹t*j+|||ƒr¹t%} q¹n| så|rÛt
|d
|gƒntj,Snt*j-||||ƒs0tj.d |j/ƒƒ|r)t
|dƒntjStjS( sþÅжϿɷñ½øÈ븱±¾£¬°üº¬ÊÖ¶¯¼°Æ¥Åä
    @param isTeamAsk: ÊÇ·ñÊǶÓÎé½øÈëÇëÇóµÄ£¬Ò»°ãÊǶÓÎé״̬Ï£¬¶Ó³¤·¢Æð½øÈ븱±¾£¬ÐèÒª¼ì²é¶ÓÔ±¿É·ñ½øÈ룬´ËʱΪTrue£¬¿É×öһЩ¸½¼Ó´¦Àí
    @note: ²ß»®ÒªÇóÌáʾ°´ÓÅÏȼ¶À´£¬¸±±¾×ÔÉíµÄÌõ¼þÏÞÖÆÓÅÏÈÌáʾ£¬ÆäËû¸½¼ÓÌáʾÓÅÏȼ¶½ÏµÍ
    iisÍæ¼ÒÒѾ­ËÀÍö, ÎÞ·¨½øÈ븱±¾!tSingleEnterDefault SingleEnterPKtSingleEnterGathertCarry_lhs_697674tFBEnableTransportMapR®tSingleEnterDungeons    OnEnterFBEvent False!(0RÉtCheckCanEnterFBCommRnRÏR°RR0tEntFBAskRet_Deadt    PlayerTJGtGetIsTJGR;tEntFBAskRet_TJGRÕR³RÖt PlayerStatet IsInBossStatetEntFBAskRet_BossStatet IsInPKStatetEntFBAskRet_PKStateRÎRÔtEntFBAskRet_PreparingRtEntFBAskRet_SitR©tDef_Player_Cannot_TransStatetEntFBAskRet_Othert(Def_Player_NotCan_EnterFbPyGameEvenStateRèR+R²R´RRüRýRµRRÒR¶R·RÊRBtCanChangeSameDataMapFBtEntFBAskRet_InFBtOnEnterFBEventRRÞ(RRªRHRÜRÝRÍtisNotifyt    isTeamAsktrett playerActionR"tcanFBMoveToOthertfbEnableTransportMaptcurMapIDt toMapFBType((s.\\PlayerControl.pyRΤst$ 
        
cCs&tjƒjƒ}tj||ƒdS(N(RRRtPlayerGameWallowtDoLogic_WallowOnlineTime(RRÍ((s.\\PlayerControl.pytRefreshPlayerTickscCs7|jƒ|krdSt|tj|ƒtjd||||f|jƒƒ|jtj|ƒ|jtj    |ƒ|jtj
|ƒt |||ƒt |ƒt jƒ}|jƒ||_||_||_tj||ƒ|jdƒ|j||ƒt||ƒt jƒ}|jƒtj||ƒdS(sPÍæ¼ÒÇл»µ½Ö¸¶¨¸±±¾¶ÔÓ¦µÄ¹¦ÄÜÏß·ID£¬ÊÊÓÃÓڶೡ¾°ºÏ²¢Ò»ÕŵØÍ¼µÄÇé¿ö£¬ºó¶ËÐèÔÚͬһÕÅÎïÀíµØÍ¼²ÅÄÜʹÓøú¯Êý
    ÓÉÓÚǰ¶ËµØÍ¼ºÏ²¢µÄ³¡¾°¼ÓÔØÊÇ·Ö¿ªµÄ£¬ËùÒÔÔÚÇг¡¾°µÄʱºò²»ÄÜÖ±½ÓÉèÖÃ×ø±ê£¬ÒòΪǰ¶Ëʵ¼ÊÉϲ»´æÔÚ¸Ã×ø±ê
    Íæ¼ÒÖ±½ÓÔÚµØÍ¼ÖÐÇл»¹¦ÄÜÏß·ID£¬´Ëʱǰ¶ËÐèÒª×ßÕý³£µÄÇÐͼÁ÷³Ì²ÅÄܼÓÔØÄ¿±ê¹¦ÄÜÏß·ID¶ÔÓ¦µÄ³¡¾°
    ¹ÊÕâÀï×ö¸öÐé¼ÙÇÐͼÁ÷³Ì
    NsHÍæ¼Ò¸±±¾Öбä¸ü¹¦ÄÜÏß·ÐéÄâÇеØÍ¼: mapID=%s,posX=%s,posY=%s,funcLineID=%si(RµRìR©tDef_Player_Dict_ReqFBFuncLineRR0RÞR tDef_PlayerKey_ChangeMapIDtDef_PlayerKey_ResetFBLinePosXtDef_PlayerKey_ResetFBLinePosYtNotifyPrepareChangeMapRt ChNetSendPackttagPlayerMapInitR„tMapIDtPosXtPosYR]R^tSetSightR1tSetFBFuncLineIDttagServerPrepareOK(RRªRRRÈt playerMapInitt    prepareOK((s.\\PlayerControl.pytPlayerResetWorldPosFBLineID#s.    
 
               
Rmc     Cstjƒjƒ}    |jtjƒ}
|    |
dkrztjd||||||||    |
f    |jƒƒt|dƒdS|j    tj|    ƒ|} tj
ƒj |ƒt j krêtj|ƒ}tj||ƒ} | rê| jƒ} qêntjdƒ} || kr;| |}|r;tj|ƒ} tjd| ƒq;n|rN|jƒn|sjtj|tjƒntj|||ƒ}t|tj|ƒtjd| |||||||    |
f    |jƒƒ|j | |||||ƒ|j    tj!| ƒt"|ƒt#|| |ƒdS(sÎ
    ²ÎÊý˵Ã÷:
        @param fbID:
            ´óÓÚ0µÄÕûÊý:
                Èç¹û²ÎÊýmapIDÖ¸¶¨µÄµØÍ¼´æÔÚfbIDÖ¸¶¨µÄ·ÖÏߣ¬ÔòÖ±½Ó´«Ë͵½²ÎÊýmapIDËùÖ¸¶¨µÄµØÍ¼µÄfbIDËùÖ¸¶¨µÄ·ÖÏߣ¬·ñÔòÔÚËùÓдæÔڵķÖÏßÖУ¬Ëæ»úѡһÌõ·ÖÏß´«Èë¡£fbIDµÄ¼ÆËã¼ûÏÂÃæfbID=-1µÄ˵Ã÷¡£
            -1£º
                ½Ó¿ÚÄÚ²¿×Ô¶¯Ìæ»»³Éµ±Ç°fbID£¬´«Èë²ÎÊýmapIDËùÖ¸¶¨µÄµØÍ¼£¨ÕâÀï²ÎÊýmapIDÆäʵÊÇDataMapID£©µÄͬһfbIDµÄµØÍ¼(Èç¹ûÓУ¬Ã»ÓÐÔòËæ»ú)¡£
                Ï־͵±Ç°fbIDµÄ¼ÆËã,¾ÙÀý˵Ã÷,¼ÙÉèµØÍ¼AºÍµØÍ¼BÔÚMapID.txtÅäÖÃÈçÏ£º
                MapName     MapID   DataMapID FBCount
                µØÍ¼A         101     101     3
                µØÍ¼B         102     101     3 
                ¼´µØÍ¼AºÍµØÍ¼BÓй²Í¬µÄDataMapID,ÄÇôµØÍ¼B½ø³ÌÄÚ²¿µÄµÚÒ»Ìõ·ÖÏߵĿͻ§¶ËID¾ÍÊÇ3(ËùÓзÖÏߵĿͻ§¶Ë·ÖÏßID:0¡¢1¡¢2¡¢3¡¢4¡¢5)
            -2£º
                Ö±½ÓËæ»ú´«µ½²ÎÊýmapIDËùÖ¸¶¨µÄµØÍ¼µÄijһÄÚ²¿·ÖÏߣ¬ÕâÀïµÄijһÄÚ²¿·ÖÏßÏÞÓÚMapID.txtÖÐmapIDΪ´«Èë²ÎÊýmapIDµÄµØÍ¼½ø³ÌµÄ·ÖÏß¡£
    
        @param funcLineID: ¹¦ÄÜÏß·ID
    ièsiÍæ¼ÒÇÐͼCDÖÐ: mapID=%s,posX=%s,posY=%s,takeTruck=%s,fbID=%s,msg=%s,funcLineID=%s,tick=%s,lastTransTick=%st    MapMoveCDNt
FBMapShuntsµ¥È˵ØÍ¼·ÖÁ÷ sceneMapID=%ssrÍæ¼ÒÇëÇó¿ªÊ¼ÇÐͼ: sceneMapID=%s,posX=%s,posY=%s,takeTruck=%s,fbID=%s,msg=%s,funcLineID=%s,tick=%s,lastTransTick=%s($RRRR    R©tDef_PlayerKey_TransTickR0RÞR;R R+RÒR³R´RÉRÊRÍRµRüRýR"R#RR©R(tSetAutoTruckStateRnt Def_Out_TruckRBtGetPlayerResetWorldPosFBMsgRìRtResetWorldPosReqRRR(RRªRRR—RáR™tcanLockRÈRÍt lastTransTickRÞRÝtFBMapShuntDictt    shuntList((s.\\PlayerControl.pyR¦UsB    ,  
     ,
cCsI|jtƒtjƒ}|jƒ||_||_tj||ƒdS(N(    t
SetVisibleRRZttagMCPrepareChangeMapR„Rt
FuncLineIDR]R^(RRÞRÈR'((s.\\PlayerControl.pyRšs  
        cCsatjdƒtjƒ}|jƒ|jtjƒ|_|j    tj
ƒ|_ t j ||ƒdS(Ns&֪ͨ¿ªÊ¼Çл»µØÍ¼, NotifyStartChangeMap(RRRZttagMCStartChangeMapR„R    R©RRRéRR-R]R^(RR'((s.\\PlayerControl.pyR¥s  
cCs-tjƒjƒ|kr-tjd|ƒdStjƒ}|jƒtjkr_t|dƒdS||j    ƒkr›tjd||j    ƒf|j
ƒƒdSt |t j |dƒt |t jdƒt |t jdƒt||jƒ|jƒ|jƒt|ƒtjd|jƒ|f|j
ƒƒdS(NschangLineID SameLine = %stGeRen_liubo_180377s»»ÏßµÄÄ¿µÄµØ²»´æÔÚ = %s, %siisÍæ¼Ò = %s Çл»·ÖÏß = %s, Ëø×¡(RRt    GetLineIDR:R+R²R³R´R;t GetMaxFbCountRRìR©t Def_Player_Dict_PlayChangeLineIDt Def_Player_Dict_FuncChangeLineIDt Def_Player_Dict_HighChangeLineIDR¦RµRRRR0tGetName(Rt changLineIDR«((s.\\PlayerControl.pytPlayerChangeLine´s   &+&c     Csætjƒ}    t||    jƒ|    jƒ|||ƒ}
tjd|||
f|jƒƒ|    jƒ|kr¹|
dks†|    jƒ|
kr¹tj|||ƒtj    |tjƒj
ƒƒdSt ||||||
||ƒt j ƒdS(Ns&·ÖÁ÷ mapID=%s,lineID=%s,shuntLineID=%siÿÿÿÿ(RRtGetResetWorldPosShuntLineIDRµR0RRÞtResetPlayerPost
SkillShelltProcessMapBuffRR¦tGameWorldProcesstOnPlayerLeaveMapCloseFB( RRªRRR—RHR™R'texData1R¶t shuntLineID((s.\\PlayerControl.pytPlayerResetWorldPosÝs '#0
cCsùtj|ƒr)tjd|jƒƒ|S|tjksG|tjkrK|Stj|}|jƒ}|jtj    ƒ}|jtj
ƒ}    |jtj ƒ}
tjd|||||f|ƒ|dkrž| r|     r|
rt |tj
|dƒtjd||f|ƒn|ršt j|ƒršt||||jƒƒ} | dkrštjƒjƒ} tjd|| f|ƒt j||| || ƒ| Sn|S||kr¾tjd|ƒ|Stjddƒ} || kr(| |}i}xK|jƒD](\}}||krqùn|||<qùWn|}t|ƒ}tjd    ||fƒ|r…|t|ƒkr…tjd
||ƒ|dS|    rÌ|    t|ƒkrÌtjd |    |ƒt |tj
d ƒ|    dS|
r|
t|ƒkrtjd |
|ƒt |tj d ƒ|
dS||krtjd||ƒt|||ƒ}|dkr²| r²|     r²|
r²t |tj |dƒtjd||f|ƒq²nt||||ƒ}|dkrõ|d|krõ|d}tjd|||fƒn|S(s§»ñÈ¡ÇÐͼÏß·ID
    ÇÐÏßÓÐÈýÖÖÇé¿ö
    1. Íæ¼ÒÊÖ¶¯Çл»Ïß·£¬ÓÅÏȼ¶×î¸ß
            ¼Ç¼key  Def_Player_Dict_PlayChangeLineID£¬ ÀëÏß³¬¹ý±£»¤Ê±¼äºóÖØÖã¬È·±£¶ÏÏßÖØÁ¬Õý³£¼´¿É
            
    2. ¹¦ÄÜÇл»µ½Ö¸¶¨Ïß·£¬Èç´òboss¡¢´«Ë͵½Ä¿±êÍæ¼ÒÏß·£¨±»»÷ɱÇйýÈ¥°ï棩
            ¼Ç¼key  Def_Player_Dict_FuncChangeLineID£¬ ÀëÏß³¬¹ý±£»¤Ê±¼äºóÖØÖã¬È·±£¶ÏÏßÖØÁ¬Õý³£¼´¿É
            
    3. ³£¹æÇÐͼ
            Ïß·ѡÔñÓÅÏȼ¶: ÊÖ¶¯ÇÐÏ߼Ǽ > ¹¦ÄÜÇÐÏ߼Ǽ > ¸ßµÍÇÐÏ߼Ǽ > ÏµÍ³·ÖÁ÷ÇÐÏß¹æÔò
            
            ÏµÍ³·ÖÁ÷ÇÐÏß¹æÔò: µ±Ç°µØÍ¼Ïß· ¶ÔÓ¦ Ä¿±êµØÍ¼Ïß·ÈËÊý Èç¹ûµ½´ï¶î¶¨Öµ²Å½øÐзÖÁ÷£¬·ÖÁ÷µ½ÈËÊý½ÏÉÙµÄÏß·
            
        ÌØÊâboss·ÖÁ÷: 
        @param bossID: ·ÖÁ÷bossID
    sÍÑ»úµÄÍæ¼Ò²»´¦Àí·ÖÁ÷£¡sD´¦Àí·ÖÁ÷,curMapID=%s,curLineID=%s,tagMapID=%s,tagLineID=%s,bossID=%siÿÿÿÿisI¹¦ÄÜÖ¸¶¨Çл»Ä¿±êÏß·£¬¼Ç¼µ±Ç°Ïß·ºóÐøÇÐÏß±¸ÓÃ! curLineID=%s,tagLineID=%ss&·ÖÁ÷boss, bossID=%s,bossShuntLineID=%ssͬµØÍ¼Çл»×ø±ê²»´¦Àí·ÖÁ÷£¡tMapLines,Ä¿±êµØÍ¼¿ÉÓ÷ÖÁ÷Ïß·ÈËÊýÐÅÏ¢: tagMapID=%s,%ss$ÓÐÖ÷¶¯Çл»¹ýÏß·!playChangeLineID=%ss,¹¦ÄÜÓÐÖ¸¶¨¹ýÏß·ÀúÊ·Ïß·,funcChangeLineID=%sis(ÓиßÏßÇеÍÏßÀúÊ·Ïß·,highChangeLineID=%ss!Ä¿±êµØÍ¼²»´æÔÚ¸ÃÏß·,curLineID=%ss?¸ßÏßÇеÍÏߣ¬¼Ç¼µ±Ç°Ïß·ºóÐøÇÐÏß±¸ÓÃ! curLineID=%s,tagLineID=%ssг£¹æ·ÖÁ÷ºóµÄlineIDΪ-1£¬µ«ÊÇÄ¿±êµØÍ¼µ±Ç°Ïß·²»¿ÉÓ㡲»¿É´«Ë͵½¸ÃÏß·£¡curLineID=%s + 1 > tagMapMaxLine(%s), Ç¿ÖÆ·ÖÁ÷µ½Ïß·(shuntLineID=%s)(RõRöRRRÞR@tg_commMapLinePlayerCountDictRéR©R2R3R4RìRÛtIsMapNeedBossShuntt__GetBossShuntLineIDtkeysRRtAddBossShuntRelatedPlayerR¶t
GetFuncCfgR†RDt__GetShuntLineID(RR t    curLineIDttagMapIDt    tagLineIDRættagLinePlayerCountDictR|tplayChangeLineIDtfuncChangeLineIDthighChangeLineIDtbossShuntLineIDRÍt mapLineDictt tagMapMaxLinettagLinePlayerCountShuntDicttktvR?((s.\\PlayerControl.pyR8÷sz          
   ! 
    c Cs!|jƒ}|jƒtjddƒkr>tjd|ƒdStjddƒ}||krptjd|ƒdS||}|dkrÀ||}||krÀtjd|||f|ƒdSng|jƒD]\}}    |    |g^qÍ}
|
j    ƒ|
dd} tjd    ||
f|ƒ| S(
NtSetWorldPosShuntis³¬¹ýÖ¸¶¨µÈ¼¶²»·ÖÁ÷iÿÿÿÿisÄ¿±êµØÍ¼²»ÐèÒª·ÖÁ÷sBδ´ïµ½¶î¶¨ÈËÊýÖµ,²»Ó÷ÖÁ÷,curLineID=%s,Ä¿±êµØÍ¼µ±Ç°Ïß·ÈËÊý: %s/%sis@·ÖÁ÷µ½ÈËÊý½ÏÉÙµÄÏß·,tagMapID=%s,linePlayerList[count,lineID]=%s(
RÞtGetLVR¶RGRRR·R9R†tsort( RRJRSRIR|t mapShuntDicttlineMaxPlayerCountttagLinePlayerCountRHt playerCounttlinePlayerListR?((s.\\PlayerControl.pyRH^s(  
 
     +
c
Cs£|jƒ}|jƒ}d}d}d}g}    tjj|gƒ}
|
} tjd||||| |
tjf|ƒx]|D]U} || f} tjj| iƒ}d}d}xc|jƒD]U}|d}||kráq¿n|d7}|d}|r¿||kr¿|d7}q¿q¿W|r9||kr9|}| }n| |
k}| |kr}tjd| || |||f|ƒqntjd| |||||f|ƒ|sÁ|dkrÔ| }qÔq|    j    || gƒqW|dkrütjd||ƒ|S|    s tjd| |f|ƒ|S|    j
ƒ|    d\}}t j d    d
ƒ}||kr‚|dkr‚tjd | |f|ƒ|Stjd | ||    f|ƒ|S( s‰»ñȡĿ±êµØÍ¼boss·ÖÁ÷Ïß·
    ¸ù¾ÝÈËÊý·ÖÁ÷Íæ¼Ò£¬bossËÀÍö״̬£¬Ö»ÄÜ·ÖÁ÷µ½ÒÑËÀÍöÏß·
    ¶ÓÎéÎÞÊÓÈκιæÔò£¬Ä¬ÈÏ·ÖÅäµ½¶ÓÎé¶ÓÔ±¶àµÄÄÇÌõÏß
    iÿÿÿÿssÍæ¼Òboss·ÖÁ÷: playerTeamID=%s,mapID=%s,npcID=%s,lineIDList=%s,bossState=%s,deadLineList=%s,g_bossShuntPlayerInfo=%siisg    lineID=%s,lineBossState=%s != bossState=%s,teamPlayerCount=%s,hurtTeamMemCount=%s,hurtTeamLineID=%ssf    lineID=%s,lineBossState=%s,playerCount=%s,teamPlayerCount=%s,hurtTeamMemCount=%s,hurtTeamLineID=%ss,    ·ÖÁ÷µ½¶ÓÓÑÈËÊý¶àµÄÏß· hurtTeamLineID=%ssH    Ã»ÓÐÈËÔÚ¸Ãboss״̬ϵÄÏß·£¬Ä¬ÈÏ¿ÕÐÂÏß·!bossState=%s,emptyLineID=%st    BossShuntis.    ·ÖÁ÷µ½¿ÕÐÂÏß· bossState=%s,emptyLineID=%ssT    ·ÖÁ÷µ½ÈËÊý×îÉÙµÄÏß· bossState=%s,minPlayerCntLineID=%s,bossLinePlayerCntList=%s( RÞRÔR@tg_bossShuntDeadLineR…RRtg_bossShuntPlayerInfotvaluesR}RXR¶RG(RRªtnpcIDt
lineIDListR|t playerTeamIDthurtTeamLineIDthurtTeamMemCountt emptyLineIDtbossLinePlayerCntListt deadLineListt    bossStateRHRtshuntPlayerDictR\tteamPlayerCountt    shuntInfoRæt shuntTeamIDt lineBossStatetminPlayerCntLineIDtbossShuntPlayerCountMax((s.\\PlayerControl.pyRDysh      #  
 
 
                 
    cCs¼d}d}|jƒ}tjƒ}|j||ƒsVtjd||||fƒn\tj|||ƒ\}}|dks‰|dkr²tjd||||f|jƒƒn||fS(Nis=ÖØÉúµãÒì³££¬³¬¹ýµØÍ¼(%s)±ß½ç posX = %s, posY = %s, round = %ssKÖØÉúµã·¶Î§ÄÚÕÒ²»µ½¸ÃµØÍ¼(%s)µÄ·ÇÕϰ­ÖØÉúµã posX = %s, posY = %s, round = %s(    RµRR+t
IsValidPosR:R-tGetNearbyPosByDisR0RÞ(RRRtroundt
rebornPosXt
rebornPosYR R«((s.\\PlayerControl.pyt__GetLegitRebornPointÉs           c
CsÞtjƒ}|jƒ}|jƒ}|jƒ}t}tjƒ}|jƒ}g}    g}
|stjd|j    ƒƒt
}n}xUt d|ƒD]D} |j | ƒ} |
j | ƒtj|| ƒr|    j | ƒqqW|    sütjd|j    ƒƒt
}n|r¯tj|    ƒ} |j | ƒ} | jƒ}| jƒ}| jƒ}t||||ƒ\}}|dksƒ|dksƒ|dkr¯tjd|jƒ|j    ƒƒt
}q¯nt}|sb|jƒ}|jƒ}|jƒ}|jƒ|krt|||tjƒ\}}n|dks6|dks6|dkrbtjd|jƒ|j    ƒƒt
}qbn|s |jƒ}tjdƒ}tj||ƒ}|d}d}|dtj| |ƒ}|d    tj| |ƒ}tjd
|jƒ|||f|j    ƒƒn|jƒtj krw|j!|ƒ|j"|ƒ|j#|ƒtjd |j$ƒ|||f|j    ƒƒdS|j%|ƒ|j&|ƒ|j'|ƒtjd |j$ƒ|||f|j    ƒƒt(j)||
ƒdS( Ns´ËµØÍ¼Ã»ÓÐÖØÉúµãis´ËµØÍ¼Ã»ÓкÏÊÊÍæ¼ÒµÄÖØÉúµãs2µØÍ¼Éϲ¼µÄÖØÉúµã·¶Î§ÄÚÕÒ²»µ½¸ÃµØÍ¼(%s)µÄºÏ·¨ÖØÉúµãs,tagChinMap.txtÄÚÕÒ²»µ½¸ÃµØÍ¼(%s)µÄºÏ·¨ÖØÉúµãtPlayer_Reborn_PlaceiiisqtagBornRefresh.txtºÍtagChinMap.txtÄÚ¶¼ÕÒ²»µ½¸ÃµØÍ¼(%s)
µÄºÏ·¨ÖØÉúµã£¬ÉèÖÃÍæ¼ÒÖØÉúµãΪ´´½¨½ÇɫʱµÄ³õʼµã%s-(%s,%s)s,Íæ¼Ò%s,ÉèÖÃĬÈÏÖØÉúµãÍê±Ï mapID = %s-(%s,%s)s0Íæ¼Ò%s,ÉèÖø±±¾Ä¬ÈÏÖØÉúµãÍê±Ï mapID = %s-(%s,%s)(*RR+Rµt GetRebornPosXt GetRebornPosYRt GetGameDatatGetBornRefreshCountR0RÞRRtGetBornRefreshByIndexR}t IsSameCountryR"R#RRtGetRoundRwR R¡R¢R©tDef_RebornPos_Area_RangetGetJobRüRýtrandintR²R³R´tSetRebornMapIDt SetRebornPosXt SetRebornPosYt GetPlayerNametSetFBRebornMapIDtSetFBRebornPosXtSetFBRebornPosYRBt OnRebornPlace(RRÍR«t rebornMapIDRuRvthasBornRefreshPointtgameDatatbornRefreshCounttbornListt
fbBornListRYtbornRefreshPointt    bornIndextbRP_PosXtbRP_PosYt bRP_RoundPosthasBornPointInTxtt curPlayerJobtposListtpost    bornRange((s.\\PlayerControl.pytRefreshRebornPointès„                  $        $      
&   ,   ,cCs,|dkr|dkrdS|ddSdS(Niiii
((tcurLV((s.\\PlayerControl.pytGetRankt    sc    Csëtƒ}|dkr&tjdƒ|Sg}x¸td|jƒƒD]¡}|j|ƒ}|dksB|jƒdkr{qBn|jƒdkr“qBntj    |||j
ƒ|j ƒƒ|krÃqBn|j |ƒ|j |jƒƒqBW|S(Ns»ñÈ¡¶ÓÎéÇøÓò³ÉÔ±£¬¶ÓÎé²»´æÔÚ£¡i( tlistR9RR:RtGetMemberCountt    GetMemberRÞR°RRRR}(    tcurTeamtcenterXtcenterYtareatisLogt
playerlistRsRYt curTeamPlayer((s.\\PlayerControl.pytGetAreaTeamMember‚    s"        cCsztƒ}|dkr|SxZt|jƒƒD]F}|j|ƒ}|dks,|jƒdkreq,n|j|ƒq,W|S(s »ñȡͬµØÍ¼ÖеĶÓÔ± iN(RžR9RRRŸR RÞR}(R¡R¦RYR§((s.\\PlayerControl.pytGetMapTeamMember²    s     cCs'|tjkr#tjd|ƒn|S(Ns½ðÇ®ÀàÐÍÌîд´íÎó %s(R©tDef_MoneyType_AllRR:(Rt    moneyType((s.\\PlayerControl.pytChangeMoneyTypeÇ    scCs„|tjkr|jƒS|tjkr2|jƒS|tjkrKt|ƒS|tjkrd|jƒS|t    j
kr€t ||ƒSdS(Ni( R³tTYPE_Price_Gold_MoneytGetGoldtTYPE_Price_Gold_Papert GetGoldPapertTYPE_Price_Silver_Moneyt    GetSilvertTYPE_Price_Silver_PapertGetSilverPaperRntTYPE_Price_CurrencyDicttGetPlayerCurrency(Rt
TYPE_Price((s.\\PlayerControl.pytGetMoneyÖ    s
 
 
 
 cCsy|tjkr|jƒS|tjkr2|jƒS|tjkrK|jƒS|tjkrd|jƒSt    j
d|ƒdS(Ns#GetWarehouseMoney, moneyType:%d Erri( R³R­tGetWarehouseGoldR¯tGetWarehouseGoldPaperR±tGetWarehouseSilverR³tGetWarehouseSilverPaperRR:(RR«((s.\\PlayerControl.pytGetWarehouseMoneyò    s
 
 
 
cCs|jtj|ƒS(N(RéR©tDef_PDict_Currency(Rt currencyType((s.\\PlayerControl.pyR¶
scCs+t|tj||ƒt|||ƒdS(N(RìR©R¾tNotifyPlayerCurrency(RR¿tvalue((s.\\PlayerControl.pytSetPlayerCurrency
scCse|tjkrdStj|}|dkr0dS|dkrNt||ƒ}n|j||tƒdS(Ni(RnRµR9R¶tSendPropertyRefreshR(RR¿RÁt refreshType((s.\\PlayerControl.pyRÀ
s   cCsÍg}xdtjD]Y}tj|}|dkr5qntjƒ}||_t||ƒ|_|j|ƒqWtj    ƒ}|j
ƒ|j ƒ|_ |j ƒ|_t|ƒ|_||_tj||ƒdS(N(RnRµR9RZttagRefreshTypet RefreshTypeR¶tValueR}ttagObjInfoListRefreshR„RtObjIDRßtObjTypeRDtCountR]R^(Rt
notifyListR¿RÄt notifyStructR'((s.\\PlayerControl.pytNotifyPlayerAllCurrency
s         
    cCs|dkrtSd}d}|tjkr@|jƒ}d}n«|tjkrd|jƒ}d}n‡|tjkrˆt|ƒ}d}nc|tjkr¬|j    ƒ}d}n?|t
j krÍt ||ƒ}nt jd||jƒƒtS||kr|r|rt||ƒntStS(NiRmtGoldErrt GoldPaperErrt    SilverErrtSilverPaperErrs¸¶·Ñ½ðÇ®Òì³£ TYPE_Price = %s(RR³R­R®R¯R°R±R²R³R´RnRµR¶RR0RÞR;R(RR·tPricet
needNotifytneedMoneyCountt
notifyCode((s.\\PlayerControl.pyt    HaveMoney<
s2                       cCs|dkrgS|tjtjtjtjgkrZt||||ƒrV||ggSgS|tjkrí|jƒ}|j    ƒ}|||kr«|r§t
|dƒngS||krÇtj|ggS||}tj|gtj|ggSt j d||j ƒƒgSgS(NiRÏs¸¶·Ñ½ðÇ®Òì³£ TYPE_Price = %s(R³R­R¯R±R³R×RntTYPE_Price_Gold_Paper_MoneyR°R®R;RR0RÞ(RR·RÓRÔRwRvtneedGold((s.\\PlayerControl.pyt HaveMoneyExm
s*     
cCsÖ|dkrtS|dkr:tjd||jƒƒtS|tjkr
|jƒ}||krrt|dƒtS||}    |j    |    ƒt
|t j ƒ}
|
} |t jkrÆtd|
|ƒ} n|    | krÛ|    } n| |
krýt|t j | ƒn| |d<nG|tjkrV|jƒ} | |krBt|dƒtS|j| |ƒnû|tjkr¢t|ƒ} | |krŽt|dƒtSt|| |ƒn¯|tjkrî|jƒ}||krÚt|dƒtS|j||ƒnc|t jkr3t||ƒ}||krtSt||||ƒntjd||jƒƒtS|t jkr—||||||g}tj|jƒtj|ƒnt |||||||ƒ|rÒt|d    ||gƒntS(
Nis###---¿ÛÇ®Òì³£ = %sRÏt BourseMoneyRÐRÑRÒs¸¶·Ñ½ðÇ®Òì³£ type_Price = %st    LostMoney(!RRR0RÞRR³R­R®R;tSetGoldR¸RntTYPE_Price_BourseMoneyR©tDef_Cost_BourseBuytmaxRÂR¯R°t SetGoldPaperR±R²t    SetSilverR³R´tSetSilverPaperRµR¶tMergeServerCanCostTypetPlayerMergeEventtAddMSPlayerEventtDef_MSPEvent_PayMoneyt__PayMoneyAfter(Rt
type_PricetpricetcostTypetinfoDicttquantityt costVIPGoldRt curPlayerGoldt updPlayerGoldtcurBourseMoneytupdBourseMoneytcurPlayerGoldPapertcurPlayerSilvertcurPlayerSilverPapert curCurrencyt    eventInfo((s.\\PlayerControl.pytPayMoney™
sj     
                  c
    Csb|tjkr(t|||||ƒnc|tjkrMt||||ƒn>|tjkrlt||ƒn|tjkr‹t||ƒnt    j
|||ƒ|dkr°|nt t j |d|ƒƒ}|}|}    |tjkrøtj|}    n|tjtjgkr#|tjkr#dStj||    |||ƒtj|||||tj|ƒdS(Nigð?(R³R­t__PayMoneyAfterByGoldMoneyR¯t__PayMoneyAfterByGoldPaperR±t__PayMoneyAfterBySilverMoneyR³t__PayMoneyAfterBySilverPapertPlayerActivitytOnPayMoneyActivitytintRRR©tDef_CostType_DicttDef_Cost_UnknowntDataRecordPackt DR_UseMoneyt EventReporttWriteEvent_virtual_resourceRntDef_UserAction_Money_Use(
RRéRêRëRìRíRît    unitPricet reason_namet    eventName((s.\\PlayerControl.pyRèî
s*/cCs-tj||||ƒtj|||ƒdS(N(tPlayerCostRebatetAddCostRebateGoldtPlayerFairyCeremonyt AddFCCostGold(RRêRëRìRî((s.\\PlayerControl.pyRù= scCsEtjƒ}|jƒ||_||_||_tj||ƒdS(N(RZttagMCGoldCostReportR„tCostTypeRÓtItemIDR]R^(RRëRêRŒR'((s.\\PlayerControl.pyt__Sync_GoldCostReporth s 
            cCsdS(N((RRêRëRì((s.\\PlayerControl.pyRúv s
cCsdS(N((RRê((s.\\PlayerControl.pyRû‡ scCsdS(N((RRê((s.\\PlayerControl.pyRü sc    Cs’|dkrtS|dkr7tjd||fƒdS|tjkrÂ|jƒ|tjkrvt|d|gƒdS|j    |jƒ|ƒ|rJt
|t j |ƒt |t j ƒ|d<qJnˆ|tjkr|jƒ|tjkrt|d|gƒdS|j|jƒ|ƒn/|tjkrDt|t|ƒ|ƒn|tjkr|jƒ|tjkrƒt|d|gƒdS|j|jƒ|ƒn­|t jkr,t||ƒ}|tjkrÎdSttj||ƒ}t|||ƒ|t jkrJtj|t j |ƒt!j"|ƒqJntjd||j#ƒƒdS|rx|t j krxt|d||gƒnt$|||||ƒtS(Nis1Íæ¼Ò»ñµÃ½ðÇ®Òì³£ £¬ value = %s , priceType = %s ,t MoneyIsFullRÛs½ðÇ®ÀàÐÍ´íÎó, priceType = %sR¸(%RRR0R³R­R®R©tDef_PlayerTotalMoney_GoldR;RÝt    GiveMoneyRnRÞR¸R¯R°RáR±RâR²R³R´tDef_PlayerTotalMoney_SilverRãRµR¶tDef_UpperLimit_DWordtminRÂtTYPE_Price_RealmPointRMtDoAddSuccessProgresstSuccType_GetRealmPointR4tEventRespons_GetRealmPointRÞt__GiveMoneyAfter(    Rt    priceTypeRÁtgiveTypet addDataDictt    isSysHinttisGiveBourseMoneyRötupdValue((s.\\PlayerControl.pyRš sP  c    Cs™|tjtjgkr+|tjkr+dS|}|tjkrZtj|}||d<ntj|||||ƒtj    |||d|t
j |ƒdS(NR    i( R³R­R¯R©tDef_GiveMoney_UnknowntDef_GetType_DictRt DR_GiveMoneyRRRntDef_UserAction_Money_Get(RRRÁRRR    ((s.\\PlayerControl.pyRÝ s   0cCsB|dkrtS|tjkrR|jƒ|tjkr>t|d|gƒtSnì|tjkr”|j    ƒ|tjkr>t|d|gƒtSnª|tj
kr¦n˜|tj krè|j ƒ|tj kr>t|d|gƒtSnV|tjkr t||ƒ}||tjkr>tSntjd||jƒƒtStS(NiRs½ðÇ®ÀàÐÍ = %sÌî´íÀ²(RR³R­R®R©RR;RR¯R°R±R³R´RRnRµR¶RRR0RÞ(RRRÁRö((s.\\PlayerControl.pyt CanGiveMoney$ s. cCsdS(N((RRÍ((s.\\PlayerControl.pytPlayerAutoRestoreHPO scCsdS(N((RRÍ((s.\\PlayerControl.pytPlayerAutoRestoreMPX scCs&t|jƒƒ}|sdS|jƒS(Ni(tGetPlayerLVIpyDataRWtGetReExp(Rt    lvIpyData((s.\\PlayerControl.pytGetPlayerReExp` scCsdS(Ni((R((s.\\PlayerControl.pytGetPlayerReMoneyi scCs]|jƒ}tƒ}||kr%dSd}t|||ƒ}||krYt|dƒndS(Nit PK_lhs_202580(t
GetPKValuet GetMaxPKValuet ChangePKValueR;(RRÍtcurPlayerPKValuet
maxPKValuetaddPointt changePKValue((s.\\PlayerControl.pytAddPlayerPKValuer s       c
Cs-|jƒ}tƒ}tdt|||ƒƒ}||krA|Stjd|||f|jƒƒ|dkr}t|ƒn¬tj    }|j
|ƒt j ||ƒ}|d}||}    |s
t j |||ƒ|dkr
t j ||ƒ}|d}|d}    q
n|    r)|r)t|||    ƒn|S(s¸ü¸ÄPKÖµis7¸üÐÂPKÖµ: curPlayerPKValue=%s,newPKValue=%s,addValue=%si(R0R1RàRRRRÞt ClearPKValueR©tDef_SkillID_Redt
SetPKValueR6t FindBuffByIDtAddBuffBySkillType_NoRefurbisht__AddPKValueRedBuffTime(
RtaddValueRÍR3R4t
newPKValuet    addBuffIDt findBuffInfotredBufft addTimeValue((s.\\PlayerControl.pyR2… s,      #       
 
 
 cCsª|jƒ}|sdStj|ƒ}|jƒ|}|jƒ}ttd||ƒtjƒ}|j    |ƒt
j |||ƒt j d||||f|jƒƒdS(sSÔö¼ÓPKÖµ¶ÔÓ¦buffʱ³¤
    @param addTimeValue: Ôö¼ÓµÄbuffµ¥Î»Ê±³¤´ÎÊý, Ö§³ÖÕý¸º
    NisL    Ôö¼ÓºìÃûbuffʱ³¤: addTimeValue=%s,remainTime=%s,addTime=%s,resultTime=%s(tGetSkillR6t GetBuffTypet GetLastTimet GetRemainTimeRRàR©tDef_Max_Buff_RemainTimet SetRemainTimet    BuffSkilltPYSync_RefreshBuffRRRÞ(RRBRCt    buffSkilltbuffTypetaddTimet
remainTimet
resultTime((s.\\PlayerControl.pyR=¡ s       cCsæ|jƒ}|sdStj|ƒr)dStj|tjƒd}|sY|jdƒdS|jƒ}|sodS|j    ƒ}|j
ƒ}t t j |t|ƒƒƒ}||krâ|j|ƒtjd||f|jƒƒndS(Nis&¸üÐÂÍæ¼ÒPKÖµ: remainTime=%s,pkValue=%s(R0RõRöR6R;R©R9R:RDRGRFRÿRRRRRRÞ(Rt
curPKValueRBRLROtperPKValueTimetpkValue((s.\\PlayerControl.pytRefreshPKValueByRedBuff² s&       #cCs9|jdƒtjƒjƒ}tj|tj|ƒdS(sÇå³ýPKÖµiN(R:RRRRJtDelBuffBySkillIDR©R9(RRÍ((s.\\PlayerControl.pyR8È s cCstjddƒS(s »ñÈ¡×î´óPKÖµtPKConfigi(R¶RG(((s.\\PlayerControl.pyR1Ï scCs€|jƒ}|jƒ}tjddƒ}|t|ƒkrF|dn||}|dkrvtd||fƒ‚dSt|ƒS(Nt LVUPAddPointiiÿÿÿÿs:Íæ¼Ò»ñµÃÉý¼¶ÊôÐÔµãÒì³£, reincarnationLv = %s PlayerID = %s(RtGetReincarnationLvR¶R·RDR9t    ExceptionRÿ(RR4t
curReinCntt addPointListR5((s.\\PlayerControl.pytGetLvUp_AddPointØ s  & tModuleFightPowercBsMeZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z    RS(s%scCs||_|jƒdS(N(tmfpTypet    ClearAttr(tselfR^((s.\\PlayerControl.pyt__init__ó s    
cCs>x7tdtjƒD]#}d}t||j||ƒqWdS(Nii(RRR©tDef_Calc_AllAttrType_MAXtsetattrt_ModuleFightPower__AttrName(R`t    attrIndexRÁ((s.\\PlayerControl.pyR_û scCs>|tj}x*|jƒD]\}}|j||ƒqWdS(N(R©tCalcAttr_BattleR†tAddCalcMFPAttr(R`t allAttrListtbattleAttrDictReRÁ((s.\\PlayerControl.pytSetCalcMFPBattleAttr s cCsCd|kotjknr?|j|}t|||ƒndS(Ni(R©RbRdRc(R`ReRÁtattrName((s.\\PlayerControl.pytSetCalcMFPAttr s cCsPd|kotjknrL|j|}t||t||ƒ|ƒndS(Ni(R©RbRdRctgetattr(R`ReRÁRk((s.\\PlayerControl.pyRg s c0CsEt||jtjƒ}t||jtjƒ}t||jtjƒ}t||jtjƒ}t||jtjƒ|jƒ}t||jtj    ƒ|j
ƒ}t||jtj ƒ}t||jtj ƒ}    t||jtj ƒ}
t||jtjƒ|jƒ} t||jtjƒ} t||jtjƒ} t||jtjƒ|jƒ}t||jtjƒ|jƒ}t||jtjƒ|jƒ}t||jtjƒ|jƒ}t||jtjƒ|jƒ}t||jtjƒ}t||jtjƒ|jƒ}t||jtjƒ}t||jtj ƒ}t||jtj!ƒ}t||jtj"ƒ}t||jtj#ƒ}t||jtj$ƒ}t||jtj%ƒ|j&ƒ}t||jtj'ƒ|j(ƒ}t||jtj)ƒ|j*ƒ}t||jtj+ƒ|j,ƒ}t||jtj-ƒ}t||jtj.ƒ|j/ƒ} t||jtj0ƒ|j1ƒ}!t||jtj2ƒ}"t||jtj3ƒ}#t||jtj4ƒ|j5ƒ}$t||jtj6ƒ|j7ƒ}%t||jtj8ƒ}&t||jtj9ƒ}'t||jtj:ƒ}(t||jtj;ƒ})t||jtj<ƒ}*t||jtj=ƒ}+|j>ƒ},|j?ƒ}-t@jAdƒ}.tBtCjDd|.ƒƒ}/|/tEjFkrAtGjHd|jI|/|jJƒfƒtEjF}/n|/S(NtFightpowerFormulas2Ä£¿éÕ½Á¦³¬¹ýÊýÖµÉÏÏÞ, MfpType=%s,fightPower=%s, %s(KRmRdR©tTYPE_Calc_AttrMaxHPtTYPE_Calc_AttrATKMintTYPE_Calc_AttrATKMaxtTYPE_Calc_AttrDEFtTYPE_Calc_AttrHitt    GetCftHittTYPE_Calc_AttrMisst
GetCftMisstTYPE_Calc_AttrAtkSpeedtTYPE_Calc_SuperHitRatetTYPE_Calc_SuperHittTYPE_Calc_SuperHitReducePertGetCftSuperHitReducetTYPE_Calc_LuckyHitRatetTYPE_Calc_LuckyHittTYPE_Calc_LuckyHitRateReducetGetCftLuckyHitRateReducetTYPE_Calc_SkillAtkRatetGetCftSkillAtkRatetTYPE_Calc_SkillAtkRateReducetGetCftSkillAtkRateReducetTYPE_Calc_DamagePertGetCftDamagePertTYPE_Calc_AttrDamReducetGetCftDamReducetTYPE_Calc_HPRestorePertTYPE_Calc_DamBackPertGetCftDamBackPertTYPE_Calc_AttrSpeedtTYPE_Calc_PetMinAtktTYPE_Calc_PetMaxAtktTYPE_Calc_PetDamPertTYPE_Calc_AttrIceAtktTYPE_Calc_AttrIceDeftTYPE_Calc_IgnoreDefRatetGetCftIgnoreDefRatetTYPE_Calc_IgnoreDefRateReducetGetCftIgnoreDefRateReducetTYPE_Calc_DamChanceDeftGetCftDamChanceDeftTYPE_Calc_BleedDamagetGetCftBleedDamagetTYPE_Calc_AtkBackHPPertTYPE_Calc_FaintRatetGetCftFaintRatetTYPE_Calc_FaintDefRatetGetCftFaintDefRatetTYPE_Calc_FinalHurttTYPE_Calc_FinalHurtReducetTYPE_Calc_DamagePerPVPtGetCftDamagePerPVPtTYPE_Calc_DamagePerPVPReducetGetCftDamagePerPVPReducetTYPE_Calc_ComboRatetTYPE_Calc_ComboDamPertTYPE_Calc_MaxProDeftTYPE_Calc_ProDefAbsorbtTYPE_Calc_OnlyFinalHurttTYPE_Calc_PVPAtkBackHPtGetCftAtkSpeedtGetCftLuckyHitR¶RGtevaltFormulaControltGetCompileFormulaRnRRR:R^t GetMFPAttrStr(0R`tfpParamtMaxHPtMinAtktMaxAtktDeftHittMisstAtkSpeedt SuperHitRatetSuperHittSuperHitReducet LuckyHitRatetLuckyHittLuckyHitRateReducet SkillAtkRatetSkillAtkRateReducet    DamagePert    DamReducet    HPRestoret
DamBackPert
SpeedValuet    PetMinAtkt    PetMaxAtkt    PetDamPertIceAtktIceDeft IgnoreDefRatetIgnoreDefRateReducet DamChanceDeft BleedDamaget    AtkBackHPt    FaintRatet FaintDefRatet    FinalHurttFinalHurtReducet DamagePerPVPtDamagePerPVPReducet    ComboRatet ComboDamPert    MaxProDeft ProDefAbsorbt OnlyFinalHurtt PVPAtkBackHPtAtkSpeedParametertLuckyHitParameterRnttotalFightPower((s.\\PlayerControl.pytGetModuleFightPower sd#################  # cCsid}x\tdtjƒD]H}|j|}t||ƒ}|dkrMqn|d||f7}qW|S(NRmiis%s=%s,(RRR©RbRdRm(R`tattrStrReRkt    attrValue((s.\\PlayerControl.pyR¯Z s  (
t__name__t
__module__RdRaR_RjRlRgRÞR¯(((s.\\PlayerControl.pyR]ë s                          ;RscBs”eZeZiZd„Zd„Zd„Zd„Zd„Z    d„Z
e j e d„Zd„Zd„Zed    „Zd
„Zd „Zeeed „Zd „Zed„Zd„Zeed„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z e d„Z!d„Z"d„Z#d„Z$d„Z%d„Z&d„Z'd„Z(d „Z)d!„Z*d"„Z+d#„Z,d$„Z-d%„Z.d&„Z/RS('cCs ||_dS(N(t_PlayerControl__Player(R`tiPlayer((s.\\PlayerControl.pyRat scCs8|jj|ƒ}|s4t|ƒ}||j|<n|S(N(t_PlayerControl__fpTypeObjDictR…R](R`tfpTypetfpObj((s.\\PlayerControl.pytGetModuleFightPowerObj{ s
 cCs(x!|jjƒD]}|jƒqWdS(N(RåRaR_(R`tobj((s.\\PlayerControl.pytResetFightPowerObj… scCs^|j}|jƒ}t|ƒ}|dkrZ||}tj|d|ƒ|j|ƒndS(NitLvUP(Rãt GetFreePointR\Rt DR_Freepointt SetFreePoint(R`Rt curFreePointR5t setFreePoint((s.\\PlayerControl.pyt__DoLVUPAddPointŽ s       
cCsš|dks|ddkr tS|j|dƒ}|dkrX|jƒtjkrXtS|dkr–tj|ƒtkr–t    j
d|j ƒƒtSntS(Nii
iids´¥·¢·â¾ôÈÎÎñʧ°Ü( Rt FindMissionR9tGetStateR©tDef_Mission_State_OverR4tEventResponse_LVFullRRR0RÞ(R`RRœt
curMission((s.\\PlayerControl.pyt__LVUpDoInvestiture¢ s! cCsUtjdƒ}|jƒ}|d}tjdƒ}||krQ||d}n|S(NtReincarnation_Conditionit PlayerMaxLVi(RüRýRXR¶RG(R`RtReincarnation_ConditionDictRZt nextReinCntt
nextReinLV((s.\\PlayerControl.pytGetNextReincarnationLVº s 
 cCsÛ|j}|j||||ƒ\}}|rutjƒ}|tj|_|tj|_||_t    j
||ƒnt j ƒj ƒtjkr¦tj|||ƒn|r×t jƒr×tj|jƒtj|ƒn|S(N(Rãt_PlayerControl__AddExpRZt tagMCAddExpR©tDef_PerPointValuetExpPointtExptSourceR]R^RR+R²R³R´RBtOnGetExpR@RåRæRÞtDef_MSPEvent_AddExp(R`taddExpt expViewTypeR Rt finalAddExpt expNotifyTypeR'((s.\\PlayerControl.pytAddExpÊ s         cCsW|dkr||fS|jƒtj|jƒ}tjddƒ}tjddƒ}|jƒ}||kr¯||kr¯|j|dƒtj    d||j
ƒƒd|fS|t j kr
|j tjƒ}    tj|ddtjƒ}
|    |
7}    |
rOt j}qOnE|t jt jgkr1|jƒ}    nttjƒjƒtjƒ}    t||    ttjƒƒ}tj||ƒ}||kr©t|td||ƒƒ}n|dkrÌtj    dƒd|fS||} | tj} | tj} |jƒ| kr|j | ƒn|jƒ| kr4|j!| ƒn||krM|j"ƒn||fS(NiRùit MaxLVExpStoretGeRen_admin_825676s¾­ÑéÒÑÂú£¡ÒÑÂú¼¶£¡curLV=%ss ÎÞ·¨»ñµÃ¾­Ñé(#t GetExpPointR©Rt GetTotalExpR¶RGRWt_PlayerControl__NotifyExpFullRRRÞRntDef_ViewExpType_KillNPCR    tDef_PlayerKey_TotalExpRateRHt!GetPassiveSkillValueByTriggerTypeR9tTriggerType_AddExpRatetDef_ViewExpType_KillNPCSupertDef_ViewExpType_GameEventtDef_ViewExpType_SittGetGameEventExpRateRàRt
GetExpRatetDef_MaxRateValueRÿRR tChangeExpByWallowRt SetExpPointt SetTotalExpt
PlayerLvUp(R`RRRR t curTotalExptmaxLVt maxLVExpStoreRœtexp_ratet    superRatettotalExptcurExptexpPoint((s.\\PlayerControl.pyt__AddExpà sH 
 
 
 
$
    cCs?|jtjƒ}|s;t||ƒ|jtjdƒndS(Ni(R    R©tDef_PlayerKey_ExpFullNotifyR;R (R`RtexpFullNotifyMarktexpFullNotifyState((s.\\PlayerControl.pyt__NotifyExpFullZs
 cCsé|j}|jƒdkrdStjd|jƒƒ}|sXtjd|jƒƒdS|jƒtj    |j
ƒ}|dkr…dS|jƒtj    |j ƒ}||kr²dSt }|jƒ}tj ddƒ}|jƒ|jƒ}    |jƒ}
|jƒ} |jƒ} |jƒ} |jƒ}|jƒ}xô||kr*||kr*t}|d}t}|dkrzt }n|j||ƒtj|ƒtj||jƒt|ƒ|ƒ|jƒt|jƒƒ}|rôtj||j ƒƒnt!j"|ƒ||}t#|ƒ}|dkr7Pq7q7W|j$ƒ|rØ|jƒ}|jƒ}|jƒ}|jƒ}|jƒ}|jƒ}||
kr¸|j|t ƒt%j&|t'j(|ƒn|| krÔ|j)|ƒn|| krð|j*|ƒn|| kr |j+|ƒn||kr(|j,|ƒn||krD|j-|ƒnt.j/|ƒt0j1|ƒ|j2dt3j4ƒt5j6|ƒ|j7|j8ƒƒ|j9ƒdkr¹|j:|j9ƒƒnt;j<|t'j=|jƒƒnt>||ƒdS(NitPlayerLVs¾­Ñé±íÒì³£  lv= %sRùii2t billboardFunc(?RãR°R¶tGetIpyGameDataRWRR:R R©RtGetExpRRRGtBeginRefreshStatetGetXPRìt
GetBaseSTRt
GetBasePNEt
GetBasePHYt
GetBaseCONRtSetLVRtWriteEvent_level_upRtDR_PlayerUpgradetGetPlayerTotalExpt_PlayerControl__DoLVUPAddPointR*tPlayerGreatMastertAddGreatMasterSkillPointByLVtGetTalentPointR4tEventResponse_LVUptGetLVUPTotalExpNeedtEndRefreshStateRMtUptateSuccessProgressRntSuccType_HeroLVRît
SetBaseSTRt
SetBasePNEt
SetBasePHYt
SetBaseCONt GameFuncCommtDoFuncOpenLogictChEquiptCalcEquips_OutOfPrinttRefreshPlayerAttrStateRutUpdatePlayerLVBillboardtPlayerWorldAverageLvtUpdatePlayerWorldAverageLvtSetHPtGetMaxHPtGetMaxMPtSetMPtOpenServerCampaigntUpdOpenServerCampaignRecordDatatDef_Campaign_Type_LVtSetPlayerTotalExp(R`thandLvUpRR,t lvUpNeedExpRtplayerNeedDoLVUpRœRtbefXPtbefLVt befFreePointt
befBaseSTRt
befBasePNEt
befBasePHYt
befBaseCONtisNotifyServertaftLVt aftFreePointt
aftBaseSTRt
aftBasePNEt
aftBasePHYt
aftBaseCON((s.\\PlayerControl.pyRfs’       
 
      "
 
 
                c Cs>|jƒ}|jƒ}tjd|dƒ}tjd|dƒ}|sbtjd||ƒdS|s€tjd||ƒdS|jƒ}|jƒ}|jƒ}|j    ƒ}    |j
ƒ}
|j ƒ} |j ƒ} |j ƒ} |jƒ}tjd|| || || |    ||
f    ƒgtdƒD] }i^q%}tjddƒ}||kr‰x1||jƒD]\}}t|||ƒqfWnxL|jƒD]>\}}ttjd    ||f|ƒƒ}t|||ƒq–WxL|jƒD]>\}}ttjd
||f|ƒƒ}t|||ƒqåWt|tj|ƒdS( Ns
LVUPAttr%sis PointAttr%ssÎÞ´ËÖ°ÒµµÈ¼¶Ë¢ÊôÐÔÅäÖÃ!job=%ssÎÞ´ËÖ°ÒµÊôÐÔµãË¢ÊôÐÔÅäÖÃ!job=%ssFCalcRoleBaseAttr LV=%s,STR=(%s~%s),PNE=(%s~%s),PHY=(%s~%s),CON=(%s~%s)itCreatRoleBaseAttrs LVUPAttr%s_%ssPointAttr%s_%s(RRR¶R·RR:RWtGetSTRtGetPNEtGetPHYtGetCONR1R2R3R4RRR†tCalcAttrDict_TypeR¬R­R®tSetCalcAttrListValueR©tDef_CalcAttrFunc_RoleBase(R`RR4tjobt
lvAttrDictt pointAttrDicttLVtSTRtPNEtPHYtCONtbaseSTRtbasePNEtbasePHYtbaseCONt_RhtroleBaseAttrDictt    attrEffIDRÁtformulat    calcValue((s.\\PlayerControl.pytCalcRoleBaseAttrîsD               # ""cCsÉ|j}g}g}|jtjƒ}x¦|jƒD]˜\}}tj||ƒ\}}    }
} |    sjq4n|r‚||kr‚q4ntjƒ} |    | _    || _
|
r¶|j | ƒn| r4|j | ƒq4q4W|r5tj ƒ} | j ƒ|jƒ| _|jƒ| _t|ƒ| _|| _    tj|| ƒnt|ƒdkr©tj ƒ} | j ƒ|jƒ| _|jƒ| _t|ƒ| _|| _    t|| tdƒn|sÅ|jtjdƒndS(Niiÿÿÿÿi(RãR    R©t Def_PlayerKey_NotifyAllAttrStateR†t    EffGetSettGetValueByEffIndexExRZRÅRÆRÇR}RÈR„RRÉRßRÊRDRËR]R^R*RR (R`tplayerStateDictRtnotifySelfListt notifyAllListtnotifyAllAttrStateR"RÁtcurPlayerStatetattrTypeR(t    notifyAllRÍR'((s.\\PlayerControl.pytNotifyAllState%sH              
     
    cCs+tjdƒ|jƒ|j||ƒdS(NsStart RefreshAllState!!!(RRtRefreshPlayerActionStateRJ(R`t
isSyncBuffR,tisForce((s.\\PlayerControl.pyRt\s 
cCs2tjdƒ|j}xtjD]}t||ƒq W|jƒtj|ƒt    j
|ƒt j |ƒt j|ƒtj|ƒtj|ƒtj|ƒtj|ƒtj|ƒtj|ƒtj|ƒtj|ƒtj|ƒt j!|ƒt"j#|ƒt$j%|ƒ|j&dt'ƒtjdƒdS(NsStart ReCalcAllState!!!RŽsEnd ReCalcAllState!!!((RRRãR©tCalcAttrFuncListtClearCalcAttrListValuetRefreshAllSkillRHtRefreshPlayerEquipAttributet
PlayerWingt CalcWingAttrR1tCalcHorseAttrExtPlayerPrestigeSystCalcOfficialRankAttrtPlayerGodWeapontCalcGodWeaponAttrtPlayerDienstgradtCalcAllDienstgradAttrt    PlayerPettCalcPetItemAddPlayerAttrt
PlayerRunetRefreshRuneAttrtPlayerMagicWeapontCalcMagicWeaponAttrtCalcMagicWeaponSoulAttrRMtCalcSuccessAttrt    PlayerVipt CalcVIPAttrtPlayerRefineStovet CalcStoveAttrtPlayerFamilyTechtCalcFamilyTechAttrtPlayerEquipDecomposet RefreshEDAttrt
PlayerDogztRefreshDogzAttrRtR(R`Rt    funcIndex((s.\\PlayerControl.pytReCalcAllStatehs0     
                 cCs3|j}|jtjdƒ|r/|jƒntS(Ni(RãR R©tDef_Player_RefreshAttrByBufftRefreshPlayerAttrByBuffExR(R`RŽR((s.\\PlayerControl.pytRefreshPlayerAttrByBuffˆs
     cCså|j}|jtjƒdkr%dStjdƒ|jƒ}t|ƒ}i}x:tdtj    ƒD]&}|j
it j ||ƒ|6ƒqcW|j ƒt j|ƒ|jƒ|j|||ƒ|jtjdƒtjdƒdS(Nis"Start RefreshPlayerAttrByBuffEx!!!is End RefreshPlayerAttrByBuffEx!!!(RãR    R©R°RRROt GetSpeedValueRRRbtupdateR‚tGetValueByEffIndexR/tRestorePlayerFuncAttrt_PlayerControl__RefreshBuffAttrt'_PlayerControl__DoRefreshAttrAfterLogicR (R`Rt beforeMaxHPtbeforeMoveSpeedValueR„R"((s.\\PlayerControl.pyR±‘s        $
 
 cCs[|j}|jtjdƒ|rD|tjkrDtjj|ƒn|rW|jƒndS(Ni(RãR R©tDef_Player_RefreshAttrR@tg_refreshAttrBillboardFuncR}tRefreshPlayerAttrStateEx(R`R,RŽR((s.\\PlayerControl.pyRJ¹s     cCsld}xHtdtjƒD]4}tj||ƒ}|rd|||f}qqWtjd||fƒdS(NRmis%s,%s=%ss%s AttrInfo=%s(RRR©RbR‚RµRR(R`RtmarktattrInfoR"RÁ((s.\\PlayerControl.pyt    PrintAttrÅsc.Cs=    |j}|jtjƒdkr%tStjdƒ|jƒ}t|ƒ}i}x:t    dtj
ƒD]&}|j it j ||ƒ|6ƒqcW|jƒ|jƒ|jƒi}i}gtdƒD] }i^qÄ}    g}
xÉtjD]¾} | tjkr'|
jgtdƒD] }i^qƒqæn| tjkrI|
j|    ƒqænt|| ƒ} tjd| | fƒ|
j| ƒt|| tjƒt|| tjƒqæW|s´|rîtjd||fƒtj||ƒtj||ƒn|j|ƒt|tjƒ}    |    |
tj<tjdtj|    fƒt|
tj |
tj!|
tj"gƒ} t|
tj| |
tj#gƒ}i|tj$6|tj%6|tj&6|tj'6|tj(6| tj)6|
tj tj*6|
tj"tj+6|
tj!tj,6|
tj!tj-6|
tj.tj/6|
tj.tj06|
tj1tj26|
tj1tj36|
tj1tj46|
tj5tj66|
tj7tj86|
tj9tj:6|
tj;tj<6|
tj=tj>6|
tj#tj?6}i}xt@|
ƒD]\}}|tjA}|súqÕni}xÃ|jBƒD]µ\}}||ks |tjCkr:q n|tDtjEƒ}tjC|}||tjF}xT|D]L}||krŠqrn||}tG||ƒ}|jH|dƒ|||<qrWq W|rÕ|||<qÕqÕWtjd|ƒx5|jBƒD]'\}}tjI|
|tjF|ƒqûWg}gg}}xSt@|
ƒD]E\} } | tjJkr~|j| ƒ|j| ƒqF|j| ƒqFWt|ƒ} tjd|ƒtjd    | ƒt|ƒ}!tjd
tjJƒtjd |!ƒi}"xtjKjBƒD]\}#}$tL|$ƒdkr3|
|$d}%n#tg|$D]}|
|^q=ƒ}%|jM|#ƒ}&|&jN|%ƒ|%tjA|"|&<qWgtdƒD] }i^q”}'tOjP||'ƒx,tjD]!} t|'t|| ƒgƒ}'qÀWtjd |'ƒi}(t|(| tjAƒt|(|!tjAƒt|(|'tjAƒtjd |(ƒtj|| tjFƒtj||(|"ƒ|jQƒ})tRjSd|)ƒ}*i}+xŒ|"jTƒD]~}&|*s¶dn |&jU|*ƒ|+|&jV<|+|&jV|jtjW|&jVƒ|+|&jV<|+|&jV|jtjX|&jVƒ|+|&jV<q¤Wtj||!tjFƒtj||'tjFƒt jY|ƒ|jZƒ|j[|||ƒ|j\||ƒ|j]||+ƒtLt^j_ƒ},xV|,dkr    t^j_r    |,d8},t^j_j`dƒ}-tjd|-ƒ|-|dtaƒq°W|jbtjdƒ|jbtjcdƒtjdƒtaS(s« ±¾ÏîĿˢÊôÐÔ¹æÔò
                ¹¦ÄÜÊôÐԲ㼶һ(ÏßÐԲ㼶¡¢·ÇÏßÐԲ㼶)
                ¹¦ÄÜÊôÐԲ㼶¶þ(ÏßÐԲ㼶¡¢·ÇÏßÐԲ㼶)
                ...
                ¹Ì¶¨ÊôÐԲ㼶
              buff²ã¼¶
              
            1. ³õʼ»¯
            
            ¹¦ÄÜÊôÐԲ㼶һ¡¢
            2.»ù´¡ÊôÐÔ¼ÆËã
            3.Õ½¶·ÊôÐÔ¼ÆËã
                ÏßÐԲ㼶ÊôÐÔ:  »ù´¡²ã¼¶ÊôÐÔ + ¹¦Äܲ㼶ÊôÐÔ
                    »ù´¡²ã¼¶ÊôÐÔ£º½ÇÉ«»ù´¡ÊôÐÔ£¨µÈ¼¶ÌáÉý + ÊôÐÔµãÌáÉý£© + ×°±¸ÎïÆ·±í»ù´¡ÊôÐÔ + ²¿Î»Ç¿»¯»ù´¡ÊôÐÔ
                    ¹¦Äܲ㼶ÊôÐÔ£ºÉñ±ø + ×øÆï + È«Éí²¿Î»Ç¿»¯ÐǼ¶ÀÛ¼Ó + Õ䯷 + Ê±×° + Ì××° + ±¦Ê¯ + Õ½Ã˿Ƽ¼ + ·ûÎÄ + ÊØ»¤ µÈ
                    
                                    ×¢Ò⣺¸Ã²ãÖл¹°üº¬Õë¶Ô»ù´¡ÊôÐÔ»ò¹¦ÄÜÊôÐÔµÄÊýÖµ°Ù·Ö±ÈÌáÉý£¬´ËÌáÉýÖµÒ²ÊÇÀÛ¼Óµ½ÏßÐԲ㼶ÊôÐÔ
                                    Èç: ¡¾»ù´¡¹¥»÷°Ù·Ö±È¡¿¼´¶Ô »ù´¡ÊôÐÔ Öй¥»÷ÊôÐÔ°Ù·Ö±ÈÌáÉý
                                    ¡¾Éñ±øÉúÃüÊôÐ԰ٷֱȡ¿¼´¶Ô Éñ±ø¹¦ÄÜÊôÐÔ ÖÐÉúÃüÊôÐÔ°Ù·Ö±ÈÌáÉý
                                    ÀàËÆ´ËÀàÊôÐÔ²¢²»ÊÇÕæÕýÒâÒåÉϵķÇÏßÐÔÊôÐÔ£¬½öÊǶÔij¸ö¹¦ÄÜ»ò¹¦ÄÜ×éµÄ¶ÔÓ¦ÊôÐÔ½øÐаٷֱÈÌáÉý£¬×îÖÕµÄÌáÉýÖµ»¹ÊÇËãÈçÏßÐÔÊôÐÔ²ã
                    
                ·ÇÏßÐԲ㼶ÊôÐÔ: ¼´ÕûÌå²ã¼¶°Ù·Ö±ÈÔö¼ÓÊôÐÔ
                    Ö±½ÓÒÔµ±Ç°ÊôÐÔΪ»ùÖµ½øÐÐÊôÐÔ°Ù·Ö±ÈÌáÉý
            ¹¦ÄÜÊôÐԲ㼶¶þ¡¢
            ...
              
            4.¹Ì¶¨ÊôÐÔ:
                    ¸½¼ÓµÄ¹Ì¶¨ÖµÊôÐÔ£¬¸ÃÊôÐÔÔÚ·ÇÏßÐÔ¼ÆËãÖ®ºó£¬Ö±½ÓÀÛ¼Ó£¬²»ËãÈë·ÇÏßÐÔÊôÐԵĻùÖµ
            
            5.¼ÆËãÒÔÉÏËùÓÐÊôÐÔµÄÕ½¶·Á¦
            
            6.buff²ã¼¶£º
                    ¹Ì¶¨Öµbuff£¬ Ö±½ÓÀÛ¼ÓÊýÖµ
                    °Ù·Ö±Èbuff£º ÕæÕýµÄ×î×î×îÍâ²ã£¬Ö±½Ó°´°Ù·Ö±ÈÌáÉý¶ÔÓ¦µÄÊôÐÔÖµ
                    ×¢£º¸Ã²ãÌáÉýµÄÊôÐÔ²»ËãÕ½¶·Á¦
        is!Start RefreshPlayerAttrStateEx!!!is¹¦ÄܵãÊôÐÔ: %s, %ss1¹¦Äܸ½¼Óµã: baseAttrDict=%s,baseAttrNolineDict=%sis½»²æÓ°ÏìÊôÐÔ: %ssÕûÌå²ã¼¶¹¦Äܵã: %ssÕûÌå²ã¼¶ÏßÐÔÊôÐÔ: %ss¸½¼Ó²ã¼¶¹¦Äܵã: %ss¸½¼Ó²ã¼¶ÏßÐÔÊôÐÔ: %ssÎÞÕ½Á¦±»¶¯ÊôÐÔ: %ss×îÖÕ·ÇÏßÐÔÊôÐÔ: %stFightPowerParams»Øµ÷ÅÅÐаñ: %st isForceUpdatesEnd RefreshPlayerAttrStateEx!!!(dRãR    R©R»RRRROR³RRRbR´R‚RµR/RêtInitPlayerStateRRtCalcAttrExFuncListNoFightPowerR}RntGetCalcAttrListValuetAddAttrDictValuet CalcAttr_BasetCalcAttr_BaseNolinetCalcLineEffectt ChangePlayerAttrInLineEffectListtCalcNoLineEffectt"ChangePlayerAttrInNoLineEffectListR€tAddAttrListValuet Def_CalcAttrFunc_EquipBaseWeapontDef_CalcAttrFunc_EquipBaseArmort Def_CalcAttrFunc_EquipBaseRelicstDef_CalcAttrFunc_PlusBasetTYPE_Calc_BaseAtkAddPertTYPE_Calc_BaseMaxHPAddPertTYPE_Calc_BaseDefAddPertTYPE_Calc_BaseHitAddPertTYPE_Calc_BaseMissAddPertTYPE_Calc_EquipBaseAddPertTYPE_Calc_WeaponAtkAddPertTYPE_Calc_RelicsAtkAddPertTYPE_Calc_ArmorMaxHPAddPertTYPE_Calc_ArmorDefAddPertDef_CalcAttrFunc_GodWeapontTYPE_Calc_GodWeaponMaxHPPertTYPE_Calc_GodWeaponAtkPertDef_CalcAttrFunc_StonetTYPE_Calc_StoneMaxHPPertTYPE_Calc_StoneAtkPertTYPE_Calc_StoneBasePertDef_CalcAttrFunc_PrestigetTYPE_Calc_RealmBasePertDef_CalcAttrFunc_HorsetTYPE_Calc_HorseAtkPertDef_CalcAttrFunc_HorcruxtTYPE_Calc_HorcruxBasePertDef_CalcAttrFunc_WingtTYPE_Calc_WingHPPertDef_CalcAttrFunc_SuittTYPE_Calc_SuiteBasePertTYPE_Calc_PlusBaseAtkPert    enumeratetCalcAttr_BattleNolineR†tFuncNoLinearAttrDictRRRfRÿR…t AddDictValuetCalcAttrExFuncListtMFPTypeAttrFuncIndexDictRDRèRjR:tCalcPassiveAttr_EffectRWR¶R-RERÞR^tDef_PlayerKey_MFPSkilltDef_PlayerKey_MFPExtCopyPlayerFuncAttrR·R¸t_PlayerControl__SyncBaseAttrtSendModuleFightPowerPackR@R¼RKRR R°(.R`RR¹RºR„R"t baseAttrDicttbaseAttrNolineDictR{troleBaseAttrInfotfuncAttrInfoListR®R¿tequipBaseAttrListt baseAttrListtfuncAttrPerInfotfuncAddAttrPerInfoDictRYt funcAttrListtbattleNoLineAttrDictt addAttrDicttnoLineAttrTypet
addAttrPertattrRatetaddAttrTypeListt useAttrDictR‰t    baseValueR>tallFuncAttrIndexListtallFuncAttrInfoListtattrInfoExListRht allAttrExListtmfpObjAttrDictR^tattrFuncIndexListt mfpAttrListtmfpObjtskillNoFightPowerAttrListtallNoLineAttrDictRœR°tmfpDictt billFuncCntR,((s.\\PlayerControl.pyR½Îs%       $
 
 
&      
 
 
 
 
 
 
"    #  "+/ 
 
 cCsÄ|j}gtdƒD] }i^q}tj||ƒtj||ƒ|tj}tj    ||dt
ƒ|tj }t j ||dt
ƒ|j|ƒ|jƒtjd|ƒ|jƒdS(Nit
isBuffAttrsBuff²ãÊôÐÔ: %s(RãRR:tCalcBuffers_EffecttGameLogic_DuJietCalcDujieFBAttrAddR©RïRËRÌRRfRÉRÊt _PlayerControl__RefreshMoveSpeedt_PlayerControl__SetAtkIntervalRRt_PlayerControl__DoRefreshGMAttr(R`RR{tallAttrListBuffstbattleNolineAttrBufftbattleAttrBuff((s.\\PlayerControl.pyt__RefreshBuffAttrÛs       
 
cCsl|j}tjƒ}|tjkr(dS|jƒtjkrAdStj    ƒ}|j
ƒs]dStj |j ƒƒ}d}d}x˜t|j
ƒƒD]„}|j|ƒ}|jƒs¸q‘n|jƒ}    |jƒ|    krÜq‘n|jƒ}
|
|krþ|}Pn|
r‘| r‘|}q‘q‘W|s2|s)dS|}ni} |jƒ} |jƒ} |jƒ}| rÙ| dkr}|jƒ} nt| ƒ}|rÙt|jƒ|ƒ| tj<t|jƒ|ƒ| tj<t|jƒ|ƒ| tj<t|jƒ|ƒ| tj <t|j!ƒ|ƒ| tj"<t|j#ƒ|ƒ| tj$<t|j%ƒ|ƒ| tj&<t|j'ƒ|ƒ| tj(<t|j)ƒ|ƒ| tj*<t|j+ƒ|ƒ| tj,<t|j-ƒ|ƒ| tj.<t|j/ƒ|ƒ| tj0<t|j1ƒ|ƒ| tj2<t|j3ƒ|ƒ| tj4<t|j5ƒ|ƒ| tj6<t|j7ƒ|ƒ| tj8<t|j9ƒ|ƒ| tj:<t|j;ƒ|ƒ| tj<<t|j=ƒ|ƒ| tj><t|j?ƒ|ƒ| tj@<qÙnx$| jAƒD]\}}|| |<qæWgtBdƒD] }i^q }xC| jAƒD]5\}}|sQ| jC|ƒq,ntD|||ƒq,W|r¥x7|tjEjAƒD]\}}tFjG|||ƒqWn|jHƒ}gtBdƒD] }i^q¾}x*|jAƒD]\}}tD|||ƒqÝWtIjJ||tjEƒtjKd|jLƒ|fƒtjKd| || | |fƒtjKd||fƒdS(Niis*GM²âÊÔÉèÖÃÊôÐÔ: GMAttrID=%s,playerAccID=%ssH    GMµÈ¼¶ÊôÐÔ: GMAttrLV=%s,attrPer=%s,setAttrDict=%s,specAttrDict=%s,%ss     GM¸½¼ÓÊôÐÔ: attrExDict=%s,%s(MRãRt GetPlatformtGMShelltTestPlatformListt
GetGMLevelR©t Def_GM_LV_GodR¶tIPY_DatatGetGMAttrCounttGetPlatformAccIDR R9RRtGetGMAttrByIndext
GetIsValidt
GetGMMaxLVRWt
GetGMAccIDtGetAttrSpecDictt    GetAttrLVt
GetAttrPerR*Rÿt
GetReMaxHPtAttrName_MaxHPtGetReAtkt AttrName_AtktGetReDeft AttrName_DeftGetReHitt AttrName_Hitt    GetReMisstAttrName_DefRatet GetReAtkSpeedtAttrName_AtkSpeedtGetReSkillAtkRatetAttrName_SkillAtkRatetGetReDamagePertAttrName_DamagePertGetReDamReducetAttrName_DamReducePertGetReIgnoreDefRatetAttrName_IgnoreDefRatetGetReLuckyHitRatetAttrName_LuckyHitRatet GetReLuckyHittAttrName_LuckyHittGetReBleedDamagetAttrName_BleedDamaget GetReIceAtktAttrName_IceAtkt GetReIceDeftAttrName_IceDeft GetRePetAtktAttrName_PetAtktGetRePetSkillAtkRatetAttrName_PetSkillAtkRatetGetRePetDamPertAttrName_PetDamPertGetReFinalHurttAttrName_FinalHurttGetReFinalHurtReducetAttrName_FinalHurtReduceR†RRKRlRfR‚tSetValueByEffIndext GetAttrExDictRÉRÊRt GetGMAttrID(R`Rtplatformt
ipyDataMgrt playerAccIDt    gmIpyDatat commIpyDataRYtipyDatatgmMaxLVtgmAccIDt setAttrDictt specAttrDicttattrLVtattrPerR,R‰RàR{t gmAttrSetInfoRRÁt
attrExDictt gmAttrExInfo((s.\\PlayerControl.pyt__DoRefreshGMAttr÷sž                     #       cCsÏ|j}|jƒ}td||ƒ}|dkrx|dkrx|jƒtjkrx|jt|jƒ||ƒƒn|j    ƒ|j
|ƒ|t |ƒkr·t |t |ƒƒn|j ƒt|ƒdS(sßË¢Íê×ÜÊôÐÔ(¹¦ÄÜÊôÐÔ + buffÊôÐÔ) ºóÐèÒª´¦ÀíµÄÂß¼­
            °üº¬Ò»Ð©ÊýÖµ¾ÀÕý¡¢ÊôÐÔ±ä¸ü֪ͨµÈ
            @attention: ´Ëº¯ÊýΪˢ ¹¦ÄÜÊôÐÔ ¼° buffÊôÐԠͨÓÃÂß¼­£¬ËùÒÔ²»ÊÇÊÜbuffÓ°ÏìµÄÏà¹Ø´¦ÀíÇë²»Òª·ÅÕâÀ±ÈÈçÕ½¶·Á¦µÈ
        iN(RãRORàRÎR³tpaDieRNRR°R?R‹R³t SetSpeedValuet_PlayerControl__RestoreHPMPtSync_ExpRateChange(R`R¹RºR„Rt
afterMaxHPtaddMaxHP((s.\\PlayerControl.pyt__DoRefreshAttrAfterLogicVs     -#
 
 
cCsš|tj}itjtjgtj6tjtjgtj6tj    tj
gtj 6tj tj gtj6tjtjgtj6tjtjgtj6}g}x‘|jƒD]ƒ\}}|\}}    |j|dƒ}
|j|ƒ} |
| krª|j||
ƒtjƒ} |    | _|
| _|j| ƒqªqªW|r–tjƒ} | jƒ|j ƒ| _!|j"ƒ| _#t$|ƒ| _%|| _t&j'|| ƒndS(Ni((R©RftDef_PlayerKey_BaseAtkMinRntCDBPlayerRefresh_BaseAtkMinRptDef_PlayerKey_BaseAtkMaxtCDBPlayerRefresh_BaseAtkMaxRqtDef_PlayerKey_BaseMaxHPtCDBPlayerRefresh_BaseMaxHPRotDef_PlayerKey_BaseDeftCDBPlayerRefresh_BaseDefRrtDef_PlayerKey_BaseHittCDBPlayerRefresh_BaseHitRstDef_PlayerKey_BaseMisstCDBPlayerRefresh_BaseMissRuR†R…R    R RZRÅRÆRÇR}RÈR„RRÉRßRÊRDRËR]R^(R`RRÿtbaseBattleAttrDicttattrTypeKeyDictt notifySListR‰R¿tattrKeyRÄR
t curBaseValueRÍR'((s.\\PlayerControl.pyt__SyncBaseAttrts6             
    cCsÕ|j}|jƒ}x(tjD]}|jtj|dƒqWxtd|jƒƒD]j}|j    |ƒ}tj
j |j ƒtj ƒ}|jtj|ƒ}|jtj|||jƒƒqVWtj|ƒdS(Ni(RãtGetSkillManagerRntModuleFightPowerTypeListR R©RõRt GetSkillCounttGetSkillByIndextDef_SkillFuncType_MFPTypeR…t GetFuncTypetDef_MFPType_RoleR    t GetFightPowerRœtSetPetSkillFightPower(R`Rt skillManagerR^RYtcurSkilltskillMFP((s.\\PlayerControl.pyR‘œs     % c    CsÔ|j}tjƒj|ƒ}|s(dStjj|jƒtj    ƒ}|j
ƒ|}|j tj |ƒ}|j tj |td||ƒƒtjd||||||f|jƒƒ|rÐ|jƒndS(NisSˢм¼Äܸ½¼ÓÕ½¶·Á¦: skillID=%s,beforeFightPower=%s,mfpType=%s,skillMFP=%s,updMFP=%s(RãRR{tGetSkillBySkillIDR©R‰R…RŠRnR‹RŒR    RõR RàRRÞRJ(    R`tskillIDtbeforeFightPowertisRefreshStateRRR^t addFightPowerR((s.\\PlayerControl.pytRefreshSkillFightPowerEx²s    $    $ cCsdS(N((R`((s.\\PlayerControl.pytCalcPassiveBuffAttrÉsc
Csªg}d}tjdtjƒtjd|ƒxi|jƒD][\}}t|||ƒtjƒ}|jƒ||_    ||_
|j |ƒ||7}q>W|t j krÒtjd||jƒƒt j }ntjƒ}|jƒ||_t|ƒ|_||_tj||ƒ|j|tƒ|jtjdtjƒ}    ||    krlt|tj|tjƒntjd||    fƒtj|ƒtj |t j!|ƒdS(NisÕ½Á¦¹¦Äܵã: %ss Ä£¿éÕ½Á¦: %ss&×ÜÕ½Á¦³¬¹ýÊýÖµÉÏÏÞ£¡totalFightPower=%ss×ÜÕ½Á¦: %s, ÀúÊ·×î¸ßÕ½Á¦: %s("RRR©RóR†tSetMFPFightPowerRZttagMCModuleFightPowerR„tMfpTypet
FightPowerR}RnRR:RÞttagMCModuleFightPowerInfotTotalFightPowerRDtMFPCnttMFPListR]R^t SetFightPowerRRétDef_PDict_FightPower_HighesttDef_PDictType_FightPowerRìRutUpdatePlayerFPTotalBillboardRRRStDef_Campaign_Type_FightPower(
R`RRt mfpDataListRÝR^t
fightPowertmfpDatatmfpInfothighestFightPower((s.\\PlayerControl.pyRùÕs> 
           
            c CsÎ|j}tjdƒ}tj|ƒrMtjddƒ}tjd|ƒnýt|ƒ}tjd|ƒ|jƒt    j
krµ|j t j ƒ}||7}tjd||fƒn|t j}|t j}|jt jdƒ}|jt jdƒ}    |s|    rJt|tj|    ttjƒ|ƒ}tjd||    |fƒnt|ƒ|krÊt||ƒttjd|ƒƒ}
|j|
ƒtjd|
ƒ|jƒjƒ} | rÊ| j|
ƒqÊndS(    Nt    MoveSpeedisÔËïڹ̶¨ËÙ¶ÈÖµ: speed=%ss¹¦ÄÜÒÆ¶¯ËÙ¶ÈÖµ: speed=%ss     Æï³Ë״̬¸½¼ÓÖµ: %s, speed=%sis;    buffÓ°ÏìºóËÙ¶ÈÖµ: speed=%s,buffSpeedPer=%s,buffSpeed=%ss(¹«Ê½¼ÆËãºóÒÆ¶¯ÆµÂÊ: moveSpeed=%s ºÁÃë/¸ñ(RãR¶RGR(R)RRtGetSpeedNotBuffR/R³R0R    R©tDef_PlayerKey_SpeedHorseRfRïR…R‹RÿRnRRR³RmR¬R­R®tSetSpeedt    GetPetMgrt GetFightPet( R`RRtmoveSpeedFormattspeedt
speedHorsetbuffBattleAttrtbuffBattleNolineAttrt    buffSpeedt buffSpeedPert    moveSpeedtfightPet((s.\\PlayerControl.pyt__RefreshMoveSpeedüs6     
   (  cCsY|j}t|ƒ}tjdƒ}|s0dnttjd|ƒƒ}|j|ƒdS(Nt AtkIntervali(Rãt GetAtkSpeedR¶RGR¬R­R®tSetAtkInterval(R`RtatkSpeedR~t atkInterval((s.\\PlayerControl.pyt__SetAtkInterval*s      $ cCs4tjdƒ|j}tj|ƒtj|ƒdS(Ns!Start RefreshPlayerActionState!!!(RRRãtOperControlManagertClearObjActionStateR:tCalcBuffer_ActionState(R`R((s.\\PlayerControl.pyRŒ9s      cCsÅ|j}|jƒ}|jƒ|kr7|j|ƒn|jƒ}|jƒ|kre|j|ƒn|jƒ}|jƒ|kr“|j    |ƒn|j
ƒ}|j ƒ|krÁ|j |ƒndS(N( RãRht GetTotalSTRt SetTotalSTRRit GetTotalPNEt SetTotalPNERjt GetTotalPHYt SetTotalPHYRkt GetTotalCONt SetTotalCON(R`Rt curPlayerSTRt curPlayerPNEt curPlayerPHYt curPlayerCON((s.\\PlayerControl.pyt__SetPlayerStateInDBJs        cCsQ|j}|jƒsdS|jƒ}|jƒ}||krM|j|ƒndS(N(Rãt    GetInitOKR°RORN(R`Rt curPlayerHPtcurPlayerMaxHP((s.\\PlayerControl.pyt __RestoreHPMPds        cCst|j}|jƒi
|jƒtj6|jƒtj6|jƒtj6|j    ƒtj
6tj tj 6t jƒjƒtj6t jƒjƒtj6t jƒjƒtj6tjtj6tjtj6}xgtdtjƒD]S}|tjtjgkrùqÕn||kr dn||}tj|||ƒqÕW|jƒtjkrT|jtjƒn|jƒsp|j t!ƒnt!S(Nii("RãtClearBattleEffectR1R©tTYPE_Calc_AttrCurSTRR2tTYPE_Calc_AttrCurPNER3tTYPE_Calc_AttrCurPHYR4tTYPE_Calc_AttrCurCONtDef_BaseAtkSpeedRwRRRtTYPE_Calc_AttrFightExpRatetTYPE_Calc_AttrGameExpRatetTYPE_Calc_AttrPetExpRateRtTYPE_Calc_HitSucessRatetTYPE_Calc_CurePerRRRbtTYPE_Calc_AttrHPtTYPE_Calc_AttrMPR‚RYt GetPickupDisttDef_RolePickupItemDistt SetPickupDistt GetCanAttackt SetCanAttackR(R`Rt initAttrDictRYRÁ((s.\\PlayerControl.pyRÀs.    
   cCsG|j}tj|jƒ|jƒƒtjkrC|jtjƒndS(N(RãR-tGetAreaTypeByMapPosRRR³t    gatNormalt SetAreaType(R`R((s.\\PlayerControl.pytInitMapBuffState¬s    'cCsï|j}tjƒjƒ}|tjkrQ|jƒ}|jƒ}|jƒ}n$|j    ƒ}|j
ƒ}|j ƒ}|dkr¬t |dƒtj d||jƒƒdS||jƒkrÕtj|||ƒdSt||||tƒdS(NitObjectMapNonentitysÈËÎïÖØÉúµØÍ¼ID = %sÒì³£!(RãRR+R²R³R´R RyRztGetFBRebornMapIDtGetFBRebornPosXtGetFBRebornPosYR;R0RÞRµR9R@R(R`RRãR‹RuRv((s.\\PlayerControl.pytSetToBornPlaceºs$           cCsÄ|j}tj|ƒt|ƒ|jƒt|ƒtj|ƒtj|ƒ|j    ƒ|j
ƒdkrz|j dƒnt j |ƒ|j|ƒt jƒjƒ}t|ƒtj||ƒdS(Ni(RãRBR
tReSetPlayerStatet#_PlayerControl__PlayerDeadClearBuffR%RqtReCallFightPetR(tClearUseSkillRecR°RNRtClearPlayerPosCounttSetPlayerDeadCntRRRõtPlayerTJGReborn(R`RRÍ((s.\\PlayerControl.pyRës      
 
 
 
 
cCswt|tjttjƒƒƒtj|tjƒd}|o_|jƒj    ƒ|jƒj
ƒksfdS|j |ƒdS(Ni( RìR©tDef_Player_Dict_DeadTimeRÿttimeR6R;tDef_SkillID_ReviveTiredRDt
GetSkillLVt GetSkillMaxLVtNotifyPlayerDeadTime(R`RtfindBuff((s.\\PlayerControl.pyRõs *! cCs–tj|tjƒd}|r’|jƒjƒ|jƒjƒkr’|jtjƒr’|jtj    ƒ}t
j ƒ}||_ t j||ƒq’ndS(Ni(R6R;R©RùRDRúRûRétDef_PDict_IsAddReviveTiredR÷RZttagMCPlayerDeadTimetDeadTimeR]R^(R`RRýtlastDeadTimeTicktpackData((s.\\PlayerControl.pyRüNs*     cCsç|j}tjƒjƒ}t||jƒt|ƒt||jƒt|ƒt||jƒt|ƒt||j    ƒt|ƒt||j
ƒt|ƒt||j ƒt|ƒt||j ƒt|ƒt||j ƒt|ƒdS(N(RãRRRRgRhtClearBuffByDieRjRkRlRfRmRnRo(R`RRÍ((s.\\PlayerControl.pyt__PlayerDeadClearBuff^s    (0RáRâR9RãRåRaRèRêR9t!_PlayerControl__LVUpDoInvestitureRýRntDef_ViewExpType_MissionRR
RþRRRR€R‹RtR¯R²R±RJRÀR½R·RR¸RøR‘R–R—RùRRRŒt"_PlayerControl__SetPlayerStateInDBRnRÃRêRïRRõRüRñ(((s.\\PlayerControl.pyRsk sT        
                        z     ˆ    7    7               (             ÿ        _        (              '    .                    ,        1    4    /    cCsÞ|jƒ}d}g}x¬||jƒkrÆ|j|ƒ}|sftjd||ƒ|d7}qn|rˆ||ƒrˆ|d7}qn|j|jƒjƒ|jƒ|j    ƒgƒ|j
|ƒqWt j |||ƒdS(Nis###Íæ¼ÒÇå¿Õbuffʧ°Ü,Ë÷Òý = %si( RÞt GetBuffCounttGetBuffRR0R}RDt
GetSkillIDt
GetOwnerIDt GetOwnerTypetDeleteBuffByIndexR:tClearBuffEffectBySkillIDList(Rt    buffStatet funcClearBuffRÍR4R"tbuffSkillIDListtcurBuff((s.\\PlayerControl.pyRgus  
 
.cCs |jƒ}|jƒt@dkS(Ni(RDtGetDieContinuetDef_Buff_Clear_Die(Rtskill((s.\\PlayerControl.pyR”s cCs |jƒ}|jƒt@dkS(Ni(RDRtDef_Buff_Clear_Disconnect(RR((s.\\PlayerControl.pyRiœs c    CsJtjƒ}|j|ƒsFtjd||jƒƒt|dƒtS|j|ƒ}tj||j    ƒƒs~t|dƒtS|j
|ƒt j kr§t|dƒtSt ||ƒsºtSt|ƒ}tjdƒ}d}xB|jƒD]4\}}||krqèn||krtS|}qèW|dkrFt|d||gƒtStS(Ns###·Ç·¨µØÍ¼Êý¾Ý£¬mapID: %sRëtEnemy_State_No_TranstCarry_lhs_306641tTransportMapLineCheckitCarry_yeqian_0(RR+RËR:RÞR;RtGetCountryByMapIDtIsSameCountry_Namet
GetCountryRÒR³R´t CanEnterMaptGetPlayerLineIDRüRýR†R(    RR¿R«t
mapCountryt    mapLineIDtmapLineCheckDicttcanEnterLineIDRHR¿((s.\\PlayerControl.pytCheckTagCountry¦s6  
 
 cCst|||ƒstStS(N(tCheckLVCanEnterMapRR(RR¿t    isShowSys((s.\\PlayerControl.pyRäscCs¤tjƒjƒj|ƒ}|s%dS|jƒ}|jƒ|krc|r_t|d|gƒntS|jƒ}|r t||ƒ r tj    d||fƒtSt
S(Nt Carry_hwj35_0s5¶Ô²»Æð£¬¸Ã³¡¾°destMapID=%sÐèÒªÍê³ÉÖ÷ÏßÈÎÎñ%s²ÅÄܽøÈë!( RR{t
GetChinMapt
GetMapByIDRWR;Rt GetTreasureIDt    IsMapOpenRR(RR¿R&tmapDatatenterLVt openMapStep((s.\\PlayerControl.pyR%ós  cCs6tj|ƒ}|stS||jdƒkr2tStS(NtOpenMap(t QuestCommontGetCommonMissionRt GetPropertyR(RR.t    mission_1((s.\\PlayerControl.pyR+s cCs„|jƒ}|tjkr,t|dƒtS|jƒrE|jƒn|tjkrat    |ƒnt
j |tj tj ƒs€tStS(NRð(RÎR©RÿR;RR¨R/R³RRÏRÀtIsObjCanDoActiontDef_Obj_ActState_ServerActt oalTransmitR(RR((s.\\PlayerControl.pyR±s      cCsZ|jƒrdS|s+tjƒjƒ}ntj|tj|ƒrVt|ƒj    ƒndS(N(
RäRRRRJRUR©tDef_SkillID_LimitSuperBuffRsR²(RRÍ((s.\\PlayerControl.pyRÉ2s  cCs{|s"|jƒtjkr"dSntj|tj|ƒtj|tj|ƒ|swt|tj    ƒ|j
tj ƒndS(N( RÎR³t    paProduceRJRUR©tDef_ProduceBuffIDtDef_SkillID_ActionWuDiRÚRÒtNotify_ProductionStatetDef_EndProduction(RRÍt isLeaveServer((s.\\PlayerControl.pytDelProduceBuffDscCstjƒjƒ}|jƒ}|tjkr@tj|dƒnA|tjkr_t    j
|ƒn"|tj krt j ||ƒn|tjkrt|ƒn|jƒ}|tjkrËtj|tƒn(|tjkrótj||jƒƒnt|ƒ|jdƒdS(Ni(RRRRÎR³tpaTradeR8R9RÑR4R<t paGameEventtPlayerGameEventt StopGameEventRÔRÕR/R0R1R2RRR(R,R*RÃRþR9(RRÍRÙtcurPlayerVehicle((s.\\PlayerControl.pyRð_s$   
 cCs$|jƒstS|jƒr tStS(N(RÐRt GetIsLoginOffR(R((s.\\PlayerControl.pyt__CanPullPlayerŒs
  cCs=|jƒtjkrtS|jƒr)tS|jƒr9tStS(N(RÎR³RÒRR¨t IsBattleStateR(R((s.\\PlayerControl.pytIsPlanStateNull™s  
cCstj}|tjjƒkr"dS|jƒj|ƒ}tjj|ƒtj}tj    |j
|ƒ}|j |ƒ|j ƒdS(N( R³trptItemR©tDef_Type_CanBuyPack_PlayerDictRERºR»R…tDef_PlayerPackDict_Index_KeytDef_PlayerFirstLoginOpenBackCntRétSetCounttSync_PackCanUseCount(RRdtcurPacktkeyNametcount((s.\\PlayerControl.pyt Init_ItemPackµs     
cCstj}|tjjƒkr"dS|jƒj|ƒ}tjj|ƒtj}tj    |j
|ƒ}|j |ƒ|j ƒdS(N( R³t rptWarehouseR©RIRERºR»R…RJtDef_FirstLogin_OpenWareHouseCntRéRLRM(RRdRNRORP((s.\\PlayerControl.pytInit_WarehouseÎs     
cCs6|jƒjtjƒ}|jtjƒ|jƒdS(N(RºR»Rnt rptTreasureRLR©tDef_PackCnt_TreasureRM(RRN((s.\\PlayerControl.pytInit_TreasurePackés
cCs€tjj|ƒtj}|dkr:tjd|ƒdS|jƒj|ƒ}tj    |j
|ƒ}|j |ƒ|j ƒdS(NsInit_Pack Error type=%s( R©RIR…RJR9RR:RºR»tDef_PackCnt_WeaponCoatRéRLRM(RRdRORNRP((s.\\PlayerControl.pytInit_CabinetCountByTypeõs  
cCsetjƒ}xRt|jƒƒD]>}|j|ƒ}|dks|jƒ rSqnt|ƒqWdS(N(RRBRRRSRTR9RÐRo(t playerManagerRYR((s.\\PlayerControl.pytRefreshOperationAction_ExpRates cCsLt|ƒ}|jƒ}|tj|ƒ7}|tj|tjƒ7}tj    j
t j iƒ}t j|ƒ r»|j
t jƒr»|jƒ|j
t jdƒkr»||j
t jdƒ7}n|jƒtjgkrì||jtjƒ7}ntdtj|ƒdƒ}||tj7}||krH|jtj|ƒ|j|ƒndS(Nii(tGetPlayerExpRatetGetFightExpRateRLtGetWorldAverageLvExpRateR¤tGetPrivilegeValueR©tVIPPrivilege_FightExpRateR@tg_operationActionDictR…RntOperationActionName_ExpRateRõRöt ActKey_StateRWtActKey_LVLimittActKey_AddExpRateRµtDef_FBMapID_FamilyInvadeR    tDef_PlayerKey_TeamExpRateRàRÉtGetAreaRewardMultipleRR RtSync_CurExpRate(Rt totalExpRatet fightExpRatetactExpRateInfotmapExpAddMultiple((s.\\PlayerControl.pyRos   "! cCs|jtjƒS(N(R    R©R(R((s.\\PlayerControl.pyR\+sc Cs*t|ƒ}|dkr|S|jƒ}xût|jƒƒD]ç}|j|ƒ}|jƒ}xÃt|jƒƒD]¯}|j    |ƒ}|j
ƒ}    |    dkr Pn|    t j krµqon|j dƒ}
|j dƒ} |j dƒ} | t jkso| rþqon| td|ƒ@ro||
8}qoqoWq;W|S(sA »ñÈ¡ÊÜÏÞ¹¦ÄÜ×ܾ­Ñé±¶ÂÊ
    @param limitType: ÊÜÏ޵ŦÄÜÀàÐÍ
    iiiN(R\R9RlRRRR    RDRtGetEffectCountt    GetEffectt GetEffectIDR©RÚtGetEffectValuetEffCalcType_LinePlusRë( Rt    limitTypeRjRRYRRLtjt    curEffectteffectIDt
effExpRatetcalcTypetlimitTypeValue((s.\\PlayerControl.pytGetLimitExpRate,s,      cCs&d
\}}}}tjd|dƒ}|sOtjd|ƒ||||fSxÄ|jƒD]¶\}}t|ƒtkr‰|jƒ}n|dtj    gkr§|}q\|dtj
gkrÅ|}q\|dtj gkrã|}q\|dtj gkr|}q\tjd    |ƒq\W||||fS( NisCreatRolePoint%sisCreatRolePoint, job = %sRsRtRuRvsCreatRolePoint, key = %s(iiii( R¶R·RR:R†R“RAtupperRntDef_Effect_STRtDef_Effect_PNEtDef_Effect_PHYtDef_Effect_CON(RoRwRxRyRztjobDictRRÁ((s.\\PlayerControl.pytGetPlayerBasePointSs$                cCsdS(N((RR«tlogIndexttagIDtparR™((s.\\PlayerControl.pytDataServerMoneyLog{scCs$|j|ƒ|jtj|ƒdS(N(tSetGMForbidenTalktSendGameServerRefreshStateRntCDBPlayerRefresh_ForbidenTalk(RRÁ((s.\\PlayerControl.pyR†s cCs
|jƒS(N(t
GetExAttr1(R((s.\\PlayerControl.pyt
GetJobRank–scCs |jtj|ƒ|j|ƒS(N(R‡R³tCDBPlayerRefresh_ExAttr1t
SetExAttr1(RtjobRank((s.\\PlayerControl.pyt
SetJobRank—scCst||d|ƒS(Ni
(tSetTeamCheckState(Rt joinReqCheckt inviteCheck((s.\\PlayerControl.pytSetTeamCheckStateExœscCs|j|ttƒS(N(t
SetExAttr2RR(Rt
checkState((s.\\PlayerControl.pyRscCs
|jƒS(N(t
GetExAttr2(R((s.\\PlayerControl.pytGetTeamCheckStatežscCs|j|ttƒS(N(t
SetExAttr3R(RRÈ((s.\\PlayerControl.pyR¡scCs
|jƒS(N(t
GetExAttr3(R((s.\\PlayerControl.pytGetFBFuncLineID¢scCs|jƒtj|jƒS(N(t
GetExAttr6R©RR²(R((s.\\PlayerControl.pyR²¥scCsn|tj}t|tjtjƒ}||jƒkrH|j|ƒn||jƒkrj|j|ƒndS(N(R©RRRR²RâRšt
SetExAttr6(Rt totalSilverRxt silverPoint((s.\\PlayerControl.pyRâ¦s cCs
|jƒS(N(t
GetExAttr9(R((s.\\PlayerControl.pytGetVIPExpireTime°scCs|j|ttƒS(N(t
SetExAttr9RR(Rt
expireTime((s.\\PlayerControl.pytSetVIPExpireTime±scCsdS(Ni((R((s.\\PlayerControl.pyt GetPrestige´scCsdS(N((RRÁ((s.\\PlayerControl.pyt SetPrestigeµscCs|jtj||ƒdS(N(R R©tDef_PlayerKey_MFPFightPower(RR^R¦((s.\\PlayerControl.pyR˜¸scCs|jtj|ƒS(N(R    R©R¥(RR^((s.\\PlayerControl.pytGetMFPFightPower½scCs|jƒdS(Ni(R0(R((s.\\PlayerControl.pyRÄscCsœddl}|j|ƒ}|rJ|j|jƒdkrJ|jdƒdS|jtjƒtjkr‹|j    ƒ|kr‡|j|ƒndS|j|ƒdS(Niÿÿÿÿii(
R0R1R2tDef_NewGuyNoSightRRéR©t#Def_Player_Dict_AutoCheckHack_StatetDef_AutoCheck_State_DangertGetSight(RtsightR0t firstMission((s.\\PlayerControl.pyRÌs   cCs8|jƒ}|jtjƒtjkr4|d9}n|S(Nid(tGetAtkIntervalRéR©R¨R©(RR¾((s.\\PlayerControl.pyR­ás
   cCsm|s
dS||}tj|tjƒ}|r\tj|}t||ttjƒƒ}nt||ƒdS(N(R¤R_R©tVIPPrivilege_NPCSPRateRRÿRtPlayerAddZhenQi(RtnpcSPt    killCountt
addSPValuet    npcSPRatet    npcHPRate((s.\\PlayerControl.pytAddZhenQiByKillNPCës
   tunknownc    Cs|dkrtSt|ƒ}||}||kr6tSt||ƒtjƒr}|||g}tj|jƒtj    |ƒntS(Ni(
Rt    GetZhenQiRt    SetZhenQiRR@RåRæRÞtDef_MSPEvent_AddZhenQi(    RR>t canOverbrimtisSysMsgR    t    eventDatat    curZhenQiRÁR÷((s.\\PlayerControl.pyR¯þs  
   cCsg|dkrtSt|ƒ}td||ƒ}|dkrVtjd||fƒtSt||ƒtS(NiscurZhenQi = %s, lostValue = %s(RR·RàRR:RR¸(Rt    lostValueR    R¼R½RÁ((s.\\PlayerControl.pytPlayerLostZhenQis    cCs|jƒtj|jƒS(N(t
GetExAttr8R©Rt
GetExAttr7(R((s.\\PlayerControl.pyR·1scCsn|tj}t|tjtjƒ}||jƒkrH|j|ƒn||jƒkrj|j|ƒndS(N(R©RRRRÁt
SetExAttr7RÀt
SetExAttr8(Rt totalZhenQitzhenQit zhenQiPoint((s.\\PlayerControl.pyR¸2s cCsdS(N((RRÁ((s.\\PlayerControl.pytSetVsFightValueCscCsdS(Ni((R((s.\\PlayerControl.pytGetVsFightValueIscCsdS(Ni((R((s.\\PlayerControl.pytGetVsSportsPointOscCsdS(N((RRÁ((s.\\PlayerControl.pyt__SetVsSportsPointUscCs=t|ƒ}t|td||ƒƒt|d|gƒdS(NitArena_pan_474794(RÉRÊRàR;(RRÁtcurValue((s.\\PlayerControl.pytReduceVsSportsPoint[s cCsdS(Ni((R((s.\\PlayerControl.pyt GetLongMaiLVfscCsdS(N((RRÁ((s.\\PlayerControl.pyt SetLongMaiLVnscCs|j|ttƒdS(N(t SetExAttr10R(RRÁ((s.\\PlayerControl.pytSetMergeWarRankuscCs
|jƒS(N(t GetExAttr10(R((s.\\PlayerControl.pytGetMergeWarRank}scCs|j|ƒdS(N(t SetExAttr11(RRÁ((s.\\PlayerControl.pyt SetOfficeStar…s cCs
|jƒS(N(t GetExAttr11(R((s.\\PlayerControl.pyt GetOfficeStarscCsa|tjtjgkrdStj||ƒ}|s8dStj|tj}|j|ƒ}|j    ƒ}t
|||ƒ}d}    t ||ƒ|j ƒ}
|jtj |ƒ} |j|ƒ} d} | r×| d} nxƒt|ƒD]u}||d}|j|ƒ}d|krPn|ddkr-qän|d| }||
| krOPn|    d7}    qäW|    S(Nit
OnlineTimei(R³RHRRtPlayerExpandPackCfgMgrtGetExpandPackCfgR©RIRJRétGetCanAddCountRRGRWRbtGetTotalAddAttrInfoByCountRR9(RRdtopenCntRÍtcfgObjROtcurCounttmaxCanAddCounttforCountRPt
onlineTimetlastAutoOpenPackTickt lastInfoObjt notOnlineTimeRYt    nextCounttinfoObjtneedOnlineTime((s.\\PlayerControl.pytGetCanAutoOpenPackCount–s:     cCsdS(Ni((R((s.\\PlayerControl.pytGetHolidayExpRateÔscCsdS(Ni((R((s.\\PlayerControl.pytGetWorldBossExpRateÛscCs|jƒ}t|ƒS(N(RWtGetTotalExpByPlayerLv(RRœ((s.\\PlayerControl.pytGetLVUPTotalNeedExpás cCs t|ƒ}|sdSt|ƒS(Ni(R*R>(tplayerLVR,((s.\\PlayerControl.pyRìës cCs1tjd|ƒ}|s-tjd|ƒdS|S(NR+s¾­Ñé±íÒì³£  lv= %s(R¶R-RR:(RîR,((s.\\PlayerControl.pyR*ñs
cCs%|s
dS|jƒtj|jƒS(Ni(R R©RR.(R,((s.\\PlayerControl.pyR>øscCs%|jƒ}t|ƒ}t||ƒS(N(RWR8tGetRealPlayerLvEx(Rt realPlayerLvR((s.\\PlayerControl.pytGetRealPlayerLvs  cCsWt|ƒ}|s|Sx:||krR|d7}||8}t|ƒ}|sPqqW|S(Ni(Rì(RðRt needTotalExp((s.\\PlayerControl.pyRï s 
 
 cCs-|jƒ}|jƒ}|tj|}|S(N(RR R©R(RR#R%ttotalMasterExp((s.\\PlayerControl.pyR8s  cCsb|tj}|tj}|jƒ|kr<|j|ƒn|jƒ|kr^|j|ƒndS(N(R©RR RRR(RR#R$R%((s.\\PlayerControl.pyRU"s  cCsEtjƒ}|jƒ||_||_||_tj||ƒdS(N(RZttagMCNotifySelectObjR„tTypetIDtisSelectR]R^(RtobjTypetobjIDR÷t    selectObj((s.\\PlayerControl.pytSync_SelectObj4s 
            cCsŠ|dkrdStjj|gƒ}|gkr5dStj|d|df}||}x)|dD]}tj|i||6ƒqeWdS(Niii(R©tItemEffect_AttrDictR…tDef_CalcAttrIndexDictRRñ(R‰RÁRhR¿R"tattrDictRY((s.\\PlayerControl.pyRlCs  
cCs|jtjƒS(N(R    R©tDef_PlayerKey_SpeedValueNotBuff(R((s.\\PlayerControl.pyR«vscCs|jtj|ƒdS(N(R R©Rÿ(RRÁ((s.\\PlayerControl.pytSetSpeedNotBuffwscCs|jtjƒS(N(R    R©tDef_PlayerKey_SpeedValue(R((s.\\PlayerControl.pyR³yscCs-|jtj|ƒ|jtj|tƒdS(N(R R©RRÃRntCDBPlayerRefresh_SpeedValueR(RRÁ((s.\\PlayerControl.pyRmzscCs
|jƒS(N(tGetBattleValEx1(R((s.\\PlayerControl.pyR»scCs|j|tƒdS(N(tSetBattleValEx1R(RRÁ((s.\\PlayerControl.pyt SetAtkSpeed‡scCs
|jƒS(N(tGetBattleValEx2(R((s.\\PlayerControl.pytGetAtkBackHPPerŽscCs|j|ƒdS(N(tSetBattleValEx2(RRÁ((s.\\PlayerControl.pytSetAtkBackHPPer•scCsdS(Ni((R((s.\\PlayerControl.pytGetAtkBackMPPer™scCsdS(N((RRÁ((s.\\PlayerControl.pytSetAtkBackMPPeršscCs
|jƒS(N(tGetBattleValEx3(R((s.\\PlayerControl.pytGetReduceSkillCDscCs?|j|ƒtjdƒ}t|ƒ}|jtj|ƒdS(NtSkillCDReducePer(tSetBattleValEx3Rüt GetChConfigR¬R R©tDef_PlayerKey_ReduceSkillCDPer(Rt reduceSkillCDtreducePerFormatt    reducePer((s.\\PlayerControl.pytSetReduceSkillCDžs
  cCs|jtjƒS(N(R    R©R(R((s.\\PlayerControl.pytGetReduceSkillCDPer¤scCs/tjƒjƒtjkr+|jtjƒSdS(Ni(RR+R²R³R´R    R©tDef_PlayerKey_CommMapExpRate(R((s.\\PlayerControl.pytGetCommMapExpRate§scCs|jtj|ƒS(N(R R©R(RtexpRate((s.\\PlayerControl.pytSetCommMapExpRate«scCs|jtjƒS(N(R    R©tDef_PlayerKey_NPCHurtAddPer(R((s.\\PlayerControl.pytGetNPCHurtAddPer®scCs|jtj|ƒdS(N(R R©R(RRÁ((s.\\PlayerControl.pytSetNPCHurtAddPer¯scCs|jtjƒS(N(R    R©tDef_PlayerKey_JobAHurtAddPer(R((s.\\PlayerControl.pytGetJobAHurtAddPer²scCs|jtj|ƒdS(N(R R©R(RRÁ((s.\\PlayerControl.pytSetJobAHurtAddPer³scCs|jtjƒS(N(R    R©tDef_PlayerKey_JobBHurtAddPer(R((s.\\PlayerControl.pytGetJobBHurtAddPerµscCs|jtj|ƒdS(N(R R©R!(RRÁ((s.\\PlayerControl.pytSetJobBHurtAddPer¶scCs|jtjƒS(N(R    R©tDef_PlayerKey_JobCHurtAddPer(R((s.\\PlayerControl.pytGetJobCHurtAddPer¸scCs|jtj|ƒdS(N(R R©R$(RRÁ((s.\\PlayerControl.pytSetJobCHurtAddPer¹scCs|jtjƒS(N(R    R©tDef_PlayerKey_NPCAtkReducePer(R((s.\\PlayerControl.pytGetNPCAtkReducePer½scCs|jtj|ƒdS(N(R R©R'(RRÁ((s.\\PlayerControl.pytSetNPCAtkReducePer¾scCs|jtjƒS(N(R    R©tDef_PlayerKey_JobAAtkReducePer(R((s.\\PlayerControl.pytGetJobAAtkReducePerÀscCs|jtj|ƒdS(N(R R©R*(RRÁ((s.\\PlayerControl.pytSetJobAAtkReducePerÁscCs|jtjƒS(N(R    R©tDef_PlayerKey_JobBAtkReducePer(R((s.\\PlayerControl.pytGetJobBAtkReducePerÃscCs|jtj|ƒdS(N(R R©R-(RRÁ((s.\\PlayerControl.pytSetJobBAtkReducePerÄscCs|jtjƒS(N(R    R©tDef_PlayerKey_JobCAtkReducePer(R((s.\\PlayerControl.pytGetJobCAtkReducePerÆscCs|jtj|ƒdS(N(R R©R0(RRÁ((s.\\PlayerControl.pytSetJobCAtkReducePerÇscCs|jtjƒS(N(R    R©tDef_PlayerKey_LuckyHitReducePer(R((s.\\PlayerControl.pytGetLuckyHitReducePerËscCs|jtj|ƒdS(N(R R©R3(RRÁ((s.\\PlayerControl.pytSetLuckyHitReducePerÌscCs|jtjƒS(N(R    R©tDef_PlayerKey_GreatHitReducePer(R((s.\\PlayerControl.pytGetGreatHitReducePerÎscCs|jtj|ƒdS(N(R R©R6(RRÁ((s.\\PlayerControl.pytSetGreatHitReducePerÏscCs|jtjƒS(N(R    R©tDef_PlayerKey_SuperHitReducePer(R((s.\\PlayerControl.pytGetSuperHitReducePerÑscCs-|jtj|ƒ|jtj|tƒdS(N(R R©R9RÃRntCDBPlayerRefresh_SuperHitReduceR(RRÁ((s.\\PlayerControl.pytSetSuperHitReducePerÒscCs|jtjƒS(N(R    R©t Def_PlayerKey_IgnoreDefReducePer(R((s.\\PlayerControl.pytGetIgnoreDefReducePerÖscCs|jtj|ƒdS(N(R R©R=(RRÁ((s.\\PlayerControl.pytSetIgnoreDefReducePer×scCs|jtjƒS(N(R    R©t Def_PlayerKey_LuckyHitRateReduce(R((s.\\PlayerControl.pytGetLuckyHitRateReduceÛscCs-|jtj|ƒ|jtj|tƒdS(N(R R©R@RÃRnt#CDBPlayerRefresh_LuckyHitRateReduceR(RRÁ((s.\\PlayerControl.pytSetLuckyHitRateReduceÜscCs|jtjƒS(N(R    R©t Def_PlayerKey_GreatHitRateReduce(R((s.\\PlayerControl.pytGetGreatHitRateReduceàscCs|jtj|ƒdS(N(R R©RD(RRÁ((s.\\PlayerControl.pytSetGreatHitRateReduceáscCs|jtjƒS(N(R    R©t Def_PlayerKey_SuperHitRateReduce(R((s.\\PlayerControl.pytGetSuperHitRateReduceãscCs|jtj|ƒdS(N(R R©RG(RRÁ((s.\\PlayerControl.pytSetSuperHitRateReduceäscCs|jtjƒS(N(R    R©t!Def_PlayerKey_IgnoreDefRateReduce(R((s.\\PlayerControl.pytGetIgnoreDefRateReduceæscCs-|jtj|ƒ|jtj|tƒdS(N(R R©RJRÃRnt$CDBPlayerRefresh_IgnoreDefRateReduceR(RRÁ((s.\\PlayerControl.pytSetIgnoreDefRateReduceçscCs|jtjƒS(N(R    R©tDef_PlayerKey_FuhaoHitRate(R((s.\\PlayerControl.pytGetFuhaoHitRateíscCs|jtj|ƒdS(N(R R©RN(RRÁ((s.\\PlayerControl.pytSetFuhaoHitRateîscCs|jtjƒS(N(R    R©tDef_PlayerKey_BleedDamage(R((s.\\PlayerControl.pytGetBleedDamageñscCs-|jtj|ƒ|jtj|tƒdS(N(R R©RQRÃRntCDBPlayerRefresh_BleedDamageR(RRÁ((s.\\PlayerControl.pytSetBleedDamageòscCs|jtjƒS(N(R    R©tDef_PlayerKey_FinalHurtPer(R((s.\\PlayerControl.pytGetFinalHurtPer÷scCs|jtj|ƒdS(N(R R©RU(RRÁ((s.\\PlayerControl.pytSetFinalHurtPerøscCs|jtjƒS(N(R    R©tDef_PlayerKey_FinalHurt(R((s.\\PlayerControl.pyt GetFinalHurtûscCs-|jtj|ƒ|jtj|tƒdS(N(R R©RXRÃRntCDBPlayerRefresh_FinalHurtR(RRÁ((s.\\PlayerControl.pyt SetFinalHurtüscCs|jtjƒS(N(R    R©tDef_PlayerKey_FinalHurtReduce(R((s.\\PlayerControl.pytGetFinalHurtReducescCs-|jtj|ƒ|jtj|tƒdS(N(R R©R\RÃRnt CDBPlayerRefresh_FinalHurtReduceR(RRÁ((s.\\PlayerControl.pytSetFinalHurtReducescCs|jtjƒS(N(R    R©tDef_PlayerKey_BossIDHurt(R((s.\\PlayerControl.pyt GetBossIDHurtscCs|jtj|ƒdS(N(R R©R`(RRÁ((s.\\PlayerControl.pyt SetBossIDHurtscCs|jtjƒS(N(R    R©tDef_PlayerKey_BossIDHurtAddPer(R((s.\\PlayerControl.pytGetBossIDHurtAddPerscCs|jtj|ƒdS(N(R R©Rc(RRÁ((s.\\PlayerControl.pytSetBossIDHurtAddPer    scCs|jtjƒS(N(R    R©tDef_PlayerKey_DropEquipDoCount(R((s.\\PlayerControl.pytGetDropEquipDoCount scCs|jtj|ƒdS(N(R R©Rf(RRÁ((s.\\PlayerControl.pytSetDropEquipDoCount scCs|jtjƒS(N(R    R©tDef_PlayerKey_BaseAtkAddPer(R((s.\\PlayerControl.pytGetBaseAtkAddPerscCs|jtj|ƒdS(N(R R©Ri(RRÁ((s.\\PlayerControl.pytSetBaseAtkAddPerscCs|jtjƒS(N(R    R©tDef_PlayerKey_BaseMaxHPAddPer(R((s.\\PlayerControl.pytGetBaseMaxHPAddPerscCs|jtj|ƒdS(N(R R©Rl(RRÁ((s.\\PlayerControl.pytSetBaseMaxHPAddPerscCs|jtjƒS(N(R    R©tDef_PlayerKey_BaseDefAddPer(R((s.\\PlayerControl.pytGetBaseDefAddPerscCs|jtj|ƒdS(N(R R©Ro(RRÁ((s.\\PlayerControl.pytSetBaseDefAddPerscCs|jtjƒS(N(R    R©tDef_PlayerKey_BaseHitAddPer(R((s.\\PlayerControl.pytGetBaseHitAddPerscCs|jtj|ƒdS(N(R R©Rr(RRÁ((s.\\PlayerControl.pytSetBaseHitAddPerscCs|jtjƒS(N(R    R©tDef_PlayerKey_BaseMissAddPer(R((s.\\PlayerControl.pytGetBaseMissAddPerscCs|jtj|ƒdS(N(R R©Ru(RRÁ((s.\\PlayerControl.pytSetBaseMissAddPerscCs|jtjƒS(N(R    R©tDef_PlayerKey_HorcruxBasePer(R((s.\\PlayerControl.pytGetHorcruxBasePerscCs|jtj|ƒdS(N(R R©Rx(RRÁ((s.\\PlayerControl.pytSetHorcruxBasePerscCs|jtjƒS(N(R    R©tDef_PlayerKey_EquipBaseAddPer(R((s.\\PlayerControl.pytGetEquipBaseAddPer!scCs|jtj|ƒdS(N(R R©R{(RRÁ((s.\\PlayerControl.pytSetEquipBaseAddPer"scCs|jtjƒS(N(R    R©tDef_PlayerKey_WeaponAtkAddPer(R((s.\\PlayerControl.pytGetWeaponAtkAddPer$scCs|jtj|ƒdS(N(R R©R~(RRÁ((s.\\PlayerControl.pytSetWeaponAtkAddPer%scCs|jtjƒS(N(R    R©tDef_PlayerKey_RelicsAtkAddPer(R((s.\\PlayerControl.pytGetRelicsAtkAddPer'scCs|jtj|ƒdS(N(R R©R(RRÁ((s.\\PlayerControl.pytSetRelicsAtkAddPer(scCs|jtjƒS(N(R    R©tDef_PlayerKey_ArmorMaxHPAddPer(R((s.\\PlayerControl.pytGetArmorMaxHPAddPer*scCs|jtj|ƒdS(N(R R©R„(RRÁ((s.\\PlayerControl.pytSetArmorMaxHPAddPer+scCs|jtjƒS(N(R    R©tDef_PlayerKey_ArmorDefAddPer(R((s.\\PlayerControl.pytGetArmorDefAddPer-scCs|jtj|ƒdS(N(R R©R‡(RRÁ((s.\\PlayerControl.pytSetArmorDefAddPer.scCs|jtjƒS(N(R    R©tDef_PlayerKey_GodWeaponMaxHPPer(R((s.\\PlayerControl.pytGetGodWeaponMaxHPPer0scCs|jtj|ƒdS(N(R R©RŠ(RRÁ((s.\\PlayerControl.pytSetGodWeaponMaxHPPer1scCs|jtjƒS(N(R    R©tDef_PlayerKey_GodWeaponAtkPer(R((s.\\PlayerControl.pytGetGodWeaponAtkPer3scCs|jtj|ƒdS(N(R R©R(RRÁ((s.\\PlayerControl.pytSetGodWeaponAtkPer4scCs|jtjƒS(N(R    R©tDef_PlayerKey_StoneMaxHPPer(R((s.\\PlayerControl.pytGetStoneMaxHPPer6scCs|jtj|ƒdS(N(R R©R(RRÁ((s.\\PlayerControl.pytSetStoneMaxHPPer7scCs|jtjƒS(N(R    R©tDef_PlayerKey_StoneAtkPer(R((s.\\PlayerControl.pytGetStoneAtkPer9scCs|jtj|ƒdS(N(R R©R“(RRÁ((s.\\PlayerControl.pytSetStoneAtkPer:scCs|jtjƒS(N(R    R©tDef_PlayerKey_HPCureEnhance(R((s.\\PlayerControl.pytGetHPCureEnhance<scCs|jtj|ƒdS(N(R R©R–(RRÁ((s.\\PlayerControl.pytSetHPCureEnhance=scCs|jtjƒS(N(R    R©tDef_PlayerKey_OnlyFinalHurt(R((s.\\PlayerControl.pytGetOnlyFinalHurt@scCs-|jtj|ƒ|jtj|tƒdS(N(R R©R™RÃRntCDBPlayerRefresh_OnlyFinalHurtR(RRÁ((s.\\PlayerControl.pytSetOnlyFinalHurtAscCs|jtjƒS(N(R    R©tDef_PlayerKey_PVPAtkBackHP(R((s.\\PlayerControl.pytGetPVPAtkBackHPGscCs|jtj|ƒdS(N(R R©R(RRÁ((s.\\PlayerControl.pytSetPVPAtkBackHPHscCs|jtjƒS(N(R    R©tDef_PlayerKey_HitSucessRate(R((s.\\PlayerControl.pytGetHitSucessRateKscCs|jtj|ƒdS(N(R R©R (RRÁ((s.\\PlayerControl.pytSetHitSucessRateLscCs|jtjƒS(N(R    R©tDef_PlayerKey_MissSucessRate(R((s.\\PlayerControl.pytGetMissSucessRateOscCs|jtj|ƒdS(N(R R©R£(RRÁ((s.\\PlayerControl.pytSetMissSucessRatePscCs|jtjƒS(N(R    R©tDef_PlayerKey_CurePer(R((s.\\PlayerControl.pyt
GetCurePerSscCs|jtj|ƒdS(N(R R©R¦(RRÁ((s.\\PlayerControl.pyt
SetCurePerTscCs|jtjƒS(N(R    R©tDef_PlayerKey_BeHurtPer(R((s.\\PlayerControl.pyt GetBeHurtPerWscCs|jtj|ƒdS(N(R R©R©(RRÁ((s.\\PlayerControl.pyt SetBeHurtPerXscCs|jtjƒS(N(R    R©tDef_PlayerKey_HorseAtkPer(R((s.\\PlayerControl.pytGetHorseAtkPer[scCs|jtj|ƒdS(N(R R©R¬(RRÁ((s.\\PlayerControl.pytSetHorseAtkPer\scCs|jtjƒS(N(R    R©tDef_PlayerKey_StoneBasePer(R((s.\\PlayerControl.pytGetStoneBasePer_scCs|jtj|ƒdS(N(R R©R¯(RRÁ((s.\\PlayerControl.pytSetStoneBasePer`scCs|jtjƒS(N(R    R©tDef_PlayerKey_RealmBasePer(R((s.\\PlayerControl.pytGetRealmBasePercscCs|jtj|ƒdS(N(R R©R²(RRÁ((s.\\PlayerControl.pytSetRealmBasePerdscCs|jtjƒS(N(R    R©tDef_PlayerKey_WingHPPer(R((s.\\PlayerControl.pyt GetWingHPPergscCs|jtj|ƒdS(N(R R©Rµ(RRÁ((s.\\PlayerControl.pyt SetWingHPPerhscCs|jtjƒS(N(R    R©tDef_PlayerKey_SuiteBasePer(R((s.\\PlayerControl.pytGetSuiteBasePerkscCs|jtj|ƒdS(N(R R©R¸(RRÁ((s.\\PlayerControl.pytSetSuiteBasePerlscCs|jtjƒS(N(R    R©tDef_PlayerKey_PlusBaseAtkPer(R((s.\\PlayerControl.pytGetPlusBaseAtkPeroscCs|jtj|ƒdS(N(R R©R»(RRÁ((s.\\PlayerControl.pytSetPlusBaseAtkPerpscCs|jtjƒS(N(R    R©tDef_PlayerKey_AddBackHPPer(R((s.\\PlayerControl.pytGetAddBackHPPeruscCs|jtj|ƒdS(N(R R©R¾(RRÁ((s.\\PlayerControl.pytSetAddBackHPPer{scCs|jtjƒS(N(R    R©tDef_PlayerKey_ReduceBackHPPer(R((s.\\PlayerControl.pytGetReduceBackHPPer‚scCs|jtj|ƒdS(N(R R©RÁ(RRÁ((s.\\PlayerControl.pytSetReduceBackHPPerˆscCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrFaintRate(R((s.\\PlayerControl.pyt GetFaintRateŒscCs-|jtj|ƒ|jtj|tƒdS(N(R R©RÄRÃRntCDBPlayerRefresh_FaintRateR(RRÁ((s.\\PlayerControl.pyt SetFaintRatescCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrFaintDefRate(R((s.\\PlayerControl.pytGetFaintDefRate‘scCs-|jtj|ƒ|jtj|tƒdS(N(R R©RÈRÃRntCDBPlayerRefresh_FaintDefRateR(RRÁ((s.\\PlayerControl.pytSetFaintDefRate’scCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrAtkerFreezed(R((s.\\PlayerControl.pytGetAtkerFreezed—scCs|jtj|ƒdS(N(R R©RÌ(RRÁ((s.\\PlayerControl.pytSetAtkerFreezed˜scCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrAddAngry(R((s.\\PlayerControl.pyt GetAddAngry›scCs|jtj|ƒdS(N(R R©RÏ(RRÁ((s.\\PlayerControl.pyt SetAddAngryœscCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrComboRate(R((s.\\PlayerControl.pyt GetComboRateŸscCs-|jtj|ƒ|jtj|tƒdS(N(R R©RÒRÃRntCDBPlayerRefresh_ComboRateR(RRÁ((s.\\PlayerControl.pyt SetComboRate scCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrComboDamPer(R((s.\\PlayerControl.pytGetComboDamPer¤scCs-|jtj|ƒ|jtj|tƒdS(N(R R©RÖRÃRntCDBPlayerRefresh_ComboDamPerR(RRÁ((s.\\PlayerControl.pytSetComboDamPer¥scCs|jtjƒS(N(R    R©t Def_PlayerKey_SkillAtkRateReduce(R((s.\\PlayerControl.pytGetSkillAtkRateReduceªscCs-|jtj|ƒ|jtj|tƒdS(N(R R©RÚRÃRnt#CDBPlayerRefresh_SkillAtkRateReduceR(RRÁ((s.\\PlayerControl.pytSetSkillAtkRateReduce«scCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrDamagePer(R((s.\\PlayerControl.pyt GetDamagePer¯scCs-|jtj|ƒ|jtj|tƒdS(N(R R©RÞRÃRntCDBPlayerRefresh_DamagePerR(RRÁ((s.\\PlayerControl.pyt SetDamagePer°scCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrDamagePerPVE(R((s.\\PlayerControl.pytGetDamagePerPVE´scCs|jtj|ƒdS(N(R R©Râ(RRÁ((s.\\PlayerControl.pytSetDamagePerPVEµscCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrDamagePerPVP(R((s.\\PlayerControl.pytGetDamagePerPVP¸scCs-|jtj|ƒ|jtj|tƒdS(N(R R©RåRÃRntCDBPlayerRefresh_DamagePerPVPR(RRÁ((s.\\PlayerControl.pytSetDamagePerPVP¹scCs|jtjƒS(N(R    R©t$Def_PlayerKey_AttrDamagePerPVPReduce(R((s.\\PlayerControl.pytGetDamagePerPVPReduce¼scCs-|jtj|ƒ|jtj|tƒdS(N(R R©RéRÃRnt#CDBPlayerRefresh_DamagePerPVPReduceR(RRÁ((s.\\PlayerControl.pytSetDamagePerPVPReduce½scCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrHurtPer(R((s.\\PlayerControl.pyt
GetHurtPerÂscCs|jtj|ƒdS(N(R R©Rí(RRÁ((s.\\PlayerControl.pyt
SetHurtPerÃscCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrXPRestorePer(R((s.\\PlayerControl.pytGetXPRestorePerÆscCs|jtj|ƒdS(N(R R©Rð(RRÁ((s.\\PlayerControl.pytSetXPRestorePerÇscCs|jtjƒS(N(R    R©t"Def_PlayerKey_AttrShieldMPCostRate(R((s.\\PlayerControl.pytGetShieldMPCostRateÊscCs|jtj|ƒdS(N(R R©Ró(RRÁ((s.\\PlayerControl.pytSetShieldMPCostRateËscCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrDamChanceDef(R((s.\\PlayerControl.pytGetDamChanceDefÎscCs-|jtj|ƒ|jtj|tƒdS(N(R R©RöRÃRntCDBPlayerRefresh_DamChanceDefR(RRÁ((s.\\PlayerControl.pytSetDamChanceDefÏscCs
|jƒS(N(t
GetExAttr4(R((s.\\PlayerControl.pyt    GetProDefÔscCs|j|ƒdS(N(t
SetExAttr4(RRÁ((s.\\PlayerControl.pyt    SetProDefÕscCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrMaxProDef(R((s.\\PlayerControl.pyt GetMaxProDef×scCs-|jtj|ƒ|jtj|tƒdS(N(R R©RþRÃRntCDBPlayerRefresh_MaxProDefR(RRÁ((s.\\PlayerControl.pyt SetMaxProDefØscCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrProDefHPPer(R((s.\\PlayerControl.pytGetProDefHPPerÜscCs-|jtj|ƒ|jtj|tƒdS(N(R R©RRÃRntCDBPlayerRefresh_ProDefHPPerR(RRÁ((s.\\PlayerControl.pytSetProDefHPPerÝscCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrProDefAbsorb(R((s.\\PlayerControl.pytGetProDefAbsorbáscCs-|jtj|ƒ|jtj|tƒdS(N(R R©RRÃRntCDBPlayerRefresh_ProDefAbsorbR(RRÁ((s.\\PlayerControl.pytSetProDefAbsorbâscCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrPetMinAtk(R((s.\\PlayerControl.pyt GetPetMinAtkçscCs|jtj|ƒdS(N(R R©R
(RRÁ((s.\\PlayerControl.pyt SetPetMinAtkèscCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrPetMaxAtk(R((s.\\PlayerControl.pyt GetPetMaxAtkéscCs|jtj|ƒdS(N(R R©R (RRÁ((s.\\PlayerControl.pyt SetPetMaxAtkêscCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrPetDamPer(R((s.\\PlayerControl.pyt GetPetDamPeríscCs-|jtj|ƒ|jtj|tƒdS(N(R R©RRÃRntCDBPlayerRefresh_PetDamPerR(RRÁ((s.\\PlayerControl.pyt SetPetDamPerîscCs|jtjƒS(N(R    R©tDef_PlayerKey_PetSkillAtkRate(R((s.\\PlayerControl.pytGetPetSkillAtkRateòscCs|jtj|ƒdS(N(R R©R(RRÁ((s.\\PlayerControl.pytSetPetSkillAtkRateóscCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrPerLVAtk(R((s.\\PlayerControl.pyt GetPerLVAtköscCs|jtj|ƒdS(N(R R©R(RRÁ((s.\\PlayerControl.pyt SetPerLVAtk÷scCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrPerLVMaxHP(R((s.\\PlayerControl.pyt GetPerLVMaxHPùscCs|jtj|ƒdS(N(R R©R(RRÁ((s.\\PlayerControl.pyt SetPerLVMaxHPúscCs|jtjƒS(N(R    R©tDef_PlayerKey_AttrDropEquipPer(R((s.\\PlayerControl.pytGetDropEquipPerýscCs|jtj|ƒdS(N(R R©R(RRÁ((s.\\PlayerControl.pytSetDropEquipPerþscCs|jtjtjdƒS(Ni(R    R©tDef_PlayerKey_CopyFuncAttrRr(R((s.\\PlayerControl.pyt
GetFuncDefscCs"|jtjtjd|ƒdS(Ni(R R©R Rr(RRÁ((s.\\PlayerControl.pyt
SetFuncDefscCs€|jtjƒ}||7}t|tj|ƒ|rQt|dtj|gƒn|r|tjƒj    ƒ}t
j ||ƒndS(NR¸( RéR©tDef_PDict_HighLadder_CurrencyRìR;RntTYPE_Price_HighLadder_CurrencyRRRtHighLadderTubetSendHighLadderState(RtaddCountR»t    isRefreshRöRÍ((s.\\PlayerControl.pytAddHighLadderCurrencys
cCs·|jtjƒ}||ks*|dkr7t||fStd||ƒ}t|tj|ƒ|rt|dtj|gƒn|rªt    j
ƒj ƒ}t j ||ƒnt||fS(NiRÜ(RéR©R#RRàRìR;RnR$RRRR%R&R(RtpayCountR»R(Röt updCurrencyRÍ((s.\\PlayerControl.pytPayHighLadderCurrencys cCsdS(N((RRdtallAttrListEquip((s.\\PlayerControl.pytCalcFuncPackItem,s icCsät||ƒ|tj}tj|kr–t|jƒ|tjttjƒƒ}|j    tj
dƒ||tj
<|j    tj dƒ||tj <ntj |krß|jƒ|tj }|j    tj dƒ||tj <nxþt|ƒD]ð\}}d}xÛ|jƒD]Í\}    }
t|
tƒsOtjd||    |
f|jƒƒq nx†t|dtƒD]q} tj||| f} tj||| f} |j| ƒdkrc| }|j| |    ƒ|j| |
ƒPqcqcWq WqìWdS(NiiÿÿÿÿsBSetCalcAttrListValue funcIndex=%s,attrType=%s,Value=%s is not int!i(RR©RftTYPE_Calc_PerLVAtkRÿRWRRnRR…RpRqtTYPE_Calc_PerLVMaxHPRoRîR†R{RR:RÞRRtDef_MaxAddAttrTypeCnttDef_PlayerKey_CalcAddAttrTypetDef_PlayerKey_CalcAddAttrValueR    R (RR®RhRitaddAtkRqReRt    findIndexR‰RàRYtaddAttrTypeKeytaddAttrValueKey((s.\\PlayerControl.pyRmWs2  * ##    cCs©gtdƒD] }i^q }xƒt|ƒD]u\}}xfttƒD]X}|jtj|||fƒ}|dkrzPn|jtj|||fƒ||<qEWq,W|S(Nii(RRîRRR1R    R©R2R3(RR®R{tattrListReRþRYR‰((s.\\PlayerControl.pyRÅxs +cCs›x”tjD]‰}x€ttƒD]r}|jtj|||fƒ}|dkrRPn|jtj|||fƒ}||}t|i||6ƒqWq
W|S(Ni(R©tCalcAttrIndexListRRR1R    R2R3RÆ(RR®RhReRYtcurAddAttrTypetcurAddAttrValueR((s.\\PlayerControl.pytAddCalcAttrListValue„s 
cCsŽx‡tjD]|}xsttƒD]e}tj|||f}|j|ƒ}|sRPn|j|dƒ|jtj|||fdƒqWq
WdS(Ni(R©R9RRR1R2R    R R3(RR®ReRYR6R‰((s.\\PlayerControl.pyR‘s(cCs]gtdƒD] }i^q }x7|D]/}x&tjD]}t||||ƒq6Wq&W|S(Ni(RR©R9RÆ(R8R{t addAttrListtaListRY((s.\\PlayerControl.pyRÍœs
 cCs~xw|jƒD]i\}}||kr2|||<q ||}|tjkrhdd|d|||<q ||||<q WdS(Ni'(R†R©tTYPE_Calc_DeclineList(tdict1tdict2RRÁtaValue((s.\\PlayerControl.pyRƤs  
cCsC|dkr |j||ƒdS|j|t|tjƒ|ƒdS(Ni(tNomalDictDelPropertytNomalDictAddPropertyRR©tDef_UpperLimit_DWordEx(RRRÁtdType((s.\\PlayerControl.pyRì³s
 cCs†g}tjƒ}|jƒ||_||_||_|j|ƒtjƒ}|jƒt|ƒ|_    ||_
t j ||ƒdS(N( RZttagMCSyncSingleBlessValueR„RõRÇtMultipleR}ttagMCSyncBlessValueRDtTypeCntt    BlessInfoR]R^(Rt    blessTypeRÁtmultipletitemListt    valuePackR'((s.\\PlayerControl.pytSync_BlessValue¼s 
              
    (ÉRRHR:R©R4R‚R1R(R8R:R6tChItemR-RBR<RÛR‚Rüt PlayerGMOperRJRqRÀt PlayerFamilyRnRuR›R³R RZR]RRËRÉRªR­RšR–RRR˜R“RÙRLRDRýR%RÉRwRHRARt PlayerTeHuitGameLogic_XMZZRMRœR:R~RFRåR¶RžRR@R RÙRõR¤R¦R¨R
R RRøR0R¬R#R"R”RRøRptIPY_NotifyCodeListR’RRR!RR*R8R;RMRORERZR[R`RaRcRzRrR<R£R§R­R¸RÂRÈRRÚRÕRîRèRÄRõRöRÃRÿRRÏRR
RR R%R'R.R3RRRGR_ReRFRpR{R}R~RR‚RˆR‹R™R­R½RÅRçRÛRÎRRR¦RRR7R@R8R9RHRDRwR›RtDef_Team_GetExpScreenDistR¨R©R¬R¸R½R¶RÂRÀRÎR×RÚRRøRèRùRRúRûRüR#RRR'R(R)R-R.R7R2R=RTR8R1R\R]RsRgRRiR$RR%R+R±RÉR>RðRERGRQRTRWRYR[RoR\RzRR…R†RŠRŽR’RR–RR™R²RâRŸR¢R£R¤R˜R¦RRR­RµR¯R¿R·R¸RÇRÈRÉRÊRÍRÎRÏRÑRÓRÕR×RéRêRëRíRìR*R>RñRïR8RURûRlR«RR³RmR»RRR    R
R R RRRRRRRR R"R#R%R&R(R)R+R,R.R/R1R2R4R5R7R8R:R<R>R?RARCRERFRHRIRKRMRORPRRRTRVRWRYR[R]R_RaRbRdReRgRhRjRkRmRnRpRqRsRtRvRwRyRzR|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¤R¥R§R¨RªR«R­R®R°R±R³R´R¶R·R¹RºR¼R½R¿RÀRÂRÃRÅRÇRÉRËRÍRÎRÐRÑRÓRÕR×RÙRÛRÝRßRáRãRäRæRèRêRìRîRïRñRòRôRõR÷RùRûRýRÿRRRRR    R R RRRRRRRRRRRRR!R"R)R,R.R1RmRÅR<RRÍRÆRìRP(((s.\\PlayerControl.pyt<module>sŽ                                                                                     3     & 
           2                    0      %                                2                 Á                          F                          !                             N    ,        5[ u    
    2E             ) g     P        Œ    0                              1 ,U    O    +              C    G    +                                                            €ÿÿÿÿÿÿ            
    >                   -                                        '    (                                        
                                    
                                                             >            
                                     3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        %    !