Advertisement
charparodar

Converter DB to TXT Metin2

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