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
4Ÿ}hc@sæddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z d„Z!d„Z"d„Z#d„Z$dd„Z%d„Z&d„Z'd    „Z(d
„Z)d „Z*d „Z+d „Z,d„Z-e.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4e5e5d„Z6de.d„Z8d„Z9d„Z:d„Z;d„Z<d„Z=d„Z>d„Z?d„Z@d„ZAd „ZBd!„ZCd"„ZDd#„ZEd$„ZFd%„ZGdS(&iÿÿÿÿNcCsdS(N((t    curPlayer((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytDoLogic_PetInfo_OnDay8scCs_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 GetPetIpydatacscCsª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.pytGetNewPetDataItemfs>     
  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_DoChangePetState7s( 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.pyRzUsF                    $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.j/|tj0|tƒt    S(Ns1ÒѾ­ÓµÓиóèÎ i=%s,petItemNPCID=%s,petNPCID=%stPet_liubo_76326s)DoActivatePet() item(%s[%s]) isn't enoughtGetPetisEûÓгèÎï³öÕ½£¬»ñµÃгèÎĬÈϳöÕ½¸Ã³èÎpetNPCID=%s,petItemIndex=%s(1R RRSRQRRRYRZRTR[R R\RRRRt
NotifyCodeRtGetUnLockNeedItemIDtGetUnLockNeedItemCntRgtrptItemRtGetItem_FromPack_ByIDR:R‡RˆR‰t
ReduceItemR    t ItemDel_Pett GetUnlockSyst WorldNotifytGetNameRŽt GetFightPetRdRoRwR›RxRœR{tOpenServerCampaigntUpdOpenServerCampaignRecordDatatDef_Campaign_Type_PetLVt GetTotalPetLVtPlayerWeekPartytAddWeekPartyActionCntt 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 DoPetActivatesJ           ,          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.pytGetActivePetID>s     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|$ƒ|%| kr6|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ƒt@jA||.ƒq˜W|, rÙ|%d| krÙt>j?dd |!|    gƒn|jBƒjCƒ}2|,r
|2r
tDjE|2|,ƒntF|t,ƒtGjH|tjItJ|ƒƒntKjL|tjMd|    |%dgƒi|d 6|    d6}3|3jNtO|jPƒƒƒtQjR|d|%|3ƒtSjT|i|| 6ƒtUjV|t-jW|ƒtXjY|tXjZ| |ƒdS(Ns ³èÎ﹦ÄÜ먦Æôiscan not found pet npcID = %sis³èÎïÉý½× ÒÑÂú¼¶¡£¡£¡£classLV=%st PetClassCostit    PetUpItemis6PetClassUp Éý½×µÀ¾ß²»×ã! petNPCID=%s,costItemIDList=%stPetUpLvt
PetUpLvMaxRVRt
PetClassUp([RReRft 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ÖtPlayerActivitytAddActivityByLVOnLearnSkillRŽRØRxRœR{RÙRÚRÛRÜt PlayerSuccesstDoAddSuccessProgresstSuccType_PetClassLVtupdatetevalt GetUserDatatDataRecordPacktDR_ClassUpSystemtPlayerActHorsePetTraintOnHorsePetTrainCostt PlayerActTasktAddActTaskValuetActTaskType_PetUpItemtPlayerActLunhuidiantAddLunhuidianValuetAwardType_UseItem(4RpRÉRqRtplayerIDRt 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üQs               %   
 
 
"         
  "  #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ãR#R1((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyRÜ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.pytGetTotalPetCounts      cCsmt||ƒ}|sdS|jtjƒ}|jtjƒ}t|ƒ}|sSdS|jƒ}|d|kS(Ni(R_R\RRR!RRî(RRR^R#R1Rô((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt
IsPetMaxLV&s  cCszt|ƒ|r5tj|ƒjdtjdtƒntj|ƒjdtƒ|jƒjƒ}|rvtj    |ƒndS(Nt billboardFunctisForce(
tCalcPetItemAddPlayerAttrRtRefreshPlayerAttrStatetPlayerBillboardtUpdatePyPetBillboardR RŽRØRxtRefurbishPetAttr(RtisUpdBillboardR>((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyR{3s
%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_PetBattleEffectAs cCsktj|ƒ}x'|D]\}}tj|||ƒqWtj||tjƒtj    ||tj
ƒdS(N( RtGetNPCBuffRefreshListR?tCalcCurBuffer_EffecttCalcNoLineEffecttChangeNPCAttrInNoLineEffectListR    tCalcAttr_BattleNolinetCalcLineEffecttChangeNPCAttrInLineEffectListtCalcAttr_Battle(RNRQtbuffRefreshListt    buffStatet    canPileup((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pytCalcBuffer_PetBattleEffectUs cCsdS(N((R((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyRFfscCsi}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.pytOnPlayerPetLogins!
cCsttjddƒƒS(NRùi(R RR(((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyRsc    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(!RReRft    TrainTypeRR¶R    R
tDef_PDict_PetTrainItemCountRRRRtGetNeedRealmLVRtGetTrainRealmLVRealtGetEatCntTotalRRtGetPackItemBindStateIndexInfotDelCostItemByBindRÔRR R{R RRRRtActTaskType_PetTrainItem2tActTaskType_PetTrainItem3tActTaskType_PetTrainItem1(RpRÉRqRR R!ttrainLVtcurEatItemCountt trainIpyDatat needRealmLVt
curRealmLVtneedEatCountTotalR(t
costItemIDtcostItemIndexListtbindCntt    unBindCntR0R<R9tupdEatItemCount((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt
OnPetTrainst                      "
 
 
 
    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(RReRfRRRLR\RRtDef_IudetPet_StarRtGetIpyGameDataNotLogRtGetStarUpNeedItemListRQRRRgRÑRtGetCostItemIndexListt DelCostItemRR{R (RpRÉRqRR RRXRtcurStartnextStart nextIpyDatat needItemListRæt lackItemDictt delInfoDict((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt OnPetStarUprs6     
      cCs¥tjƒ}g|_g|_x^tdtƒdƒD]F}|jj|jtj    |ƒƒ|jj|jtj
|ƒƒq5Wt |jƒ|_ t j||ƒdS(Ni(tChPyNetSendPackttagMCPetTrainInfot TrainLVListtTrainItemCountListRRR¼R¶R    R
RgR t
TrainTypest NetPackCommont SendFakePack(Rt
clientPackR ((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyR ‘s          $(HR    RRRgRRHR?R‡RRRýRR=RxRRR¦RÙRÝRXRDR}R[RR‰RŽRRRR•R¢trandomtmathRRRRR:R+RPRLR_RKRcRdRtR RoR‹RzR¸R›RËR RÈR<RõR÷RüRÜRBRCR{RURaRFRcRdRR{RˆR (((shD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerPet.pyt<module>sˆ                                                   )                                   A        H            $    ?.        ¶                             ~                   V