hxp
2019-05-30 155ce07b6a6f028df226581496794116c71cc149
1 Add Tool/配置导表工具/
9个文件已添加
846 ■■■■■ 已修改文件
Tool/配置导表工具/TableExportMap.txt 264 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tool/配置导表工具/config.ini 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tool/配置导表工具/config2.ini 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tool/配置导表工具/gamecfg_export.py 514 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tool/配置导表工具/readme.txt 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tool/配置导表工具/拖动配表到此导出.bat 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tool/配置导表工具/示例表列.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
Tool/配置导表工具/示例表行.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
Tool/配置导表工具/示例表行列.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
Tool/ÅäÖõ¼±í¹¤¾ß/TableExportMap.txt
New file
@@ -0,0 +1,264 @@
配置母表文件名    å®¢æˆ·ç«¯è·¯å¾„    å®¢æˆ·ç«¯è¡¨å    æœåŠ¡ç«¯è·¯å¾„    æœåŠ¡ç«¯è¡¨å    ä¸»é”®å­—段组合    è¡¨æ ¼è¯´æ˜Ž
示例表行    \Config    tagA    \db\PyMongoDataServer\PySysDB    tagA    Lv    ç¤ºä¾‹è¡¨è¡Œ
示例表列    \Config    tagB    \db\PyMongoDataServer\PySysDB    tagB    -    ç¤ºä¾‹è¡¨åˆ—
示例表行列    \Config    tagC    \db\PyMongoDataServer\PySysDB    tagC    Lv1|Lv2    ç¤ºä¾‹è¡¨è¡Œåˆ—
B.宝箱怪表    \Config    -    \db\PyMongoDataServer\PySysDB    tagTreasureNPC    NPCID    å®ç®±æ€ªè¡¨
B.宝箱表开启    \Config    Chests    \db\PyMongoDataServer\PySysDB    tagChests    ChestsItemID    å®ç®±è¡¨å¼€å¯
B.宝箱表产出表    \Config    ChestsAward    \db\PyMongoDataServer\PySysDB    tagChestsAward    ChestsItemID|AwardLV    å®ç®±è¡¨äº§å‡ºè¡¨
B.Boss技能提示    \Config    bossSkillTips    -    -    id    boss信息提示
C.采集物表    \Config    CollectNpc    \db\PyMongoDataServer\PySysDB    tagCollectNPC    NPCID    é‡‡é›†ç‰©è¡¨
C.充值表    \Config    CTG    \db\PyMongoDataServer\PySysDB    tagCTG    GoodsCode    å……值表
C.充值商品编号表    \Config    OrderInfo    \db\PyMongoDataServer\PySysDB    tagOrderInfo    id    å……值商品编号表
C.称号表    \Config    Dienstgrad    \db\PyMongoDataServer\PySysDB    tagDienstgrad    ID    ç§°å·è¡¨
C.成就表    \Config    Success    \db\PyMongoDataServer\PySysDB    tagSuccess    id    æˆå°±è¡¨
C.成长型怪物公式参数表    \Config    -    \db\PyMongoDataServer\PySysDB    tagNPCStrengthen    -    æˆé•¿åž‹æ€ªç‰©å…¬å¼å‚数表
D.等级表    \Config    PlayerLV    \db\PyMongoDataServer\PySysDB    tagPlayerLV    LV    è§’色等级相关信息表
D.等级开启功能    \Config    FuncOpenLV    \db\PyMongoDataServer\PySysDB    tagFuncOpenLV    FuncId    åŠŸèƒ½å¼€å¯è¡¨
D.地图表格    \Config    Map    \db\PyMongoDataServer\SysDB    tagChinMap    MapID    åœ°å›¾è¡¨æ ¼
D.地图资源表格    \Config    MapResources    -    -    ID    åœ°å›¾èµ„源表格
D.掉落表    \Config    NPCDropItem    \db\PyMongoDataServer\PySysDB    tagNPCDropItem    -    NPC掉落表
D.地图NPC配置表    \Config    MapEventPoint    \db\PyMongoDataServer\PySysDB    tagMapEventPoint    Key    åœ°å›¾NPC配置表
D.地图标试点NPC刷新    -    -    \db\PyMongoDataServer\PySysDB    tagMapRefreshNPC    MapID|RefreshNum    åœ°å›¾æ ‡è¯•点NPC刷新
F.富文本信息替换    \Config    RichTextMsgReplace    -    RichTextMsgReplace    id    å¯Œæ–‡æœ¬ä¿¡æ¯æ›¿æ¢
F.符印表    \Config    Rune    \db\PyMongoDataServer\PySysDB    tagRune    ID    ç¬¦å°è¡¨
F.副本表    \Config    Dungeon    \db\PyMongoDataServer\PySysDB    tagFBLine    ID    å‰¯æœ¬è¡¨
F.副本总表    \Config    DungeonOpenTime    \db\PyMongoDataServer\PySysDB    tagFBFunc    ID    å‰¯æœ¬æ€»è¡¨
F.副本状态时间表    \Config    DungeonStateTime    \db\PyMongoDataServer\PySysDB    tagFBStateTime    ID    å‰¯æœ¬çŠ¶æ€æ—¶é—´è¡¨
F.副本状态时间定制表    \Config    DungeonSpecialStateTime    \db\PyMongoDataServer\PySysDB    tagFBStateTimeCustom    ID    å‰¯æœ¬çŠ¶æ€æ—¶é—´å®šåˆ¶è¡¨
F.副本状态时间定制表合服    \Config    DungeonMixServerStateTime    \db\PyMongoDataServer\PySysDB    tagFBStateTimeCustomMix    ID    å‰¯æœ¬çŠ¶æ€æ—¶é—´å®šåˆ¶è¡¨åˆæœ
F.副本助战表    \Config    DungeonHelpBattle    \db\PyMongoDataServer\PySysDB    tagFBHelpBattle    ID    å‰¯æœ¬åŠ©æˆ˜è¡¨
F.副本刷怪标识点表    \Config    -    \db\PyMongoDataServer\PySysDB    tagNPCCustomRefresh    ID    å‰¯æœ¬åˆ·æ€ªæ ‡è¯†ç‚¹è¡¨
F.符印塔表    \Config    RuneTower    -    -    ID    ç¬¦å°å¡”表
F.符印塔塔层表    \Config    RuneTowerFloor    \db\PyMongoDataServer\PySysDB    tagRuneTower    ID    ç¬¦å°å¡”塔层表
G.GM测试属性表    \Config    -    \db\PyMongoDataServer\PySysDB    tagGMAttr    -    GM测试属性表
G.功能配置表格    \Config    FuncConfig    \db\PyMongoDataServer\PySysDB    tagFuncConfig    KEY    åŠŸèƒ½æ··åˆé…ç½®è¡¨
G.怪物名称颜色    \Config    MonsterNameColor    -    MonsterNameColor    ID    æ€ªç‰©åç§°é¢œè‰²
H.合成表    \Config    ItemCompound    \db\PyMongoDataServer\PySysDB    tagItemCompound    id    åˆæˆè¡¨
H.换装表    \Config    ModelRes    -    ModelRes    ID    æ¢è£…资源表
H.魂石配置表    \Config    AttrFruit    \db\PyMongoDataServer\PySysDB    tagAttrFruit    ID    çµå® é­‚石坐骑兽魂等配置表
J.境界表    \Config    Realm    \db\PyMongoDataServer\PySysDB    tagRealm    Lv    å¢ƒç•Œè¡¨
J.技能表    \Config    Skill    \db\PyMongoDataServer\SysDB    tagChinSkill    SkillID    æŠ€èƒ½è¡¨
L.灵宠表    \Config    PetInfo    \db\PyMongoDataServer\PySysDB    tagPetInfo    ID    çµå® è¡¨
L.聊天气泡表    \Config    ChatBubbleBox    \db\PyMongoDataServer\PySysDB    tagChatBubbleBox    BoxID    èŠå¤©æ°”泡表
Z.装备分解属性表    \Config    EquipDeCompose    \db\PyMongoDataServer\PySysDB    tagEquipDecompose    LV    è£…备分解属性表
L.灵宠升阶消耗表    \Config    PetClassCost    \db\PyMongoDataServer\PySysDB    tagPetClassCost    ID    çµå® å‡é˜¶æ¶ˆè€—表
N.NPC表    \Config    NPC    \db\PyMongoDataServer\SysDB    tagChinNPC    NPCID    NPC表
N.NPC时间掉血表    \Config    -    \db\PyMongoDataServer\PySysDB    tagNPCTimeLostHP    NPCID    NPC时间掉血表
Q.区域镜头    \Config    AreaCamera    -    -    AreaID    åŒºåŸŸé•œå¤´
S.神兵表    \Config    GodWeapon    \db\PyMongoDataServer\PySysDB    tagGodWeapon    ID    ç¥žå…µè¡¨
S.属性条目配置    \Config    PlayerProperty    -    PlayerProperty    ID    å±žæ€§æ¡ç›®é…ç½®
S.随机名字列表    \Config    RandomName    -    RandomName    ID    éšæœºåå­—列表
W.物品表    \Config    Item    \db\PyMongoDataServer\SysDB    tagChinItem    ID    ç‰©å“ä¿¡æ¯è¡¨
X.洗练属性    \Config    EquipWash    \db\PyMongoDataServer\PySysDB    tagEquipWash    -    è£…备洗练表
X.洗练套装属性    \Config    EquipWashSpec    \db\PyMongoDataServer\PySysDB    tagEquipWashSpec    -    è£…备洗练套装特殊属性表
X.信息提示表    \Config    SysInfo    -    tagSysInfo    key    ä¿¡æ¯æç¤ºè¡¨
Y.羽翼精炼材料表    \Config    WingRefineExp    \db\PyMongoDataServer\PySysDB    tagWingRefineExp    ID    ç¾½ç¿¼ç²¾ç‚¼ææ–™ç»éªŒè¡¨
Y.羽翼精炼属性随机    \Config    WingRefineAttr    \db\PyMongoDataServer\PySysDB    tagWingRefineAttr    ID    ç¾½ç¿¼ç²¾ç‚¼å±žæ€§è¡¨
Z.战斗力参数    \Config    FightPowerParam    \db\PyMongoDataServer\PySysDB    tagFightPowerParam    LV    æˆ˜æ–—力参数等级系数表
Z.装备评分    \Config    EquipGSParam    \db\PyMongoDataServer\PySysDB    tagEquipGSParam    -    è£…备评分属性系数表
Z.装备对应积分经验表    \Config    PetEatEquip    \db\PyMongoDataServer\PySysDB    tagPetEatEquip    ID    è£…备积分经验表
Z.装备强化表    \Config    ItemPlus    \db\PyMongoDataServer\PySysDB    tagItemPlus    id    è£…备强化表
Z.装备强化等级上限    \Config    ItemPlusMax    \db\PyMongoDataServer\PySysDB    tagItemPlusMax    id    è£…备强化等级上限
Z.装备全身强化属性    \Config    ItemPlusSumAttr    \db\PyMongoDataServer\PySysDB    tagItemPlusSumAttr    countNeed    è£…备全身强化属性
Z.坐骑升级消耗表    \Config    HorseUp    \db\PyMongoDataServer\PySysDB    tagHorseUp    ID    åéª‘升级消耗表
Z.坐骑表    \Config    Horse    \db\PyMongoDataServer\PySysDB    tagHorse    HorseID    åéª‘表
Z.装备套装属性    \Config    EquipSuit    \db\PyMongoDataServer\PySysDB    tagEquipSuitAttr    id    è£…备套装属性
Z.装备套装材料    \Config    EquipSuitCompound    -    -    id    è£…备套装材料
Z.各个职业相关配置表    \Config    JobSetup    -    tagJobSetup    Job    å„个职业相关配置表
T.特效管理表    \Config    Effect    -    Effect    id    ç‰¹æ•ˆç®¡ç†è¡¨
P.屏蔽词    \Config    DirtyWord    \CoreServerGroup\GameServer\GameServerConfig\DirtyList    DirtyList    id    å±è”½è¯
P.排行榜表    \Config    RankList    -    tagRankList    ID    æŽ’行榜
S.世界等级表    -    WorldLV    \db\PyMongoDataServer\PySysDB    tagWorldLV    WorldLevel    ä¸–界等级表
X.仙盟表    \Config    Family    \db\PyMongoDataServer\PySysDB    tagFamily    familyLV    ä»™ç›Ÿè¡¨
X.仙盟科技表    \Config    FamilyTech    \db\PyMongoDataServer\PySysDB    tagFamilyTech    teachID    ä»™ç›Ÿç§‘技表
Z.职业名称    \Config    OccupationName    -    JobName    ID    èŒä¸šåç§°
X.仙盟Boss表    \Config    FairyBoss    -    tagFairyBoss    id    ä»™ç›ŸBoss表
Y.语言表    \Config    Language        Language    id    è¯­è¨€è¡¨
Y.音效表    \Config    Audio        Audio    ID    éŸ³æ•ˆé…ç½®è¡¨
Y.运营活动表    \Config    ActionControl    \db\PyMongoDataServer\PySysDB    tagActionControl    ID    è¿è¥æ´»åŠ¨è¡¨
I.Icon表    \Config    Icon        Icon    id    å›¾æ ‡é…ç½®è¡¨
C.传送点配置    \Config    maptransport            TransportID    ä¼ é€ç‚¹é…ç½®è¡¨
C.创角表    \Config    CreateRole    -    CreateRole    job    åˆ›è§’表
Z.战斗伤害数字    \Config    DamageNum        DamageNum    id    æˆ˜æ–—伤害数字配置表
B.表情表    \Config    Face    -    Face    name    è¡¨æƒ…表
R.日常任务表    \Config    DailyQuest    \db\PyMongoDataServer\PySysDB    tagDailyQuest    ID    æ—¥å¸¸ä»»åŠ¡è¡¨
R.日常活动表    \Config    DailyQuestOpenTime    \db\PyMongoDataServer\PySysDB    tagDailyAction    ID    æ—¥å¸¸æ´»åŠ¨è¡¨
R.日常活动定制表    \Config    DailyQuestSpecialOpenTime    \db\PyMongoDataServer\PySysDB    tagDailyActionCustom    ID    æ—¥å¸¸æ´»åŠ¨å®šåˆ¶è¡¨
R.日常活动定制表合服    \Config    DailyQuestMixServerStateTime    \db\PyMongoDataServer\PySysDB    tagDailyActionCustomMix    ID    æ—¥å¸¸æ´»åŠ¨å®šåˆ¶è¡¨åˆæœ
R.日常活跃奖励表    \Config    DailyLivenessReward    \db\PyMongoDataServer\PySysDB    tagDailyLivenessReward    Liveness    æ—¥å¸¸æ´»è·ƒå¥–励表
P.拍卖物品表    \Config    AuctionItem    \db\PyMongoDataServer\PySysDB    tagAuctionItem    ItemID    æ‹å–物品表
J.集市表    \Config    Market    -    tagMarket    type    é›†å¸‚表
J.集市查询表    \Config    MarketQuery    -    tagMarketQuery    queryType    é›†å¸‚查询表
Y.邮件模板表    \Config    Mail    \db\PyMongoDataServer\PySysDB    tagPyMail    MailType    é‚®ä»¶æ¨¡æ¿è¡¨
Z.装备全身星数属性    \Config    RoleEquipStars    \db\PyMongoDataServer\PySysDB    tagRoleEquipStars    id    è£…备全身星数属性
F.法宝表    \Config    Treasure    \db\PyMongoDataServer\PySysDB    tagTreasure    ID    æ³•宝表
J.技能升级    \Config    TreasureSkill    \db\PyMongoDataServer\PySysDB    tagSkillElement    ID    æŠ€èƒ½å‡çº§è¡¨
J.界面索引表    \Config    WindowSearch    -    tagWindowSearch    ID    ç•Œé¢ç´¢å¼•表
X.修行表    \Config    RealmPractice    -    tagRealmPractice    ID    å¢ƒç•Œä¿®è¡Œè¡¨
F.副本目标提示表    \Config    DungeonHint    -    tagDungeonHint    ID    å‰¯æœ¬ç›®æ ‡æç¤ºè¡¨
Q.签到奖励表    \Config    SignIn    \db\PyMongoDataServer\PySysDB    tagSignAward    RewardID    ç­¾åˆ°å¥–励表
Q.累计签到奖励表    \Config    ContinueSignIn    \db\PyMongoDataServer\PySysDB    tagContineSignAward    ContineDay    ç´¯ç§¯ç­¾åˆ°å¥–励表
V.VIP礼包表    \Config    VIPAward    \db\PyMongoDataServer\PySysDB    tagVIPAward    VIPLV    VIP礼包表
D.定制物品表    \Config    AppointItem    \db\PyMongoDataServer\PySysDB    tagAppointItem    ID    å®šåˆ¶ç‰©å“è¡¨
V.vip特权表    \Config    VipPrivilege    \db\PyMongoDataServer\PySysDB    tagVipPrivilege    VIPPrivilege    VIP特权表
V.VIP杀怪加攻击表    \Config    VIPKillNPC    \db\PyMongoDataServer\PySysDB    tagVIPKillNPC    KillLV    VIP杀怪加攻击表
S.商城    \Config    Store    \db\PyMongoDataServer\PySysDB    tagStore    ID    å•†åŸŽ
S.世界BOSS表    \Config    WorldBoss            NPCID    ä¸–界boss表
B.Boss之家    \Config    BossHome            NPCID    Boss之家表
B.Boss信息    \Config    BossInfo    \db\PyMongoDataServer\PySysDB    tagBOSSInfo    NPCID    Boss刷新信息
G.个人BOSS    \Config    PersonalBoss    \db\PyMongoDataServer\PySysDB    tagPersonalBoss    NPCID    ä¸ªäººboss表
G.古神禁地    \Config    ElderGodArea    \db\PyMongoDataServer\PySysDB    tagElderGodArea    NPCID    å¤ç¥žç¦åœ°è¡¨
F.法宝铸炼表    \Config    TreasureRefine    \db\PyMongoDataServer\PySysDB    tagTreasureRefine    -    æ³•宝铸炼表
L.炼丹炉等级表    \Config    RefineStove    \db\PyMongoDataServer\PySysDB    tagRefineStove    -    ç‚¼ä¸¹ç‚‰ç­‰çº§è¡¨
L.炼丹表    \Config    Alchemy    \db\PyMongoDataServer\PySysDB    tagAlchemy    -    ç‚¼ä¸¹è¡¨
L.炼丹表特殊产出表    \Config    AlchemySpec    \db\PyMongoDataServer\PySysDB    tagAlchemySpec    -    ç‚¼ä¸¹è¡¨ç‰¹æ®Šäº§å‡ºè¡¨
Y.宴会题库表    \Config    QuestionBank    -    tagQuestionBank    id    å®´ä¼šé¢˜åº“表
X.仙盟活跃表    \Config    UnionLiven    \db\PyMongoDataServer\PySysDB    tagFamilyActivity    ID    ä»™ç›Ÿæ´»è·ƒè¡¨
B.BOSS秀    \Config    ActorShow    \db\PyMongoDataServer\PySysDB    tagNPCShow    -    Boss秀
H.红包表    \Config    RedPack    \db\PyMongoDataServer\PySysDB    tagFamilyRedPack    ID    ä»™ç›Ÿçº¢åŒ…表
G.功能预告表    \Config    FunctionForecast    \db\PyMongoDataServer\PySysDB    tagFunctionForecast    ID    åŠŸèƒ½é¢„å‘Šè¡¨
G.GM命令表    \Config    GmCmd    -    -    Id    GM命令表
H.获取途径索引表    \Config    GetItemWays    -    -    ID    èŽ·å–é€”å¾„ç´¢å¼•è¡¨
C.查看玩家功能表    \Config    ViewRoleFunc    -    -    id    æŸ¥çœ‹çŽ©å®¶åŠŸèƒ½æˆ˜åŠ›è¡¨
Y.引导表    \Config    Guide            ID    åŠŸèƒ½å¼•å¯¼
W.我要变强表    \Config    RoleStronger    -    -    id    æˆ‘要变强表
H.获取资源表    \Config    RoleResource    -    -    id    èŽ·å–èµ„æºè¡¨
N.NPC自言自语表    \Config    NPCDialogue    -    -    ID    NPC随机瞎BB
R.任务列表    \Config    TaskList    -    -    ID    ä»»åŠ¡åˆ—è¡¨
F.封魔坛BOSS表    \Config    DemonJar    \db\PyMongoDataServer\PySysDB    tagSealDemon    NPCID    å°é­”坛配置表
J.剧情对话任务表    \Config    StoryMissions    -    -    ID    å‰§æƒ…对话任务表
J.剧情对话    \Config    Dialog    -    -    id    å‰§æƒ…对话表
F.副本鼓舞表    \Config    DungeonInspire    \db\PyMongoDataServer\PySysDB    tagFbEncourage    ID    å‰¯æœ¬é¼“舞表
F.符印合成表    \Config    RuneCompose    \db\PyMongoDataServer\PySysDB    tagRuneCompound    TagItemID    ç¬¦å°åˆæˆè¡¨
Z.资源找回表    \Config    ResourcesBack    \db\PyMongoDataServer\PySysDB    tagResourcesBack    ID    èµ„源找回表
C.场景阴影配置    \Config    SceneShadow                åœºæ™¯é˜´å½±è¡¨
G.怪物刷新点表    \Config    MonsterRefreshPoint    \db\PyMongoDataServer\PySysDB    tagMonsterRefreshPoint    NPCID    æ€ªç‰©åˆ·æ–°ç‚¹è¡¨
T.天气效果表    \Config    Weather                å¤©æ°”效果表
G.规则表    \Config    Rule            ID    è§„则表
G.功能开关表    \Config    FuncSwitch            ID    åŠŸèƒ½å¼€å…³è¡¨
S.神兽表    \Config    Dogz    \db\PyMongoDataServer\PySysDB    tagDogz    ID    ç¥žå…½è¡¨
S.神兽强化表    \Config    DogzEquipPlus    \db\PyMongoDataServer\PySysDB    tagDogzEquipPlus    id    ç¥žå…½å¼ºåŒ–表
F.副本组队目标表    \Config    TeamTarget                å‰¯æœ¬ç»„队目标表
Q.全民冲榜排行奖励表    \Config    OSCBillRankAward    \db\PyMongoDataServer\PySysDB    tagOSCBillRankAward    -    å…¨æ°‘冲榜排行奖励表
Q.全民冲榜达成奖励表    \Config    OSCBillTagAward    \db\PyMongoDataServer\PySysDB    tagOSCBillTagAward    -    å…¨æ°‘冲榜达成奖励表
Q.七天登陆奖励    \Config    InSevenDays    \db\PyMongoDataServer\PySysDB    tagLoginDayAward    RewardID    ä¸ƒå¤©ç™»å…¥å¥–励
Q.七天在线奖励    \Config    OnlineAward    \db\PyMongoDataServer\PySysDB    tagOnlineAward    RewardID    ä¸ƒå¤©åœ¨çº¿å¥–励
Q.七天限时特惠表    \Config    SpringSale    \db\PyMongoDataServer\PySysDB    tagSpringSale    GiftID    ä¸ƒå¤©é™æ—¶ç‰¹æƒ 
D.等级礼包表    \Config    LVAawrd    \db\PyMongoDataServer\PySysDB    tagLVAward    RewardID    ç­‰çº§ç¤¼åŒ…表
T.投资表    \Config    Invest    \db\PyMongoDataServer\PySysDB    tagInvest    id    æŠ•资表
T.套装特效表    \Config    SuitEffect    -    -    ID    å¥—装特效
L.Loading提示表    \Config    LoadingTip                åœºæ™¯åˆ‡æ¢æç¤ºè¡¨
X.仙魔成就表    \Config    XMZZAchievement    -    -    ID    ä»™é­”成就表
X.寻宝产出库表    \Config    XBGetItem    \db\PyMongoDataServer\PySysDB    tagTreasureHouse    ID    å¯»å®äº§å‡ºåº“表
K.开服红包成就表    \Config    OSRedAchieve    -    -    id    å¼€æœçº¢åŒ…成就表
X.仙宝寻主表    \Config    TreasureFindHost    \db\PyMongoDataServer\PySysDB    tagXBXZ    ID    ä»™å®å¯»ä¸»è¡¨
F.法宝升级表    \Config    TreasureUp    \db\PyMongoDataServer\PySysDB    tagTreasureUp    ID    æ³•宝升级表
F.法宝特权表    \Config    TreasurePrivilege    \db\PyMongoDataServer\PySysDB    tagTreasurePrivilege    PrivilegeID    æ³•宝特权表
L.loading界面功能展示    \Config    LoadingFunction            ID    loading界面功能展示表
D.登录广告表    \Config    LoginAd    -    -    id    ç™»å½•广告表
S.双倍经验活动表    \Config    -    \db\PyMongoDataServer\PySysDB    tagActExpRate    CfgID    åŒå€ç»éªŒæ´»åŠ¨è¡¨
X.消费返利活动表    \Config    -    \db\PyMongoDataServer\PySysDB    tagActCostRebate    CfgID    æ¶ˆè´¹è¿”利活动表
X.消费返利模板表    \Config    -    \db\PyMongoDataServer\PySysDB    tagCostRebateTemplate    -    æ¶ˆè´¹è¿”利模板表
X.限时特惠表    \Config    -    \db\PyMongoDataServer\PySysDB    tagActSpringSale    -    é™æ—¶ç‰¹æƒ è¡¨
X.限时礼包表    \Config    -    \db\PyMongoDataServer\PySysDB    tagActFlashGiftbag    -    é™æ—¶ç¤¼åŒ…表
X.限时礼包模板表    \Config    -    \db\PyMongoDataServer\PySysDB    tagFlashGiftbag    -    é™æ—¶ç¤¼åŒ…模板表
J.极品白拿表    \Config    FreeGoods    \db\PyMongoDataServer\PySysDB    tagFreeGoods    ID    æžå“ç™½æ‹¿è¡¨
B.Boss复活    \Config    BossReborn    -    -    Id    Boss复活
B.Boss复活模板表    \Config    -    \db\PyMongoDataServer\PySysDB    tagBossReborn    -    Boss复活模板表
B.BOSS复活活动时间表    \Config    -    \db\PyMongoDataServer\PySysDB    tagActBossReborn    CfgID    BOSS复活活动时间表
X.仙界盛典活动时间表    \Config    -    \db\PyMongoDataServer\PySysDB    tagActFairyCeremony    CfgID    ä»™ç•Œç››å…¸æ´»åŠ¨æ—¶é—´è¡¨
X.仙界盛典-绝版降临表    \Config    UniquenessArrive    \db\PyMongoDataServer\PySysDB    tagUniquenessArrive    ID    ç»ç‰ˆé™ä¸´è¡¨
X.仙界盛典-全民来嗨    \Config    AllPeopleParty    \db\PyMongoDataServer\PySysDB    tagAllPeopleParty    ID    å…¨æ°‘来嗨
X.仙界盛典-全民来嗨奖励    \Config    AllPeoplePartyAward    \db\PyMongoDataServer\PySysDB    tagAllPeoplePartyAward    ID    å…¨æ°‘来嗨奖励
T.天赋表    \Config    Talent    \db\PyMongoDataServer\PySysDB    tagTalentSkill    SkillId    å¤©èµ‹è¡¨
K.空中楼宇    \Config    AerialBuilding    -    -    Id    ç©ºä¸­æ¥¼å®‡
K.跨服竞技场段位表    \Config    CrossServerArena    \db\PyMongoDataServer\PySysDB    tagCrossRealmPKDan    DanLV    è·¨æœç«žæŠ€åœºæ®µä½è¡¨
K.跨服竞技场段位奖励表    \Config    CrossRealmPKDanAward    \db\PyMongoDataServer\PySysDB    tagCrossRealmPKDanAward    CrossZoneName|SeasonID|DanLV    è·¨æœç«žæŠ€åœºæ®µä½å¥–励表
K.跨服竞技场排名奖励表    \Config    CrossRealmPKOrderAward    \db\PyMongoDataServer\PySysDB    tagCrossRealmPKOrderAward    CrossZoneName|SeasonID    è·¨æœç«žæŠ€åœºæŽ’名奖励表
K.跨服竞技场赛季表    \Config    -    \db\PyMongoDataServer\PySysDB    tagCrossRealmPKSeason    CrossZoneName|ZoneID|SeasonID    è·¨æœç«žæŠ€åœºèµ›å­£è¡¨
K.跨服分区表竞技场    \Config    -    \db\PyMongoDataServer\PySysDB    tagCrossZonePK    CrossZoneName|ZoneID    è·¨æœåˆ†åŒºè¡¨ç«žæŠ€åœº
K.跨服分区表通用    \Config    -    \db\PyMongoDataServer\PySysDB    tagCrossZoneComm    CrossZoneName|ZoneID    è·¨æœåˆ†åŒºè¡¨é€šç”¨
K.跨服Boss蓬莱仙境分区地图表    \Config    -    \db\PyMongoDataServer\PySysDB    tagCrossPenglaiZoneMap    ZoneID    è·¨æœBoss蓬莱仙境分区地图表
D.多倍修行点活动时间表    \Config    -    \db\PyMongoDataServer\PySysDB    tagActRealmPoint    ID    å¤šå€ä¿®è¡Œç‚¹æ´»åŠ¨æ—¶é—´è¡¨
Z.宗门试炼兑换表    \Config    TrialExchange    \db\PyMongoDataServer\PySysDB    tagTrialExchange    id    å®—门试炼兑换表
S.神兽副本    \Config    DogzDungeon            NPCID    ç¥žå…½å‰¯æœ¬è¡¨
Z.宗门试炼奖励表    \Config    TrialRewards    -    -    id    å®—门试炼奖励表
P.玩家名屏蔽词    \Config    DirtyName    \CoreServerGroup\GameServer\GameServerConfig\DirtyList    DirtyName    id    çŽ©å®¶åå±è”½è¯
W.娲皇遗迹副本奖励预览表    \Config    WHYJReward    -    -    ID    å¨²çš‡é—迹副本奖励预览表
X.限时抢购表    \Config    -    \db\PyMongoDataServer\PySysDB    tagActFlashSale    CfgID    é™æ—¶æŠ¢è´­è¡¨
X.许愿池活动时间表    \Config    -    \db\PyMongoDataServer\PySysDB    tagActWishingWell    CfgID    è®¸æ„¿æ± æ´»åŠ¨æ—¶é—´è¡¨
X.许愿池库模板表    \Config    -    \db\PyMongoDataServer\PySysDB    tagWishingWell    -    è®¸æ„¿æ± åº“模板表
X.小助手功能表    \Config    Secretary    -    -    ID    å°åŠ©æ‰‹åŠŸèƒ½è¡¨
L.累计充值活动表    \Config    -    \db\PyMongoDataServer\PySysDB    tagActTotalRecharge    CfgID    ç´¯è®¡å……值活动表
L.累计充值模板表    \Config    -    \db\PyMongoDataServer\PySysDB    tagTotalRechargeTemplate    -    ç´¯è®¡å……值模板表
S.守护表    \Config    Guard    -    -    id    å®ˆæŠ¤è¡¨
M.魔族法宝副本表    \Config    TreasureDungeon    \db\PyMongoDataServer\PySysDB    tagMagicWeaponFB    -    é­”族法宝副本表
B.冰晶矿脉星级奖励表    \Config    IceLodeStarAward    \db\PyMongoDataServer\PySysDB    tagIceLodeStarAward    -    å†°æ™¶çŸ¿è„‰æ˜Ÿçº§å¥–励表
L.Loading图    \Config    LoadingBackGround                åˆ‡å›¾èƒŒæ™¯å›¾
R.任务战力表    \Config    TaskPower                ä»»åŠ¡æˆ˜åŠ›è¡¨
S.神兵特效表    \Config    GodWeaponEffect    \db\PyMongoDataServer\PySysDB    tagGodWeaponEffect    -    ç¥žå…µç‰¹æ•ˆè¡¨
F.分包    \Config    priorbundle                åˆ†åŒ…资源
D.断线提示    \Config    KickOutReason                æ–­çº¿æç¤º
J.进入游戏前的提示    \Config    PriorLanguage                è¿›å…¥æ¸¸æˆå‰çš„æç¤º
S.上古战场随机名字    \Config    AncientRobotName        id    ä¸Šå¤æˆ˜åœºæœºå™¨äººåå­—
J.聚魂属性表    \Config    GatherSoulProperty    \db\PyMongoDataServer\PySysDB    tagGatherSoulAttr    AttrType    èšé­‚属性表
J.聚魂表    \Config    GatherSoul    \db\PyMongoDataServer\PySysDB    tagGatherSoul    ID    èšé­‚表
J.聚魂合成表    \Config    GatherSoulCompose    \db\PyMongoDataServer\PySysDB    tagGatherSoulCompound    TagItemID    èšé­‚合成表
F.法宝王者法宝表    \Config    KingTreasure    \db\PyMongoDataServer\PySysDB    tagMagicWeaponOfKing    ID    æ³•宝王者法宝表
W.王者法宝物品表    \Config    KingTreasureItem    -    -    itemId    çŽ‹è€…æ³•å®ç‰©å“è¡¨
K.跨服Boss表    \Config    CrossServerBoss            NPCID    è·¨æœboss表
S.时装表    \Config    FashionDress    \db\PyMongoDataServer\PySysDB    tagCoat    CoatID    æ—¶è£…表
S.时装柜升级表    \Config    FashionDressCabinet    \db\PyMongoDataServer\PySysDB    tagCoatChestUp    LV    æ—¶è£…柜升级表
Z.周狂欢表    \Config    WeekParty    -    -    Id    å‘¨ç‹‚欢表
Z.周狂欢模板表    \Config    -    \db\PyMongoDataServer\PySysDB    tagWeekParty    -    å‘¨ç‹‚欢模板表
Z.周狂欢时间表    \Config    -    \db\PyMongoDataServer\PySysDB    tagActWeekParty    -    å‘¨ç‹‚欢时间表
Z.周狂欢积分奖励表    \Config    WeekPartyPoint    -    -    Id    å‘¨ç‹‚欢积分奖励表
C.场景资源替换    \Config    SceneReplace            id    åœºæ™¯èµ„源替换表
D.登录奖励模板表    \Config    -    \db\PyMongoDataServer\PySysDB    tagLoginAward    -    ç™»å½•奖励模板表
D.登录奖励时间表    \Config    -    \db\PyMongoDataServer\PySysDB    tagActLoginAward    -    ç™»å½•奖励时间表
Z.诛仙装备套装属性表    \Config    -    \db\PyMongoDataServer\PySysDB    tagZhuXianSuitAttr    id    è¯›ä»™è£…备套装属性表
Z.诛仙BOSS表    \Config    JadeDynastyBoss    \db\PyMongoDataServer\PySysDB    tagZhuXianBoss    NPCID    è¯›ä»™Boss表
Z.诛仙塔表    \Config    JadeDynastyTower    \db\PyMongoDataServer\PySysDB    tagZhuXianTower    floorId    è¯›ä»™å¡”表
J.技能帧动画表    \Config    SkillFrameAnimation    -    -    skillTypeId    æŠ€èƒ½å¸§åŠ¨ç”»è¡¨
Z.诛仙装备分解表    \Config    -    \db\PyMongoDataServer\PySysDB    tagZhuXianEquipDecompose    -    è¯›ä»™è£…备分解表
J.节日巡礼模板表    \Config    -    \db\PyMongoDataServer\PySysDB    tagFeastWeekParty    -    èŠ‚æ—¥å·¡ç¤¼æ¨¡æ¿è¡¨
J.节日巡礼时间表    \Config    -    \db\PyMongoDataServer\PySysDB    tagActFeastWeekParty    -    èŠ‚æ—¥å·¡ç¤¼æ—¶é—´è¡¨
J.节日红包时间表    \Config    FestivalRedpack    \db\PyMongoDataServer\PySysDB    tagActFeastRedPacket    -    èŠ‚æ—¥çº¢åŒ…æ—¶é—´è¡¨
J.节日红包每日成就表    \Config    FestivalRedpackTask    \db\PyMongoDataServer\PySysDB    tagActFeastRedPacketSucc    id    èŠ‚æ—¥çº¢åŒ…æ¯æ—¥æˆå°±è¡¨
X.新仙界盛典活动时间表    \Config    -    \db\PyMongoDataServer\PySysDB    tagActNewFairyCeremony    CfgID    æ–°ä»™ç•Œç››å…¸æ´»åŠ¨æ—¶é—´è¡¨
X.新仙界盛典-绝版降临表    \Config    NewUniquenessArrive    \db\PyMongoDataServer\PySysDB    tagNewUniquenessArrive    ID    ç»ç‰ˆé™ä¸´è¡¨
X.新仙界盛典-全民来嗨    \Config    NewAllPeopleParty    \db\PyMongoDataServer\PySysDB    tagNewAllPeopleParty    ID    å…¨æ°‘来嗨
X.新仙界盛典-全民来嗨奖励    \Config    NewAllPeoplePartyAward    \db\PyMongoDataServer\PySysDB    tagNewAllPeoplePartyAward    ID    å…¨æ°‘来嗨奖励
J.节日巡礼表    \Config    HolidayHoming    -    -    Id    èŠ‚æ—¥å·¡ç¤¼è¡¨
J.节日巡礼积分奖励表    \Config    HolidayHomingPoint    -    -    Id    èŠ‚æ—¥å·¡ç¤¼ç§¯åˆ†å¥–åŠ±è¡¨
Z.诛仙宝石共鸣属性表    \Config    JadeDynastyStoneAttr    \db\PyMongoDataServer\PySysDB    tagZhuXianStoneAttr    id    è¯›ä»™å®çŸ³å…±é¸£å±žæ€§è¡¨
J.集字活动表    \Config    Character    -    -    Id    é›†å­—活动表
X.幸运鉴宝活动时间表    \Config    -    \db\PyMongoDataServer\PySysDB    tagActLuckyTreasure    -    å¹¸è¿é‰´å®æ´»åŠ¨æ—¶é—´è¡¨
X.幸运鉴宝库模板表    \Config    -    \db\PyMongoDataServer\PySysDB    tagLuckyTreasureTemplate    -    å¹¸è¿é‰´å®åº“模板表
K.跨服竞技场机器人装备    \Config    CrossServerOneVsOneRobot            id    è·¨æœç«žæŠ€åœºæœºå™¨äººè£…备
D.登录奖励表    \Config    LoginReward    -    -    Id    ç™»å½•奖励表
S.神秘商店表    \Config    -    \db\PyMongoDataServer\PySysDB    tagMysteryShop    -    ç¥žç§˜å•†åº—表
P.拍卖行表    \Config    Auction    -    -    Id    æ‹å–行表
Z.装备位背包索引映射表    \Config    EquipPlaceMap    \db\PyMongoDataServer\PySysDB    tagEquipPlaceIndexMap    PackIndex    è£…备位背包索引映射表
Z.装备总表    \Config    EquipControl    -    -    id    è£…备总表
Z.装备传奇属性等级数值表    \Config    LegendPropertyValue    \db\PyMongoDataServer\PySysDB    tagEquipLegendAttrValue    ItemType|ItemClassLV|ItemColor|IsSuit|id    è£…备传奇属性等级数值表
Z.装备传奇属性类型表    \Config    -    \db\PyMongoDataServer\PySysDB    tagEquipLegendAttrType    ItemType    è£…备传奇属性类型表
Z.装备传奇属性条数表    \Config    -    \db\PyMongoDataServer\PySysDB    tagEquipLegendAttrCount    ItemType|ItemColor|IsSuit    è£…备传奇属性条数表
Z.装备传奇属性值库表    \Config    LegendProperty    \db\PyMongoDataServer\PySysDB    tagEquipLegendAttrLib    id    è£…备传奇属性值库表
Z.装备升星表    \Config    EquipStar    \db\PyMongoDataServer\PySysDB    tagEquipStarUp    ID    è£…备升星表
Z.装备强化进化表    \Config    EquipPlusEvolve    \db\PyMongoDataServer\PySysDB    tagEquipPlusEvolve    ID    è£…备强化进化表
P.拍卖行索引表    \Config    AuctionIndex    -    -    Id    æ‹å–行表索引表
X.仙盟Boss奖励表    \Config    -    \db\PyMongoDataServer\PySysDB    tagFamilyBossAward    ID    ä»™ç›ŸBoss奖励表
Z.装备洗练等级上限    \Config    WashLevelMax    \db\PyMongoDataServer\PySysDB    tagItemWashMax    id    è£…备洗练等级上限
Q.骑宠Boss奖励表    \Config    -    \db\PyMongoDataServer\PySysDB    tagHorsePetBossAward    -    éª‘å® Boss奖励表
L.灵根表    \Config    ReikiRoot    \db\PyMongoDataServer\PySysDB    tagRolePoint    id    çµæ ¹è¡¨
P.缥缈仙域表    \Config    HazyRegion    \db\PyMongoDataServer\PySysDB    tagFairyDomain    id    ç¼¥ç¼ˆä»™åŸŸè¡¨
P.缥缈奇遇表    \Config    -    \db\PyMongoDataServer\PySysDB    tagFairyAdventures    ID    ç¼¥ç¼ˆå¥‡é‡è¡¨
P.缥缈奇遇对话表    \Config    AdventureDialogue        -    -    id    ç¼¥ç¼ˆä»™åŸŸå¯¹è¯è¡¨
P.缥缈仙域定制奖励表    \Config    -    \db\PyMongoDataServer\PySysDB    tagFairyDomainAppoint    ID    ç¼¥ç¼ˆä»™åŸŸå®šåˆ¶å¥–励表
L.炼丹数量表    \Config    AlchemyCount    \db\PyMongoDataServer\PySysDB    tagAlchemyResult    ID    ç‚¼ä¸¹æ•°é‡è¡¨
F.副本Buff表    \Config    DungeonUseBuff    \db\PyMongoDataServer\PySysDB    tagFBBuyBuff    ID    å‰¯æœ¬Buff表
F.法宝章节任务表    \Config    TreasureChapter    -    -    id    æ³•宝章节表
T.天星塔表    \Config    SkyTower    \db\PyMongoDataServer\PySysDB    tagSkyTower    floorId    å¤©æ˜Ÿå¡”表
R.任务反馈表    \Config    TaskFeedback    -    -    taskId    ä»»åŠ¡åé¦ˆè¡¨
R.任务反馈功能表    \Config    TaskFeedbackFunc    -    -    id    ä»»åŠ¡åé¦ˆåŠŸèƒ½è¡¨
Tool/ÅäÖõ¼±í¹¤¾ß/config.ini
New file
@@ -0,0 +1,10 @@
[config]
; å®¢æˆ·ç«¯é¡¹ç›®æ ¹è·¯å¾„
ClientRootPath = D:\ProjS1\Assets\ResourcesOut\Refdata
; æœåŠ¡ç«¯é¡¹ç›®æ ¹è·¯å¾„
ServerRootPath = D:\Server
; åŽç«¯ç‰¹æ®Šæ–‡ä»¶ç¼–码 {"编码":"文件名|文件名|..."}
EncodingSpec = {"utf8":"P.屏蔽词|P.玩家名屏蔽词"}
Tool/ÅäÖõ¼±í¹¤¾ß/config2.ini
New file
@@ -0,0 +1,14 @@
[config]
; å®¢æˆ·ç«¯é¡¹ç›®æ ¹è·¯å¾„
ClientRootPath = E:\Snxxz_Client\Assets\ResourcesOut\Refdata
ClientRootPath1 = E:\Snxxz_Client2\Assets\ResourcesOut\Refdata
; æœåŠ¡ç«¯é¡¹ç›®æ ¹è·¯å¾„
ServerRootPath = E:\snxx_server
;ServerRootPath1 = X:\SNServer
ServerRootPath1 = X:\snxx_server
ServerRootPath2 = Y:\snxx_server
; åŽç«¯ç‰¹æ®Šæ–‡ä»¶ç¼–码 {"编码":"文件名|文件名|..."}
EncodingSpec = {"utf8":"P.屏蔽词|"}
Tool/ÅäÖõ¼±í¹¤¾ß/gamecfg_export.py
New file
@@ -0,0 +1,514 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package Code.gamecfg_export
#
# @todo:游戏客户端服务端配置文件导出
# @author hxp
# @date 2017-07-19
# @version 1.0
#
# è¯¦ç»†æè¿°: æ ¹æ®ç­–划配置的母表格导出客户端服务端程序使用的配置文件
#
#-------------------------------------------------------------------------------
#"""Version = 2017-07-19 12:00"""
#-------------------------------------------------------------------------------
import ctypes
import ConfigParser
import xlrd
import sys
import os
####################################################################################################
STD_INPUT_HANDLE = -10
STD_OUTPUT_HANDLE = -11
STD_ERROR_HANDLE = -12
# å­—体颜色定义 ,关键在于颜色编码,由2位十六进制组成,分别取0~f,前一位指的是背景色,后一位指的是字体色
#由于该函数的限制,应该是只有这16种,可以前景色与背景色组合。也可以几种颜色通过或运算组合,组合后还是在这16种颜色中
# Windows CMD命令行 å­—体颜色定义 text colors
FOREGROUND_BLACK = 0x00 # black.
FOREGROUND_DARKBLUE = 0x01 # dark blue.
FOREGROUND_DARKGREEN = 0x02 # dark green.
FOREGROUND_DARKSKYBLUE = 0x03 # dark skyblue.
FOREGROUND_DARKRED = 0x04 # dark red.
FOREGROUND_DARKPINK = 0x05 # dark pink.
FOREGROUND_DARKYELLOW = 0x06 # dark yellow.
FOREGROUND_DARKWHITE = 0x07 # dark white.
FOREGROUND_DARKGRAY = 0x08 # dark gray.
FOREGROUND_BLUE = 0x09 # blue.
FOREGROUND_GREEN = 0x0a # green.
FOREGROUND_SKYBLUE = 0x0b # skyblue.
FOREGROUND_RED = 0x0c # red.
FOREGROUND_PINK = 0x0d # pink.
FOREGROUND_YELLOW = 0x0e # yellow.
FOREGROUND_WHITE = 0x0f # white.
# Windows CMD命令行 èƒŒæ™¯é¢œè‰²å®šä¹‰ background colors
BACKGROUND_BLUE = 0x10 # dark blue.
BACKGROUND_GREEN = 0x20 # dark green.
BACKGROUND_DARKSKYBLUE = 0x30 # dark skyblue.
BACKGROUND_DARKRED = 0x40 # dark red.
BACKGROUND_DARKPINK = 0x50 # dark pink.
BACKGROUND_DARKYELLOW = 0x60 # dark yellow.
BACKGROUND_DARKWHITE = 0x70 # dark white.
BACKGROUND_DARKGRAY = 0x80 # dark gray.
BACKGROUND_BLUE = 0x90 # blue.
BACKGROUND_GREEN = 0xa0 # green.
BACKGROUND_SKYBLUE = 0xb0 # skyblue.
BACKGROUND_RED = 0xc0 # red.
BACKGROUND_PINK = 0xd0 # pink.
BACKGROUND_YELLOW = 0xe0 # yellow.
BACKGROUND_WHITE = 0xf0 # white.
# get handle
std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
def set_cmd_text_color(color, handle=std_out_handle):
    Bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)
    return Bool
#reset white
def resetColor():
    set_cmd_text_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)
    return
#暗红色
#dark red
def printDarkRed(mess):
    set_cmd_text_color(FOREGROUND_DARKRED)
    sys.stdout.write(mess)
    resetColor()
    return
#红色
#red
def printRed(mess, newLine=True):
    set_cmd_text_color(FOREGROUND_RED)
    sys.stdout.write(mess)
    if newLine:
        sys.stdout.write("\n")
    resetColor()
    return
####################################################################################################
cfg = ConfigParser.ConfigParser()
if os.path.exists("config2.ini"):
    cfg.read("config2.ini")
else:
    cfg.read("config.ini")
ClientRootPath = cfg.get("config", "ClientRootPath")
ServerRootPath = cfg.get("config", "ServerRootPath")
print "ClientRootPath: %s" % ClientRootPath
print "ServerRootPath: %s" % ServerRootPath
ClientRootPathList = [ClientRootPath]
for i in xrange(1, 6):
    if not cfg.has_option("config", "ClientRootPath%s" % i):
        break
    ClientRootPathEx = cfg.get("config", "ClientRootPath%s" % i)
    ClientRootPathList.append(ClientRootPathEx)
ServerRootPathList = [ServerRootPath]
for i in xrange(1, 6):
    if not cfg.has_option("config", "ServerRootPath%s" % i):
        break
    serverRootPathEx = cfg.get("config", "ServerRootPath%s" % i)
    ServerRootPathList.append(serverRootPathEx)
if len(ServerRootPathList) > 1:
    print "ServerRootPathList: %s" % ServerRootPathList
ExportSign = ["C", "G", "S", "M", ""]
def GetExportSign(value):
    exportSign = ""
    upperSign = value.upper().replace(" ", "")
    for s in upperSign:
        if s not in ExportSign or s in exportSign:
            return None
        exportSign += s
    return upperSign
Encoding = "gbk"
EncodingSpec = eval(cfg.get("config", "EncodingSpec"))
def DoExportCfgFile(fileName, exportInfo):
    encoding = Encoding
    for e, f in EncodingSpec.items():
        if fileName in f:
            encoding = e
            break
    sys.setdefaultencoding(encoding)
    print "----------------------------"
    filePath = exportInfo[0]
    clientPath = exportInfo[1]
    clientFileName = exportInfo[2]
    serverPath = exportInfo[3]
    serverFileName = exportInfo[4]
    pkInfo = exportInfo[5]
    exportContent = __GetFileExportContent(filePath, pkInfo)
    if not exportContent:
        return
    gServerCfg, mServerCfg, serverCfg, clientCfg = exportContent
    if not gServerCfg and not mServerCfg and not serverCfg and not clientCfg:
        printRed("配置文件无效!%s" % (filePath))
        return
    print "开始导表: %s" % filePath
    # unicode中的‘\xa0’字符在转换成gbk编码时会出现问题,gbk无法转换'\xa0'字符
    # æ‰€ä»¥ï¼Œåœ¨è½¬æ¢çš„æ—¶å€™å¿…需进行一些前置动作 string.replace(u'\xa0', u' ')
    if gServerCfg:
        for ServerRootPath in ServerRootPathList:
            gServerCfgName = ServerRootPath + "\CoreServerGroup\GameServer\PySysDB" + "\%s.txt" % serverFileName
            fp = open(gServerCfgName, "w")
            for c in gServerCfg:
                fp.write("%s\n" % (c.replace(u'\xa0', u' ')))
            fp.close()
            print "导出GameServer: %s" % gServerCfgName
    if mServerCfg:
        for ServerRootPath in ServerRootPathList:
            mServerCfgName = ServerRootPath + "\db\PyMongoDataServer\PySysDB" + "\%s.txt" % serverFileName
            fp = open(mServerCfgName, "w")
            for c in mServerCfg:
                fp.write("%s\n" % (c.replace(u'\xa0', u' ')))
            fp.close()
            print "导出MapServer: %s" % mServerCfgName
    if serverCfg:
        for ServerRootPath in ServerRootPathList:
            serverCfgName = ServerRootPath + serverPath + "\%s.txt" % serverFileName
            fp = open(serverCfgName, "w")
            for c in serverCfg:
                fp.write("%s\n" % (c.replace(u'\xa0', u' ')))
            fp.close()
            print "导出服务端: %s" % serverCfgName
    if clientCfg:
        for ClientRootPath in ClientRootPathList:
            sys.setdefaultencoding("utf8") # å‰ç«¯é»˜è®¤ç¼–码
            clientCfgName = ClientRootPath + clientPath + "\%s.txt" % clientFileName
            fp = open(clientCfgName, "w")
            for c in clientCfg:
                fp.write("%s\n" % (c.replace(u'\xa0', u' ')))
            fp.close()
            print "导出客户端: %s" % clientCfgName
    return True
def __GetFileExportContent(filePath, pkInfo):
    gServerCfg = []
    mServerCfg = []
    serverCfg = []
    clientCfg = []
    gServerCfgColList = [] # gameServer服务端配置所需要的列索引列表
    mServerCfgColList = [] # mapServer服务端配置所需要的列索引列表 - é¢å¤–çš„
    serverCfgColList = [] # æœåŠ¡ç«¯é…ç½®æ‰€éœ€è¦çš„åˆ—ç´¢å¼•åˆ—è¡¨
    clientCfgColList = [] # å®¢æˆ·ç«¯é…ç½®æ‰€éœ€è¦çš„列索引列表
    gServerCfgRowList = [] # gameServer服务端配置所需要的行索引列表
    mServerCfgRowList = [] # mapServer服务端配置所需要的行索引列表 - é¢å¤–çš„
    serverCfgRowList = [] # æœåŠ¡ç«¯é…ç½®æ‰€éœ€è¦çš„è¡Œç´¢å¼•åˆ—è¡¨
    clientCfgRowList = [] # å®¢æˆ·ç«¯é…ç½®æ‰€éœ€è¦çš„行索引列表
    data = xlrd.open_workbook(filePath)
    table = data.sheet_by_index(0) # é»˜è®¤åªè§£æžç¬¬ä¸€å¼ å·¥ä½œè¡¨
    nrows = table.nrows # è¡Œæ•°
    ncols = table.ncols # åˆ—æ•°
    if not nrows or not ncols:
        printRed("配置文件无数据!%s" % (filePath))
        return
    # æ‰¾å‡ºéœ€è¦å¯¼å‡ºçš„列, SC配置需要做精确匹配
    firstRowValuesList = table.row_values(0) # ç¬¬ä¸€è¡Œ
    for col, value in enumerate(firstRowValuesList):
        if not (isinstance(value, unicode) or isinstance(value, str)):
            continue
        upperValue = GetExportSign(value)
        if upperValue == None:
            continue
        if "G" in upperValue:
            gServerCfgColList.append(col)
        if "M" in upperValue:
            mServerCfgColList.append(col)
        if "S" in upperValue:
            serverCfgColList.append(col)
        if "C" in upperValue:
            clientCfgColList.append(col)
    # æ‰¾å‡ºéœ€è¦å¯¼å‡ºçš„行, SC配置需要做精确匹配
    firstColValuesList = table.col_values(0) # ç¬¬ä¸€åˆ—
    for row, value in enumerate(firstColValuesList):
        if not (isinstance(value, unicode) or isinstance(value, str)):
            continue
        upperValue = GetExportSign(value)
        if upperValue == None:
            continue
        if "G" in upperValue:
            gServerCfgRowList.append(row)
        if "M" in upperValue:
            mServerCfgRowList.append(row)
        if "S" in upperValue:
            serverCfgRowList.append(row)
        if "C" in upperValue:
            clientCfgRowList.append(row)
    # æœ€å¤šåªå¯¼ä¸€åˆ—的,这种表第一列为导出行配置
    if ncols > 1 and (not gServerCfgColList or gServerCfgColList == [0]) and (not mServerCfgColList or mServerCfgColList == [0]) \
        and (not serverCfgColList or serverCfgColList == [0]) and (not clientCfgColList or clientCfgColList == [0]):
        gServerCfgColList = []
        mServerCfgColList = []
        serverCfgColList = []
        clientCfgColList = []
    # æœ€å¤šåªå¯¼ä¸€è¡Œçš„,这种表第一行为导出列配置
    if (not gServerCfgRowList or gServerCfgRowList == [0]) and (not mServerCfgRowList or mServerCfgRowList == [0]) \
        and (not serverCfgRowList or serverCfgRowList == [0]) and (not clientCfgRowList or clientCfgRowList == [0]):
        gServerCfgRowList = []
        mServerCfgRowList = []
        serverCfgRowList = []
        clientCfgRowList = []
    # 1-第一行为导出SC配置;2-第一列为导出SC配置;3-第一行列均为导出SC配置
    if (gServerCfgColList or mServerCfgColList or serverCfgColList or clientCfgColList) \
        and (gServerCfgRowList or mServerCfgRowList or serverCfgRowList or clientCfgRowList):
        exportType = 3 # è¡Œåˆ—导出,首行首列为导出配置
    elif gServerCfgColList or mServerCfgColList or serverCfgColList or clientCfgColList:
        exportType = 1 # æŒ‰åˆ—导出,首行为导出配置
    elif gServerCfgRowList or mServerCfgRowList or serverCfgRowList or clientCfgRowList:
        exportType = 2 # æŒ‰è¡Œå¯¼å‡ºï¼Œé¦–列为导出配置
        # å½“仅首列为SC配置时,导出的列为除了首列外的全部
        gServerCfgColList = range(1, ncols)
        mServerCfgColList = range(1, ncols)
        serverCfgColList = range(1, ncols)
        clientCfgColList = range(1, ncols)
    else:
        printRed('文件导出客户端服务端SC配置错误!仅可以设定%s中的一种或多种组合!' % ExportSign)
        return
    isFirstRowSC = exportType in [1, 3] # é¦–行是否SC导出配置
    cfgKeyList = [] # æ‰€æœ‰é…ç½®æ•°æ®çš„主键key列表, ç”¨äºŽåˆ¤æ–­æ˜¯å¦é‡å¤key
    pkFormat = ""
    pkColList = [] # ä¸»é”®ç»„合字段列索引
    pkList = pkInfo.split("|")
    for i, pk in enumerate(pkList):
        pkList[i] = pk.upper()
    # å­—段名行
    fieldRow = 2 if isFirstRowSC else 1
    fieldRowValuesList = table.row_values(fieldRow) # å­—段名行
    for col, value in enumerate(fieldRowValuesList):
        if value.upper() in pkList:
            pkColList.append(col)
            pkFormat += "%s=%%s, " % value
    # å½“行为SC配置时, æœåŠ¡ç«¯ç‰¹æ®Šè¡Œç¼–å·1,3行不导; åˆ—为SC配置时,由列直接配上去, è¿™é‡Œå°±ä¸å†åšå¤„理
    serverIgnoreRow = [1, 3] if isFirstRowSC else [] # gameServer通用
    gServerFormat = "%s" + "\t%s"*(len(gServerCfgColList) - 1)
    mServerFormat = "%s" + "\t%s"*(len(mServerCfgColList) - 1)
    serverFormat = "%s" + "\t%s"*(len(serverCfgColList) - 1)
    clientFormat = "%s" + "\t%s"*(len(clientCfgColList) - 1)
    for row in xrange(nrows):
        # é¦–行为SC配置时不导
        if row == 0 and isFirstRowSC:
            continue
        rowValuesList = table.row_values(row)
        # æµ®ç‚¹åž‹è½¬ä¸ºint
        for i, v in enumerate(rowValuesList):
            if type(v) != float:
                continue
            intV = int(v)
            if intV == v:
                rowValuesList[i] = intV
        isAdd = False
        if (exportType == 1 or row in gServerCfgRowList) and row not in serverIgnoreRow and gServerCfgColList:
            isAdd = True
            gServerCfg.append(gServerFormat % tuple([rowValuesList[i] for i in gServerCfgColList]))
        if (exportType == 1 or row in mServerCfgRowList) and row not in serverIgnoreRow and mServerCfgColList:
            isAdd = True
            print row
            mServerCfg.append(mServerFormat % tuple([rowValuesList[i] for i in mServerCfgColList]))
        if (exportType == 1 or row in serverCfgRowList) and row not in serverIgnoreRow and serverCfgColList:
            isAdd = True
            serverCfg.append(serverFormat % tuple([rowValuesList[i] for i in serverCfgColList]))
        if (exportType == 1 or row in clientCfgRowList) and clientCfgColList:
            isAdd = True
            # æ›¿æ¢å¯¼å‡ºåˆ°å®¢æˆ·ç«¯ç”¨çš„公式运算符
            for col, cfgStr in enumerate(rowValuesList):
                cfgFormula = __RepalceClientCfgFormula(cfgStr)
                if cfgFormula is None:
                    printRed("替换公式失败!第%s行,第%s列。" % (row + 1, col + 1))
                    return
                rowValuesList[col] = cfgFormula
            clientCfg.append(clientFormat % tuple([rowValuesList[i] for i in clientCfgColList]))
        if isAdd and pkColList:
            cfgKey = pkFormat % tuple([rowValuesList[pkCol] for pkCol in pkColList])
            if cfgKey in cfgKeyList:
                printRed("%s Key重复:%s, ç¬¬%s行。" % (filePath, cfgKey, row + 1))
                return
            cfgKeyList.append(cfgKey)
    return gServerCfg, mServerCfg, serverCfg, clientCfg
def __RepalceClientCfgFormula(formula):
    # æ›¿æ¢å¯¼å‡ºåˆ°å®¢æˆ·ç«¯ç”¨çš„公式, åªåšè¿ç®—符替换即可
    if type(formula) not in [str, unicode]:
        return formula
    if "(" not in formula and ")" not in formula:
        return formula
    if u"(" in formula or u")" in formula:
        printRed("公式中请使用英文括号: %s" % formula)
        return
    #print "初始: len=%s, %s" % (len(formula), formula)
    formula = formula.replace(" ", "")
    formula = formula.replace("random.random()", "(0;1)")
    start = 0
    doCnt = 0
    while doCnt < 1000:
        doCnt += 1
        #print "    %s, %s" % (start, formula)
        right = formula.find(")", start)
        if right == -1:
            if "min(" in formula or "max(" in formula or "math.ceil(" in formula or "int(" in formula \
                or "math.sqrt(" in formula or "pow(" in formula or "random.randint(" in formula:
                start = 0 # ä»Žå¤´å¼€å§‹
                continue
            else:
                #print "没有可替换的运算符了"
                break
        f = None
        if f == None:
            f = __DoReplacePyFunc(formula, right, "min(", 2, "{<[%s!%s]>}")
        if f == None:
            f = __DoReplacePyFunc(formula, right, "max(", 2, "{<[%s@%s]>}")
        if f == None:
            f = __DoReplacePyFunc(formula, right, "random.randint(", 2, "{<[%s~%s]>}") # éœ€åœ¨int之前处理
        if f == None:
            f = __DoReplacePyFunc(formula, right, "int(", 1, "{<[%s#]>}")
        if f == None:
            f = __DoReplacePyFunc(formula, right, "math.ceil(", 1, "{<[%s$]>}")
        if f == None:
            f = __DoReplacePyFunc(formula, right, "math.sqrt(", 1, "{<[%s&]>}")
        if f == None:
            f = __DoReplacePyFunc(formula, right, "pow(", 2, "{<[%s^%s]>}")
        # éƒ½æ‰¾ä¸åˆ°åŒ¹é…çš„函数情况下,就是纯粹的()括起来加强运算优先级的,先替换为{<[]>},之后再统一换回去
        if f == None:
            f = __DoReplacePyFunc(formula, right, "(", 1, "{<[%s]>}")
        if f != None:
            formula = f
        start = right + 1
    if doCnt >= 1000:
        printRed("替换公式执行次数异常: %s" % formula)
        return
    formula = formula.replace("{<[", "(")
    formula = formula.replace("]>}", ")")
    #print "替换结果: %s" % formula
    return formula
def __DoReplacePyFunc(formula, right, funcStr, funcParamCnt, replaceStr):
    ## æ›¿æ¢py运算函数为客户端可用格式
    left = formula.rfind(funcStr, 0, right) # ä»ŽåŽå¾€å‰æ‰¾å‡ºç¬¬ä¸€ä¸ªåŒ¹é…çš„函数
    if left == -1:
        return
    pyFuncStr = formula[left:right + 1]
    paramStr = pyFuncStr[len(funcStr):-1]
    if "(" in paramStr or ")" in paramStr:
        #print "    å‡½æ•°å‚数内容里有多余括号不处理: %s, %s" % (pyFuncStr, paramStr)
        return
    # æ²¡æœ‰å‚æ•°çš„py函数在开始直接精准替换,如 random.random()
    if funcParamCnt == 2:
        commaIndex = paramStr.find(",") # é€—号索引
        return formula.replace(pyFuncStr, replaceStr % (paramStr[:commaIndex], paramStr[commaIndex + 1:]))
    elif funcParamCnt == 1:
        return formula.replace(pyFuncStr, replaceStr % paramStr)
    return
def Main():
    print 'Number of arguments:', len(sys.argv), 'arguments.'
    # å…ƒç´ 0为自身模块名,不处理,从元素1开始处理
    reload(sys)
    sys.setdefaultencoding(Encoding)
    exportDict = {}
    for filePath in sys.argv[1:]:
        fileBaseName = os.path.basename(filePath) # æ–‡ä»¶åï¼Œå«æ‰©å±•名
        fileExtension = os.path.splitext(filePath)[-1] # æ‰©å±•名
        fileName = fileBaseName.replace(fileExtension, "") # ä¸å«æ‰©å±•名
        # åªå¤„理excel文件
        if "xls" not in fileExtension:
            printRed("不处理该文件,暂时只导excel文件!%s" % filePath)
            continue
        exportDict[fileName] = filePath
    clientFileNameList = []
    serverFileNameList = []
    exportInfoDict = {}
    exportMapFile = open("TableExportMap.txt", 'r')
    for line in exportMapFile.readlines():
        #if not exportDict:
        #    break
        exportMapInfo = line.split('\t')
        fileName = exportMapInfo[0]
        clientFileName = exportMapInfo[2]
        serverFileName = exportMapInfo[4]
        if clientFileName in clientFileNameList:
            printRed("导出前端文件名重复!%s -> %s" % (fileName, clientFileName))
            return
        if clientFileName and clientFileName != "-":
            clientFileNameList.append(clientFileName)
        if serverFileName in serverFileNameList:
            printRed("导出服务端文件名重复!%s -> %s" % (fileName, serverFileName))
            return
        if serverFileName and serverFileName != "-":
            serverFileNameList.append(serverFileName)
        if fileName not in exportDict:
            continue
        filePath = exportDict.pop(fileName)
        exportInfoDict[fileName] = [filePath] + exportMapInfo[1:]
    exportMapFile.close()
    if exportDict:
        for filePath in exportDict.values():
            printRed("请配置配置表导出路径!%s" % filePath)
        return
    exportCount = 0
    for fileName, exportInfo in exportInfoDict.items():
        if not DoExportCfgFile(fileName, exportInfo):
            printRed("导表失败! %s" % filePath)
            break
        exportCount += 1
    print "----------------------------"
    print "成功导表数: %s" % exportCount
    print "----------------------------"
    return
if __name__ == "__main__":
    Main()
Tool/ÅäÖõ¼±í¹¤¾ß/readme.txt
New file
@@ -0,0 +1,34 @@
------------------------------------------------------------------
本工具使用python开发,所以如果没有安装python的请先安装python
已安装python的请安装下python解析excel所需要的工具
详细安装说明及安装所需要的文件请参考文件夹【excel解析安装】
------------------------------------------------------------------
【配置导表工具使用说明】
1. ä¿®æ”¹ config.ini ä¸­çš„导出到目标项目根路径配置
2. æ–°å¢ž/修改配置导出表对应客户端服务端路径 TableExportMap.txt
   æ–°å¢žå¯¼å‡ºé…ç½®æ—¶ï¼Œåªè¦åœ¨æ­¤æ–‡ä»¶å¢žåŠ ä¸€è¡Œè®°å½•å³å¯
   ç›®å‰å¯¼å‡ºçš„æ–‡ä»¶åå®¢æˆ·ç«¯æœåŠ¡ç«¯ç›¸åŒ
   ä¸»é”®å­—段组合:
        å¦‚果需要判断key是否重复,可通过配置主键字段组合,多个字段组成唯一主键的通过“|”号隔开
        å¦‚果不需要判断key是否重复的,则直接配置“-”即可,不含双引号
3. æ‹–动母表到 â€œæ‹–动配表到此导出.bat” ç­‰å¾…导出配置完成即可
4. å»ºè®®æ‰¹å¤„理文件在桌面创建个快捷方式,方便拖动批量导表
注:
·导出的数据内容只能放在excel第一个数据表中
·行列均支持配置导出的“g” æˆ– â€œs” æˆ– â€œm” æˆ– â€œc”,如果行列均需要配置sc,则表格的第一个单元格需放空,
    g或G    -    è¯¥è¡Œæˆ–列导出到GameServer
    s或S    -    è¯¥è¡Œæˆ–列导出到MapServer
    m或M    -    è¯¥è¡Œæˆ–列导出到MapServer,原SysDB下的表可配置导出M导出到PySysDB下使用python读表
    c或C    -    è¯¥è¡Œæˆ–列导出到Client
    ä¸å¯¼å‡ºè¯¥è¡Œåˆ—则配置放空
·代表导出到客户端或者服务端的行列中如果为空,则不会导出该行或列
    å³ç­–划表可添加一些策划自己用的行或列数据,如一些说明之类的内容
【详细配置可参考 â€œç¤ºä¾‹è¡¨è¡Œ.xlsx” ç­‰ç¤ºä¾‹é…ç½®ã€‘
------------------------------------------------------------------
Tool/ÅäÖõ¼±í¹¤¾ß/Í϶¯Åä±íµ½´Ëµ¼³ö.bat
New file
@@ -0,0 +1,10 @@
cd %~dp0
@echo off
setlocal enabledelayedexpansion
set str=
for %%i in (%*) do (set str=!str! %%i)
::echo !str!
python gamecfg_export.py !str!
pause
Tool/ÅäÖõ¼±í¹¤¾ß/ʾÀý±íÁÐ.xlsx
Binary files differ
Tool/ÅäÖõ¼±í¹¤¾ß/ʾÀý±íÐÐ.xlsx
Binary files differ
Tool/ÅäÖõ¼±í¹¤¾ß/ʾÀý±íÐÐÁÐ.xlsx
Binary files differ