hxp
2025-10-22 790490ed761346c37f46dad61f52dafe61c1627b
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
ÌKøhc@s¶ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZd„Zd„Zd„Zd„Z dd„Z!d„Z"d„Z#d    „Z$d
„Z%d „Z&d „Z'd „Z(d„Z)e*d„Z+d„Z,d„Z-d„Z.d„Z/d„Z0e1e1d„Z2de*d„Z4d„Z5d„Z6d„Z7d„Z8d„Z9d„Z:d„Z;d„Z<d„Z=d „Z>d!„Z?d"„Z@d#„ZAd$„ZBd%„ZCdS(&iÿÿÿÿNcCsdS(N((t    curPlayer((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytDoLogic_PetInfo_OnDay4scCs_tjd|jƒƒx8tdtƒdƒD] }tj|tj|dƒq-Wt    |ƒt
S(Ns DoPetOpen...i( t    GameWorldtDebugLogt GetPlayerIDtxrangetGetPetTrainTypest PlayerControltNomalDictSetPropertytChConfigtDef_PDict_PetTrainLVtSync_PetTrainDatatTrue(Rt    trainType((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt    DoPetOpen;s
 
cCsdS(N((R((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytDoLVUPLogic_Pet[scCstjd|ƒS(NtPetInfo(t IpyGameDataPYtGetIpyGameData(tpetNPCID((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt GetPetIpydata_scCsªtjƒ}|j|ƒ}|s6tjd|ƒdSt|ƒ}|s]tjd|ƒdStjtjƒ}|sydS|j    t
j |ƒ|j    t
j t
j ƒ|dkrº|jƒn|}|j    t
jtd|dƒƒ|j    t
j|jƒƒ|jƒ}|jƒ}    x’t|ƒD]„\}
} |    |
} || krFqntjƒj| ƒ} | sgqn| jƒtjkrt|| ƒqn|jt
j| ƒqW|S(Ns0FindNPCDataByID can not find npcData petNPCID=%ss/tagPetInfo.txt can not find petData petNPCID=%siÿÿÿÿii(Rt GetGameDatatFindNPCDataByIDtErrLogRt
ItemCommontCreateSingleItemR    tDef_ItemID_PetDatat SetUserAttrt ShareDefinetDef_IudetPet_NPCIDtDef_IudetPet_StatetDef_PetState_Nullt GetInitRanktDef_IudetPet_ClassLVtmaxtDef_IudetPet_QualityLVt
GetQualityt
GetSkillIDtGetSkillUnLockt    enumeratetGetSkillBySkillIDt GetFuncTypetDef_SkillFuncType_PetOwnerSkillt__GiveOwnerSkillt AddUserAttrtDef_IudetPet_Skill(RRtclasslvtgameDatat
petNpcDatat
petIpyDatat
newPetItemt    initClasst petSkillListtpetSkillUnLockListtitskillidtlimitPetClassLVt curSkilData((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytGetNewPetDataItembs>     
  cCs÷tjd|ƒtjƒj|dƒ}|dkrJtjd|ƒdStj||ƒs`dStj||ƒs‡tjd|ƒdS|j    ƒ}|j
|ƒr·tjd|ƒdS|j |ƒt j ƒj||ƒtj|ƒj|dƒdS(Ns¸øÁé³èÖ÷È˼¼ÄÜ: skillResID=%sis    not find skill(%s)s5    learn skill condition isn't enough! skillResID=%ss    have learned skill(%s)i(RRRtFindSkillByTypetNonet SkillCommont CheckSkillJobt
SkillShelltCheckLearnSkillConditiontGetSkillManagertFindSkillBySkillTypeIDtLVUpSkillBySkillTypeIDtPassiveBuffEffMngtGetPassiveEffManagertRegistPassiveEffRtRefreshSkillFightPowerEx(Rt
skillResIDt    skillDatat skillManager((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyR+‹s$   cCs#|s
dSt|ƒ}t||ƒS(N(tGetPetObjItemIndextGetPetDataItemByIndex(t curPetOwnertrolePett packItemIndex((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytGetPetDataItem¡s cCsX|jƒjtjƒ}|j|ƒ}tj|ƒsTtjd||j    ƒƒdS|S(Ns$PetDataItem is none! PetItemIndex=%s(
tGetItemManagertGetPackRtrptPettGetAtRtCheckItemCanUseRRR(Rt petItemIndext petDataPackt petDataItem((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyRL¨s cCsv|jƒjtjƒ}xWt|jƒƒD]C}|j|ƒ}|jƒrRq+n||jtj    ƒkr+|Sq+WdS(N(
RQRRRRStrangetGetCountRTtIsEmptyt GetUserAttrR(RRRWt petDataIndextpetItem((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytGetPetDataItemByNPCID³s cCs |jƒjS(N(t
GetRolePett Friendliness(RN((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyRK¾scCs ||_dS(N(Ra(t    petStructRV((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytSetPetObjItemIndex¿scCsv|jƒjtjƒ}xWt|jƒƒD]C}|j|ƒ}|jƒrRq+n||jtj    ƒkr+|Sq+WdS(Niÿÿÿÿ(
RQRRRRSRYRZRTR[R\R(RRRWR]R^((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytGetPetDataItemIndexByNPCIDÂs cCsŠtjƒj|ƒ}tjƒ}|jƒ}|jƒ}||jtj    ƒtj
tj    krcdS|j tj    |ƒt |||ƒdS(N( RtGetPlayerManagertGetPlayerByIndext IPY_GameWorldtIPY_CPetStateChangetGetPetIDtGetStatet GetTickByTypeR    tTYPE_Player_Tick_ChangePetStatetTYPE_Player_Tick_Timet SetTickByTypetDoChangePetState(tindexttickRtpackRVtstate((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytPetStateChangeàs   c Csq|dkrdS|tjkr#dSt||ƒ}|s<dS|jtjƒ}|jtjƒ}t|ƒ}|svdS|jƒ}||dkr§tj    d|ƒdS|jtj
ƒ}    tj    d||    |fƒ|    tj kròt j |ƒn|tjkrn|tj kr#t||ƒn|r9t|tƒntjƒsm|||g}
tj|tj|
ƒndS(Niis&    ÁéÊÞÇл»Íâ¹Û,½×¼¶²»×ã%s,²»¿ÉÇл»£¡s4³èÎï״̬±ä¸ü!petItemIndex=%s,curState=%s,tagState=%s(RtDef_PetStateListRLR\R!RRtGetUseNeedRankRRRtDef_PetState_Fightt
PetControltReCallFightPetRt__DoPetGoOutToFighttRefreshPetItemAddAttrR t IsCrossServertCrossPlayerDatatSendDataToCrossServertCrossData_PetState( RRVttagStatet    isRefreshR^t
curClasslvRtipyDatat needClasslvtcurStatetdataList((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyRoòs>       
 c    Csð|\}}}t||ƒ}|sqt||ƒ}|s=dStj|ƒjtj|ƒs_dSt||ƒ}n|s{dS|jtjƒ}||krœn|jtj    ƒ}|tj
krÍt j |ƒn|tj
krìt ||ƒndS(N(R_R:t ItemControlertPlayerItemControlert    PutInItemRRSR\R!RRwRxRyRz(    RR†RR‚R€R^R2tcurItemClasslvR…((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytCrossServer_DoChangePetState3s( c Cs#|jtjƒ}tjƒj|ƒ}|sBtjd|ƒdS|jƒ}|j|ƒ}|dkr~tj
d|ƒdS|j ƒ}|j }|j ƒ|_t|j ƒ|_tj|d|ƒ|_d|_|jƒ}t||ƒ|j|ƒt|ƒ\}    }
tj||    ƒtj|ƒ} | jdtƒtj|t j!|ƒtƒtj"||ƒsŒtj#d|ƒ|j$|ƒdStj%|ƒt&j'|j(ƒ|j)ƒt*j+ƒ} tj,|| j(ƒ| j)ƒƒ|j-tj.tj/ƒt0j1|t*j2|dƒ|j3|j4ƒƒt5S(Ns.PetStateChange FindNPCDataByID, pet npcID = %ss-PetStateChange PetList_Add, Ìí¼Ó³èÎï = %sʧ°Üiit canSyncClients"²»¿É³öÕ½£¡PetList_SetFree petID=%s(6R\RRRRRtLogt    GetPetMgrt PetList_AddR<RR`tPetIDt    GetIsBindtBindTypetstrtNamet PlayerHorsetGetHorsePetSkinIndext DailyTrainCnttPostGetItemPlaceIndexRct
SetRolePettGetPetLearnSkillRxtDoLogic_PlayerPetLearnSkillListt    NPCCommont
NPCControltRefreshNPCStatetFalsetSetPetHPtGameObjtGetMaxHPtCheckPetCanFightRtPetList_SetFreeRytGameMaptGetEmptyPlaceInAreatGetPosXtGetPosYR    tDef_SummonAppearDistt    SummonPetRRRwRRtDef_PDict_FightPetIndext SetSightLevelt GetSightLevelR ( RR^tnpcIDR0tpetMgrRNRbtpetIDRVtlearnSkillListtpassiveSkillListt
petControlt    resultPos((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyRzQsF                    $cCs7|jtjƒ}|sdSt||dtjƒdS(Ni(tNomalDictGetPropertyR    R¬RoRRw(Rt fightPetIndex((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt AutoSummonPet™s
c 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(RRSRQRRRYRZRTR[tGetUserAttrCountR-tGetUserAttrByIndexRRR(R=t isPassiveAttrtappendtGetSkillTypeIDtvaluesR"( RtlearnSkillDictR³t petPackIndextpetPackR6R^tskillIDR9t skillTypeIDtatlearnSkillIDList((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyR›¢s,        %cCs>tjƒj|ƒ}|j}|j}t|||tƒdS(N(RReRftPetNPCIDt    IsUseGoldt DoActivatePetR (Rpt
clientDataRqRRt    isUseGold((shD:\SG_ServerCode\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ƒ|
jƒp°d}tjd||j ƒ|gƒ|j!ƒj"ƒ}|s&t#||ƒ}t j d||fƒt$||tj%ƒn+|rQt&|ƒ\}}t'j(||ƒnt)|t    ƒt*j+|tj,|tƒt    S(Ns1ÒѾ­ÓµÓиóèÎ i=%s,petItemNPCID=%s,petNPCID=%stPet_liubo_76326s)DoActivatePet() item(%s[%s]) isn't enoughtGetPetisEûÓгèÎï³öÕ½£¬»ñµÃгèÎĬÈϳöÕ½¸Ã³èÎpetNPCID=%s,petItemIndex=%s(-R RRSRQRRRYRZRTR[R R\RRRRt
NotifyCodeRtGetUnLockNeedItemIDtGetUnLockNeedItemCntRgtrptItemRtGetItem_FromPack_ByIDR:R‡RˆR‰t
ReduceItemR    t ItemDel_Pett GetUnlockSyst WorldNotifytGetNameRŽt GetFightPetRdRoRwR›RxRœR{tPlayerWeekPartytAddWeekPartyActionCntt Def_WPAct_Pet(RRRÊt    isUseItemthasSpaceRÀRÁR6tpackItemt petItemNPCIDRƒt
needItemIDt needItemCnttitemPackt    hasEnoughtitemListR2tsysMarkRNRVR²R³((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyRÈÍs\          c    Cstjƒ}|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ƒtSq³W|dkrtd}nt||    ƒ}t|||ƒ}|sŸdSt    j
}
tj|ƒj|
|ƒsÇdS|sÑtSt||ƒ}t ||t    j!ƒt"|tƒtS(Nis2¼¤»î³èÎﳬ¹ý³èÎï±íÊý¾ÝÊý: index=%s,petInfoCount=%sis1ÒѾ­ÓµÓиóèÎ i=%s,petItemNPCID=%s,petNPCID=%s(#RtIPY_DatatGetPetInfoCountRRtGetPetInfoByIndextGetIDR$t
GetMaxRankRRSRQRRRYRZRTR[R\RRR!R"tminR#RR R<R:R‡RˆR‰RdRoRwR{(RRpR.trefresht
ipyDataMgrt petInfoCountR1Rtqualityt
maxClassLVRÀRÁR6RÞRßR2RV((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt DoPetActivate
sJ           ,          cCs…g}tj}|jƒj|ƒ}xZt|jƒƒD]F}|j|ƒ}|jƒr^q7n|jtj    ƒ}|j
|ƒq7W|S(N( RRSRQRRRYRZRTR[R\RR¼(Rt    petIDListRÀRÁR6RÞRß((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytGetActivePetID8s     c4    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|%ƒt|    ƒ} | j0ƒ})| j1ƒ}*| j2ƒ}+g},xt3|)ƒD]ú\}-}.|*|-}/|%|/krÀq˜n|%d|/krÖq˜ntjƒj4|.ƒ}0|0s÷q˜n|0j5ƒt-j6krt7||.ƒq˜n|j8tj9|.ƒt:j;|0ƒsQ|,j<|.ƒn|-t=|+ƒkrm|+|-nd }1t>j?d|1|!|    |/|.gƒq˜W|, rÉ|%d| krÉt>j?dd |!|    gƒn|j@ƒjAƒ}2|,rú|2rútBjC|2|,ƒntD|t,ƒni|d 6|    d6}3|3jEtF|jGƒƒƒtHjI|d|%|3ƒtJjK|t-jL|ƒtMjN|tMjO| |ƒdS(Ns ³èÎ﹦ÄÜ먦Æôiscan not found pet npcID = %sis³èÎïÉý½× ÒÑÂú¼¶¡£¡£¡£classLV=%st PetClassCostit    PetUpItemis6PetClassUp Éý½×µÀ¾ß²»×ã! petNPCID=%s,costItemIDList=%stPetUpLvt
PetUpLvMaxRVRt
PetClassUp(PRReRft GameFuncCommt GetFuncCanUseRtGameFuncID_PetRRt PetItemIndext
UseItemCntRLR\RRRRR!RRêRRt GetUpNeedExptDef_IudetPet_ExpRQRRRgRÑtGetFuncEvalCfgtitemstintRtGetItem_FromPack_ByID_ExExtextendRTRURZtGetItemByTypeIDR×tGetEffectByIndextGetEffectValueRR"RÓR R    RÔRR%R&tGetSkillUnLockSysR'R(R)R*R+R,R-R=R»R¼tlenRRÖRŽRØRxRœR{tupdatetevalt GetUserDatatDataRecordPacktDR_ClassUpSystemt PlayerActTasktAddActTaskValuetActTaskType_PetUpItemtPlayerActLunhuidiantAddLunhuidianValuetAwardType_UseItem(4RpRÉRqRtplayerIDRüt costItemCountt    isAutoBuyRXRR0tclassLVR1RðRƒtneedExptcurPetClassExpt curItemPackt itemIndexListtcostItemIDListtspecCostItemInfot    strItemIDt petNPCIDListtnowCnttitemIDRãt    indexListtfindItemIsBindtlackCntt    itemIndextcurItemtitemCntt autoBuyItemIDt
playerNametcurEfftaddExptupdExpt
updClassLVtlvt    upNeedExptdelCntR4R5t sysMarkListR²R6R7R8R9RåtfightPett extraInfoDict((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyRøKsø               %   
 
 
"         
  "# 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( RRSRQRRRYRZRTR[R\RR!R(    Rt
totalPetLVRÀRÁR6R^RßRR1((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt GetTotalPetLVús      cCsšd}tj}|jƒj|ƒ}xot|jƒƒD][}|j|ƒ}|jƒr^q7n|jtj    ƒ}t
|ƒ}|sˆq7n|d7}q7W|S(Nii( RRSRQRRRYRZRTR[R\RR(Rt totalPetCountRÀRÁR6R^RßR1((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytGetTotalPetCount
s      cCsmt||ƒ}|sdS|jtjƒ}|jtjƒ}t|ƒ}|sSdS|jƒ}|d|kS(Ni(R_R\RRR!RRê(RRR^RR1Rð((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt
IsPetMaxLVs  cCszt|ƒ|r5tj|ƒjdtjdtƒntj|ƒjdtƒ|jƒjƒ}|rvtj    |ƒndS(Nt billboardFunctisForce(
tCalcPetItemAddPlayerAttrRtRefreshPlayerAttrStatetPlayerBillboardtUpdatePyPetBillboardR RŽRØRxtRefurbishPetAttr(RtisUpdBillboardR3((shD:\SG_ServerCode\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›RRR(RtGetEffectCountt    GetEffectt GetEffectIDR    tDef_SkillEffs_PetR?tCalcBuffEffAttr(    RRNtallAttrListPetR²R³RÂtcurSkillt effectIndext    curEffect((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytCalcSkill_PetBattleEffect4s cCsktj|ƒ}x'|D]\}}tj|||ƒqWtj||tjƒtj    ||tj
ƒdS(N( RtGetNPCBuffRefreshListR?tCalcCurBuffer_EffecttCalcNoLineEffecttChangeNPCAttrInNoLineEffectListR    tCalcAttr_BattleNolinetCalcLineEffecttChangeNPCAttrInLineEffectListtCalcAttr_Battle(RNRGtbuffRefreshListt    buffStatet    canPileup((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytCalcBuffer_PetBattleEffectHs cCsdS(N((R((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyR<YscCsi}dd|fS(Ni((RtqualityAttrInfo((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytGetPetAtkValue×scCstj|tjƒsdSxWtdtƒdƒD]?}|jtj|ƒdkr0t    j
|tj|dƒq0q0Wt |ƒdS(Nii( RùRúRRûRRR¶R    R
RRR (RR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytOnPlayerPetLogin÷s!
cCsttjddƒƒS(NRõi(R    RR(((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyRsc    Cs!tjƒ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ƒ|dkrÓtj|tj|ƒnJ|d    krøtj|tj|ƒn%|d
krtj|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(RReRft    TrainTypeRýR¶R    R
tDef_PDict_PetTrainItemCountRRRRtGetNeedRealmLVRtGetTrainRealmLVRealtGetEatCntTotalRRtGetPackItemBindStateIndexInfotDelCostItemByBindRÔRR R{R RRtActTaskType_PetTrainItem2tActTaskType_PetTrainItem3tActTaskType_PetTrainItem1(RpRÉRqRR RttrainLVtcurEatItemCountt trainIpyDatat needRealmLVt
curRealmLVtneedEatCountTotalRt
costItemIDtcostItemIndexListtbindCntt    unBindCntR%R1R.tupdEatItemCount((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt
OnPetTrainsr                      "
 
 
 
    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(Nit    PetStarUps2Áé³è²»´æÔÚ¸ÃÐǼ¶£¬ÎÞ·¨ÉýÐÇ. petNPCID=%s,curStar=%ssNÁé³èÉýÐÇËùÐèÎïÆ·²»×㣡 petNPCID=%s,nextStar=%s,needItemList=%s,lackItemDict=%ss,Áé³èÉýÐÇ. petNPCID=%s,curStar=%s,nextStar=%s(RReRfRRüRLR\RRtDef_IudetPet_StarRtGetIpyGameDataNotLogRtGetStarUpNeedItemListRQRRRgRÑRtGetCostItemIndexListt DelCostItemRR{R (RpRÉRqRRRüRXRtcurStartnextStart nextIpyDatat needItemListRât lackItemDictt delInfoDict((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt OnPetStarUpds6     
      cCs¥tjƒ}g|_g|_x^tdtƒdƒD]F}|jj|jtj    |ƒƒ|jj|jtj
|ƒƒq5Wt |jƒ|_ t j||ƒdS(Ni(tChPyNetSendPackttagMCPetTrainInfot TrainLVListtTrainItemCountListRRR¼R¶R    R
R]R    t
TrainTypest NetPackCommont SendFakePack(Rt
clientPackR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyR ƒs          $(DR    RRRgR R>R?R‡RRùRR=RxRRR¦RÙRNRDR}RQRR„RRR•R¢trandomtmathRRRRR:R+RPRLR_RKRcRdRtR RoR‹RzR¸R›RËR RÈR<RñRóRøR6R8R9R{RKRWR<RYRZRRqR~R (((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt<module>s€                                               )                                   A        H            $    =.        ¯                             ~                   U