cjc
2026-01-08 83ecbbfeddfc13d6a32cc97483bf5b78377cf254
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
ÖYic@s|ddlZddlZddlZddlZddlZddlZddlZd„Zd„Zd„Z    d„Z
dS(iÿÿÿÿNc Csú|s:tj|dƒtj|dƒtj|dƒdS|d}|dkrat||ƒdStj|dƒ|}|tjtjgkrMt|ƒdkr«|dnd}t|ƒdkrÍ|dnd}tjd    ||ƒ}|s tj|d
||fƒdS|j    ƒ}|j
ƒ}|j ƒ}    tj|d ||fƒn–t|ƒdkri|dnd}
t j ||
ƒ} | s¥tj|d ||
fƒdS| jƒ}| j
ƒ}| j ƒ}    tj|d ||
fƒt||||    ƒdS(Ns"Êä³ö¸±±¾ÊôÐÔ: NPCAttr mapID lineIDs#Êä³öÖ÷Ïßboss: NPCAttr 2 Õ½ڠ¹Ø¿¨IDsµ¼³öÖ÷ÏßÊôÐÔ: NPCAttr e mainites---------------------------iit    MainLevels²»´æÔÚ¸ÃÕ½ڹؿ¨! %s-%ssÖ÷ÏßÕ¹Ø: %s-%ss²»´æÔڸø±±¾¹Ø¿¨! %s-%ss¸±±¾¹Ø¿¨: %s-%s(t    GameWorldt DebugAnswert__exportNPCAttrtChConfigtDef_FBMapID_MaintDef_FBMapID_MainBosstlent IpyGameDataPYtGetIpyGameDatatGetBossLineupIDListtGetNPCLVt GetDifficultytFBCommontGetFBLineIpyDatatGetLineupIDListt__printNPCLineupAttr( t    curPlayert    paramListtvaluetmapIDt    chapterIDtlevelNumt levelIpyDatat lineupIDListt
strongerLVt
difficultyt
funcLineIDt fbLineIpyData((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GM\Commands\NPCAttr.pytOnExecsB
  ""   "   cCsBt|ƒdkr|dnd}|dkr>t||ƒndS(Nitmain(Rt__exportMainLevelNPCAttr(RRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GM\Commands\NPCAttr.pyRBs" c
Cs×tj|d|||fƒx³|D]«}tj|||tƒ}|sNq$n|d}|d}xjtddƒD]Y}t|ƒ|krqrn|t|ƒ}    t|ƒ}|    d}
|    d} |    d} |    d    } ||
krædnd
}i}x<| jƒD].\}}t|ƒ}|s#qÿn|||<qÿWt    j
|
ƒ}|sLqrntj|d ƒtj |j ƒƒ}| rˆ|d | 7}n|
rŸ|d |
7}nd||f}tj|d||rÊdndfƒtj|d|j tjd
ƒ|j tjd
ƒ|j tjd
ƒfƒd}|jƒ}|jƒxY|D]Q}|tjtjtjgkrlqBn||}|rB|d||f7}qBqBWtj|d|ƒtj|dt| ƒ| fƒqrWq$WdS(NsÕóÈÝ:%s,LV:%s,ÄѶÈ:%stHerotBossIDii
tNPCIDtHeroIDt SkillIDListtAttrDictis
----------s Hero:%ss NPC:%ssP%s:%ss%s%ss¡¾Boss¡¿ts¹¥:%s,·À:%s,HP:%ss%s=%s£»sÊôÐÔ:%ss ¼¼ÄÜ: %s,%si (RRt
TurnAttacktGetNPCLineupInfotFalsetrangetstrtinttitemst    NPCCommont GetNPCDataPyt    CodeToGbkt
GetNPCNametgetRt
AttrID_Atkt
AttrID_Deft AttrID_MaxHPtkeystsortR(RRtnpcLVRtlineupIDt
lineupInfotheroDicttbossIDtposNumtattrInfotnpcIDtheroIDt skillIDListtattrDicttisBosst    attrDict2tattrIDRtnpcDatatobjNametattrStrt
attrIDListt    attrValue((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GM\Commands\NPCAttr.pyRKsd 
 
 
 
 
 
 &  
 
(c(Csôddddddddd    g    }g}g}tjƒ}x7t|jƒƒD]#}|j|ƒ}|jƒ}|jƒ}    |jƒ}
|jƒ} g} xQtd
dƒD]@} t    |d | ƒsÄPnt
|d | ƒƒ}| j |ƒq§W|j ƒ}|r | j |ƒnx_t | d
ƒD]N\} }x?|D]7}tj||
| tƒ}|sZq0n|d }|d}xö|jƒD]è\}}t|ƒ}|d}|d}|d}|d    }|d}||kr×d
nd}i}xL|jƒD]>\}}t|ƒ}||kr$|j |ƒn|||<qðW||    | |||||||g
}|j |ƒq{Wq0WqWqLW|jƒg} xI|D]A}tjd|ƒ}!|!r´|!jƒnd|}"| j |"ƒqŠW|| 7}tjjdƒ}#tjj|#ƒs tj|#ƒntjj|#d|ƒ}$ddt|ƒd
}%t|$dƒ}&|&jd|%t|ƒƒxg|D]_}|d}|d }'x'|D]}|'j |j|dƒƒqW|&jd|%t|'ƒƒqoW|&j ƒt!j"|d|$ƒdS(NsÕ½Ús¹Ø¿¨s²¨sÕóÈÝIDtIsBossR#R$tLVR%iisGetWaveLineupIDList%sR!R"R&it
PlayerAttrs%ss
C:\NPCAttrsNPCAttrMapID_%s.txts    %stws%s
iÿÿÿÿsµ¼³ö:%si(#R    tIPY_DataR+tGetMainLevelCounttGetMainLevelByIndext GetChapterIDt GetLevelNumR R thasattrtgetattrtappendR t    enumerateR(R)R*R.R-R8R
t GetParametertostpathtjointexiststmakedirsRtopentwritettupleR3tcloseRR((RRt    fieldListt    valueListRJt
ipyDataMgrtindextipyDataRRR9RtwaveLineupIDListtwaveRtbossLineupIDListR:R;R<R=R>R?R@RAt    realNPCLVRBRCRDRERFRtvaluest attrNameListt attrIpyDatatattrNamet
folderPathtexportFilePatht
lineFormattfpt writeValues((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GM\Commands\NPCAttr.pyR …s‚!       
 
 
 
 
 
 
  $
 
 
 
 
( RRR(R    R/RRZRRRR (((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GM\Commands\NPCAttr.pyt<module>s           (            :