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
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:
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..







