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
!7Ïic@s0ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z d„Zd„Zd„Zd„Zd„Zd„Zd„Zd    „Zd
„Zd „Zd d „Zd„Zd d„Zd„ZdS(iÿÿÿÿNcCst|ƒdS(N(tSync_MinggeInfo(t    curPlayer((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMingge.pyt OnPlayerLogin"s
cCsPtj|tjdƒtj|tjdƒtj|tjdƒt|ƒdS(Nii(t PlayerControltNomalDictSetPropertytChConfigtDef_PDict_MGGanwuLVtDef_PDict_MGGanwuExptDef_PDict_MGLingyingR(R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMingge.pyt DoMinggeOpen&s
 
cCsPtjƒj|ƒ}|j}t||ƒsLtj|tjt    j
dƒndS(Ni( t    GameWorldtGetPlayerManagertGetPlayerByIndextCounttDoMinggeTuiyant
ItemCommontSyncMakeItemAnswert ShareDefinetDef_mitMGTuiyanRtDef_ComposeState_Fail(tindext
clientDatattickRttyCount((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMingge.pytOnMinggeTuiyan4s
    cCs)|jƒ}|jtjƒ}d\}}tjƒ}xQt|jƒƒD]=}|j    |ƒ}|j
ƒ}||kr|}qI|}PqIW|s”gSg}    |sd}
|j ƒ} xFt | dƒD]5\} } | sÚqÂn|
| 7}
|    j |
| gƒqÂWtjd||    f|ƒn d}
|j
ƒ}|j
ƒ}||}||}|t|ƒ}|j ƒ}|j ƒ}x–t |dƒD]…\} }t|ƒ| kr®|| dnd}tt|||ƒƒ}td||ƒ}|
|7}
|r‚|    j |
| gƒq‚q‚Wtjd||    f|ƒ|    S(NiisÁéÓ¦Âú¼¶ÁË: curLingying=%s,%ss#×îÖÕÁéӦƷÖʱýͼ: curLingying=%s,%s(NN(t GetPlayerIDtNomalDictGetPropertyRRtNonet IpyGameDataPYtIPY_DatatrangetGetMGLingyingQualityCounttGetMGLingyingQualityByIndext GetLingyingtGetItemColorWeightListt    enumeratetappendR
tDebugLogtfloattlentinttroundtmax(RtplayerIDt curLingyingt
curIpyDatat nextIpyDatat
ipyDataMgrRtipyDatatlingyingtminggeRateListtratet
weightListtqualitytweighttcurIpyLingyingtnextIpyLingyingtlingyingDiffMaxtlingyingDiffNowtdiffPert curWeightListtnextWeightListt
nextWeightt    curWeightt
diffWeightt    nowWeight((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMingge.pytGetMGColorRateList;sP          
 
 
  &
c    CsÕ|jƒ}t|ƒ}|s"dS|}tjddƒ}tj|||ƒ\}}}|||}    |    dkr||    8}n|dkr©tjd||    f|ƒdStjddƒ}
|dd|
d} tjƒ} d} tj    |t
j |ƒ}xDt |ƒD]6}tj |ƒ}|s)qntjtjƒ}d}| j|ƒxKt| jƒƒD]7}| j|ƒ}|jƒ|kra|jƒ}PqaqaWtjd||||f|ƒtj|dtd    |ƒ}|dkréqn| oþ|jƒ| k}tj||d
d |igd t
j gƒs4qn| d7} qW| dkrRdStj||||| d ƒ| }|jtjƒ}|jtj ƒ}|}||}tjd |||fƒtj!d|ƒ}tj"d|dƒ}xo|r[|r[||j#ƒkr[||j#ƒ8}|d7}tjd||fƒ|}tj"d|dƒ}qíWt$j%|tj|ƒt$j%|tj |ƒt&|ƒt'j(|t
j)| ƒt'j*|ƒtj+|t
j,tj-| ƒt.S(Nt    MinggeCfgiis%ÍÆÑݵÀ¾ß²»×ã! useItemID=%s,lackCnt=%stItemRecordEquipiiÿÿÿÿsAÃü¸ñÍÆÑÝ: itemColor=%s,itemType=%s,randItemID=%s,colorRateList=%sRteventt MinggeTuiyant packIndexLists.¸üиÐÎò¾­Ñé: ganwuLV=%s,addGWExp=%s,updExp=%st    MGGanwuLVs    Éý¼¶: updLV=%s,updExp=%s(/RRBRt
GetFuncCfgRtGetPackItemBindStateIndexInfoR
R%t GetGameDatatGetItemPackSpaceRt rptMGTuiyanRtGetResultByRandomListtrandomtchoiceRtDef_MGGuayuTypetFilterItemByTypetxrangetGetFilterItemCountt GetFilterItemt GetItemColort GetItemTypeIDt ItemControlertGetOutPutItemObjtFalseRtDoLogic_PutItemInPacktDelCostItemByBindRRRtGetIpyGameDatatGetIpyGameDataNotLogtGetNextNeedExpRRRtOpenServerActivityt AddOSAValuetDef_BT_OSA_MinggeTraintUpdOSA_MinggeTrainBillboardRRtDef_ComposeState_SucesstTrue(RRR+t colorRateListtuseCountt    useItemIDtcostItemIndexListtbindCntt    unBindCnttlackCntt lastColorCnttneedRecordColorMintgameDatat    succCountt_t    itemColortitemTypet
randItemIDtititemDatatcurItemt    isForceDRtaddGWExptganwuLVtganwuExptupdLVtupdExpR0t nexpIpyData((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMingge.pyRss|          - 
!
 
 c Cs¹|jƒ}tj|ƒ}tjd||f|ƒx#tjtjgD]}|jƒj    |ƒ}xñt
|j ƒƒD]Ý}|j |ƒ}| sv|j ƒr¤qvntj|ƒs¹qvn|jƒ}    |jtjƒ}
tj|    d|di|
ttjƒ6ƒ} | sqvni} | jtjƒ} | jtjƒ}x`tt| |ƒƒD]I}| jtj|ƒ}| jtj|ƒ}||krN|| |<qNqNW| jƒ| s±qvngg}}|jtjƒ} |jtjƒ}xstt| |ƒƒD]\}|jtj|ƒ}|jtj|ƒ}| j||ƒ}|j|ƒ|j|ƒqøW|jƒ}|j ƒ}|j!tjƒ|j!tjƒxDt"|ƒD]6\}}|j#tj|ƒ|j#tj||ƒqW|j$ƒ|jƒ}tjd||| ||f|ƒi|d6|d6|d6|    d6|d    6|d
6}t%j&|d |ƒqvWqHWt'|ƒt(j)|ƒj*d t+ƒtj|ƒ}t%j&|d i|d6|d 6|d6ƒdS(Ns0ÐÞÕýÍæ¼ÒÃü¸ñÊýÖµ! fixVersion=%s,fightPowerBef=%sRt setAttrDictsE    packType=%s,index=%s,fixAttrDict=%s,userDataBef=%s,userDataAft=%st
fixVersiontpackTypeRtitemIDt userDataBeft userDataAfttMingget refreshForcet fightPowerBeft fightPowerAft(,RRt GetFightPowerR
tLogRt
rptMGGuayuRMtGetItemManagertGetPackRtGetCounttGetAttIsEmptyRt GetIsMGGuayuRWt GetUserAttrtDef_IudetItemLVRXRYtstrtGetUserAttrCounttDef_IudetLegendAttrIDtDef_IudetLegendAttrValueRStmintGetUserAttrByIndextCleartgetR$t GetUserDatatGetItemt ClearUserAttrR#t AddUserAttrt    Sync_ItemtDataRecordPackt DR_FixVersiontRefreshMinggeAttrt PlayerOnlinetGetOnlinePlayertRefreshRoleAttrRe(RR€t fixAttrIDListR+R‡Rt    equipPackRtcurEquipR‚titemLVttempItemt fixAttrDicttlegendAttrIDCnttlegendAttrValueCntRutattrIDt    attrValuet legendIDListtlegendValueListRƒt
singleItemR„tfixDictRˆ((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMingge.pyt FixRoleMinggeÂsl  + 
 
     0
(cCsEtjƒj|ƒ}t||jƒtj|tjt    j
dƒdS(Ni( R
R R t__doDecomposeMingget    IndexListRRRtDef_mitMinggeEquipRRd(RRRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMingge.pytOnMinggeDecomposesc CsÈ|jƒ}tjddƒ\}}tjd|||f|ƒ| sO| rSdSd}t|ƒ}|r–tjddƒ}|dd|d}ntjd||f|ƒd}|jƒjt    j
ƒ}    x±|D]©}
|
dksÕ|
|    j ƒkrÿqÕn|    j |
ƒ} t j| ƒs7tjd|
|ƒqÕn|oL| jƒ|k} t j|| | j ƒtd    d
| ƒ|d7}qÕW|sŒdS|||gg} tj|| d d    tigd tƒdS( NtMinggeTYis1·Ö½âÃü¸ñ: itemIndexList=%s,itemID=%s,itemCount=%siRDiÿÿÿÿs&needRecordColorMin=%s,colorRateList=%ssÎïÆ·Îª¿Õ»ò²»¿ÉÓÃ: itemIndex=%stMinggeDecomposeRxREt isNotifyAward(RRtGetFuncEvalCfgR
R%RBRIRŒRRRMRŽRRtCheckItemCanUseRVtDelItemReRXtGivePlayerItemOrMailRZ(Rt itemIndexListR+R‚t    itemCountRnRfRmt decomposeCntt mgTuiyanPackt    itemIndexR©RxtitemList((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMingge.pyR¶s8   %%c    Csttjƒj|ƒ}|jƒ}|j}|j}|j}tjd|||f|ƒtj    ||t
j ƒs‰tjd||ƒdS|j ƒj t
jƒ}|dks¿||jƒkrÃdS|j|ƒ}    tj|    ƒsùtjd||ƒdS|    jƒ}
|    jƒ} | tjkr$dStjd| ƒ} | s@dS| jƒ} |dttjƒ| d}tjd||
| | |f|ƒ|j ƒj t
jƒ}|dksÄ||jƒkrëtjd||| | |f|ƒdS|j|ƒ}tj|ƒ}tj||    |t
jƒs(dS|rG|rGt||gƒnt||ƒtj |t
j!tj"|ƒdS(    Ns0Ãü¸ñ×°±¸Ìæ»»: mgNum=%s,itemIndex=%s,isAutoDec=%ssÃü¸ñÌ×·½°¸Î´½âËø! mgNum=%sis&    Ãü¸ñÎïÆ·Îª¿Õ»ò²»¿ÉÓÃ: itemIndex=%st MGGuayuTypeisG    itemIndex=%s,itemID=%s,itemType=%s,equipPlace=%s,equipPlaceIndex=%ss`Ãü¸ñØÔÓñ¶ÔӦװ±¸Î»ÖÃË÷ÒýÒì³£: itemIndex=%s,mgNum=%s,itemType=%s,equipPlace=%s,equipPlaceIndex=%s(#R
R R RtMGNumtIndextAutoDecR%t PlayerPresettGetFuncPresetIDStateRtFuncPreset_MinggeRŒRRMRŽRRR¾RWtGetTypeRRQRR]t GetEquipPlaceR'R‹tErrLogtDoLogicSwitchItemR¶R£RR¸Rd(RRRRR+tmgNumRÅt    isAutoDecRÄR©R‚Rst typeIpyDatat
equipPlacetequipPlaceIndexR¨t    destEquipt    canDecomp((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMingge.pyt OnMinggeEquipAsR                          cCsÁtjƒj|ƒ}|j}tjƒ}|jƒ}|s@dS|j|dƒ}|s]dS|jƒ}|j    t
j ƒ}    |    |kr¢tj d|    |fƒdSt |||    ƒ}tj d||    |fƒtjddƒ}
tj||
|ƒ\} } } || | }|dkr&||8}n|dkrMtj d|
|fƒdStj|| | | |dƒ|}|    |}tj|t
j |ƒtj d    ||fƒt|ƒtj|ƒdS(
Nis&ÁéÓ¦ÖµÒÑ´ï×î´óÖµ! curLingying=%s >= %ss3Ãü¸ñÆíÁé: useCount=%s,curLingying=%s,maxLingying=%sRCiis%ÆíÁéµÀ¾ß²»×ã! useItemID=%s,lackCnt=%st MinggeQilings    updLingying=%s,useCount=%s(R
R R tUseCountRRRR R!RRRR%R˜RIRRJR\RRRR`Rc(RRRRRgR/t    dataCountt lastIpyDatat maxLingyingR,RhRiRjRkRlt addLingyingt updLingying((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMingge.pytOnMinggeQilings@           
 
 icCs-t||ƒtj|ƒjtj|ƒdS(N(tCalcMinggeAttrR¤R¥tRefreshByFuncPresetRRÍ(RRÒ((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMingge.pyR£¨s cCs4ttjƒ}|d|}||}t||ƒS(Ni(R'RRQR(RÒtmgCntt
startIndextendIndex((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMingge.pytGetMGNumPackIndexList­s
cCs]|jƒ}tj}|sUtjd|ƒ}|rLtddt|ƒƒng}n    |g}tj|ƒ}|j    ƒj
tj ƒ}xÑ|D]É}ii}    }
t j |||ƒsÖ|jtj|    |
d|ƒqŒnxCt|ƒD]5} | dksã| |jƒkr qãn|j| ƒ} | sã| jƒr5qãn| jtjƒ} | jtjƒ}xatt| |ƒƒD]J}| jtj|ƒ}| jtj|ƒ}|    j|dƒ||    |<qoWxXt| jtjƒƒD]>}| jtj|ƒ}|rÖ|
j|dƒd|
|<qÖqÖWqãWtjd|    |
|f|ƒ|jtj|    |
d|ƒqŒWdS(Nt PresetUnlockitpresetIDis)Ãü¸ñÊôÐÔ: %s,skillLVDict=%s,mgPresetID=%s(RRRÍRtGetIpyGameDataListRR'R¤R¥RŒRR‹RËRÌt SetCalcAttrRtDef_CalcAttr_MinggeRçRŽRRR•R–R—RSR˜R™R›tDef_IudetAddSkillIDR
R%(RRÒR+tfuncPresetTypet ipyDataListtmgPresetIDListtolPlayerR¨t
mgPresetIDtattrDictt skillLVDictRR©R­R®RuR¯R°tskillID((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMingge.pyRâ³s@     (      % cCso|jtjƒ}|sdStjƒ}||_|jtjƒ|_|jtjƒ|_    t
j ||ƒdS(N( RRRtChPyNetSendPackttagSCMinggeInfotGanwuLVRtGanwuExpRtLingyingt NetPackCommont SendFakePack(RRzt
clientPack((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMingge.pyRÞs     (R
RËRRXRR¡R`RöRûR¤RRRRORR    RRBRRµR¹R¶RÙRáR£RçRâR(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerMingge.pyt<module>s6                              8    O    N        +    @    '      +