Item_Proto Converting problem [Python]

07/31/2016 09:07 uNet#1
Hey Elitepvpers,


Ich benutze ein Python Script um meine Item_Proto in der DB zu txt datein zu konvertieren um sie nacher in meinen Clienten zu packen problem dabei ist eine kleine fehlermeldung die dafür sorgt das alle meine items aufeinmal werte von komplett anderen items auf meinem server haben. und zwar ist die fehlermeldung beim ausführen folgende


Putty Screen:
[Only registered and activated users can see links. Click Here To Register...]


Script:
Code:
#!/usr/bin/env python
#-*- coding" utf-8 -*-
#Modified by Deucalion
import MySQLdb
host_mysql = 'localhost'
user_mysql = 'justhelix'
passwd_mysql = 'schlitzi'
def mob_proto():
        rank = {
                1: "S_PAWN",
                2: "KNIGHT",
                3: "S_KNIGHT",
                4: "BOSS",
                5: "KING",
        }
       
        typeee = {
                1: "NPC",
                2: "STONE",
                3: "WARP",
                4: "DOOR",
                5: "BUILDING",
                7: "POLYMORPH_PC",
                8: "HORSE",
                9: "GOTO",
        }
       
        battletype = {
                2: "RANGE",
                3: "MAGIC",
                4: "SPECIAL",
                5: "POWER",
                6: "TANKER",
        }
       
        def get_rank(level):
                if level in rank:
                        return "\"" + rank[level] + "\""
                else:
                        return "\"PAWN\""
       
        def get_type(typee):
                if typee in typeee:
                        return "\"" + typeee[typee] + "\""
                else:
                        return "\"MONSTER\""
                       
        def get_battletype(battle):
                if battle in battletype:
                        return "\"" + battletype[battle] + "\""
                else:
                        return "\"MELEE\""
                       
        def get_flag(flag):
                if flag == "":
                        return flag
                else:
                        return "\"" + flag + "\""
                       
        def get_race(race):
                if race == "":
                        return race
                else:
                        return "\"" + race + "\""
                       
        def get_immune(immune):
                if immune == "":
                        return immune
                else:
                        return "\"" + immune + "\""
                       
        def get_folder(folder):
                if folder == "":
                        return "\"wolf\""
                else:
                        return "\"" + folder + "\""
       
        print "Connecting to database proto..."
        data = "player"
        db = MySQLdb.connect(host_mysql,user_mysql,passwd_mysql,data)
        cur = db.cursor()
        print "Connected."
        cur.execute("select * from mob_proto")
        rows = cur.fetchall()
        out_file_mobproto = open("mob_proto.txt", "w")
        out_file_mobnames = open("mob_names.txt", "w")
        print "Converting mob_proto..."
        for row in rows:
                mob_proto_line = "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s" % (row[0], "\"" + row[1] + "\"", get_rank(row[3]), get_type(row[4]), get_battletype(row[5]), row[6], row[7], get_flag(row[8]), row[9], get_race(row[10]), get_immune(row[11]), row[12], get_folder(row[13]), row[14], row[15], row[16], row[17], row[18], row[19], row[20], row[21], row[22], row[23], row[24], row[25], row[26], row[27], row[28], row[29], row[30], row[31], row[32], row[33], row[34], row[35], row[36], row[37], row[38], row[39], row[40], row[41], row[42], row[43], row[44], row[45], row[46], row[47], row[48], row[49], row[50], row[51], row[52], row[53], row[54], row[55], row[56], row[57], row[58], row[59], row[60], row[61], row[62], row[63], row[64], row[65], row[66], row[67], row[68], row[69], row[70], row[71])
                mob_names_line = "%s\t%s" % (row[0], row[2])
                out_file_mobproto.write(mob_proto_line + "\r\n")
                out_file_mobnames.write(mob_names_line + "\r\n")
        out_file_mobproto.close()
        return "Mob proto converted!"
       
def item_proto():
        item_type = {
                0: "ITEM_NONE",
                1: "ITEM_WEAPON",
                2: "ITEM_ARMOR",
                3: "ITEM_USE",
                4: "ITEM_AUTOUSE",
                5: "ITEM_MATERIAL",
                6: "ITEM_SPECIAL",
                7: "ITEM_TOOL",
                8: "ITEM_LOTTERY",
                9: "ITEM_ELK",
                10: "ITEM_METIN",
                11: "ITEM_CONTAINER",
                12: "ITEM_FISH",
                13: "ITEM_ROD",
                14: "ITEM_RESOURCE",
                15: "ITEM_CAMPFIRE",
                16: "ITEM_UNIQUE",
                17: "ITEM_SKILLBOOK",
                18: "ITEM_QUEST",
                19: "ITEM_POLYMORPH",
                20: "ITEM_TREASURE_BOX",
                21: "ITEM_TREASURE_KEY",
                22: "ITEM_SKILLFORGET",
                23: "ITEM_GIFTBOX",
                24: "ITEM_PICK",
                25: "ITEM_HAIR",
                26: "ITEM_TOTEM",
                27: "ITEM_BLEND",
                28: "ITEM_COSTUME",
                29: "ITEM_DS",
                30: "ITEM_SPECIAL_DS",
                31: "ITEM_EXTRACT",
                32: "ITEM_SECONDARY_COIN",
                33: "ITEM_RING",
                34: "ITEM_BELT"
        }
 
        item_subtype = {
                1: {
                        0: "WEAPON_SWORD",
                        1: "WEAPON_DAGGER",
                        2: "WEAPON_BOW",
                        3: "WEAPON_TWO_HANDED",
                        4: "WEAPON_BELL",
                        5: "WEAPON_FAN",
                        6: "WEAPON_ARROW",
                        7: "WEAPON_MOUNT_SPEAR",
                        8: "WEAPON_NUM_TYPES",
                },
                2: {
                        0: "ARMOR_BODY",
                        1: "ARMOR_HEAD",
                        2: "ARMOR_SHIELD",
                        3: "ARMOR_WRIST",
                        4: "ARMOR_FOOTS",
                        5: "ARMOR_NECK",
                        6: "ARMOR_EAR",
                        7: "ARMOR_NUM_TYPES",
                },
                3 : {
                        0: "USE_POTION",
                        1: "USE_TALISMAN",
                        2: "USE_TUNING",
                        3: "USE_MOVE",
                        4: "USE_TREASURE_BOX",
                        5: "USE_MONEYBAG",
                        6: "USE_BAIT",
                        7: "USE_ABILITY_UP",
                        8: "USE_AFFECT",
                        9: "USE_CREATE_STONE",
                        10: "USE_SPECIAL",
                        11: "USE_POTION_NODELAY",
                        12: "USE_CLEAR",
                        13: "USE_INVISIBILITY",
                        14: "USE_DETACHMENT",
                        15: "USE_BUCKET",
                        16: "USE_POTION_CONTINUE",
                        17: "USE_CLEAN_SOCKET",
                        18: "USE_CHANGE_ATTRIBUTE",
                        19: "USE_ADD_ATTRIBUTE",
                        20: "USE_ADD_ACCESSORY_SOCKET",
                        21: "USE_PUT_INTO_ACCESSORY_SOCKET",
                        22: "USE_ADD_ATTRIBUTE2",
                        23: "USE_RECIPE",
                        24: "USE_CHANGE_ATTRIBUTE2",
                        25: "USE_BIND",
                        26: "USE_UNBIND",
                        27: "USE_TIME_CHARGE_PER",
                        28: "USE_TIME_CHARGE_FIX",
                        29: "USE_PUT_INTO_BELT_SOCKET",
                        30: "USE_PUT_INTO_RING_SOCKET",
                },
                4: {
                        0: "AUTOUSE_POTION",
                        1: "AUTOUSE_ABILITY_UP",
                        2: "AUTOUSE_BOMB",
                        3: "AUTOUSE_GOLD",
                        4: "AUTOUSE_MONEYBAG",
                        5: "AUTOUSE_TREASURE_BOX",
                },
                5: {
                        0: "MATERIAL_LEATHER",
                        1: "MATERIAL_BLOOD",
                        2: "MATERIAL_ROOT",
                        3: "MATERIAL_NEEDLE",
                        4: "MATERIAL_JEWEL",
                        5: "MATERIAL_DS_REFINE_NORMAL",
                        6: "MATERIAL_DS_REFINE_BLESSED",
                        7: "MATERIAL_DS_REFINE_HOLLY",
                },
                6: {
                        0: "SPECIAL_MAP",
                        1: "SPECIAL_KEY",
                        2: "SPECIAL_DOC",
                        3: "SPECIAL_SPIRIT",
                },
                7: {
                        0 : "TOOL_FISHING_ROD",
                },
                8: {
                        0: "LOTTERY_TICKET",
                        1: "LOTTERY_INSTANT",
                },
                10: {
                        0: "METIN_NORMAL",
                        1: "METIN_GOLD",
                },
                12: {
                        0: "FISH_ALIVE",
                        1: "FISH_DEAD",
                },
                14: {
                        0: "RESOURCE_FISHBONE",
                        1: "RESOURCE_WATERSTONEPIECE",
                        2: "RESOURCE_WATERSTONE",
                        3: "RESOURCE_BLOOD_PEARL",
                        4: "RESOURCE_BLUE_PEARL",
                        5: "RESOURCE_WHITE_PEARL",
                        6: "RESOURCE_BUCKET",
                        7: "RESOURCE_CRYSTAL",
                        8: "RESOURCE_GEM",
                        9: "RESOURCE_STONE",
                        10: "RESOURCE_METIN",
                        11: "RESOURCE_ORE",
                },
                16: {
                        0: "UNIQUE_NONE",
                        1: "UNIQUE_BOOK",
                        2: "UNIQUE_SPECIAL_RIDE",
                        3: "UNIQUE_3",
                        4: "UNIQUE_4",
                        5: "UNIQUE_5",
                        6: "UNIQUE_6",
                        7: "UNIQUE_7",
                        8: "UNIQUE_8",
                        9: "UNIQUE_9",
                        10: "USE_SPECIAL",
                },
                28: {
                        0: "COSTUME_BODY",
                        1: "COSTUME_HAIR",
                },
                29: {
                        0: "DS_SLOT1",
                        1: "DS_SLOT2",
                        2: "DS_SLOT3",
                        3: "DS_SLOT4",
                        4: "DS_SLOT5",
                        5: "DS_SLOT6",
                },
                31: {
                        0: "EXTRACT_DRAGON_SOUL",
                        1: "EXTRACT_DRAGON_HEART",
                },
        }
 
        wearflag = {
                1: "WEAR_BODY",
                2: "WEAR_HEAD",
                4: "WEAR_FOOTS",
                8: "WEAR_WRIST",
                16: "WEAR_WEAPON",
                32: "WEAR_NECK",
                64: "WEAR_EAR",
                128: "WEAR_SHIELD",
                256: "WEAR_UNIQUE",
                512: "WEAR_ARROW",
                1024: "WEAR_HAIR",
                2048: "WEAR_ABILITY",
        }
 
        limittype = {
                1: "LEVEL",
                2: "STR",
                3: "DEX",
                4: "INT",
                5: "CON",
                6: "PC_BANG",
                7: "REAL_TIME",
                8: "REAL_TIME_FIRST_USE",
                9: "TIMER_BASED_ON_WEAR",
        }
 
        bonus = {
                1: "APPLY_MAX_HP",
                2: "APPLY_MAX_SP",
                3: "APPLY_CON",
                4: "APPLY_INT",
                5: "APPLY_STR",
                6: "APPLY_DEX",
                7: "APPLY_ATT_SPEED",
                8: "APPLY_MOV_SPEED",
                9: "APPLY_CAST_SPEED",
                10: "APPLY_HP_REGEN",
                11: "APPLY_SP_REGEN",
                12: "APPLY_POISON_PCT",
                13: "APPLY_STUN_PCT",
                14: "APPLY_SLOW_PCT",
                15: "APPLY_CRITICAL_PCT",
                16: "APPLY_PENETRATE_PCT",
                17: "APPLY_ATTBONUS_HUMAN",
                18: "APPLY_ATTBONUS_ANIMAL",
                19: "APPLY_ATTBONUS_ORC",
                20: "APPLY_ATTBONUS_MILGYO",
                21: "APPLY_ATTBONUS_UNDEAD",
                22: "APPLY_ATTBONUS_DEVIL",
                23: "APPLY_STEAL_HP",
                24: "APPLY_STEAL_SP",
                25: "APPLY_MANA_BURN_PCT",
                26: "APPLY_DAMAGE_SP_RECOVER",
                27: "APPLY_BLOCK",
                28: "APPLY_DODGE",
                29: "APPLY_RESIST_SWORD",
                30: "APPLY_RESIST_TWOHAND",
                31: "APPLY_RESIST_DAGGER",
                32: "APPLY_RESIST_BELL",
                33: "APPLY_RESIST_FAN",
                34: "APPLY_RESIST_BOW",
                35: "APPLY_RESIST_FIRE",
                36: "APPLY_RESIST_ELEC",
                37: "APPLY_RESIST_MAGIC",
                38: "APPLY_RESIST_WIND",
                39: "APPLY_REFLECT_MELEE",
                40: "APPLY_REFLECT_CURSE",
                41: "APPLY_POISON_REDUCE",
                42: "APPLY_KILL_SP_RECOVER",
                43: "APPLY_EXP_DOUBLE_BONUS",
                44: "APPLY_GOLD_DOUBLE_BONUS",
                45: "APPLY_ITEM_DROP_BONUS",
                46: "APPLY_POTION_BONUS",
                47: "APPLY_KILL_HP_RECOVER",
                48: "APPLY_IMMUNE_STUN",
                49: "APPLY_IMMUNE_SLOW",
                50: "APPLY_IMMUNE_FALL",
                51: "APPLY_SKILL",
                52: "APPLY_BOW_DISTANCE",
                53: "APPLY_ATT_GRADE_BONUS",
                54: "APPLY_DEF_GRADE_BONUS",
                55: "APPLY_MAGIC_ATT_GRADE",
                56: "APPLY_MAGIC_DEF_GRADE",
                57: "APPLY_CURSE_PCT",
                58: "APPLY_MAX_STAMINA",
                59: "APPLY_ATTBONUS_WARRIOR",
                60: "APPLY_ATTBONUS_ASSASSIN",
                61: "APPLY_ATTBONUS_SURA",
                62: "APPLY_ATTBONUS_SHAMAN",
                63: "APPLY_ATTBONUS_MONSTER",
                64: "APPLY_MALL_ATTBONUS",
                65: "APPLY_MALL_DEFBONUS",
                66: "APPLY_MALL_EXPBONUS",
                67: "APPLY_MALL_ITEMBONUS",
                68: "APPLY_MALL_GOLDBONUS",
                69: "APPLY_MAX_HP_PCT",
                70: "APPLY_MAX_SP_PCT",
                71: "APPLY_SKILL_DAMAGE_BONUS",
                72: "APPLY_NORMAL_HIT_DAMAGE_BONUS",
                73: "APPLY_SKILL_DEFEND_BONUS",
                74: "APPLY_NORMAL_HIT_DEFEND_BONUS",
                75: "APPLY_PC_BANG_EXP_BONUS",
                76: "APPLY_PC_BANG_DROP_BONUS",
                77: "APPLY_EXTRACT_HP_PCT",
                78: "APPLY_RESIST_WARRIOR",
                79: "APPLY_RESIST_ASSASSIN",
                80: "APPLY_RESIST_SURA",
                81: "APPLY_RESIST_SHAMAN",
                82: "APPLY_ENERGY",
                83: "APPLY_DEF_GRADE",
                84: "APPLY_COSTUME_ATTR_BONUS",
                85: "APPLY_MAGIC_ATTBONUS_PER",
                86: "APPLY_MELEE_MAGIC_ATTBONUS_PER",
                87: "APPLY_RESIST_ICE",
                88: "APPLY_RESIST_EARTH",
                89: "APPLY_RESIST_DARK",
                90: "APPLY_ANTI_CRITICAL_PCT",
                91: "APPLY_ANTI_PENETRATE_PCT",
        }
 
        addon_type = {
                180,
                181,
                182,
                183,
                184,
                185,
                186,
                187,
                188,
                189,
                190,
                191,
                192,
                193,
                194,
                195,
                196,
                197,
                198,
                199,
                290,
                291,
                292,
                293,
                294,
                295,
                296,
                297,
                298,
                299,
                1130,
                1131,
                1132,
                1133,
                1134,
                1135,
                1136,
                1137,
                1138,
                1139,
                1170,
                1171,
                1172,
                1173,
                1174,
                1175,
                1176,
                1177,
                1178,
                1179,
                2150,
                2151,
                2152,
                2153,
                2154,
                2155,
                2156,
                2157,
                2158,
                2159,
                2170,
                2171,
                2172,
                2173,
                2174,
                2175,
                2176,
                2177,
                2178,
                2179,
                3160,
                3161,
                3162,
                3163,
                3164,
                3165,
                3166,
                3167,
                3168,
                3169,
                3210,
                3211,
                3212,
                3213,
                3214,
                3215,
                3216,
                3217,
                3218,
                3219,
                5110,
                5111,
                5112,
                5113,
                5114,
                5115,
                5116,
                5117,
                5118,
                5119,
                5120,
                5121,
                5122,
                5123,
                5124,
                5125,
                5126,
                5127,
                5128,
                5129,
                7160,
                7161,
                7162,
                7163,
                7164,
                7165,
                7166,
                7167,
                7168,
                7169,
                65159,
                350,
                351,
                352,
                353,
                354,
                355,
                356,
                357,
                358,
                359,
                360,
                361,
                362,
                363,
                364,
                365,
                366,
                367,
                368,
                369,
                1300,
                1301,
                1302,
                1303,
                1304,
                1305,
                1306,
                1307,
                1308,
                1309,
                2340,
                2341,
                2342,
                2343,
                2344,
                2345,
                2346,
                2347,
                2348,
                2349,
                3330,
                3331,
                3332,
                3333,
                3334,
                3335,
                3336,
                3337,
                3338,
                3339,
                5290,
                5291,
                5292,
                5293,
                5294,
                5295,
                5296,
                5297,
                5298,
                5299,
        }
 
        errors = ""
 
        def get_item_type(type, vnum):
                errors = ""
                global errors
                if type in item_type:
                        return item_type[type]
                else:
                        errors += "Strange type in item %s\r\n" % vnum
                        return item_type[0]
 
        def get_item_subtype(type, subtype, vnum):
                errors = ""
                global errors
                if type in item_subtype:
                        if subtype in item_subtype[type]:
                                return item_subtype[type][subtype]
                else:
                        errors += "Strange subtype in item %s\r\n" % vnum
                        return "NONE"
 
        def get_antiflag(antiflag, vnum):
                global errors
                str = ""
                if antiflag >= 131072:
                        antiflag -= 131072
                        if len(str) <= 0:
                                str = "ANTI_SAFEBOX"
                        else:
                                str = "ANTI_SAFEBOX | " + str
                if antiflag >= 65536:
                        antiflag -= 65536
                        if len(str) <= 0:
                                str = "ANTI_MYSHOP"
                        else:
                                str = "ANTI_MYSHOP | " + str
                if antiflag >= 32768:
                        antiflag -= 32768
                        if len(str) <= 0:
                                str = "ANTI_STACK"
                        else:
                                str = "ANTI_STACK | " + str
                if antiflag >= 16384:
                        antiflag -= 16384
                        if len(str) <= 0:
                                str = "ANTI_PKDROP"
                        else:
                                str = "ANTI_PKDROP | " + str
                if antiflag >= 8192:
                        antiflag -= 8192
                        if len(str) <= 0:
                                str = "ANTI_GIVE"
                        else:
                                str = "ANTI_GIVE | " + str
                if antiflag >= 4096:
                        antiflag -= 4096
                        if len(str) <= 0:
                                str = "ANTI_SAVE"
                        else:
                                str = "ANTI_SAVE | " + str
                if antiflag >= 2048:
                        antiflag -= 2048
                        if len(str) <= 0:
                                str = "ANTI_EMPIRE_C"
                        else:
                                str = "ANTI_EMPIRE_C | " + str
                if antiflag >= 1024:
                        antiflag -= 1024
                        if len(str) <= 0:
                                str = "ANTI_EMPIRE_B"
                        else:
                                str = "ANTI_EMPIRE_B | " + str
                if antiflag >= 512:
                        antiflag -= 512
                        if len(str) <= 0:
                                str = "ANTI_EMPIRE_A"
                        else:
                                str = "ANTI_EMPIRE_A | " + str
                if antiflag >= 256:
                        antiflag -= 256
                        if len(str) <= 0:
                                str = "ANTI_SELL"
                        else:
                                str = "ANTI_SELL | " + str
                if antiflag >= 64:
                        antiflag -= 64
                        if len(str) <= 0:
                                str = "ANTI_GET"
                        else:
                                str = "ANTI_GET | " + str
                if antiflag >= 32:
                        antiflag -= 32
                        if len(str) <= 0:
                                str = "ANTI_MUDANG"
                        else:
                                str = "ANTI_MUDANG | " + str
                if antiflag >= 16:
                        antiflag -= 16
                        if len(str) <= 0:
                                str = "ANTI_SURA"
                        else:
                                str = "ANTI_SURA | " + str
                if antiflag >= 8:
                        antiflag -= 8
                        if len(str) <= 0:
                                str = "ANTI_ASSASSIN"
                        else:
                                str = "ANTI_ASSASSIN | " + str
                if antiflag >= 4:
                        antiflag -= 4
                        if len(str) <= 0:
                                str = "ANTI_MUSA"
                        else:
                                str = "ANTI_MUSA | " + str
                if antiflag >= 2:
                        antiflag -= 2
                        if len(str) <= 0:
                                str = "ANTI_MALE"
                        else:
                                str = "ANTI_MALE | " + str
                if antiflag >= 1:
                        antiflag -= 1
                        if len(str) <= 0:
                                str = "ANTI_FEMALE"
                        else:
                                str = "ANTI_FEMALE | " + str
                if antiflag == 0 and len(str) > 0:
                        return "\"" + str + "\""
                else:
                        errors += "Strange antiflag in item %s\r\n" % vnum
                        return "\"NONE\""
               
        def get_flag(flag, vnum):
                global errors
                str = ""
                if flag >= 32768:
                        flag -= 32768
                        if len(str) <= 0:
                                str = "ITEM_APPLICABLE"
                        else:
                                str = "ITEM_APPLICABLE | " + str
                if flag >= 16384:
                        flag -= 16384
                        if len(str) <= 0:
                                str = "REFINEABLE"
                        else:
                                str = "REFINEABLE | " + str
                if flag >= 8192:
                        flag -= 8192
                        if len(str) <= 0:
                                str = "LOG"
                        else:
                                str = "LOG | " + str
                if flag >= 4096:
                        flag -= 4096
                        if len(str) <= 0:
                                str = "ITEM_QUEST"
                        else:
                                str = "ITEM_QUEST | " + str
                if flag >= 2048:
                        flag -= 2048
                        if len(str) <= 0:
                                str = "QUEST_GIVE"
                        else:
                                str = "QUEST_GIVE | " + str
                if flag >= 1024:
                        flag -= 1024
                        if len(str) <= 0:
                                str = "QUEST_USE_MULTIPLE"
                        else:
                                str = "QUEST_USE_MULTIPLE | " + str
                if flag >= 512:
                        flag -= 512
                        if len(str) <= 0:
                                str = "QUEST_USE"
                        else:
                                str = "QUEST_USE | " + str
                if flag >= 256:
                        flag -= 256
                        if len(str) <= 0:
                                str = "CONFIRM_WHEN_USE"
                        else:
                                str = "CONFIRM_WHEN_USE | " + str
                if flag >= 128:
                        flag -= 128
                        if len(str) <= 0:
                                str = "ITEM_IRREMOVABLE"
                        else:
                                str = "ITEM_IRREMOVABLE | " + str
                if flag >= 64:
                        flag -= 64
                        if len(str) <= 0:
                                str = "ITEM_MAKECOUNT"
                        else:
                                str = "ITEM_MAKECOUNT | " + str
                if flag >= 32:
                        flag -= 32
                        if len(str) <= 0:
                                str = "ITEM_UNIQUE"
                        else:
                                str = "ITEM_UNIQUE | " + str
                if flag >= 16:
                        flag -= 16
                        if len(str) <= 0:
                                str = "ITEM_SLOW_QUERY"
                        else:
                                str = "ITEM_SLOW_QUERY | " + str
                if flag >= 8:
                        flag -= 8
                        if len(str) <= 0:
                                str = "COUNT_PER_1GOLD"
                        else:
                                str = "COUNT_PER_1GOLD | " + str
                if flag >= 4:
                        flag -= 4
                        if len(str) <= 0:
                                str = "ITEM_STACKABLE"
                        else:
                                str = "ITEM_STACKABLE | " + str
                if flag >= 2:
                        flag -= 2
                        if len(str) <= 0:
                                str = "ITEM_SAVE"
                        else:
                                str = "ITEM_SAVE | " + str
                if flag >= 1:
                        flag -= 1
                        if len(str) <= 0:
                                str = "ITEM_TUNABLE"
                        else:
                                str = "ITEM_TUNABLE | " + str
                if flag == 0 and len(str) > 0:
                        return "\"" + str + "\""
                else:
                        errors += "Strange flag in item %s\r\n" % vnum
                        return "\"NONE\""
 
        def get_wearflag(wear, vnum):
                global errors
                if wear in wearflag:
                        return "\"" + wearflag[wear] + "\""
                else:
                        errors += "Strange wearflag in item %s\r\n" % vnum
                        return "\"NONE\""
                       
        def get_immuneflag(immune):
                        return "\"NONE\""
                       
        def get_limittype(limit):
                if limit in limittype:
                        return "\"" + limittype[limit] + "\""
                else:
                        return "\"LIMIT_NONE\""
                       
        def get_apply(apply):
                if apply in bonus:
                        return "\"" + bonus[apply] + "\""
                else:
                        return "\"APPLY_NONE\""
 
        def socket(sockett):
                if sockett == 127:
                        return 0
                else:
                        return sockett
 
 
        print "Connecting to database proto..."
        data = "player"
        db = MySQLdb.connect(host_mysql,user_mysql,passwd_mysql,data)
        cur = db.cursor()
        print "Connected."
        cur.execute("select * from item_proto")
        rows = cur.fetchall()
        out_file_itemproto = open("item_proto.txt", "w")
        out_file_itemnames = open("item_names.txt", "w")
        print "Converting item_proto..."
        for row in rows:
                item_proto_line = "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s" % (row[0], "\"" + row[1] + "\"", "\""  + get_item_type(row[3], row[0]) + "\"" , "\""  + get_item_subtype(row[3], row[4], row[0]) + "\"", row[6] , get_antiflag(row[7], row[0]), get_flag(row[8], row[0]), get_wearflag(row[9], row[0]), get_immuneflag(row[10]), row[11], row[12], row[13], row[14], row[16], get_limittype(row[17]), row[18], get_limittype(row[19]), row[20], get_apply(row[21]), row[22], get_apply(row[23]), row[24], get_apply(row[25]), row[26], row[27], row[28], row[29], row[30], row[31], row[32], row[39], row[40], row[41])
                item_names_line = "%s\t%s" % (row[0], row[2])
                out_file_itemproto.write(item_proto_line + "\r\n")
                out_file_itemnames.write(item_names_line + "\r\n")
        out_file_itemproto.close()
        print "Item provo converted!"
        """if len(errors) != 0:
                print "Errors during conversion:"
                print errors"""
 
print item_proto()
#print mob_proto()

vielleicht ist hier jemand so lieb und schaut sich das einmal an..
07/31/2016 11:07 Slava109#2
Ich empfehle dir denn dumper von blackout85 dieser hat die gleiche funktion wie dein Python script nur das der Dumper geht.
[Only registered and activated users can see links. Click Here To Register...]

Edit: er Konvitiert die nicht in eine Txt sondern gleich in eine Item_proto die du in deine locale einfügen kannst.
07/31/2016 18:07 uNet#3
Quote:
Originally Posted by Slava109 View Post
Ich empfehle dir denn dumper von blackout85 dieser hat die gleiche funktion wie dein Python script nur das der Dumper geht.
[Only registered and activated users can see links. Click Here To Register...]

Edit: er Konvitiert die nicht in eine Txt sondern gleich in eine Item_proto die du in deine locale einfügen kannst.

Funktioniert fantastisch vielen dank ^^