Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...

Testuff

Membre
  • Compteur de contenus

    68
  • Inscription

  • Dernière visite

À propos de Testuff

Visiteurs récents du profil

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

Testuff's Achievements

Enthusiast

Enthusiast (6/14)

  • First Post
  • Collaborator
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

6

Réputation sur la communauté

  1. Bonjour à tous, Merci pour vos réponses, je suis preneur pour la v4, mais ou puis la prendre avec les sources, svp ? (SI vous avez une vdi, je suis preneur aussi , avec le client). Merci encore pour votre aide Je viens de trouver trois site avec trois versions différentes : 1) [Hidden Content] 2) [Hidden Content]; 3) [Hidden Content] J'ai opter pour le site n°3, car il y une VDI, cependant j'ai du corriger trois soucis sur la VDI : 1) Je ne trouve pas le mot de passe MYSQL pour accéder à la base de données La solution trouvée, le mot de passe VDI SQL: daroo123 2) les bibliothèques libz.so.4 sont manquantes Résolu avec la solution suivante: "cd / lib fetch http: //tv1.luki4fun.net/M2/64bit_libs.tgz tar xzvf 64bit_libs.tgz rm 64bit_libs.tgz " 3) J'ai une erreur lors du lancement du serveur dans la base de données "Chargement: échec de DirectQuery (SELECT IP_FROM, IP_TO, COUNTRY_NAME FROM iptocountry)" Résolu avec la solution suivante: Navicat> Compte> iptocountry> CTRL + Q taper le code suivant. INSERT INTO `iptocountry` VALUES ('127.0.0.1', '127.0.0.1', 'localhost'); 4) J'ai une erreur lors du lancement du serveur dans la base de données Load: DirectQuery failed(SELECT login FROM block_exception)" Résolu avec la solution suivante : ajouter un identifiant à la table mysql block_exception quelque chose comme 1 ou ce que vous voulez Par contre impossible de faire marcher les clients des trois sites : Sur les sites 1 et 2 le client fonctionne par défaut, cependant si avec le pack.py je recompacte le root avec l'adresse ip de mon serveur, le client ne se lance plus et dans le syserr.log, j'ai ceci : RunMain Error Sur le site n°3, il faut commencer par compacter tous les pack avec l'outil pack.py et les placer dans le client, si je fais cette manipulation, le client ne se lance pas et dans le syserr.log, j'ai ceci : RunMain Error Pouvez-vous m'aider, s'il vous plait ? Merci à vous
  2. Version des fichiers/ Type d'émulateur : SF BEST Production 1.8 (40k) + VDI TEAM FE Files 2016 Domaine (Base de données, Client, Core...) : Utilisation de la VDI : Et du server : [Hidden Content] Votre niveau (Débutant, Intermédiaire, Avancé..) : Débutant Description du problème : J'ai utilisé la VDI de la TEAM FE files 2016 pour implanter le SF BEST PRODUCTION 1.8. Concernant la partie "game" : - j'ai mis le fichier game.tar.gz à la racine du serveur, puis j'ai réalisé un tar -zxvf game.tar.gz, ce qui à permis d'extrait le game dans /usr/game Concernant le mysql : - j'ai coupé le server mysql via la commande : service mysql-server stop, puis j'ai mis le fichier mysql.tar.gz à la racine du serveur, puis j'ai réalisé un tar -zxvf mysql.tar.gz, ce qui à permis d'extrait la base mysql dans /var/db/ - Puis j'ai suivi les manipulations ci-dessous décrites sur le site : service mysql-server stop mysqld_safe --skip-grant-tables & mysql -u root use mysql update user set password=PASSWORD('METEAQUIAPASS') where user='root'; flush privileges; quit service mysql-server stop service mysql-server start service mysql-server restart Et lorsque je lance le sh start.sh, le serveur de démarre pas et voici l'erreur présente dans les logs : socket_tcp_bind: tcp_socket: Can't assign requested address Comment reproduire le problème ? : Même en modifiant les CONFIG dans db, auth, core1, etc..., notamment le BIND_IP en 192.168.X.X, mais rien ne change Recherches et tests effectués : [Hidden Content] [Hidden Content] [Hidden Content] Merci à tous pour votre aide Messieurs les admin du forum, je ne suis pas sûr de poster cette demande d'aide au bon endroit et si cette demande d'aide est autorisé sachant que les SF ne sont pas de ma conception ni du forum FE. Je vous laisse donc supprimer ce post, si vous estimez qu'il ne respecte pas les règles du forum. Merci à vous En postant ma demande d'aide, j'affirme avoir lu et accepté le Règlement de Funky-Emulation.
  3. Bonjour à tous, Je me permet de relancer ce sujet, car je suis toujours incapable de trouver une solution à mes soucis, svp. Liste des problèmes : En regardant de plus prêt, je crois que j'ai 3 problèmes en 1. 1) Le problème décrit ci-dessus 2) Mon WOLFMAN ne met ses armes que sur une seule main (voir image du début) => J'ai testé ce tuto mais ca n'a rien changé : [Hidden Content] 3) Mon WOLFMAN ne peut pas utiliser ses skill d'attaque avec arme, ça me dit : "vous ne pouvez pas utiliser cette compétence avec cette arme" J’espère que je vais finir par m'en sortir de ce WOLFMAN :-). Merci à tous pour votre aide P.S : Je peux partager toutes mes sources à la demande, mais elles sont toutes connues (voir post d'origine) En postant ma demande d'aide, j'affirme avoir lu et accepté le Règlement de Funky-Emulation.
  4. Merci encore pour ton aide. En regardant de plus prêt, je crois que j'ai 3 problèmes en 1. 1) Le problème décrit ci-dessus 2) Mon WOLFMAN ne met ses armes que sur une seule main (voir image du début) => J'ai testé ce tuto mais ca n'a rien changé : [Hidden Content] 3) Mon WOLFMAN ne peut pas utiliser ses skill d'attaque avec arme, ça me dit : "vous ne pouvez pas utiliser cette compétence avec cette arme" J’espère que je vais finir par m'en sortir de ce WOLFMAN :-). Merci à tous pour votre aide
  5. Merci Kameyu pour ton aide. Coté DB et serveur cela semble ok, car effectivement je ne peux pas équiper les armes, armures, etc... qui ont le "anti_flag WOLFMAN" => Exactement ce que je voulais. Je suppose (mais je m'y connais moins que toi) que le problème est coté client. Je ne peux pas équiper mon joueur avec les armes, armures, etc... étant tagger "anti_flag WOLFMAN", cependant quand je passe la souris sur l'équipement, il apparaît compatible pour le WOLFMAN et non rouge comme il devrait apparaître normalement. Je te confirmes que mon item_proto et bien identique entre la version txt serveur et la version client. Mais je peux me tromper et le probleme peut encore venir du coté serveur. J'ai balayé plusieurs fois l'écart entre les fichiers du WOLFMAN et mes fichiers d'origines, coté serveur je n'ai quasi aucun écart. Coté client sur le fichier uitooltip.py, je ne vois que cet écart : Ma version : 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 Version du Wolfman : def __GetAttributeColor(self, index, value): if value > 0: if index >= 5: return self.SPECIAL_POSITIVE_COLOR2 else: return self.SPECIAL_POSITIVE_COLOR elif value == 0: return self.NORMAL_COLOR else: return self.NEGATIVE_COLOR Mais je ne pense pas que ces changements résoudront mon problème, qu'en penses-tu ?
  6. Personne pour m'aider, svp ? J'ai trouvé ces infos, mais ca ne change rien : [Hidden Content]
  7. 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 : [Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content] Mon Item_proto me semble OK (je vous joins la version txt, transformer avec le dump_proto_wolfman.exe) : [Hidden Content] 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.
  8. 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"
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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!!!!

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.