Tool/配置导表工具/TableExportMap.txt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tool/配置导表工具/config.ini | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tool/配置导表工具/config2.ini | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tool/配置导表工具/gamecfg_export.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tool/配置导表工具/readme.txt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tool/配置导表工具/拖动配表到此导出.bat | ●●●●● 补丁 | 查看 | 原始文档 | 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/ÅäÖõ¼±í¹¤¾ß/ʾÀý±íÁÐ.xlsxBinary files differ
Tool/ÅäÖõ¼±í¹¤¾ß/ʾÀý±íÐÐ.xlsxBinary files differ
Tool/ÅäÖõ¼±í¹¤¾ß/ʾÀý±íÐÐÁÐ.xlsxBinary files differ