hwj35
2025-06-23 aa0f971ae9a59f0fd98d57b6c1d1663a270be92c
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
*dc@sWddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z dZ d„Z d„Zd„Zd„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!dS(iÿÿÿÿNt    SyncFBNPCcCskd|}tj||gƒ|tjkr]tjddƒ}|r]tj||dƒq]nt|ƒdS(Ni
tCrossGrasslandCfgii(t    NPCCommontDoResetCollectNPCTimeByTypetPlayerFairyDomaintFDEventType_GrasslandXiant IpyGameDataPYt
GetFuncCfgtUpdateNPCAttackCounttResetGrasslandAwardRecord(t    curPlayert    eventTypet    fdeventIDtresetCollectTypetnpcID((s.\\GameLogic_CrossGrassland.pytDoResetCrossGrassland!s
 
cCs"tj|||ƒ}|tjkS(N(RtGetFairyDomainFBEventStatetFDEventState_Visiting(R
tmapIDtlineIDtcurState((s.\\GameLogic_CrossGrassland.pytOnNeedCheckCanEnterFBComm1scCs+tj|||ƒ}|tjtjgkS(N(RRtFDEventState_CanVisitR(R
RRttickR((s.\\GameLogic_CrossGrassland.pytOnEnterFBEvent5scCs}tj|||ƒ}|tjkrftj|||ƒ}|d}|sMtStj|||tjƒS|tjkrytStS(Ni(    RRRtFBCommontDelFBEnterTickettFalsetSetFairyDomainFBEventStateRtTrue(R
RRRt    delResulttisOK((s.\\GameLogic_CrossGrassland.pytOnRegEnterCrossFB;s
cCstjƒ}|S(N(tNPCCustomRefreshtGetCopyMapRandomRefreshNPCInfo(trefreshNPCInfo((s.\\GameLogic_CrossGrassland.pytOnGetCrossFuncLineDataCacheJs cCsƒtjƒ}|jƒ|jƒ}}||f}|tjkrtjj|ƒ}tjd|||fƒtj    ||ƒndS(NsY¸±±¾¿ªÆô¸ù¾Ý±£´æµÄÐéÄâÏß·±êÊÔµãË¢¹ÖÐÅϢˢ¹Ö: realMapID=%s,copyMapID=%s,refreshNPCInfo=%s(
t    GameWorldt GetGameWorldt GetRealMapIDt GetCopyMapIDt
PyGameDatatg_crossFuncLineDataCachetpoptDebugLogR!tOnFBOpenSetRandomRefreshNPCInfo(Rt    gameWorldt    realMapIDt    copyMapIDtkeyR#((s.\\GameLogic_CrossGrassland.pytOnOpenFBOs  cCs¤|jƒ}tjƒ}tjƒ}tj|ƒ}tjd|||f|ƒtjd|ƒ|t    j
kr t j ddƒ}|r t j||gƒq ndS(Ns/DoEnterFB zoneID=%s,funcLineID=%s,crossMapID=%sR
Ri(t GetPlayerIDRtGetCrossDynamicLineMapZoneIDt GetCrossDynamicLineMapFuncLineIDt PlayerControlt GetCrossMapIDR%tLogt
Sync_FBNPCtChConfigtDef_FBMapID_CrossGrasslandXianRRRtSyncNPCAttackCount(R
RtplayerIDtzoneIDt
funcLineIDt
crossMapIDtboxNPCID((s.\\GameLogic_CrossGrassland.pyt    DoEnterFB[s   cCs<tjƒ}|jtƒr8|jtdƒtjƒndS(Ni(R%t    GetGameFBtGetGameFBDictByKeytFBDict_SyncFBNPCt SetGameFBDictRR9(RtgameFB((s.\\GameLogic_CrossGrassland.pyt    OnProcessis
  cCs8tjƒ}|jƒjƒdkr4tj|ƒndS(Ni(R%R&tGetMapCopyPlayerManagertGetPlayerCounttGameWorldProcesstCloseFB(R
RR.((s.\\GameLogic_CrossGrassland.pytDoPlayerLeaveFBzs c    Cs$tj|||ƒ}tj|||tjƒ|tjkrÆtjddƒ}|j||fiƒ}x4|jƒD]&\}}t    j
|t j ||ƒqtW|t j krÐtj|||ƒqÐn
t|ƒt|||ƒ|t j kr tjddƒ}|r tj||gƒq ndS(NRii(RRRRRRtGetFuncEvalCfgtgettitemsR6tNomalDictSetPropertyR:tDef_PDict_GrasslandNPCCountR;RRtDoCheckUpdateGrasslandEndtSyncCustomSceneNPCCountRRR<(    R
RRRtrefreshMapNPCDictt npcCountDictRtnpcCountRA((s.\\GameLogic_CrossGrassland.pytOnEnterCustomScene„s 
cCsLtj|||ƒ}|tjkr(tS|jtj|ƒ}|sHtStS(N(RRRRtNomalDictGetPropertyR:RRR(R
RRRRtcurCount((s.\\GameLogic_CrossGrassland.pytOnCustomSceneCollectOKœscCsst|ƒ\}}|sdS|jtj|ƒ}td|dƒ}tj|tj||ƒt|||ƒdS(Nii(tGetGrasslandMapIDRYR:RRtmaxR6RQRT(R
RRRRZtupdCount((s.\\GameLogic_CrossGrassland.pytDecCustomSceneNPCCount¥scCs¯tjddƒ}|j||fiƒ}i}x.|jƒD] }|jtj|ƒ||<q=W|tjkr˜tjddƒ}|r˜d||<q˜nt    j
|||ƒdS(NRii( RRNROtkeysRYR:RRR;RRtSyncNPCCntInfo(R
RRRURVtnpcNowCountDictRRA((s.\\GameLogic_CrossGrassland.pyRT°sc Cs t|ƒd}|sdSxë|D]ã}t|tƒs<q!n|d \}}d}xxtdƒD]j}|jtj|ƒ}|s‹|}Pn|d}    |    |kr_||}
tj    |tj||
ƒPq_q_W|dkr!|d|} tj    |tj|| ƒq!q!WdS(Niiiid(
R\t
isinstancetlisttNonetxrangeRYR:tDef_PDict_GrasslandDropCountR6RQ( R
t addItemListRtitemInfotitemIDt    itemCounttnewIndextit itemCountInfot    recItemIDt updRecValuet newRecValue((s.\\GameLogic_CrossGrassland.pytRecordGrasslandAward¾s, 
 
 !cCsUxNtdƒD]@}|jtj|ƒ}|s3Pntj|tj|dƒq WdS(Nii(RfRYR:RgR6RQ(R
RmRn((s.\\GameLogic_CrossGrassland.pyR    Ús cCs‰tjtjg}tj|ƒ}tj|ƒ}||krW|}|jtjƒ}n(||kr{|}tj|ƒ}ndS||fS(Ni(ii(    R:tDef_FBMapID_CrossGrasslandLingR;R6R7tGetCustomMapIDRYt"Def_Player_Dict_ReqCrossFBFuncLinetGetCustomLineID(R
tgrasslandMapIDListR@t customMapIDRR((s.\\GameLogic_CrossGrassland.pyR\äs  cCsFt|ƒ\}}|sdS|tj|ƒkrjtjddƒ}|j||fiƒ}|jƒ}nCtjd|ƒ}|s†dSg}x|D]}||jƒ7}q“Wxr|D]j}tj    d|ƒ}    |    sÖdS|    j
ƒ}
t j ||ƒ} | |
kr´t jd|| |
fƒdSq´Wtjddƒ} |tjkrÊ| rÊtjd| ƒ} | sedS| jƒ}|s{dSt|ƒ}|jtj| ƒ}||krÊt jd| ||fƒdSntj|||tjƒtj|d    d    ƒt jd
||fƒg}xetd ƒD]W}|jtj|ƒ}|sFPnd    }|d |d }}|j|||gƒq Wg}tjd i|d6|d6ƒ}|rÈ|jƒ}tj ||ƒ}n|sãt!j"||ƒ}n|rt#j$||ƒ||7}nit!j%|ƒt!j&6}t!j'|||d|ƒt(|ƒdS(NRit MapRefreshNPCt
CollectNPCsB²ÝÔ°NPC²É¼¯´ÎÊýδÓÃÍê! npcID=%s,totalCollTime=%s < limitMaxTime=%sit TreasureNPCsH²ÝÔ°±¦Ïä¹Ö¹¥»÷´ÎÊýδÓÃÍê! boxNPCID=%s,attackCount=%s < maxAttackCount=%sis"ÉèÖòÝÔ°ÒÑÍê³É!mapID=%s, lineID=%siidt FairyDomaintMapIDtLineID()R\R6RtRRNROR`tGetIpyGameDataListNotLogt GetNPCIDListtGetIpyGameDatatGetMaxCollectCountRtGetTodayCollectCountR%R,RR:R;tGetIpyGameDataNotLogtGetAttackCountDropWeightInfoR]RYtDef_PDict_NPCAttackCountRRtFDEventState_Visitedt SetCustomMapRfRgtappendtGetIpyGameDataByConditiontGetIDtGetFairyAppointAwardRtGetFBLineRewardt ItemControlertGivePlayerItemOrMailtGetJsonItemListt Over_itemInfot NotifyFBOverR    (R
RRRURVt    npcIDListtcollNPCIpyDataListt collIpyDataRtcollectNPCIpyDatat limitMaxTimet totalCollTimeRAt boxNPCIpyDatatattackCountDropWeightInfotmaxAttackCountt attackCountt awardItemListRmRnt isAuctionItemRjRkt
extraAwardtipyDatat    fdEventIDtoverDict((s.\\GameLogic_CrossGrassland.pyRSòsx          
cCstjƒjtdƒdS(Ni(R%RCRFRE(tcurNPC((s.\\GameLogic_CrossGrassland.pyt DoFB_NPCDead<scCstjƒjtdƒdS(Ni(R%RCRFRE(R£((s.\\GameLogic_CrossGrassland.pytOnNPCRebornInFBAscCsOtj|||ƒ}|tjtjgkrKtjd|||fƒtStS(NsEçÎç¿ÎÞ·¨É¨µ´! ²»´æÔÚ¸Ãʼþ»òÎÞ·¨½øÈ룡 mapID=%s,lineID=%s,curState=%s(RRRRR%R,RR(R
RRtsweepCnttisFinishtdataExR((s.\\GameLogic_CrossGrassland.pytOnPlayerFBSweepAskHs
cCsg}tjddƒ}|j||fiƒ}tjd|||fƒ|rG|jƒ}    t|jƒƒd}
xÒ|    rC|
dkrC|
d8}
tj    |    ƒ} tj
d| ƒ} | sË|    j | ƒqunt j || | dtƒ} | dkr|    j | ƒtjd| |    fƒqun|j| ƒtjd    | | fƒquWntj||ƒ}|r…tj||ƒ|tj|ƒ7}ntjd
|ƒtjd i|d 6|d 6ƒ}|rá|jƒ}tj||tjƒnd}i|tj6dtj6}tj|||||ƒdS(NRis,²Ý԰ɨµ´: mapID=%s,lineID=%s,npcCountDict=%siiRztisSweeps0    É¨µ´npcID=%s,ûÓн±ÀøÁË£¬ÒƳý£¡ npcIDList=%ss    npcID=%s,awardItemInfo=%ss    É¨µ´jsonItemList=%sR|R}R~(RRNROR%R,R`tsumtvaluestrandomtchoiceRtremoveRtDoGiveCollectNPCAwardRRetextendRRRŽRRRŠR‹RtSetFairyDomainEventStateR‡R‘t Over_isSweepR’(R
RRR¦R§R¨t jsonItemListRURVR“tdoCountRR–t awardItemInfoRŸR R tisPassR¢((s.\\GameLogic_CrossGrassland.pytOnPlayerFBSweepResultPsD 
      ("R%RKRR!RR)RR6R:RRŽR­RERRRR R$R2RBRHRMRXR[R_RTRrR    R\RSR¤R¥R©R¸(((s.\\GameLogic_CrossGrassland.pyt<module>sB                                                 
                             
        J