You last visited: Today at 23:03
Advertisement
Item_Proto Converting problem [Python]
Discussion on Item_Proto Converting problem [Python] within the Metin2 Private Server forum part of the Metin2 category.
07/31/2016, 09:07
#1
elite*gold: 0
Join Date: Jul 2016
Posts: 27
Received Thanks: 2
Item_Proto Converting problem [Python]
Hey Elitepvpers,
Ich benutze ein Python Script um meine Item_Proto in der DB zu txt datein zu konvertieren um sie nacher in meinen Clienten zu packen problem dabei ist eine kleine fehlermeldung die dafür sorgt das alle meine items aufeinmal werte von komplett anderen items auf meinem server haben. und zwar ist die fehlermeldung beim ausführen folgende
Putty Screen:
Script:
Code:
#!/usr/bin/env python
#-*- coding" utf-8 -*-
#Modified by Deucalion
import MySQLdb
host_mysql = 'localhost'
user_mysql = 'justhelix'
passwd_mysql = 'schlitzi'
def mob_proto():
rank = {
1: "S_PAWN",
2: "KNIGHT",
3: "S_KNIGHT",
4: "BOSS",
5: "KING",
}
typeee = {
1: "NPC",
2: "STONE",
3: "WARP",
4: "DOOR",
5: "BUILDING",
7: "POLYMORPH_PC",
8: "HORSE",
9: "GOTO",
}
battletype = {
2: "RANGE",
3: "MAGIC",
4: "SPECIAL",
5: "POWER",
6: "TANKER",
}
def get_rank(level):
if level in rank:
return "\"" + rank[level] + "\""
else:
return "\"PAWN\""
def get_type(typee):
if typee in typeee:
return "\"" + typeee[typee] + "\""
else:
return "\"MONSTER\""
def get_battletype(battle):
if battle in battletype:
return "\"" + battletype[battle] + "\""
else:
return "\"MELEE\""
def get_flag(flag):
if flag == "":
return flag
else:
return "\"" + flag + "\""
def get_race(race):
if race == "":
return race
else:
return "\"" + race + "\""
def get_immune(immune):
if immune == "":
return immune
else:
return "\"" + immune + "\""
def get_folder(folder):
if folder == "":
return "\"wolf\""
else:
return "\"" + folder + "\""
print "Connecting to database proto..."
data = "player"
db = MySQLdb.connect(host_mysql,user_mysql,passwd_mysql,data)
cur = db.cursor()
print "Connected."
cur.execute("select * from mob_proto")
rows = cur.fetchall()
out_file_mobproto = open("mob_proto.txt", "w")
out_file_mobnames = open("mob_names.txt", "w")
print "Converting mob_proto..."
for row in rows:
mob_proto_line = "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s" % (row[0], "\"" + row[1] + "\"", get_rank(row[3]), get_type(row[4]), get_battletype(row[5]), row[6], row[7], get_flag(row[8]), row[9], get_race(row[10]), get_immune(row[11]), row[12], get_folder(row[13]), row[14], row[15], row[16], row[17], row[18], row[19], row[20], row[21], row[22], row[23], row[24], row[25], row[26], row[27], row[28], row[29], row[30], row[31], row[32], row[33], row[34], row[35], row[36], row[37], row[38], row[39], row[40], row[41], row[42], row[43], row[44], row[45], row[46], row[47], row[48], row[49], row[50], row[51], row[52], row[53], row[54], row[55], row[56], row[57], row[58], row[59], row[60], row[61], row[62], row[63], row[64], row[65], row[66], row[67], row[68], row[69], row[70], row[71])
mob_names_line = "%s\t%s" % (row[0], row[2])
out_file_mobproto.write(mob_proto_line + "\r\n")
out_file_mobnames.write(mob_names_line + "\r\n")
out_file_mobproto.close()
return "Mob proto converted!"
def item_proto():
item_type = {
0: "ITEM_NONE",
1: "ITEM_WEAPON",
2: "ITEM_ARMOR",
3: "ITEM_USE",
4: "ITEM_AUTOUSE",
5: "ITEM_MATERIAL",
6: "ITEM_SPECIAL",
7: "ITEM_TOOL",
8: "ITEM_LOTTERY",
9: "ITEM_ELK",
10: "ITEM_METIN",
11: "ITEM_CONTAINER",
12: "ITEM_FISH",
13: "ITEM_ROD",
14: "ITEM_RESOURCE",
15: "ITEM_CAMPFIRE",
16: "ITEM_UNIQUE",
17: "ITEM_SKILLBOOK",
18: "ITEM_QUEST",
19: "ITEM_POLYMORPH",
20: "ITEM_TREASURE_BOX",
21: "ITEM_TREASURE_KEY",
22: "ITEM_SKILLFORGET",
23: "ITEM_GIFTBOX",
24: "ITEM_PICK",
25: "ITEM_HAIR",
26: "ITEM_TOTEM",
27: "ITEM_BLEND",
28: "ITEM_COSTUME",
29: "ITEM_DS",
30: "ITEM_SPECIAL_DS",
31: "ITEM_EXTRACT",
32: "ITEM_SECONDARY_COIN",
33: "ITEM_RING",
34: "ITEM_BELT"
}
item_subtype = {
1: {
0: "WEAPON_SWORD",
1: "WEAPON_DAGGER",
2: "WEAPON_BOW",
3: "WEAPON_TWO_HANDED",
4: "WEAPON_BELL",
5: "WEAPON_FAN",
6: "WEAPON_ARROW",
7: "WEAPON_MOUNT_SPEAR",
8: "WEAPON_NUM_TYPES",
},
2: {
0: "ARMOR_BODY",
1: "ARMOR_HEAD",
2: "ARMOR_SHIELD",
3: "ARMOR_WRIST",
4: "ARMOR_FOOTS",
5: "ARMOR_NECK",
6: "ARMOR_EAR",
7: "ARMOR_NUM_TYPES",
},
3 : {
0: "USE_POTION",
1: "USE_TALISMAN",
2: "USE_TUNING",
3: "USE_MOVE",
4: "USE_TREASURE_BOX",
5: "USE_MONEYBAG",
6: "USE_BAIT",
7: "USE_ABILITY_UP",
8: "USE_AFFECT",
9: "USE_CREATE_STONE",
10: "USE_SPECIAL",
11: "USE_POTION_NODELAY",
12: "USE_CLEAR",
13: "USE_INVISIBILITY",
14: "USE_DETACHMENT",
15: "USE_BUCKET",
16: "USE_POTION_CONTINUE",
17: "USE_CLEAN_SOCKET",
18: "USE_CHANGE_ATTRIBUTE",
19: "USE_ADD_ATTRIBUTE",
20: "USE_ADD_ACCESSORY_SOCKET",
21: "USE_PUT_INTO_ACCESSORY_SOCKET",
22: "USE_ADD_ATTRIBUTE2",
23: "USE_RECIPE",
24: "USE_CHANGE_ATTRIBUTE2",
25: "USE_BIND",
26: "USE_UNBIND",
27: "USE_TIME_CHARGE_PER",
28: "USE_TIME_CHARGE_FIX",
29: "USE_PUT_INTO_BELT_SOCKET",
30: "USE_PUT_INTO_RING_SOCKET",
},
4: {
0: "AUTOUSE_POTION",
1: "AUTOUSE_ABILITY_UP",
2: "AUTOUSE_BOMB",
3: "AUTOUSE_GOLD",
4: "AUTOUSE_MONEYBAG",
5: "AUTOUSE_TREASURE_BOX",
},
5: {
0: "MATERIAL_LEATHER",
1: "MATERIAL_BLOOD",
2: "MATERIAL_ROOT",
3: "MATERIAL_NEEDLE",
4: "MATERIAL_JEWEL",
5: "MATERIAL_DS_REFINE_NORMAL",
6: "MATERIAL_DS_REFINE_BLESSED",
7: "MATERIAL_DS_REFINE_HOLLY",
},
6: {
0: "SPECIAL_MAP",
1: "SPECIAL_KEY",
2: "SPECIAL_DOC",
3: "SPECIAL_SPIRIT",
},
7: {
0 : "TOOL_FISHING_ROD",
},
8: {
0: "LOTTERY_TICKET",
1: "LOTTERY_INSTANT",
},
10: {
0: "METIN_NORMAL",
1: "METIN_GOLD",
},
12: {
0: "FISH_ALIVE",
1: "FISH_DEAD",
},
14: {
0: "RESOURCE_FISHBONE",
1: "RESOURCE_WATERSTONEPIECE",
2: "RESOURCE_WATERSTONE",
3: "RESOURCE_BLOOD_PEARL",
4: "RESOURCE_BLUE_PEARL",
5: "RESOURCE_WHITE_PEARL",
6: "RESOURCE_BUCKET",
7: "RESOURCE_CRYSTAL",
8: "RESOURCE_GEM",
9: "RESOURCE_STONE",
10: "RESOURCE_METIN",
11: "RESOURCE_ORE",
},
16: {
0: "UNIQUE_NONE",
1: "UNIQUE_BOOK",
2: "UNIQUE_SPECIAL_RIDE",
3: "UNIQUE_3",
4: "UNIQUE_4",
5: "UNIQUE_5",
6: "UNIQUE_6",
7: "UNIQUE_7",
8: "UNIQUE_8",
9: "UNIQUE_9",
10: "USE_SPECIAL",
},
28: {
0: "COSTUME_BODY",
1: "COSTUME_HAIR",
},
29: {
0: "DS_SLOT1",
1: "DS_SLOT2",
2: "DS_SLOT3",
3: "DS_SLOT4",
4: "DS_SLOT5",
5: "DS_SLOT6",
},
31: {
0: "EXTRACT_DRAGON_SOUL",
1: "EXTRACT_DRAGON_HEART",
},
}
wearflag = {
1: "WEAR_BODY",
2: "WEAR_HEAD",
4: "WEAR_FOOTS",
8: "WEAR_WRIST",
16: "WEAR_WEAPON",
32: "WEAR_NECK",
64: "WEAR_EAR",
128: "WEAR_SHIELD",
256: "WEAR_UNIQUE",
512: "WEAR_ARROW",
1024: "WEAR_HAIR",
2048: "WEAR_ABILITY",
}
limittype = {
1: "LEVEL",
2: "STR",
3: "DEX",
4: "INT",
5: "CON",
6: "PC_BANG",
7: "REAL_TIME",
8: "REAL_TIME_FIRST_USE",
9: "TIMER_BASED_ON_WEAR",
}
bonus = {
1: "APPLY_MAX_HP",
2: "APPLY_MAX_SP",
3: "APPLY_CON",
4: "APPLY_INT",
5: "APPLY_STR",
6: "APPLY_DEX",
7: "APPLY_ATT_SPEED",
8: "APPLY_MOV_SPEED",
9: "APPLY_CAST_SPEED",
10: "APPLY_HP_REGEN",
11: "APPLY_SP_REGEN",
12: "APPLY_POISON_PCT",
13: "APPLY_STUN_PCT",
14: "APPLY_SLOW_PCT",
15: "APPLY_CRITICAL_PCT",
16: "APPLY_PENETRATE_PCT",
17: "APPLY_ATTBONUS_HUMAN",
18: "APPLY_ATTBONUS_ANIMAL",
19: "APPLY_ATTBONUS_ORC",
20: "APPLY_ATTBONUS_MILGYO",
21: "APPLY_ATTBONUS_UNDEAD",
22: "APPLY_ATTBONUS_DEVIL",
23: "APPLY_STEAL_HP",
24: "APPLY_STEAL_SP",
25: "APPLY_MANA_BURN_PCT",
26: "APPLY_DAMAGE_SP_RECOVER",
27: "APPLY_BLOCK",
28: "APPLY_DODGE",
29: "APPLY_RESIST_SWORD",
30: "APPLY_RESIST_TWOHAND",
31: "APPLY_RESIST_DAGGER",
32: "APPLY_RESIST_BELL",
33: "APPLY_RESIST_FAN",
34: "APPLY_RESIST_BOW",
35: "APPLY_RESIST_FIRE",
36: "APPLY_RESIST_ELEC",
37: "APPLY_RESIST_MAGIC",
38: "APPLY_RESIST_WIND",
39: "APPLY_REFLECT_MELEE",
40: "APPLY_REFLECT_CURSE",
41: "APPLY_POISON_REDUCE",
42: "APPLY_KILL_SP_RECOVER",
43: "APPLY_EXP_DOUBLE_BONUS",
44: "APPLY_GOLD_DOUBLE_BONUS",
45: "APPLY_ITEM_DROP_BONUS",
46: "APPLY_POTION_BONUS",
47: "APPLY_KILL_HP_RECOVER",
48: "APPLY_IMMUNE_STUN",
49: "APPLY_IMMUNE_SLOW",
50: "APPLY_IMMUNE_FALL",
51: "APPLY_SKILL",
52: "APPLY_BOW_DISTANCE",
53: "APPLY_ATT_GRADE_BONUS",
54: "APPLY_DEF_GRADE_BONUS",
55: "APPLY_MAGIC_ATT_GRADE",
56: "APPLY_MAGIC_DEF_GRADE",
57: "APPLY_CURSE_PCT",
58: "APPLY_MAX_STAMINA",
59: "APPLY_ATTBONUS_WARRIOR",
60: "APPLY_ATTBONUS_ASSASSIN",
61: "APPLY_ATTBONUS_SURA",
62: "APPLY_ATTBONUS_SHAMAN",
63: "APPLY_ATTBONUS_MONSTER",
64: "APPLY_MALL_ATTBONUS",
65: "APPLY_MALL_DEFBONUS",
66: "APPLY_MALL_EXPBONUS",
67: "APPLY_MALL_ITEMBONUS",
68: "APPLY_MALL_GOLDBONUS",
69: "APPLY_MAX_HP_PCT",
70: "APPLY_MAX_SP_PCT",
71: "APPLY_SKILL_DAMAGE_BONUS",
72: "APPLY_NORMAL_HIT_DAMAGE_BONUS",
73: "APPLY_SKILL_DEFEND_BONUS",
74: "APPLY_NORMAL_HIT_DEFEND_BONUS",
75: "APPLY_PC_BANG_EXP_BONUS",
76: "APPLY_PC_BANG_DROP_BONUS",
77: "APPLY_EXTRACT_HP_PCT",
78: "APPLY_RESIST_WARRIOR",
79: "APPLY_RESIST_ASSASSIN",
80: "APPLY_RESIST_SURA",
81: "APPLY_RESIST_SHAMAN",
82: "APPLY_ENERGY",
83: "APPLY_DEF_GRADE",
84: "APPLY_COSTUME_ATTR_BONUS",
85: "APPLY_MAGIC_ATTBONUS_PER",
86: "APPLY_MELEE_MAGIC_ATTBONUS_PER",
87: "APPLY_RESIST_ICE",
88: "APPLY_RESIST_EARTH",
89: "APPLY_RESIST_DARK",
90: "APPLY_ANTI_CRITICAL_PCT",
91: "APPLY_ANTI_PENETRATE_PCT",
}
addon_type = {
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
1130,
1131,
1132,
1133,
1134,
1135,
1136,
1137,
1138,
1139,
1170,
1171,
1172,
1173,
1174,
1175,
1176,
1177,
1178,
1179,
2150,
2151,
2152,
2153,
2154,
2155,
2156,
2157,
2158,
2159,
2170,
2171,
2172,
2173,
2174,
2175,
2176,
2177,
2178,
2179,
3160,
3161,
3162,
3163,
3164,
3165,
3166,
3167,
3168,
3169,
3210,
3211,
3212,
3213,
3214,
3215,
3216,
3217,
3218,
3219,
5110,
5111,
5112,
5113,
5114,
5115,
5116,
5117,
5118,
5119,
5120,
5121,
5122,
5123,
5124,
5125,
5126,
5127,
5128,
5129,
7160,
7161,
7162,
7163,
7164,
7165,
7166,
7167,
7168,
7169,
65159,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
1300,
1301,
1302,
1303,
1304,
1305,
1306,
1307,
1308,
1309,
2340,
2341,
2342,
2343,
2344,
2345,
2346,
2347,
2348,
2349,
3330,
3331,
3332,
3333,
3334,
3335,
3336,
3337,
3338,
3339,
5290,
5291,
5292,
5293,
5294,
5295,
5296,
5297,
5298,
5299,
}
errors = ""
def get_item_type(type, vnum):
errors = ""
global errors
if type in item_type:
return item_type[type]
else:
errors += "Strange type in item %s\r\n" % vnum
return item_type[0]
def get_item_subtype(type, subtype, vnum):
errors = ""
global errors
if type in item_subtype:
if subtype in item_subtype[type]:
return item_subtype[type][subtype]
else:
errors += "Strange subtype in item %s\r\n" % vnum
return "NONE"
def get_antiflag(antiflag, vnum):
global errors
str = ""
if antiflag >= 131072:
antiflag -= 131072
if len(str) <= 0:
str = "ANTI_SAFEBOX"
else:
str = "ANTI_SAFEBOX | " + str
if antiflag >= 65536:
antiflag -= 65536
if len(str) <= 0:
str = "ANTI_MYSHOP"
else:
str = "ANTI_MYSHOP | " + str
if antiflag >= 32768:
antiflag -= 32768
if len(str) <= 0:
str = "ANTI_STACK"
else:
str = "ANTI_STACK | " + str
if antiflag >= 16384:
antiflag -= 16384
if len(str) <= 0:
str = "ANTI_PKDROP"
else:
str = "ANTI_PKDROP | " + str
if antiflag >= 8192:
antiflag -= 8192
if len(str) <= 0:
str = "ANTI_GIVE"
else:
str = "ANTI_GIVE | " + str
if antiflag >= 4096:
antiflag -= 4096
if len(str) <= 0:
str = "ANTI_SAVE"
else:
str = "ANTI_SAVE | " + str
if antiflag >= 2048:
antiflag -= 2048
if len(str) <= 0:
str = "ANTI_EMPIRE_C"
else:
str = "ANTI_EMPIRE_C | " + str
if antiflag >= 1024:
antiflag -= 1024
if len(str) <= 0:
str = "ANTI_EMPIRE_B"
else:
str = "ANTI_EMPIRE_B | " + str
if antiflag >= 512:
antiflag -= 512
if len(str) <= 0:
str = "ANTI_EMPIRE_A"
else:
str = "ANTI_EMPIRE_A | " + str
if antiflag >= 256:
antiflag -= 256
if len(str) <= 0:
str = "ANTI_SELL"
else:
str = "ANTI_SELL | " + str
if antiflag >= 64:
antiflag -= 64
if len(str) <= 0:
str = "ANTI_GET"
else:
str = "ANTI_GET | " + str
if antiflag >= 32:
antiflag -= 32
if len(str) <= 0:
str = "ANTI_MUDANG"
else:
str = "ANTI_MUDANG | " + str
if antiflag >= 16:
antiflag -= 16
if len(str) <= 0:
str = "ANTI_SURA"
else:
str = "ANTI_SURA | " + str
if antiflag >= 8:
antiflag -= 8
if len(str) <= 0:
str = "ANTI_ASSASSIN"
else:
str = "ANTI_ASSASSIN | " + str
if antiflag >= 4:
antiflag -= 4
if len(str) <= 0:
str = "ANTI_MUSA"
else:
str = "ANTI_MUSA | " + str
if antiflag >= 2:
antiflag -= 2
if len(str) <= 0:
str = "ANTI_MALE"
else:
str = "ANTI_MALE | " + str
if antiflag >= 1:
antiflag -= 1
if len(str) <= 0:
str = "ANTI_FEMALE"
else:
str = "ANTI_FEMALE | " + str
if antiflag == 0 and len(str) > 0:
return "\"" + str + "\""
else:
errors += "Strange antiflag in item %s\r\n" % vnum
return "\"NONE\""
def get_flag(flag, vnum):
global errors
str = ""
if flag >= 32768:
flag -= 32768
if len(str) <= 0:
str = "ITEM_APPLICABLE"
else:
str = "ITEM_APPLICABLE | " + str
if flag >= 16384:
flag -= 16384
if len(str) <= 0:
str = "REFINEABLE"
else:
str = "REFINEABLE | " + str
if flag >= 8192:
flag -= 8192
if len(str) <= 0:
str = "LOG"
else:
str = "LOG | " + str
if flag >= 4096:
flag -= 4096
if len(str) <= 0:
str = "ITEM_QUEST"
else:
str = "ITEM_QUEST | " + str
if flag >= 2048:
flag -= 2048
if len(str) <= 0:
str = "QUEST_GIVE"
else:
str = "QUEST_GIVE | " + str
if flag >= 1024:
flag -= 1024
if len(str) <= 0:
str = "QUEST_USE_MULTIPLE"
else:
str = "QUEST_USE_MULTIPLE | " + str
if flag >= 512:
flag -= 512
if len(str) <= 0:
str = "QUEST_USE"
else:
str = "QUEST_USE | " + str
if flag >= 256:
flag -= 256
if len(str) <= 0:
str = "CONFIRM_WHEN_USE"
else:
str = "CONFIRM_WHEN_USE | " + str
if flag >= 128:
flag -= 128
if len(str) <= 0:
str = "ITEM_IRREMOVABLE"
else:
str = "ITEM_IRREMOVABLE | " + str
if flag >= 64:
flag -= 64
if len(str) <= 0:
str = "ITEM_MAKECOUNT"
else:
str = "ITEM_MAKECOUNT | " + str
if flag >= 32:
flag -= 32
if len(str) <= 0:
str = "ITEM_UNIQUE"
else:
str = "ITEM_UNIQUE | " + str
if flag >= 16:
flag -= 16
if len(str) <= 0:
str = "ITEM_SLOW_QUERY"
else:
str = "ITEM_SLOW_QUERY | " + str
if flag >= 8:
flag -= 8
if len(str) <= 0:
str = "COUNT_PER_1GOLD"
else:
str = "COUNT_PER_1GOLD | " + str
if flag >= 4:
flag -= 4
if len(str) <= 0:
str = "ITEM_STACKABLE"
else:
str = "ITEM_STACKABLE | " + str
if flag >= 2:
flag -= 2
if len(str) <= 0:
str = "ITEM_SAVE"
else:
str = "ITEM_SAVE | " + str
if flag >= 1:
flag -= 1
if len(str) <= 0:
str = "ITEM_TUNABLE"
else:
str = "ITEM_TUNABLE | " + str
if flag == 0 and len(str) > 0:
return "\"" + str + "\""
else:
errors += "Strange flag in item %s\r\n" % vnum
return "\"NONE\""
def get_wearflag(wear, vnum):
global errors
if wear in wearflag:
return "\"" + wearflag[wear] + "\""
else:
errors += "Strange wearflag in item %s\r\n" % vnum
return "\"NONE\""
def get_immuneflag(immune):
return "\"NONE\""
def get_limittype(limit):
if limit in limittype:
return "\"" + limittype[limit] + "\""
else:
return "\"LIMIT_NONE\""
def get_apply(apply):
if apply in bonus:
return "\"" + bonus[apply] + "\""
else:
return "\"APPLY_NONE\""
def socket(sockett):
if sockett == 127:
return 0
else:
return sockett
print "Connecting to database proto..."
data = "player"
db = MySQLdb.connect(host_mysql,user_mysql,passwd_mysql,data)
cur = db.cursor()
print "Connected."
cur.execute("select * from item_proto")
rows = cur.fetchall()
out_file_itemproto = open("item_proto.txt", "w")
out_file_itemnames = open("item_names.txt", "w")
print "Converting item_proto..."
for row in rows:
item_proto_line = "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s" % (row[0], "\"" + row[1] + "\"", "\"" + get_item_type(row[3], row[0]) + "\"" , "\"" + get_item_subtype(row[3], row[4], row[0]) + "\"", row[6] , get_antiflag(row[7], row[0]), get_flag(row[8], row[0]), get_wearflag(row[9], row[0]), get_immuneflag(row[10]), row[11], row[12], row[13], row[14], row[16], get_limittype(row[17]), row[18], get_limittype(row[19]), row[20], get_apply(row[21]), row[22], get_apply(row[23]), row[24], get_apply(row[25]), row[26], row[27], row[28], row[29], row[30], row[31], row[32], row[39], row[40], row[41])
item_names_line = "%s\t%s" % (row[0], row[2])
out_file_itemproto.write(item_proto_line + "\r\n")
out_file_itemnames.write(item_names_line + "\r\n")
out_file_itemproto.close()
print "Item provo converted!"
"""if len(errors) != 0:
print "Errors during conversion:"
print errors"""
print item_proto()
#print mob_proto()
vielleicht ist hier jemand so lieb und schaut sich das einmal an..
07/31/2016, 11:07
#2
elite*gold: 0
Join Date: Sep 2014
Posts: 34
Received Thanks: 19
Ich empfehle dir denn dumper von blackout85 dieser hat die gleiche funktion wie dein Python script nur das der Dumper geht.
Edit: er Konvitiert die nicht in eine Txt sondern gleich in eine Item_proto die du in deine locale einfügen kannst.
07/31/2016, 18:07
#3
elite*gold: 0
Join Date: Jul 2016
Posts: 27
Received Thanks: 2
Quote:
Originally Posted by
Slava109
Ich empfehle dir denn dumper von blackout85 dieser hat die gleiche funktion wie dein Python script nur das der Dumper geht.
Edit: er Konvitiert die nicht in eine Txt sondern gleich in eine Item_proto die du in deine locale einfügen kannst.
Funktioniert fantastisch vielen dank ^^
Similar Threads
Problem converting csv to sdata
03/06/2016 - Shaiya PServer Development - 3 Replies
I been using zero signal's python scripts, I want to merge my current files with ep6 sdata. I can convert the sdata to csv just fine without any problems after I convert the ep6 item.sdata to ep5 with shstudio. Problem is it wont let me convert it back to sdata, I get this error.
http://i.imgur.com/y6IoNz5.jpg
anyone have a solution for this? i rather not type every item in 1 at a time in shstudio.
[Problem]Item_proto entpacken (Bad Item_proto)
03/21/2013 - Metin2 Private Server - 2 Replies
Hey Leute,
Ich habe ein Problem unzwar wenn ich die Item_proto aus der locale entpacken möchte bekomme ich immer einen Error, dieser sieht dann so aus:
http://img28.imageshack.us/img28/4523/errorac.png
Ich benutze die Item_proto aus dem Marco_A Client v2 (Oder wie er noch gleich hieß)
Und den Easy File Extractor von Eddy
Bin für jede Hilfe dankbar!
Item_proto Problem
04/29/2012 - Metin2 Private Server - 2 Replies
Morgen ,
Ich hab gestern meine Item_Proto.xml von Marco_A Clienten v2
mit einen SQL-Converter bearbeitet. Wie kann ich die neue proto
nun in mein Navicat einfügen ? Also was mach ich mit der alten Item_proto?
Einfach die alte proto komplett rauslöschen ?
ConquerServer_v2 Problem with converting to MySQL
01/10/2012 - CO2 Private Server - 3 Replies
//edit Different question
Will using MySQL done in the way below (randomly starting new readers in the same void) be bad?
MySqlCommand command3 = new MySqlCommand(MySqlCommandType.SELECT);
command3.Select("cq_generator");
MySqlReader reader3 = new MySqlReader(command3);
num = 0;
uint SpawnID = 0;
List<uint> UsedMaps = new List<uint>();
[Help]Problem with logging in after converting into ini.
01/19/2009 - CO2 Private Server - 5 Replies
Hi guys, Emme helped me halfway through with converting LOTF into ini and I finished the rest myself. When I logged in, I made my character and then when I re-logged in, my client closed. Here's the error on the console:
http://i42.tinypic.com/4g5emv.jpg
Emme or anyone out there please help me! :(
#Edit
FIXED IT
All times are GMT +2. The time now is 23:04 .