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
öF¼gc@s°ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZd„Zd„Zd„Z d„Z!d„Z"dd„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„Z0e1e1d„Z2de4d„Z5d„Z6e1d„Z7d„Z8d„Z9d„Z:d„Z;d„Z<d„Z=d„Z>d „Z?d!„Z@d"„ZAd#„ZBdS($iÿÿÿÿNcCsdS(N((t    curPlayer((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytDoLogic_PetInfo_OnDay4scCstj|tjƒsdSxWtdtƒdƒD]?}|jtj|ƒdkr0t    j
|tj|dƒq0q0Wt |ƒdS(Nii( t GameFuncCommt GetFuncCanUset ShareDefinetGameFuncID_PettxrangetGetPetTrainTypestNomalDictGetPropertytChConfigtDef_PDict_PetTrainLVt PlayerControltNomalDictSetPropertytSync_PetTrainData(Rt    trainType((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytOnPlayerPetLogin7s!
cCs_tjd|jƒƒx8tdtƒdƒD] }tj|tj|dƒq-Wt    |ƒt
S(Ns DoPetOpen...i( t    GameWorldtDebugLogt GetPlayerIDRRR R R    R
R tTrue(RR((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt    DoPetOpenDs
 
cCsdS(N((R((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytDoLVUPLogic_PetMscCstjd|ƒS(NtPetInfo(t IpyGameDataPYtGetIpyGameData(tpetNPCID((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt GetPetIpydataQscCs
tjƒ}|j|ƒ}|s6tjd|ƒdSt|ƒ}|s]tjd|ƒdStjtjƒ}|sydS|j    t
j |ƒ|j    t
j dƒ|dkr·|j ƒn|}|j    t
jtd|dƒƒ|j    t
j|jƒƒt||tƒ|S(Ns0FindNPCDataByID can not find npcData petNPCID=%ss/tagPetInfo.txt can not find petData petNPCID=%siiÿÿÿÿi(Rt GetGameDatatFindNPCDataByIDtErrLogRt
ItemCommontCreateSingleItemR    tDef_ItemID_PetDatat SetUserAttrRtDef_IudetPet_NPCIDtDef_IudetPet_Statet GetInitRanktDef_IudetPet_ClassLVtmaxtDef_IudetPet_QualityLVt
GetQualityt__UpdPetItemSkillByClasstFalse(RRtclasslvtgameDatat
petNpcDatat
petIpyDatat
newPetItemt    initClass((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytGetNewPetDataItemTs&   cCs,|s
dSt||jƒƒ}t||ƒS(N(tGetPetDataItemByNPCIDtGetNPCIDtGetPetDataItemByIndex(t curPetOwnertrolePett packItemIndex((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytGetPetDataItemoscCsz|jƒjtjƒ}|dks6||jƒkr:dS|j|ƒ}tj|ƒsvtj    d||j
ƒƒdS|S(Nis$PetDataItem is none! PetItemIndex=%s( tGetItemManagertGetPackRtrptPettGetCounttGetAtRtCheckItemCanUseRRR(Rt petItemIndext petDataPackt petDataItem((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyR4vscCsv|jƒjtjƒ}xWt|jƒƒD]C}|j|ƒ}|jƒrRq+n||jtj    ƒkr+|Sq+WdS(N(
R9R:RR;trangeR<R=tIsEmptyt GetUserAttrR"(RRR@t petDataIndextpetItem((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyR2ƒs cCsv|jƒjtjƒ}xWt|jƒƒD]C}|j|ƒ}|jƒrRq+n||jtj    ƒkr+|Sq+WdS(Niÿÿÿÿ(
R9R:RR;RBR<R=RCRDR"(RRR@RERF((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytGetPetDataItemIndexByNPCIDŽs c        Cs'|jtjƒ}|jtjƒ}|jtjƒ}|jtjƒ}|jtjƒ}gt|jtj    ƒƒD]}|j
tj    |ƒ^qs}i|d6}|oº|j i|d6ƒ|oÔ|j i|d6ƒ|oî|j i|d6ƒ|o|j i|d6ƒ|o"|j i|d6ƒ|S(NtnpcIDtstatetclassLVtqualitytstartskills( RDRR"R#R%R'tDef_IudetPet_StarRtGetUserAttrCounttDef_IudetPet_SkilltGetUserAttrByIndextupdate(    RFRHRIRJRKRLtiRMt    cacheDict((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytGetPetItemCacheDict™s: cCssg}|jƒjtjƒ}xNt|jƒƒD]:}|j|ƒ}|jƒrXq1n|jt    |ƒƒq1W|S(N(
R9R:RR;RBR<R=RCtappendRU(Rt itemCacheListR@RERF((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytGetPetCacheInfo©s cCsMtjƒj|ƒ}tjƒ}|jƒ}|jƒ}t|||ƒdS(N(RtGetPlayerManagertGetPlayerByIndext IPY_GameWorldtIPY_CPetStateChangetGetPetIDtGetStatetDoChangePetState(tindexttickRtpackR?RI((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytPetStateChange¿s    c Cs|t||ƒ}|sdS|jƒ}|jtjƒ}|jtjƒ}tjd||||f|ƒ|dkr‰t|||ƒdSt    j
ddƒ}|t |ƒkrÅtjd||ƒdS||d}|j ƒ}    |    |kr tjd|    |    |f|ƒdS|jtj ƒ}
t|ƒ} | s4dS| jƒ} |
| dkrhtjd| |ƒdSt|||ƒdS(NsA³èÎï״̬±ä¸ü! petItemIndex=%s,petNPCID=%s,curState=%s,tagState=%sit PetGoOutFightis%    ²»´æÔÚ¸ÃÁé³èÉÏÕóλÖÃ! tagState=%ss;    ¾³½ç²»×㣬ÎÞ·¨ÉÏÕóÁéÊÞ! curRealmLV=%s < %s, tagState=%ss&    ÁéÊÞÇл»Íâ¹Û,½×¼¶²»×ã%s,²»¿ÉÇл»£¡(R4RRDRR"R#RRt SetPetStateRtGetFuncEvalCfgtlentGetOfficialRankR%RtGetUseNeedRank( RR?ttagStateRFtplayerIDRtcurStatetgooutFightRealmListt needRealmLVt
curRealmLVt
curClasslvtipyDatat needClasslv((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyR_Ès<          cCsó|jtjƒ}|dkr;tjd||jƒƒn¡|jƒjtjƒ}xft    |j
ƒƒD]R}|j |ƒ}|j ƒrqfn|jtj ƒ|krft||dƒqfqfWtjd||f|jƒƒ|jtj |ƒdS(Nis    Áé³èÏÂÕó: npcID=%ss"    Áé³èÉÏÕó: npcID=%s,tagState=%s(RDRR"RRRR9R:R;RBR<R=RCR#ReR!(RRFRjRHR@R`titem((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyReïs   cCsdS(N((RtdataList((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytCrossServer_DoChangePetStatescCsdS(N((R((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt AutoSummonPetsc CsKi}g}tj}|jƒj|ƒ}xït|jƒƒD]Û}|j|ƒ}|jƒrdq=nx±t|jtj    ƒƒD]—}|j
tj    |ƒ}t j ƒj |ƒ}|s¹q}ntj|ƒrÛ|j|ƒq}n|jƒ}    |    |kr||    j|ƒq}|g||    <q}Wq=Wg|jƒD]}
t|
ƒ^q)} | |fS(N(RR;R9R:RBR<R=RCRORPRQRRtGetSkillBySkillIDt SkillCommont isPassiveAttrRVtGetSkillTypeIDtvaluesR&( RtlearnSkillDicttpassiveSkillListt petPackIndextpetPackRSRFtskillIDt curSkilDatat skillTypeIDtatlearnSkillIDList((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytGetPetLearnSkill    s,        %cCs>tjƒj|ƒ}|j}|j}t|||tƒdS(N(RRYRZtPetNPCIDt    IsUseGoldt DoActivatePetR(R`t
clientDataRaRRt    isUseGold((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt OnActivatePet-s
        cCs(|s
dSt}tj}|jƒj|ƒ}x}t|jƒƒD]i}|j|ƒ}|jƒrnt    }qAn|j
tj ƒ}    |    |krAt j d||    |fƒdSqAW|sÈtj|dƒdSt|ƒ}
|
sÞdS|
jƒ} |
jƒ} |jƒjtjƒ} tj| | | ƒ\}}|sJt j d| | fƒdSt||ƒ}|scdStj|ƒj||ƒs‚dStj|| || ttjƒtj||ƒ|
j ƒpÀd}tj!d||j"ƒ|gƒt#|t    ƒt$j%|tj&t'|ƒƒt(j)|tj*|tƒt    S(Ns1ÒѾ­ÓµÓиóèÎ i=%s,petItemNPCID=%s,petNPCID=%stPet_liubo_76326s)DoActivatePet() item(%s[%s]) isn't enoughtGetPeti(+R*RR;R9R:RBR<R=RCRRDR"RRR t
NotifyCodeRtGetUnLockNeedItemIDtGetUnLockNeedItemCntR[trptItemRtGetItem_FromPack_ByIDR1t ItemControlertPlayerItemControlert    PutInItemt
ReduceItemR    t ItemDel_Pett
EventShelltEventRespons_OnActivatePett GetUnlockSyst WorldNotifytGetNametRefreshPetItemAddAttrtOpenServerCampaigntUpdOpenServerCampaignRecordDatatDef_Campaign_Type_PetLVt GetTotalPetLVtPlayerWeekPartytAddWeekPartyActionCntt Def_WPAct_Pet(RRRŠt    isUseItemthasSpaceR~RRStpackItemt petItemNPCIDRqt
needItemIDt needItemCnttitemPackt    hasEnoughtitemListR/tsysMark((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyRˆ4sP          c    Csòtjƒ}|jƒ}|dks0||krKtjd||fƒdS|j|dƒ}|jƒ}|jƒ}|jƒ}    t    j
}
|j ƒj |
ƒ} xÌt | jƒƒD]¸} | j| ƒ} | jƒrÚq³n| jt    jƒ}||kr³|r*| jt    jtdt||    ƒdƒƒn| jt    j|ƒtjd| ||fƒt|| tƒtSq³W|dkr„d}nt||    ƒ}t|||ƒ}|s¯dSt    j
}
tj|ƒj|
|ƒs×dS|sátSt |tƒtS(Nis2¼¤»î³èÎﳬ¹ý³èÎï±íÊý¾ÝÊý: index=%s,petInfoCount=%sis1ÒѾ­ÓµÓиóèÎ i=%s,petItemNPCID=%s,petNPCID=%s(!RtIPY_DatatGetPetInfoCountRRtGetPetInfoByIndextGetIDR(t
GetMaxRankRR;R9R:RBR<R=RCRDR"R!R%R&tminR'RR)RtNoneR1R“R”R•R(RR`R+trefresht
ipyDataMgrt petInfoCountR.RRKt
maxClassLVR~RRSR§R¨R/((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt DoPetActivateksH           ,          c,
Cs§tjƒj|ƒ}tj|tjƒs;tjdƒdS|jƒ}|j    }|j
}d}t ||ƒ}|sxdS|j tj ƒ}    tjƒj|    ƒ}
|
sºtjd|    ƒdS|j tjƒ} t|    ƒ} | sâdS| jƒ} | d| krtjd| |ƒdStjd|    | dƒ}|s9dS|jƒ}|sOdS|j tjƒ}|jƒjtjƒ}g}g}tjdd    ƒ}x9|jƒD]+\}}|    |kr¤t|ƒg}Pq¤q¤W|sëtjdƒ}n|sõdSd}x¤|D]œ}tj ||||ƒ\}}}}|j!|ƒ|rDPn|rd}xK|D]@}|j"|ƒ}tj#|ƒsqWn|j$ƒ}||7}qWWqqW| rË| rËtjd
|    |fƒdS|d} |rñ|j"|dƒ}ntjƒj%| ƒ}|sdS|dkr dS|j&ƒ}!|j'dƒ}"|"j(dƒ|}#||#}$| }%xnt)| | dƒD]Y}&tjd|    |&dƒ}|s›Pn|jƒ}'|$|'kr·Pn|$|'8}$|%d7}%qrWt*d||ƒ}(|r
tj+||||(t,t-j.ƒn|%d| kr#d}$n|j/tj|$ƒ|%| kr÷|j/tj|%ƒt0||t,ƒ})|) rš|%d| kršt1j2dd |!|    gƒn|j3ƒj4ƒ}*|)rË|*rËt5j6|*|)ƒnt7|t,ƒt8j9|tj:t;|ƒƒnt<j=|tj>d|    |%dgƒi|d 6|    d 6}+|+j?t@|jAƒƒƒtBjC|d|%|+ƒtDjE|i|| 6ƒtFjG|t-jH|ƒtIjJ|tIjK| |ƒdS(Ns ³èÎ﹦ÄÜ먦Æôiscan not found pet npcID = %sis³èÎïÉý½× ÒÑÂú¼¶¡£¡£¡£classLV=%st PetClassCostit    PetUpItemis6PetClassUp Éý½×µÀ¾ß²»×ã! petNPCID=%s,costItemIDList=%st
PetUpLvMaxR?Rt
PetClassUp(LRRYRZRRRRRRt PetItemIndext
UseItemCntR4RDR"RRRR%RR³RRt GetUpNeedExptDef_IudetPet_ExpR9R:R[R‘RftitemstintRtGetItem_FromPack_ByID_ExExtextendR=R>R<tGetItemByTypeIDRœtGetEffectByIndextGetEffectValueRR&R–RR    R—R!R)R R›t    GetPetMgrt GetFightPett
PetControltDoLogic_PlayerPetLearnSkillListRRžRŸR R¡t PlayerSuccesstDoAddSuccessProgresstSuccType_PetClassLVRRtevalt GetUserDatatDataRecordPacktDR_ClassUpSystemtPlayerActHorsePetTraintOnHorsePetTrainCostt PlayerActTasktAddActTaskValuetActTaskType_PetUpItemtPlayerActLunhuidiantAddLunhuidianValuetAwardType_UseItem(,R`R‰RaRRkR¿t costItemCountt    isAutoBuyRARR-RJR.R¹RqtneedExptcurPetClassExpt curItemPackt itemIndexListtcostItemIDListtspecCostItemInfot    strItemIDt petNPCIDListtnowCnttitemIDR¬t    indexListtfindItemIsBindtlackCntt    itemIndextcurItemtitemCntt autoBuyItemIDt
playerNametcurEfftaddExptupdExpt
updClassLVtlvt    upNeedExptdelCnttlearnSkillListtfightPett extraInfoDict((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyR¾œsÔ               %   
 
 
"       #c    Cs›|jƒ}|jtjƒ}|jtjƒd}g}|jtjƒ}xit|ƒD][}|jtj|ƒ}    t    j
ƒj |    ƒ}
|
s•qYn|
j ƒ} |j | |    gƒqYWt|ƒ} | jƒ} | jƒ}| jƒ}g}t}x½t| ƒD]¯\}}    ||}||krAt    jd||    |fƒPnt    j
ƒj |    ƒ}
|
sbqn|
j ƒ} d\}}xBt|ƒD]4\}}|\}}|| kr‡|}|}Pq‡q‡W|    |krÑqn|
jƒtjkrÿtj||    gƒqnt}|s!|j | |    gƒn| |    g||<tj|
ƒsP|j |    ƒn|t|ƒkrl||nd}|r |r tjd|||||    gƒntj ||    ƒqW|s¾|Sx€t|ƒD]r\}}|d}    ||kr*|jtj|ƒ}||    kr=|j!tj||    ƒq=qË|j"tj|    ƒqËWg}x<t|jtjƒƒD]"}|j |jtj|ƒƒq`Wt    jd|ƒ|S(Nis6    Î´Âú×ãѧϰ½×¼¶: i=%s,skillID=%s,limitPetClassLV=%siiÿÿÿÿtPetUpLvsÁé³è×îм¼ÄÜ: nowSkillIDList=%s(iiÿÿÿÿ(#RœRDRR"R%RORPRRQRRRwRzRVRt
GetSkillIDtGetSkillUnLocktGetSkillUnLockSysR*t    enumerateRt GetFuncTypeR    tDef_SkillFuncType_PetOwnerSkillRxtGivePlayerSkillByJobSkillRRyRgR R›tPlayerActivitytAddActivityByLVOnLearnSkilltUpdataUserAttrByIndext AddUserAttr(RRAtisNotifyRðRRJt itemSkillListtitemSkillCountRSR€t    skillDataR‚R.t petSkillListtpetSkillUnLockListt sysMarkListRøt skillChangetlimitPetClassLVtalreadyLearnSkillIDtalreadyLearnIndext
skillIndext    skillInfotitemSkillTypeIDt itemSkillIDR®tnowSkillIDList((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyR))s~      
      " "
   c    Cs°d}tj}|jƒj|ƒ}x…t|jƒƒD]q}|j|ƒ}|jƒr^q7n|jtj    ƒ}|jtj
ƒd}t |ƒ}|sžq7n||7}q7W|S(Nii( RR;R9R:RBR<R=RCRDR"R%R(    Rt
totalPetLVR~RRSRFR¨RJR.((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyR¡ys      cCsšd}tj}|jƒj|ƒ}xot|jƒƒD][}|j|ƒ}|jƒr^q7n|jtj    ƒ}t
|ƒ}|sˆq7n|d7}q7W|S(Nii( RR;R9R:RBR<R=RCRDR"R(Rt totalPetCountR~RRSRFR¨R.((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytGetTotalPetCount‰s      cCsRt|ƒ|r5tj|ƒjdtjdtƒntj|ƒjdtƒdS(Nt billboardFunctisForce(tCalcPetItemAddPlayerAttrR tRefreshPlayerAttrStatetPlayerBillboardtUpdatePyPetBillboardR(RtisUpdBillboard((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyR™s
 
%c    Cs¢t|ƒ\}}x‰|D]}tjƒj|ƒ}|s@qnxWt|jƒƒD]C}|j|ƒ}|jƒtj    krƒqSnt
j |||ƒqSWqWdS(N( R…RRRwRtGetEffectCountt    GetEffectt GetEffectIDR    tDef_SkillEffs_Pett
SkillShelltCalcBuffEffAttr(    RR6tallAttrListPetRøR}R€tcurSkillt effectIndext    curEffect((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytCalcSkill_PetBattleEffect§s cCsktj|ƒ}x'|D]\}}tj|||ƒqWtj||tjƒtj    ||tj
ƒdS(N( t    NPCCommontGetNPCBuffRefreshListR%tCalcCurBuffer_EffecttCalcNoLineEffecttChangeNPCAttrInNoLineEffectListR    tCalcAttr_BattleNolinetCalcLineEffecttChangeNPCAttrInLineEffectListtCalcAttr_Battle(R6R'tbuffRefreshListt    buffStatet    canPileup((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytCalcBuffer_PetBattleEffect»s c8Cs8gtdƒD] }i^q }gtdƒD] }i^q,}gtdƒD] }i^qK}gtdƒD] }i^qj}gtdƒD] }i^q‰}gtdƒD] }i^q¨}gtdƒD] }i^qÇ}i}    t|ƒ\}
} } | |    d<tjtj|
|ƒtjtj| |ƒ|jtj    ƒ} t
j ||tj ƒ}tj |tj|ƒt|ƒ\}}x|D]ú}tjƒj|ƒ}|sªqƒn|jƒtjkr#x[t|jƒƒD]G}|j|ƒ}|jƒ}|jdƒ}tj||| |ƒqÒWqƒnxWt|jƒƒD]C}|j|ƒ}|jƒtjkrfq6ntj|||ƒq6WqƒWtjƒ}xgt|jƒƒD]S}|j |ƒ}|j!ƒ}|j"ƒ}|jtj#|ƒ}||krõq n1||kr|jtj$|ƒ}n |j%ƒ}|j&ƒ}|j'ƒ}x7t(|ƒD])\} }!|| }"tj|!|"|ƒqKW|j)ƒ}#|r |#r |j*ƒ}$|j+ƒ}%||#}&x>t(|$ƒD]-\} }!|%| }"tj|!|"|&|ƒq¿Wq q Wtj,|tj-|ƒtj,|tj.|d|    ƒtj,|tj/|ƒtj,|tj0|ƒtj,|tj1|ƒd}'tj2}(|j3ƒj4|(ƒ})x`t|)j5ƒƒD]L} |)j6| ƒ}*|*j7ƒrÉq¢nxft|*j8tj9ƒƒD]L} |*j:tj9| ƒ}tjƒj|ƒ}+|+sqân|'|+j;ƒ7}'qâW|*j<tj=ƒ},t>|,ƒ}-|-s\q¢n|'|-j?ƒ7}'|jtj@d|,fdƒ}.tjAdd|,|.dƒ}/|/ræx6|/jBƒjCƒD]\}!}"tj|!|"|ƒqÀWn|*j<tjDƒ}0tjAd|,|0ƒ}1|1rh|1jEƒ}2|1jFƒ}3x:t(|2ƒD])\} }!|3| }"tj|!|"|ƒq8Wn|*j<tjGƒd    }4tjAd
|,|4ƒ}5|5r¢|5jHƒ}6|5jIƒ}7x:t(|6ƒD])\} }!|7| }"tj|!|"|ƒq¾Wq¢q¢Wtj,|tjJ|ƒtj,|tjK|ƒtj |tjL|'ƒdS( NitpetQualityAttrInfoitcustomAttrDictit HorsePetSkinidt    PetStarUpiR»(MRBtGetPetAtkValueR tCalcAttrDict_TypeRtDef_Effect_PetMinAtktDef_Effect_PetMaxAtkRR    tDef_PDict_TotalSignNumtPlayerAttrFruittCalcAttrFruitAddAtrrtDef_AttrFruitFunc_PettSetMFPExFightPowertDef_MFPType_PetSoulR…RRRwRztDef_SkillID_PetSignDayRR!R"R#RÉR$R%R&RR¯tGetPetTrainCounttGetPetTrainByIndext GetTrainTypet
GetTrainLVR
tDef_PDict_PetTrainItemCounttGetEatCntTotaltGetLVAttrTypeListtGetLVAttrValueListRÿtGetEatCntEverytimetGetEatItemAttrTypeListtGetEatItemAttrValueListtSetCalcAttrListValuetDef_CalcAttrFunc_PetTarintDef_CalcAttrFunc_PettDef_CalcAttrFunc_PetSoultDef_CalcAttrFunc_PetSigntDef_CalcAttrFunc_PetSkillR;R9R:R<R=RCRORPRQt GetFightPowerRDR"RtGetInitFightPowertDef_PDict_HorsePetSkinDatatGetIpyGameDataNotLogt GetAttrInfoRÃRNtGetStarAttrTypetGetStarAttrValueR%t GetAttrTypet GetAttrValuetDef_CalcAttrFunc_PetSkintDef_CalcAttrFunc_PetStartDef_MFPType_Pet(8Rt_R'tallAttrListPetSigntallAttrListPetSoult skillAttrListtallAttrListPetSkintallAttrListTraintallAttrListStartcustomAttrDictPett totalMinAtkt totalMaxAtktqualityAttrInfot totalSignNumt fightPowerExRøR}R€R(R)R*teffIDteffValueR·R`t trainIpyDataRt dataTrainLVttrainLVttrainItemCounttlvAttrTypeListtlvAttrValueListRStattrIDt    attrValueteatCntEverytimeteatItemAttrTypeListteatItemAttrValueListt attrMultiplet    fpExTotalR~RRFRR¨R.tskinDatat skinIpyDatatcurStart starIpyDatat starAttrTypet starAttrValueR+t classIpyDatat attrTypeListt attrValueList((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyRÌsÐ
 
 
 
"        
 
cCsfi}tj|tjƒs(dd|fSd}tj}|jƒj|ƒ}xþt|jƒƒD]ê}|j    |ƒ}|j
ƒr†q_n|j tj ƒ}|j tj ƒ}tjd||dƒ}    |    rÕ|    jƒnd}
||
7}t|ƒ} | r_| jƒ} | |kri|| <n|| } | jtjdƒ|
| tj<q_q_W|}|}|||fS(NiR»i(RRRRR;R9R:RBR<R=RCRDR"R%RRt    GetAtkAddRR(tgettDef_Effect_PetAtk(RRot classAddAtkR~RRSR§R¨R+R‡tatkAddR.RKtqualityAttrDictRmRn((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyR=Ss2      
 
'cCsttjddƒƒS(NR¼i(RgRRf(((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyRrsc    Cs8tjƒj|ƒ}|j}|j}|jtj|ƒ}|jtj|ƒ}tj    d||||fƒ|dks‹|t
ƒkrdS|dkr°tj    d|ƒdSt j d||ƒ}|sÏdS|j ƒ}    tj|dƒ}
|
|    krtj    d|
|    fƒdS|jƒ} | s7tj    dƒdSt jdd    ƒ} | |d
} | se| ridStj|| |ƒ\}}}|||}|dkrÅtj    d | ||||fƒdS|}|rótj|||||tjƒn|}||}tj    d || fƒ|| krT|d
7}|| 8}tj    d ||fƒntj|tj||ƒtj|tj||ƒ||kr—nt|ƒt|tƒtj|i|| 6ƒ|dkrêtj|tj|ƒnJ|d    krtj|tj|ƒn%|d
kr4tj|tj |ƒndS(NsEÁé³èÅàÑø: trainType=%s,trainLV=%s,costItemCount=%s,curEatItemCount=%sis    ÅàÑøÎ´¼¤»î  trainType=%stPetTrainis:    ¾³½ç²»×㣬ÎÞ·¨ÅàÑø£¡  curRealmLV(%s) < needRealmLV(%s)s    ¸ÃÅàÑøÒÑÂú¼¶£¡R¼iis\    ÏûºÄµÀ¾ß²»×㣬ÎÞ·¨ÅàÑø!costItemID=%s,costItemCount=%s,bindCnt=%s,unBindCnt=%s,lackCnt=%ss+    updEatItemCount=%s,needEatCountTotal=%ss*    ½ø½×: updClassLV=%s,updEatItemCount=%s(!RRYRZt    TrainTypeRÀRR    R
RLRRRRtGetNeedRealmLVR tGetTrainRealmLVRealRMRfRtGetPackItemBindStateIndexInfotDelCostItemByBindR—R R RRRÕRÖR×RØtActTaskType_PetTrainItem2tActTaskType_PetTrainItem3tActTaskType_PetTrainItem1(R`R‰RaRRRÝRvtcurEatItemCountRtRnRotneedEatCountTotalRãt
costItemIDtcostItemIndexListtbindCntt    unBindCntRëR÷RôtupdEatItemCount((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt
OnPetTrain}st                      "
 
 
 
    cCsqtjƒj|ƒ}|jƒ}|j}t||ƒ}|sCdS|jtjƒ}|jtj    ƒ}|d}    t
j d||    ƒ}
|
sªtj d||f|ƒdS|
j ƒ} | sÀdS|jƒjtjƒ} tj| | ƒ\} }| rtj d||    | | f|ƒdStj|| |dƒ|jtj    |    ƒtj d|||    f|ƒt|tƒdS(NiR<s2Áé³è²»´æÔÚ¸ÃÐǼ¶£¬ÎÞ·¨ÉýÐÇ. petNPCID=%s,curStar=%ssNÁé³èÉýÐÇËùÐèÎïÆ·²»×㣡 petNPCID=%s,nextStar=%s,needItemList=%s,lackItemDict=%ss,Áé³èÉýÐÇ. petNPCID=%s,curStar=%s,nextStar=%s(RRYRZRR¿R4RDRR"RNRR\RtGetStarUpNeedItemListR9R:R[R‘RtGetCostItemIndexListt DelCostItemR!RR(R`R‰RaRRkR¿RARRƒtnextStart nextIpyDatat needItemListR«t lackItemDictt delInfoDict((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt OnPetStarUpÓs6     
      cCs¥tjƒ}g|_g|_x^tdtƒdƒD]F}|jj|jtj    |ƒƒ|jj|jtj
|ƒƒq5Wt |jƒ|_ t j||ƒdS(Ni(tChPyNetSendPackttagMCPetTrainInfot TrainLVListtTrainItemCountListRRRVRR    R
RLRgt
TrainTypest NetPackCommont SendFakePack(Rt
clientPackR((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyR òs          $(CR    R,RR[RÓRR%R“R RÎRRRxRÌR˜RRRBRžR¢R/R2RRªR¯RÚRÕR×trandomtmathRRRRRR1R8R4R2RGRURXRcR_ReRuRvR…R‹R*RˆRµRRºR¾R)R¡RRR+R8RR=RR R©R (((siE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt<module>s~                                                                                               '                $    71     P                        ‡             V