hxp
3 天以前 193cdb092210cde8e9ed245923d530ecc1dc8ab7
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
™Ùhc@s ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZdZd„Zd„Zed„Zeed„Zd„Zd„Zd    „Zd
„Zd „Zd „Z ed „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„Z0dd„Z2dd„Z3dd„Z4dS( iÿÿÿÿNicCstjƒj|ƒ}tj|tjƒs.tStj    tj
}||j tj
ƒ|kr^dS|j tj
|ƒt jƒ}|jƒ}tj|ƒrÄ|rÀ|g}tj|tj|ƒndStj|tjt jƒsãdS|dkrÿt|tƒn|dkrt|tƒndS(Nii(t    GameWorldtGetPlayerManagertGetPlayerByIndext GameFuncCommt GetFuncCanUset ShareDefinetGameFuncID_HorsetFalsetChConfigtTYPE_Player_Tick_Timet TYPE_Player_Tick_HorseChangStatet GetTickByTypet SetTickByTypet IPY_GameWorldtIPY_CRideHorsetGetRidet PlayerControlt GetCrossMapIDtCrossPlayerDatatSendDataToCrossServertCrossData_RideHorsetOperControlManagertIsObjCanDoActiontDef_Obj_ActState_ClientActtoalRidetPlayerRideHorseDowntTruetPlayerRideHorseUp(tindexttickt    curPlayertcdTimetpacktcurPlayerRideTypetdataList((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyt OnRideHorse4s.             cCs*|d}|dkr&t|tƒndS(Nii(RR(RR"R!((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pytCrossServer_RideHorseZs
 cCsP|jƒtjkrdS|jtjƒ|jƒtj|ƒ}|jƒdS(N(tGetPlayerVehicleR tpvHorsetSetPlayerVehicletpvNulltSync_GetoffHorseRtRefreshPlayerAttrByBuff(Rt refreshStatet playerControl((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyRcs
 
cCsß|jƒsdStjƒjƒs6tj|dƒdS|jƒtjkrOdS|j    ƒj
tj ƒ}|j t ƒ}|jƒr†dS|jtjƒ|jtjƒ|r¹|jƒn|rÛtj|ƒ}|jƒntS(NtRideLimit_lhs_0(t    GetInitOKRtGetMapt GetMapCanRideRt
NotifyCodeR%R R(tGetItemManagertGetPacktrptEquiptGetAttDef_HorseEquipIndextIsEmptyR'R&tSetPlayerRidehorseStatet    prsNormaltSync_RideHorseR*R(RR+tisNotifyt playerEquipt itemRideHorseR,((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyRos&    cCs£tjƒj|ƒ}|jƒ}|j}tj|tjƒsCdSt    j
d|ƒ}|s_dSd}|j ƒ}|rÅt t j ƒƒ}    |jtj|ƒ}
|    |
kr¸|    |}qò|
|}n-tj|tj|ƒròtjd|ƒdS|jƒ} |jƒ} |jƒjtjƒ} tj| | | ƒ\}}|s^tjd| | fƒdStj|| || ttjƒ|rÆtj |tj||ƒtjd||tj!|ƒf|ƒntj"|tj|dƒ\}}|jƒjtj#ƒ}|j$t%ƒ}|j&ƒr0t'|d||ƒnt(|ƒ|rPt)||ƒntj*d||||f|ƒt+|ƒtj,dd    |j-ƒ|j.ƒgƒdS(
Nt HorseSkinPlusis¸Ã×øÆïÒѻû¯! activateID=%ss.×øÆï»Ã»¯µÀ¾ß²»×ã! needItemID=%s,needItemCnt=%ss0×øÆï»Ã»¯Ê±Ð§ activateID=%s,updSkinEndTime=%s(%s)iisR×øÆï¼¤»î³É¹¦£¡activateID=%s,activateState=%s,updActivateState=%s,updSkinEndTime=%stGetMount(/RRRt GetPlayerIDtHorseIDRRRRt IpyGameDataPYtGetIpyGameDatatGetSkinValidTimetintttimetNomalDictGetPropertyRtDef_PDict_HorserSkinEndTimetGetDictValueByBittDef_PDict_HorserSkinPlusStatetDebugLogtGetUnlockItemIDtGetUnlockItemCntR2R3R trptItemt
ItemCommontGetItem_FromPack_ByIDt
ReduceItemRt ItemDel_HorseRtNomalDictSetPropertytChangeTimeNumToStrtSetDictValueByBitR4R5R6R7t DoChangeHorsetSync_HorseClassDatatSyncHorseSkinTimeInfotLogtRefreshHorseAttrt WorldNotifytGetNametGetHorseSkinPlusID(Rt curPackDataRRtplayerIDt
activateIDtipyDatatupdSkinEndTimet    validTimetcurTimet skinEndTimet
needItemIDt needItemCnttitemPackt    hasEnoughtitemListt activateStatetupdActivateStateR<R=((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pytActivateHorseSkinItemsV           )! 
    
%cCs¸tjƒj|ƒ}tj|tjƒs.dS||jƒtj    krKdS|j
|ƒ|j }|j }t ||||ƒsƒdStjƒs´||g}tj|tj|ƒndS(N(RRRRRRRtGetLastChangeEquipTickRtDef_MinChangeEquipTimetSetLastChangeEquipTickt
ChooseTypetLVIDRVt IsCrossServerRRtCrossData_HorseChange(RtpackDataRRt
chooseTypetlvIDR"((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pytOnPlayerChangeHorseás           cCs5|\}}tjƒjƒ}t||||ƒdS(N(Rt GetGameWorldtGetTickRV(RR"RvRwR((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pytCrossServer_ChangeHorseøs c Csy|dkrp|jtjƒ}||krEtjd||fƒdStjd|ƒ}|sadS|jƒ}nN|dkrºtjd|ƒ}|s˜dSt||ƒs«dS|j    ƒ}ndS|sßtjd||fƒdSt
j ||t j ƒr tjd|ƒdStj||ƒ}|s(dSt
j ||tjƒ}    |    sJdS|jƒt jk}
|
rut|tƒntS(    sW ×øÆïÑ¡Ôñ
    @param chooseType: 1-°´½×£¬2-°´»Ã»¯
    @param lvID:  ½×µÈ¼¶»ò»Ã»¯ID
    is5×øÆïµÈ¼¶²»×㣬ÎÞ·¨Ê¹ÓøÃ×øÆïƤ·ô!  horseLV=%s,lvID=%sNt    HorseLVUpiR>s)ÕÒ²»µ½Ñ¡ÔñµÄ×øÆïID! chooseType=%s,lvID=%ss.ÒѾ­Ñ¡ÔñÁ˸Ã×øÆï£¬ÎÞÐèÖØÐÂÑ¡Ôñ! horseItemID=%s(RGRtDef_PDict_HorserLVRRKRBRCtGetHorseSkinIDtCheckHorseSkinStateR]ROtFindItemInPackByItemIDR R4t ItemControlertPutItemInTempSwapRt rptTempSwapR%R&RRR( RRvRwRthorseLVt horseIpyDatat horseItemIDtskinPlusIpyDatatisOKtcurHorset isRideHorse((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyRVÿsB   c CsE|jƒ}|jƒr%|jtj|ƒ}|s8tSttjƒƒ}||krA|jƒ}t    j
d||t    j |ƒf|ƒt j |tj|dƒ|jƒ}g}|g}t jd|g||ƒt    j|tj|dƒ\}    }
t    j
d||    |
f|ƒt|ƒtSnt    j|tj|ƒsAtStS(Ns,×øÆï»Ã»¯ÒѹýÆÚ! skinID=%s,skinEndTime=%s(%s)itHorseSkinInvalidNotifysD×øÆï»Ã»¯¹ýÆÚ¸üÐÂ״̬! skinID=%s,activateState=%s,updActivateState=%s(tGetIDRDRGRRHRRERFR@RRYRTRRSRLt SendMailByKeyRURJRWRIR( RR‡tskinIDReRdR_t
skinItemIDt addItemListt    paramListRkRl((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyR9s*    &     !
c Cs”d}tjd|ƒ}|s"dStj|tj|ƒtj|tjdƒx8tdtƒdƒD] }tj|tj    |dƒqeWtj
ƒ}xht|j ƒƒD]T}|j |ƒ}|j ƒ}tj|tj|dƒtj|tj|dƒq¨W|jƒ}tj||tjƒsetj||ƒ}    |    s@dStj||tjƒ}
|
sedSntjd||fƒt|ƒt|ƒtS(NiR|is#×øÆï¹¦ÄÜ¿ªÆô! horseLV=%s,horseID=%s(RBRCRRSRR}tDef_PDict_HorserEatItemCounttxrangetGetHorseTrainTypestDef_PDict_HorserTrainLVtIPY_DatatGetHorseSkinPlusCounttGetHorseSkinPlusByIndexRŒRHRRURJR~ROR€R R4RR‚RRƒRKRWRZR( RR„Rat    trainTypet
ipyDataMgrRR‡RŽthorseIDRˆR‰((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyt DoHorseOpenUs4   
 
cCs6t|ƒtj|ƒjd|r+tjndƒdS(Nt billboardFunc(tCalcHorseAttrExRtRefreshPlayerAttrStatetPlayerBillboardtUpdateHorseBillboardtNone(Rt isUpdateBill((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyRZzs
(cCsdS(N((R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyRžscCsad}tjƒ}xHt|jƒƒD]4}|j|ƒ}t||ƒsOq%n|d7}q%W|S(Nii(RBR–R“R—R˜R(RthorseSkinActCountRšRR‡((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pytGetHorseSkinActCount%s c    Cs)tjƒj|ƒ}|j}|j}tj|tjƒsMtj    dƒdS|j
t j ƒ}|j
t j ƒ}|dkr’tj    d|ƒdStjd|ƒ}|s®dS|jƒ}    |    sÕtj    d|ƒdStjddƒ}
|
sõ| rùdStj||
|ƒ\} } } || | }|dkr\| r\tj    d|
|| | |fƒdS|}|dkrÖtji||
6ƒ}|dkr”dSi|
t j6}tj|tj|t j|ƒsÉdS||8}n|rþtj|| | | |t jƒn|}||}tj    d    |||||    fƒ||    krh|d7}||    8}tj    d
||fƒntj|t j |ƒtj|t j |ƒ|jƒ}||}||krâtj ||dƒt!j"|tj#|ƒnt$|ƒt%|ƒt&j'|t j(|ƒt)j*|t)j+|
|ƒdS( Ns ×øÆï먦Æô!is ×øÆïÌáÉý ¸Ã×øÆïδ¼¤»î horseLV=%sR|s×øÆïÒÑÂú¼¶£¡horseLV=%st HorseUpItemis\ÏûºÄµÀ¾ß²»×㣬ÎÞ·¨Éý¼¶×øÆï!costItemID=%s,costItemCount=%s,bindCnt=%s,unBindCnt=%s,lackCnt=%ss[×øÆïÅàÑø: horseLV=%s,curEatItemCount=%s,costItemCount=%s,updEatItemCount=%s,needEatCount=%ss*    Éý½×: updClassLV=%s,updEatItemCount=%s(,RRRt
UseItemCntt    IsAutoBuyRRRRRKRGRR}R’RBRCtGetNeedEatCountt
GetFuncCfgROtGetPackItemBindStateIndexInfotGetAutoBuyItemNeedGoldtDef_Cost_Reason_SonKeyRtPayMoneyR tTYPE_Price_Gold_MoneytDef_Cost_BuyStoreItemtDelCostItemByBindRRRStGetUpEatItemPerCounttDataRecordPacktDR_NewHorseByClassUpt PlayerSuccesstUptateSuccessProgresstSuccType_HorseAllLVRWRZt PlayerActTasktAddActTaskValuetActTaskType_HorseUpItemtPlayerActLunhuidiantAddLunhuidianValuetAwardType_UseItem(RR^RRt costItemCountt    isAutoBuyR„tcurEatItemCountR…t needEatCountt
costItemIDtcostItemIndexListtbindCntt    unBindCnttlackCnttdelCnttlackCosttinfoDictt
updClassLVtupdEatItemCounttupItemPerCounttupCnt((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pytOnHorseClassLVUP7st                 ! "
     
 
 
 
 
c    Cstjƒ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|d7}|| 8}tj    d
||fƒntj|tj||ƒtj|tj||ƒ||kr—nt|ƒt|ƒ|d krÐtj|tj|ƒnJ|d krõtj|tj|ƒn%|dkrtj|tj|ƒndS( NsE×øÆïÅàÑø: trainType=%s,trainLV=%s,costItemCount=%s,curEatItemCount=%sis     ×øÆïÅàÑøÎ´¼¤»î  trainType=%st
HorseTrainis:    ¾³½ç²»×㣬ÎÞ·¨ÅàÑø£¡  curRealmLV(%s) < needRealmLV(%s)s    ¸ÃÅàÑøÒÑÂú¼¶£¡s\    ÏûºÄµÀ¾ß²»×㣬ÎÞ·¨ÅàÑø!costItemID=%s,costItemCount=%s,bindCnt=%s,unBindCnt=%s,lackCnt=%ss+    updEatItemCount=%s,needEatCountTotal=%ss*    ½ø½×: updClassLV=%s,updEatItemCount=%sii(RRRt    TrainTypeR§RGRR•tDef_PDict_HorserTrainItemCountRKR”RBRCtGetNeedRealmLVRtGetTrainRealmLVRealtGetEatCntTotaltGetFuncEvalCfgROR«R±RRRSRWRZR¸R¹tActTaskType_HorseTrainItem2tActTaskType_HorseTrainItem3tActTaskType_HorseTrainItem1(RR^RRR™R¾ttrainLVRÀt trainIpyDatat needRealmLVt
curRealmLVtneedEatCountTotaltcostItemIDListRÂRÃRÄRÅRÆRÇRÊRË((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyt OnHorseTrainsr                      "
 
 
 
 
   c Cs[tjƒj|ƒ}|jƒ}|j}|jtj|ƒ}|d}tj    d||ƒ}|sƒtj
d||f|ƒdS|j ƒ}    |    s™dS|j ƒj tjƒ}
tj|    |
ƒ\} } | rótj
d|||    | f|ƒdStj||
| dƒtj|tj||ƒtj
d|||f|ƒt|ƒt||ƒdS(Nit HorseStarUps1×øÆï²»´æÔÚ¸ÃÐǼ¶£¬ÎÞ·¨ÉýÐÇ. horseID=%s,curStar=%ssM×øÆïÉýÐÇËùÐèÎïÆ·²»×㣡 horseID=%s,nextStar=%s,needItemList=%s,lackItemDict=%ss+×øÆïÉýÐÇ. horseID=%s,curStar=%s,nextStar=%s(RRRR@RARGRtDef_PDict_HorserStarRBRCRKtGetStarUpNeedItemListR2R3R RNROtGetCostItemIndexListt DelCostItemRRSRZtSyncHorseStarInfo( Rt
clientDataRRR_R›t    horseStartnextStart nextIpyDatat needItemListRht lackItemDictt delInfoDict((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyt OnHorseStarUpås0     
     
 cCsttjddƒƒS(NRÏi(tlenRBRÕ(((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyR”scCstj|tjƒsdSd}|j|ƒ}|r~tj|tjd|ƒtj||dƒt    j
d||j ƒƒnxWt dt ƒdƒD]?}|jtj|ƒdkr•tj|tj|dƒq•q•Wt|ƒt|ƒt|ƒt|ƒdS(NtHorserSkinPlusStateis;ÏßÉÏ°æ±¾×ªÒÆ×øÆï»Ã»¯×´Ì¬¼Ç¼×ÖµäÖµ! oldVerSkinStateValue=%si(RRRRRGRRSRRJRRYR@R“R”R•RWtSyncHorsePetSkinDataRXRå(RtoldVerSkinStateKeytoldVerSkinStateValueR™((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pytPlayerHorseLogins !
 
 
 
cCstjƒ}|jƒ|jtjƒ|_|jtjƒ|_|jtj    ƒ|_
g|_ g|_ x^t dtƒdƒD]F}|j j|jtj|ƒƒ|j j|jtj|ƒƒq~Wt|j ƒ|_t|ƒ|_t|jƒ|_tj||ƒdS(Ni(tChPyNetSendPackttagTrainHorseDatatClearRGRR}tLVR’t EatItemCountRJt SkinPlusStatet TrainLVListtTrainItemCountListR“R”tappendR•RÑRît
TrainTypestGetHorseSkinPlusStateListtSkinPlusStateListtSkinPlusStateCountt NetPackCommont SendFakePack(Rt    horseDataR™((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyRWs 
         $cCs™d}g}tjƒ}|jƒ}x2t|ƒD]$}t||j|ƒjƒƒ}q1Wx9t|ddƒD]#}|j|jt    j
|ƒƒqnW|S(Niii( RBR–R—R“tmaxR˜RŒRüRGRRJ(Rt    maxSkinIDtskinPlusStateListRštskinCntR((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyRþ/s  "!cCs|jtjƒS(N(RGRR}(R((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyt GetHorseSumLV:scCsH|jtjƒ}tjd|ƒ}|s.tS|jƒ}|sDtStS(NR|(RGRR}RBRCRR©R(RR„R…RÁ((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyt IsHorseLVFull>s cCsytjƒj|ƒ}|j}|j}|j}tjd|||fƒtjdi|d6|d6ƒsndS|j    t
j ||fdƒ}|d|d}}    tj d|||ƒ}
|
sÄdS|
j ƒ} | sçtjdƒdS|j    t
j||fdƒ} tjƒj|ƒ} | s%dS| jdƒ}|jƒ}|jdƒ}|t
jkse| r‰tjd    |||t
jfƒdS|jƒjtjƒ}tj||d
ƒ\}}|sÝtjd |d
fƒdStj|||d
tt
jƒ| |}|}|    }|| kršxytd ƒD]h}tj d|||d
ƒ}
|
sWPn|| krgPn|| 8}|d
7}|
j!ƒ}|
j ƒ} q+Wn|d|}t"j#|t
j ||f|ƒt"j#|t
j||f|ƒtjd || ||fƒ|    |kr't$||||ƒn||kr_|d
krLt%|ƒq_t&j'|t(ƒnt)|||ggƒdS(Ns0Æï³è¾õÐÑ: skintype=%s,horsePetID=%s,eatItemID=%st HorsePetSkintTypetIDiidsÆï³è¾õÐÑ ÒÑÂú¼¶isRÎïÆ·Ð§¹û5ûÓÐÅäÖÃÆï³è¾õÐѾ­ÑéЧ¹û! eatItemID=%s,curEffID=%s,addExp=%s,needEffID=%sis+OnHorsePetAwake() item(%s[%s]) isn't enoughi
s.skinData=%s,curExp=%s,updSkinData=%s,updExp=%s(*RRRR R t    EatItemIDRKRBtGetIpyGameDataByConditionRGRtDef_PDict_HorsePetSkinDataRCt
GetNeedExptDef_PDict_HorsePetSkinExpt GetGameDatatGetItemByTypeIDtGetEffectByIndext GetEffectIDtGetEffectValuetDef_Effect_HorsePetSkinExptErrLogR2R3R RNRORPRQRtItemDel_HorsePetAwakeR“tGetIpyGameDataNotLogt GetSkinIndexRRSt__DoHorsePetSkinChangeRZt    PlayerPettRefreshPetItemAddAttrRRð(RR^RRtskintypet
horsePetIDt    eatItemIDtskinDatat    curSkinLVt curSkinIndexRat    upNeedExptcurExptcurItemtcurEfftcurEffIDtaddExpRhRiRjtupdExpt    updSkinLVt updSkinIndext_t updSkinData((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pytOnHorsePetAwakeSsv                     
 
 
       c Cstjƒj|ƒ}|j}|j}|j}tjdi|d6|d6|d6ƒ}|sadS|jt    j
||fdƒ}|d|d}    }
||
kr¥dS|    |j ƒkr»dS|    d|} t j |t    j
||f| ƒt||||ƒt|||ggƒdS(NR
R R t    SkinIndexiid(RRRR R R1RBRRGRRt    GetSkinLVRRSRRð( RR^RRRR t    skinIndexRaR"R#R$R/((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pytOnHorsePetSkinSelect§s$            '  cCsÁtj|||ƒ|dkr®dS|jƒjtjƒ}|jtƒ}|jƒrZdSt    j
d|ƒ}|svdS|j ƒ}|j ƒ|kr˜dS|j tj|ƒn|dkr½ndS(NitHorsei(tChEquiptChangeEquipfacadeByHorsePetSkinR2R3R R4R5R6R7RBRCt    GetItemIDt GetItemTypeIDt SetUserAttrRtDef_IudetHorsePetSkinIndex(RtskinTypeR R3R<R=RaR†((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyR¾s"    cCs'|jtj||fdƒ}|dS(Niid(RGRR(RRR R"((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pytGetHorsePetSkinIndexÔsc Cs“|s‡g}tjƒ}xlt|jƒƒD]U}|j|ƒ}|jƒ|jƒg|kr+|j|jƒ|jƒgƒq+q+Wntj    ƒ}|j
ƒg|_ xÄ|D]¼\}}tj ƒ}||_ ||_|jtj||fdƒ}    |jtj||fdƒ}
|     r)|
r)q­n|
d|
d} } |    |_| |_| |_|j j|ƒq­Wt|j ƒ|_tj||ƒdS(Niid(RBR–R“tGetHorsePetSkinCounttGetHorsePetSkinByIndextGetTypeRŒRüRôttagMCHorsePetSkinDataRötInfoListttagMCHorsePetSkinInfoR R RGRRRtExptSkinLVR1RîtNumRR( RtskinListtipyMgrtiRaRuRR tskinInfoR&R"R#R$((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyRðÙs4 ) 
                         cCs&g}|dkrPtjƒ}||_|jtj|ƒ|_|j|ƒn‘tj    ƒ}x‚t
|j ƒƒD]n}|j |ƒ}|j ƒ}|jƒs¢qontjƒ}||_|jtj|ƒ|_|j|ƒqoWtjƒ}|jƒ||_t|jƒ|_tj||ƒdS(Ni(RôttagMCHorseSkinTimeInfoR RGRRHt InvalidTimeRüRBR–R“R—R˜RŒRDttagMCHorseSkinTimeInfoListRöt TimeInfoListRîtTimeCntRR(RRŽRGttimeInfoRšRR‡Ru((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyRXös,               
    c
Cs0|dkr|g}nQg}tjƒ}x<t|jƒƒD](}|j|ƒ}|j|jƒƒq=W|ssdSg}xe|D]]}|jtj    |ƒ}|s¨q€nt
j ƒ}|j ƒ||_ ||_|j|ƒq€W|sëdSt
jƒ}    |    j ƒ||    _t|    jƒ|    _tj||    ƒdS(Ni(RBR–tranget GetHorseCounttGetHorseByIndexRüt
GetHorseIDRGRRáRôttagMCHorseStarRöRAtStarttagMCHorseStarInfot HorseStarListRîtCountRR(
RR›t
syncIDListRšRRat horseStarListRçtstarInfot
clientPack((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyRås6     
         
    (5RôR RRRRROR6RR³RRR RRBRRµR»R¸RRFR6R#R$RRRRmRxR{RVRRœRZRžR¥RÎRßRíR”RóRWRþRR    R0R4RR=R¢RðRXRå(((sjD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerHorse.pyt<module>sd                     
    &         .    D            :        %     ¤        Y    U                                 T