Guest User

SQL -> TXT

a guest
Apr 28th, 2014
3,057
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env python
  2. #-*- coding" utf-8 -*-
  3. #Modified by Deucalion
  4. import MySQLdb
  5. host_mysql = 'localhost'
  6. user_mysql = 'mt2'
  7. passwd_mysql = 'mt2!@#'
  8. def mob_proto():
  9.     rank = {
  10.         1: "S_PAWN",
  11.         2: "KNIGHT",
  12.         3: "S_KNIGHT",
  13.         4: "BOSS",
  14.         5: "KING",
  15.     }
  16.    
  17.     typeee = {
  18.         1: "NPC",
  19.         2: "STONE",
  20.         3: "WARP",
  21.         4: "DOOR",
  22.         5: "BUILDING",
  23.         7: "POLYMORPH_PC",
  24.         8: "HORSE",
  25.         9: "GOTO",
  26.     }
  27.    
  28.     battletype = {
  29.         2: "RANGE",
  30.         3: "MAGIC",
  31.         4: "SPECIAL",
  32.         5: "POWER",
  33.         6: "TANKER",
  34.     }
  35.    
  36.     def get_rank(level):
  37.         if level in rank:
  38.             return "\"" + rank[level] + "\""
  39.         else:
  40.             return "\"PAWN\""
  41.    
  42.     def get_type(typee):
  43.         if typee in typeee:
  44.             return "\"" + typeee[typee] + "\""
  45.         else:
  46.             return "\"MONSTER\""
  47.            
  48.     def get_battletype(battle):
  49.         if battle in battletype:
  50.             return "\"" + battletype[battle] + "\""
  51.         else:
  52.             return "\"MELEE\""
  53.            
  54.     def get_flag(flag):
  55.         if flag == "":
  56.             return flag
  57.         else:
  58.             return "\"" + flag + "\""
  59.            
  60.     def get_race(race):
  61.         if race == "":
  62.             return race
  63.         else:
  64.             return "\"" + race + "\""
  65.            
  66.     def get_immune(immune):
  67.         if immune == "":
  68.             return immune
  69.         else:
  70.             return "\"" + immune + "\""
  71.            
  72.     def get_folder(folder):
  73.         if folder == "":
  74.             return "\"wolf\""
  75.         else:
  76.             return "\"" + folder + "\""
  77.    
  78.     print "Connecting to database proto..."
  79.     data = "player"
  80.     db = MySQLdb.connect(host_mysql,user_mysql,passwd_mysql,data)
  81.     cur = db.cursor()
  82.     print "Connected."
  83.     cur.execute("select * from mob_proto")
  84.     rows = cur.fetchall()
  85.     out_file_mobproto = open("mob_proto.txt", "w")
  86.     out_file_mobnames = open("mob_names.txt", "w")
  87.     print "Converting mob_proto..."
  88.     for row in rows:
  89.         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])
  90.         mob_names_line = "%s\t%s" % (row[0], row[2])
  91.         out_file_mobproto.write(mob_proto_line + "\r\n")
  92.         out_file_mobnames.write(mob_names_line + "\r\n")
  93.     out_file_mobproto.close()
  94.     return "Mob proto converted!"
  95.    
  96. def item_proto():
  97.     item_type = {
  98.         0: "ITEM_NONE",
  99.         1: "ITEM_WEAPON",
  100.         2: "ITEM_ARMOR",
  101.         3: "ITEM_USE",
  102.         4: "ITEM_AUTOUSE",
  103.         5: "ITEM_MATERIAL",
  104.         6: "ITEM_SPECIAL",
  105.         7: "ITEM_TOOL",
  106.         8: "ITEM_LOTTERY",
  107.         9: "ITEM_ELK",
  108.         10: "ITEM_METIN",
  109.         11: "ITEM_CONTAINER",
  110.         12: "ITEM_FISH",
  111.         13: "ITEM_ROD",
  112.         14: "ITEM_RESOURCE",
  113.         15: "ITEM_CAMPFIRE",
  114.         16: "ITEM_UNIQUE",
  115.         17: "ITEM_SKILLBOOK",
  116.         18: "ITEM_QUEST",
  117.         19: "ITEM_POLYMORPH",
  118.         20: "ITEM_TREASURE_BOX",
  119.         21: "ITEM_TREASURE_KEY",
  120.         22: "ITEM_SKILLFORGET",
  121.         23: "ITEM_GIFTBOX",
  122.         24: "ITEM_PICK",
  123.         25: "ITEM_HAIR",
  124.         26: "ITEM_TOTEM",
  125.         27: "ITEM_BLEND",
  126.         28: "ITEM_COSTUME",
  127.         29: "ITEM_DS",
  128.         30: "ITEM_SPECIAL_DS",
  129.         31: "ITEM_EXTRACT",
  130.         32: "ITEM_SECONDARY_COIN",
  131.         33: "ITEM_RING",
  132.         34: "ITEM_BELT"
  133.     }
  134.  
  135.     item_subtype = {
  136.         1: {
  137.             0: "WEAPON_SWORD",
  138.             1: "WEAPON_DAGGER",
  139.             2: "WEAPON_BOW",
  140.             3: "WEAPON_TWO_HANDED",
  141.             4: "WEAPON_BELL",
  142.             5: "WEAPON_FAN",
  143.             6: "WEAPON_ARROW",
  144.             7: "WEAPON_MOUNT_SPEAR",
  145.             8: "WEAPON_NUM_TYPES",
  146.         },
  147.         2: {
  148.             0: "ARMOR_BODY",
  149.             1: "ARMOR_HEAD",
  150.             2: "ARMOR_SHIELD",
  151.             3: "ARMOR_WRIST",
  152.             4: "ARMOR_FOOTS",
  153.             5: "ARMOR_NECK",
  154.             6: "ARMOR_EAR",
  155.             7: "ARMOR_NUM_TYPES",
  156.         },
  157.         3 : {
  158.             0: "USE_POTION",
  159.             1: "USE_TALISMAN",
  160.             2: "USE_TUNING",
  161.             3: "USE_MOVE",
  162.             4: "USE_TREASURE_BOX",
  163.             5: "USE_MONEYBAG",
  164.             6: "USE_BAIT",
  165.             7: "USE_ABILITY_UP",
  166.             8: "USE_AFFECT",
  167.             9: "USE_CREATE_STONE",
  168.             10: "USE_SPECIAL",
  169.             11: "USE_POTION_NODELAY",
  170.             12: "USE_CLEAR",
  171.             13: "USE_INVISIBILITY",
  172.             14: "USE_DETACHMENT",
  173.             15: "USE_BUCKET",
  174.             16: "USE_POTION_CONTINUE",
  175.             17: "USE_CLEAN_SOCKET",
  176.             18: "USE_CHANGE_ATTRIBUTE",
  177.             19: "USE_ADD_ATTRIBUTE",
  178.             20: "USE_ADD_ACCESSORY_SOCKET",
  179.             21: "USE_PUT_INTO_ACCESSORY_SOCKET",
  180.             22: "USE_ADD_ATTRIBUTE2",
  181.             23: "USE_RECIPE",
  182.             24: "USE_CHANGE_ATTRIBUTE2",
  183.             25: "USE_BIND",
  184.             26: "USE_UNBIND",
  185.             27: "USE_TIME_CHARGE_PER",
  186.             28: "USE_TIME_CHARGE_FIX",
  187.             29: "USE_PUT_INTO_BELT_SOCKET",
  188.             30: "USE_PUT_INTO_RING_SOCKET",
  189.         },
  190.         4: {
  191.             0: "AUTOUSE_POTION",
  192.             1: "AUTOUSE_ABILITY_UP",
  193.             2: "AUTOUSE_BOMB",
  194.             3: "AUTOUSE_GOLD",
  195.             4: "AUTOUSE_MONEYBAG",
  196.             5: "AUTOUSE_TREASURE_BOX",
  197.         },
  198.         5: {
  199.             0: "MATERIAL_LEATHER",
  200.             1: "MATERIAL_BLOOD",
  201.             2: "MATERIAL_ROOT",
  202.             3: "MATERIAL_NEEDLE",
  203.             4: "MATERIAL_JEWEL",
  204.             5: "MATERIAL_DS_REFINE_NORMAL",
  205.             6: "MATERIAL_DS_REFINE_BLESSED",
  206.             7: "MATERIAL_DS_REFINE_HOLLY",
  207.         },
  208.         6: {
  209.             0: "SPECIAL_MAP",
  210.             1: "SPECIAL_KEY",
  211.             2: "SPECIAL_DOC",
  212.             3: "SPECIAL_SPIRIT",
  213.         },
  214.         7: {
  215.             0 : "TOOL_FISHING_ROD",
  216.         },
  217.         8: {
  218.             0: "LOTTERY_TICKET",
  219.             1: "LOTTERY_INSTANT",
  220.         },
  221.         10: {
  222.             0: "METIN_NORMAL",
  223.             1: "METIN_GOLD",
  224.         },
  225.         12: {
  226.             0: "FISH_ALIVE",
  227.             1: "FISH_DEAD",
  228.         },
  229.         14: {
  230.             0: "RESOURCE_FISHBONE",
  231.             1: "RESOURCE_WATERSTONEPIECE",
  232.             2: "RESOURCE_WATERSTONE",
  233.             3: "RESOURCE_BLOOD_PEARL",
  234.             4: "RESOURCE_BLUE_PEARL",
  235.             5: "RESOURCE_WHITE_PEARL",
  236.             6: "RESOURCE_BUCKET",
  237.             7: "RESOURCE_CRYSTAL",
  238.             8: "RESOURCE_GEM",
  239.             9: "RESOURCE_STONE",
  240.             10: "RESOURCE_METIN",
  241.             11: "RESOURCE_ORE",
  242.         },
  243.         16: {
  244.             0: "UNIQUE_NONE",
  245.             1: "UNIQUE_BOOK",
  246.             2: "UNIQUE_SPECIAL_RIDE",
  247.             3: "UNIQUE_3",
  248.             4: "UNIQUE_4",
  249.             5: "UNIQUE_5",
  250.             6: "UNIQUE_6",
  251.             7: "UNIQUE_7",
  252.             8: "UNIQUE_8",
  253.             9: "UNIQUE_9",
  254.             10: "USE_SPECIAL",
  255.         },
  256.         28: {
  257.             0: "COSTUME_BODY",
  258.             1: "COSTUME_HAIR",
  259.         },
  260.         29: {
  261.             0: "DS_SLOT1",
  262.             1: "DS_SLOT2",
  263.             2: "DS_SLOT3",
  264.             3: "DS_SLOT4",
  265.             4: "DS_SLOT5",
  266.             5: "DS_SLOT6",
  267.         },
  268.         31: {
  269.             0: "EXTRACT_DRAGON_SOUL",
  270.             1: "EXTRACT_DRAGON_HEART",
  271.         },
  272.     }
  273.  
  274.     wearflag = {
  275.         1: "WEAR_BODY",
  276.         2: "WEAR_HEAD",
  277.         4: "WEAR_FOOTS",
  278.         8: "WEAR_WRIST",
  279.         16: "WEAR_WEAPON",
  280.         32: "WEAR_NECK",
  281.         64: "WEAR_EAR",
  282.         128: "WEAR_SHIELD",
  283.         256: "WEAR_UNIQUE",
  284.         512: "WEAR_ARROW",
  285.         1024: "WEAR_HAIR",
  286.         2048: "WEAR_ABILITY",
  287.     }
  288.  
  289.     limittype = {
  290.         1: "LEVEL",
  291.         2: "STR",
  292.         3: "DEX",
  293.         4: "INT",
  294.         5: "CON",
  295.         6: "PC_BANG",
  296.         7: "REAL_TIME",
  297.         8: "REAL_TIME_FIRST_USE",
  298.         9: "TIMER_BASED_ON_WEAR",
  299.     }
  300.  
  301.     bonus = {
  302.         1: "APPLY_MAX_HP",
  303.         2: "APPLY_MAX_SP",
  304.         3: "APPLY_CON",
  305.         4: "APPLY_INT",
  306.         5: "APPLY_STR",
  307.         6: "APPLY_DEX",
  308.         7: "APPLY_ATT_SPEED",
  309.         8: "APPLY_MOV_SPEED",
  310.         9: "APPLY_CAST_SPEED",
  311.         10: "APPLY_HP_REGEN",
  312.         11: "APPLY_SP_REGEN",
  313.         12: "APPLY_POISON_PCT",
  314.         13: "APPLY_STUN_PCT",
  315.         14: "APPLY_SLOW_PCT",
  316.         15: "APPLY_CRITICAL_PCT",
  317.         16: "APPLY_PENETRATE_PCT",
  318.         17: "APPLY_ATTBONUS_HUMAN",
  319.         18: "APPLY_ATTBONUS_ANIMAL",
  320.         19: "APPLY_ATTBONUS_ORC",
  321.         20: "APPLY_ATTBONUS_MILGYO",
  322.         21: "APPLY_ATTBONUS_UNDEAD",
  323.         22: "APPLY_ATTBONUS_DEVIL",
  324.         23: "APPLY_STEAL_HP",
  325.         24: "APPLY_STEAL_SP",
  326.         25: "APPLY_MANA_BURN_PCT",
  327.         26: "APPLY_DAMAGE_SP_RECOVER",
  328.         27: "APPLY_BLOCK",
  329.         28: "APPLY_DODGE",
  330.         29: "APPLY_RESIST_SWORD",
  331.         30: "APPLY_RESIST_TWOHAND",
  332.         31: "APPLY_RESIST_DAGGER",
  333.         32: "APPLY_RESIST_BELL",
  334.         33: "APPLY_RESIST_FAN",
  335.         34: "APPLY_RESIST_BOW",
  336.         35: "APPLY_RESIST_FIRE",
  337.         36: "APPLY_RESIST_ELEC",
  338.         37: "APPLY_RESIST_MAGIC",
  339.         38: "APPLY_RESIST_WIND",
  340.         39: "APPLY_REFLECT_MELEE",
  341.         40: "APPLY_REFLECT_CURSE",
  342.         41: "APPLY_POISON_REDUCE",
  343.         42: "APPLY_KILL_SP_RECOVER",
  344.         43: "APPLY_EXP_DOUBLE_BONUS",
  345.         44: "APPLY_GOLD_DOUBLE_BONUS",
  346.         45: "APPLY_ITEM_DROP_BONUS",
  347.         46: "APPLY_POTION_BONUS",
  348.         47: "APPLY_KILL_HP_RECOVER",
  349.         48: "APPLY_IMMUNE_STUN",
  350.         49: "APPLY_IMMUNE_SLOW",
  351.         50: "APPLY_IMMUNE_FALL",
  352.         51: "APPLY_SKILL",
  353.         52: "APPLY_BOW_DISTANCE",
  354.         53: "APPLY_ATT_GRADE_BONUS",
  355.         54: "APPLY_DEF_GRADE_BONUS",
  356.         55: "APPLY_MAGIC_ATT_GRADE",
  357.         56: "APPLY_MAGIC_DEF_GRADE",
  358.         57: "APPLY_CURSE_PCT",
  359.         58: "APPLY_MAX_STAMINA",
  360.         59: "APPLY_ATTBONUS_WARRIOR",
  361.         60: "APPLY_ATTBONUS_ASSASSIN",
  362.         61: "APPLY_ATTBONUS_SURA",
  363.         62: "APPLY_ATTBONUS_SHAMAN",
  364.         63: "APPLY_ATTBONUS_MONSTER",
  365.         64: "APPLY_MALL_ATTBONUS",
  366.         65: "APPLY_MALL_DEFBONUS",
  367.         66: "APPLY_MALL_EXPBONUS",
  368.         67: "APPLY_MALL_ITEMBONUS",
  369.         68: "APPLY_MALL_GOLDBONUS",
  370.         69: "APPLY_MAX_HP_PCT",
  371.         70: "APPLY_MAX_SP_PCT",
  372.         71: "APPLY_SKILL_DAMAGE_BONUS",
  373.         72: "APPLY_NORMAL_HIT_DAMAGE_BONUS",
  374.         73: "APPLY_SKILL_DEFEND_BONUS",
  375.         74: "APPLY_NORMAL_HIT_DEFEND_BONUS",
  376.         75: "APPLY_PC_BANG_EXP_BONUS",
  377.         76: "APPLY_PC_BANG_DROP_BONUS",
  378.         77: "APPLY_EXTRACT_HP_PCT",
  379.         78: "APPLY_RESIST_WARRIOR",
  380.         79: "APPLY_RESIST_ASSASSIN",
  381.         80: "APPLY_RESIST_SURA",
  382.         81: "APPLY_RESIST_SHAMAN",
  383.         82: "APPLY_ENERGY",
  384.         83: "APPLY_DEF_GRADE",
  385.         84: "APPLY_COSTUME_ATTR_BONUS",
  386.         85: "APPLY_MAGIC_ATTBONUS_PER",
  387.         86: "APPLY_MELEE_MAGIC_ATTBONUS_PER",
  388.         87: "APPLY_RESIST_ICE",
  389.         88: "APPLY_RESIST_EARTH",
  390.         89: "APPLY_RESIST_DARK",
  391.         90: "APPLY_ANTI_CRITICAL_PCT",
  392.         91: "APPLY_ANTI_PENETRATE_PCT",
  393.     }
  394.  
  395.     addon_type = {
  396.         180,
  397.         181,
  398.         182,
  399.         183,
  400.         184,
  401.         185,
  402.         186,
  403.         187,
  404.         188,
  405.         189,
  406.         190,
  407.         191,
  408.         192,
  409.         193,
  410.         194,
  411.         195,
  412.         196,
  413.         197,
  414.         198,
  415.         199,
  416.         290,
  417.         291,
  418.         292,
  419.         293,
  420.         294,
  421.         295,
  422.         296,
  423.         297,
  424.         298,
  425.         299,
  426.         1130,
  427.         1131,
  428.         1132,
  429.         1133,
  430.         1134,
  431.         1135,
  432.         1136,
  433.         1137,
  434.         1138,
  435.         1139,
  436.         1170,
  437.         1171,
  438.         1172,
  439.         1173,
  440.         1174,
  441.         1175,
  442.         1176,
  443.         1177,
  444.         1178,
  445.         1179,
  446.         2150,
  447.         2151,
  448.         2152,
  449.         2153,
  450.         2154,
  451.         2155,
  452.         2156,
  453.         2157,
  454.         2158,
  455.         2159,
  456.         2170,
  457.         2171,
  458.         2172,
  459.         2173,
  460.         2174,
  461.         2175,
  462.         2176,
  463.         2177,
  464.         2178,
  465.         2179,
  466.         3160,
  467.         3161,
  468.         3162,
  469.         3163,
  470.         3164,
  471.         3165,
  472.         3166,
  473.         3167,
  474.         3168,
  475.         3169,
  476.         3210,
  477.         3211,
  478.         3212,
  479.         3213,
  480.         3214,
  481.         3215,
  482.         3216,
  483.         3217,
  484.         3218,
  485.         3219,
  486.         5110,
  487.         5111,
  488.         5112,
  489.         5113,
  490.         5114,
  491.         5115,
  492.         5116,
  493.         5117,
  494.         5118,
  495.         5119,
  496.         5120,
  497.         5121,
  498.         5122,
  499.         5123,
  500.         5124,
  501.         5125,
  502.         5126,
  503.         5127,
  504.         5128,
  505.         5129,
  506.         7160,
  507.         7161,
  508.         7162,
  509.         7163,
  510.         7164,
  511.         7165,
  512.         7166,
  513.         7167,
  514.         7168,
  515.         7169,
  516.         65159,
  517.         350,
  518.         351,
  519.         352,
  520.         353,
  521.         354,
  522.         355,
  523.         356,
  524.         357,
  525.         358,
  526.         359,
  527.         360,
  528.         361,
  529.         362,
  530.         363,
  531.         364,
  532.         365,
  533.         366,
  534.         367,
  535.         368,
  536.         369,
  537.         1300,
  538.         1301,
  539.         1302,
  540.         1303,
  541.         1304,
  542.         1305,
  543.         1306,
  544.         1307,
  545.         1308,
  546.         1309,
  547.         2340,
  548.         2341,
  549.         2342,
  550.         2343,
  551.         2344,
  552.         2345,
  553.         2346,
  554.         2347,
  555.         2348,
  556.         2349,
  557.         3330,
  558.         3331,
  559.         3332,
  560.         3333,
  561.         3334,
  562.         3335,
  563.         3336,
  564.         3337,
  565.         3338,
  566.         3339,
  567.         5290,
  568.         5291,
  569.         5292,
  570.         5293,
  571.         5294,
  572.         5295,
  573.         5296,
  574.         5297,
  575.         5298,
  576.         5299,
  577.     }
  578.  
  579.     errors = ""
  580.  
  581.     def get_item_type(type, vnum):
  582.         errors = ""
  583.         global errors
  584.         if type in item_type:
  585.             return item_type[type]
  586.         else:
  587.             errors += "Strange type in item %s\r\n" % vnum
  588.             return item_type[0]
  589.  
  590.     def get_item_subtype(type, subtype, vnum):
  591.         errors = ""
  592.         global errors
  593.         if type in item_subtype:
  594.             if subtype in item_subtype[type]:
  595.                 return item_subtype[type][subtype]
  596.         else:
  597.             errors += "Strange subtype in item %s\r\n" % vnum
  598.             return "NONE"
  599.  
  600.     def get_antiflag(antiflag, vnum):
  601.         global errors
  602.         str = ""
  603.         if antiflag >= 131072:
  604.             antiflag -= 131072
  605.             if len(str) <= 0:
  606.                 str = "ANTI_SAFEBOX"
  607.             else:
  608.                 str = "ANTI_SAFEBOX | " + str
  609.         if antiflag >= 65536:
  610.             antiflag -= 65536
  611.             if len(str) <= 0:
  612.                 str = "ANTI_MYSHOP"
  613.             else:
  614.                 str = "ANTI_MYSHOP | " + str
  615.         if antiflag >= 32768:
  616.             antiflag -= 32768
  617.             if len(str) <= 0:
  618.                 str = "ANTI_STACK"
  619.             else:
  620.                 str = "ANTI_STACK | " + str
  621.         if antiflag >= 16384:
  622.             antiflag -= 16384
  623.             if len(str) <= 0:
  624.                 str = "ANTI_PKDROP"
  625.             else:
  626.                 str = "ANTI_PKDROP | " + str
  627.         if antiflag >= 8192:
  628.             antiflag -= 8192
  629.             if len(str) <= 0:
  630.                 str = "ANTI_GIVE"
  631.             else:
  632.                 str = "ANTI_GIVE | " + str
  633.         if antiflag >= 4096:
  634.             antiflag -= 4096
  635.             if len(str) <= 0:
  636.                 str = "ANTI_SAVE"
  637.             else:
  638.                 str = "ANTI_SAVE | " + str
  639.         if antiflag >= 2048:
  640.             antiflag -= 2048
  641.             if len(str) <= 0:
  642.                 str = "ANTI_EMPIRE_C"
  643.             else:
  644.                 str = "ANTI_EMPIRE_C | " + str
  645.         if antiflag >= 1024:
  646.             antiflag -= 1024
  647.             if len(str) <= 0:
  648.                 str = "ANTI_EMPIRE_B"
  649.             else:
  650.                 str = "ANTI_EMPIRE_B | " + str
  651.         if antiflag >= 512:
  652.             antiflag -= 512
  653.             if len(str) <= 0:
  654.                 str = "ANTI_EMPIRE_A"
  655.             else:
  656.                 str = "ANTI_EMPIRE_A | " + str
  657.         if antiflag >= 256:
  658.             antiflag -= 256
  659.             if len(str) <= 0:
  660.                 str = "ANTI_SELL"
  661.             else:
  662.                 str = "ANTI_SELL | " + str
  663.         if antiflag >= 64:
  664.             antiflag -= 64
  665.             if len(str) <= 0:
  666.                 str = "ANTI_GET"
  667.             else:
  668.                 str = "ANTI_GET | " + str
  669.         if antiflag >= 32:
  670.             antiflag -= 32
  671.             if len(str) <= 0:
  672.                 str = "ANTI_MUDANG"
  673.             else:
  674.                 str = "ANTI_MUDANG | " + str
  675.         if antiflag >= 16:
  676.             antiflag -= 16
  677.             if len(str) <= 0:
  678.                 str = "ANTI_SURA"
  679.             else:
  680.                 str = "ANTI_SURA | " + str
  681.         if antiflag >= 8:
  682.             antiflag -= 8
  683.             if len(str) <= 0:
  684.                 str = "ANTI_ASSASSIN"
  685.             else:
  686.                 str = "ANTI_ASSASSIN | " + str
  687.         if antiflag >= 4:
  688.             antiflag -= 4
  689.             if len(str) <= 0:
  690.                 str = "ANTI_MUSA"
  691.             else:
  692.                 str = "ANTI_MUSA | " + str
  693.         if antiflag >= 2:
  694.             antiflag -= 2
  695.             if len(str) <= 0:
  696.                 str = "ANTI_MALE"
  697.             else:
  698.                 str = "ANTI_MALE | " + str
  699.         if antiflag >= 1:
  700.             antiflag -= 1
  701.             if len(str) <= 0:
  702.                 str = "ANTI_FEMALE"
  703.             else:
  704.                 str = "ANTI_FEMALE | " + str
  705.         if antiflag == 0 and len(str) > 0:
  706.             return "\"" + str + "\""
  707.         else:
  708.             errors += "Strange antiflag in item %s\r\n" % vnum
  709.             return "\"NONE\""
  710.        
  711.     def get_flag(flag, vnum):
  712.         global errors
  713.         str = ""
  714.         if flag >= 32768:
  715.             flag -= 32768
  716.             if len(str) <= 0:
  717.                 str = "ITEM_APPLICABLE"
  718.             else:
  719.                 str = "ITEM_APPLICABLE | " + str
  720.         if flag >= 16384:
  721.             flag -= 16384
  722.             if len(str) <= 0:
  723.                 str = "REFINEABLE"
  724.             else:
  725.                 str = "REFINEABLE | " + str
  726.         if flag >= 8192:
  727.             flag -= 8192
  728.             if len(str) <= 0:
  729.                 str = "LOG"
  730.             else:
  731.                 str = "LOG | " + str
  732.         if flag >= 4096:
  733.             flag -= 4096
  734.             if len(str) <= 0:
  735.                 str = "ITEM_QUEST"
  736.             else:
  737.                 str = "ITEM_QUEST | " + str
  738.         if flag >= 2048:
  739.             flag -= 2048
  740.             if len(str) <= 0:
  741.                 str = "QUEST_GIVE"
  742.             else:
  743.                 str = "QUEST_GIVE | " + str
  744.         if flag >= 1024:
  745.             flag -= 1024
  746.             if len(str) <= 0:
  747.                 str = "QUEST_USE_MULTIPLE"
  748.             else:
  749.                 str = "QUEST_USE_MULTIPLE | " + str
  750.         if flag >= 512:
  751.             flag -= 512
  752.             if len(str) <= 0:
  753.                 str = "QUEST_USE"
  754.             else:
  755.                 str = "QUEST_USE | " + str
  756.         if flag >= 256:
  757.             flag -= 256
  758.             if len(str) <= 0:
  759.                 str = "CONFIRM_WHEN_USE"
  760.             else:
  761.                 str = "CONFIRM_WHEN_USE | " + str
  762.         if flag >= 128:
  763.             flag -= 128
  764.             if len(str) <= 0:
  765.                 str = "ITEM_IRREMOVABLE"
  766.             else:
  767.                 str = "ITEM_IRREMOVABLE | " + str
  768.         if flag >= 64:
  769.             flag -= 64
  770.             if len(str) <= 0:
  771.                 str = "ITEM_MAKECOUNT"
  772.             else:
  773.                 str = "ITEM_MAKECOUNT | " + str
  774.         if flag >= 32:
  775.             flag -= 32
  776.             if len(str) <= 0:
  777.                 str = "ITEM_UNIQUE"
  778.             else:
  779.                 str = "ITEM_UNIQUE | " + str
  780.         if flag >= 16:
  781.             flag -= 16
  782.             if len(str) <= 0:
  783.                 str = "ITEM_SLOW_QUERY"
  784.             else:
  785.                 str = "ITEM_SLOW_QUERY | " + str
  786.         if flag >= 8:
  787.             flag -= 8
  788.             if len(str) <= 0:
  789.                 str = "COUNT_PER_1GOLD"
  790.             else:
  791.                 str = "COUNT_PER_1GOLD | " + str
  792.         if flag >= 4:
  793.             flag -= 4
  794.             if len(str) <= 0:
  795.                 str = "ITEM_STACKABLE"
  796.             else:
  797.                 str = "ITEM_STACKABLE | " + str
  798.         if flag >= 2:
  799.             flag -= 2
  800.             if len(str) <= 0:
  801.                 str = "ITEM_SAVE"
  802.             else:
  803.                 str = "ITEM_SAVE | " + str
  804.         if flag >= 1:
  805.             flag -= 1
  806.             if len(str) <= 0:
  807.                 str = "ITEM_TUNABLE"
  808.             else:
  809.                 str = "ITEM_TUNABLE | " + str
  810.         if flag == 0 and len(str) > 0:
  811.             return "\"" + str + "\""
  812.         else:
  813.             errors += "Strange flag in item %s\r\n" % vnum
  814.             return "\"NONE\""
  815.  
  816.     def get_wearflag(wear, vnum):
  817.         global errors
  818.         if wear in wearflag:
  819.             return "\"" + wearflag[wear] + "\""
  820.         else:
  821.             errors += "Strange wearflag in item %s\r\n" % vnum
  822.             return "\"NONE\""
  823.            
  824.     def get_immuneflag(immune):
  825.             return "\"NONE\""
  826.            
  827.     def get_limittype(limit):
  828.         if limit in limittype:
  829.             return "\"" + limittype[limit] + "\""
  830.         else:
  831.             return "\"LIMIT_NONE\""
  832.            
  833.     def get_apply(apply):
  834.         if apply in bonus:
  835.             return "\"" + bonus[apply] + "\""
  836.         else:
  837.             return "\"APPLY_NONE\""
  838.  
  839.     def socket(sockett):
  840.         if sockett == 127:
  841.             return 0
  842.         else:
  843.             return sockett
  844.  
  845.  
  846.     print "Connecting to database proto..."
  847.     data = "player"
  848.     db = MySQLdb.connect(host_mysql,user_mysql,passwd_mysql,data)
  849.     cur = db.cursor()
  850.     print "Connected."
  851.     cur.execute("select * from item_proto")
  852.     rows = cur.fetchall()
  853.     out_file_itemproto = open("item_proto.txt", "w")
  854.     out_file_itemnames = open("item_names.txt", "w")
  855.     print "Converting item_proto..."
  856.     for row in rows:
  857.         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])
  858.         item_names_line = "%s\t%s" % (row[0], row[2])
  859.         out_file_itemproto.write(item_proto_line + "\r\n")
  860.         out_file_itemnames.write(item_names_line + "\r\n")
  861.     out_file_itemproto.close()
  862.     print "Item provo converted!"
  863.     """if len(errors) != 0:
  864.         print "Errors during conversion:"
  865.         print errors"""
  866.  
  867. print item_proto()
  868. #print mob_proto()
RAW Paste Data