Jump to content

Item_Proto - SQL to TXT Convert Problem


Recommended Posts

SQL TO TXT PROBLEM

 

Hello everyone, i have some trouble witch proto sql to txt converter.Mob_proto convert succesfuly and has no problem but item_proto one not working i'm look almost all topics in all forums and try too much things but after 4 days i give up.Pls give me some help.

 

PROBLEM ;

 

TypeError: cannot concatenate 'str' and 'long' objects

 

Convert script ;

 

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: "REAL_TIME",
		7: "REAL_TIME_FIRST_USE",
		8: "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):
		global errors
		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):
		global errors
		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 "item_proto icin databaseye baglaniliyor."
	data = "player"
	db = MySQLdb.connect(host_mysql,user_mysql,passwd_mysql,data)
	cur = db.cursor()
	print "baglanti basarili."
	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 "item_proto donusturuluyor."
	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_proto donusturuldu."
	"""if len(errors) != 0:
		print "Errors during conversion:"
		print errors"""

print item_proto()

 

My ProtoReader.cpp

 

#include "stdafx.h"

#include <math.h>
#include "ProtoReader.h"

#include "CsvReader.h"

#include <sstream>

using namespace std;

inline string trim_left(const string& str)
{
    string::size_type n = str.find_first_not_of(" \t\v\n\r");
    return n == string::npos ? str : str.substr(n, str.length());
}

inline string trim_right(const string& str)
{
    string::size_type n = str.find_last_not_of(" \t\v\n\r");
    return n == string::npos ? str : str.substr(0, n + 1);
}

string trim(const string& str){return trim_left(trim_right(str));}

static string* StringSplit(string strOrigin, string strTok)
{
    int     cutAt;                            //ÀÚ¸£´ÂÀ§Ä¡
    int     index     = 0;                    //¹®ÀÚ¿­À妽º
    string* strResult = new string[30];		  //°á°úreturn ÇÒº¯¼ö

    //strTokÀ»Ã£À»¶§±îÁö¹İº¹
    while (unsigned(cutAt = strOrigin.find_first_of(strTok)) != strOrigin.npos) //Game-DB SRC Warning Fix 22
    {
       if (cutAt > 0)  //ÀÚ¸£´ÂÀ§Ä¡°¡0º¸´ÙÅ©¸é(¼º°ø½Ã)
       {
            strResult[index++] = strOrigin.substr(0, cutAt);  //°á°ú¹è¿­¿¡Ãß°¡
       }
       strOrigin = strOrigin.substr(cutAt+1);  //¿øº»ÀºÀÚ¸¥ºÎºĞÁ¦¿ÜÇѳª¸ÓÁö
    }

    if(strOrigin.length() > 0)  //¿øº»À̾ÆÁ÷³²¾ÒÀ¸¸é
    {
        strResult[index++] = strOrigin.substr(0, cutAt);  //³ª¸ÓÁö¸¦°á°ú¹è¿­¿¡Ãß°¡
    }

	for( int i=0;i<index;i++)
	{
		strResult[i] = trim(strResult[i]);
	}

    return strResult;  //°á°úreturn
}



int get_Item_Type_Value(string inputString)
{
	string arType[] = {"ITEM_NONE", "ITEM_WEAPON",
		"ITEM_ARMOR", "ITEM_USE", 
		"ITEM_AUTOUSE", "ITEM_MATERIAL",
		"ITEM_SPECIAL", "ITEM_TOOL", 
		"ITEM_LOTTERY", "ITEM_ELK",					//10°³

		"ITEM_METIN", "ITEM_CONTAINER", 
		"ITEM_FISH", "ITEM_ROD", 
		"ITEM_RESOURCE", "ITEM_CAMPFIRE",
		"ITEM_UNIQUE", "ITEM_SKILLBOOK", 
		"ITEM_QUEST", "ITEM_POLYMORPH",				//20°³

		"ITEM_TREASURE_BOX", "ITEM_TREASURE_KEY",
		"ITEM_SKILLFORGET", "ITEM_GIFTBOX", 
		"ITEM_PICK", "ITEM_HAIR", 
		"ITEM_TOTEM", "ITEM_BLEND", 
		"ITEM_COSTUME", "ITEM_DS",					//30°³
	
		"ITEM_SPECIAL_DS",	"ITEM_EXTRACT",
		"ITEM_SECONDARY_COIN",						//33°³

		"ITEM_RING",
		"ITEM_BELT",								//35°³ (EItemTypes °ªÀ¸·Î Ä¡¸é 34)
	};

	
	int retInt = -1;
	//cout << "Type : " << typeStr << " -> ";
	for (unsigned int j=0;j<sizeof(arType)/sizeof(arType[0]);j++) { //Game-DB SRC Warning Fix 23
		string tempString = arType[j];
		if	(inputString.find(tempString)!=string::npos && tempString.find(inputString)!=string::npos) {
			//cout << j << " ";
			retInt =  j;
			break;
		}
	}
	//cout << endl;

	return retInt;

}

int get_Item_SubType_Value(unsigned int type_value, string inputString) //Game-DB SRC Warning Fix 44
{
	static string arSub1[] = { "WEAPON_SWORD", "WEAPON_DAGGER", "WEAPON_BOW", "WEAPON_TWO_HANDED",
				"WEAPON_BELL", "WEAPON_FAN", "WEAPON_ARROW", "WEAPON_MOUNT_SPEAR"};
	static string arSub2[] = { "ARMOR_BODY", "ARMOR_HEAD", "ARMOR_SHIELD", "ARMOR_WRIST", "ARMOR_FOOTS",
				"ARMOR_NECK", "ARMOR_EAR", "ARMOR_NUM_TYPES"};
	static string arSub3[] = { "USE_POTION", "USE_TALISMAN", "USE_TUNING", "USE_MOVE", "USE_TREASURE_BOX", "USE_MONEYBAG", "USE_BAIT",
				"USE_ABILITY_UP", "USE_AFFECT", "USE_CREATE_STONE", "USE_SPECIAL", "USE_POTION_NODELAY", "USE_CLEAR",
				"USE_INVISIBILITY", "USE_DETACHMENT", "USE_BUCKET", "USE_POTION_CONTINUE", "USE_CLEAN_SOCKET",
				"USE_CHANGE_ATTRIBUTE", "USE_ADD_ATTRIBUTE", "USE_ADD_ACCESSORY_SOCKET", "USE_PUT_INTO_ACCESSORY_SOCKET",
				"USE_ADD_ATTRIBUTE2", "USE_RECIPE", "USE_CHANGE_ATTRIBUTE2", "USE_BIND", "USE_UNBIND", "USE_TIME_CHARGE_PER", "USE_TIME_CHARGE_FIX", "USE_PUT_INTO_BELT_SOCKET", "USE_PUT_INTO_RING_SOCKET"};
	static string arSub4[] = { "AUTOUSE_POTION", "AUTOUSE_ABILITY_UP", "AUTOUSE_BOMB", "AUTOUSE_GOLD", "AUTOUSE_MONEYBAG", "AUTOUSE_TREASURE_BOX"};
	static string arSub5[] = { "MATERIAL_LEATHER", "MATERIAL_BLOOD", "MATERIAL_ROOT", "MATERIAL_NEEDLE", "MATERIAL_JEWEL", 
		"MATERIAL_DS_REFINE_NORMAL", "MATERIAL_DS_REFINE_BLESSED", "MATERIAL_DS_REFINE_HOLLY"};
	static string arSub6[] = { "SPECIAL_MAP", "SPECIAL_KEY", "SPECIAL_DOC", "SPECIAL_SPIRIT"};
	static string arSub7[] = { "TOOL_FISHING_ROD" };
	static string arSub8[] = { "LOTTERY_TICKET", "LOTTERY_INSTANT" };
	static string arSub10[] = { "METIN_NORMAL", "METIN_GOLD" };
	static string arSub12[] = { "FISH_ALIVE", "FISH_DEAD"};
	static string arSub14[] = { "RESOURCE_FISHBONE", "RESOURCE_WATERSTONEPIECE", "RESOURCE_WATERSTONE", "RESOURCE_BLOOD_PEARL",
						"RESOURCE_BLUE_PEARL", "RESOURCE_WHITE_PEARL", "RESOURCE_BUCKET", "RESOURCE_CRYSTAL", "RESOURCE_GEM",
						"RESOURCE_STONE", "RESOURCE_METIN", "RESOURCE_ORE" };
	static string arSub16[] = { "UNIQUE_NONE", "UNIQUE_BOOK", "UNIQUE_SPECIAL_RIDE", "UNIQUE_3", "UNIQUE_4", "UNIQUE_5",
					"UNIQUE_6", "UNIQUE_7", "UNIQUE_8", "UNIQUE_9", "USE_SPECIAL"};
	static string arSub28[] = { "COSTUME_BODY", "COSTUME_HAIR" };
	static string arSub29[] = { "DS_SLOT1", "DS_SLOT2", "DS_SLOT3", "DS_SLOT4", "DS_SLOT5", "DS_SLOT6" };
	static string arSub31[] = { "EXTRACT_DRAGON_SOUL", "EXTRACT_DRAGON_HEART" };
	
	static string* arSubType[] = {0,	//0
		arSub1,		//1
		arSub2,	//2
		arSub3,	//3
		arSub4,	//4
		arSub5,	//5
		arSub6,	//6
		arSub7,	//7
		arSub8,	//8
		0,			//9
		arSub10,	//10
		0,			//11
		arSub12,	//12
		0,			//13
		arSub14,	//14
		0,			//15
		arSub16,	//16
		0,			//17
		0,			//18
		0,			//19
		0,			//20
		0,			//21
		0,			//22
		0,			//23
		0,			//24
		0,			//25
		0,			//26
		0,			//27
		arSub28,	//28
		arSub29,		//29
		arSub29,	//30
		arSub31,	//31
		0,			//32
		0,			//33 ¹İÁö
		0,			//34 º§Æ®
	};
	static int arNumberOfSubtype[_countof(arSubType)] = {
		0,
		sizeof(arSub1)/sizeof(arSub1[0]),
		sizeof(arSub2)/sizeof(arSub2[0]),
		sizeof(arSub3)/sizeof(arSub3[0]),
		sizeof(arSub4)/sizeof(arSub4[0]),
		sizeof(arSub5)/sizeof(arSub5[0]),
		sizeof(arSub6)/sizeof(arSub6[0]),
		sizeof(arSub7)/sizeof(arSub7[0]),
		sizeof(arSub8)/sizeof(arSub8[0]),
		0,
		sizeof(arSub10)/sizeof(arSub10[0]),
		0,
		sizeof(arSub12)/sizeof(arSub12[0]),
		0,
		sizeof(arSub14)/sizeof(arSub14[0]),
		0,
		sizeof(arSub16)/sizeof(arSub16[0]),
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		sizeof(arSub28)/sizeof(arSub28[0]),
		sizeof(arSub29)/sizeof(arSub29[0]),
		sizeof(arSub29)/sizeof(arSub29[0]),
		sizeof(arSub31)/sizeof(arSub31[0]),
		0, // 32
		0, // 33 ¹İÁö
		0, // 34 º§Æ®
	};
	

	assert(_countof(arSubType) > type_value && "Subtype rule: Out of range!!");

	// assert ¾È ¸ÔÈ÷´Â µí..
	if (_countof(arSubType) <= type_value)
	{
		sys_err("SubType : Out of range!! (type_value: %d, count of registered subtype: %d", type_value, _countof(arSubType));
		return -1;
	}

	//¾ÆÀÌÅÛ Å¸ÀÔÀÇ ¼­ºêŸÀÔ ¾î·¹ÀÌ°¡ Á¸ÀçÇÏ´ÂÁö ¾Ë¾Æº¸°í, ¾øÀ¸¸é 0 ¸®ÅÏ
	if (arSubType[type_value]==0) {
		return 0;
	}
	//

	int retInt = -1;
	//cout << "SubType : " << subTypeStr << " -> ";
	for (int j=0;j<arNumberOfSubtype[type_value];j++) {
		string tempString = arSubType[type_value][j];
		string tempInputString = trim(inputString);
		if	(tempInputString.compare(tempString)==0)
		{
			//cout << j << " ";
			retInt =  j;
			break;
		}
	}
	//cout << endl;

	return retInt;
}





int get_Item_AntiFlag_Value(string inputString) 
{

	string arAntiFlag[] = {"ANTI_FEMALE", "ANTI_MALE", "ANTI_MUSA", "ANTI_ASSASSIN", "ANTI_SURA", "ANTI_MUDANG",
							"ANTI_GET", "ANTI_DROP", "ANTI_SELL", "ANTI_EMPIRE_A", "ANTI_EMPIRE_B", "ANTI_EMPIRE_C",
							"ANTI_SAVE", "ANTI_GIVE", "ANTI_PKDROP", "ANTI_STACK", "ANTI_MYSHOP", "ANTI_SAFEBOX"};


	int retValue = 0;
	string* arInputString = StringSplit(inputString, "|");				//ÇÁ·ÎÅä Á¤º¸ ³»¿ëÀ» ´Ü¾îº°·Î ÂÉ°µ ¹è¿­.
	for(unsigned int i =0;i<sizeof(arAntiFlag)/sizeof(arAntiFlag[0]);i++) { //Game-DB SRC Warning Fix 24
		string tempString = arAntiFlag[i];
		for (int j=0; j<30 ; j++)		//ÃÖ´ë 30°³ ´Ü¾î±îÁö. (ÇϵåÄÚµù)
		{
			string tempString2 = arInputString[j];
			if (tempString2.compare(tempString)==0) {				//ÀÏÄ¡ÇÏ´ÂÁö È®ÀÎ.
				retValue = retValue + pow((float)2,(float)i);
			}
			
			if(tempString2.compare("") == 0)
				break;
		}
	}
	delete []arInputString;
	//cout << "AntiFlag : " << antiFlagStr << " -> " << retValue << endl;

	return retValue;
}

int get_Item_Flag_Value(string inputString) 
{

	string arFlag[] = {"ITEM_TUNABLE", "ITEM_SAVE", "ITEM_STACKABLE", "COUNT_PER_1GOLD", "ITEM_SLOW_QUERY", "ITEM_UNIQUE",
			"ITEM_MAKECOUNT", "ITEM_IRREMOVABLE", "CONFIRM_WHEN_USE", "QUEST_USE", "QUEST_USE_MULTIPLE",
			"QUEST_GIVE", "ITEM_QUEST", "LOG", "STACKABLE", "SLOW_QUERY", "REFINEABLE", "IRREMOVABLE", "ITEM_APPLICABLE"};


	int retValue = 0;
	string* arInputString = StringSplit(inputString, "|");				//ÇÁ·ÎÅä Á¤º¸ ³»¿ëÀ» ´Ü¾îº°·Î ÂÉ°µ ¹è¿­.
	for(unsigned int i =0;i<sizeof(arFlag)/sizeof(arFlag[0]);i++) { //Game-DB SRC Warning Fix 25
		string tempString = arFlag[i];
		for (int j=0; j<30 ; j++)		//ÃÖ´ë 30°³ ´Ü¾î±îÁö. (ÇϵåÄÚµù)
		{
			string tempString2 = arInputString[j];
			if (tempString2.compare(tempString)==0) {				//ÀÏÄ¡ÇÏ´ÂÁö È®ÀÎ.
				retValue = retValue + pow((float)2,(float)i);
			}
			
			if(tempString2.compare("") == 0)
				break;
		}
	}
	delete []arInputString;
	//cout << "Flag : " << flagStr << " -> " << retValue << endl;

	return retValue;
}

int get_Item_WearFlag_Value(string inputString) 
{

	string arWearrFlag[] = {"WEAR_BODY", "WEAR_HEAD", "WEAR_FOOTS", "WEAR_WRIST", "WEAR_WEAPON", "WEAR_NECK", "WEAR_EAR", "WEAR_SHIELD", "WEAR_UNIQUE",
					"WEAR_ARROW", "WEAR_HAIR", "WEAR_ABILITY"};


	int retValue = 0;
	string* arInputString = StringSplit(inputString, "|");				//ÇÁ·ÎÅä Á¤º¸ ³»¿ëÀ» ´Ü¾îº°·Î ÂÉ°µ ¹è¿­.
	for(unsigned int i =0;i<sizeof(arWearrFlag)/sizeof(arWearrFlag[0]);i++) { //Game-DB SRC Warning Fix 26
		string tempString = arWearrFlag[i];
		for (int j=0; j<30 ; j++)		//ÃÖ´ë 30°³ ´Ü¾î±îÁö. (ÇϵåÄÚµù)
		{
			string tempString2 = arInputString[j];
			if (tempString2.compare(tempString)==0) {				//ÀÏÄ¡ÇÏ´ÂÁö È®ÀÎ.
				retValue = retValue + pow((float)2,(float)i);
			}
			
			if(tempString2.compare("") == 0)
				break;
		}
	}
	delete []arInputString;
	//cout << "WearFlag : " << wearFlagStr << " -> " << retValue << endl;

	return retValue;
}

int get_Item_Immune_Value(string inputString) 
{

	string arImmune[] = {"PARA","CURSE","STUN","SLEEP","SLOW","POISON","TERROR"};

	int retValue = 0;
	string* arInputString = StringSplit(inputString, "|");				//ÇÁ·ÎÅä Á¤º¸ ³»¿ëÀ» ´Ü¾îº°·Î ÂÉ°µ ¹è¿­.
	for(unsigned int i =0;i<sizeof(arImmune)/sizeof(arImmune[0]);i++) { //Game-DB SRC Warning Fix 27
		string tempString = arImmune[i];
		for (int j=0; j<30 ; j++)		//ÃÖ´ë 30°³ ´Ü¾î±îÁö. (ÇϵåÄÚµù)
		{
			string tempString2 = arInputString[j];
			if (tempString2.compare(tempString)==0) {				//ÀÏÄ¡ÇÏ´ÂÁö È®ÀÎ.
				retValue = retValue + pow((float)2,(float)i);
			}
			
			if(tempString2.compare("") == 0)
				break;
		}
	}
	delete []arInputString;
	//cout << "Immune : " << immuneStr << " -> " << retValue << endl;

	return retValue;
}




int get_Item_LimitType_Value(string inputString)
{
	string arLimitType[] = {"LIMIT_NONE", "LEVEL", "STR", "DEX", "INT", "CON", "REAL_TIME", "REAL_TIME_FIRST_USE", "TIMER_BASED_ON_WEAR"};
	
	int retInt = -1;
	//cout << "LimitType : " << limitTypeStr << " -> ";
	for (unsigned int j=0;j<sizeof(arLimitType)/sizeof(arLimitType[0]);j++) { //Game-DB SRC Warning Fix 28
		string tempString = arLimitType[j];
		string tempInputString = trim(inputString);
		if	(tempInputString.compare(tempString)==0)
		{
			//cout << j << " ";
			retInt =  j;
			break;
		}
	}
	//cout << endl;

	return retInt;
}


int get_Item_ApplyType_Value(string inputString)
{
	string arApplyType[] = {"APPLY_NONE", "APPLY_MAX_HP", "APPLY_MAX_SP", "APPLY_CON", "APPLY_INT", "APPLY_STR", "APPLY_DEX", "APPLY_ATT_SPEED",
			"APPLY_MOV_SPEED", "APPLY_CAST_SPEED", "APPLY_HP_REGEN", "APPLY_SP_REGEN", "APPLY_POISON_PCT", "APPLY_STUN_PCT",
			"APPLY_SLOW_PCT", "APPLY_CRITICAL_PCT", "APPLY_PENETRATE_PCT", "APPLY_ATTBONUS_HUMAN", "APPLY_ATTBONUS_ANIMAL",
			"APPLY_ATTBONUS_ORC", "APPLY_ATTBONUS_MILGYO", "APPLY_ATTBONUS_UNDEAD", "APPLY_ATTBONUS_DEVIL", "APPLY_STEAL_HP",
			"APPLY_STEAL_SP", "APPLY_MANA_BURN_PCT", "APPLY_DAMAGE_SP_RECOVER", "APPLY_BLOCK", "APPLY_DODGE", "APPLY_RESIST_SWORD",
			"APPLY_RESIST_TWOHAND", "APPLY_RESIST_DAGGER", "APPLY_RESIST_BELL", "APPLY_RESIST_FAN", "APPLY_RESIST_BOW", "APPLY_RESIST_FIRE",
			"APPLY_RESIST_ELEC", "APPLY_RESIST_MAGIC", "APPLY_RESIST_WIND", "APPLY_REFLECT_MELEE", "APPLY_REFLECT_CURSE", "APPLY_POISON_REDUCE",
			"APPLY_KILL_SP_RECOVER", "APPLY_EXP_DOUBLE_BONUS", "APPLY_GOLD_DOUBLE_BONUS", "APPLY_ITEM_DROP_BONUS", "APPLY_POTION_BONUS",
			"APPLY_KILL_HP_RECOVER", "APPLY_IMMUNE_STUN", "APPLY_IMMUNE_SLOW", "APPLY_IMMUNE_FALL", "APPLY_SKILL", "APPLY_BOW_DISTANCE",
			"APPLY_ATT_GRADE_BONUS", "APPLY_DEF_GRADE_BONUS", "APPLY_MAGIC_ATT_GRADE", "APPLY_MAGIC_DEF_GRADE", "APPLY_CURSE_PCT",
			"APPLY_MAX_STAMINA", "APPLY_ATTBONUS_WARRIOR", "APPLY_ATTBONUS_ASSASSIN", "APPLY_ATTBONUS_SURA", "APPLY_ATTBONUS_SHAMAN",
			"APPLY_ATTBONUS_MONSTER", "APPLY_MALL_ATTBONUS", "APPLY_MALL_DEFBONUS", "APPLY_MALL_EXPBONUS", "APPLY_MALL_ITEMBONUS",
			"APPLY_MALL_GOLDBONUS", "APPLY_MAX_HP_PCT", "APPLY_MAX_SP_PCT", "APPLY_SKILL_DAMAGE_BONUS", "APPLY_NORMAL_HIT_DAMAGE_BONUS",
			"APPLY_SKILL_DEFEND_BONUS", "APPLY_NORMAL_HIT_DEFEND_BONUS",
			"APPLY_EXTRACT_HP_PCT", "APPLY_RESIST_WARRIOR", "APPLY_RESIST_ASSASSIN", "APPLY_RESIST_SURA", "APPLY_RESIST_SHAMAN",
			"APPLY_ENERGY",	"APPLY_DEF_GRADE", "APPLY_COSTUME_ATTR_BONUS", "APPLY_MAGIC_ATTBONUS_PER", "APPLY_MELEE_MAGIC_ATTBONUS_PER",
			"APPLY_RESIST_ICE", "APPLY_RESIST_EARTH", "APPLY_RESIST_DARK", "APPLY_ANTI_CRITICAL_PCT", "APPLY_ANTI_PENETRATE_PCT",
	};

	int retInt = -1;
	//cout << "ApplyType : " << applyTypeStr << " -> ";
	for (unsigned int j=0;j<sizeof(arApplyType)/sizeof(arApplyType[0]);j++) { //Game-DB SRC Warning Fix 29
		string tempString = arApplyType[j];
		string tempInputString = trim(inputString);
		if	(tempInputString.compare(tempString)==0)
		{ 
			//cout << j << " ";
			retInt =  j;
			break;
		}
	}
	//cout << endl;

	return retInt;

}


//¸ó½ºÅÍ ÇÁ·ÎÅäµµ Àд´Ù.


int get_Mob_Rank_Value(string inputString) 
{
	string arRank[] = {"PAWN", "S_PAWN", "KNIGHT", "S_KNIGHT", "BOSS", "KING"};

	int retInt = -1;
	//cout << "Rank : " << rankStr << " -> ";
	for (unsigned int j=0;j<sizeof(arRank)/sizeof(arRank[0]);j++) { //Game-DB SRC Warning Fix 30
		string tempString = arRank[j];
		string tempInputString = trim(inputString);
		if	(tempInputString.compare(tempString)==0) 
		{
			//cout << j << " ";
			retInt =  j;
			break;
		}
	}
	//cout << endl;

	return retInt;
}


int get_Mob_Type_Value(string inputString)
{
	string arType[] = { "MONSTER", "NPC", "STONE", "WARP", "DOOR", "BUILDING", "PC", "POLYMORPH_PC", "HORSE", "GOTO"};

	int retInt = -1;
	//cout << "Type : " << typeStr << " -> ";
	for (unsigned int j=0;j<sizeof(arType)/sizeof(arType[0]);j++) { //Game-DB SRC Warning Fix 31
		string tempString = arType[j];
		string tempInputString = trim(inputString);
		if	(tempInputString.compare(tempString)==0) 
		{
			//cout << j << " ";
			retInt =  j;
			break;
		}
	}
	//cout << endl;

	return retInt;
}

int get_Mob_BattleType_Value(string inputString) 
{
	string arBattleType[] = { "MELEE", "RANGE", "MAGIC", "SPECIAL", "POWER", "TANKER", "SUPER_POWER", "SUPER_TANKER"};

	int retInt = -1;
	//cout << "Battle Type : " << battleTypeStr << " -> ";
	for (unsigned int j=0;j<sizeof(arBattleType)/sizeof(arBattleType[0]);j++) { //Game-DB SRC Warning Fix 32
		string tempString = arBattleType[j];
		string tempInputString = trim(inputString);
		if	(tempInputString.compare(tempString)==0) 
		{ 
			//cout << j << " ";
			retInt =  j;
			break;
		}
	}
	//cout << endl;

	return retInt;
}

int get_Mob_Size_Value(string inputString)
{
	string arSize[] = { "SAMLL", "MEDIUM", "BIG"};

	int retInt = 0;
	//cout << "Size : " << sizeStr << " -> ";
	for (unsigned int j=0;j<sizeof(arSize)/sizeof(arSize[0]);j++) { //Game-DB SRC Warning Fix 33
		string tempString = arSize[j];
		string tempInputString = trim(inputString);
		if	(tempInputString.compare(tempString)==0) 
		{
			//cout << j << " ";
			retInt =  j + 1;
			break;
		}
	}
	//cout << endl;

	return retInt;
}

int get_Mob_AIFlag_Value(string inputString)
{
	string arAIFlag[] = {"AGGR","NOMOVE","COWARD","NOATTSHINSU","NOATTCHUNJO","NOATTJINNO","ATTMOB","BERSERK","STONESKIN","GODSPEED","DEATHBLOW","REVIVE"};


	int retValue = 0;
	string* arInputString = StringSplit(inputString, ",");				//ÇÁ·ÎÅä Á¤º¸ ³»¿ëÀ» ´Ü¾îº°·Î ÂÉ°µ ¹è¿­.
	for(unsigned int i =0;i<sizeof(arAIFlag)/sizeof(arAIFlag[0]);i++) { //Game-DB SRC Warning Fix 34
		string tempString = arAIFlag[i];
		for (int j=0; j<30 ; j++)		//ÃÖ´ë 30°³ ´Ü¾î±îÁö. (ÇϵåÄÚµù)
		{
			string tempString2 = arInputString[j];
			if (tempString2.compare(tempString)==0) {				//ÀÏÄ¡ÇÏ´ÂÁö È®ÀÎ.
				retValue = retValue + pow((float)2,(float)i);
			}
			
			if(tempString2.compare("") == 0)
				break;
		}
	}
	delete []arInputString;
	//cout << "AIFlag : " << aiFlagStr << " -> " << retValue << endl;

	return retValue;
}
int get_Mob_RaceFlag_Value(string inputString)
{
	string arRaceFlag[] = {"ANIMAL","UNDEAD","DEVIL","HUMAN","ORC","MILGYO","INSECT","FIRE","ICE","DESERT","TREE",
		"ATT_ELEC","ATT_FIRE","ATT_ICE","ATT_WIND","ATT_EARTH","ATT_DARK"};

	int retValue = 0;
	string* arInputString = StringSplit(inputString, ",");				//ÇÁ·ÎÅä Á¤º¸ ³»¿ëÀ» ´Ü¾îº°·Î ÂÉ°µ ¹è¿­.
	for(unsigned int i =0;i<sizeof(arRaceFlag)/sizeof(arRaceFlag[0]);i++) { //Game-DB SRC Warning Fix 35
		string tempString = arRaceFlag[i];
		for (int j=0; j<30 ; j++)		//ÃÖ´ë 30°³ ´Ü¾î±îÁö. (ÇϵåÄÚµù)
		{
			string tempString2 = arInputString[j];
			if (tempString2.compare(tempString)==0) {				//ÀÏÄ¡ÇÏ´ÂÁö È®ÀÎ.
				retValue = retValue + pow((float)2,(float)i);
			}
			
			if(tempString2.compare("") == 0)
				break;
		}
	}
	delete []arInputString;
	//cout << "Race Flag : " << raceFlagStr << " -> " << retValue << endl;

	return retValue;
}
int get_Mob_ImmuneFlag_Value(string inputString)
{
	string arImmuneFlag[] = {"STUN","SLOW","FALL","CURSE","POISON","TERROR", "REFLECT"};

	int retValue = 0;
	string* arInputString = StringSplit(inputString, ",");				//ÇÁ·ÎÅä Á¤º¸ ³»¿ëÀ» ´Ü¾îº°·Î ÂÉ°µ ¹è¿­.
	for(unsigned int i =0;i<sizeof(arImmuneFlag)/sizeof(arImmuneFlag[0]);i++) { //Game-DB SRC Warning Fix 36
		string tempString = arImmuneFlag[i];
		for (int j=0; j<30 ; j++)		//ÃÖ´ë 30°³ ´Ü¾î±îÁö. (ÇϵåÄÚµù)
		{
			string tempString2 = arInputString[j];
			if (tempString2.compare(tempString)==0) {				//ÀÏÄ¡ÇÏ´ÂÁö È®ÀÎ.
				retValue = retValue + pow((float)2,(float)i);
			}
			
			if(tempString2.compare("") == 0)
				break;
		}
	}
	delete []arInputString;
	//cout << "Immune Flag : " << immuneFlagStr << " -> " << retValue << endl;


	return retValue;
}


#ifndef __DUMP_PROTO__

//¸÷ Å×À̺íÀ» ¼ÂÆÃÇØÁØ´Ù.
bool Set_Proto_Mob_Table(TMobTable *mobTable, cCsvTable &csvTable,std::map<int,const char*> &nameMap)
{
	int col = 0;
	str_to_number(mobTable->dwVnum, csvTable.AsStringByIndex(col++));
	strlcpy(mobTable->szName, csvTable.AsStringByIndex(col++), sizeof(mobTable->szName));

	//3. Áö¿ªº° À̸§ ³Ö¾îÁÖ±â.
	map<int,const char*>::iterator it;
	it = nameMap.find(mobTable->dwVnum);
	if (it != nameMap.end()) {
		const char * localeName = it->second;
		strlcpy(mobTable->szLocaleName, localeName, sizeof (mobTable->szLocaleName));
	} else {
		strlcpy(mobTable->szLocaleName, mobTable->szName, sizeof (mobTable->szLocaleName));
	}

	//RANK
	int rankValue = get_Mob_Rank_Value(csvTable.AsStringByIndex(col++));
	mobTable->bRank = rankValue;
	//TYPE
	int typeValue = get_Mob_Type_Value(csvTable.AsStringByIndex(col++));
	mobTable->bType = typeValue;
	//BATTLE_TYPE
	int battleTypeValue = get_Mob_BattleType_Value(csvTable.AsStringByIndex(col++));
	mobTable->bBattleType = battleTypeValue;

	str_to_number(mobTable->bLevel, csvTable.AsStringByIndex(col++));
	//SIZE
	int sizeValue = get_Mob_Size_Value(csvTable.AsStringByIndex(col++));
	mobTable->bSize = sizeValue;
	//AI_FLAG
	int aiFlagValue = get_Mob_AIFlag_Value(csvTable.AsStringByIndex(col++));
	mobTable->dwAIFlag = aiFlagValue;
	//mount_capacity;
	col++;
	//RACE_FLAG
	int raceFlagValue = get_Mob_RaceFlag_Value(csvTable.AsStringByIndex(col++));
	mobTable->dwRaceFlag = raceFlagValue;
	//IMMUNE_FLAG
	int immuneFlagValue = get_Mob_ImmuneFlag_Value(csvTable.AsStringByIndex(col++));
	mobTable->dwImmuneFlag = immuneFlagValue;

	str_to_number(mobTable->bEmpire, csvTable.AsStringByIndex(col++));  //col = 11

	strlcpy(mobTable->szFolder, csvTable.AsStringByIndex(col++), sizeof(mobTable->szFolder));

	str_to_number(mobTable->bOnClickType, csvTable.AsStringByIndex(col++));	

	str_to_number(mobTable->bStr, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->bDex, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->bCon, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->bInt, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->dwDamageRange[0], csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->dwDamageRange[1], csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->dwMaxHP, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->bRegenCycle, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->bRegenPercent,	csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->dwGoldMin, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->dwGoldMax, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->dwExp,	csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->wDef, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->sAttackSpeed, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->sMovingSpeed, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->bAggresiveHPPct, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->wAggressiveSight, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->wAttackRange, csvTable.AsStringByIndex(col++));

	str_to_number(mobTable->dwDropItemVnum, csvTable.AsStringByIndex(col++));	//32
	str_to_number(mobTable->dwResurrectionVnum, csvTable.AsStringByIndex(col++));
	for (int i = 0; i < MOB_ENCHANTS_MAX_NUM; ++i)
		str_to_number(mobTable->cEnchants[i], csvTable.AsStringByIndex(col++));

	for (int i = 0; i < MOB_RESISTS_MAX_NUM; ++i)
		str_to_number(mobTable->cResists[i], csvTable.AsStringByIndex(col++));

	str_to_number(mobTable->fDamMultiply, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->dwSummonVnum, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->dwDrainSP, csvTable.AsStringByIndex(col++));

	//Mob_Color
	++col;

	str_to_number(mobTable->dwPolymorphItemVnum, csvTable.AsStringByIndex(col++));

	str_to_number(mobTable->Skills[0].bLevel, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->Skills[0].dwVnum, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->Skills[1].bLevel, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->Skills[1].dwVnum, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->Skills[2].bLevel, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->Skills[2].dwVnum, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->Skills[3].bLevel, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->Skills[3].dwVnum, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->Skills[4].bLevel, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->Skills[4].dwVnum, csvTable.AsStringByIndex(col++));

	str_to_number(mobTable->bBerserkPoint, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->bStoneSkinPoint, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->bGodSpeedPoint, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->bDeathBlowPoint, csvTable.AsStringByIndex(col++));
	str_to_number(mobTable->bRevivePoint, csvTable.AsStringByIndex(col++));

	sys_log(0, "MOB #%-5d %-24s level: %-3u rank: %u empire: %d", mobTable->dwVnum, mobTable->szLocaleName, mobTable->bLevel, mobTable->bRank, mobTable->bEmpire);

	return true;
}

bool Set_Proto_Item_Table(TItemTable *itemTable, cCsvTable &csvTable,std::map<int,const char*> &nameMap)
{
	int col = 0;

	int dataArray[33];
	for (unsigned int i=0; i<sizeof(dataArray)/sizeof(dataArray[0]);i++) { //Game-DB SRC Warning Fix 37
		int validCheck = 0;
		if (i==2) {
			dataArray[i] = get_Item_Type_Value(csvTable.AsStringByIndex(col));
			validCheck = dataArray[i];
		} else if (i==3) {
			dataArray[i] = get_Item_SubType_Value(dataArray[i-1], csvTable.AsStringByIndex(col));
			validCheck = dataArray[i];
		} else if (i==5) {
			dataArray[i] = get_Item_AntiFlag_Value(csvTable.AsStringByIndex(col));
			validCheck = dataArray[i];
		} else if (i==6) {
			dataArray[i] = get_Item_Flag_Value(csvTable.AsStringByIndex(col));
			validCheck = dataArray[i];
		} else if (i==7) {
			dataArray[i] = get_Item_WearFlag_Value(csvTable.AsStringByIndex(col));
			validCheck = dataArray[i];
		} else if (i==8) {
			dataArray[i] = get_Item_Immune_Value(csvTable.AsStringByIndex(col));
			validCheck = dataArray[i];
		} else if (i==14) {
			dataArray[i] = get_Item_LimitType_Value(csvTable.AsStringByIndex(col));
			validCheck = dataArray[i];
		} else if (i==16) {
			dataArray[i] = get_Item_LimitType_Value(csvTable.AsStringByIndex(col));
			validCheck = dataArray[i];
		} else if (i==18) {
			dataArray[i] = get_Item_ApplyType_Value(csvTable.AsStringByIndex(col));
			validCheck = dataArray[i];
		} else if (i==20) {
			dataArray[i] = get_Item_ApplyType_Value(csvTable.AsStringByIndex(col));
			validCheck = dataArray[i];
		} else if (i==22) {
			dataArray[i] = get_Item_ApplyType_Value(csvTable.AsStringByIndex(col));
			validCheck = dataArray[i];
		} else {
			str_to_number(dataArray[i], csvTable.AsStringByIndex(col));
		}

		if (validCheck == -1)
		{
			std::ostringstream dataStream;

			for (unsigned int j = 0; j < i; ++j) //Game-DB SRC Warning Fix 38
				dataStream << dataArray[j] << ",";

			//fprintf(stderr, "ItemProto Reading Failed : Invalid value.\n");
			sys_err("ItemProto Reading Failed : Invalid value. (index: %d, col: %d, value: %s)", i, col, csvTable.AsStringByIndex(col));
			sys_err("\t%d ~ %d Values: %s", 0, i, dataStream.str().c_str());

			exit(0);
		}
		
		col = col + 1;
	}

	// vnum ¹× vnum range Àбâ.
	{
		std::string s(csvTable.AsStringByIndex(0));
		unsigned int pos = s.find("~"); //Game-DB SRC Warning Fix 39
		// vnum Çʵ忡 '~'°¡ ¾ø´Ù¸é Æнº
		if (std::string::npos == pos)
		{
			itemTable->dwVnum = dataArray[0];
			itemTable->dwVnumRange = 0;
		}
		else
		{
			std::string s_start_vnum (s.substr(0, pos));
			std::string s_end_vnum (s.substr(pos +1 ));

			int start_vnum = atoi(s_start_vnum.c_str());
			int end_vnum = atoi(s_end_vnum.c_str());
			if (0 == start_vnum || (0 != end_vnum && end_vnum < start_vnum))
			{
				sys_err ("INVALID VNUM %s", s.c_str());
				return false;
			}
			itemTable->dwVnum = start_vnum;
			itemTable->dwVnumRange = end_vnum - start_vnum;
		}
	}

	strlcpy(itemTable->szName, csvTable.AsStringByIndex(1), sizeof(itemTable->szName));
	//Áö¿ªº° À̸§ ³Ö¾îÁÖ±â.
	map<int,const char*>::iterator it;
	it = nameMap.find(itemTable->dwVnum);
	if (it != nameMap.end()) {
		const char * localeName = it->second;
		strlcpy(itemTable->szLocaleName, localeName, sizeof (itemTable->szLocaleName));
	} else {
		strlcpy(itemTable->szLocaleName, itemTable->szName, sizeof (itemTable->szLocaleName));
	}
	itemTable->bType = dataArray[2];
	itemTable->bSubType = dataArray[3];
	itemTable->bSize = dataArray[4];
	itemTable->dwAntiFlags = dataArray[5];
	itemTable->dwFlags = dataArray[6];
	itemTable->dwWearFlags = dataArray[7];
	itemTable->dwImmuneFlag = dataArray[8];
	itemTable->dwGold = dataArray[9];
	itemTable->dwShopBuyPrice = dataArray[10];
	itemTable->dwRefinedVnum = dataArray[11];
	itemTable->wRefineSet = dataArray[12];
	itemTable->bAlterToMagicItemPct = dataArray[13];
	itemTable->cLimitRealTimeFirstUseIndex = -1;
	itemTable->cLimitTimerBasedOnWearIndex = -1;

	int i;

	for (i = 0; i < ITEM_LIMIT_MAX_NUM; ++i)
	{
		itemTable->aLimits[i].bType = dataArray[14+i*2];
		itemTable->aLimits[i].lValue = dataArray[15+i*2];

		if (LIMIT_REAL_TIME_START_FIRST_USE == itemTable->aLimits[i].bType)
			itemTable->cLimitRealTimeFirstUseIndex = (char)i;

		if (LIMIT_TIMER_BASED_ON_WEAR == itemTable->aLimits[i].bType)
			itemTable->cLimitTimerBasedOnWearIndex = (char)i;

	}

	for (i = 0; i < ITEM_APPLY_MAX_NUM; ++i)
	{
		itemTable->aApplies[i].bType = dataArray[18+i*2];
		itemTable->aApplies[i].lValue = dataArray[19+i*2];
	}

	for (i = 0; i < ITEM_VALUES_MAX_NUM; ++i)
		itemTable->alValues[i] = dataArray[24+i];

	//column for 'Specular'
	itemTable->bGainSocketPct = dataArray[31];
	itemTable->sAddonType = dataArray[32];

	//test
	str_to_number(itemTable->bWeight, "0");
			
	return true;
}

#endif

 

If you want to look this is my item_proto dump sql format from Navicat

 

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for item_proto
-- ----------------------------
DROP TABLE IF EXISTS `item_proto`;
CREATE TABLE `item_proto`  (
  `vnum` int(11) UNSIGNED NOT NULL DEFAULT 0,
  `vnum_range` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'No TXT DB',
  `name` varbinary(38) NOT NULL DEFAULT 'Noname                  ',
  `locale_name` varbinary(38) NOT NULL DEFAULT 'Noname                  ',
  `type` tinyint(2) NOT NULL DEFAULT 0,
  `subtype` tinyint(2) NOT NULL DEFAULT 0,
  `weight` tinyint(3) NULL DEFAULT 0,
  `size` tinyint(3) NULL DEFAULT 0,
  `antiflag` int(11) NULL DEFAULT 0,
  `flag` int(11) NULL DEFAULT 0,
  `wearflag` int(11) NULL DEFAULT 0,
  `immuneflag` set('PARA','CURSE','STUN','SLEEP','SLOW','POISON','TERROR') CHARACTER SET big5 COLLATE big5_chinese_ci NOT NULL DEFAULT '',
  `gold` int(11) NULL DEFAULT 0,
  `shop_buy_price` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `refined_vnum` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `refine_set` smallint(11) UNSIGNED NOT NULL DEFAULT 0,
  `refine_set2` smallint(5) UNSIGNED NOT NULL DEFAULT 0,
  `magic_pct` tinyint(4) NOT NULL DEFAULT 0,
  `limittype0` tinyint(4) NULL DEFAULT 0,
  `limitvalue0` int(11) NULL DEFAULT 0,
  `limittype1` tinyint(4) NULL DEFAULT 0,
  `limitvalue1` int(11) NULL DEFAULT 0,
  `applytype0` tinyint(4) NULL DEFAULT 0,
  `applyvalue0` int(11) NULL DEFAULT 0,
  `applytype1` tinyint(4) NULL DEFAULT 0,
  `applyvalue1` int(11) NULL DEFAULT 0,
  `applytype2` tinyint(4) NULL DEFAULT 0,
  `applyvalue2` int(11) NULL DEFAULT 0,
  `value0` int(11) NULL DEFAULT 0,
  `value1` int(11) NULL DEFAULT 0,
  `value2` int(11) NULL DEFAULT 0,
  `value3` int(11) NULL DEFAULT 0,
  `value4` int(11) NULL DEFAULT 0,
  `value5` int(11) NULL DEFAULT 0,
  `socket0` int(10) NULL DEFAULT -1,
  `socket1` int(10) NULL DEFAULT -1,
  `socket2` int(10) NULL DEFAULT -1,
  `socket3` int(10) NULL DEFAULT -1,
  `socket4` int(10) NULL DEFAULT -1,
  `socket5` int(10) NULL DEFAULT -1,
  `specular` tinyint(4) NOT NULL DEFAULT 0,
  `socket_pct` tinyint(4) NOT NULL DEFAULT 0,
  `addon_type` smallint(6) NOT NULL DEFAULT 0,
  PRIMARY KEY (`vnum`) USING BTREE
) ENGINE = MyISAM CHARACTER SET = big5 COLLATE = big5_chinese_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of item_proto
-- ----------------------------
INSERT INTO `item_proto` VALUES (1, 0, 0xB5B7B2D9B7AFB9CC, 0x59616E67, 9, 0, 0, 1, 0, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0);
INSERT INTO `item_proto` VALUES (2, 0, 0xC7D1B1B9B9ABBDD6B9F6C1AF, 0x54FC726BE7652053FC72FC6D, 0, 0, 0, 1, 0, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0);
INSERT INTO `item_proto` VALUES (10, 0, 0xB5B52B30, 0x4BFD6CFDE72B30, 1, 0, 0, 2, 32, 1, 16, '', 0, 0, 11, 1, 0, 15, 1, 0, 0, 0, 7, 22, 0, 0, 0, 0, 0, 15, 19, 13, 15, 0, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (11, 0, 0xB5B52B31, 0x4BFD6CFDE72B31, 1, 0, 0, 2, 32, 1, 16, '', 100, 100, 12, 2, 0, 15, 1, 0, 0, 0, 7, 22, 0, 0, 0, 0, 0, 15, 19, 13, 15, 7, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (12, 0, 0xB5B52B32, 0x4BFD6CFDE72B32, 1, 0, 0, 2, 32, 1, 16, '', 100, 100, 13, 3, 0, 15, 1, 0, 0, 0, 7, 22, 0, 0, 0, 0, 0, 15, 19, 13, 15, 14, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (13, 0, 0xB5B52B33, 0x4BFD6CFDE72B33, 1, 0, 0, 2, 32, 1, 16, '', 100, 150, 14, 4, 0, 15, 1, 0, 0, 0, 7, 22, 0, 0, 0, 0, 0, 15, 19, 13, 15, 21, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (14, 0, 0xB5B52B34, 0x4BFD6CFDE72B34, 1, 0, 0, 2, 32, 1, 16, '', 100, 150, 15, 5, 0, 15, 1, 0, 0, 0, 7, 22, 0, 0, 0, 0, 0, 15, 19, 13, 15, 28, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (15, 0, 0xB5B52B35, 0x4BFD6CFDE72B35, 1, 0, 0, 2, 32, 1, 16, '', 100, 200, 16, 6, 0, 15, 1, 0, 0, 0, 7, 22, 0, 0, 0, 0, 0, 15, 19, 13, 15, 35, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (16, 0, 0xB5B52B36, 0x4BFD6CFDE72B36, 1, 0, 0, 2, 32, 1, 16, '', 100, 250, 17, 7, 0, 15, 1, 0, 0, 0, 7, 22, 0, 0, 0, 0, 0, 15, 19, 13, 15, 42, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (17, 0, 0xB5B52B37, 0x4BFD6CFDE72B37, 1, 0, 0, 2, 32, 1, 16, '', 100, 350, 18, 8, 0, 15, 1, 0, 0, 0, 7, 22, 0, 0, 0, 0, 0, 15, 19, 13, 15, 49, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (18, 0, 0xB5B52B38, 0x4BFD6CFDE72B38, 1, 0, 0, 2, 32, 1, 16, '', 100, 500, 19, 9, 0, 15, 1, 0, 0, 0, 7, 22, 0, 0, 0, 0, 0, 15, 19, 13, 15, 56, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (19, 0, 0xB5B52B39, 0x4BFD6CFDE72B39, 1, 0, 0, 2, 32, 1, 16, '', 100, 750, 0, 0, 0, 15, 1, 0, 0, 0, 7, 22, 0, 0, 0, 0, 0, 15, 19, 13, 15, 63, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (20, 0, 0xC0E5B0CB2B30, 0x557A756E204BFD6CFDE72B30, 1, 0, 0, 2, 32, 1, 16, '', 400, 400, 21, 1, 0, 15, 1, 5, 0, 0, 7, 27, 0, 0, 0, 0, 0, 13, 15, 15, 19, 0, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (21, 0, 0xC0E5B0CB2B31, 0x557A756E204BFD6CFDE72B31, 1, 0, 0, 2, 32, 1, 16, '', 400, 500, 22, 2, 0, 15, 1, 5, 0, 0, 7, 27, 0, 0, 0, 0, 0, 13, 15, 15, 19, 7, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (22, 0, 0xC0E5B0CB2B32, 0x557A756E204BFD6CFDE72B32, 1, 0, 0, 2, 32, 1, 16, '', 400, 500, 23, 3, 0, 15, 1, 5, 0, 0, 7, 27, 0, 0, 0, 0, 0, 13, 15, 15, 19, 14, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (23, 0, 0xC0E5B0CB2B33, 0x557A756E204BFD6CFDE72B33, 1, 0, 0, 2, 32, 1, 16, '', 400, 500, 24, 4, 0, 15, 1, 5, 0, 0, 7, 27, 0, 0, 0, 0, 0, 13, 15, 15, 19, 21, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (24, 0, 0xC0E5B0CB2B34, 0x557A756E204BFD6CFDE72B34, 1, 0, 0, 2, 32, 1, 16, '', 400, 500, 25, 5, 0, 15, 1, 5, 0, 0, 7, 27, 0, 0, 0, 0, 0, 13, 15, 15, 19, 28, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (25, 0, 0xC0E5B0CB2B35, 0x557A756E204BFD6CFDE72B35, 1, 0, 0, 2, 32, 1, 16, '', 400, 1000, 26, 6, 0, 15, 1, 5, 0, 0, 7, 27, 0, 0, 0, 0, 0, 13, 15, 15, 19, 35, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (26, 0, 0xC0E5B0CB2B36, 0x557A756E204BFD6CFDE72B36, 1, 0, 0, 2, 32, 1, 16, '', 400, 1000, 27, 7, 0, 15, 1, 5, 0, 0, 7, 27, 0, 0, 0, 0, 0, 13, 15, 15, 19, 42, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (27, 0, 0xC0E5B0CB2B37, 0x557A756E204BFD6CFDE72B37, 1, 0, 0, 2, 32, 1, 16, '', 400, 1500, 28, 8, 0, 15, 1, 5, 0, 0, 7, 27, 0, 0, 0, 0, 0, 13, 15, 15, 19, 49, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (28, 0, 0xC0E5B0CB2B38, 0x557A756E204BFD6CFDE72B38, 1, 0, 0, 2, 32, 1, 16, '', 400, 2000, 29, 9, 0, 15, 1, 5, 0, 0, 7, 27, 0, 0, 0, 0, 0, 13, 15, 15, 19, 56, -1, -1, -1, -1, -1, -1, 0, 1, 0);
INSERT INTO `item_proto` VALUES (29, 0, 0xC0E5B0CB2B39, 0x557A756E204BFD6CFDE72B39, 1, 0, 0, 2, 32, 1, 16, '', 400, 3000, 0, 0, 0, 15, 1, 5, 0, 0, 7, 27, 0, 0, 0, 0, 0, 13, 15, 15, 19, 63, -1, -1, -1, -1, -1, -1, 0, 1, 0);

 

  • Metin2 Dev 2
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.