Guest User

Untitled

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