Aller au contenu

Nouveau membre ?! Pense à te présenter pour accéder au contenu du forum !

New member ?! Introduce yourself to get access to the forum !

Testuff

Membre
  • Compteur de contenus

    70
  • Inscription

  • Dernière visite

  • Points

    705 [ Donner ]

Réputation sur la communauté

4 Neutre

À propos de Testuff

  • Rang
    Vigie

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

  1. Personne pour m'aider, svp ? J'ai trouvé ces infos, mais ca ne change rien : [Contenu Masqué]
  2. Version des fichiers/ Type d'émulateur : Files TEAM FE 2016 + WOLFMAN de Spratt Domaine (Base de données, Client, Core...) : Client et ou Serveur je penses Votre niveau (Débutant, Intermédiaire, Avancé..) : Débutant Description du problème :Mon Wolfman est bien limité dans l'utilisation des armes, armures, etc... mais sur chaque item l'information apparaît que le Wolfman peut les utiliser Comment reproduire le problème ? : Pour tous les objets Recherches et tests effectués : J'ai suivi les tutos suivants : [Contenu Masqué] [Contenu Masqué] [Contenu Masqué] [Contenu Masqué] Mon Item_proto me semble OK (je vous joins la version txt, transformer avec le dump_proto_wolfman.exe) : [Contenu Masqué] Je pense avoir compris que le soucis venait du fichier dans mon client pack/root/uitooltip.py, mais je ne vois pas d'ou vient le problème : import dbg import player import item import grp import wndMgr import skill import shop import exchange import grpText import safebox import localeInfo import app import background import nonplayer import chr import ui import mouseModule import constInfo WARP_SCROLLS = [22011, 22000, 22010] DESC_DEFAULT_MAX_COLS = 26 DESC_WESTERN_MAX_COLS = 35 DESC_WESTERN_MAX_WIDTH = 220 def chop(n): return round(n - 0.5, 1) def pointop(n): t = int(n) if t / 10 < 1: return "0."+n else: return n[0:len(n)-1]+"."+n[len(n)-1:] def SplitDescription(desc, limit): total_tokens = desc.split() line_tokens = [] line_len = 0 lines = [] for token in total_tokens: if "|" in token: sep_pos = token.find("|") line_tokens.append(token[:sep_pos]) lines.append(" ".join(line_tokens)) line_len = len(token) - (sep_pos + 1) line_tokens = [token[sep_pos+1:]] else: line_len += len(token) if len(line_tokens) + line_len > limit: lines.append(" ".join(line_tokens)) line_len = len(token) line_tokens = [token] else: line_tokens.append(token) if line_tokens: lines.append(" ".join(line_tokens)) return lines ################################################################################################### ## ToolTip ## ## NOTE : ÇöÀç´Â Item°ú SkillÀ» »ó¼ÓÀ¸·Î Ưȭ ½ÃÄѵξúÀ½ ## ÇÏÁö¸¸ ±×´ÙÁö Àǹ̰¡ ¾ø¾î º¸ÀÓ ## class ToolTip(ui.ThinBoard): TOOL_TIP_WIDTH = 190 TOOL_TIP_HEIGHT = 10 TEXT_LINE_HEIGHT = 17 TITLE_COLOR = grp.GenerateColor(0.9490, 0.9058, 0.7568, 1.0) SPECIAL_TITLE_COLOR = grp.GenerateColor(1.0, 0.7843, 0.0, 1.0) NORMAL_COLOR = grp.GenerateColor(0.7607, 0.7607, 0.7607, 1.0) FONT_COLOR = grp.GenerateColor(0.7607, 0.7607, 0.7607, 1.0) PRICE_COLOR = 0xffFFB96D HIGH_PRICE_COLOR = SPECIAL_TITLE_COLOR MIDDLE_PRICE_COLOR = grp.GenerateColor(0.85, 0.85, 0.85, 1.0) LOW_PRICE_COLOR = grp.GenerateColor(0.7, 0.7, 0.7, 1.0) ENABLE_COLOR = grp.GenerateColor(0.7607, 0.7607, 0.7607, 1.0) DISABLE_COLOR = grp.GenerateColor(0.9, 0.4745, 0.4627, 1.0) NEGATIVE_COLOR = grp.GenerateColor(0.9, 0.4745, 0.4627, 1.0) POSITIVE_COLOR = grp.GenerateColor(0.5411, 0.7254, 0.5568, 1.0) SPECIAL_POSITIVE_COLOR = grp.GenerateColor(0.6911, 0.8754, 0.7068, 1.0) SPECIAL_POSITIVE_COLOR2 = grp.GenerateColor(0.8824, 0.9804, 0.8824, 1.0) CONDITION_COLOR = 0xffBEB47D CAN_LEVEL_UP_COLOR = 0xff8EC292 CANNOT_LEVEL_UP_COLOR = DISABLE_COLOR NEED_SKILL_POINT_COLOR = 0xff9A9CDB def __init__(self, width = TOOL_TIP_WIDTH, isPickable=False): ui.ThinBoard.__init__(self, "TOP_MOST") if isPickable: pass else: self.AddFlag("not_pick") self.AddFlag("float") self.followFlag = True self.toolTipWidth = width self.xPos = -1 self.yPos = -1 self.defFontName = localeInfo.UI_DEF_FONT self.ClearToolTip() def __del__(self): ui.ThinBoard.__del__(self) def ClearToolTip(self): self.toolTipHeight = 12 self.childrenList = [] def SetFollow(self, flag): self.followFlag = flag def SetDefaultFontName(self, fontName): self.defFontName = fontName def AppendSpace(self, size): self.toolTipHeight += size self.ResizeToolTip() def AppendHorizontalLine(self): for i in xrange(2): horizontalLine = ui.Line() horizontalLine.SetParent(self) horizontalLine.SetPosition(0, self.toolTipHeight + 3 + i) horizontalLine.SetWindowHorizontalAlignCenter() horizontalLine.SetSize(150, 0) horizontalLine.Show() if 0 == i: horizontalLine.SetColor(0xff555555) else: horizontalLine.SetColor(0xff000000) self.childrenList.append(horizontalLine) self.toolTipHeight += 11 self.ResizeToolTip() def AlignHorizonalCenter(self): for child in self.childrenList: (x, y)=child.GetLocalPosition() child.SetPosition(self.toolTipWidth/2, y) self.ResizeToolTip() def AutoAppendTextLine(self, text, color = FONT_COLOR, centerAlign = True): textLine = ui.TextLine() textLine.SetParent(self) textLine.SetFontName(self.defFontName) textLine.SetPackedFontColor(color) textLine.SetText(text) textLine.SetOutline() textLine.SetFeather(False) textLine.Show() if centerAlign: textLine.SetPosition(self.toolTipWidth/2, self.toolTipHeight) textLine.SetHorizontalAlignCenter() else: textLine.SetPosition(10, self.toolTipHeight) self.childrenList.append(textLine) (textWidth, textHeight)=textLine.GetTextSize() textWidth += 40 textHeight += 5 if self.toolTipWidth < textWidth: self.toolTipWidth = textWidth self.toolTipHeight += textHeight return textLine def AutoAppendNewTextLine(self, text, color = FONT_COLOR, centerAlign = True): textLine = ui.TextLine() textLine.SetParent(self) textLine.SetFontName(self.defFontName) textLine.SetPackedFontColor(color) textLine.SetText(text) textLine.SetOutline() textLine.SetFeather(FALSE) textLine.Show() textLine.SetPosition(15, self.toolTipHeight) self.childrenList.append(textLine) (textWidth, textHeight) = textLine.GetTextSize() textWidth += 30 textHeight += 10 if self.toolTipWidth < textWidth: self.toolTipWidth = textWidth self.toolTipHeight += textHeight self.ResizeToolTipText(textWidth, self.toolTipHeight) return textLine def AppendTextLine(self, text, color = FONT_COLOR, centerAlign = True): textLine = ui.TextLine() textLine.SetParent(self) textLine.SetFontName(self.defFontName) textLine.SetPackedFontColor(color) textLine.SetText(text) textLine.SetOutline() textLine.SetFeather(False) textLine.Show() if centerAlign: textLine.SetPosition(self.toolTipWidth/2, self.toolTipHeight) textLine.SetHorizontalAlignCenter() else: textLine.SetPosition(10, self.toolTipHeight) self.childrenList.append(textLine) self.toolTipHeight += self.TEXT_LINE_HEIGHT self.ResizeToolTip() return textLine def AppendDescription(self, desc, limit, color = FONT_COLOR): if localeInfo.IsEUROPE(): self.__AppendDescription_WesternLanguage(desc, color) else: self.__AppendDescription_EasternLanguage(desc, limit, color) def __AppendDescription_EasternLanguage(self, description, characterLimitation, color=FONT_COLOR): length = len(description) if 0 == length: return lineCount = grpText.GetSplitingTextLineCount(description, characterLimitation) for i in xrange(lineCount): if 0 == i: self.AppendSpace(5) self.AppendTextLine(grpText.GetSplitingTextLine(description, characterLimitation, i), color) def __AppendDescription_WesternLanguage(self, desc, color=FONT_COLOR): lines = SplitDescription(desc, DESC_WESTERN_MAX_COLS) if not lines: return self.AppendSpace(5) for line in lines: self.AppendTextLine(line, color) def ResizeToolTip(self): self.SetSize(self.toolTipWidth, self.TOOL_TIP_HEIGHT + self.toolTipHeight) def ResizeToolTipText(self, x, y): self.SetSize(x, y) def SetTitle(self, name): self.AppendTextLine(name, self.TITLE_COLOR) def GetLimitTextLineColor(self, curValue, limitValue): if curValue < limitValue: return self.DISABLE_COLOR return self.ENABLE_COLOR def GetChangeTextLineColor(self, value, isSpecial=False): if value > 0: if isSpecial: return self.SPECIAL_POSITIVE_COLOR else: return self.POSITIVE_COLOR if 0 == value: return self.NORMAL_COLOR return self.NEGATIVE_COLOR def SetToolTipPosition(self, x = -1, y = -1): self.xPos = x self.yPos = y def ShowToolTip(self): self.SetTop() self.Show() self.OnUpdate() def HideToolTip(self): self.Hide() def OnUpdate(self): if not self.followFlag: return x = 0 y = 0 width = self.GetWidth() height = self.toolTipHeight if -1 == self.xPos and -1 == self.yPos: (mouseX, mouseY) = wndMgr.GetMousePosition() if mouseY < wndMgr.GetScreenHeight() - 300: y = mouseY + 40 else: y = mouseY - height - 30 x = mouseX - width/2 else: x = self.xPos - width/2 y = self.yPos - height x = max(x, 0) y = max(y, 0) x = min(x + width/2, wndMgr.GetScreenWidth() - width/2) - width/2 y = min(y + self.GetHeight(), wndMgr.GetScreenHeight()) - self.GetHeight() parentWindow = self.GetParentProxy() if parentWindow: (gx, gy) = parentWindow.GetGlobalPosition() x -= gx y -= gy self.SetPosition(x, y) class ItemToolTip(ToolTip): CHARACTER_NAMES = ( localeInfo.TOOLTIP_WARRIOR, localeInfo.TOOLTIP_ASSASSIN, localeInfo.TOOLTIP_SURA, localeInfo.TOOLTIP_SHAMAN, localeInfo.TOOLTIP_WOLFMAN ) CHARACTER_COUNT = len(CHARACTER_NAMES) WEAR_NAMES = ( localeInfo.TOOLTIP_ARMOR, localeInfo.TOOLTIP_HELMET, localeInfo.TOOLTIP_SHOES, localeInfo.TOOLTIP_WRISTLET, localeInfo.TOOLTIP_WEAPON, localeInfo.TOOLTIP_NECK, localeInfo.TOOLTIP_EAR, localeInfo.TOOLTIP_UNIQUE, localeInfo.TOOLTIP_SHIELD, localeInfo.TOOLTIP_ARROW, ) WEAR_COUNT = len(WEAR_NAMES) AFFECT_DICT = { item.APPLY_MAX_HP : localeInfo.TOOLTIP_MAX_HP, item.APPLY_MAX_SP : localeInfo.TOOLTIP_MAX_SP, item.APPLY_CON : localeInfo.TOOLTIP_CON, item.APPLY_INT : localeInfo.TOOLTIP_INT, item.APPLY_STR : localeInfo.TOOLTIP_STR, item.APPLY_DEX : localeInfo.TOOLTIP_DEX, item.APPLY_ATT_SPEED : localeInfo.TOOLTIP_ATT_SPEED, item.APPLY_MOV_SPEED : localeInfo.TOOLTIP_MOV_SPEED, item.APPLY_CAST_SPEED : localeInfo.TOOLTIP_CAST_SPEED, item.APPLY_HP_REGEN : localeInfo.TOOLTIP_HP_REGEN, item.APPLY_SP_REGEN : localeInfo.TOOLTIP_SP_REGEN, item.APPLY_POISON_PCT : localeInfo.TOOLTIP_APPLY_POISON_PCT, item.APPLY_STUN_PCT : localeInfo.TOOLTIP_APPLY_STUN_PCT, item.APPLY_SLOW_PCT : localeInfo.TOOLTIP_APPLY_SLOW_PCT, item.APPLY_CRITICAL_PCT : localeInfo.TOOLTIP_APPLY_CRITICAL_PCT, item.APPLY_PENETRATE_PCT : localeInfo.TOOLTIP_APPLY_PENETRATE_PCT, item.APPLY_ATTBONUS_WARRIOR : localeInfo.TOOLTIP_APPLY_ATTBONUS_WARRIOR, item.APPLY_ATTBONUS_ASSASSIN : localeInfo.TOOLTIP_APPLY_ATTBONUS_ASSASSIN, item.APPLY_ATTBONUS_SURA : localeInfo.TOOLTIP_APPLY_ATTBONUS_SURA, item.APPLY_ATTBONUS_SHAMAN : localeInfo.TOOLTIP_APPLY_ATTBONUS_SHAMAN, item.APPLY_ATTBONUS_WOLFMAN : localeInfo.TOOLTIP_APPLY_ATTBONUS_WOLFMAN, item.APPLY_ATTBONUS_MONSTER : localeInfo.TOOLTIP_APPLY_ATTBONUS_MONSTER, item.APPLY_ATTBONUS_HUMAN : localeInfo.TOOLTIP_APPLY_ATTBONUS_HUMAN, item.APPLY_ATTBONUS_ANIMAL : localeInfo.TOOLTIP_APPLY_ATTBONUS_ANIMAL, item.APPLY_ATTBONUS_ORC : localeInfo.TOOLTIP_APPLY_ATTBONUS_ORC, item.APPLY_ATTBONUS_MILGYO : localeInfo.TOOLTIP_APPLY_ATTBONUS_MILGYO, item.APPLY_ATTBONUS_UNDEAD : localeInfo.TOOLTIP_APPLY_ATTBONUS_UNDEAD, item.APPLY_ATTBONUS_DEVIL : localeInfo.TOOLTIP_APPLY_ATTBONUS_DEVIL, item.APPLY_STEAL_HP : localeInfo.TOOLTIP_APPLY_STEAL_HP, item.APPLY_STEAL_SP : localeInfo.TOOLTIP_APPLY_STEAL_SP, item.APPLY_MANA_BURN_PCT : localeInfo.TOOLTIP_APPLY_MANA_BURN_PCT, item.APPLY_DAMAGE_SP_RECOVER : localeInfo.TOOLTIP_APPLY_DAMAGE_SP_RECOVER, item.APPLY_BLOCK : localeInfo.TOOLTIP_APPLY_BLOCK, item.APPLY_DODGE : localeInfo.TOOLTIP_APPLY_DODGE, item.APPLY_RESIST_SWORD : localeInfo.TOOLTIP_APPLY_RESIST_SWORD, item.APPLY_RESIST_TWOHAND : localeInfo.TOOLTIP_APPLY_RESIST_TWOHAND, item.APPLY_RESIST_DAGGER : localeInfo.TOOLTIP_APPLY_RESIST_DAGGER, item.APPLY_RESIST_BELL : localeInfo.TOOLTIP_APPLY_RESIST_BELL, item.APPLY_RESIST_FAN : localeInfo.TOOLTIP_APPLY_RESIST_FAN, item.APPLY_RESIST_BOW : localeInfo.TOOLTIP_RESIST_BOW, item.APPLY_RESIST_FIRE : localeInfo.TOOLTIP_RESIST_FIRE, item.APPLY_RESIST_ELEC : localeInfo.TOOLTIP_RESIST_ELEC, item.APPLY_RESIST_MAGIC : localeInfo.TOOLTIP_RESIST_MAGIC, item.APPLY_RESIST_WIND : localeInfo.TOOLTIP_APPLY_RESIST_WIND, item.APPLY_RESIST_CLAW : localeInfo.TOOLTIP_APPLY_RESIST_CLAW, item.APPLY_REFLECT_MELEE : localeInfo.TOOLTIP_APPLY_REFLECT_MELEE, item.APPLY_REFLECT_CURSE : localeInfo.TOOLTIP_APPLY_REFLECT_CURSE, item.APPLY_POISON_REDUCE : localeInfo.TOOLTIP_APPLY_POISON_REDUCE, item.APPLY_KILL_SP_RECOVER : localeInfo.TOOLTIP_APPLY_KILL_SP_RECOVER, item.APPLY_EXP_DOUBLE_BONUS : localeInfo.TOOLTIP_APPLY_EXP_DOUBLE_BONUS, item.APPLY_GOLD_DOUBLE_BONUS : localeInfo.TOOLTIP_APPLY_GOLD_DOUBLE_BONUS, item.APPLY_ITEM_DROP_BONUS : localeInfo.TOOLTIP_APPLY_ITEM_DROP_BONUS, item.APPLY_POTION_BONUS : localeInfo.TOOLTIP_APPLY_POTION_BONUS, item.APPLY_KILL_HP_RECOVER : localeInfo.TOOLTIP_APPLY_KILL_HP_RECOVER, item.APPLY_IMMUNE_STUN : localeInfo.TOOLTIP_APPLY_IMMUNE_STUN, item.APPLY_IMMUNE_SLOW : localeInfo.TOOLTIP_APPLY_IMMUNE_SLOW, item.APPLY_IMMUNE_FALL : localeInfo.TOOLTIP_APPLY_IMMUNE_FALL, item.APPLY_BOW_DISTANCE : localeInfo.TOOLTIP_BOW_DISTANCE, item.APPLY_DEF_GRADE_BONUS : localeInfo.TOOLTIP_DEF_GRADE, item.APPLY_ATT_GRADE_BONUS : localeInfo.TOOLTIP_ATT_GRADE, item.APPLY_MAGIC_ATT_GRADE : localeInfo.TOOLTIP_MAGIC_ATT_GRADE, item.APPLY_MAGIC_DEF_GRADE : localeInfo.TOOLTIP_MAGIC_DEF_GRADE, item.APPLY_MAX_STAMINA : localeInfo.TOOLTIP_MAX_STAMINA, item.APPLY_MALL_ATTBONUS : localeInfo.TOOLTIP_MALL_ATTBONUS, item.APPLY_MALL_DEFBONUS : localeInfo.TOOLTIP_MALL_DEFBONUS, item.APPLY_MALL_EXPBONUS : localeInfo.TOOLTIP_MALL_EXPBONUS, item.APPLY_MALL_ITEMBONUS : localeInfo.TOOLTIP_MALL_ITEMBONUS, item.APPLY_MALL_GOLDBONUS : localeInfo.TOOLTIP_MALL_GOLDBONUS, item.APPLY_SKILL_DAMAGE_BONUS : localeInfo.TOOLTIP_SKILL_DAMAGE_BONUS, item.APPLY_NORMAL_HIT_DAMAGE_BONUS : localeInfo.TOOLTIP_NORMAL_HIT_DAMAGE_BONUS, item.APPLY_SKILL_DEFEND_BONUS : localeInfo.TOOLTIP_SKILL_DEFEND_BONUS, item.APPLY_NORMAL_HIT_DEFEND_BONUS : localeInfo.TOOLTIP_NORMAL_HIT_DEFEND_BONUS, item.APPLY_PC_BANG_EXP_BONUS : localeInfo.TOOLTIP_MALL_EXPBONUS_P_STATIC, item.APPLY_PC_BANG_DROP_BONUS : localeInfo.TOOLTIP_MALL_ITEMBONUS_P_STATIC, item.APPLY_RESIST_WARRIOR : localeInfo.TOOLTIP_APPLY_RESIST_WARRIOR, item.APPLY_RESIST_ASSASSIN : localeInfo.TOOLTIP_APPLY_RESIST_ASSASSIN, item.APPLY_RESIST_SURA : localeInfo.TOOLTIP_APPLY_RESIST_SURA, item.APPLY_RESIST_SHAMAN : localeInfo.TOOLTIP_APPLY_RESIST_SHAMAN, item.APPLY_RESIST_WOLFMAN : localeInfo.TOOLTIP_APPLY_RESIST_WOLFMAN, item.APPLY_MAX_HP_PCT : localeInfo.TOOLTIP_APPLY_MAX_HP_PCT, item.APPLY_MAX_SP_PCT : localeInfo.TOOLTIP_APPLY_MAX_SP_PCT, item.APPLY_ENERGY : localeInfo.TOOLTIP_ENERGY, item.APPLY_COSTUME_ATTR_BONUS : localeInfo.TOOLTIP_COSTUME_ATTR_BONUS, item.APPLY_MAGIC_ATTBONUS_PER : localeInfo.TOOLTIP_MAGIC_ATTBONUS_PER, item.APPLY_MELEE_MAGIC_ATTBONUS_PER : localeInfo.TOOLTIP_MELEE_MAGIC_ATTBONUS_PER, item.APPLY_RESIST_ICE : localeInfo.TOOLTIP_RESIST_ICE, item.APPLY_RESIST_EARTH : localeInfo.TOOLTIP_RESIST_EARTH, item.APPLY_RESIST_DARK : localeInfo.TOOLTIP_RESIST_DARK, item.APPLY_ANTI_CRITICAL_PCT : localeInfo.TOOLTIP_ANTI_CRITICAL_PCT, item.APPLY_ANTI_PENETRATE_PCT : localeInfo.TOOLTIP_ANTI_PENETRATE_PCT, } if app.ENABLE_ANTI_RESIST_MAGIC_BONUS_SYSTEM: AFFECT_DICT.update({ item.APPLY_ANTI_RESIST_MAGIC : localeInfo.APPLY_ANTI_RESIST_MAGIC, }) ATTRIBUTE_NEED_WIDTH = { 23 : 230, 24 : 230, 25 : 230, 26 : 220, 27 : 210, 35 : 210, 36 : 210, 37 : 210, 38 : 210, 39 : 210, 40 : 210, 41 : 210, 42 : 220, 43 : 230, 45 : 230, } ANTI_FLAG_DICT = { 0 : item.ITEM_ANTIFLAG_WARRIOR, 1 : item.ITEM_ANTIFLAG_ASSASSIN, 2 : item.ITEM_ANTIFLAG_SURA, 3 : item.ITEM_ANTIFLAG_SHAMAN, 4 : item.ITEM_ANTIFLAG_WOLFMAN } FONT_COLOR = grp.GenerateColor(0.7607, 0.7607, 0.7607, 1.0) def __init__(self, *args, **kwargs): ToolTip.__init__(self, *args, **kwargs) self.itemVnum = 0 self.isShopItem = False # ¾ÆÀÌÅÛ ÅøÆÁÀ» Ç¥½ÃÇÒ ¶§ ÇöÀç ij¸¯ÅÍ°¡ Âø¿ëÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀ̶ó¸é °­Á¦·Î Disable Color·Î ¼³Á¤ (ÀÌ¹Ì ±×·¸°Ô ÀÛµ¿ÇÏ°í ÀÖÀ¸³ª ²¨¾ß ÇÒ ÇÊ¿ä°¡ À־) self.bCannotUseItemForceSetDisableColor = True def __del__(self): ToolTip.__del__(self) def SetCannotUseItemForceSetDisableColor(self, enable): self.bCannotUseItemForceSetDisableColor = enable def CanEquip(self): if not item.IsEquipmentVID(self.itemVnum): return True race = player.GetRace() job = chr.RaceToJob(race) if not self.ANTI_FLAG_DICT.has_key(job): return False if item.IsAntiFlag(self.ANTI_FLAG_DICT[job]): return False sex = chr.RaceToSex(race) MALE = 1 FEMALE = 0 if item.IsAntiFlag(item.ITEM_ANTIFLAG_MALE) and sex == MALE: return False if item.IsAntiFlag(item.ITEM_ANTIFLAG_FEMALE) and sex == FEMALE: return False for i in xrange(item.LIMIT_MAX_NUM): (limitType, limitValue) = item.GetLimit(i) if item.LIMIT_LEVEL == limitType: if player.GetStatus(player.LEVEL) < limitValue: return False """ elif item.LIMIT_STR == limitType: if player.GetStatus(player.ST) < limitValue: return False elif item.LIMIT_DEX == limitType: if player.GetStatus(player.DX) < limitValue: return False elif item.LIMIT_INT == limitType: if player.GetStatus(player.IQ) < limitValue: return False elif item.LIMIT_CON == limitType: if player.GetStatus(player.HT) < limitValue: return False """ return True def AppendTextLine(self, text, color = FONT_COLOR, centerAlign = True): if not self.CanEquip() and self.bCannotUseItemForceSetDisableColor: color = self.DISABLE_COLOR return ToolTip.AppendTextLine(self, text, color, centerAlign) def ClearToolTip(self): self.isShopItem = False self.toolTipWidth = self.TOOL_TIP_WIDTH ToolTip.ClearToolTip(self) def SetInventoryItem(self, slotIndex, window_type = player.INVENTORY): itemVnum = player.GetItemIndex(window_type, slotIndex) if 0 == itemVnum: return self.ClearToolTip() if shop.IsOpen(): if not shop.IsPrivateShop(): item.SelectItem(itemVnum) self.AppendSellingPrice(player.GetISellItemPrice(window_type, slotIndex)) metinSlot = [player.GetItemMetinSocket(window_type, slotIndex, i) for i in xrange(player.METIN_SOCKET_MAX_NUM)] attrSlot = [player.GetItemAttribute(window_type, slotIndex, i) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM)] self.AddItemData(itemVnum, metinSlot, attrSlot) if app.ENABLE_SOULBIND_SYSTEM: self.__AppendSealInformation(player.INVENTORY, slotIndex) def SetShopItem(self, slotIndex): itemVnum = shop.GetItemID(slotIndex) if 0 == itemVnum: return price = shop.GetItemPrice(slotIndex) self.ClearToolTip() self.isShopItem = True metinSlot = [] for i in xrange(player.METIN_SOCKET_MAX_NUM): metinSlot.append(shop.GetItemMetinSocket(slotIndex, i)) attrSlot = [] for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): attrSlot.append(shop.GetItemAttribute(slotIndex, i)) self.AddItemData(itemVnum, metinSlot, attrSlot) self.AppendPrice(price) def SetShopItemBySecondaryCoin(self, slotIndex): itemVnum = shop.GetItemID(slotIndex) if 0 == itemVnum: return price = shop.GetItemPrice(slotIndex) self.ClearToolTip() self.isShopItem = True metinSlot = [] for i in xrange(player.METIN_SOCKET_MAX_NUM): metinSlot.append(shop.GetItemMetinSocket(slotIndex, i)) attrSlot = [] for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): attrSlot.append(shop.GetItemAttribute(slotIndex, i)) self.AddItemData(itemVnum, metinSlot, attrSlot) self.AppendPriceBySecondaryCoin(price) def SetExchangeOwnerItem(self, slotIndex): itemVnum = exchange.GetItemVnumFromSelf(slotIndex) if 0 == itemVnum: return self.ClearToolTip() metinSlot = [] for i in xrange(player.METIN_SOCKET_MAX_NUM): metinSlot.append(exchange.GetItemMetinSocketFromSelf(slotIndex, i)) attrSlot = [] for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): attrSlot.append(exchange.GetItemAttributeFromSelf(slotIndex, i)) self.AddItemData(itemVnum, metinSlot, attrSlot) def SetExchangeTargetItem(self, slotIndex): itemVnum = exchange.GetItemVnumFromTarget(slotIndex) if 0 == itemVnum: return self.ClearToolTip() metinSlot = [] for i in xrange(player.METIN_SOCKET_MAX_NUM): metinSlot.append(exchange.GetItemMetinSocketFromTarget(slotIndex, i)) attrSlot = [] for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): attrSlot.append(exchange.GetItemAttributeFromTarget(slotIndex, i)) self.AddItemData(itemVnum, metinSlot, attrSlot) def SetPrivateShopBuilderItem(self, invenType, invenPos, privateShopSlotIndex): itemVnum = player.GetItemIndex(invenType, invenPos) if 0 == itemVnum: return item.SelectItem(itemVnum) self.ClearToolTip() self.AppendSellingPrice(shop.GetPrivateShopItemPrice(invenType, invenPos)) metinSlot = [] for i in xrange(player.METIN_SOCKET_MAX_NUM): metinSlot.append(player.GetItemMetinSocket(invenPos, i)) attrSlot = [] for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): attrSlot.append(player.GetItemAttribute(invenPos, i)) self.AddItemData(itemVnum, metinSlot, attrSlot) def SetSafeBoxItem(self, slotIndex): itemVnum = safebox.GetItemID(slotIndex) if 0 == itemVnum: return self.ClearToolTip() metinSlot = [] for i in xrange(player.METIN_SOCKET_MAX_NUM): metinSlot.append(safebox.GetItemMetinSocket(slotIndex, i)) attrSlot = [] for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): attrSlot.append(safebox.GetItemAttribute(slotIndex, i)) self.AddItemData(itemVnum, metinSlot, attrSlot, safebox.GetItemFlags(slotIndex)) if app.ENABLE_SOULBIND_SYSTEM: self.__AppendSealInformation(player.SAFEBOX, slotIndex) def SetMallItem(self, slotIndex): itemVnum = safebox.GetMallItemID(slotIndex) if 0 == itemVnum: return self.ClearToolTip() metinSlot = [] for i in xrange(player.METIN_SOCKET_MAX_NUM): metinSlot.append(safebox.GetMallItemMetinSocket(slotIndex, i)) attrSlot = [] for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): attrSlot.append(safebox.GetMallItemAttribute(slotIndex, i)) self.AddItemData(itemVnum, metinSlot, attrSlot) if app.ENABLE_SOULBIND_SYSTEM: self.__AppendSealInformation(player.MALL, slotIndex) def SetItemToolTip(self, itemVnum): self.ClearToolTip() metinSlot = [] for i in xrange(player.METIN_SOCKET_MAX_NUM): metinSlot.append(0) attrSlot = [] for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): attrSlot.append((0, 0)) self.AddItemData(itemVnum, metinSlot, attrSlot) def __AppendAttackSpeedInfo(self, item): atkSpd = item.GetValue(0) if atkSpd < 80: stSpd = localeInfo.TOOLTIP_ITEM_VERY_FAST elif atkSpd <= 95: stSpd = localeInfo.TOOLTIP_ITEM_FAST elif atkSpd <= 105: stSpd = localeInfo.TOOLTIP_ITEM_NORMAL elif atkSpd <= 120: stSpd = localeInfo.TOOLTIP_ITEM_SLOW else: stSpd = localeInfo.TOOLTIP_ITEM_VERY_SLOW self.AppendTextLine(localeInfo.TOOLTIP_ITEM_ATT_SPEED % stSpd, self.NORMAL_COLOR) def __AppendAttackGradeInfo(self): atkGrade = item.GetValue(1) self.AppendTextLine(localeInfo.TOOLTIP_ITEM_ATT_GRADE % atkGrade, self.GetChangeTextLineColor(atkGrade)) def __AppendAttackPowerInfo(self): minPower = item.GetValue(3) maxPower = item.GetValue(4) addPower = item.GetValue(5) if maxPower > minPower: self.AppendTextLine(localeInfo.TOOLTIP_ITEM_ATT_POWER % (minPower+addPower, maxPower+addPower), self.POSITIVE_COLOR) else: self.AppendTextLine(localeInfo.TOOLTIP_ITEM_ATT_POWER_ONE_ARG % (minPower+addPower), self.POSITIVE_COLOR) def __AppendMagicAttackInfo(self): minMagicAttackPower = item.GetValue(1) maxMagicAttackPower = item.GetValue(2) addPower = item.GetValue(5) if minMagicAttackPower > 0 or maxMagicAttackPower > 0: if maxMagicAttackPower > minMagicAttackPower: self.AppendTextLine(localeInfo.TOOLTIP_ITEM_MAGIC_ATT_POWER % (minMagicAttackPower+addPower, maxMagicAttackPower+addPower), self.POSITIVE_COLOR) else: self.AppendTextLine(localeInfo.TOOLTIP_ITEM_MAGIC_ATT_POWER_ONE_ARG % (minMagicAttackPower+addPower), self.POSITIVE_COLOR) def __AppendMagicDefenceInfo(self): magicDefencePower = item.GetValue(0) if magicDefencePower > 0: self.AppendTextLine(localeInfo.TOOLTIP_ITEM_MAGIC_DEF_POWER % magicDefencePower, self.GetChangeTextLineColor(magicDefencePower)) def __AppendAttributeInformation(self, attrSlot): if 0 != attrSlot: for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): type = attrSlot[i][0] value = attrSlot[i][1] if 0 == value: continue affectString = self.__GetAffectString(type, value) if affectString: affectColor = self.__GetAttributeColor(i, value) self.AppendTextLine(affectString, affectColor) def __AppendAcceAttributeInformation(self, attrSlot): if 0 != attrSlot: hasAttack = 0 hasMagicAttack = 0 minPower = 0 maxPower = 0 minMagicAttackPower = 0 maxMagicAttackPower = 0 for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): if i <= 6: continue else: type = attrSlot[i][0] value = attrSlot[i][1] if 0 == value: continue if type == 53 and i == 8: hasAttack = 1 minPower = value elif type == 53 and i == 9: hasAttack = 1 maxPower = value elif type == 55 and i == 10: hasMagicAttack = 1 minMagicAttackPower = value elif type == 55 and i == 11: hasMagicAttack = 1 maxMagicAttackPower = value if hasAttack == 1: self.__AppendAttackAccePowerInfo(minPower, maxPower) if hasMagicAttack == 1: self.__AppendMagicAttackAcceInfo(minMagicAttackPower, maxMagicAttackPower) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): if i <= 6 or i >= 8 and i <= 11: continue else: type = attrSlot[i][0] value = attrSlot[i][1] if 0 == value: continue affectString = self.__GetAffectString(type, value) if affectString: affectColor = self.__GetAttributeColor(i, value) self.AppendTextLine(affectString, affectColor) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): if i >= 7: continue else: type = attrSlot[i][0] value = attrSlot[i][1] if 0 == value: continue affectString = self.__GetAffectString(type, value) if affectString: affectColor = self.__GetAttributeColor(i, value) self.AppendTextLine(affectString, affectColor) def __AppendAttackAccePowerInfo(self, minPower, maxPower): minPower_final = minPower maxPower_final = maxPower if maxPower > minPower: self.AppendTextLine(localeInfo.TOOLTIP_ITEM_ATT_POWER % (minPower_final, maxPower_final), self.POSITIVE_COLOR) else: self.AppendTextLine(localeInfo.TOOLTIP_ITEM_ATT_POWER_ONE_ARG % (minPower_final), self.POSITIVE_COLOR) def __AppendMagicAttackAcceInfo(self, minMagicAttackPower, maxMagicAttackPower): minMagicAttackPower_final = minMagicAttackPower maxMagicAttackPower_final = maxMagicAttackPower if minMagicAttackPower_final > 0 or maxMagicAttackPower_final > 0: if maxMagicAttackPower_final > minMagicAttackPower_final: self.AppendTextLine(localeInfo.TOOLTIP_ITEM_MAGIC_ATT_POWER % (minMagicAttackPower_final, maxMagicAttackPower_final), self.POSITIVE_COLOR) else: self.AppendTextLine(localeInfo.TOOLTIP_ITEM_MAGIC_ATT_POWER_ONE_ARG % (minMagicAttackPower_final), self.POSITIVE_COLOR) def __GetAttributeColor(self, index, value): if value > 0: if index >= 5 and index <= 6: return self.SPECIAL_POSITIVE_COLOR2 elif index >= 7: return self.POSITIVE_COLOR else: return self.SPECIAL_POSITIVE_COLOR elif value == 0: return self.NORMAL_COLOR else: return self.NEGATIVE_COLOR def __IsPolymorphItem(self, itemVnum): if itemVnum >= 70103 and itemVnum <= 70106: return 1 return 0 def __SetPolymorphItemTitle(self, monsterVnum): if localeInfo.IsVIETNAM(): itemName =item.GetItemName() itemName+=" " itemName+=nonplayer.GetMonsterName(monsterVnum) else: itemName =nonplayer.GetMonsterName(monsterVnum) itemName+=" " itemName+=item.GetItemName() self.SetTitle(itemName) def __SetNormalItemTitle(self): self.SetTitle(item.GetItemName()) def __SetSpecialItemTitle(self): self.AppendTextLine(item.GetItemName(), self.SPECIAL_TITLE_COLOR) def __SetItemTitle(self, itemVnum, metinSlot, attrSlot): if localeInfo.IsCANADA(): if 72726 == itemVnum or 72730 == itemVnum: self.AppendTextLine(item.GetItemName(), grp.GenerateColor(1.0, 0.7843, 0.0, 1.0)) return if self.__IsPolymorphItem(itemVnum): self.__SetPolymorphItemTitle(metinSlot[0]) else: if self.__IsAttr(attrSlot): self.__SetSpecialItemTitle() return self.__SetNormalItemTitle() def __IsAttr(self, attrSlot): if not attrSlot: return False for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): type = attrSlot[i][0] if 0 != type: return True return False def AddRefineItemData(self, itemVnum, metinSlot, attrSlot = 0): for i in xrange(player.METIN_SOCKET_MAX_NUM): metinSlotData=metinSlot[i] if self.GetMetinItemIndex(metinSlotData) == constInfo.ERROR_METIN_STONE: metinSlot[i]=player.METIN_SOCKET_TYPE_SILVER self.AddItemData(itemVnum, metinSlot, attrSlot) def AddItemData_Offline(self, itemVnum, itemDesc, itemSummary, metinSlot, attrSlot): self.__AdjustMaxWidth(attrSlot, itemDesc) self.__SetItemTitle(itemVnum, metinSlot, attrSlot) if self.__IsHair(itemVnum): self.__AppendHairIcon(itemVnum) ### Description ### self.AppendDescription(itemDesc, 26) self.AppendDescription(itemSummary, 26, self.CONDITION_COLOR) def check_sigillo(self, item_vnum): for x in range(55701,55707): if x == item_vnum: return TRUE if item_vnum == 55801: return TRUE return FALSE def AddItemData(self, itemVnum, metinSlot, attrSlot = 0, flags = 0, unbindTime = 0): self.itemVnum = itemVnum item.SelectItem(itemVnum) itemType = item.GetItemType() itemSubType = item.GetItemSubType() if 50026 == itemVnum: if 0 != metinSlot: name = item.GetItemName() if metinSlot[0] > 0: name += " " name += localeInfo.NumberToMoneyString(metinSlot[0]) self.SetTitle(name) self.ShowToolTip() return ### Skill Book ### elif 50300 == itemVnum: if 0 != metinSlot: self.__SetSkillBookToolTip(metinSlot[0], localeInfo.TOOLTIP_SKILLBOOK_NAME, 1) self.ShowToolTip() return elif 70037 == itemVnum: if 0 != metinSlot: self.__SetSkillBookToolTip(metinSlot[0], localeInfo.TOOLTIP_SKILL_FORGET_BOOK_NAME, 0) self.AppendDescription(item.GetItemDescription(), 26) self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR) self.ShowToolTip() return elif 70055 == itemVnum: if 0 != metinSlot: self.__SetSkillBookToolTip(metinSlot[0], localeInfo.TOOLTIP_SKILL_FORGET_BOOK_NAME, 0) self.AppendDescription(item.GetItemDescription(), 26) self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR) self.ShowToolTip() return ########################################################################################### itemDesc = item.GetItemDescription() itemSummary = item.GetItemSummary() isCostumeItem = 0 isCostumeHair = 0 isCostumeBody = 0 isCostumeAcce = 0 isCostumeMount = 0 if app.ENABLE_COSTUME_WEAPON_SYSTEM: isCostumeWeapon = 0 isCostumeMount = 0 if app.ENABLE_COSTUME_SYSTEM: if item.ITEM_TYPE_COSTUME == itemType: isCostumeItem = 1 isCostumeHair = item.COSTUME_TYPE_HAIR == itemSubType isCostumeBody = item.COSTUME_TYPE_BODY == itemSubType isCostumeAcce = item.COSTUME_TYPE_ACCE == itemSubType if app.ENABLE_COSTUME_WEAPON_SYSTEM: isCostumeWeapon = item.COSTUME_TYPE_WEAPON == itemSubType isCostumeMount = item.COSTUME_TYPE_MOUNT == itemSubType #dbg.TraceError("IS_COSTUME_ITEM! body(%d) hair(%d)" % (isCostumeBody, isCostumeHair)) self.__AdjustMaxWidth(attrSlot, itemDesc) self.__SetItemTitle(itemVnum, metinSlot, attrSlot) ### Hair Preview Image ### if self.__IsHair(itemVnum): self.__AppendHairIcon(itemVnum) ### Description ### self.AppendDescription(itemDesc, 26) self.AppendDescription(itemSummary, 26, self.CONDITION_COLOR) if self.check_sigillo(itemVnum) or itemVnum == 55002: if attrSlot[0][1] != 0: self.AppendSpace(5) self.AppendTextLine("Niveau : "+str(metinSlot[1]), self.NORMAL_COLOR) self.AppendTextLine("PV : +"+pointop(str(attrSlot[0][1]))+"%", self.SPECIAL_POSITIVE_COLOR) self.AppendTextLine("DEF : +"+pointop(str(attrSlot[1][1]))+"%", self.SPECIAL_POSITIVE_COLOR) self.AppendTextLine("PM : +"+pointop(str(attrSlot[2][1]))+"%", self.SPECIAL_POSITIVE_COLOR) self.AppendSpace(5) if itemVnum != 55002: days = (int(attrSlot[3][1])/60)/24 hours = (int(attrSlot[3][1]) - (days*60*24)) / 60 mins = int(attrSlot[3][1]) - (days*60*24) - (hours*60) self.AppendTextLine("Temps restant : %d Jours %d Heures %d Minutes" % (days, hours, mins), self.SPECIAL_POSITIVE_COLOR) ### Weapon ### if item.ITEM_TYPE_WEAPON == itemType: self.__AppendLimitInformation() self.AppendSpace(5) if item.WEAPON_FAN == itemSubType: self.__AppendMagicAttackInfo() self.__AppendAttackPowerInfo() else: self.__AppendAttackPowerInfo() self.__AppendMagicAttackInfo() self.__AppendAffectInformation() self.__AppendAttributeInformation(attrSlot) self.AppendWearableInformation() if itemSubType != item.WEAPON_ARROW: self.__AppendMetinSlotInfo(metinSlot) else: bHasRealtimeFlag = 0 for i in xrange(item.LIMIT_MAX_NUM): (limitType, limitValue) = item.GetLimit(i) if item.LIMIT_REAL_TIME == limitType: bHasRealtimeFlag = 1 if bHasRealtimeFlag == 1: self.AppendMallItemLastTime(metinSlot[0]) ### Armor ### elif item.ITEM_TYPE_ARMOR == itemType: self.__AppendLimitInformation() ## ¹æ¾î·Â defGrade = item.GetValue(1) defBonus = item.GetValue(5)*2 ## ¹æ¾î·Â Ç¥½Ã À߸ø µÇ´Â ¹®Á¦¸¦ ¼öÁ¤ if defGrade > 0: self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_ITEM_DEF_GRADE % (defGrade+defBonus), self.GetChangeTextLineColor(defGrade)) self.__AppendMagicDefenceInfo() self.__AppendAffectInformation() self.__AppendAttributeInformation(attrSlot) self.AppendWearableInformation() if itemSubType in (item.ARMOR_WRIST, item.ARMOR_NECK, item.ARMOR_EAR): self.__AppendAccessoryMetinSlotInfo(metinSlot, constInfo.GET_ACCESSORY_MATERIAL_VNUM(itemVnum, itemSubType)) else: self.__AppendMetinSlotInfo(metinSlot) ### Ring Slot Item (Not UNIQUE) ### elif item.ITEM_TYPE_RING == itemType: self.__AppendLimitInformation() self.__AppendAffectInformation() self.__AppendAttributeInformation(attrSlot) #¹ÝÁö ¼ÒÄÏ ½Ã½ºÅÛ °ü·ÃÇؼ± ¾ÆÁ÷ ±âȹ ¹ÌÁ¤ #self.__AppendAccessoryMetinSlotInfo(metinSlot, 99001) ### Belt Item ### elif item.ITEM_TYPE_BELT == itemType: self.__AppendLimitInformation() self.__AppendAffectInformation() self.__AppendAttributeInformation(attrSlot) self.__AppendAccessoryMetinSlotInfo(metinSlot, constInfo.GET_BELT_MATERIAL_VNUM(itemVnum)) ## ÄÚ½ºÃõ ¾ÆÀÌÅÛ ## elif 0 != isCostumeItem: self.__AppendLimitInformation() self.__AppendAffectInformation() if isCostumeAcce != 0: self.__AppendAcceAttributeInformation(attrSlot) else: self.__AppendAttributeInformation(attrSlot) self.AppendWearableInformation() bHasRealtimeFlag = 0 for i in xrange(item.LIMIT_MAX_NUM): (limitType, limitValue) = item.GetLimit(i) if item.LIMIT_REAL_TIME == limitType: bHasRealtimeFlag = 1 if 1 == bHasRealtimeFlag: self.AppendMallItemLastTime(metinSlot[0]) if isCostumeAcce != 0: if metinSlot != 0: absChance = int(metinSlot[1]) if absChance > 0: self.AppendSpace(5) self.AppendTextLine(localeInfo.ACCE_ABSORB_CHANCE % (absChance), self.CONDITION_COLOR) ## Rod ## elif item.ITEM_TYPE_ROD == itemType: if 0 != metinSlot: curLevel = item.GetValue(0) / 10 curEXP = metinSlot[0] maxEXP = item.GetValue(2) self.__AppendLimitInformation() self.__AppendRodInformation(curLevel, curEXP, maxEXP) ## Pick ## elif item.ITEM_TYPE_PICK == itemType: if 0 != metinSlot: curLevel = item.GetValue(0) / 10 curEXP = metinSlot[0] maxEXP = item.GetValue(2) self.__AppendLimitInformation() self.__AppendPickInformation(curLevel, curEXP, maxEXP) ## Lottery ## elif item.ITEM_TYPE_LOTTERY == itemType: if 0 != metinSlot: ticketNumber = int(metinSlot[0]) stepNumber = int(metinSlot[1]) self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_LOTTERY_STEP_NUMBER % (stepNumber), self.NORMAL_COLOR) self.AppendTextLine(localeInfo.TOOLTIP_LOTTO_NUMBER % (ticketNumber), self.NORMAL_COLOR); ### Metin ### elif item.ITEM_TYPE_METIN == itemType: self.AppendMetinInformation() self.AppendMetinWearInformation() ### Fish ### elif item.ITEM_TYPE_FISH == itemType: if 0 != metinSlot: self.__AppendFishInfo(metinSlot[0]) ## item.ITEM_TYPE_BLEND elif item.ITEM_TYPE_BLEND == itemType: self.__AppendLimitInformation() if metinSlot: affectType = metinSlot[0] affectValue = metinSlot[1] time = metinSlot[2] self.AppendSpace(5) affectText = self.__GetAffectString(affectType, affectValue) self.AppendTextLine(affectText, self.NORMAL_COLOR) if time > 0: minute = (time / 60) second = (time % 60) timeString = localeInfo.TOOLTIP_POTION_TIME if minute > 0: timeString += str(minute) + localeInfo.TOOLTIP_POTION_MIN if second > 0: timeString += " " + str(second) + localeInfo.TOOLTIP_POTION_SEC self.AppendTextLine(timeString) else: self.AppendTextLine(localeInfo.BLEND_POTION_NO_TIME) else: self.AppendTextLine("BLEND_POTION_NO_INFO") elif item.ITEM_TYPE_UNIQUE == itemType: if 0 != metinSlot: bHasRealtimeFlag = 0 for i in xrange(item.LIMIT_MAX_NUM): (limitType, limitValue) = item.GetLimit(i) if item.LIMIT_REAL_TIME == limitType: bHasRealtimeFlag = 1 if 1 == bHasRealtimeFlag: self.AppendMallItemLastTime(metinSlot[0]) else: time = metinSlot[player.METIN_SOCKET_MAX_NUM-1] if 1 == item.GetValue(2): ## ½Ç½Ã°£ ÀÌ¿ë Flag / ÀåÂø ¾ÈÇصµ ÁØ´Ù self.AppendMallItemLastTime(time) else: self.AppendUniqueItemLastTime(time) ### Use ### elif item.ITEM_TYPE_USE == itemType: self.__AppendLimitInformation() if item.USE_POTION == itemSubType or item.USE_POTION_NODELAY == itemSubType: self.__AppendPotionInformation() elif item.USE_ABILITY_UP == itemSubType: self.__AppendAbilityPotionInformation() ## ¿µ¼® °¨Áö±â if 27989 == itemVnum or 76006 == itemVnum: if 0 != metinSlot: useCount = int(metinSlot[0]) self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_REST_USABLE_COUNT % (6 - useCount), self.NORMAL_COLOR) ## À̺¥Æ® °¨Áö±â elif 50004 == itemVnum: if 0 != metinSlot: useCount = int(metinSlot[0]) self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_REST_USABLE_COUNT % (10 - useCount), self.NORMAL_COLOR) ## ÀÚµ¿¹°¾à elif constInfo.IS_AUTO_POTION(itemVnum): if 0 != metinSlot: ## 0: È°¼ºÈ­, 1: »ç¿ë·®, 2: ÃÑ·® isActivated = int(metinSlot[0]) usedAmount = float(metinSlot[1]) totalAmount = float(metinSlot[2]) if 0 == totalAmount: totalAmount = 1 self.AppendSpace(5) if 0 != isActivated: self.AppendTextLine("(%s)" % (localeInfo.TOOLTIP_AUTO_POTION_USING), self.SPECIAL_POSITIVE_COLOR) self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_AUTO_POTION_REST % (100.0 - ((usedAmount / totalAmount) * 100.0)), self.POSITIVE_COLOR) ## ±Íȯ ±â¾ïºÎ elif itemVnum in WARP_SCROLLS: if 0 != metinSlot: xPos = int(metinSlot[0]) yPos = int(metinSlot[1]) if xPos != 0 and yPos != 0: (mapName, xBase, yBase) = background.GlobalPositionToMapInfo(xPos, yPos) localeMapName=localeInfo.MINIMAP_ZONE_NAME_DICT.get(mapName, "") self.AppendSpace(5) if localeMapName!="": self.AppendTextLine(localeInfo.TOOLTIP_MEMORIZED_POSITION % (localeMapName, int(xPos-xBase)/100, int(yPos-yBase)/100), self.NORMAL_COLOR) else: self.AppendTextLine(localeInfo.TOOLTIP_MEMORIZED_POSITION_ERROR % (int(xPos)/100, int(yPos)/100), self.NORMAL_COLOR) dbg.TraceError("NOT_EXIST_IN_MINIMAP_ZONE_NAME_DICT: %s" % mapName) ##### if item.USE_SPECIAL == itemSubType: bHasRealtimeFlag = 0 for i in xrange(item.LIMIT_MAX_NUM): (limitType, limitValue) = item.GetLimit(i) if item.LIMIT_REAL_TIME == limitType: bHasRealtimeFlag = 1 ## ÀÖ´Ù¸é °ü·Ã Á¤º¸¸¦ Ç¥½ÃÇÔ. ex) ³²Àº ½Ã°£ : 6ÀÏ 6½Ã°£ 58ºÐ if 1 == bHasRealtimeFlag: self.AppendMallItemLastTime(metinSlot[0]) else: # ... ÀÌ°Å... ¼­¹ö¿¡´Â ÀÌ·± ½Ã°£ üũ ¾ÈµÇ¾î Àִµ¥... # ¿Ö ÀÌ·±°Ô ÀÖ´ÂÁö ¾ËÁö´Â ¸øÇϳª ±×³É µÎÀÚ... if 0 != metinSlot: time = metinSlot[player.METIN_SOCKET_MAX_NUM-1] ## ½Ç½Ã°£ ÀÌ¿ë Flag if 1 == item.GetValue(2): self.AppendMallItemLastTime(time) elif item.USE_TIME_CHARGE_PER == itemSubType: bHasRealtimeFlag = 0 for i in xrange(item.LIMIT_MAX_NUM): (limitType, limitValue) = item.GetLimit(i) if item.LIMIT_REAL_TIME == limitType: bHasRealtimeFlag = 1 if metinSlot[2]: self.AppendTextLine(localeInfo.TOOLTIP_TIME_CHARGER_PER(metinSlot[2])) else: self.AppendTextLine(localeInfo.TOOLTIP_TIME_CHARGER_PER(item.GetValue(0))) ## ÀÖ´Ù¸é °ü·Ã Á¤º¸¸¦ Ç¥½ÃÇÔ. ex) ³²Àº ½Ã°£ : 6ÀÏ 6½Ã°£ 58ºÐ if 1 == bHasRealtimeFlag: self.AppendMallItemLastTime(metinSlot[0]) elif item.USE_TIME_CHARGE_FIX == itemSubType: bHasRealtimeFlag = 0 for i in xrange(item.LIMIT_MAX_NUM): (limitType, limitValue) = item.GetLimit(i) if item.LIMIT_REAL_TIME == limitType: bHasRealtimeFlag = 1 if metinSlot[2]: self.AppendTextLine(localeInfo.TOOLTIP_TIME_CHARGER_FIX(metinSlot[2])) else: self.AppendTextLine(localeInfo.TOOLTIP_TIME_CHARGER_FIX(item.GetValue(0))) ## ÀÖ´Ù¸é °ü·Ã Á¤º¸¸¦ Ç¥½ÃÇÔ. ex) ³²Àº ½Ã°£ : 6ÀÏ 6½Ã°£ 58ºÐ if 1 == bHasRealtimeFlag: self.AppendMallItemLastTime(metinSlot[0]) elif item.ITEM_TYPE_QUEST == itemType: for i in xrange(item.LIMIT_MAX_NUM): (limitType, limitValue) = item.GetLimit(i) if item.LIMIT_REAL_TIME == limitType: self.AppendMallItemLastTime(metinSlot[0]) elif item.ITEM_TYPE_DS == itemType: self.AppendTextLine(self.__DragonSoulInfoString(itemVnum)) self.__AppendAttributeInformation(attrSlot) else: self.__AppendLimitInformation() for i in xrange(item.LIMIT_MAX_NUM): (limitType, limitValue) = item.GetLimit(i) #dbg.TraceError("LimitType : %d, limitValue : %d" % (limitType, limitValue)) if item.LIMIT_REAL_TIME_START_FIRST_USE == limitType: self.AppendRealTimeStartFirstUseLastTime(item, metinSlot, i) #dbg.TraceError("2) REAL_TIME_START_FIRST_USE flag On ") elif item.LIMIT_TIMER_BASED_ON_WEAR == limitType: self.AppendTimerBasedOnWearLastTime(metinSlot) #dbg.TraceError("1) REAL_TIME flag On ") self.ShowToolTip() def __DragonSoulInfoString (self, dwVnum): step = (dwVnum / 100) % 10 refine = (dwVnum / 10) % 10 if 0 == step: return localeInfo.DRAGON_SOUL_STEP_LEVEL1 + " " + localeInfo.DRAGON_SOUL_STRENGTH(refine) elif 1 == step: return localeInfo.DRAGON_SOUL_STEP_LEVEL2 + " " + localeInfo.DRAGON_SOUL_STRENGTH(refine) elif 2 == step: return localeInfo.DRAGON_SOUL_STEP_LEVEL3 + " " + localeInfo.DRAGON_SOUL_STRENGTH(refine) elif 3 == step: return localeInfo.DRAGON_SOUL_STEP_LEVEL4 + " " + localeInfo.DRAGON_SOUL_STRENGTH(refine) elif 4 == step: return localeInfo.DRAGON_SOUL_STEP_LEVEL5 + " " + localeInfo.DRAGON_SOUL_STRENGTH(refine) else: return "" ## Çì¾îÀΰ¡? def __IsHair(self, itemVnum): return (self.__IsOldHair(itemVnum) or self.__IsNewHair(itemVnum) or self.__IsNewHair2(itemVnum) or self.__IsNewHair3(itemVnum) or self.__IsCostumeHair(itemVnum) ) def __IsOldHair(self, itemVnum): return itemVnum > 73000 and itemVnum < 74000 def __IsNewHair(self, itemVnum): return itemVnum > 74000 and itemVnum < 75000 def __IsNewHair2(self, itemVnum): return itemVnum > 75000 and itemVnum < 76000 def __IsNewHair3(self, itemVnum): return ((74012 < itemVnum and itemVnum < 74022) or (74262 < itemVnum and itemVnum < 74272) or (74512 < itemVnum and itemVnum < 74522) or (74762 < itemVnum and itemVnum < 74772) or (45000 < itemVnum and itemVnum < 47000)) def __IsCostumeHair(self, itemVnum): return app.ENABLE_COSTUME_SYSTEM and self.__IsNewHair3(itemVnum - 100000) def __AppendHairIcon(self, itemVnum): itemImage = ui.ImageBox() itemImage.SetParent(self) itemImage.Show() if self.__IsOldHair(itemVnum): itemImage.LoadImage("d:/ymir work/item/quest/"+str(itemVnum)+".tga") elif self.__IsNewHair3(itemVnum): itemImage.LoadImage("icon/hair/%d.sub" % (itemVnum)) elif self.__IsNewHair(itemVnum): # ±âÁ¸ Çì¾î ¹øÈ£¸¦ ¿¬°á½ÃÄѼ­ »ç¿ëÇÑ´Ù. »õ·Î¿î ¾ÆÀÌÅÛÀº 1000¸¸Å­ ¹øÈ£°¡ ´Ã¾ú´Ù. itemImage.LoadImage("d:/ymir work/item/quest/"+str(itemVnum-1000)+".tga") elif self.__IsNewHair2(itemVnum): itemImage.LoadImage("icon/hair/%d.sub" % (itemVnum)) elif self.__IsCostumeHair(itemVnum): itemImage.LoadImage("icon/hair/%d.sub" % (itemVnum - 100000)) itemImage.SetPosition(itemImage.GetWidth()/2, self.toolTipHeight) self.toolTipHeight += itemImage.GetHeight() #self.toolTipWidth += itemImage.GetWidth()/2 self.childrenList.append(itemImage) self.ResizeToolTip() ## »çÀÌÁî°¡ Å« Description ÀÏ °æ¿ì ÅøÆÁ »çÀÌÁ Á¶Á¤ÇÑ´Ù def __AdjustMaxWidth(self, attrSlot, desc): newToolTipWidth = self.toolTipWidth newToolTipWidth = max(self.__AdjustAttrMaxWidth(attrSlot), newToolTipWidth) newToolTipWidth = max(self.__AdjustDescMaxWidth(desc), newToolTipWidth) if newToolTipWidth > self.toolTipWidth: self.toolTipWidth = newToolTipWidth self.ResizeToolTip() def __AdjustAttrMaxWidth(self, attrSlot): if 0 == attrSlot: return self.toolTipWidth maxWidth = self.toolTipWidth for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): type = attrSlot[i][0] value = attrSlot[i][1] if self.ATTRIBUTE_NEED_WIDTH.has_key(type): if value > 0: maxWidth = max(self.ATTRIBUTE_NEED_WIDTH[type], maxWidth) # ATTR_CHANGE_TOOLTIP_WIDTH #self.toolTipWidth = max(self.ATTRIBUTE_NEED_WIDTH[type], self.toolTipWidth) #self.ResizeToolTip() # END_OF_ATTR_CHANGE_TOOLTIP_WIDTH return maxWidth def __AdjustDescMaxWidth(self, desc): if len(desc) < DESC_DEFAULT_MAX_COLS: return self.toolTipWidth return DESC_WESTERN_MAX_WIDTH def __SetSkillBookToolTip(self, skillIndex, bookName, skillGrade): skillName = skill.GetSkillName(skillIndex) if not skillName: return if localeInfo.IsVIETNAM(): itemName = bookName + " " + skillName else: itemName = skillName + " " + bookName self.SetTitle(itemName) def __AppendPickInformation(self, curLevel, curEXP, maxEXP): self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_PICK_LEVEL % (curLevel), self.NORMAL_COLOR) self.AppendTextLine(localeInfo.TOOLTIP_PICK_EXP % (curEXP, maxEXP), self.NORMAL_COLOR) if curEXP == maxEXP: self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_PICK_UPGRADE1, self.NORMAL_COLOR) self.AppendTextLine(localeInfo.TOOLTIP_PICK_UPGRADE2, self.NORMAL_COLOR) self.AppendTextLine(localeInfo.TOOLTIP_PICK_UPGRADE3, self.NORMAL_COLOR) def __AppendRodInformation(self, curLevel, curEXP, maxEXP): self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_FISHINGROD_LEVEL % (curLevel), self.NORMAL_COLOR) self.AppendTextLine(localeInfo.TOOLTIP_FISHINGROD_EXP % (curEXP, maxEXP), self.NORMAL_COLOR) if curEXP == maxEXP: self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_FISHINGROD_UPGRADE1, self.NORMAL_COLOR) self.AppendTextLine(localeInfo.TOOLTIP_FISHINGROD_UPGRADE2, self.NORMAL_COLOR) self.AppendTextLine(localeInfo.TOOLTIP_FISHINGROD_UPGRADE3, self.NORMAL_COLOR) def __AppendLimitInformation(self): appendSpace = False for i in xrange(item.LIMIT_MAX_NUM): (limitType, limitValue) = item.GetLimit(i) if limitValue > 0: if False == appendSpace: self.AppendSpace(5) appendSpace = True else: continue if item.LIMIT_LEVEL == limitType: color = self.GetLimitTextLineColor(player.GetStatus(player.LEVEL), limitValue) self.AppendTextLine(localeInfo.TOOLTIP_ITEM_LIMIT_LEVEL % (limitValue), color) """ elif item.LIMIT_STR == limitType: color = self.GetLimitTextLineColor(player.GetStatus(player.ST), limitValue) self.AppendTextLine(localeInfo.TOOLTIP_ITEM_LIMIT_STR % (limitValue), color) elif item.LIMIT_DEX == limitType: color = self.GetLimitTextLineColor(player.GetStatus(player.DX), limitValue) self.AppendTextLine(localeInfo.TOOLTIP_ITEM_LIMIT_DEX % (limitValue), color) elif item.LIMIT_INT == limitType: color = self.GetLimitTextLineColor(player.GetStatus(player.IQ), limitValue) self.AppendTextLine(localeInfo.TOOLTIP_ITEM_LIMIT_INT % (limitValue), color) elif item.LIMIT_CON == limitType: color = self.GetLimitTextLineColor(player.GetStatus(player.HT), limitValue) self.AppendTextLine(localeInfo.TOOLTIP_ITEM_LIMIT_CON % (limitValue), color) """ def __GetAffectString(self, affectType, affectValue): if 0 == affectType: return None if 0 == affectValue: return None try: return self.AFFECT_DICT[affectType](affectValue) except TypeError: return "UNKNOWN_VALUE[%s] %s" % (affectType, affectValue) except KeyError: return "UNKNOWN_TYPE[%s] %s" % (affectType, affectValue) if app.ENABLE_SOULBIND_SYSTEM: def __AppendSealInformation(self, window_type, slotIndex): if window_type == player.SAFEBOX: itemSoulTime = safebox.GetItemBind(slotIndex) elif window_type == player.MALL: itemSoulTime = safebox.GetMallItemBind(slotIndex) elif window_type == player.INVENTORY: itemSoulTime = player.GetItemBind(window_type, slotIndex) else: return if itemSoulTime == 0: return elif itemSoulTime == 1: self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_SEALED, self.NEGATIVE_COLOR) elif itemSoulTime > 1: self.AppendSpace(5) hrs = itemSoulTime / 3600 itemSoulTime -= 3600 * hrs mins = itemSoulTime / 60 itemSoulTime -= 60 * mins self.AppendTextLine(localeInfo.TOOLTIP_UNSEAL_LEFT_TIME % (hrs, mins), self.NEGATIVE_COLOR) def __AppendAffectInformation(self): for i in xrange(item.ITEM_APPLY_MAX_NUM): (affectType, affectValue) = item.GetAffect(i) affectString = self.__GetAffectString(affectType, affectValue) if affectString: self.AppendTextLine(affectString, self.GetChangeTextLineColor(affectValue)) def AppendWearableInformation(self): self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_ITEM_WEARABLE_JOB, self.NORMAL_COLOR) flagList = ( not item.IsAntiFlag(item.ITEM_ANTIFLAG_WARRIOR), not item.IsAntiFlag(item.ITEM_ANTIFLAG_ASSASSIN), not item.IsAntiFlag(item.ITEM_ANTIFLAG_SURA), not item.IsAntiFlag(item.ITEM_ANTIFLAG_SHAMAN), not item.IsAntiFlag(item.ITEM_ANTIFLAG_WOLFMAN)) characterNames = "" for i in xrange(self.CHARACTER_COUNT): name = self.CHARACTER_NAMES[i] flag = flagList[i] if flag: characterNames += " " characterNames += name textLine = self.AppendTextLine(characterNames, self.NORMAL_COLOR, True) textLine.SetFeather() if item.IsAntiFlag(item.ITEM_ANTIFLAG_MALE): textLine = self.AppendTextLine(localeInfo.FOR_FEMALE, self.NORMAL_COLOR, True) textLine.SetFeather() if item.IsAntiFlag(item.ITEM_ANTIFLAG_FEMALE): textLine = self.AppendTextLine(localeInfo.FOR_MALE, self.NORMAL_COLOR, True) textLine.SetFeather() def __AppendPotionInformation(self): self.AppendSpace(5) healHP = item.GetValue(0) healSP = item.GetValue(1) healStatus = item.GetValue(2) healPercentageHP = item.GetValue(3) healPercentageSP = item.GetValue(4) if healHP > 0: self.AppendTextLine(localeInfo.TOOLTIP_POTION_PLUS_HP_POINT % healHP, self.GetChangeTextLineColor(healHP)) if healSP > 0: self.AppendTextLine(localeInfo.TOOLTIP_POTION_PLUS_SP_POINT % healSP, self.GetChangeTextLineColor(healSP)) if healStatus != 0: self.AppendTextLine(localeInfo.TOOLTIP_POTION_CURE) if healPercentageHP > 0: self.AppendTextLine(localeInfo.TOOLTIP_POTION_PLUS_HP_PERCENT % healPercentageHP, self.GetChangeTextLineColor(healPercentageHP)) if healPercentageSP > 0: self.AppendTextLine(localeInfo.TOOLTIP_POTION_PLUS_SP_PERCENT % healPercentageSP, self.GetChangeTextLineColor(healPercentageSP)) def __AppendAbilityPotionInformation(self): self.AppendSpace(5) abilityType = item.GetValue(0) time = item.GetValue(1) point = item.GetValue(2) if abilityType == item.APPLY_ATT_SPEED: self.AppendTextLine(localeInfo.TOOLTIP_POTION_PLUS_ATTACK_SPEED % point, self.GetChangeTextLineColor(point)) elif abilityType == item.APPLY_MOV_SPEED: self.AppendTextLine(localeInfo.TOOLTIP_POTION_PLUS_MOVING_SPEED % point, self.GetChangeTextLineColor(point)) if time > 0: minute = (time / 60) second = (time % 60) timeString = localeInfo.TOOLTIP_POTION_TIME if minute > 0: timeString += str(minute) + localeInfo.TOOLTIP_POTION_MIN if second > 0: timeString += " " + str(second) + localeInfo.TOOLTIP_POTION_SEC self.AppendTextLine(timeString) def GetPriceColor(self, price): if price>=constInfo.HIGH_PRICE: return self.HIGH_PRICE_COLOR if price>=constInfo.MIDDLE_PRICE: return self.MIDDLE_PRICE_COLOR else: return self.LOW_PRICE_COLOR def AppendPrice(self, price): self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_BUYPRICE % (localeInfo.NumberToMoneyString(price)), self.GetPriceColor(price)) def AppendPriceBySecondaryCoin(self, price): self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_BUYPRICE % (localeInfo.NumberToSecondaryCoinString(price)), self.GetPriceColor(price)) def AppendSellingPrice(self, price): if item.IsAntiFlag(item.ITEM_ANTIFLAG_SELL): self.AppendTextLine(localeInfo.TOOLTIP_ANTI_SELL, self.DISABLE_COLOR) self.AppendSpace(5) else: self.AppendTextLine(localeInfo.TOOLTIP_SELLPRICE % (localeInfo.NumberToMoneyString(price)), self.GetPriceColor(price)) self.AppendSpace(5) def AppendMetinInformation(self): affectType, affectValue = item.GetAffect(0) #affectType = item.GetValue(0) #affectValue = item.GetValue(1) affectString = self.__GetAffectString(affectType, affectValue) if affectString: self.AppendSpace(5) self.AppendTextLine(affectString, self.GetChangeTextLineColor(affectValue)) def AppendMetinWearInformation(self): self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_SOCKET_REFINABLE_ITEM, self.NORMAL_COLOR) flagList = (item.IsWearableFlag(item.WEARABLE_BODY), item.IsWearableFlag(item.WEARABLE_HEAD), item.IsWearableFlag(item.WEARABLE_FOOTS), item.IsWearableFlag(item.WEARABLE_WRIST), item.IsWearableFlag(item.WEARABLE_WEAPON), item.IsWearableFlag(item.WEARABLE_NECK), item.IsWearableFlag(item.WEARABLE_EAR), item.IsWearableFlag(item.WEARABLE_UNIQUE), item.IsWearableFlag(item.WEARABLE_SHIELD), item.IsWearableFlag(item.WEARABLE_ARROW)) wearNames = "" for i in xrange(self.WEAR_COUNT): name = self.WEAR_NAMES[i] flag = flagList[i] if flag: wearNames += " " wearNames += name textLine = ui.TextLine() textLine.SetParent(self) textLine.SetFontName(self.defFontName) textLine.SetPosition(self.toolTipWidth/2, self.toolTipHeight) textLine.SetHorizontalAlignCenter() textLine.SetPackedFontColor(self.NORMAL_COLOR) textLine.SetText(wearNames) textLine.Show() self.childrenList.append(textLine) self.toolTipHeight += self.TEXT_LINE_HEIGHT self.ResizeToolTip() def GetMetinSocketType(self, number): if player.METIN_SOCKET_TYPE_NONE == number: return player.METIN_SOCKET_TYPE_NONE elif player.METIN_SOCKET_TYPE_SILVER == number: return player.METIN_SOCKET_TYPE_SILVER elif player.METIN_SOCKET_TYPE_GOLD == number: return player.METIN_SOCKET_TYPE_GOLD else: item.SelectItem(number) if item.METIN_NORMAL == item.GetItemSubType(): return player.METIN_SOCKET_TYPE_SILVER elif item.METIN_GOLD == item.GetItemSubType(): return player.METIN_SOCKET_TYPE_GOLD elif "USE_PUT_INTO_ACCESSORY_SOCKET" == item.GetUseType(number): return player.METIN_SOCKET_TYPE_SILVER elif "USE_PUT_INTO_RING_SOCKET" == item.GetUseType(number): return player.METIN_SOCKET_TYPE_SILVER elif "USE_PUT_INTO_BELT_SOCKET" == item.GetUseType(number): return player.METIN_SOCKET_TYPE_SILVER return player.METIN_SOCKET_TYPE_NONE def GetMetinItemIndex(self, number): if player.METIN_SOCKET_TYPE_SILVER == number: return 0 if player.METIN_SOCKET_TYPE_GOLD == number: return 0 return number def __AppendAccessoryMetinSlotInfo(self, metinSlot, mtrlVnum): ACCESSORY_SOCKET_MAX_SIZE = 3 cur=min(metinSlot[0], ACCESSORY_SOCKET_MAX_SIZE) end=min(metinSlot[1], ACCESSORY_SOCKET_MAX_SIZE) affectType1, affectValue1 = item.GetAffect(0) affectList1=[0, max(1, affectValue1*10/100), max(2, affectValue1*20/100), max(3, affectValue1*40/100)] affectType2, affectValue2 = item.GetAffect(1) affectList2=[0, max(1, affectValue2*10/100), max(2, affectValue2*20/100), max(3, affectValue2*40/100)] mtrlPos=0 mtrlList=[mtrlVnum]*cur+[player.METIN_SOCKET_TYPE_SILVER]*(end-cur) for mtrl in mtrlList: affectString1 = self.__GetAffectString(affectType1, affectList1[mtrlPos+1]-affectList1[mtrlPos]) affectString2 = self.__GetAffectString(affectType2, affectList2[mtrlPos+1]-affectList2[mtrlPos]) leftTime = 0 if cur == mtrlPos+1: leftTime=metinSlot[2] self.__AppendMetinSlotInfo_AppendMetinSocketData(mtrlPos, mtrl, affectString1, affectString2, leftTime) mtrlPos+=1 def __AppendMetinSlotInfo(self, metinSlot): if self.__AppendMetinSlotInfo_IsEmptySlotList(metinSlot): return for i in xrange(player.METIN_SOCKET_MAX_NUM): self.__AppendMetinSlotInfo_AppendMetinSocketData(i, metinSlot[i]) def __AppendMetinSlotInfo_IsEmptySlotList(self, metinSlot): if 0 == metinSlot: return 1 for i in xrange(player.METIN_SOCKET_MAX_NUM): metinSlotData=metinSlot[i] if 0 != self.GetMetinSocketType(metinSlotData): if 0 != self.GetMetinItemIndex(metinSlotData): return 0 return 1 def __AppendMetinSlotInfo_AppendMetinSocketData(self, index, metinSlotData, custumAffectString="", custumAffectString2="", leftTime=0): slotType = self.GetMetinSocketType(metinSlotData) itemIndex = self.GetMetinItemIndex(metinSlotData) if 0 == slotType: return self.AppendSpace(5) slotImage = ui.ImageBox() slotImage.SetParent(self) slotImage.Show() ## Name nameTextLine = ui.TextLine() nameTextLine.SetParent(self) nameTextLine.SetFontName(self.defFontName) nameTextLine.SetPackedFontColor(self.NORMAL_COLOR) nameTextLine.SetOutline() nameTextLine.SetFeather() nameTextLine.Show() self.childrenList.append(nameTextLine) if player.METIN_SOCKET_TYPE_SILVER == slotType: slotImage.LoadImage("d:/ymir work/ui/game/windows/metin_slot_silver.sub") elif player.METIN_SOCKET_TYPE_GOLD == slotType: slotImage.LoadImage("d:/ymir work/ui/game/windows/metin_slot_gold.sub") self.childrenList.append(slotImage) if localeInfo.IsARABIC(): slotImage.SetPosition(self.toolTipWidth - slotImage.GetWidth() - 9, self.toolTipHeight-1) nameTextLine.SetPosition(self.toolTipWidth - 50, self.toolTipHeight + 2) else: slotImage.SetPosition(9, self.toolTipHeight-1) nameTextLine.SetPosition(50, self.toolTipHeight + 2) metinImage = ui.ImageBox() metinImage.SetParent(self) metinImage.Show() self.childrenList.append(metinImage) if itemIndex: item.SelectItem(itemIndex) ## Image try: metinImage.LoadImage(item.GetIconImageFileName()) except: dbg.TraceError("ItemToolTip.__AppendMetinSocketData() - Failed to find image file %d:%s" % (itemIndex, item.GetIconImageFileName()) ) nameTextLine.SetText(item.GetItemName()) ## Affect affectTextLine = ui.TextLine() affectTextLine.SetParent(self) affectTextLine.SetFontName(self.defFontName) affectTextLine.SetPackedFontColor(self.POSITIVE_COLOR) affectTextLine.SetOutline() affectTextLine.SetFeather() affectTextLine.Show() if localeInfo.IsARABIC(): metinImage.SetPosition(self.toolTipWidth - metinImage.GetWidth() - 10, self.toolTipHeight) affectTextLine.SetPosition(self.toolTipWidth - 50, self.toolTipHeight + 16 + 2) else: metinImage.SetPosition(10, self.toolTipHeight) affectTextLine.SetPosition(50, self.toolTipHeight + 16 + 2) if custumAffectString: affectTextLine.SetText(custumAffectString) elif itemIndex!=constInfo.ERROR_METIN_STONE: affectType, affectValue = item.GetAffect(0) affectString = self.__GetAffectString(affectType, affectValue) if affectString: affectTextLine.SetText(affectString) else: affectTextLine.SetText(localeInfo.TOOLTIP_APPLY_NOAFFECT) self.childrenList.append(affectTextLine) if custumAffectString2: affectTextLine = ui.TextLine() affectTextLine.SetParent(self) affectTextLine.SetFontName(self.defFontName) affectTextLine.SetPackedFontColor(self.POSITIVE_COLOR) affectTextLine.SetPosition(50, self.toolTipHeight + 16 + 2 + 16 + 2) affectTextLine.SetOutline() affectTextLine.SetFeather() affectTextLine.Show() affectTextLine.SetText(custumAffectString2) self.childrenList.append(affectTextLine) self.toolTipHeight += 16 + 2 if 0 != leftTime: timeText = (localeInfo.LEFT_TIME + " : " + localeInfo.SecondToDHM(leftTime)) timeTextLine = ui.TextLine() timeTextLine.SetParent(self) timeTextLine.SetFontName(self.defFontName) timeTextLine.SetPackedFontColor(self.POSITIVE_COLOR) timeTextLine.SetPosition(50, self.toolTipHeight + 16 + 2 + 16 + 2) timeTextLine.SetOutline() timeTextLine.SetFeather() timeTextLine.Show() timeTextLine.SetText(timeText) self.childrenList.append(timeTextLine) self.toolTipHeight += 16 + 2 else: nameTextLine.SetText(localeInfo.TOOLTIP_SOCKET_EMPTY) self.toolTipHeight += 35 self.ResizeToolTip() def __AppendFishInfo(self, size): if size > 0: self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_FISH_LEN % (float(size) / 100.0), self.NORMAL_COLOR) def AppendUniqueItemLastTime(self, restMin): restSecond = restMin*60 self.AppendSpace(5) self.AppendTextLine(localeInfo.LEFT_TIME + " : " + localeInfo.SecondToDHM(restSecond), self.NORMAL_COLOR) def AppendMallItemLastTime(self, endTime): leftSec = max(0, endTime - app.GetGlobalTimeStamp()) self.AppendSpace(5) self.AppendTextLine(localeInfo.LEFT_TIME + " : " + localeInfo.SecondToDHM(leftSec), self.NORMAL_COLOR) def AppendTimerBasedOnWearLastTime(self, metinSlot): if 0 == metinSlot[0]: self.AppendSpace(5) self.AppendTextLine(localeInfo.CANNOT_USE, self.DISABLE_COLOR) else: endTime = app.GetGlobalTimeStamp() + metinSlot[0] self.AppendMallItemLastTime(endTime) def AppendRealTimeStartFirstUseLastTime(self, item, metinSlot, limitIndex): useCount = metinSlot[1] endTime = metinSlot[0] # ÇÑ ¹øÀÌ¶óµµ »ç¿ëÇß´Ù¸é Socket0¿¡ Á¾·á ½Ã°£(2012³â 3¿ù 1ÀÏ 13½Ã 01ºÐ °°Àº..) ÀÌ ¹ÚÇôÀÖÀ½. # »ç¿ëÇÏÁö ¾Ê¾Ò´Ù¸é Socket0¿¡ ÀÌ¿ë°¡´É½Ã°£(À̸¦Å׸é 600 °°Àº °ª. ÃÊ´ÜÀ§)ÀÌ µé¾îÀÖÀ» ¼ö ÀÖ°í, 0À̶ó¸é Limit Value¿¡ ÀÖ´Â ÀÌ¿ë°¡´É½Ã°£À» »ç¿ëÇÑ´Ù. if 0 == useCount: if 0 == endTime: (limitType, limitValue) = item.GetLimit(limitIndex) endTime = limitValue endTime += app.GetGlobalTimeStamp() self.AppendMallItemLastTime(endTime) class HyperlinkItemToolTip(ItemToolTip): def __init__(self): ItemToolTip.__init__(self, isPickable=True) def SetHyperlinkItem(self, tokens): minTokenCount = 3 + player.METIN_SOCKET_MAX_NUM maxTokenCount = minTokenCount + 2 * player.ATTRIBUTE_SLOT_MAX_NUM if tokens and len(tokens) >= minTokenCount and len(tokens) <= maxTokenCount: head, vnum, flag = tokens[:3] itemVnum = int(vnum, 16) metinSlot = [int(metin, 16) for metin in tokens[3:6]] rests = tokens[6:] if rests: attrSlot = [] rests.reverse() while rests: key = int(rests.pop(), 16) if rests: val = int(rests.pop()) attrSlot.append((key, val)) attrSlot += [(0, 0)] * (player.ATTRIBUTE_SLOT_MAX_NUM - len(attrSlot)) else: attrSlot = [(0, 0)] * player.ATTRIBUTE_SLOT_MAX_NUM self.ClearToolTip() self.AddItemData(itemVnum, metinSlot, attrSlot) ItemToolTip.OnUpdate(self) def OnUpdate(self): pass def OnMouseLeftButtonDown(self): self.Hide() class SkillToolTip(ToolTip): POINT_NAME_DICT = { player.LEVEL : localeInfo.SKILL_TOOLTIP_LEVEL, player.IQ : localeInfo.SKILL_TOOLTIP_INT, } SKILL_TOOL_TIP_WIDTH = 200 PARTY_SKILL_TOOL_TIP_WIDTH = 340 PARTY_SKILL_EXPERIENCE_AFFECT_LIST = ( ( 2, 2, 10,), ( 8, 3, 20,), (14, 4, 30,), (22, 5, 45,), (28, 6, 60,), (34, 7, 80,), (38, 8, 100,), ) PARTY_SKILL_PLUS_GRADE_AFFECT_LIST = ( ( 4, 2, 1, 0,), (10, 3, 2, 0,), (16, 4, 2, 1,), (24, 5, 2, 2,), ) PARTY_SKILL_ATTACKER_AFFECT_LIST = ( ( 36, 3, ), ( 26, 1, ), ( 32, 2, ), ) SKILL_GRADE_NAME = { player.SKILL_GRADE_MASTER : localeInfo.SKILL_GRADE_NAME_MASTER, player.SKILL_GRADE_GRAND_MASTER : localeInfo.SKILL_GRADE_NAME_GRAND_MASTER, player.SKILL_GRADE_PERFECT_MASTER : localeInfo.SKILL_GRADE_NAME_PERFECT_MASTER, } AFFECT_NAME_DICT = { "HP" : localeInfo.TOOLTIP_SKILL_AFFECT_ATT_POWER, "ATT_GRADE" : localeInfo.TOOLTIP_SKILL_AFFECT_ATT_GRADE, "DEF_GRADE" : localeInfo.TOOLTIP_SKILL_AFFECT_DEF_GRADE, "ATT_SPEED" : localeInfo.TOOLTIP_SKILL_AFFECT_ATT_SPEED, "MOV_SPEED" : localeInfo.TOOLTIP_SKILL_AFFECT_MOV_SPEED, "DODGE" : localeInfo.TOOLTIP_SKILL_AFFECT_DODGE, "RESIST_NORMAL" : localeInfo.TOOLTIP_SKILL_AFFECT_RESIST_NORMAL, "REFLECT_MELEE" : localeInfo.TOOLTIP_SKILL_AFFECT_REFLECT_MELEE, } AFFECT_APPEND_TEXT_DICT = { "DODGE" : "%", "RESIST_NORMAL" : "%", "REFLECT_MELEE" : "%", } def __init__(self): ToolTip.__init__(self, self.SKILL_TOOL_TIP_WIDTH) def __del__(self): ToolTip.__del__(self) def SetSkill(self, skillIndex, skillLevel = -1): if 0 == skillIndex: return if skill.SKILL_TYPE_GUILD == skill.GetSkillType(skillIndex): if self.SKILL_TOOL_TIP_WIDTH != self.toolTipWidth: self.toolTipWidth = self.SKILL_TOOL_TIP_WIDTH self.ResizeToolTip() self.AppendDefaultData(skillIndex) self.AppendSkillConditionData(skillIndex) self.AppendGuildSkillData(skillIndex, skillLevel) else: if self.SKILL_TOOL_TIP_WIDTH != self.toolTipWidth: self.toolTipWidth = self.SKILL_TOOL_TIP_WIDTH self.ResizeToolTip() slotIndex = player.GetSkillSlotIndex(skillIndex) skillGrade = player.GetSkillGrade(slotIndex) skillLevel = player.GetSkillLevel(slotIndex) skillCurrentPercentage = player.GetSkillCurrentEfficientPercentage(slotIndex) skillNextPercentage = player.GetSkillNextEfficientPercentage(slotIndex) self.AppendDefaultData(skillIndex) self.AppendSkillConditionData(skillIndex) self.AppendSkillDataNew(slotIndex, skillIndex, skillGrade, skillLevel, skillCurrentPercentage, skillNextPercentage) self.AppendSkillRequirement(skillIndex, skillLevel) self.ShowToolTip() def SetSkillNew(self, slotIndex, skillIndex, skillGrade, skillLevel): if 0 == skillIndex: return if player.SKILL_INDEX_TONGSOL == skillIndex: slotIndex = player.GetSkillSlotIndex(skillIndex) skillLevel = player.GetSkillLevel(slotIndex) self.AppendDefaultData(skillIndex) self.AppendPartySkillData(skillGrade, skillLevel) elif player.SKILL_INDEX_RIDING == skillIndex: slotIndex = player.GetSkillSlotIndex(skillIndex) self.AppendSupportSkillDefaultData(skillIndex, skillGrade, skillLevel, 30) elif player.SKILL_INDEX_SUMMON == skillIndex: maxLevel = 10 self.ClearToolTip() self.__SetSkillTitle(skillIndex, skillGrade) ## Description description = skill.GetSkillDescription(skillIndex) self.AppendDescription(description, 25) if skillLevel == 10: self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_SKILL_LEVEL_MASTER % (skillLevel), self.NORMAL_COLOR) self.AppendTextLine(localeInfo.SKILL_SUMMON_DESCRIPTION % (skillLevel*10), self.NORMAL_COLOR) else: self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_SKILL_LEVEL % (skillLevel), self.NORMAL_COLOR) self.__AppendSummonDescription(skillLevel, self.NORMAL_COLOR) self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_SKILL_LEVEL % (skillLevel+1), self.NEGATIVE_COLOR) self.__AppendSummonDescription(skillLevel+1, self.NEGATIVE_COLOR) elif skill.SKILL_TYPE_GUILD == skill.GetSkillType(skillIndex): if self.SKILL_TOOL_TIP_WIDTH != self.toolTipWidth: self.toolTipWidth = self.SKILL_TOOL_TIP_WIDTH self.ResizeToolTip() self.AppendDefaultData(skillIndex) self.AppendSkillConditionData(skillIndex) self.AppendGuildSkillData(skillIndex, skillLevel) else: if self.SKILL_TOOL_TIP_WIDTH != self.toolTipWidth: self.toolTipWidth = self.SKILL_TOOL_TIP_WIDTH self.ResizeToolTip() slotIndex = player.GetSkillSlotIndex(skillIndex) skillCurrentPercentage = player.GetSkillCurrentEfficientPercentage(slotIndex) skillNextPercentage = player.GetSkillNextEfficientPercentage(slotIndex) self.AppendDefaultData(skillIndex, skillGrade) self.AppendSkillConditionData(skillIndex) self.AppendSkillDataNew(slotIndex, skillIndex, skillGrade, skillLevel, skillCurrentPercentage, skillNextPercentage) self.AppendSkillRequirement(skillIndex, skillLevel) self.ShowToolTip() def __SetSkillTitle(self, skillIndex, skillGrade): self.SetTitle(skill.GetSkillName(skillIndex, skillGrade)) self.__AppendSkillGradeName(skillIndex, skillGrade) def __AppendSkillGradeName(self, skillIndex, skillGrade): if self.SKILL_GRADE_NAME.has_key(skillGrade): self.AppendSpace(5) self.AppendTextLine(self.SKILL_GRADE_NAME[skillGrade] % (skill.GetSkillName(skillIndex, 0)), self.CAN_LEVEL_UP_COLOR) def SetSkillOnlyName(self, slotIndex, skillIndex, skillGrade): if 0 == skillIndex: return slotIndex = player.GetSkillSlotIndex(skillIndex) self.toolTipWidth = self.SKILL_TOOL_TIP_WIDTH self.ResizeToolTip() self.ClearToolTip() self.__SetSkillTitle(skillIndex, skillGrade) self.AppendDefaultData(skillIndex, skillGrade) self.AppendSkillConditionData(skillIndex) self.ShowToolTip() def AppendDefaultData(self, skillIndex, skillGrade = 0): self.ClearToolTip() self.__SetSkillTitle(skillIndex, skillGrade) ## Level Limit levelLimit = skill.GetSkillLevelLimit(skillIndex) if levelLimit > 0: color = self.NORMAL_COLOR if player.GetStatus(player.LEVEL) < levelLimit: color = self.NEGATIVE_COLOR self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_ITEM_LIMIT_LEVEL % (levelLimit), color) ## Description description = skill.GetSkillDescription(skillIndex) self.AppendDescription(description, 25) def AppendSupportSkillDefaultData(self, skillIndex, skillGrade, skillLevel, maxLevel): self.ClearToolTip() self.__SetSkillTitle(skillIndex, skillGrade) ## Description description = skill.GetSkillDescription(skillIndex) self.AppendDescription(description, 25) if 1 == skillGrade: skillLevel += 19 elif 2 == skillGrade: skillLevel += 29 elif 3 == skillGrade: skillLevel = 40 self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_SKILL_LEVEL_WITH_MAX % (skillLevel, maxLevel), self.NORMAL_COLOR) def AppendSkillConditionData(self, skillIndex): conditionDataCount = skill.GetSkillConditionDescriptionCount(skillIndex) if conditionDataCount > 0: self.AppendSpace(5) for i in xrange(conditionDataCount): self.AppendTextLine(skill.GetSkillConditionDescription(skillIndex, i), self.CONDITION_COLOR) def AppendGuildSkillData(self, skillIndex, skillLevel): skillMaxLevel = 7 skillCurrentPercentage = float(skillLevel) / float(skillMaxLevel) skillNextPercentage = float(skillLevel+1) / float(skillMaxLevel) ## Current Level if skillLevel > 0: if self.HasSkillLevelDescription(skillIndex, skillLevel): self.AppendSpace(5) if skillLevel == skillMaxLevel: self.AppendTextLine(localeInfo.TOOLTIP_SKILL_LEVEL_MASTER % (skillLevel), self.NORMAL_COLOR) else: self.AppendTextLine(localeInfo.TOOLTIP_SKILL_LEVEL % (skillLevel), self.NORMAL_COLOR) ##### for i in xrange(skill.GetSkillAffectDescriptionCount(skillIndex)): self.AppendTextLine(skill.GetSkillAffectDescription(skillIndex, i, skillCurrentPercentage), self.ENABLE_COLOR) ## Cooltime coolTime = skill.GetSkillCoolTime(skillIndex, skillCurrentPercentage) if coolTime > 0: self.AppendTextLine(localeInfo.TOOLTIP_SKILL_COOL_TIME + str(coolTime), self.ENABLE_COLOR) ## SP needGSP = skill.GetSkillNeedSP(skillIndex, skillCurrentPercentage) if needGSP > 0: self.AppendTextLine(localeInfo.TOOLTIP_NEED_GSP % (needGSP), self.ENABLE_COLOR) ## Next Level if skillLevel < skillMaxLevel: if self.HasSkillLevelDescription(skillIndex, skillLevel+1): self.AppendSpace(5) self.AppendTextLine(localeInfo.TOOLTIP_NEXT_SKILL_LEVEL_1 % (skillLevel+1, skillMaxLevel), self.DISABLE_COLOR) ##### for i in xrange(skill.GetSkillAffectDescriptionCount(skillIndex)): self.AppendTextLine(skill.GetSkillAffectDescription(skillIndex, i, skillNextPercentage), self.DISABLE_COLOR) ## Cooltime coolTime = skill.GetSkillCoolTime(skillIndex, skillNextPercentage) if coolTime > 0: self.AppendTextLine(localeInfo.TOOLTIP_SKILL_COOL_TIME + str(coolTime), self.DISABLE_COLOR) ## SP needGSP = skill.GetSkillNeedSP(skillIndex, skillNextPercentage) if needGSP > 0: self.AppendTextLine(localeInfo.TOOLTIP_NEED_GSP % (needGSP), self.DISABLE_COLOR) def AppendSkillDataNew(self, slotIndex, skillIndex, skillGrade, skillLevel, skillCurrentPercentage, skillNextPercentage): self.skillMaxLevelStartDict = { 0 : 17, 1 : 7, 2 : 10, } self.skillMaxLevelEndDict = { 0 : 20, 1 : 10, 2 : 10, } skillLevelUpPoint = 1 realSkillGrade = player.GetSkillGrade(slotIndex) skillMaxLevelStart = self.skillMaxLevelStartDict.get(realSkillGrade, 15) skillMaxLevelEnd = self.skillMaxLevelEndDict.get(realSkillGrade, 20) ## Current Level if skillLevel > 0: if self.HasSkillLevelDescription(skillIndex, skillLevel): self.AppendSpace(5) if skillGrade == skill.SKILL_GRADE_COUNT: pass elif skillLevel == skillMaxLevelEnd: self.AppendTextLine(localeInfo.TOOLTIP_SKILL_LEVEL_MASTER % (skillLevel), self.NORMAL_COLOR) else: self.AppendTextLine(localeInfo.TOOLTIP_SKILL_LEVEL % (skillLevel), self.NORMAL_COLOR) self.AppendSkillLevelDescriptionNew(skillIndex, skillCurrentPercentage, self.ENABLE_COLOR) ## Next Level if skillGrade != skill.SKILL_GRADE_COUNT: if skillLevel < skillMaxLevelEnd: if self.HasSkillLevelDescription(skillIndex, skillLevel+skillLevelUpPoint): self.AppendSpace(5) ## HPº¸°­, °üÅëȸÇÇ º¸Á¶½ºÅ³ÀÇ °æ¿ì if skillIndex == 141 or skillIndex == 142: self.AppendTextLine(localeInfo.TOOLTIP_NEXT_SKILL_LEVEL_3 % (skillLevel+1), self.DISABLE_COLOR) else: self.AppendTextLine(localeInfo.TOOLTIP_NEXT_SKILL_LEVEL_1 % (skillLevel+1, skillMaxLevelEnd), self.DISABLE_COLOR) self.AppendSkillLevelDescriptionNew(skillIndex, skillNextPercentage, self.DISABLE_COLOR) def AppendSkillLevelDescriptionNew(self, skillIndex, skillPercentage, color): affectDataCount = skill.GetNewAffectDataCount(skillIndex) if affectDataCount > 0: for i in xrange(affectDataCount): type, minValue, maxValue = skill.GetNewAffectData(skillIndex, i, skillPercentage) if not self.AFFECT_NAME_DICT.has_key(type): continue minValue = int(minValue) maxValue = int(maxValue) affectText = self.AFFECT_NAME_DICT[type] if "HP" == type: if minValue < 0 and maxValue < 0: minValue *= -1 maxValue *= -1 else: affectText = localeInfo.TOOLTIP_SKILL_AFFECT_HEAL affectText += str(minValue) if minValue != maxValue: affectText += " - " + str(maxValue) affectText += self.AFFECT_APPEND_TEXT_DICT.get(type, "") #import debugInfo #if debugInfo.IsDebugMode(): # affectText = "!!" + affectText self.AppendTextLine(affectText, color) else: for i in xrange(skill.GetSkillAffectDescriptionCount(skillIndex)): self.AppendTextLine(skill.GetSkillAffectDescription(skillIndex, i, skillPercentage), color) ## Duration duration = skill.GetDuration(skillIndex, skillPercentage) if duration > 0: self.AppendTextLine(localeInfo.TOOLTIP_SKILL_DURATION % (duration), color) ## Cooltime coolTime = skill.GetSkillCoolTime(skillIndex, skillPercentage) if coolTime > 0: self.AppendTextLine(localeInfo.TOOLTIP_SKILL_COOL_TIME + str(coolTime), color) ## SP needSP = skill.GetSkillNeedSP(skillIndex, skillPercentage) if needSP != 0: continuationSP = skill.GetSkillContinuationSP(skillIndex, skillPercentage) if skill.IsUseHPSkill(skillIndex): self.AppendNeedHP(needSP, continuationSP, color) else: self.AppendNeedSP(needSP, continuationSP, color) def AppendSkillRequirement(self, skillIndex, skillLevel): skillMaxLevel = skill.GetSkillMaxLevel(skillIndex) if skillLevel >= skillMaxLevel: return isAppendHorizontalLine = False ## Requirement if skill.IsSkillRequirement(skillIndex): if not isAppendHorizontalLine: isAppendHorizontalLine = True self.AppendHorizontalLine() requireSkillName, requireSkillLevel = skill.GetSkillRequirementData(skillIndex) color = self.CANNOT_LEVEL_UP_COLOR if skill.CheckRequirementSueccess(skillIndex): color = self.CAN_LEVEL_UP_COLOR self.AppendTextLine(localeInfo.TOOLTIP_REQUIREMENT_SKILL_LEVEL % (requireSkillName, requireSkillLevel), color) ## Require Stat requireStatCount = skill.GetSkillRequireStatCount(skillIndex) if requireStatCount > 0: for i in xrange(requireStatCount): type, level = skill.GetSkillRequireStatData(skillIndex, i) if self.POINT_NAME_DICT.has_key(type): if not isAppendHorizontalLine: isAppendHorizontalLine = True self.AppendHorizontalLine() name = self.POINT_NAME_DICT[type] color = self.CANNOT_LEVEL_UP_COLOR if player.GetStatus(type) >= level: color = self.CAN_LEVEL_UP_COLOR self.AppendTextLine(localeInfo.TOOLTIP_REQUIREMENT_STAT_LEVEL % (name, level), color) def HasSkillLevelDescription(self, skillIndex, skillLevel): if skill.GetSkillAffectDescriptionCount(skillIndex) > 0: return True if skill.GetSkillCoolTime(skillIndex, skillLevel) > 0: return True if skill.GetSkillNeedSP(skillIndex, skillLevel) > 0: return True return False def AppendMasterAffectDescription(self, index, desc, color): self.AppendTextLine(desc, color) def AppendNextAffectDescription(self, index, desc): self.AppendTextLine(desc, self.DISABLE_COLOR) def AppendNeedHP(self, needSP, continuationSP, color): self.AppendTextLine(localeInfo.TOOLTIP_NEED_HP % (needSP), color) if continuationSP > 0: self.AppendTextLine(localeInfo.TOOLTIP_NEED_HP_PER_SEC % (continuationSP), color) def AppendNeedSP(self, needSP, continuationSP, color): if -1 == needSP: self.AppendTextLine(localeInfo.TOOLTIP_NEED_ALL_SP, color) else: self.AppendTextLine(localeInfo.TOOLTIP_NEED_SP % (needSP), color) if continuationSP > 0: self.AppendTextLine(localeInfo.TOOLTIP_NEED_SP_PER_SEC % (continuationSP), color) def AppendPartySkillData(self, skillGrade, skillLevel): if 1 == skillGrade: skillLevel += 19 elif 2 == skillGrade: skillLevel += 29 elif 3 == skillGrade: skillLevel = 40 if skillLevel <= 0: return skillIndex = player.SKILL_INDEX_TONGSOL slotIndex = player.GetSkillSlotIndex(skillIndex) skillPower = player.GetSkillCurrentEfficientPercentage(slotIndex) if localeInfo.IsBRAZIL(): k = skillPower else: k = player.GetSkillLevel(skillIndex) / 100.0 self.AppendSpace(5) self.AutoAppendTextLine(localeInfo.TOOLTIP_PARTY_SKILL_LEVEL % skillLevel, self.NORMAL_COLOR) if skillLevel>=10: self.AutoAppendTextLine(localeInfo.PARTY_SKILL_ATTACKER % chop( 10 + 60 * k )) if skillLevel>=20: self.AutoAppendTextLine(localeInfo.PARTY_SKILL_BERSERKER % chop(1 + 5 * k)) self.AutoAppendTextLine(localeInfo.PARTY_SKILL_TANKER % chop(50 + 1450 * k)) if skillLevel>=25: self.AutoAppendTextLine(localeInfo.PARTY_SKILL_BUFFER % chop(5 + 45 * k )) if skillLevel>=35: self.AutoAppendTextLine(localeInfo.PARTY_SKILL_SKILL_MASTER % chop(25 + 600 * k )) if skillLevel>=40: self.AutoAppendTextLine(localeInfo.PARTY_SKILL_DEFENDER % chop( 5 + 30 * k )) self.AlignHorizonalCenter() def __AppendSummonDescription(self, skillLevel, color): if skillLevel > 1: self.AppendTextLine(localeInfo.SKILL_SUMMON_DESCRIPTION % (skillLevel * 10), color) elif 1 == skillLevel: self.AppendTextLine(localeInfo.SKILL_SUMMON_DESCRIPTION % (15), color) elif 0 == skillLevel: self.AppendTextLine(localeInfo.SKILL_SUMMON_DESCRIPTION % (10), color) if __name__ == "__main__": import app import wndMgr import systemSetting import mouseModule import grp import ui #wndMgr.SetOutlineFlag(True) app.SetMouseHandler(mouseModule.mouseController) app.SetHairColorEnable(True) wndMgr.SetMouseHandler(mouseModule.mouseController) wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight()) app.Create("METIN2 CLOSED BETA", systemSetting.GetWidth(), systemSetting.GetHeight(), 1) mouseModule.mouseController.Create() toolTip = ItemToolTip() toolTip.ClearToolTip() #toolTip.AppendTextLine("Test") desc = "Item descriptions:|increase of width of display to 35 digits per row AND installation of function that the displayed words are not broken up in two parts, but instead if one word is too long to be displayed in this row, this word will start in the next row." summ = "" toolTip.AddItemData_Offline(10, desc, summ, 0, 0) toolTip.Show() app.Loop() Si l'un d'entre vous peut m'aider, je suis preneur, merci à vous En postant ma demande d'aide, j'affirme avoir lu et accepté le Règlement de Funky-Emulation.
  3. C'est bon j'ai trouvé la solution : Remplacer la ligne suivante coté server dans le char_skill.cpp : if (pkSkill->dwType - 1 == GetJob()) Par la ligne suivante : if (pkSkill->dwType - 1 == GetJob() || (GetJob() == 4 && pkSkill->dwType == 1)) Je passe en "résolu"
  4. Voici le syserr de la version Release du client : 1104 16:38:09295 :: Hair number 1 is not exist. 1104 16:38:09297 :: Hair number 1 is not exist. 1104 16:38:09298 :: Hair number 1 is not exist. 1104 16:38:22678 :: Hair number 1 is not exist. 1104 16:38:25434 :: Unknown Server Command SetTeamOffline xMei | SetTeamOffline 1104 16:38:25434 :: Unknown Server Command SetTeamOffline Ninja | SetTeamOffline 1104 16:38:25434 :: Unknown Server Command SetTeamOffline Thaia | SetTeamOffline 1104 16:38:32380 :: Unknown Server Command SetTeamOffline xMei | SetTeamOffline 1104 16:38:32380 :: Unknown Server Command SetTeamOffline Ninja | SetTeamOffline 1104 16:38:32380 :: Unknown Server Command SetTeamOffline Thaia | SetTeamOffline 1104 16:38:42379 :: Unknown Server Command SetTeamOffline xMei | SetTeamOffline 1104 16:38:42379 :: Unknown Server Command SetTeamOffline Ninja | SetTeamOffline 1104 16:38:42379 :: Unknown Server Command SetTeamOffline Thaia | SetTeamOffline Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x02DA9E10>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x02DA9D10>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x02DAC6F0>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x02DAC710>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x02DAC730>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x02DAC750>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x02DAC770>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x02DAC7B0>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x02DAC7D0>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x02DAC7F0>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x02DAC850>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x02DAC870>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x02DAC8B0>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x02DAC8D0>> ignored Exception AttributeError: "'NoneType' object has no attribute '__del__'" in <bound method NumberLine.__del__ of <ui.NumberLine object at 0x02DAC8F0>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x02DA9F50>> ignored Je ne comprend vraiment pas pourquoi ce bouton "+" ne marche pas pour mon Wolfman
  5. Malheureusement, j'ai beaucoup d'erreur dans le sysser après avoir recompiler mon client, cependant aucune ne me semble correspondre à mon problème : Mon Sysser : 1102 11:49:00274 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/dropitem/dropitem.mss] 1102 11:49:14829 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_01_85_001.gr2 1102 11:49:14829 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_01_85_002.gr2 1102 11:49:14829 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_01_85_003.gr2 1102 11:49:14829 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_01_85_004.gr2 1102 11:49:14829 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_02_85_005.gr2 1102 11:49:14829 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_02_85_006.gr2 1102 11:49:14830 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_02_85_007.gr2 1102 11:49:14830 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_02_85_008.gr2 1102 11:49:14830 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_03_85_011.gr2 1102 11:49:14830 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_03_85_012.gr2 1102 11:49:14830 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_03_85_013.gr2 1102 11:49:14830 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_03_85_014.gr2 1102 11:49:14830 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_04_85_015.gr2 1102 11:49:14830 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_04_85_016.gr2 1102 11:49:14830 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_04_85_017.gr2 1102 11:49:14831 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/item/wing/Acce_04_85_018.gr2 1102 11:49:14849 :: Çѱ¹¹«œÖ¹öÁ¯(#2 ) cannot find icon file. setting to default. 1102 11:49:14860 :: ±€·ûÆȱ¥ÆÐ+0(#13180) cannot find icon file. setting to default. 1102 11:49:14860 :: ±€·ûÆȱ¥ÆÐ+1(#13181) cannot find icon file. setting to default. 1102 11:49:14860 :: ±€·ûÆȱ¥ÆÐ+2(#13182) cannot find icon file. setting to default. 1102 11:49:14861 :: ±€·ûÆȱ¥ÆÐ+3(#13183) cannot find icon file. setting to default. 1102 11:49:14861 :: ±€·ûÆȱ¥ÆÐ+4(#13184) cannot find icon file. setting to default. 1102 11:49:14861 :: ±€·ûÆȱ¥ÆÐ+5(#13185) cannot find icon file. setting to default. 1102 11:49:14861 :: ±€·ûÆȱ¥ÆÐ+6(#13186) cannot find icon file. setting to default. 1102 11:49:14861 :: ±€·ûÆȱ¥ÆÐ+7(#13187) cannot find icon file. setting to default. 1102 11:49:14862 :: ±€·ûÆȱ¥ÆÐ+8(#13188) cannot find icon file. setting to default. 1102 11:49:14862 :: ±€·ûÆȱ¥ÆÐ+9(#13189) cannot find icon file. setting to default. 1102 11:49:14880 :: WA_9+1(#21120) cannot find icon file. setting to default. 1102 11:49:14880 :: WA_9+2(#21121) cannot find icon file. setting to default. 1102 11:49:14880 :: WA_9+3(#21122) cannot find icon file. setting to default. 1102 11:49:14880 :: WA_9+4(#21123) cannot find icon file. setting to default. 1102 11:49:14881 :: WA_9+5(#21124) cannot find icon file. setting to default. 1102 11:49:14881 :: WA_9+6(#21125) cannot find icon file. setting to default. 1102 11:49:14881 :: WA_9+7(#21126) cannot find icon file. setting to default. 1102 11:49:14881 :: WA_9+8(#21127) cannot find icon file. setting to default. 1102 11:49:14881 :: WA_9+9(#21128) cannot find icon file. setting to default. 1102 11:49:14882 :: À§Ä¡±âŸïºÎ(#22020) cannot find icon file. setting to default. 1102 11:49:14882 :: À̵¿ºÎ(#22030) cannot find icon file. setting to default. 1102 11:49:14882 :: »ýžíºÎ(#22040) cannot find icon file. setting to default. 1102 11:49:14882 :: ȯ»ýºÎ(#22050) cannot find icon file. setting to default. 1102 11:49:14883 :: ³ì»ö¹°Ÿà(ŒÒ)(#27123) cannot find icon file. setting to default. 1102 11:49:14884 :: °¡ž®ºñ(#29001) cannot find icon file. setting to default. 1102 11:49:14885 :: û°¡ž®ºñ(#29002) cannot find icon file. setting to default. 1102 11:49:14885 :: Ȳ°¡ž®ºñ(#29003) cannot find icon file. setting to default. 1102 11:49:14885 :: È«°¡ž®ºñ(#29004) cannot find icon file. setting to default. 1102 11:49:14885 :: ³ì°¡ž®ºñ(#29005) cannot find icon file. setting to default. 1102 11:49:14885 :: ȲÁÖŒ®(#29006) cannot find icon file. setting to default. 1102 11:49:14885 :: ûÁÖŒ®(#29007) cannot find icon file. setting to default. 1102 11:49:14886 :: ûœÅŒö(#29008) cannot find icon file. setting to default. 1102 11:49:14886 :: ȲœÅŒö(#29009) cannot find icon file. setting to default. 1102 11:49:14886 :: È«œÅŒö(#29010) cannot find icon file. setting to default. 1102 11:49:14886 :: ³ìœÅŒö(#29011) cannot find icon file. setting to default. 1102 11:49:14886 :: ¿¬Ã»œÅŒö(#29012) cannot find icon file. setting to default. 1102 11:49:14886 :: ¿¬È²œÅŒö(#29013) cannot find icon file. setting to default. 1102 11:49:14886 :: ¿¬È«œÅŒö(#29014) cannot find icon file. setting to default. 1102 11:49:14887 :: ¿¬³ìœÅŒö(#29015) cannot find icon file. setting to default. 1102 11:49:14888 :: ¿õ±ÍÀÇ È²±ÝŸî±ÝŽÏ(#30103) cannot find icon file. setting to default. 1102 11:49:14888 :: »çž·ÀÇ °Å¹ÌÁÙ(#30104) cannot find icon file. setting to default. 1102 11:49:14888 :: ÅåœîŽÂ Àü°¥²¿ž®(#30105) cannot find icon file. setting to default. 1102 11:49:14888 :: À¯¶û ŸîžÓŽÏ Ÿà(#30106) cannot find icon file. setting to default. 1102 11:49:14888 :: ¿õ±ÍÀÇ ŒÛ°÷ŽÏ(#30107) cannot find icon file. setting to default. 1102 11:49:14889 :: µµÀÚ±âÂø»ö¿ëÀ¯Ÿà(#30108) cannot find icon file. setting to default. 1102 11:49:14889 :: »çž·ÀÇ °Å¹ÌÁÙ(#30109) cannot find icon file. setting to default. 1102 11:49:14889 :: ÈÄŸÈŒÒÀÇ ÆíÁö(#30110) cannot find icon file. setting to default. 1102 11:49:14889 :: ÅåœîŽÂ Àü°¥²¿ž®(#30111) cannot find icon file. setting to default. 1102 11:49:14890 :: ÀåŸî(#30112) cannot find icon file. setting to default. 1102 11:49:14890 :: ¹Ð±³ °æÀü(#30113) cannot find icon file. setting to default. 1102 11:49:14890 :: ±«Áú Ä¡·áÁŠ(#30115) cannot find icon file. setting to default. 1102 11:49:14890 :: Çà»óÀÎÀÇ ÆíÁö(#30117) cannot find icon file. setting to default. 1102 11:49:14890 :: »ç±ÍÀÇ ºžŒ®ÇÔ(#30118) cannot find icon file. setting to default. 1102 11:49:14898 :: VIP-Feature(#38001) cannot find icon file. setting to default. 1102 11:49:14898 :: Tombola_ticket_today(#38002) cannot find icon file. setting to default. 1102 11:49:14898 :: Tombola_ticket_tomorrow(#38003) cannot find icon file. setting to default. 1102 11:49:14898 :: Tombola_reroll(#38004) cannot find icon file. setting to default. 1102 11:49:14898 :: TombolaPP_spin(#38005) cannot find icon file. setting to default. 1102 11:49:14898 :: Momo-Reroll(#38006) cannot find icon file. setting to default. 1102 11:49:14898 :: Char-Transfer(#38012) cannot find icon file. setting to default. 1102 11:49:14899 :: Char-Rename(#38013) cannot find icon file. setting to default. 1102 11:49:14899 :: Auto-Hunt(#38014) cannot find icon file. setting to default. 1102 11:49:14899 :: ŒÒž®³ªŽÂ ¹æ¿ï(#40005) cannot find icon file. setting to default. 1102 11:49:14899 :: ¿À¶ûij ŒöŒÛŒ­(#40006) cannot find icon file. setting to default. 1102 11:49:14900 :: ¿À¶ûij ºžœº ÆíÁö(#40007) cannot find icon file. setting to default. 1102 11:49:14900 :: ºó ¹«±â ÄÚœºÆ¬(#41000) cannot find icon file. setting to default. 1102 11:49:14903 :: Œ±¹°ºžµûž®(#50041) cannot find icon file. setting to default. 1102 11:49:14903 :: œÂž¶Œö·ÃŒ­(#50062) cannot find icon file. setting to default. 1102 11:49:14903 :: ¿ë°¢ºž¹°»óÀÚ(#50118) cannot find icon file. setting to default. 1102 11:49:14904 :: ¿µŒ®ºžµûž®(#50119) cannot find icon file. setting to default. 1102 11:49:14906 :: Œ®Ã¢Æ÷Ÿ×(#50805) cannot find icon file. setting to default. 1102 11:49:14906 :: ¿µÁö¹öŒžŸ×(#50806) cannot find icon file. setting to default. 1102 11:49:14906 :: žžºŽÃÊŸ×(#50807) cannot find icon file. setting to default. 1102 11:49:14906 :: »ê»Í³ª¹«Ÿ×(#50808) cannot find icon file. setting to default. 1102 11:49:14906 :: ¹Îµé·¹Ÿ×(#50809) cannot find icon file. setting to default. 1102 11:49:14907 :: È«È­ŸŸŸ×(#50810) cannot find icon file. setting to default. 1102 11:49:14907 :: ŽëÃߟ×(#50811) cannot find icon file. setting to default. 1102 11:49:14907 :: »ïÁö±ž¿±ÃÊŸ×(#50812) cannot find icon file. setting to default. 1102 11:49:14907 :: ºóŸàºŽ(#50901) cannot find icon file. setting to default. 1102 11:49:14908 :: È°œÉŸ× ÁŠÁ¶¹ý(#50905) cannot find icon file. setting to default. 1102 11:49:14908 :: Çǵ¶Œö ÁŠÁ¶¹ý(#50906) cannot find icon file. setting to default. 1102 11:49:14908 :: ºžÈ¯Œö ÁŠÁ¶¹ý(#50907) cannot find icon file. setting to default. 1102 11:49:14908 :: ¿µºžŒö ÁŠÁ¶¹ý(#50908) cannot find icon file. setting to default. 1102 11:49:14908 :: ÁøÇǵ¶ ÁŠÁ¶¹ý(#50909) cannot find icon file. setting to default. 1102 11:49:14908 :: È°œÉŸ× ÁŠÁ¶¹ý(#50910) cannot find icon file. setting to default. 1102 11:49:14911 :: ŸÆ±âÀü°©»çÀÚŒÒȯÆÐ(#55707) cannot find icon file. setting to default. 1102 11:49:14911 :: ŸÆ±âÀü°©»çÀÚŒÒȯÆÐ(#55708) cannot find icon file. setting to default. 1102 11:49:14912 :: ŸÆ±âÀü°©»çÀÚŒÒȯÆÐ(#55709) cannot find icon file. setting to default. 1102 11:49:14912 :: ŸÆ±âÀü°©»çÀÚŒÒȯÆÐ(#55710) cannot find icon file. setting to default. 1102 11:49:14912 :: ºÒ°æ(#70103) cannot find icon file. setting to default. 1102 11:49:14913 :: µ¿·á¿Í ÈžÆ÷(#71047) cannot find icon file. setting to default. 1102 11:49:14914 :: Àü±€ÆǺžµûž®(#71091) cannot find icon file. setting to default. 1102 11:49:14916 :: °æÇèÀǹÝÁö(#72303) cannot find icon file. setting to default. 1102 11:49:14916 :: ÃູÀÇ ±žœœ(#72304) cannot find icon file. setting to default. 1102 11:49:14916 :: Ÿß°øÀÇ ºñÀüŒ­(#72309) cannot find icon file. setting to default. 1102 11:49:14916 :: ÁÖŸÈŒúŒ­(#72310) cannot find icon file. setting to default. 1102 11:49:14917 :: ¿ëœÅÀÇ È¯(#72311) cannot find icon file. setting to default. 1102 11:49:14917 :: ¿ëœÅÀÇ °ø°Ý(#72312) cannot find icon file. setting to default. 1102 11:49:14917 :: ¿ëœÅÀÇ ¹æŸî(#72313) cannot find icon file. setting to default. 1102 11:49:14917 :: ¿ëœÅÀÇ ÃູŒ­(#72314) cannot find icon file. setting to default. 1102 11:49:14919 :: µ·ÁÖžÓŽÏ(#80001) cannot find icon file. setting to default. 1102 11:49:14920 :: ¹éÁö(#80002) cannot find icon file. setting to default. 1102 11:49:15602 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/dust/dust.mss] 1102 11:49:15605 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/dust/running_dust.mss] 1102 11:49:15617 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/recuperation/drugup_red.mss] 1102 11:49:15622 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/recuperation/drugup_blue.mss] 1102 11:49:15626 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/recuperation/drugup_green.mss] 1102 11:49:15629 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/recuperation/drugup_purple.mss] 1102 11:49:15633 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/recuperation/autodrugup_red.mss] 1102 11:49:15637 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/recuperation/autodrugup_blue.mss] 1102 11:49:15645 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/buff/buff_item1.mss] 1102 11:49:15662 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/buff/buff_item2.mss] 1102 11:49:15672 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/buff/buff_item3.mss] 1102 11:49:15681 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/buff/buff_item4.mss] 1102 11:49:15691 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/buff/buff_item6.mss] 1102 11:49:15701 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/buff/buff_item7.mss] 1102 11:49:15711 :: CANNOT_FIND_PACK_FILE [sound/effect/hit/gwantong.mss] 1102 11:49:15771 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/click/click_select.mss] 1102 11:49:15775 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/click/click_glow_select.mss] 1102 11:49:15780 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/stun/stun.mss] 1102 11:49:15783 :: CANNOT_FIND_PACK_FILE [sound/effect/world/shinsoo_select.mss] 1102 11:49:15785 :: CANNOT_FIND_PACK_FILE [sound/effect/world/shinsoo_glow_select.mss] 1102 11:49:15787 :: CANNOT_FIND_PACK_FILE [sound/effect/world/chunjo_select.mss] 1102 11:49:15789 :: CANNOT_FIND_PACK_FILE [sound/effect/world/chunjo_glow_select.mss] 1102 11:49:15790 :: CANNOT_FIND_PACK_FILE [sound/effect/world/jinnos_select.mss] 1102 11:49:15791 :: CANNOT_FIND_PACK_FILE [sound/effect/world/jinnos_glow_select.mss] 1102 11:49:15792 :: CANNOT_FIND_PACK_FILE [sound/effect/world/mob_select.mss] 1102 11:49:15794 :: CANNOT_FIND_PACK_FILE [sound/effect/world/mob_glow_select.mss] 1102 11:49:15813 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/click/click.mss] 1102 11:49:15818 :: CANNOT_FIND_PACK_FILE [sound/effect/affect/damagevalue/target.mss] 1102 11:49:15820 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/effect/affect/damagevalue/0.jpg 1102 11:49:15820 :: CANNOT_FIND_PACK_FILE [sound/effect/affect/damagevalue/nontarget.mss] 1102 11:49:15820 :: CANNOT_FIND_PACK_FILE [d:/ymir work/effect/affect/damagevalue/0.jpg] 1102 11:49:15822 :: CANNOT_FIND_PACK_FILE [sound/effect/affect/damagevalue/damage.mss] 1102 11:49:15824 :: CANNOT_FIND_PACK_FILE [sound/effect/affect/damagevalue/damage_1.mss] 1102 11:49:15826 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/effect/affect/damagevalue/poison0.jpg 1102 11:49:15826 :: CANNOT_FIND_PACK_FILE [sound/effect/affect/damagevalue/poison.mss] 1102 11:49:15826 :: CANNOT_FIND_PACK_FILE [d:/ymir work/effect/affect/damagevalue/poison0.jpg] 1102 11:49:15829 :: CANNOT_FIND_PACK_FILE [sound/effect/affect/damagevalue/miss.mss] 1102 11:49:15831 :: CANNOT_FIND_PACK_FILE [sound/effect/affect/damagevalue/target_miss.mss] 1102 11:49:15854 :: CANNOT_FIND_PACK_FILE [sound/effect/hit/percent_damage1.mss] 1102 11:49:15863 :: CANNOT_FIND_PACK_FILE [sound/effect/hit/percent_damage2.mss] 1102 11:49:15871 :: CANNOT_FIND_PACK_FILE [sound/effect/hit/percent_damage3.mss] 1102 11:49:15909 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/intro/wait.mss] 1102 11:49:15918 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/intro/not_selected.mss] 1102 11:49:15963 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/intro/wait.mss] 1102 11:49:15974 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/intro/not_selected.mss] 1102 11:49:16018 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/intro/wait.mss] 1102 11:49:16027 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/intro/not_selected.mss] 1102 11:49:16069 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/intro/wait.mss] 1102 11:49:16082 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/intro/not_selected.mss] 1102 11:49:16125 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/intro/wait.mss] 1102 11:49:16140 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/intro/not_selected.mss] 1102 11:49:16185 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/intro/wait.mss] 1102 11:49:16201 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/intro/not_selected.mss] 1102 11:49:16245 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/intro/wait.mss] 1102 11:49:16257 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/intro/not_selected.mss] 1102 11:49:16301 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/intro/wait.mss] 1102 11:49:16313 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/intro/not_selected.mss] 1102 11:49:16322 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/intro/wait.mss] 1102 11:49:16333 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/intro/not_selected.mss] 1102 11:49:16387 :: Hair number 1 is not exist. 1102 11:49:16394 :: Hair number 1 is not exist. 1102 11:49:16395 :: Hair number 1 is not exist. 1102 11:49:23321 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/fall/fall_7.mss] 1102 11:50:24040 :: CANNOT_FIND_PACK_FILE [sound/effect/background/fire_general_obj_charcoal.mss] 1102 11:50:24090 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/zone/°ø¿ë/hay_01.gr2 1102 11:50:24090 :: CANNOT_FIND_PACK_FILE [d:/ymir work/zone/°ø¿ë/hay_01.gr2] 1102 11:50:24090 :: CArea::SetBuilding: There is no data: d:/ymir work/zone/°ø¿ë/hay_01.gr2 1102 11:50:24090 :: CArea::SetBuilding: There is no data: d:/ymir work/zone/°ø¿ë/hay_01.gr2 1102 11:50:24090 :: CArea::SetBuilding: There is no data: d:/ymir work/zone/°ø¿ë/hay_01.gr2 1102 11:50:24090 :: CArea::SetBuilding: There is no data: d:/ymir work/zone/°ø¿ë/hay_01.gr2 1102 11:50:24095 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/zone/b/obj/general_obj_pieceofstone01 .mdatr 1102 11:50:24095 :: CANNOT_FIND_PACK_FILE [d:/ymir work/zone/b/obj/general_obj_pieceofstone01 .mdatr] 1102 11:50:24349 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/appear_die/monster_appear.mss] 1102 11:50:24353 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/appear_die/monster_die.mss] 1102 11:50:24371 :: CANNOT_FIND_PACK_FILE [sound/effect/hit/blow_electric/light_1_weapon.mss] 1102 11:50:24378 :: CANNOT_FIND_PACK_FILE [sound/effect/hit/blow_electric/light_1_blow.mss] 1102 11:50:24385 :: CANNOT_FIND_PACK_FILE [sound/effect/hit/blow_electric/light_1_body.mss] 1102 11:50:24401 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/empire/empire_a.mss] 1102 11:50:24403 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/empire/empire_b.mss] 1102 11:50:24405 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/empire/empire_c.mss] 1102 11:50:24411 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/geom_sword_loop.mss] 1102 11:50:24418 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/geom_spear_loop.mss] 1102 11:50:24424 :: CANNOT_FIND_PACK_FILE [sound/effect/hit/blow_poison/poison_loop.mss] 1102 11:50:24429 :: CANNOT_FIND_PACK_FILE [sound/effect/affect/slow.mss] 1102 11:50:24435 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/stun/stun_loop.mss] 1102 11:50:24437 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/ready/ready.mss] 1102 11:50:24443 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gyeokgongjang_loop.mss] 1102 11:50:24452 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gyeonggong_loop.mss] 1102 11:50:24458 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/gwigeom_loop.mss] 1102 11:50:24466 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/fear_loop.mss] 1102 11:50:24471 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/jumagap_loop.mss] 1102 11:50:24477 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/3hosin_loop.mss] 1102 11:50:24484 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/boho_loop.mss] 1102 11:50:24491 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/10kwaesok_loop.mss] 1102 11:50:24502 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/heuksin_loop.mss] 1102 11:50:24510 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/muyeong_loop.mss] 1102 11:50:24513 :: CANNOT_FIND_PACK_FILE [sound/effect/hit/blow_flame/flame_loop.mss] 1102 11:50:24519 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/6gicheon_hand.mss] 1102 11:50:24525 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/jeungryeok_hand.mss] 1102 11:50:24529 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/pabeop_loop.mss] 1102 11:50:24530 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/guild_war_flag/flag_red.mss] 1102 11:50:24531 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/guild_war_flag/flag_blue.mss] 1102 11:50:24532 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/guild_war_flag/flag_yellow.mss] 1102 11:50:24534 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/sword/sword_7.mss] 1102 11:50:24538 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/sword/sword_8.mss] 1102 11:50:24542 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/sword/sword_9.mss] 1102 11:50:24546 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/sword/sword_7_b.mss] 1102 11:50:24553 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/sword/sword_8_b.mss] 1102 11:50:24560 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/sword/sword_9_b.mss] 1102 11:50:24563 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/sword/sword_7_f.mss] 1102 11:50:24566 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/sword/sword_8_f.mss] 1102 11:50:24570 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/sword/sword_9_f.mss] 1102 11:50:24573 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/sword/sword_7_s.mss] 1102 11:50:24576 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/sword/sword_8_s.mss] 1102 11:50:24580 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/sword/sword_9_s.mss] 1102 11:50:24582 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/armor/armor_7.mss] 1102 11:50:24586 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/armor/armor_8.mss] 1102 11:50:24589 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/armor/armor_9.mss] 1102 11:50:24592 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/armor/armor-4-2-1.mss] 1102 11:50:24594 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/armor/armor-4-2-2.mss] 1102 11:50:24598 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/gathering/ga_center_small_yellow.mss] 1102 11:50:24600 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/gathering/ga_piece_yellow2.mss] 1102 11:50:24605 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/gathering/ga_center_small_red.mss] 1102 11:50:24611 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/gathering/ga_piece_red.mss] 1102 11:50:24616 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/gathering/ga_center.mss] 1102 11:50:24622 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/gathering/ga_spirit_red.mss] 1102 11:50:24625 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/gathering/ga_center_small_blue_warrior.mss] 1102 11:50:24629 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/gathering/ga_center_small_blue.mss] 1102 11:50:24635 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/gathering/ga_piece_blue.mss] 1102 11:50:24640 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/gathering/ga_spirit_blue.mss] 1102 11:50:24757 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/pokroe_c.mss] 1102 11:50:24760 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/pokroe_b.mss] 1102 11:50:24784 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/muyeongfly.mss] 1102 11:50:24790 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/emoticon/sweat.mss] 1102 11:50:24794 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/emoticon/money.mss] 1102 11:50:24799 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/emoticon/happy.mss] 1102 11:50:24802 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/emoticon/love_s.mss] 1102 11:50:24807 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/emoticon/love_l.mss] 1102 11:50:24813 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/emoticon/angry.mss] 1102 11:50:24820 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/emoticon/aha.mss] 1102 11:50:24831 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/emoticon/gloom.mss] 1102 11:50:24836 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/emoticon/sorry.mss] 1102 11:50:24840 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/emoticon/!_mix_back.mss] 1102 11:50:24843 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/emoticon/question.mss] 1102 11:50:24849 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/emoticon/fish.mss] 1102 11:50:24851 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/general/wait.mss] 1102 11:50:24883 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/general/falling_stand.mss] 1102 11:50:24894 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/general/back_falling_stand.mss] 1102 11:50:24911 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/dig/dig.mss] 1102 11:50:24916 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/general/wait_1.mss] 1102 11:50:24938 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/samyeon_d.mss] 1102 11:50:24952 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/palbang_sword.mss] 1102 11:50:24956 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/palbang_spin.mss] 1102 11:50:24974 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/jeongwi.mss] 1102 11:50:24984 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/geom.mss] 1102 11:50:24988 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/geom_sword_making.mss] 1102 11:50:24993 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/geom-badak.mss] 1102 11:50:25011 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/tanhwan.mss] 1102 11:50:25021 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gihyeol_spark.mss] 1102 11:50:25028 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gihyeol_sword.mss] 1102 11:50:25043 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gihyeol.mss] 1102 11:50:25056 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gigongcham_making.mss] 1102 11:50:25059 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gigongcham_swing.mss] 1102 11:50:25086 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gyeoksantau_triple.mss] 1102 11:50:25103 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/daejingak.mss] 1102 11:50:25119 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gyeokgongjang.mss] 1102 11:50:25134 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/geompung_sword.mss] 1102 11:50:25150 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/noegeomdorae.mss] 1102 11:50:25159 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/noegeomdorae_loop.mss] 1102 11:50:25175 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/samyeon_2.mss] 1102 11:50:25185 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/palbang_2_sword.mss] 1102 11:50:25189 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/palbang_2_spin.mss] 1102 11:50:25203 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/jeongwi_2.mss] 1102 11:50:25209 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/geom_2_sword_making.mss] 1102 11:50:25216 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/geom_2_badak.mss] 1102 11:50:25229 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/tanhwan_2.mss] 1102 11:50:25236 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gihyeol_2_spark.mss] 1102 11:50:25243 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gihyeol_2_sword.mss] 1102 11:50:25259 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gihyeol_2.mss] 1102 11:50:25267 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gigongcham_2_making.mss] 1102 11:50:25272 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gigongcham_2_swing.mss] 1102 11:50:25294 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gyeoksan_2.mss] 1102 11:50:25305 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/daejingak_2.mss] 1102 11:50:25317 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/cheongeun_2.mss] 1102 11:50:25327 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/geompung_2_sword.mss] 1102 11:50:25343 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/noegeomdorae_2.mss] 1102 11:50:25352 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/noegeomdorae_loop_2.mss] 1102 11:50:25366 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/samyeon_3.mss] 1102 11:50:25379 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/palbang_3_sword.mss] 1102 11:50:25386 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/palbang_3_spin.mss] 1102 11:50:25401 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/jeongwi_3.mss] 1102 11:50:25411 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/geom_3_sword_making.mss] 1102 11:50:25421 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/geom_3_badak.mss] 1102 11:50:25434 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/tanhwan_3.mss] 1102 11:50:25443 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gihyeol_3_spark.mss] 1102 11:50:25452 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gihyeol_3_sword.mss] 1102 11:50:25468 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gihyeol_3.mss] 1102 11:50:25476 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gigongcham_3_making.mss] 1102 11:50:25482 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gigongcham_3_swing.mss] 1102 11:50:25505 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gyeoksan_3.mss] 1102 11:50:25517 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/daejingak_3.mss] 1102 11:50:25532 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/cheongeun_3.mss] 1102 11:50:25543 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/geompung_3_sword.mss] 1102 11:50:25558 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/noegeomdorae_3.mss] 1102 11:50:25567 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/noegeomdorae_loop_3.mss] 1102 11:50:25580 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/samyeon_4.mss] 1102 11:50:25595 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/palbang_4_sword.mss] 1102 11:50:25605 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/palbang_4_spin.mss] 1102 11:50:25620 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/jeongwi_4.mss] 1102 11:50:25633 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/geom_4_sword_making.mss] 1102 11:50:25644 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/geom_4_badak.mss] 1102 11:50:25659 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/tanhwan_4.mss] 1102 11:50:25668 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gihyeol_4_spark.mss] 1102 11:50:25677 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gihyeol_4_sword.mss] 1102 11:50:25694 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gihyeol_4.mss] 1102 11:50:25705 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gigongcham_4_making.mss] 1102 11:50:25712 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gigongcham_4_swing.mss] 1102 11:50:25736 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/gyeoksan_4.mss] 1102 11:50:25752 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/daejingak_4.mss] 1102 11:50:25770 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/cheongeun_4.mss] 1102 11:50:25782 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/geompung_4_sword.mss] 1102 11:50:25796 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/noegeomdorae_4.mss] 1102 11:50:25804 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/effect/noegeomdorae_loop_4.mss] 1102 11:50:25811 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/guild/effect/star.jpg 1102 11:50:25812 :: CANNOT_FIND_PACK_FILE [sound/guild/effect/yongsinuipi_make.mss] 1102 11:50:25812 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/skill/guild_yongsinuipi.mss] 1102 11:50:25823 :: CANNOT_FIND_PACK_FILE [sound/guild/effect/yongsinuichukbok_make.mss] 1102 11:50:25823 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/skill/guild_yongsinuichukbok.mss] 1102 11:50:25828 :: CANNOT_FIND_PACK_FILE [sound/guild/effect/seonghwigap_make.mss] 1102 11:50:25829 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/skill/guild_seonghwigap.mss] 1102 11:50:25834 :: CResourceManager::GetResourcePointer: File not exist D:\Ymir Work\pc\assassin\effect\16-bottom.jpg 1102 11:50:25834 :: CANNOT_FIND_PACK_FILE [sound/guild/effect/gasokhwa_make.mss] 1102 11:50:25835 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/skill/guild_gasokhwa.mss] 1102 11:50:25842 :: CANNOT_FIND_PACK_FILE [sound/guild/effect/yongsinuibunno_make.mss] 1102 11:50:25843 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/skill/guild_yongsinuibunno.mss] 1102 11:50:25857 :: CResourceManager::GetResourcePointer: File not exist D:\Ymir Work\pc\shaman\effect\jigam.jpg 1102 11:50:25858 :: CResourceManager::GetResourcePointer: File not exist D:\Ymir Work\pc\shaman\effect\w_ring.jpg 1102 11:50:25858 :: CResourceManager::GetResourcePointer: File not exist D:\Ymir Work\pc\shaman\effect\white_sphere.jpg 1102 11:50:25858 :: CResourceManager::GetResourcePointer: File not exist D:\Ymir Work\pc\shaman\effect\wind.jpg 1102 11:50:25859 :: CResourceManager::GetResourcePointer: File not exist D:\Ymir Work\pc\shaman\effect\W_star.jpg 1102 11:50:25859 :: CResourceManager::GetResourcePointer: File not exist D:\Ymir Work\pc\shaman\effect\jigam_ring.jpg 1102 11:50:25859 :: CResourceManager::GetResourcePointer: File not exist D:\Ymir Work\pc\shaman\effect\gyeokgong_triple_loop_2.jpg 1102 11:50:25860 :: CResourceManager::GetResourcePointer: File not exist D:\Ymir Work\pc\shaman\effect\noe_w_ring.jpg 1102 11:50:25860 :: CANNOT_FIND_PACK_FILE [sound/guild/effect/jumunsul_make.mss] 1102 11:50:25861 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/skill/guild_jumunsul.mss] 1102 11:50:25863 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/action/dance_1.mss] 1102 11:50:25864 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/action/dance_2.mss] 1102 11:50:25864 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/action/dance_3.mss] 1102 11:50:25864 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/action/dance_4.mss] 1102 11:50:25865 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/action/dance_5.mss] 1102 11:50:25865 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/action/dance_6.mss] 1102 11:50:25865 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/action/congratulation.mss] 1102 11:50:25866 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/action/forgive.mss] 1102 11:50:25866 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/action/angry.mss] 1102 11:50:25867 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/action/attractive.mss] 1102 11:50:25867 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/action/sad.mss] 1102 11:50:25868 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/action/shy.mss] 1102 11:50:25868 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/action/cheerup.mss] 1102 11:50:25869 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/action/banter.mss] 1102 11:50:25869 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/action/joy.mss] 1102 11:50:25878 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/wedding/wait.mss] 1102 11:50:25878 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/wedding/walk.mss] 1102 11:50:25879 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/onehand_sword/wait.mss] 1102 11:50:25885 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/onehand_sword/wait_1.mss] 1102 11:50:25949 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/twohand_sword/wait.mss] 1102 11:50:25954 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/twohand_sword/wait_1.mss] 1102 11:50:26027 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/fishing/wait.mss] 1102 11:50:26043 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/fishing/fishing_wait.mss] 1102 11:50:26051 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/fishing/fishing_react.mss] 1102 11:50:26067 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/horse/wait.mss] 1102 11:50:26070 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/horse/wait_1.mss] 1102 11:50:26074 :: CANNOT_FIND_PACK_FILE [sound/pc/warrior/horse/wait_2.mss] 1102 11:50:26118 :: CANNOT_FIND_PACK_FILE [sound/pc/common/effect/horse_charge.mss] 1102 11:50:26188 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/general/wait.mss] 1102 11:50:26220 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/general/falling_stand.mss] 1102 11:50:26229 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/general/back_falling_stand.mss] 1102 11:50:26248 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/general/wait_1.mss] 1102 11:50:26414 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/skill/guild_yongsinuipi.mss] 1102 11:50:26421 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/skill/guild_yongsinuichukbok.mss] 1102 11:50:26422 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/skill/guild_seonghwigap.mss] 1102 11:50:26422 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/skill/guild_gasokhwa.mss] 1102 11:50:26423 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/skill/guild_yongsinuibunno.mss] 1102 11:50:26423 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/skill/guild_jumunsul.mss] 1102 11:50:26425 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/action/dance_1.mss] 1102 11:50:26426 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/action/dance_2.mss] 1102 11:50:26426 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/action/dance_3.mss] 1102 11:50:26427 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/action/dance_4.mss] 1102 11:50:26427 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/action/dance_5.mss] 1102 11:50:26428 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/action/dance_6.mss] 1102 11:50:26428 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/action/congratulation.mss] 1102 11:50:26429 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/action/forgive.mss] 1102 11:50:26429 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/action/angry.mss] 1102 11:50:26430 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/action/attractive.mss] 1102 11:50:26430 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/action/sad.mss] 1102 11:50:26430 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/action/shy.mss] 1102 11:50:26431 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/action/cheerup.mss] 1102 11:50:26431 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/action/banter.mss] 1102 11:50:26432 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/action/joy.mss] 1102 11:50:26439 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/wedding/wait.mss] 1102 11:50:26440 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/wedding/walk.mss] 1102 11:50:26440 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/onehand_sword/wait.mss] 1102 11:50:26446 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/onehand_sword/wait_1.mss] 1102 11:50:26516 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/twohand_sword/wait.mss] 1102 11:50:26520 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/twohand_sword/wait_1.mss] 1102 11:50:26594 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/fishing/wait.mss] 1102 11:50:26612 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/fishing/fishing_wait.mss] 1102 11:50:26622 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/fishing/fishing_react.mss] 1102 11:50:26641 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/horse/wait.mss] 1102 11:50:26644 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/horse/wait_1.mss] 1102 11:50:26648 :: CANNOT_FIND_PACK_FILE [sound/pc2/warrior/horse/wait_2.mss] 1102 11:50:26728 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/general/wait.mss] 1102 11:50:26761 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/general/falling_stand.mss] 1102 11:50:26770 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/general/back_falling_stand.mss] 1102 11:50:26787 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/general/wait_1.mss] 1102 11:50:26811 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/amseup.mss] 1102 11:50:26814 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/amseup_fallow.mss] 1102 11:50:26820 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/amseup_blow.mss] 1102 11:50:26829 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gungsintanyeong_start.mss] 1102 11:50:26833 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gungsintanyeong_end.mss] 1102 11:50:26839 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gungsintanyeong_blow.mss] 1102 11:50:26854 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/charyunsal.mss] 1102 11:50:26858 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/charyunsal_foot.mss] 1102 11:50:26868 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/eunhyeongbeop.mss] 1102 11:50:26877 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/poison.mss] 1102 11:50:26878 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/skill/sangong.mss] 1102 11:50:26888 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_start.mss] 1102 11:50:26891 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_end.mss] 1102 11:50:26901 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_blow.mss] 1102 11:50:26908 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_hand.mss] 1102 11:50:26919 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gwangyeoksul_energy.mss] 1102 11:50:26924 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gwangyeoksul_arrowenergy.mss] 1102 11:50:26937 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/hwajopa_energy.mss] 1102 11:50:26941 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/hwajopa_arrowenergy.mss] 1102 11:50:26950 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gyeonggong_start.mss] 1102 11:50:26959 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/yeonsa_arrowenergy.mss] 1102 11:50:26959 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/skill/dokgigung.mss] 1102 11:50:26965 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/taeyang_hand.mss] 1102 11:50:26973 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/taeyang_blow.mss] 1102 11:50:26985 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/amseup_2.mss] 1102 11:50:26987 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/amseup_2_fallow.mss] 1102 11:50:26995 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/amseup_2_blow.mss] 1102 11:50:27000 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gungsintanyeong_2_start.mss] 1102 11:50:27004 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gungsintanyeong_2_end.mss] 1102 11:50:27011 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gungsintanyeong_2_blow.mss] 1102 11:50:27023 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/charyunsal_2.mss] 1102 11:50:27030 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/charyunsal_2_foot.mss] 1102 11:50:27038 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/eunhyeongbeop_2.mss] 1102 11:50:27046 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/dokgigung_2.mss] 1102 11:50:27053 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_start_2.mss] 1102 11:50:27057 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_end_2.mss] 1102 11:50:27067 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_blow_2.mss] 1102 11:50:27074 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_hand_2.mss] 1102 11:50:27084 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gwangyeoksul_2_energy.mss] 1102 11:50:27091 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gwangyeoksul_2_arrowenergy.mss] 1102 11:50:27100 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/hwajopa_2_energy.mss] 1102 11:50:27103 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/hwajopa_2_arrowenergy.mss] 1102 11:50:27106 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gyeonggong_2_start.mss] 1102 11:50:27113 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/yeonsa_2_arrowenergy.mss] 1102 11:50:27119 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/taeyang_hand_2.mss] 1102 11:50:27128 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/taeyang_blow_2.mss] 1102 11:50:27140 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/amseup_3.mss] 1102 11:50:27144 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/amseup_3_fallow.mss] 1102 11:50:27154 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/amseup_3_blow.mss] 1102 11:50:27163 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gungsintanyeong_3_start.mss] 1102 11:50:27173 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gungsintanyeong_3_blow.mss] 1102 11:50:27187 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/charyunsal_3.mss] 1102 11:50:27194 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/charyunsal_3_foot.mss] 1102 11:50:27205 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/eunhyeongbeop_3.mss] 1102 11:50:27216 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/dokgigung_3.mss] 1102 11:50:27224 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_start_3.mss] 1102 11:50:27228 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_end_3.mss] 1102 11:50:27240 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_blow_3.mss] 1102 11:50:27247 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_hand_3.mss] 1102 11:50:27259 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gwangyeoksul_3_energy.mss] 1102 11:50:27267 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gwangyeoksul_3_arrowenergy.mss] 1102 11:50:27277 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/hwajopa_3_energy.mss] 1102 11:50:27284 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/hwajopa_3_arrowenergy.mss] 1102 11:50:27289 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gyeonggong_3_start.mss] 1102 11:50:27296 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/yeonsa_3_arrowenergy.mss] 1102 11:50:27302 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/taeyang_hand_3.mss] 1102 11:50:27310 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/taeyang_blow_3.mss] 1102 11:50:27323 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/amseup_4.mss] 1102 11:50:27327 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/amseup_4_fallow.mss] 1102 11:50:27337 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/amseup_4_blow.mss] 1102 11:50:27346 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gungsintanyeong_4_start.mss] 1102 11:50:27353 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gungsintanyeong_4_end.mss] 1102 11:50:27362 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gungsintanyeong_4_blow.mss] 1102 11:50:27378 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/charyunsal_4.mss] 1102 11:50:27386 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/charyunsal_4_foot.mss] 1102 11:50:27397 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/eunhyeongbeop_4.mss] 1102 11:50:27409 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/dokgigung_4.mss] 1102 11:50:27416 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_start_4.mss] 1102 11:50:27419 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_end_4.mss] 1102 11:50:27429 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_blow_4.mss] 1102 11:50:27437 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/seomjeom_hand_4.mss] 1102 11:50:27449 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gwangyeoksul_4_energy.mss] 1102 11:50:27459 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gwangyeoksul_4_arrowenergy.mss] 1102 11:50:27471 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/hwajopa_4_energy.mss] 1102 11:50:27479 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/hwajopa_4_arrowenergy.mss] 1102 11:50:27485 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/gyeonggong_4_start.mss] 1102 11:50:27496 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/yeonsa_4_arrowenergy.mss] 1102 11:50:27503 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/taeyang_hand_4.mss] 1102 11:50:27513 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/taeyang_blow_4.mss] 1102 11:50:27515 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/skill/guild_yongsinuipi.mss] 1102 11:50:27519 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/skill/guild_yongsinuichukbok.mss] 1102 11:50:27520 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/skill/guild_seonghwigap.mss] 1102 11:50:27520 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/skill/guild_gasokhwa.mss] 1102 11:50:27521 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/skill/guild_yongsinuibunno.mss] 1102 11:50:27522 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/skill/guild_jumunsul.mss] 1102 11:50:27523 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/dance_1.mss] 1102 11:50:27524 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/dance_2.mss] 1102 11:50:27524 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/dance_3.mss] 1102 11:50:27524 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/dance_4.mss] 1102 11:50:27525 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/dance_5.mss] 1102 11:50:27525 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/dance_6.mss] 1102 11:50:27526 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/congratulation.mss] 1102 11:50:27526 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/forgive.mss] 1102 11:50:27527 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/angry.mss] 1102 11:50:27527 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/attractive.mss] 1102 11:50:27528 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/sad.mss] 1102 11:50:27529 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/shy.mss] 1102 11:50:27529 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/cheerup.mss] 1102 11:50:27530 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/banter.mss] 1102 11:50:27530 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/joy.mss] 1102 11:50:27533 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/kiss_with_assassin.mss] 1102 11:50:27534 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/kiss_with_shaman.mss] 1102 11:50:27535 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/french_kiss_with_assassin.mss] 1102 11:50:27536 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/action/french_kiss_with_shaman.mss] 1102 11:50:27537 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/wedding/wait.mss] 1102 11:50:27538 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/wedding/walk.mss] 1102 11:50:27538 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/onehand_sword/wait.mss] 1102 11:50:27541 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/onehand_sword/wait_1.mss] 1102 11:50:27611 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/dualhand_sword/wait.mss] 1102 11:50:27614 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/dualhand_sword/wait_1.mss] 1102 11:50:27691 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/bow/wait.mss] 1102 11:50:27694 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/bow/wait_1.mss] 1102 11:50:27701 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/bow/walk.mss] 1102 11:50:27728 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/fishing/wait.mss] 1102 11:50:27744 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/fishing/fishing_wait.mss] 1102 11:50:27752 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/fishing/fishing_react.mss] 1102 11:50:27766 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/horse/wait.mss] 1102 11:50:27769 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/horse/wait_1.mss] 1102 11:50:27774 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/horse/wait_2.mss] 1102 11:50:27843 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/horse_onehand_sword_splash.mss] 1102 11:50:27879 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/effect/horse_onehand_sword_splash_making.mss] 1102 11:50:27880 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/horse_bow/wait.mss] 1102 11:50:27883 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/horse_bow/wait_1.mss] 1102 11:50:27887 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/horse_bow/wait_2.mss] 1102 11:50:27893 :: CANNOT_FIND_PACK_FILE [sound/pc/assassin/horse_bow/run.mss] 1102 11:50:27916 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/general/wait.mss] 1102 11:50:27945 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/general/falling_stand.mss] 1102 11:50:27954 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/general/back_falling_stand.mss] 1102 11:50:27976 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/general/wait_1.mss] 1102 11:50:28101 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/skill/guild_yongsinuipi.mss] 1102 11:50:28105 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/skill/guild_yongsinuichukbok.mss] 1102 11:50:28106 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/skill/guild_seonghwigap.mss] 1102 11:50:28106 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/skill/guild_gasokhwa.mss] 1102 11:50:28107 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/skill/guild_yongsinuibunno.mss] 1102 11:50:28108 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/skill/guild_jumunsul.mss] 1102 11:50:28109 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/slap_hurt.mss] 1102 11:50:28109 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/dance_1.mss] 1102 11:50:28110 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/dance_2.mss] 1102 11:50:28110 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/dance_3.mss] 1102 11:50:28110 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/dance_4.mss] 1102 11:50:28111 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/dance_5.mss] 1102 11:50:28111 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/dance_6.mss] 1102 11:50:28112 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/congratulation.mss] 1102 11:50:28112 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/forgive.mss] 1102 11:50:28113 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/angry.mss] 1102 11:50:28113 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/attractive.mss] 1102 11:50:28114 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/sad.mss] 1102 11:50:28114 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/shy.mss] 1102 11:50:28115 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/cheerup.mss] 1102 11:50:28115 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/banter.mss] 1102 11:50:28115 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/action/joy.mss] 1102 11:50:28124 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/wedding/wait.mss] 1102 11:50:28124 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/wedding/walk.mss] 1102 11:50:28124 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/onehand_sword/wait.mss] 1102 11:50:28128 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/onehand_sword/wait_1.mss] 1102 11:50:28193 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/dualhand_sword/wait.mss] 1102 11:50:28197 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/dualhand_sword/wait_1.mss] 1102 11:50:28263 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/bow/wait.mss] 1102 11:50:28267 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/bow/wait_1.mss] 1102 11:50:28273 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/bow/walk.mss] 1102 11:50:28300 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/fishing/wait.mss] 1102 11:50:28315 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/fishing/fishing_wait.mss] 1102 11:50:28326 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/fishing/fishing_react.mss] 1102 11:50:28339 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/horse/wait.mss] 1102 11:50:28342 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/horse/wait_1.mss] 1102 11:50:28347 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/horse/wait_2.mss] 1102 11:50:28436 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/horse_bow/wait.mss] 1102 11:50:28439 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/horse_bow/wait_1.mss] 1102 11:50:28443 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/horse_bow/wait_2.mss] 1102 11:50:28450 :: CANNOT_FIND_PACK_FILE [sound/pc2/assassin/horse_bow/run.mss] 1102 11:50:28477 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/general/wait.mss] 1102 11:50:28512 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/general/falling_stand.mss] 1102 11:50:28522 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/general/back_falling_stand.mss] 1102 11:50:28578 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/yonggwonpa.mss] 1102 11:50:28589 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/gwigeom.mss] 1102 11:50:28594 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/gwigeom_make.mss] 1102 11:50:28610 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/fear_making.mss] 1102 11:50:28628 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/jumagap.mss] 1102 11:50:28646 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/pabeopsul_making.mss] 1102 11:50:28659 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/maryeong_making.mss] 1102 11:50:28674 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/hwayeom.mss] 1102 11:50:28693 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/muyeong_make.mss] 1102 11:50:28707 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/tusok_making.mss] 1102 11:50:28710 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/geomhwagyeokhand_fallow.mss] 1102 11:50:28715 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/geomhwagyeokhand.mss] 1102 11:50:28716 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/skill/mahwan.mss] 1102 11:50:28731 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/swaeryeong_2.mss] 1102 11:50:28744 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/yonggwonpa_2.mss] 1102 11:50:28752 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/gwigeom_2.mss] 1102 11:50:28763 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/fear_2_making.mss] 1102 11:50:28775 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/jumagap_2_making.mss] 1102 11:50:28786 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/pabeopsul_2_making.mss] 1102 11:50:28795 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/maryeong_2_making.mss] 1102 11:50:28812 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/hwayeom_2.mss] 1102 11:50:28827 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/muyeong_2_making.mss] 1102 11:50:28835 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/tusok_2_making.mss] 1102 11:50:28838 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/geomhwagyeokhand_2_fallow.mss] 1102 11:50:28843 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/geomhwagyeokhand_2.mss] 1102 11:50:28858 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/swaeryeong_3.mss] 1102 11:50:28871 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/yonggwonpa_3.mss] 1102 11:50:28880 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/gwigeom_3.mss] 1102 11:50:28897 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/fear_3_making.mss] 1102 11:50:28913 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/jumagap_4_making.mss] 1102 11:50:28925 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/pabeopsul_3_making.mss] 1102 11:50:28934 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/maryeong_3_making.mss] 1102 11:50:28953 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/hwayeom_3.mss] 1102 11:50:28972 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/muyeong_3_making.mss] 1102 11:50:28982 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/tusok_3_making.mss] 1102 11:50:28986 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/geomhwagyeokhand_3_fallow.mss] 1102 11:50:28993 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/geomhwagyeokhand_3.mss] 1102 11:50:29007 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/swaeryeong_4.mss] 1102 11:50:29025 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/yonggwonpa_4.mss] 1102 11:50:29040 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/gwigeom_4.mss] 1102 11:50:29061 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/fear_4_making.mss] 1102 11:50:29077 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/jumagap_3_making.mss] 1102 11:50:29088 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/pabeopsul_4_making.mss] 1102 11:50:29100 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/maryeong_4_making.mss] 1102 11:50:29127 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/hwayeom_4.mss] 1102 11:50:29146 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/muyeong_4_making.mss] 1102 11:50:29156 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/tusok_4_making.mss] 1102 11:50:29160 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/geomhwagyeokhand_4_fallow.mss] 1102 11:50:29167 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/geomhwagyeokhand_4.mss] 1102 11:50:29168 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/skill/guild_yongsinuipi.mss] 1102 11:50:29169 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/skill/guild_yongsinuichukbok.mss] 1102 11:50:29169 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/skill/guild_seonghwigap.mss] 1102 11:50:29170 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/skill/guild_gasokhwa.mss] 1102 11:50:29170 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/skill/guild_yongsinuibunno.mss] 1102 11:50:29171 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/skill/guild_jumunsul.mss] 1102 11:50:29173 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/dance_1.mss] 1102 11:50:29173 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/dance_2.mss] 1102 11:50:29173 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/dance_3.mss] 1102 11:50:29174 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/dance_4.mss] 1102 11:50:29174 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/dance_5.mss] 1102 11:50:29175 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/dance_6.mss] 1102 11:50:29175 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/congratulation.mss] 1102 11:50:29175 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/forgive.mss] 1102 11:50:29176 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/angry.mss] 1102 11:50:29176 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/attractive.mss] 1102 11:50:29177 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/sad.mss] 1102 11:50:29177 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/shy.mss] 1102 11:50:29177 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/cheerup.mss] 1102 11:50:29178 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/banter.mss] 1102 11:50:29178 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/joy.mss] 1102 11:50:29180 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/kiss_with_warrior.mss] 1102 11:50:29181 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/kiss_with_sura.mss] 1102 11:50:29182 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/french_kiss_with_warrior.mss] 1102 11:50:29183 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/action/french_kiss_with_sura.mss] 1102 11:50:29185 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/wedding/wait.mss] 1102 11:50:29186 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/wedding/walk.mss] 1102 11:50:29186 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/onehand_sword/wait.mss] 1102 11:50:29255 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/fishing/wait.mss] 1102 11:50:29275 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/fishing/fishing_wait.mss] 1102 11:50:29284 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/fishing/fishing_react.mss] 1102 11:50:29305 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/horse/wait.mss] 1102 11:50:29308 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/horse/wait_1.mss] 1102 11:50:29313 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/horse/wait_2.mss] 1102 11:50:29353 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/horse_onehand_sword_splash_energy.mss] 1102 11:50:29363 :: CANNOT_FIND_PACK_FILE [sound/pc/sura/effect/horse_onehand_sword_splash_blow.mss] 1102 11:50:29398 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/general/wait.mss] 1102 11:50:29437 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/general/falling_stand.mss] 1102 11:50:29448 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/general/back_falling_stand.mss] 1102 11:50:29581 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/skill/guild_yongsinuipi.mss] 1102 11:50:29582 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/skill/guild_yongsinuichukbok.mss] 1102 11:50:29582 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/skill/guild_seonghwigap.mss] 1102 11:50:29583 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/skill/guild_gasokhwa.mss] 1102 11:50:29583 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/skill/guild_yongsinuibunno.mss] 1102 11:50:29584 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/skill/guild_jumunsul.mss] 1102 11:50:29585 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/slap_hurt.mss] 1102 11:50:29586 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/dance_1.mss] 1102 11:50:29586 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/dance_2.mss] 1102 11:50:29586 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/dance_3.mss] 1102 11:50:29587 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/dance_4.mss] 1102 11:50:29587 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/dance_5.mss] 1102 11:50:29588 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/dance_6.mss] 1102 11:50:29588 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/congratulation.mss] 1102 11:50:29588 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/forgive.mss] 1102 11:50:29589 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/angry.mss] 1102 11:50:29589 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/attractive.mss] 1102 11:50:29589 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/sad.mss] 1102 11:50:29590 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/shy.mss] 1102 11:50:29590 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/cheerup.mss] 1102 11:50:29591 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/banter.mss] 1102 11:50:29591 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/action/joy.mss] 1102 11:50:29599 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/wedding/wait.mss] 1102 11:50:29600 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/wedding/walk.mss] 1102 11:50:29600 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/onehand_sword/wait.mss] 1102 11:50:29675 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/fishing/wait.mss] 1102 11:50:29697 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/fishing/fishing_wait.mss] 1102 11:50:29709 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/fishing/fishing_react.mss] 1102 11:50:29729 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/horse/wait.mss] 1102 11:50:29734 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/horse/wait_1.mss] 1102 11:50:29741 :: CANNOT_FIND_PACK_FILE [sound/pc2/sura/horse/wait_2.mss] 1102 11:50:29803 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/general/wait.mss] 1102 11:50:29836 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/general/falling_stand.mss] 1102 11:50:29847 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/general/back_falling_stand.mss] 1102 11:50:29880 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/dance_1.mss] 1102 11:50:29880 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/dance_2.mss] 1102 11:50:29881 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/dance_3.mss] 1102 11:50:29881 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/dance_4.mss] 1102 11:50:29882 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/dance_5.mss] 1102 11:50:29882 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/dance_6.mss] 1102 11:50:29882 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/congratulation.mss] 1102 11:50:29883 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/forgive.mss] 1102 11:50:29883 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/angry.mss] 1102 11:50:29883 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/attractive.mss] 1102 11:50:29884 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/sad.mss] 1102 11:50:29884 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/shy.mss] 1102 11:50:29885 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/cheerup.mss] 1102 11:50:29885 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/banter.mss] 1102 11:50:29885 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/joy.mss] 1102 11:50:29888 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/kiss_with_assassin.mss] 1102 11:50:29889 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/kiss_with_shaman.mss] 1102 11:50:29890 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/french_kiss_with_assassin.mss] 1102 11:50:29891 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/action/french_kiss_with_shaman.mss] 1102 11:50:29893 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/wedding/wait.mss] 1102 11:50:29894 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/wedding/walk.mss] 1102 11:50:29894 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/fan/wait.mss] 1102 11:50:29969 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/bell/wait.mss] 1102 11:50:30050 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/1bipamaking.mss] 1102 11:50:30064 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/yongpa_a.mss] 1102 11:50:30070 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/noegem_boom.mss] 1102 11:50:30087 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/paeryong.mss] 1102 11:50:30100 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/3hosin_making.mss] 1102 11:50:30112 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/boho_making.mss] 1102 11:50:30124 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/6gicheon_making.mss] 1102 11:50:30135 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/noejeon_making.mss] 1102 11:50:30152 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/pokroe_a.mss] 1102 11:50:30158 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/2jeongeop_making.mss] 1102 11:50:30162 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/10kwaesok_making.mss] 1102 11:50:30167 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/jeungryeok_making.mss] 1102 11:50:30175 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/bipabu_2_making.mss] 1102 11:50:30184 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/yongpa_2_head.mss] 1102 11:50:30203 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/paeryong_2.mss] 1102 11:50:30217 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/noejeon_2_making.mss] 1102 11:50:30234 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/pokroe_2_making.mss] 1102 11:50:30248 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/bipabu_3_making.mss] 1102 11:50:30257 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/yongpa_3_head.mss] 1102 11:50:30284 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/paeryong_3.mss] 1102 11:50:30301 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/noejeon_3_making.mss] 1102 11:50:30318 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/pokroe_3_making.mss] 1102 11:50:30334 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/bipabu_4_making.mss] 1102 11:50:30345 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/yongpa_4_head.mss] 1102 11:50:30381 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/paeryong_4.mss] 1102 11:50:30389 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/3hosin_making_4.mss] 1102 11:50:30394 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/boho_making_4.mss] 1102 11:50:30399 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/6gicheon_making_4.mss] 1102 11:50:30410 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/noejeon_4_making.mss] 1102 11:50:30427 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/pokroe_4_making.mss] 1102 11:50:30434 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/10kwaesok_making_4.mss] 1102 11:50:30438 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/effect/jeungryeok_making_4.mss] 1102 11:50:30439 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/skill/guild_yongsinuipi.mss] 1102 11:50:30440 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/skill/guild_yongsinuichukbok.mss] 1102 11:50:30440 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/skill/guild_seonghwigap.mss] 1102 11:50:30441 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/skill/guild_gasokhwa.mss] 1102 11:50:30441 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/skill/guild_yongsinuibunno.mss] 1102 11:50:30442 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/skill/guild_jumunsul.mss] 1102 11:50:30442 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/fishing/wait.mss] 1102 11:50:30461 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/fishing/fishing_wait.mss] 1102 11:50:30471 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/fishing/fishing_react.mss] 1102 11:50:30486 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/horse/wait.mss] 1102 11:50:30489 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/horse/wait_1.mss] 1102 11:50:30495 :: CANNOT_FIND_PACK_FILE [sound/pc/shaman/horse/wait_2.mss] 1102 11:50:30593 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/general/wait.mss] 1102 11:50:30627 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/general/falling_stand.mss] 1102 11:50:30636 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/general/back_falling_stand.mss] 1102 11:50:30669 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/slap_hurt.mss] 1102 11:50:30670 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/dance_1.mss] 1102 11:50:30670 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/dance_2.mss] 1102 11:50:30670 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/dance_3.mss] 1102 11:50:30671 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/dance_4.mss] 1102 11:50:30671 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/dance_5.mss] 1102 11:50:30672 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/dance_6.mss] 1102 11:50:30672 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/congratulation.mss] 1102 11:50:30672 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/forgive.mss] 1102 11:50:30673 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/angry.mss] 1102 11:50:30673 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/attractive.mss] 1102 11:50:30674 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/sad.mss] 1102 11:50:30674 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/shy.mss] 1102 11:50:30674 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/cheerup.mss] 1102 11:50:30675 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/banter.mss] 1102 11:50:30675 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/action/joy.mss] 1102 11:50:30684 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/wedding/wait.mss] 1102 11:50:30685 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/wedding/walk.mss] 1102 11:50:30685 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/fan/wait.mss] 1102 11:50:30760 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/bell/wait.mss] 1102 11:50:30902 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/skill/guild_yongsinuipi.mss] 1102 11:50:30903 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/skill/guild_yongsinuichukbok.mss] 1102 11:50:30903 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/skill/guild_seonghwigap.mss] 1102 11:50:30904 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/skill/guild_gasokhwa.mss] 1102 11:50:30904 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/skill/guild_yongsinuibunno.mss] 1102 11:50:30905 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/skill/guild_jumunsul.mss] 1102 11:50:30905 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/fishing/wait.mss] 1102 11:50:30926 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/fishing/fishing_wait.mss] 1102 11:50:30938 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/fishing/fishing_react.mss] 1102 11:50:30960 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/horse/wait.mss] 1102 11:50:30963 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/horse/wait_1.mss] 1102 11:50:30968 :: CANNOT_FIND_PACK_FILE [sound/pc2/shaman/horse/wait_2.mss] 1102 11:50:31062 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/general/wait.mss] 1102 11:50:31087 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/general/front_falling_standup.mss] 1102 11:50:31093 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/general/back_falling_standup.mss] 1102 11:50:31137 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/blue_possession_02.mss] 1102 11:50:31139 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/blue_possession_03.mss] 1102 11:50:31151 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/red_possession_02.mss] 1102 11:50:31153 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/red_possession_03.mss] 1102 11:50:31165 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/reef_attack_02.mss] 1102 11:50:31166 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/reef_attack_01.mss] 1102 11:50:31170 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/reef_attack_03.mss] 1102 11:50:31177 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/clu_throw_01.mss] 1102 11:50:31178 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/clu_throw_02.mss] 1102 11:50:31178 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/clu_throw_03.mss] 1102 11:50:31182 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/split_slash1.mss] 1102 11:50:31194 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wind_death_01.mss] 1102 11:50:31196 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wind_death_02.mss] 1102 11:50:31205 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wreckage_01.mss] 1102 11:50:31207 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wreckage_02.mss] 1102 11:50:31211 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wreckage_03.mss] 1102 11:50:31222 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/blue_possession_08.mss] 1102 11:50:31226 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/blue_possession_04.mss] 1102 11:50:31228 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/blue_possession_10.mss] 1102 11:50:31235 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/red_possession_08.mss] 1102 11:50:31239 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/red_possession_04.mss] 1102 11:50:31241 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/red_possession_10.mss] 1102 11:50:31247 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/reef_attack_03_2.mss] 1102 11:50:31249 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/reef_attack_04.mss] 1102 11:50:31251 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/reef_attack_06.mss] 1102 11:50:31258 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/split_slash3.mss] 1102 11:50:31262 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wind_death_09.mss] 1102 11:50:31264 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wind_death_07.mss] 1102 11:50:31269 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wreckage_04.mss] 1102 11:50:31275 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wreckage_05.mss] 1102 11:50:31279 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wreckage_06.mss] 1102 11:50:31281 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wreckage_07.mss] 1102 11:50:31285 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wreckage_08.mss] 1102 11:50:31292 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/blue_possession_01.mss] 1102 11:50:31296 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/blue_possession_09.mss] 1102 11:50:31303 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/red_possession_01.mss] 1102 11:50:31308 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/red_possession_09.mss] 1102 11:50:31313 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/reef_attack_08.mss] 1102 11:50:31314 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/reef_attack_07.mss] 1102 11:50:31320 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/split_slash5.mss] 1102 11:50:31324 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wind_death_04.mss] 1102 11:50:31326 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wind_death_03.mss] 1102 11:50:31328 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wind_death_05.mss] 1102 11:50:31334 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wreckage_09.mss] 1102 11:50:31338 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wreckage_11.mss] 1102 11:50:31342 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/wreckage_10.mss] 1102 11:50:31343 :: CANNOT_FIND_PACK_FILE [d:/ymir work/pc3/wolfman/skill/blue_possession_4.msa] 1102 11:50:31343 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/blue_possession_4.msa) ERROR 1102 11:50:31343 :: CANNOT_FIND_PACK_FILE [d:/ymir work/pc3/wolfman/skill/red_possession_4.msa] 1102 11:50:31343 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/red_possession_4.msa) ERROR 1102 11:50:31343 :: CANNOT_FIND_PACK_FILE [d:/ymir work/pc3/wolfman/skill/reef_attack_4.msa] 1102 11:50:31343 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/reef_attack_4.msa) ERROR 1102 11:50:31343 :: CANNOT_FIND_PACK_FILE [d:/ymir work/pc3/wolfman/skill/split_slash_4.msa] 1102 11:50:31343 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/split_slash_4.msa) ERROR 1102 11:50:31343 :: CANNOT_FIND_PACK_FILE [d:/ymir work/pc3/wolfman/skill/wind_death_4.msa] 1102 11:50:31343 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/wind_death_4.msa) ERROR 1102 11:50:31344 :: CANNOT_FIND_PACK_FILE [d:/ymir work/pc3/wolfman/skill/wreckage_4.msa] 1102 11:50:31344 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/wreckage_4.msa) ERROR 1102 11:50:31344 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/skill/guild_yongsinuipi.mss] 1102 11:50:31345 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/skill/guild_yongsinuichukbok.mss] 1102 11:50:31345 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/skill/guild_seonghwigap.mss] 1102 11:50:31346 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/skill/guild_gasokhwa.mss] 1102 11:50:31347 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/skill/guild_yongsinuibunno.mss] 1102 11:50:31347 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/skill/guild_jumunsul.mss] 1102 11:50:31349 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/action/dance_1.mss] 1102 11:50:31349 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/action/dance_2.mss] 1102 11:50:31350 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/action/dance_3.mss] 1102 11:50:31350 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/action/dance_4.mss] 1102 11:50:31351 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/action/dance_5.mss] 1102 11:50:31351 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/action/dance_6.mss] 1102 11:50:31352 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/action/congratulation.mss] 1102 11:50:31352 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/action/forgive.mss] 1102 11:50:31353 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/action/angry.mss] 1102 11:50:31353 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/action/attractive.mss] 1102 11:50:31354 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/action/sad.mss] 1102 11:50:31354 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/action/shy.mss] 1102 11:50:31354 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/action/cheerup.mss] 1102 11:50:31355 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/action/banter.mss] 1102 11:50:31355 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/action/joy.mss] 1102 11:50:31364 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/wedding/wait.mss] 1102 11:50:31364 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/wedding/walk.mss] 1102 11:50:31365 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/claw/wait.mss] 1102 11:50:31370 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/claw/wait1.mss] 1102 11:50:31445 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/fishing/wait.mss] 1102 11:50:31469 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/fishing/fishing_wait.mss] 1102 11:50:31483 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/fishing/fishing_react.mss] 1102 11:50:31504 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/horse/wait.mss] 1102 11:50:31509 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/horse/wait1.mss] 1102 11:50:31513 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/horse/wait2.mss] 1102 11:50:31520 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/horse/walk.mss] 1102 11:50:31523 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/horse/run.mss] 1102 11:50:31564 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/skill_wildattack_01.mss] 1102 11:50:31566 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/skill_wildattack_02.mss] 1102 11:50:31579 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/skill_splash_02.mss] 1102 11:50:31581 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/skill_splash.mss] 1102 11:50:31583 :: CANNOT_FIND_PACK_FILE [sound/pc3/common/effect/skill_splash_03.mss] 1102 11:50:31583 :: CANNOT_FIND_PACK_FILE [sound/pc3/wolfman/horse_claw/skill_splash.mss] 1102 11:50:31584 :: CResourceManager::GetResourcePointer: File not exist D:/Ymir Work/pc3/wolfman/horse/skill_splash.GR2 1102 11:50:31584 :: CANNOT_FIND_PACK_FILE [d:/ymir work/pc3/wolfman/horse/skill_splash.gr2] 1102 11:50:31590 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/blue_possession_4.msa) ERROR 1102 11:50:31590 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/red_possession_4.msa) ERROR 1102 11:50:31590 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/reef_attack_4.msa) ERROR 1102 11:50:31590 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/split_slash_4.msa) ERROR 1102 11:50:31590 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/wind_death_4.msa) ERROR 1102 11:50:31590 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/wreckage_4.msa) ERROR 1102 11:50:31795 :: CResourceManager::GetResourcePointer: File not exist d:/ymir work/ui/game/quest/slot_button_01.sub 1102 11:50:31795 :: CANNOT_FIND_PACK_FILE [d:/ymir work/ui/game/quest/slot_button_01.sub] 1102 11:50:31975 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/00.sub 1102 11:50:31975 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/00.sub] 1102 11:50:31975 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/01.sub 1102 11:50:31975 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/01.sub] 1102 11:50:31975 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/02.sub 1102 11:50:31975 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/02.sub] 1102 11:50:31976 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/03.sub 1102 11:50:31976 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/03.sub] 1102 11:50:31976 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/04.sub 1102 11:50:31976 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/04.sub] 1102 11:50:31976 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/05.sub 1102 11:50:31976 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/05.sub] 1102 11:50:31976 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/06.sub 1102 11:50:31976 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/06.sub] 1102 11:50:31977 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/07.sub 1102 11:50:31977 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/07.sub] 1102 11:50:31977 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/08.sub 1102 11:50:31977 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/08.sub] 1102 11:50:31977 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/09.sub 1102 11:50:31977 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/09.sub] 1102 11:50:31977 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/11.sub 1102 11:50:31977 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/11.sub] 1102 11:50:31978 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/12.sub 1102 11:50:31978 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/12.sub] 1102 11:50:31978 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/13.sub 1102 11:50:31978 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/13.sub] 1102 11:50:31978 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/14.sub 1102 11:50:31979 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/14.sub] 1102 11:50:31979 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/15.sub 1102 11:50:31979 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/15.sub] 1102 11:50:31979 :: CResourceManager::GetResourcePointer: File not exist locale/en/ui/Mall/16.sub 1102 11:50:31979 :: CANNOT_FIND_PACK_FILE [locale/en/ui/mall/16.sub] 1102 11:50:33033 :: Hair number 1 is not exist. 1102 11:50:33037 :: CANNOT_FIND_PACK_FILE [sound/npc/blacksmith/die.mss] 1102 11:50:33037 :: CANNOT_FIND_PACK_FILE [sound/npc/blacksmith/run.mss] 1102 11:50:33038 :: CANNOT_FIND_PACK_FILE [sound/npc/blacksmith/wait.mss] 1102 11:50:33038 :: CANNOT_FIND_PACK_FILE [sound/npc/blacksmith/wait_2.mss] 1102 11:50:33059 :: CANNOT_FIND_PACK_FILE [sound/npc/oldster/die.mss] 1102 11:50:33060 :: CANNOT_FIND_PACK_FILE [sound/npc/oldster/run.mss] 1102 11:50:33060 :: CANNOT_FIND_PACK_FILE [sound/npc/oldster/wait.mss] 1102 11:50:33061 :: CANNOT_FIND_PACK_FILE [sound/npc/oldster/wait_1.mss] 1102 11:50:33062 :: CANNOT_FIND_PACK_FILE [sound/npc/oldster/walk.mss] 1102 11:50:33096 :: CANNOT_FIND_PACK_FILE [sound/npc/hotel_grandma/wait.mss] 1102 11:50:33107 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/00.mss] 1102 11:50:33107 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/00_1.mss] 1102 11:50:33108 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/02.mss] 1102 11:50:33108 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/03.mss] 1102 11:50:33109 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/20.mss] 1102 11:50:33109 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/20_1.mss] 1102 11:50:33109 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/30.mss] 1102 11:50:33110 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/30_1.mss] 1102 11:50:33110 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/31.mss] 1102 11:50:33111 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/32.mss] 1102 11:50:33111 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/33.mss] 1102 11:50:33111 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/34.mss] 1102 11:50:33112 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/34_1.mss] 1102 11:50:33112 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/35.mss] 1102 11:50:33113 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/36.mss] 1102 11:50:33113 :: CANNOT_FIND_PACK_FILE [sound/npc/jinno_patrol_spear/37.mss] 1102 11:50:33182 :: CANNOT_FIND_PACK_FILE [sound/npc2/scholar_beige_m/wait.mss] 1102 11:50:33183 :: CANNOT_FIND_PACK_FILE [sound/npc2/scholar_beige_m/wait1.mss] 1102 11:50:33183 :: CANNOT_FIND_PACK_FILE [sound/npc2/scholar_beige_m/walk.mss] 1102 11:50:33183 :: CANNOT_FIND_PACK_FILE [sound/npc2/scholar_beige_m/run.mss] 1102 11:50:33184 :: CANNOT_FIND_PACK_FILE [sound/npc2/scholar_beige_m/dead.mss] 1102 11:50:33228 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/00.mss] 1102 11:50:33229 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/00_1.mss] 1102 11:50:33229 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/02.mss] 1102 11:50:33230 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/03.mss] 1102 11:50:33230 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/20.mss] 1102 11:50:33231 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/20_1.mss] 1102 11:50:33231 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/30.mss] 1102 11:50:33232 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/30_1.mss] 1102 11:50:33232 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/31.mss] 1102 11:50:33232 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/32.mss] 1102 11:50:33233 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/33.mss] 1102 11:50:33233 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/34.mss] 1102 11:50:33234 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/34_1.mss] 1102 11:50:33234 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/35.mss] 1102 11:50:33235 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/36.mss] 1102 11:50:33235 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_spear/37.mss] 1102 11:50:33298 :: CANNOT_FIND_PACK_FILE [sound/npc/goods/wait.mss] 1102 11:50:33318 :: CANNOT_FIND_PACK_FILE [sound/npc/arms/wait.mss] 1102 11:50:33332 :: CANNOT_FIND_PACK_FILE [sound/npc/defence/wait.mss] 1102 11:50:33345 :: CANNOT_FIND_PACK_FILE [sound/npc/pony/00.mss] 1102 11:50:33345 :: CANNOT_FIND_PACK_FILE [sound/npc/pony/00_1.mss] 1102 11:50:33346 :: CANNOT_FIND_PACK_FILE [sound/npc/pony/00_2.mss] 1102 11:50:33347 :: CANNOT_FIND_PACK_FILE [sound/npc/pony/02.mss] 1102 11:50:33348 :: CANNOT_FIND_PACK_FILE [sound/npc/pony/20.mss] 1102 11:50:33348 :: CANNOT_FIND_PACK_FILE [sound/npc/pony/20_1.mss] 1102 11:50:33348 :: CANNOT_FIND_PACK_FILE [sound/npc/pony/30.mss] 1102 11:50:33349 :: CANNOT_FIND_PACK_FILE [sound/npc/pony/31.mss] 1102 11:50:33349 :: CANNOT_FIND_PACK_FILE [sound/npc/pony/25.mss] 1102 11:50:33389 :: CANNOT_FIND_PACK_FILE [sound/npc/plant_researcher/die.mss] 1102 11:50:33390 :: CANNOT_FIND_PACK_FILE [sound/npc/plant_researcher/run.mss] 1102 11:50:33390 :: CANNOT_FIND_PACK_FILE [sound/npc/plant_researcher/wait.mss] 1102 11:50:33391 :: CANNOT_FIND_PACK_FILE [sound/npc/plant_researcher/wait_1.mss] 1102 11:50:33391 :: CANNOT_FIND_PACK_FILE [sound/npc/plant_researcher/walk.mss] 1102 11:50:33419 :: CANNOT_FIND_PACK_FILE [sound/npc/mr_restaurant/die.mss] 1102 11:50:33419 :: CANNOT_FIND_PACK_FILE [sound/npc/mr_restaurant/run.mss] 1102 11:50:33420 :: CANNOT_FIND_PACK_FILE [sound/npc/mr_restaurant/wait.mss] 1102 11:50:33420 :: CANNOT_FIND_PACK_FILE [sound/npc/mr_restaurant/wait_2.mss] 1102 11:50:33420 :: CANNOT_FIND_PACK_FILE [sound/npc/mr_restaurant/walk.mss] 1102 11:50:33447 :: CANNOT_FIND_PACK_FILE [sound/inseon/stand00.mss] 1102 11:50:33460 :: CANNOT_FIND_PACK_FILE [sound/npc/doctor/die.mss] 1102 11:50:33460 :: CANNOT_FIND_PACK_FILE [sound/npc/doctor/run.mss] 1102 11:50:33461 :: CANNOT_FIND_PACK_FILE [sound/npc/doctor/wait.mss] 1102 11:50:33461 :: CANNOT_FIND_PACK_FILE [sound/npc/doctor/walk.mss] 1102 11:50:33482 :: CANNOT_FIND_PACK_FILE [sound/npc/beggar/die.mss] 1102 11:50:33483 :: CANNOT_FIND_PACK_FILE [sound/npc/beggar/run.mss] 1102 11:50:33483 :: CANNOT_FIND_PACK_FILE [sound/npc/beggar/wait.mss] 1102 11:50:33484 :: CANNOT_FIND_PACK_FILE [sound/npc/beggar/wait_1.mss] 1102 11:50:33484 :: CANNOT_FIND_PACK_FILE [sound/npc/beggar/walk.mss] 1102 11:50:33514 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_bow/00.mss] 1102 11:50:33515 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_bow/00_1.mss] 1102 11:50:33515 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_bow/02.mss] 1102 11:50:33516 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_bow/03.mss] 1102 11:50:33516 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_bow/20.mss] 1102 11:50:33517 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_bow/30.mss] 1102 11:50:33517 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_bow/30_1.mss] 1102 11:50:33518 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_bow/31.mss] 1102 11:50:33518 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_bow/32.mss] 1102 11:50:33518 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_bow/33.mss] 1102 11:50:33519 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_bow/34.mss] 1102 11:50:33519 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_bow/34_1.mss] 1102 11:50:33520 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_bow/35.mss] 1102 11:50:33520 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_bow/36.mss] 1102 11:50:33520 :: CANNOT_FIND_PACK_FILE [sound/npc/sinsu_patrol_bow/37.mss] 1102 11:50:33574 :: CANNOT_FIND_PACK_FILE [sound/npc/baby_and_mom/die.mss] 1102 11:50:33575 :: CANNOT_FIND_PACK_FILE [sound/npc/baby_and_mom/run.mss] 1102 11:50:33575 :: CANNOT_FIND_PACK_FILE [sound/npc/baby_and_mom/wait.mss] 1102 11:50:33575 :: CANNOT_FIND_PACK_FILE [sound/npc/baby_and_mom/walk.mss] 1102 11:50:33606 :: CANNOT_FIND_PACK_FILE [sound/npc/guard_leader/die.mss] 1102 11:50:33607 :: CANNOT_FIND_PACK_FILE [sound/npc/guard_leader/run.mss] 1102 11:50:33607 :: CANNOT_FIND_PACK_FILE [sound/npc/guard_leader/wait.mss] 1102 11:50:33607 :: CANNOT_FIND_PACK_FILE [sound/npc/guard_leader/wait_1.mss] 1102 11:50:33608 :: CANNOT_FIND_PACK_FILE [sound/npc/guard_leader/walk.mss] 1102 11:50:33711 :: Unknown Server Command SetTeamOffline xMei | SetTeamOffline 1102 11:50:33728 :: Unknown Server Command SetTeamOffline Ninja | SetTeamOffline 1102 11:50:33728 :: Unknown Server Command SetTeamOffline Thaia | SetTeamOffline 1102 11:50:33752 :: CANNOT_FIND_PACK_FILE [sound/effect/etc/direction/direction_land.mss] 1102 11:50:42599 :: Unknown Server Command SetTeamOffline xMei | SetTeamOffline 1102 11:50:42599 :: Unknown Server Command SetTeamOffline Ninja | SetTeamOffline 1102 11:50:42599 :: Unknown Server Command SetTeamOffline Thaia | SetTeamOffline Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x05689E10>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x05689D10>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x0568C6F0>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x0568C710>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x0568C730>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x0568C750>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x0568C770>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x0568C7B0>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x0568C7D0>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x0568C7F0>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x0568C850>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x0568C870>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x0568C8B0>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x0568C8D0>> ignored Exception AttributeError: "'NoneType' object has no attribute '__del__'" in <bound method NumberLine.__del__ of <ui.NumberLine object at 0x0568C8F0>> ignored Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x05689F50>> ignored 1102 11:50:50695 :: granny_shared_vbs: 1102 11:50:50695 :: 0: 40 1102 11:50:50695 :: 1: 20 1102 11:50:50695 :: 2: 20 1102 11:50:50695 :: 3: 40 1102 11:50:50696 :: 4: 2 1102 11:50:50696 :: 5: 20 1102 11:50:50696 :: 6: 0 1102 11:50:50696 :: 7: 0 1102 11:50:50696 :: 8: 0 Voici les lignes dans le log.txt qui apparaissent lorsque je bouge la souris sur les boutons "+" 1102 11:50:40256 :: PointWindow: Skill_Active_Slot 1102 11:50:40355 :: PointWindow: !!debug 1102 11:50:40421 :: PointWindow: !!debug 1102 11:50:40553 :: PointWindow: Skill_Active_Slot 1102 11:50:40569 :: PointWindow: !!debug 1102 11:50:40784 :: PointWindow: !!debug 1102 11:50:42383 :: PointWindow: !!debug 1102 11:50:42416 :: PointWindow: Skill_Active_Slot 1102 11:50:42434 :: PointWindow: !!debug
  6. Bonjour a tous, Bon j'ai résolu une partie du problème en modifiant les fichiers skilldesc.txt et skilltable.txt coté client (présent dans locale_fr/local/fr) Voici les modifications du fichier skilldesc.txt : 170 WOLFMAN Blue Power Blue Power Blue Power The epistemological gives you makes. Defense is increased Chance to put opponents into a unconscious is increased STANDING_SKILL blue_possession 1 4 Defense +%.0f (200 + str*0.2 + con*0.5 ) *k Faint Chance %.0f%% 1 + 9*SkillPoint 171 WOLFMAN Bleeding Anger Bleeding Anger Bleeding Anger An irrepressible anger takes over your body. Attack rating is increased Piercing strike chance is increased STANDING_SKILL red_possession 2 4 Attack value +%.1f (3 * iq + 2 * lv)*k Chance to ignore defense of the opponent %.0f%% 10*k 172 WOLFMAN Air attack Air attack Air attack Go to your opponent and meet crushing defeat. Claw attack ATTACK_SKILL|NEED_TARGET|WEAPON_LIMITATION CLAW reef_attack 3 4 Attack Power %.0f-%.0f 3*MinATK + (0.8*MinATK + STR*6 + DEX*2 + CON) * SkillPoint 3*MaxATK + (0.8*MaxATK + STR*6 + DEX*2 + CON) * SkillPoint 173 WOLFMAN Howl of the Prairie Howl of the Prairie Howl of the Prairie Your cry let your opponents tremble! Punch attack ATTACK_SKILL|NEED_TARGET|WEAPON_LIMITATION CLAW split_slash 4 4 Attack Power %.0f-%.0f 3*MinATK + (0.8*MinATK + STR*6 + DEX*2 + CON) * SkillPoint 3*MaxATK + (0.8*MaxATK + STR*6 + DEX*2 + CON) * SkillPoint 174 WOLFMAN Mouth destruction Mouth destruction Mouth destruction Tear steal your opponent with his. Claw attack 3 times ATTACK_SKILL|NEED_TARGET|WEAPON_LIMITATION CLAW wind_death 5 4 Attack Power %.0f-%.0f 3*MinATK + (0.8*MinATK + STR*6 + DEX*2 + CON) * SkillPoint 3*MaxATK + (0.8*MaxATK + STR*6 + DEX*2 + CON) * SkillPoint 175 WOLFMAN Divide Divide Divide Storms directly on your opponent and to shred it! Claw attack ATTACK_SKILL|NEED_TARGET|WEAPON_LIMITATION CLAW wreckage 6 4 Attack Power %.0f-%.0f 3*MinATK + (0.8*MinATK + STR*6 + DEX*2 + CON) * SkillPoint 3*MaxATK + (0.8*MaxATK + STR*6 + DEX*2 + CON) * SkillPoint Voici les modifications du fichier skilltable.txt : 170 ÃâÇ÷ ºÐ³ë 1 1 1 0 DEF_GRADE (200 + str*0.2 + con*0.5 ) *k 80+220*k 60+90*k 40+40*k SELFONLY 16 MOV_SPEED -(1+9*k) 60+90*k 0 0 NORMAL 1 1 0 0 171 ºí·ç ÆÄ¿ö 1 1 1 0 ATT_GRADE (100 + str + lv * 3)*k 100+200*k 30+50*k 30+10*k SELFONLY,PENETRATE NONE 1+k*9 0 0 MELEE 4 1 0 0 172 °ø±â °ø°Ý 1 1 1 0 HP -(3*atk + (0.8*atk + str*5 + dex*3 +con)*k) 50+130*k 15 ATTACK,USE_MELEE_DAMAGE NONE 0 0 MELEE 12 0.8 0 0 173 ÇÁ·¹¸®ÀÇ ÇÏ¿ï 1 1 1 0 HP -(3*atk + (0.8*atk + str*5 + dex*3 +con)*k) 50+130*k 15 ATTACK,USE_MELEE_DAMAGE,SPLASH NONE 0 0 MELEE 12 0.8 0 0 174 ÀÔ Æı« 1 1 1 0 HP -(3*atk + (0.8*atk + str*5 + dex*3 +con)*k) 50+130*k 15 ATTACK,USE_MELEE_DAMAGE,SPLASH NONE 0 0 MELEE 12 0.8 0 0 175 ³ª´©±â 1 1 1 0 HP -(3*atk + (0.8*atk + str*5 + dex*3 +con)*k) 50+130*k 15 ATTACK,USE_MELEE_DAMAGE,SPLASH NONE 0 0 MELEE 12 0.8 0 0 Par contre maintenant le bouton "+" présent pour ajouter 1 point sur les skills ne fonctionne pas uniquement pour le wolfman. La commande /setsk fonctionne par contre parfaitement. Si quelqu'un avait une idée, je suis preneur. Merci à tous
  7. Bonsoir à tous, D’après mes recherches le problème viendrait de mon mob_proto client, mais je ne parvient pas a refaire les transformations en txt ou xml. Quelqu'un pourrait me redonner les outils pour faire les transformations mob_proto.txt ==> mob_proto client du local, svp. Merci à tous
  8. Aprés plusieurs tests, je ne trouve pas d'ou vient mon problème de skill, si quelqu'un peut m'aider, svp. Merci à tous
  9. Bonjour, Je viens de recompiler le lanceur avec les modifications. Il me reste un dernier soucis dans le fichier InstanceBase.h. Si je mets (car j'ai le wolfman et le wolfwomen): inline int RaceToJob(int race) { const int JOB_NUM = 5; return race % JOB_NUM; } inline int RaceToSex(int race) { switch (race) { case 0: case 2: case 5: case 7: case 9: return 1; case 1: case 3: case 4: case 6: case 8: return 0; } return 0; } Resultats : Le sura est ok, le warrior est ok, le ninja est ok, le shaman devient un sura en terme de skill, le wolfman devient un shaman en terme de skill Si je mets (car j'ai le wolfman et le wolfwomen): inline int RaceToJob(int race) { switch (race) { case 0: case 4: return 0; case 1: case 5: return 1; case 2: case 6: return 2; case 3: case 7: return 3; case 8: return 4; default: return 0; } return 0; } inline int RaceToSex(int race) { switch (race) { case 0: case 2: case 5: case 7: case 8: return 1; case 1: case 3: case 4: case 6: return 0; } return 0; } Tout marche, mais le wolfman ne se lance plus Syserr : 1012 08:06:39573 :: game.py(line:228) Open game.py(line:645) StartGame game.py(line:797) RefreshCharacter interfaceModule.py(line:596) RefreshCharacter uiCharacter.py(line:1113) RefreshCharacter uiCharacter.py(line:1175) __SelectSkillGroup uiCharacter.py(line:1161) __SetSkillSlotData uiCharacter.py(line:858) RefreshSkill uiCharacter.py(line:833) __RefreshSkillPage GameWindow.Open - <type 'exceptions.RuntimeError'>:skill.GetSkillType - Failed to find skill by 170 1012 08:06:39573 :: ============================================================================================================ 1012 08:06:39573 :: Abort!!!!
  10. Bonsoir, problème résolu, le soucis venait du lanceur dans le fichier : InstanceBase.h Les lignes suivantes : inline int RaceToJob(int race) { switch (race) { case 0: case 4: return 0; case 1: case 5: return 1; case 2: case 6: return 2; case 3: case 7: return 3; case 8: return 4; default: return 0; } return 0; } inline int RaceToSex(int race) { switch (race) { case 0: case 2: case 5: case 7: case 8: return 1; case 1: case 3: case 4: case 6: return 0; } return 0; } Cependant, je dois les ajuster car avec celle-ci, mon lycan ne se lance plus, une fois le personnage validé.
  11. Bonsoir, Je viens de faire les modifications dans le répertoire et aucun changement, je comprends vraiment pas d'ou peut venir le problème. merci encore pour le coup de main
  12. J'ai ajouté ceci : { "name" : "name_wolfman", "type" : "image", "x" : BOARD_X - 27, "y" : BOARD_Y - 174 + 25, "image" : LOCALE_PATH+"name_wolfman.sub", }, mais cela ne change rien.
  13. Désolé pour mon faible niveau, mais j'essaye depuis deux soirs de compiler désespérément mon client, malheureusement je ne peux utiliser que Visual Studio 2017 sous Windows 10 ou Visual studio Code sous Ubuntu et la compilation se finit en échec avec un problème de compatibilité demandé 2013 v120_xp. Ne connaissant que très peu ce logiciel, j'avoue ne pas comprendre la demande du logiciel. Sur Visual Studio 2017 Community, j'ai essayé d'ajouter le module v140 ... windows xp, mais je suis toujours à deux echecs. Est-il nécessaire d'utiliser Visual Studio 2013 Pro sur Windows pour compiler le client, svp ? Erreur lors de la compilation : Gravité Code Description Projet Fichier Ligne Suppression State Erreur RC1015 cannot open include file 'afxres.h'. UserInterface C:\Users\Carob\Downloads\Source FE 2016_client\Source FE 2016\source\UserInterface\UserInterface.rc 11 Avertissement MSB8051 Support for targeting Windows XP is deprecated and will not be present in future releases of Visual Studio. Please see aka.ms/dev16_deprecation for more information. EterLib C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\Common7\IDE\VC\VCTargets\Platforms\Win32\PlatformToolsets\v141_xp\Toolset.targets 39 Avertissement C4267 '=' : conversion de 'size_t' en 'short', perte possible de données EterLib c:\users\carob\downloads\source fe 2016_client\source fe 2016\source\eterlib\grpfonttexture.cpp 283 Erreur C2872 'data' : symbole ambigu EterLib c:\users\carob\downloads\source fe 2016_client\source fe 2016\source\eterlib\jpegfile.cpp 216 Erreur C2872 'size' : symbole ambigu EterLib c:\users\carob\downloads\source fe 2016_client\source fe 2016\source\eterlib\jpegfile.cpp 217 Erreur C2872 'size' : symbole ambigu EterLib c:\users\carob\downloads\source fe 2016_client\source fe 2016\source\eterlib\jpegfile.cpp 224 Erreur C2872 'size' : symbole ambigu EterLib c:\users\carob\downloads\source fe 2016_client\source fe 2016\source\eterlib\jpegfile.cpp 231 Erreur C2872 'size' : symbole ambigu EterLib c:\users\carob\downloads\source fe 2016_client\source fe 2016\source\eterlib\jpegfile.cpp 241 Erreur C2872 'data' : symbole ambigu EterLib c:\users\carob\downloads\source fe 2016_client\source fe 2016\source\eterlib\jpegfile.cpp 242 Erreur C2872 'size' : symbole ambigu EterLib c:\users\carob\downloads\source fe 2016_client\source fe 2016\source\eterlib\jpegfile.cpp 243 Erreur C2872 'data' : symbole ambigu EterLib c:\users\carob\downloads\source fe 2016_client\source fe 2016\source\eterlib\jpegfile.cpp 261 Erreur C2872 'size' : symbole ambigu EterLib c:\users\carob\downloads\source fe 2016_client\source fe 2016\source\eterlib\jpegfile.cpp 262 Erreur C2872 'data' : symbole ambigu EterLib c:\users\carob\downloads\source fe 2016_client\source fe 2016\source\eterlib\jpegfile.cpp 266 Erreur C2872 'size' : symbole ambigu EterLib c:\users\carob\downloads\source fe 2016_client\source fe 2016\source\eterlib\jpegfile.cpp 267 Avertissement MSB8051 Support for targeting Windows XP is deprecated and will not be present in future releases of Visual Studio. Please see aka.ms/dev16_deprecation for more information. UserInterface C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\Common7\IDE\VC\VCTargets\Platforms\Win32\PlatformToolsets\v141_xp\Toolset.targets 39 J'ai essayé de suivre ce tuto, mais visual studio 2013 ne s'installe pas sur windows 10 :
  14. Je te confirme, j'ai bien le fichier (d’ailleurs si je l’enlève, le client plante) : name_wolfman.tga [Contenu Masqué]
×

Information importante

By using this site, you agree to our Conditions d’utilisation.