Evanth3

Untitled

Aug 29th, 2024
1,365
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 100.88 KB | None | 0 0
  1. class Tooltip extends UICommonAPI;
  2.  
  3. const TOOLTIP_MINIMUM_WIDTH = 144;
  4. const TOOLTIP_SETITEM_MAX = 3;
  5.  
  6. const ATTRIBUTE_FIRE    = 0;
  7. const ATTRIBUTE_WATER   = 1;
  8. const ATTRIBUTE_WIND    = 2;
  9. const ATTRIBUTE_EARTH   = 3;
  10. const ATTRIBUTE_HOLY    = 4;
  11. const ATTRIBUTE_UNHOLY  = 5;
  12.  
  13. var CustomTooltip m_Tooltip;
  14. var DrawItemInfo m_Info;
  15.  
  16. var Array<int> AttackAttLevel;
  17. var Array<int> AttackAttCurrValue;
  18. var Array<int> AttackAttMaxValue; //모든 공격 속성의 레벨, 현재레벨에서의 값, 현재레벨에서의 최대값을 여기에 저장한다.
  19.  
  20. var Array<int> DefAttLevel;
  21. var Array<int> DefAttCurrValue;
  22. var Array<int> DefAttMaxValue; //모든 방어 속성의 레벨, 현재레벨에서의 값, 현재레벨에서의 최대값을 여기에 저장한다.
  23.  
  24. var int NowAttrLv;
  25. var int NowMaxValue;
  26. var int NowValue;
  27.  
  28. var bool BoolSelect;
  29.  
  30. function OnRegisterEvent()
  31. {
  32.     RegisterEvent( EV_RequestTooltipInfo );
  33. }
  34.  
  35. function OnLoad()
  36. {
  37.     BoolSelect = true;  // 숏컷 툴팁 켜기/끄기 기본값을 켜기로(TTP#41925) 2010.8.23 - winkey
  38.  
  39.     if(CREATE_ON_DEMAND==0)
  40.         OnRegisterEvent();
  41. }
  42.  
  43. function OnEvent(int Event_ID, string param)
  44. {
  45.     switch( Event_ID )
  46.     {
  47.     case EV_RequestTooltipInfo:
  48.         //debug("툴팁이벤트 넘어오냐");
  49.         HandleRequestTooltipInfo(param);
  50.         break;
  51.     }
  52. }
  53.  
  54. function setBoolSelect( bool b )
  55. {
  56.     BoolSelect = b;
  57. }
  58.  
  59. function HandleRequestTooltipInfo(string param)
  60. {
  61.     local String TooltipType;
  62.     local int SourceType;
  63.     local ETooltipSourceType eSourceType;
  64.    
  65.     ClearTooltip();
  66.    
  67.     if (!ParseString(param, "TooltipType", TooltipType))
  68.         return;
  69.        
  70.     if (!ParseInt(param, "SourceType", SourceType))
  71.         return;
  72.    
  73.     eSourceType = ETooltipSourceType(SourceType);
  74.  
  75.     //AddSystemMessageString(""$TooltipType);
  76.     //AddSystemMessageString(""$eSourceType);
  77.    
  78.     //////////////////////////////////////////////////////////////////////////////////////////////////////////
  79.     ///////////////////////////////////////////////////// Normal Tooltip /////////////////////////////////////
  80.     //////////////////////////////////////////////////////////////////////////////////////////////////////////
  81.     //debug("Tooltip타입:"$TooltipType);
  82.     if (TooltipType == "Text")
  83.     {
  84.         ReturnTooltip_NTT_TEXT(param, eSourceType, false);
  85.     }
  86.     else if (TooltipType == "Description")
  87.     {
  88.         ReturnTooltip_NTT_TEXT(param, eSourceType, true);
  89.     }
  90.     //////////////////////////////////////////////////////////////////////////////////////////////////////////
  91.     ///////////////////////////////////////////////////// ItemWnd Tooltip ////////////////////////////////////
  92.     //////////////////////////////////////////////////////////////////////////////////////////////////////////
  93.     else if (TooltipType == "Action")
  94.     {
  95.         ReturnTooltip_NTT_ACTION(param, eSourceType);
  96.     }
  97.     else if (TooltipType == "Skill")
  98.     {
  99.         ReturnTooltip_NTT_SKILL(param, eSourceType);
  100.     }
  101.     else if (TooltipType == "NormalItem")
  102.     {
  103.         ReturnTooltip_NTT_NORMALITEM(param, eSourceType);
  104.     }
  105.     else if (TooltipType == "Shortcut")
  106.     {
  107.         ReturnTooltip_NTT_SHORTCUT(param, eSourceType);
  108.     }
  109.     else if (TooltipType == "AbnormalStatus")
  110.     {
  111.         ReturnTooltip_NTT_ABNORMALSTATUS(param, eSourceType);
  112.     }
  113.     else if (TooltipType == "RecipeManufacture")
  114.     {
  115.         ReturnTooltip_NTT_RECIPE_MANUFACTURE(param, eSourceType);
  116.     }
  117.     else if (TooltipType == "Recipe")
  118.     {
  119.         ReturnTooltip_NTT_RECIPE(param, eSourceType, false);
  120.     }
  121.     else if (TooltipType == "RecipePrice")
  122.     {
  123.         ReturnTooltip_NTT_RECIPE(param, eSourceType, true);
  124.     }
  125.     else if (TooltipType == "Inventory"
  126.             || TooltipType == "InventoryPrice1"
  127.             || TooltipType == "InventoryPrice2"
  128.             || TooltipType == "InventoryPrice1HideEnchant"
  129.             || TooltipType == "InventoryPrice1HideEnchantStackable"
  130.             || TooltipType == "InventoryPrice2PrivateShop"
  131.             || TooltipType == "InventoryWithIcon"
  132.             || TooltipType == "InventoryPawnViewer")        // PawnViewer용 추가 - lancelot 2007. 10. 16.
  133.     {
  134.         //~ debug("툴팁보여주세요.");
  135.         ReturnTooltip_NTT_ITEM(param, TooltipType, eSourceType);
  136.     }
  137.     //////////////////////////////////////////////////////////////////////////////////////////////////////////
  138.     ///////////////////////////////////////////////////// ListCtrl Tooltip ///////////////////////////////////
  139.     //////////////////////////////////////////////////////////////////////////////////////////////////////////
  140.     //선준 수정(2010.02.22 ~ 03.08) 완료
  141.     else if ( TooltipType == "RoomList" )
  142.     {
  143.         ReturnTooltip_NTT_ROOMLIST(param, eSourceType);
  144.     }  
  145.     else if ( TooltipType == "UserList" )
  146.     {
  147.         ReturnTooltip_NTT_USERLIST(param, eSourceType);
  148.     }
  149.     else if (TooltipType == "PartyMatch")
  150.     {
  151.         ReturnTooltip_NTT_PARTYMATCH(param, eSourceType);
  152.     }
  153.     else if (TooltipType == "UnionList")
  154.     {
  155.         ReturnTooltip_NTT_UNIONLIST(param, eSourceType);
  156.     }
  157.     else if (TooltipType == "QuestInfo")
  158.     {
  159.         ReturnTooltip_NTT_QUESTINFO(param, eSourceType);
  160.     }
  161.     else if (TooltipType == "QuestList")
  162.     {
  163.         ReturnTooltip_NTT_QUESTLIST(param, eSourceType);
  164.     }
  165.     else if (TooltipType == "RaidList")
  166.     {
  167.         ReturnTooltip_NTT_RAIDLIST(param, eSourceType);
  168.     }
  169.     else if (TooltipType == "ClanInfo")
  170.     {
  171.         ReturnTooltip_NTT_CLANINFO(param, eSourceType);
  172.     }
  173.     //선준 수정( 10.03.30 ) 완료
  174.     //우편함에 툴팁 추가.
  175.     else if (TooltipType == "PostInfo")
  176.     {
  177.         ReturnTooltip_NTT_POSTINFO(param, eSourceType);
  178.     }
  179.     /////////////////////////////////////////////////////
  180.     // MANOR
  181.     else if (TooltipType == "ManorSeedInfo"
  182.             || TooltipType == "ManorCropInfo"
  183.             || TooltipType == "ManorSeedSetting"
  184.             || TooltipType == "ManorCropSetting"
  185.             || TooltipType == "ManorDefaultInfo"
  186.             || TooltipType == "ManorCropSell")
  187.     {
  188.         ReturnTooltip_NTT_MANOR(param, TooltipType, eSourceType);
  189.     }
  190.     // [퀘스트 아이템 툴팁 추가]
  191.     else if (TooltipType == "QuestItem")
  192.     {
  193.         ReturnTooltip_NTT_QUESTREWARDS(param, eSourceType);
  194.     }
  195. }
  196.  
  197. function bool IsEnchantableItem(EItemParamType Type)
  198. {
  199.     return (Type == ITEMP_WEAPON || Type == ITEMP_ARMOR || Type == ITEMP_ACCESSARY || Type == ITEMP_SHIELD);
  200. }
  201.  
  202. function ClearTooltip()
  203. {
  204.     m_Tooltip.SimpleLineCount = 0;
  205.     m_Tooltip.MinimumWidth = 0;
  206.     m_Tooltip.DrawList.Remove(0, m_Tooltip.DrawList.Length);
  207. }
  208.  
  209. function StartItem()
  210. {
  211.     local DrawItemInfo infoClear;
  212.     m_Info = infoClear;
  213. }
  214.  
  215. function EndItem()
  216. {
  217.     m_Tooltip.DrawList.Length = m_Tooltip.DrawList.Length + 1;
  218.     m_Tooltip.DrawList[m_Tooltip.DrawList.Length-1] = m_Info;
  219. }
  220.  
  221. /////////////////////////////////////////////////////////////////////////////////
  222. // TEXT
  223. function ReturnTooltip_NTT_TEXT(string param, ETooltipSourceType eSourceType, bool bDesc)
  224. {
  225.     local string strText;
  226.     local int ID;
  227.    
  228.     if (eSourceType == NTST_TEXT)
  229.     {
  230.         if (ParseString( param, "Text", strText))
  231.         {
  232.             if (Len(strText)>0)
  233.             {
  234.                 if (bDesc)
  235.                 {
  236.                     m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
  237.                    
  238.                     StartItem();
  239.                     m_Info.eType = DIT_TEXT;
  240.                     m_Info.t_color.R = 178;
  241.                     m_Info.t_color.G = 190;
  242.                     m_Info.t_color.B = 207;
  243.                     m_Info.t_color.A = 255;
  244.                     m_Info.t_strText = strText;
  245.                     EndItem();
  246.                 }
  247.                 else
  248.                 {
  249.                     StartItem();
  250.                     m_Info.eType = DIT_TEXT;
  251.                     m_Info.t_bDrawOneLine = true;
  252.                     m_Info.t_strText = strText;
  253.                     EndItem(); 
  254.                 }
  255.             }
  256.         }
  257.         else if (ParseInt( param, "ID", ID))
  258.         {
  259.             if (ID>0)
  260.             {
  261.                 StartItem();
  262.                 m_Info.eType = DIT_TEXT;
  263.                 m_Info.t_bDrawOneLine = true;
  264.                 m_Info.t_ID = ID;
  265.                 EndItem();
  266.             }
  267.         }
  268.     }
  269.     else
  270.     {
  271.         return;
  272.     }
  273.        
  274.     ReturnTooltipInfo(m_Tooltip);
  275. }
  276.  
  277. /////////////////////////////////////////////////////////////////////////////////
  278. // INVENTORY Etc
  279. function ReturnTooltip_NTT_ITEM(string param, String TooltipType, ETooltipSourceType eSourceType)
  280. {
  281.     local ItemInfo Item;
  282.    
  283.     local EItemType eItemType;
  284.     local EEtcItemType eEtcItemType;
  285.    
  286.     local bool bLargeWidth;
  287.     local string SlotString;
  288.     local string strTmp;
  289.     local int nTmp;
  290.     local int idx;
  291.    
  292.     //제련효과
  293.     //local string ItemName;
  294.     local int Quality;
  295.     local int ColorR;
  296.     local int ColorG;
  297.     local int ColorB;
  298.     local string strDesc1;
  299.     local string strDesc2;
  300.     local string strDesc3;
  301.    
  302.     // 보급형 아이템
  303.     //local int ItemNameClass;
  304.    
  305.     //셋트아이템
  306.     //~ local array<ItemID> arrItemID;
  307.     local int SetID;
  308.     //~ local int SetID2;
  309.    
  310.     //아데나읽어주기
  311.     local string strAdena;
  312.     local string strAdenaComma;
  313.     local color  AdenaColor;
  314.    
  315.     local ItemID tmpItemID;
  316.  
  317.     local bool FirstTime1;
  318.  
  319.     if (eSourceType == NTST_ITEM)
  320.     {
  321.         ParamToItemInfo(param, Item);
  322.         SlotString = GetSlotTypeString(Item.ItemType, Item.SlotBitType, Item.ArmorType);
  323.        
  324.         eItemType = EItemType(Item.ItemType);
  325.         eEtcItemType = EEtcItemType(Item.ItemSubType);
  326.        
  327.         if( Item.consumeType == 0 )
  328.         {
  329.             //item icon
  330.             StartItem();
  331.             m_Info.eType = DIT_TEXTURE;
  332.             m_Info.u_nTextureWidth = 32;
  333.             m_Info.u_nTextureHeight = 32;
  334.             m_Info.u_strTexture = Item.IconName;
  335.             EndItem();
  336.  
  337.             if( Item.IconPanel == "InventoryTabs.pvp_tab" && Item.Enchanted > 0 )
  338.                 Item.IconPanel = "InventoryTabs.pvp_tab_enchant"$Item.Enchanted;
  339.             else if( Item.IconPanel == "" && Item.Enchanted > 0 )
  340.                 Item.IconPanel = "InventoryTabs.tab_enchant"$Item.Enchanted;
  341.  
  342.             StartItem();
  343.             m_Info.eType = DIT_TEXTURE;
  344.             m_Info.nOffSetX = -32;
  345.             m_Info.u_nTextureWidth = 32;
  346.             m_Info.u_nTextureHeight = 32;
  347.             m_Info.u_strTexture = Item.IconPanel;
  348.             EndItem();
  349.  
  350.            if( Item.Enchanted > 0 )
  351.            {
  352.             //item enchant
  353.             StartItem();
  354.             m_Info.eType = DIT_TEXT;
  355.             m_Info.t_bDrawOneLine = true;
  356.             m_Info.nOffSetX = 5;
  357.             m_Info.t_strText = "+"$Item.Enchanted;
  358.             m_Info.t_color.R =230;
  359.             m_Info.t_color.G =164;
  360.             m_Info.t_color.B =8;
  361.             m_Info.t_color.A =255;
  362.             EndItem();
  363.            }
  364.  
  365.            if( (Item.refineryOp1 != 0 || Item.refineryOp2 != 0) && InStr(Caps(Item.Description), Caps("masterwork") ) != (-1) )
  366.            {
  367.             //item name
  368.             StartItem();
  369.             m_Info.eType = DIT_TEXT;
  370.             m_Info.t_bDrawOneLine = true;
  371.             m_Info.nOffSetX = 4;
  372.             m_Info.t_strText = "Augmented "$Item.Name;
  373.             m_Info.t_color.R =70;
  374.             m_Info.t_color.G =247;
  375.             m_Info.t_color.B =135;
  376.             m_Info.t_color.A =255;
  377.             EndItem();
  378.            }
  379.            else if( Item.refineryOp1 != 0 || Item.refineryOp2 != 0 )
  380.            {
  381.             //item name
  382.             StartItem();
  383.             m_Info.eType = DIT_TEXT;
  384.             m_Info.t_bDrawOneLine = true;
  385.             m_Info.nOffSetX = 4;
  386.             m_Info.t_strText = "Augmented "$Item.Name;
  387.             m_Info.t_color.R =70;
  388.             m_Info.t_color.G =243;
  389.             m_Info.t_color.B =237;
  390.             m_Info.t_color.A =255;
  391.             EndItem();
  392.            }
  393.            else if( InStr(Caps(Item.Description), Caps("masterwork") ) != (-1) )
  394.            {
  395.             StartItem();
  396.             m_Info.eType = DIT_TEXT;
  397.             m_Info.t_bDrawOneLine = true;
  398.             m_Info.nOffSetX = 4;
  399.             m_Info.t_strText = ""$Item.Name;
  400.             m_Info.t_color.R =243;
  401.             m_Info.t_color.G =241;
  402.             m_Info.t_color.B =70;
  403.             m_Info.t_color.A =255;
  404.             EndItem();
  405.            }
  406.            else
  407.            {
  408.             //item name
  409.             StartItem();
  410.             m_Info.eType = DIT_TEXT;
  411.             m_Info.t_bDrawOneLine = true;
  412.             m_Info.nOffSetX = 4;
  413.             m_Info.t_strText = Item.Name;
  414.             EndItem();
  415.            }
  416.            
  417.             //item special ability
  418.             if( Item.AdditionalName != "" )
  419.             {
  420.                 StartItem();
  421.                 m_Info.eType = DIT_TEXT;
  422.                 m_Info.t_bDrawOneLine = true;
  423.                 m_Info.nOffSetX = 4;
  424.                 m_Info.t_strText = Item.AdditionalName;
  425.                 m_Info.t_color.R =229;
  426.                 m_Info.t_color.G =195;
  427.                 m_Info.t_color.B =95;
  428.                 m_Info.t_color.A =255;
  429.                 EndItem();
  430.             }
  431.  
  432.             //item grade icon
  433.             AddTooltipItemGrade(Item);
  434.  
  435.             strTmp = GetWeaponTypeString(Item.WeaponType);
  436.  
  437.             StartItem();
  438.             m_Info.eType = DIT_TEXT;
  439.             m_Info.t_bDrawOneLine = true;
  440.             m_Info.bLineBreak = true;
  441.             m_Info.nOffSetX = 36;
  442.             m_Info.nOffSetY = -11;
  443.             if( strTmp != "" )
  444.                 m_Info.t_strText = strTmp$" / "$SlotString;
  445.             else
  446.                 m_Info.t_strText = SlotString;
  447.             m_Info.t_color.R =175;
  448.             m_Info.t_color.G =154;
  449.             m_Info.t_color.B =120;
  450.             m_Info.t_color.A =255;
  451.             EndItem();
  452.  
  453.             m_Tooltip.SimpleLineCount = 2;
  454.  
  455.             if (TooltipType == "InventoryPrice1"
  456.             || TooltipType == "InventoryPrice1HideEnchant"
  457.             || TooltipType == "InventoryPrice1HideEnchantStackable")
  458.             {
  459.                 strAdena = Int64ToString(Item.Price);
  460.                 strAdenaComma = MakeCostString(strAdena);
  461.                 AdenaColor = GetNumericColor(strAdenaComma);
  462.            
  463.                 //가격 : xxx,xxx,xxx
  464.                 AddTooltipItemOption(322, strAdenaComma $ " ", true, true, false);
  465.                 SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
  466.            
  467.                 //"아데나"
  468.                 StartItem();
  469.                 m_Info.eType = DIT_TEXT;
  470.                 m_Info.nOffSetY = 6;
  471.                 m_Info.t_bDrawOneLine = true;
  472.                 m_Info.t_color = AdenaColor;
  473.                 m_Info.t_ID= 469;
  474.                 EndItem();
  475.            
  476.                 //SimpleTooltip을 가격까지 보여준다.
  477.                 m_Tooltip.SimpleLineCount = 3;
  478.            
  479.                 //읽어주기 스트링
  480.                 if (Item.Price>IntToInt64(0))
  481.                 {
  482.                     m_Tooltip.SimpleLineCount = 4;
  483.                     AddTooltipItemOption(0, "(" $ ConvertNumToText(strAdena) $ ")", false, true, false);
  484.                     SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
  485.                 }
  486.             }
  487.  
  488.             //InventoryPrice2 타입
  489.             if (TooltipType == "InventoryPrice2"
  490.                 || TooltipType == "InventoryPrice2PrivateShop")
  491.             {
  492.                 strAdena = Int64ToString(Item.Price);
  493.                 strAdenaComma = MakeCostString(strAdena);
  494.                 AdenaColor = GetNumericColor(strAdenaComma);
  495.            
  496.                 //가격 : 1개당
  497.                 AddTooltipItemOption2(322, 468, true, true, false);
  498.                 SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
  499.            
  500.                 //"xxx,xxx,xxx "
  501.                 StartItem();
  502.                 m_Info.eType = DIT_TEXT;
  503.                 m_Info.nOffSetY = 6;
  504.                 m_Info.t_bDrawOneLine = true;
  505.                 m_Info.t_color = AdenaColor;
  506.                 m_Info.t_strText = " " $ strAdenaComma $ " ";
  507.                 EndItem();
  508.            
  509.                 //"아데나"
  510.                 StartItem();
  511.                 m_Info.eType = DIT_TEXT;
  512.                 m_Info.nOffSetY = 6;
  513.                 m_Info.t_bDrawOneLine = true;
  514.                 m_Info.t_color = AdenaColor;
  515.                 m_Info.t_ID= 469;
  516.                 EndItem();
  517.            
  518.                 //SimpleTooltip을 가격까지 보여준다.
  519.                 m_Tooltip.SimpleLineCount = 3;
  520.            
  521.                 //읽어주기 스트링
  522.                 if (Item.Price>IntToInt64(0))
  523.                 {
  524.                     m_Tooltip.SimpleLineCount = 4;
  525.                
  526.                     //"("
  527.                     StartItem();
  528.                     m_Info.eType = DIT_TEXT;
  529.                     m_Info.nOffSetY = 6;
  530.                     m_Info.bLineBreak = true;
  531.                     m_Info.t_bDrawOneLine = true;
  532.                     m_Info.t_color = AdenaColor;
  533.                     m_Info.t_strText = "(";
  534.                     EndItem();
  535.                
  536.                     //"1개당"
  537.                     StartItem();
  538.                     m_Info.eType = DIT_TEXT;
  539.                     m_Info.nOffSetY = 6;
  540.                     m_Info.t_bDrawOneLine = true;
  541.                     m_Info.t_color = AdenaColor;
  542.                     m_Info.t_ID = 468;
  543.                     EndItem();
  544.                
  545.                     StartItem();
  546.                     m_Info.eType = DIT_TEXT;
  547.                     m_Info.nOffSetY = 6;
  548.                     m_Info.t_bDrawOneLine = true;
  549.                     m_Info.t_color = AdenaColor;
  550.                     m_Info.t_strText = " " $ ConvertNumToText(strAdena) $ ")";
  551.                     EndItem();
  552.                 }
  553.             }
  554.        
  555.             //InventoryPrice2PrivateShop 타입
  556.             if (TooltipType == "InventoryPrice2PrivateShop")
  557.             {
  558.                 if (IsStackableItem(Item.ConsumeType) && Item.Reserved64 > IntToInt64(0))
  559.                 {
  560.                     //"구매개수 : xx"
  561.                     AddTooltipItemOption(808, Int64ToString(Item.Reserved64), true, true, false);
  562.                 }
  563.             }
  564.         }
  565.         else
  566.         {
  567.             if (TooltipType == "InventoryWithIcon")
  568.             {
  569.                 StartItem();
  570.                 m_Info.eType = DIT_TEXTURE;
  571.                 m_Info.u_nTextureWidth = 32;
  572.                 m_Info.u_nTextureHeight = 32;
  573.                 m_Info.u_strTexture = Item.IconName;
  574.                 EndItem();
  575.  
  576.                 if( Item.consumeType != 0 && Int(Int64ToString(Item.ItemNum)) > 0 && Item.ID.ClassID != 57 && Item.ID.ClassID != 5575 )
  577.                     Item.IconPanel = "InventoryTabs.tab_consumables"$Min(100, Int(Int64ToString(Item.ItemNum)));
  578.  
  579.                 StartItem();
  580.                 m_Info.eType = DIT_TEXTURE;
  581.                 m_Info.nOffSetX = -32;
  582.                 m_Info.u_nTextureWidth = 32;
  583.                 m_Info.u_nTextureHeight = 32;
  584.                 m_Info.u_strTexture = Item.IconPanel;
  585.                 EndItem();
  586.            
  587.                 AddTooltipItemBlank(4);
  588.             }
  589.  
  590.             StartItem();
  591.             m_Info.eType = DIT_TEXT;
  592.             m_Info.t_bDrawOneLine = true;
  593.             //m_Info.t_strText = ""$Item.Name$"("$Int64ToString(Item.ItemNum)$")";
  594.             m_Info.t_strText = ""$Item.Name;
  595.             EndItem();
  596.  
  597.             if (Item.AdditionalName != "")
  598.             {
  599.                 StartItem();
  600.                 m_Info.eType = DIT_TEXT;
  601.                 m_Info.t_bDrawOneLine = true;
  602.                 m_Info.t_strText = Item.AdditionalName;
  603.                 m_Info.nOffSetX = 4;
  604.                 m_Info.t_color.R =229;
  605.                 m_Info.t_color.G =195;
  606.                 m_Info.t_color.B =95;
  607.                 m_Info.t_color.A =255;
  608.                 EndItem();
  609.             }
  610.  
  611.             if( Int64ToInt(Item.ItemNum) > 0 )
  612.                 AddTooltipItemCount(Item);
  613.  
  614.             if (IsAdena(Item.ID))
  615.             {
  616.             m_Tooltip.SimpleLineCount = 2;
  617.            
  618.             StartItem();
  619.             m_Info.eType = DIT_TEXT;
  620.             m_Info.nOffSetY = 6;
  621.             m_Info.bLineBreak = true;
  622.             m_Info.t_bDrawOneLine = true;
  623.             m_Info.t_strText = "(" $ ConvertNumToText(Int64ToString(Item.ItemNum)) $ ")";
  624.             EndItem();
  625.             }
  626.  
  627.             if (TooltipType == "InventoryPrice1"
  628.             || TooltipType == "InventoryPrice1HideEnchant"
  629.             || TooltipType == "InventoryPrice1HideEnchantStackable")
  630.             {
  631.                 strAdena = Int64ToString(Item.Price);
  632.                 strAdenaComma = MakeCostString(strAdena);
  633.                 AdenaColor = GetNumericColor(strAdenaComma);
  634.            
  635.                 //가격 : xxx,xxx,xxx
  636.                 AddTooltipItemOption(322, strAdenaComma $ " ", true, true, false);
  637.                 SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
  638.            
  639.                 //"아데나"
  640.                 StartItem();
  641.                 m_Info.eType = DIT_TEXT;
  642.                 m_Info.nOffSetY = 6;
  643.                 m_Info.t_bDrawOneLine = true;
  644.                 m_Info.t_color = AdenaColor;
  645.                 m_Info.t_ID= 469;
  646.                 EndItem();
  647.            
  648.                 //SimpleTooltip을 가격까지 보여준다.
  649.                 m_Tooltip.SimpleLineCount = 2;
  650.            
  651.                 //읽어주기 스트링
  652.                 if (Item.Price>IntToInt64(0))
  653.                 {
  654.                     m_Tooltip.SimpleLineCount = 3;
  655.                     AddTooltipItemOption(0, "(" $ ConvertNumToText(strAdena) $ ")", false, true, false);
  656.                     SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
  657.                 }
  658.             }
  659.             //InventoryPrice2 타입
  660.             if (TooltipType == "InventoryPrice2"
  661.                 || TooltipType == "InventoryPrice2PrivateShop")
  662.             {
  663.                 strAdena = Int64ToString(Item.Price);
  664.                 strAdenaComma = MakeCostString(strAdena);
  665.                 AdenaColor = GetNumericColor(strAdenaComma);
  666.            
  667.                 //가격 : 1개당
  668.                 AddTooltipItemOption2(322, 468, true, true, false);
  669.                 SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
  670.            
  671.                 //"xxx,xxx,xxx "
  672.                 StartItem();
  673.                 m_Info.eType = DIT_TEXT;
  674.                 m_Info.nOffSetY = 6;
  675.                 m_Info.t_bDrawOneLine = true;
  676.                 m_Info.t_color = AdenaColor;
  677.                 m_Info.t_strText = " " $ strAdenaComma $ " ";
  678.                 EndItem();
  679.            
  680.                 //"아데나"
  681.                 StartItem();
  682.                 m_Info.eType = DIT_TEXT;
  683.                 m_Info.nOffSetY = 6;
  684.                 m_Info.t_bDrawOneLine = true;
  685.                 m_Info.t_color = AdenaColor;
  686.                 m_Info.t_ID= 469;
  687.                 EndItem();
  688.            
  689.                 //SimpleTooltip을 가격까지 보여준다.
  690.                 m_Tooltip.SimpleLineCount = 2;
  691.            
  692.                 //읽어주기 스트링
  693.                 if (Item.Price>IntToInt64(0))
  694.                 {
  695.                     m_Tooltip.SimpleLineCount = 3;
  696.                
  697.                     //"("
  698.                     StartItem();
  699.                     m_Info.eType = DIT_TEXT;
  700.                     m_Info.nOffSetY = 6;
  701.                     m_Info.bLineBreak = true;
  702.                     m_Info.t_bDrawOneLine = true;
  703.                     m_Info.t_color = AdenaColor;
  704.                     m_Info.t_strText = "(";
  705.                     EndItem();
  706.                
  707.                     //"1개당"
  708.                     StartItem();
  709.                     m_Info.eType = DIT_TEXT;
  710.                     m_Info.nOffSetY = 6;
  711.                     m_Info.t_bDrawOneLine = true;
  712.                     m_Info.t_color = AdenaColor;
  713.                     m_Info.t_ID = 468;
  714.                     EndItem();
  715.                
  716.                     StartItem();
  717.                     m_Info.eType = DIT_TEXT;
  718.                     m_Info.nOffSetY = 6;
  719.                     m_Info.t_bDrawOneLine = true;
  720.                     m_Info.t_color = AdenaColor;
  721.                     m_Info.t_strText = " " $ ConvertNumToText(strAdena) $ ")";
  722.                     EndItem();
  723.                 }
  724.             }
  725.        
  726.             //InventoryPrice2PrivateShop 타입
  727.             if (TooltipType == "InventoryPrice2PrivateShop")
  728.             {
  729.                 if (IsStackableItem(Item.ConsumeType) && Item.Reserved64 > IntToInt64(0))
  730.                 {
  731.                     //"구매개수 : xx"
  732.                     AddTooltipItemOption(808, Int64ToString(Item.Reserved64), true, true, false);
  733.                 }
  734.             }
  735.         }  
  736.  
  737.         AddTooltipItemBlank(4);
  738.         StartItem();
  739.         m_Info.eType = DIT_SPLITLINE;
  740.         m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;        
  741.         m_Info.u_nTextureHeight = 1;
  742.         m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
  743.         EndItem();
  744.        
  745.         switch (eItemType)
  746.         {
  747.            
  748.         // 1. WEAPON
  749.         case ITEM_WEAPON:
  750.             bLargeWidth = true;
  751.  
  752.             //Physical Damage
  753.             //AddTooltipItemOptionDamage(94, String(GetPhysicalDamage(Item.WeaponType, Item.SlotBitType, Item.CrystalType, Item.Enchanted, Item.PhysicalDamage)), true, true, false);
  754.             AddTooltipItemOptionDamage(94, Item, true, true, false);
  755.            
  756.             //Masical Damage
  757.             //AddTooltipItemOptionDamage(98, String(GetMagicalDamage(Item.WeaponType, Item.SlotBitType, Item.CrystalType, Item.Enchanted, Item.MagicalDamage)), true, true, false);
  758.             AddTooltipItemOptionDamage(98, Item, true, true, false);
  759.            
  760.             //Attack Speed
  761.             AddTooltipItemOption(111, GetAttackSpeedString(Item.AttackSpeed), true, true, false);
  762.            
  763.             //SoulShot Count
  764.             if (Item.SoulshotCount>0)
  765.             {
  766.                 AddTooltipItemOption(404, "X " $ Item.SoulshotCount, true, true, false);
  767.             }
  768.            
  769.             //SpiritShot Count
  770.             if (Item.SpiritShotCount>0)
  771.             {
  772.                 AddTooltipItemOption(496, "X " $ Item.SpiritshotCount, true, true, false);
  773.             }
  774.            
  775.             //Weight
  776.             if (Item.Weight==0)
  777.                 AddTooltipItemOption(52, " 0 ", true, true, false);
  778.             else
  779.                 AddTooltipItemOption(52, String(Item.Weight), true, true, false);
  780.             //AddTooltipItemOption(52, String(Item.Weight), true, true, false);
  781.            
  782.             //MP Consume
  783.             if (Item.MpConsume != 0)
  784.             {
  785.                 AddTooltipItemOption(320, String(Item.MpConsume), true, true, false);
  786.             }
  787.            
  788.  
  789.             //제련효과
  790.             if (Item.RefineryOp1 != 0 || Item.RefineryOp2 != 0)
  791.             {  
  792.                 AddTooltipItemBlank(4);
  793.                 StartItem();
  794.                 m_Info.eType = DIT_SPLITLINE;
  795.                 m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;        
  796.                 m_Info.u_nTextureHeight = 1;
  797.                 m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
  798.                 EndItem();
  799.                 //컬러값 취득
  800.                 if (Item.RefineryOp2 != 0)
  801.                 {
  802.                     Quality = class'UIDATA_REFINERYOPTION'.static.GetQuality( Item.RefineryOp2 );
  803.                     GetRefineryColor(Quality, ColorR, ColorG, ColorB);
  804.                 }
  805.                
  806.                 if (Item.RefineryOp1 != 0)
  807.                 {
  808.                     strDesc1 = "";
  809.                     strDesc2 = "";
  810.                     strDesc3 = "";
  811.                     if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.RefineryOp1, strDesc1, strDesc2, strDesc3 ))
  812.                     {  
  813.                         if (Len(strDesc1)>0)
  814.                         {
  815.                             AddTooltipItemOption(0, strDesc1, false, true, false);
  816.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  817.                         }
  818.                         if (Len(strDesc2)>0)
  819.                         {
  820.                             AddTooltipItemOption(0, strDesc2, false, true, false);
  821.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  822.                         }
  823.                         if (Len(strDesc3)>0)
  824.                         {
  825.                             AddTooltipItemOption(0, strDesc3, false, true, false);
  826.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  827.                         }
  828.                     }
  829.                 }  
  830.                
  831.                 if (Item.RefineryOp2 != 0)
  832.                 {
  833.                     strDesc1 = "";
  834.                     strDesc2 = "";
  835.                     strDesc3 = "";
  836.                     if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.RefineryOp2, strDesc1, strDesc2, strDesc3 ))
  837.                     {
  838.                         if (Len(strDesc1)>0)
  839.                         {
  840.                             AddTooltipItemOption(0, strDesc1, false, true, false);
  841.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  842.                            
  843.                         }
  844.                         if (Len(strDesc2)>0)
  845.                         {
  846.                             AddTooltipItemOption(0, strDesc2, false, true, false);
  847.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  848.                         }
  849.                         if (Len(strDesc3)>0)
  850.                         {
  851.                             AddTooltipItemOption(0, strDesc3, false, true, false);
  852.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  853.                         }
  854.                     }
  855.                 }
  856.                
  857.                 //"교환/드롭 불가"
  858.                 AddTooltipItemOption(1491, "", true, false, false);
  859.                 SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  860.                
  861.             }
  862.         break;
  863.        
  864.         // 2. ARMOR
  865.         case ITEM_ARMOR:
  866.             bLargeWidth = true;
  867.  
  868.            
  869.             // Sheild
  870.             if ( Item.SlotBitType == 256 && Item.ArmorType == 4 ) // ArmorType == 4 is sigil..
  871.             {
  872.                 if (Item.PhysicalDefense != 0)
  873.                     AddTooltipItemOptionDef(95, Item, true, true, false);  
  874.                 //Avoid Modify
  875.                 if (Item.AvoidModify != 0)
  876.                     AddTooltipItemOption(97, String(Item.AvoidModify), true, true, false);
  877.                     //Weight
  878.                 if (Item.Weight != 0)
  879.                 {
  880.                     AddTooltipItemOption(52, String(Item.Weight), true, true, false);
  881.                     AddTooltipItemBlank(4);
  882.                 }
  883.             }
  884.             else if (Item.SlotBitType == 256 || Item.SlotBitType == 128)    //SBT_LHAND or SBT_RHAND
  885.             {
  886.                 //Shield Defense
  887.                 //debug("Shield Defense" $ Item.ShieldDefense);
  888.                 if (Item.ShieldDefense != 0)
  889.                 AddTooltipItemOptionDef(95, Item, true, true, false, true);
  890.                
  891.                 //Shield Defense Rate
  892.                 //debug("Shield Defense Rate" $ Item.ShieldDefenseRate);
  893.                 if (Item.ShieldDefenseRate != 0)
  894.                 AddTooltipItemOption(317, String(Item.ShieldDefenseRate), true, true, false);
  895.                
  896.                 //Avoid Modify
  897.                 //debug("Avoid Modify" $ Item.AvoidModify);
  898.                 if (Item.AvoidModify != 0)
  899.                 AddTooltipItemOption(97, String(Item.AvoidModify), true, true, false);
  900.                
  901.                 //Weight
  902.                 //debug("Weight" $ Item.Weight);
  903.                 if (Item.Weight != 0)
  904.                 {
  905.                     AddTooltipItemOption(52, String(Item.Weight), true, true, false);
  906.                     AddTooltipItemBlank(4);
  907.                 }
  908.             }
  909.            
  910.             // Magical Armor
  911.             else if (IsMagicalArmor(Item.ID))
  912.             {
  913.                
  914.                 //MP Bonus
  915.                 AddTooltipItemOption(388, String(Item.MpBonus), true, true, false);
  916.                
  917.                 //Physical Defense
  918.                 if (Item.SlotBitType == 65536)
  919.                 {
  920.                    
  921.                 }
  922.                 else if (  Item.SlotBitType == 524288)
  923.                 {
  924.                 }
  925.                 else if ( Item.SlotBitType == 262144)
  926.                 {
  927.                 }
  928.                 else
  929.                 {
  930.                     if (Item.PhysicalDefense != 0)
  931.                     AddTooltipItemOptionDef(95, Item, true, true, false);
  932.                 }
  933.                    
  934.                 //Weight
  935.                     if (Item.Weight != 0)
  936.                     {
  937.                         AddTooltipItemOption(52, String(Item.Weight), true, true, false);
  938.                         AddTooltipItemBlank(4);
  939.                     }
  940.             }
  941.            
  942.             // Physical Armor
  943.             else
  944.             {
  945.                 //Physical Defense
  946.                 if (Item.SlotBitType == 65536)
  947.                 {
  948.                    
  949.                 }
  950.                 else if (  Item.SlotBitType == 524288)
  951.                 {
  952.                 }
  953.                 else if ( Item.SlotBitType == 262144)
  954.                 {
  955.                 }
  956.                 else
  957.                 {
  958.                     if (Item.PhysicalDefense != 0)
  959.                     AddTooltipItemOptionDef(95, Item, true, true, false);  
  960.                 }
  961.                 //Weight
  962.                 if (Item.Weight != 0)
  963.                 {
  964.                     AddTooltipItemOption(52, String(Item.Weight), true, true, false);
  965.                     AddTooltipItemBlank(4);
  966.                 }
  967.             }
  968.             //제련효과
  969.             if (Item.RefineryOp1 != 0 || Item.RefineryOp2 != 0)
  970.             {
  971.                 //빈공간
  972.                 AddTooltipItemBlank(12);
  973.                
  974.                 //"[제련효과]"
  975.                 AddTooltipItemOption(1490, "", true, false, false);
  976.                 SetTooltipItemColor(255, 255, 255, 0);
  977.                
  978.                 //컬러값 취득
  979.                 if (Item.RefineryOp2 != 0)
  980.                 {
  981.                     Quality = class'UIDATA_REFINERYOPTION'.static.GetQuality( Item.RefineryOp2 );
  982.                     GetRefineryColor(Quality, ColorR, ColorG, ColorB);
  983.                 }
  984.                
  985.                 if (Item.RefineryOp1 != 0)
  986.                 {
  987.                     strDesc1 = "";
  988.                     strDesc2 = "";
  989.                     strDesc3 = "";
  990.                     if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.RefineryOp1, strDesc1, strDesc2, strDesc3 ))
  991.                     {  
  992.                         if (Len(strDesc1)>0)
  993.                         {
  994.                             AddTooltipItemOption(0, strDesc1, false, true, false);
  995.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  996.                         }
  997.                         if (Len(strDesc2)>0)
  998.                         {
  999.                             AddTooltipItemOption(0, strDesc2, false, true, false);
  1000.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1001.                         }
  1002.                         if (Len(strDesc3)>0)
  1003.                         {
  1004.                             AddTooltipItemOption(0, strDesc3, false, true, false);
  1005.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1006.                         }
  1007.                     }
  1008.                 }  
  1009.                
  1010.                 if (Item.RefineryOp2 != 0)
  1011.                 {
  1012.                     strDesc1 = "";
  1013.                     strDesc2 = "";
  1014.                     strDesc3 = "";
  1015.                     if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.RefineryOp2, strDesc1, strDesc2, strDesc3 ))
  1016.                     {
  1017.                         if (Len(strDesc1)>0)
  1018.                         {
  1019.                             AddTooltipItemOption(0, strDesc1, false, true, false);
  1020.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1021.                            
  1022.                         }
  1023.                         if (Len(strDesc2)>0)
  1024.                         {
  1025.                             AddTooltipItemOption(0, strDesc2, false, true, false);
  1026.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1027.                         }
  1028.                         if (Len(strDesc3)>0)
  1029.                         {
  1030.                             AddTooltipItemOption(0, strDesc3, false, true, false);
  1031.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1032.                         }
  1033.                     }
  1034.                 }
  1035.                 //빈공간
  1036.                 AddTooltipItemBlank(12);
  1037.             }
  1038.            
  1039.         break;
  1040.        
  1041.         // 3. ACCESSARY
  1042.         case ITEM_ACCESSARY:
  1043.             bLargeWidth = true;
  1044.            
  1045.             //Magical Defense
  1046.             // 탈리스만은 아이템 마방을 보여주지 않는다.
  1047.             // 왼팔찌 오른팔찌도 마방을 보여주지 않는다.
  1048.             if ((Item.SlotBitType != 4194304 ) && (Item.SlotBitType != 1048576 ) && (Item.SlotBitType != 2097152 ))
  1049.                 AddTooltipItemOptionDef(99, Item, true, true, false);
  1050.            
  1051.             if (Item.Weight == 0)
  1052.                 AddTooltipItemOption(52, " 0 ", true, true, false);
  1053.             else
  1054.                 AddTooltipItemOption(52, String(Item.Weight), true, true, false);
  1055.            
  1056.             //debug ("Refinery Result Accessotires" @ Item.RefineryOp1);
  1057.             //제련효과
  1058.             if (Item.RefineryOp1 != 0 || Item.RefineryOp2 != 0)
  1059.             {
  1060.                 //빈공간
  1061.                 AddTooltipItemBlank(3);
  1062.                 StartItem();
  1063.                 m_Info.eType = DIT_SPLITLINE;
  1064.                 m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;        
  1065.                 m_Info.u_nTextureHeight = 1;
  1066.                 m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
  1067.                 EndItem();
  1068.                
  1069.                 //컬러값 취득
  1070.                 if (Item.RefineryOp2 != 0)
  1071.                 {
  1072.                     Quality = class'UIDATA_REFINERYOPTION'.static.GetQuality( Item.RefineryOp2 );
  1073.                     GetRefineryColor(Quality, ColorR, ColorG, ColorB);
  1074.                 }
  1075.                
  1076.                 if (Item.RefineryOp1 != 0)
  1077.                 {
  1078.                     strDesc1 = "";
  1079.                     strDesc2 = "";
  1080.                     strDesc3 = "";
  1081.                     if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.RefineryOp1, strDesc1, strDesc2, strDesc3 ))
  1082.                     {  
  1083.                         if (Len(strDesc1)>0)
  1084.                         {
  1085.                             AddTooltipItemOption(0, strDesc1, false, true, false);
  1086.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1087.                         }
  1088.                         if (Len(strDesc2)>0)
  1089.                         {
  1090.                             AddTooltipItemOption(0, strDesc2, false, true, false);
  1091.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1092.                         }
  1093.                         if (Len(strDesc3)>0)
  1094.                         {
  1095.                             AddTooltipItemOption(0, strDesc3, false, true, false);
  1096.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1097.                         }
  1098.                     }
  1099.                 }  
  1100.                
  1101.                 if (Item.RefineryOp2 != 0)
  1102.                 {
  1103.                     strDesc1 = "";
  1104.                     strDesc2 = "";
  1105.                     strDesc3 = "";
  1106.                     if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.RefineryOp2, strDesc1, strDesc2, strDesc3 ))
  1107.                     {
  1108.                         if (Len(strDesc1)>0)
  1109.                         {
  1110.                             AddTooltipItemOption(0, strDesc1, false, true, false);
  1111.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1112.                            
  1113.                         }
  1114.                         if (Len(strDesc2)>0)
  1115.                         {
  1116.                             AddTooltipItemOption(0, strDesc2, false, true, false);
  1117.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1118.                         }
  1119.                         if (Len(strDesc3)>0)
  1120.                         {
  1121.                             AddTooltipItemOption(0, strDesc3, false, true, false);
  1122.                             SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1123.                         }
  1124.                     }
  1125.                 }
  1126.                 //빈공간
  1127.                 AddTooltipItemBlank(1);
  1128.             }
  1129.            
  1130.            
  1131.                
  1132.         break;
  1133.        
  1134.         // 4. QUEST
  1135.         case ITEM_QUESTITEM:
  1136.             bLargeWidth = true;
  1137.            
  1138.             //Slot Type
  1139.             if (Len(SlotString)>0)
  1140.                 AddTooltipItemOption(0, SlotString, false, true, false);
  1141.         break;
  1142.        
  1143.         // 5. ETC
  1144.         case ITEM_ETCITEM:
  1145.             bLargeWidth = true;
  1146.            
  1147.             if (eEtcItemType == ITEME_PET_COLLAR)
  1148.             {
  1149.                 //Pet Name
  1150.                 if (Item.Damaged == 0)
  1151.                     nTmp = 971;
  1152.                 else
  1153.                     nTmp = 970;
  1154.                 AddTooltipItemOption2(969, nTmp, true, true, false);
  1155.                
  1156.                 //Pet Level
  1157.                 AddTooltipItemOption(88, String(Item.Enchanted), true, true, false);
  1158.             }
  1159.             else if (eEtcItemType == ITEME_TICKET_OF_LORD)
  1160.             {
  1161.                 AddTooltipItemOption(972, String(Item.Enchanted), true, true, false);
  1162.             }
  1163.             else if (eEtcItemType == ITEME_LOTTO)
  1164.             {
  1165.                 // 복권에서는 bless가 회차, 몬스터레이스에서는 Enchant가 회차입니다. 주의하세요! - lancelot 2008. 11. 11.
  1166.                 // 회차
  1167.                 AddTooltipItemOption(670, String(Item.Blessed), true, true, false);
  1168.                
  1169.                 // 선택번호
  1170.                 AddTooltipItemOption(671, GetLottoString(Item.Enchanted, Item.Damaged), true, true, false);
  1171.             }
  1172.             else if (eEtcItemType == ITEME_RACE_TICKET)
  1173.             {
  1174.                 // 회차
  1175.                 AddTooltipItemOption(670, String(Item.Enchanted), true, true, false);
  1176.                
  1177.                 // 선택번호
  1178.                 AddTooltipItemOption(671, GetRaceTicketString(Item.Blessed), true, true, false);
  1179.                
  1180.                 //Money
  1181.                 AddTooltipItemOption(744, String(Item.Damaged*100), true, true, false);
  1182.             }
  1183.             //Weight
  1184.             //~ if (Item.Price!=0)
  1185.             if (Item.Weight==0)
  1186.                 AddTooltipItemOption(52, " 0 ", true, true, false);
  1187.             else
  1188.                 AddTooltipItemOption(52, String(Item.Weight), true, true, false);
  1189.         break;
  1190.        
  1191.         }
  1192.         /////////////////////////////////////////////////////////////////////////////////////////
  1193.         /////////////////////////////////////////////////////////////////////////////////////////
  1194.        
  1195.         // [칠월칠석, 방어구 각인] item enchant option - by jin 09/08/05
  1196.         if (Item.EnchantOption1 != 0 || Item.EnchantOption2 != 0 || Item.EnchantOption3 != 0)
  1197.         {
  1198.             //빈공간
  1199.             AddTooltipItemBlank(12);
  1200.            
  1201.             //"[인챈트효과]"
  1202.             AddTooltipItemOption(2214, "", true, false, false);
  1203.             SetTooltipItemColor(255, 255, 255, 0);
  1204.            
  1205.             //컬러값 취득
  1206.             if (Item.EnchantOption1 != 0)
  1207.             {
  1208.                 // [칠월칠석, 방어구각인] 각인 효과는 일단 무조건 1번 색상을 사용. - by jin 09/08/06
  1209.                 GetRefineryColor(1, ColorR, ColorG, ColorB);
  1210.             }
  1211.            
  1212.             if (Item.EnchantOption1 != 0)
  1213.             {
  1214.                 strDesc1 = "";
  1215.                 strDesc2 = "";
  1216.                 strDesc3 = "";
  1217.                 if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.EnchantOption1, strDesc1, strDesc2, strDesc3 ))
  1218.                 {  
  1219.                     if (Len(strDesc1)>0)
  1220.                     {
  1221.                         AddTooltipItemOption(0, strDesc1, false, true, false);
  1222.                         SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1223.                     }
  1224.                     if (Len(strDesc2)>0)
  1225.                     {
  1226.                         AddTooltipItemOption(0, strDesc2, false, true, false);
  1227.                         SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1228.                     }
  1229.                     if (Len(strDesc3)>0)
  1230.                     {
  1231.                         AddTooltipItemOption(0, strDesc3, false, true, false);
  1232.                         SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1233.                     }
  1234.                 }
  1235.             }  
  1236.            
  1237.             if (Item.EnchantOption2 != 0)
  1238.             {
  1239.                 strDesc1 = "";
  1240.                 strDesc2 = "";
  1241.                 strDesc3 = "";
  1242.                 if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.EnchantOption2, strDesc1, strDesc2, strDesc3 ))
  1243.                 {
  1244.                     if (Len(strDesc1)>0)
  1245.                     {
  1246.                         AddTooltipItemOption(0, strDesc1, false, true, false);
  1247.                         SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1248.                        
  1249.                     }
  1250.                     if (Len(strDesc2)>0)
  1251.                     {
  1252.                         AddTooltipItemOption(0, strDesc2, false, true, false);
  1253.                         SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1254.                     }
  1255.                     if (Len(strDesc3)>0)
  1256.                     {
  1257.                         AddTooltipItemOption(0, strDesc3, false, true, false);
  1258.                         SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1259.                     }
  1260.                 }
  1261.             }
  1262.  
  1263.             if (Item.EnchantOption3 != 0)
  1264.             {
  1265.                 strDesc1 = "";
  1266.                 strDesc2 = "";
  1267.                 strDesc3 = "";
  1268.                 if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.EnchantOption3, strDesc1, strDesc2, strDesc3 ))
  1269.                 {
  1270.                     if (Len(strDesc1)>0)
  1271.                     {
  1272.                         AddTooltipItemOption(0, strDesc1, false, true, false);
  1273.                         SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1274.                        
  1275.                     }
  1276.                     if (Len(strDesc2)>0)
  1277.                     {
  1278.                         AddTooltipItemOption(0, strDesc2, false, true, false);
  1279.                         SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1280.                     }
  1281.                     if (Len(strDesc3)>0)
  1282.                     {
  1283.                         AddTooltipItemOption(0, strDesc3, false, true, false);
  1284.                         SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
  1285.                     }
  1286.                 }
  1287.             }
  1288.  
  1289.             //빈공간
  1290.             AddTooltipItemBlank(12);
  1291.         }
  1292.        
  1293.         //내구도 아이템
  1294.         if (Item.CurrentDurability >= 0 && Item.Durability > 0)
  1295.         {
  1296.             bLargeWidth = true;
  1297.            
  1298.             //빈공간
  1299.             AddTooltipItemBlank(12);
  1300.            
  1301.             //<투영 병기 정보>
  1302.             AddTooltipItemOption(1492, "", true, false, false);
  1303.             SetTooltipItemColor(255, 255, 255, 0);
  1304.            
  1305.             //사용가능 시간
  1306.             StartItem();
  1307.             m_Info.eType = DIT_TEXT;
  1308.             m_Info.nOffSetY = 6;
  1309.             m_Info.bLineBreak = true;
  1310.             m_Info.t_bDrawOneLine = true;
  1311.             m_Info.t_color.R = 163;
  1312.             m_Info.t_color.G = 163;
  1313.             m_Info.t_color.B = 163;
  1314.             m_Info.t_color.A = 255;
  1315.             m_Info.t_ID = 1493;
  1316.             EndItem();
  1317.            
  1318.             StartItem();
  1319.             m_Info.eType = DIT_TEXT;
  1320.             m_Info.nOffSetY = 6;
  1321.             m_Info.t_bDrawOneLine = true;
  1322.             if (Item.CurrentDurability+1 <= 5)
  1323.             {
  1324.                 m_Info.t_color.R = 255;
  1325.                 m_Info.t_color.G = 0;
  1326.                 m_Info.t_color.B = 0;
  1327.             }
  1328.             else
  1329.             {
  1330.                 m_Info.t_color.R = 176;
  1331.                 m_Info.t_color.G = 155;
  1332.                 m_Info.t_color.B = 121;
  1333.             }
  1334.             m_Info.t_color.A = 255;
  1335.             m_Info.t_strText = " " $ Item.CurrentDurability $ "/" $ Item.Durability;
  1336.             EndItem();
  1337.            
  1338.             //"교환/드롭 불가"
  1339.             AddTooltipItemOption(1491, "", true, false, false);
  1340.            
  1341.             //빈공간
  1342.             if (Len(Item.Description)>0)
  1343.             {
  1344.                 AddTooltipItemBlank(12);
  1345.             }
  1346.         }
  1347.        
  1348.         //branch
  1349.         //에너지 정보
  1350.         if (Item.BR_MaxEnergy > 0)
  1351.         {
  1352.             //bLargeWidth = true;
  1353.            
  1354.             //빈공간
  1355.             AddTooltipItemBlank(12);
  1356.             //<에너지 정보>
  1357.             AddTooltipItemOption(5065, "", true, false, false);
  1358.             SetTooltipItemColor(255, 255, 255, 0);
  1359.  
  1360.             StartItem();
  1361.             m_Info.eType = DIT_TEXT;
  1362.             m_Info.nOffSetY = 6;
  1363.             m_Info.bLineBreak = true;
  1364.             m_Info.t_bDrawOneLine = true;
  1365.             m_Info.t_color.R = 163;
  1366.             m_Info.t_color.G = 163;
  1367.             m_Info.t_color.B = 163;
  1368.             m_Info.t_color.A = 255;
  1369.             m_Info.t_ID = 5066;
  1370.             EndItem();
  1371.                        
  1372.             StartItem();
  1373.             m_Info.eType = DIT_TEXT;
  1374.             m_Info.t_bDrawOneLine = true;
  1375.             m_Info.bLineBreak = true;
  1376.             if ( Item.BR_CurrentEnergy==0 || (Item.BR_MaxEnergy / Item.BR_CurrentEnergy > 10) )
  1377.             {
  1378.                 m_Info.t_color.R = 255;
  1379.                 m_Info.t_color.G = 0;
  1380.                 m_Info.t_color.B = 0;
  1381.             }
  1382.             else
  1383.             {
  1384.                 m_Info.t_color.R = 176;
  1385.                 m_Info.t_color.G = 155;
  1386.                 m_Info.t_color.B = 121;
  1387.             }
  1388.             m_Info.t_color.A = 255;
  1389.             //m_Info.t_strText = "  " $ Item.BR_CurrentEnergy $ "/" $ Item.BR_MaxEnergy;
  1390.             m_Info.t_strText = " " ;
  1391.             ParamAdd(m_Info.Condition, "Type", "CurrentEnergy");
  1392.             EndItem();
  1393.         }
  1394.         //end of branch
  1395.  
  1396.         if( Item.ID.ClassID == 57 || Item.ID.ClassID == 5575 )
  1397.         {
  1398.             AddTooltipItemOption(52, " 0 ", true, true, false);
  1399.         }
  1400.  
  1401.         //설명
  1402.         if (Len(Item.Description)>0)
  1403.         {
  1404.                 AddTooltipItemBlank(3);
  1405.                 StartItem();
  1406.                 m_Info.eType = DIT_SPLITLINE;
  1407.                 m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;        
  1408.                 m_Info.u_nTextureHeight = 1;
  1409.                 m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
  1410.                 EndItem();
  1411.  
  1412.                 bLargeWidth = true;
  1413.            
  1414.                 StartItem();
  1415.                 m_Info.eType = DIT_TEXT;
  1416.                 m_Info.nOffSetY = 6;
  1417.                 m_Info.bLineBreak = true;
  1418.                 m_Info.t_color.R = 178;
  1419.                 m_Info.t_color.G = 190;
  1420.                 m_Info.t_color.B = 207;
  1421.                 m_Info.t_color.A = 255;
  1422.                 m_Info.t_strText = Item.Description;
  1423.                 EndItem();
  1424.  
  1425.                 AddTooltipItemBlank(4);
  1426.         }
  1427.        
  1428.         /////////////////////////////////////////////////////////////////////////////////////////
  1429.         // 셋트 아이템 정보
  1430.         if (IsValidItemID(Item.ID))
  1431.         {
  1432.             for (idx=0; idx<TOOLTIP_SETITEM_MAX; idx++)
  1433.             {
  1434.                 //셋트아이템 리스트
  1435.                
  1436.                 for (SetID=0; SetID<class'UIDATA_ITEM'.static.GetSetItemNum(Item.ID, idx); SetID++) //0,1,2번 세트아이템효과 에 대해서 각각 몇가지의 세트가 완비되야하나..
  1437.                 {                  
  1438.                     bLargeWidth = true;
  1439.                     if (!class'UIDATA_ITEM'.static.IsExistSetItem(Item.ID, idx, SetID))
  1440.                     {  
  1441.  
  1442.                         if( !FirstTime1 )
  1443.                         {
  1444.                             if( Len(Item.Description)==0 )
  1445.                                 AddTooltipItemBlank(0);
  1446.  
  1447.                             AddTooltipItemBlank(0);
  1448.                             StartItem();
  1449.                             m_Info.eType = DIT_SPLITLINE;
  1450.                             m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;        
  1451.                             m_Info.u_nTextureHeight = 1;
  1452.                             m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
  1453.                             EndItem();
  1454.  
  1455.                             FirstTime1=true;
  1456.                         }
  1457.  
  1458.                         tmpItemID.classID = class'UIDATA_ITEM'.static.GetSetItemFirstID(Item.ID, idx, SetID);
  1459.                
  1460.                         if (tmpItemID.classID > 0)
  1461.                         {
  1462.                             StartItem();
  1463.                             m_Info.eType = DIT_TEXTURE;
  1464.                             m_Info.u_strTexture = class'UIDATA_ITEM'.static.GetItemTextureName(tmpItemID);
  1465.                             m_Info.u_nTextureWidth = 16;
  1466.                             m_Info.u_nTextureHeight = 16;
  1467.                             m_Info.u_nTextureUWidth = 32;
  1468.                             m_Info.u_nTextureUHeight = 32;
  1469.                             m_Info.nOffSetY = 5;
  1470.                             m_Info.bLineBreak = true;
  1471.                             m_Info.t_bDrawOneLine = true;
  1472.                             EndItem();
  1473.  
  1474.                             strTmp = class'UIDATA_ITEM'.static.GetItemName(tmpItemID);
  1475.                             StartItem();
  1476.                             m_Info.eType = DIT_TEXT;
  1477.                             m_Info.nOffSetY = 6;
  1478.                             m_Info.nOffSetX = 4;
  1479.                             m_Info.t_bDrawOneLine = true;
  1480.                             m_Info.t_color.R = 112;
  1481.                             m_Info.t_color.G = 115;
  1482.                             m_Info.t_color.B = 123;
  1483.                             m_Info.t_color.A = 255;
  1484.                             m_Info.t_strText = strTmp;
  1485.                             ParamAdd(m_info.Condition, "SetItemNum", string(idx));
  1486.                             ParamAdd(m_Info.Condition, "Type", "Equip");
  1487.                             ParamAddItemID(m_Info.Condition, Item.ID);                     
  1488.                             ParamAdd(m_Info.Condition, "CurTypeID", string(SetID));     //비교할 아이템의 Type 예(0번:흉갑 1번:각반 2번:헬멧 3번:팔 4번 다리 ..ItemName.txt에 들어있는순서
  1489.                             ParamAdd(m_Info.Condition, "NormalColor", "112,115,123");
  1490.                             ParamAdd(m_Info.Condition, "EnableColor", "176,185,205");
  1491.                             EndItem();
  1492.                         }
  1493.                     }
  1494.                 }          
  1495.        
  1496.                 //셋트효과
  1497.                 strTmp = class'UIDATA_ITEM'.static.GetSetItemEffectDescription(Item.ID, idx);
  1498.                 if (Len(strTmp)>0)
  1499.                 {
  1500.                     bLargeWidth = true;
  1501.                    
  1502.                     StartItem();
  1503.                     m_Info.eType = DIT_TEXT;
  1504.                     m_Info.nOffSetY = 6;
  1505.                     m_Info.bLineBreak = true;
  1506.                     m_Info.t_color.R = 128;
  1507.                     m_Info.t_color.G = 127;
  1508.                     m_Info.t_color.B = 103;
  1509.                     m_Info.t_color.A = 255;
  1510.                     m_Info.t_strText = strTmp;
  1511.                     ParamAdd(m_Info.Condition, "Type", "SetEffect");
  1512.                     ParamAddItemID(m_Info.Condition, Item.ID);
  1513.                     ParamAdd(m_Info.Condition, "EffectID", String(idx));
  1514.                     ParamAdd(m_Info.Condition, "NormalColor", "128,127,103");
  1515.                     ParamAdd(m_Info.Condition, "EnableColor", "183,178,122");
  1516.                     EndItem(); 
  1517.                 }
  1518.             }
  1519.             //인첸트 셋트효과
  1520.             strTmp = class'UIDATA_ITEM'.static.GetSetItemEnchantEffectDescription(Item.ID);
  1521.             if (Len(strTmp)>0)
  1522.             {
  1523.                 bLargeWidth = true;
  1524.                
  1525.                 StartItem();
  1526.                 m_Info.eType = DIT_TEXT;
  1527.                 m_Info.nOffSetY = 6;
  1528.                 m_Info.bLineBreak = true;
  1529.                 m_Info.t_color.R = 74;
  1530.                 m_Info.t_color.G = 92;
  1531.                 m_Info.t_color.B = 104;
  1532.                 m_Info.t_color.A = 255;
  1533.                 m_Info.t_strText = strTmp;
  1534.                 ParamAdd(m_Info.Condition, "Type", "EnchantEffect");
  1535.                 ParamAddItemID(m_Info.Condition, Item.ID);
  1536.                 ParamAdd(m_Info.Condition, "NormalColor", "74,92,104");
  1537.                 ParamAdd(m_Info.Condition, "EnableColor", "111,146,169");
  1538.                 EndItem();
  1539.                 AddTooltipItemBlank(3);
  1540.             }
  1541.         }
  1542.        
  1543.         //퀘스트 정보를 표시한다.
  1544.         AddTooltipItemQuestList(Item);
  1545.        
  1546.         // 속성 게이지를 그려준다.
  1547.         AddTooltipItemAttributeGage(Item);
  1548.        
  1549.         // 기간제 아이템
  1550.         if ( Item.CurrentPeriod > 0)
  1551.         {
  1552.             //빈공간
  1553.             AddTooltipItemBlank(12);
  1554.            
  1555.             //<기간제 아이템>
  1556.             AddTooltipItemOption(1739, "", true, false, false);
  1557.             SetTooltipItemColor(255, 255, 255, 0);
  1558.            
  1559.             StartItem();
  1560.             m_Info.eType = DIT_TEXT;
  1561.             m_Info.nOffSetY = 6;
  1562.             m_Info.bLineBreak = true;
  1563.             m_Info.t_bDrawOneLine = true;
  1564.             m_Info.t_color.R = 163;
  1565.             m_Info.t_color.G = 163;
  1566.             m_Info.t_color.B = 163;
  1567.             m_Info.t_color.A = 255;
  1568.             m_Info.t_ID = 1199;
  1569.             EndItem();
  1570.            
  1571.             StartItem();
  1572.             m_Info.eType = DIT_TEXT;
  1573.             m_Info.nOffSetY = 6;
  1574.             m_Info.t_bDrawOneLine = true;
  1575.             m_Info.t_color.R = 163;
  1576.             m_Info.t_color.G = 163;
  1577.             m_Info.t_color.B = 163;
  1578.             m_Info.t_color.A = 255;
  1579.             m_Info.t_strText = " : ";
  1580.             EndItem();
  1581.            
  1582.             StartItem();
  1583.             m_Info.eType = DIT_TEXT;
  1584.             m_Info.nOffSetY = 6;
  1585.             m_Info.bLineBreak = true;
  1586.             m_Info.t_color.R = 178;
  1587.             m_Info.t_color.G = 190;
  1588.             m_Info.t_color.B = 207;
  1589.             m_Info.t_color.A = 255;
  1590.             m_Info.t_strText = "" $ MakeTimeStr(Item.CurrentPeriod);
  1591.             ParamAdd(m_Info.Condition, "Type", "PeriodTime");
  1592.             EndItem();
  1593.         }
  1594.     }
  1595.     else
  1596.     {
  1597.         return;
  1598.     }
  1599.    
  1600.     if (bLargeWidth)
  1601.         m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
  1602.  
  1603.     if(TooltipType == "InventoryPawnViewer")                // PawnViewer용 추가 - lancelot 2007. 10. 16.
  1604.     {
  1605.         StartItem();
  1606.         m_Info.eType = DIT_TEXT;
  1607.         m_Info.nOffSetY = 6;
  1608.         m_Info.t_bDrawOneLine = true;
  1609.         m_Info.bLineBreak = true;
  1610.         m_Info.t_strText ="ID : "$string(Item.Id.classID);
  1611.         EndItem();
  1612.     }
  1613.  
  1614.     AddTooltipToBuilderPC(Item);
  1615.    
  1616.     ReturnTooltipInfo(m_Tooltip);
  1617. }
  1618.  
  1619. function AddTooltipToBuilderPC(ItemInfo Item)
  1620. {
  1621.     if (!IsBuilderPC())
  1622.         return;
  1623.  
  1624.     StartItem();
  1625.     m_Info.eType = DIT_BLANK;
  1626.     m_Info.b_nHeight = 8;
  1627.     EndItem();
  1628.    
  1629.     StartItem();
  1630.     m_Info.eType = DIT_TEXTURE;
  1631.     m_Info.nOffSetX = 2;
  1632.     m_Info.nOffSetY = 0;
  1633.     m_Info.t_bDrawOneLine = true;
  1634.     m_Info.bLineBreak = true;
  1635.     m_Info.u_nTextureWidth = 16;
  1636.     m_Info.u_nTextureHeight = 16;
  1637.     m_Info.u_nTextureUWidth = 16;
  1638.     m_Info.u_nTextureUHeight = 16;
  1639.     m_Info.u_strTexture = "PrologCustomIcons.ItemID";
  1640.     EndItem();
  1641.    
  1642.     StartItem();
  1643.     m_Info.eType = DIT_TEXT;
  1644.     m_Info.nOffSetX = 6;
  1645.     m_Info.nOffSetY = 2;
  1646.     m_Info.t_color.R = 178;
  1647.     m_Info.t_color.G = 190;
  1648.     m_Info.t_color.B = 207;
  1649.     m_Info.t_color.A = 255;
  1650.     m_Info.t_strText = String(Item.ID.ClassID);
  1651.     EndItem();
  1652. }
  1653. /////////////////////////////////////////////////////////////////////////////////
  1654. // ACTION
  1655. function ReturnTooltip_NTT_ACTION(string param, ETooltipSourceType eSourceType)
  1656. {
  1657.     local ItemInfo Item;
  1658.     local ItemInfo TheItemInfo;
  1659.     local MacroInfo TheMacroInfo;
  1660.     local int i;
  1661.    
  1662.     if (eSourceType == NTST_ITEM)
  1663.     {
  1664.         ParseString( param, "Name", Item.Name);
  1665.         ParseString( param, "Description", Item.Description);
  1666.         ParamToItemInfo(param, TheItemInfo);
  1667.        
  1668.         //액션 이름
  1669.         StartItem();
  1670.         m_Info.eType = DIT_TEXT;
  1671.         m_Info.t_bDrawOneLine = true;
  1672.         m_Info.t_strText = Item.Name;
  1673.         m_Info.t_color.R = 202;
  1674.         m_Info.t_color.G = 174;
  1675.         m_Info.t_color.B = 115;
  1676.         m_Info.t_color.A = 255;
  1677.         EndItem();
  1678.        
  1679.         //액션 설명
  1680.         if (Len(Item.Description)>0)
  1681.         {
  1682.             m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
  1683.            
  1684.             StartItem();
  1685.             m_Info.eType = DIT_TEXT;
  1686.             m_Info.nOffSetY = 6;
  1687.             m_Info.t_bDrawOneLine = false;
  1688.             m_Info.bLineBreak = true;
  1689.             m_Info.t_color.R = 178;
  1690.             m_Info.t_color.G = 190;
  1691.             m_Info.t_color.B = 207;
  1692.             m_Info.t_color.A = 255;
  1693.             m_Info.t_strText = Item.Description;
  1694.             EndItem();
  1695.         }
  1696.  
  1697.         if( class'UIDATA_MACRO'.static.GetMacroInfo(TheItemInfo.ID, TheMacroInfo) )
  1698.         {
  1699.             for( i=0; i<12; i++ )
  1700.             {  
  1701.                 if( TheMacroInfo.CommandList[i] == "" )
  1702.                     break;
  1703.  
  1704.                 StartItem();
  1705.                 m_Info.eType = DIT_TEXT;
  1706.                 m_Info.t_bDrawOneLine = true;
  1707.                 m_Info.bLineBreak = true;
  1708.                 m_Info.t_strText = TheMacroInfo.CommandList[i];
  1709.                 m_Info.t_color.R =169;
  1710.                 m_Info.t_color.G =149;
  1711.                 m_Info.t_color.B =117;
  1712.                 m_Info.t_color.A =255;
  1713.                 EndItem();
  1714.             }
  1715.         }
  1716.     }      
  1717.     else
  1718.     {
  1719.         return;
  1720.     }
  1721.        
  1722.     ReturnTooltipInfo(m_Tooltip);
  1723. }
  1724.  
  1725. /////////////////////////////////////////////////////////////////////////////////
  1726. // SKILL
  1727. function ReturnTooltip_NTT_SKILL(string param, ETooltipSourceType eSourceType)
  1728. {
  1729.    
  1730.     local ItemInfo Item;
  1731.    
  1732.     local EItemParamType eItemParamType;
  1733.     local EShortCutItemType eShortCutType;
  1734.     local int nTmp;
  1735.     local int SkillLevel;
  1736.    
  1737.     debug("툴팁들어오나");
  1738.     if (eSourceType == NTST_ITEM)
  1739.     {
  1740.         ParseItemID( param, Item.ID );
  1741.         ParseString( param, "Name", Item.Name);
  1742.         ParseString( param, "AdditionalName", Item.AdditionalName);
  1743.         ParseString( param, "Description", Item.Description);
  1744.         ParseInt( param, "Level", Item.Level);
  1745.        
  1746.         eShortCutType = EShortCutItemType(Item.ItemSubType);
  1747.         eItemParamType = EItemParamType(Item.ItemType);
  1748.         SkillLevel = Item.Level;
  1749.        
  1750.         m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
  1751.        
  1752.         //아이템 이름
  1753.         StartItem();
  1754.         m_Info.eType = DIT_TEXT;
  1755.         m_Info.t_bDrawOneLine = true;
  1756.         m_Info.t_strText = Item.Name;
  1757.         EndItem();
  1758.        
  1759.         // 인챈트시 변환된 레벨을 원래 레벨로 변환시켜준다.
  1760.         if (Len(Item.AdditionalName)>0)
  1761.         {          
  1762.             SkillLevel = class'UIDATA_SKILL'.static.GetEnchantSkillLevel( Item.ID, Item.Level );
  1763.         }
  1764.        
  1765.         //ex) " Lv "
  1766.         StartItem();
  1767.         m_Info.eType = DIT_TEXT;
  1768.         m_Info.t_bDrawOneLine = true;
  1769.         m_Info.t_strText = " ";
  1770.         EndItem();
  1771.        
  1772.         StartItem();
  1773.         m_Info.eType = DIT_TEXT;
  1774.         m_Info.t_bDrawOneLine = true;
  1775.         m_Info.t_color.R = 163;
  1776.         m_Info.t_color.G = 163;
  1777.         m_Info.t_color.B = 163;
  1778.         m_Info.t_color.A = 255;
  1779.         m_Info.t_ID = 88;
  1780.         EndItem();
  1781.        
  1782.         //스킬 레빌
  1783.         StartItem();
  1784.         m_Info.eType = DIT_TEXT;
  1785.         m_Info.t_bDrawOneLine = true;
  1786.         m_Info.t_color.R = 176;
  1787.         m_Info.t_color.G = 155;
  1788.         m_Info.t_color.B = 121;
  1789.         m_Info.t_color.A = 255;
  1790.         m_Info.t_strText = " " $ SkillLevel;
  1791.         EndItem();
  1792.        
  1793.         // 인챈트 내용을 뿌려주는 곳은 이곳
  1794.         if (Len(Item.AdditionalName)>0)
  1795.         {
  1796.             StartItem();
  1797.             m_Info.eType = DIT_TEXT;
  1798.             m_Info.nOffSetX = 5;
  1799.             m_Info.t_bDrawOneLine = true;
  1800.             m_Info.t_color.R = 255;
  1801.             m_Info.t_color.G = 217;
  1802.             m_Info.t_color.B = 105;
  1803.             m_Info.t_color.A = 255;
  1804.             m_Info.t_strText = Item.AdditionalName;
  1805.             EndItem();
  1806.         }
  1807.        
  1808.         //Operate Type
  1809.         StartItem();
  1810.         m_Info.eType = DIT_TEXT;
  1811.         m_Info.nOffSetY = 6;
  1812.         m_Info.bLineBreak = true;
  1813.         m_Info.t_bDrawOneLine = true;
  1814.         m_Info.t_color.R = 176;
  1815.         m_Info.t_color.G = 155;
  1816.         m_Info.t_color.B = 121;
  1817.         m_Info.t_color.A = 255;
  1818.         m_Info.t_strText = class'UIDATA_SKILL'.static.GetOperateType( Item.ID, Item.Level );
  1819.         EndItem();
  1820.        
  1821.         //소모HP
  1822.         nTmp = class'UIDATA_SKILL'.static.GetHpConsume( Item.ID, Item.Level );
  1823.         if (nTmp>0)
  1824.         {
  1825.             AddTooltipItemOption(1195, String(nTmp), true, true, false);
  1826.         }
  1827.        
  1828.         //소모MP
  1829.         nTmp = class'UIDATA_SKILL'.static.GetMpConsume( Item.ID, Item.Level );
  1830.         if (nTmp>0)
  1831.         {
  1832.             AddTooltipItemOption(320, String(nTmp), true, true, false);
  1833.         }
  1834.        
  1835.         //유효거리
  1836.         nTmp = class'UIDATA_SKILL'.static.GetCastRange( Item.ID, Item.Level );
  1837.         if (nTmp>=0)
  1838.         {
  1839.             AddTooltipItemOption(321, String(nTmp), true, true, false);
  1840.         }
  1841.        
  1842.         //설명
  1843.         if (Len(Item.Description)>0)
  1844.         {
  1845.             StartItem();
  1846.             m_Info.eType = DIT_TEXT;
  1847.             m_Info.nOffSetY = 6;
  1848.             m_Info.bLineBreak = true;
  1849.             m_Info.t_color.R = 178;
  1850.             m_Info.t_color.G = 190;
  1851.             m_Info.t_color.B = 207;
  1852.             m_Info.t_color.A = 255;
  1853.             m_Info.t_strText = Item.Description;
  1854.             EndItem(); 
  1855.         }      
  1856.     }
  1857.     else
  1858.     {
  1859.         return;
  1860.     }
  1861.        
  1862.     ReturnTooltipInfo(m_Tooltip);
  1863. }
  1864.  
  1865. /////////////////////////////////////////////////////////////////////////////////
  1866. // ABNORMALSTATUS
  1867. function ReturnTooltip_NTT_ABNORMALSTATUS(string param, ETooltipSourceType eSourceType)
  1868. {
  1869.     local ItemInfo Item;
  1870.     local int ShowLevel;
  1871.    
  1872.     local EItemParamType eItemParamType;
  1873.     local EShortCutItemType eShortCutType;
  1874.    
  1875.     if (eSourceType == NTST_ITEM)
  1876.     {
  1877.         ParseItemID( param, Item.ID );
  1878.         ParseString( param, "Name", Item.Name);
  1879.         ParseString( param, "AdditionalName", Item.AdditionalName);
  1880.         ParseString( param, "Description", Item.Description);
  1881.         ParseInt( param, "Level", Item.Level);
  1882.         ParseInt( param, "Reserved", Item.Reserved);
  1883.        
  1884.         eShortCutType = EShortCutItemType(Item.ItemSubType);
  1885.         eItemParamType = EItemParamType(Item.ItemType);
  1886.        
  1887.         m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
  1888.        
  1889.         //아이템 이름
  1890.         StartItem();
  1891.         m_Info.eType = DIT_TEXT;
  1892.         m_Info.t_bDrawOneLine = true;
  1893.         m_Info.t_strText = Item.Name;
  1894.         EndItem();
  1895.        
  1896.         ShowLevel = Item.Level;
  1897.         if (Len(Item.AdditionalName)>0)
  1898.         {
  1899.             StartItem();
  1900.             m_Info.eType = DIT_TEXT;
  1901.             m_Info.nOffSetX = 5;
  1902.             m_Info.t_bDrawOneLine = true;
  1903.             m_Info.t_color.R = 255;
  1904.             m_Info.t_color.G = 217;
  1905.             m_Info.t_color.B = 105;
  1906.             m_Info.t_color.A = 255;
  1907.             m_Info.t_strText = Item.AdditionalName;
  1908.             EndItem();
  1909.            
  1910.             ShowLevel = class'UIDATA_SKILL'.static.GetEnchantSkillLevel( Item.ID, Item.Level );
  1911.         }
  1912.        
  1913.         //ex) " Lv "
  1914.         StartItem();
  1915.         m_Info.eType = DIT_TEXT;
  1916.         m_Info.t_bDrawOneLine = true;
  1917.         m_Info.t_strText = " ";
  1918.         EndItem();
  1919.        
  1920.         StartItem();
  1921.         m_Info.eType = DIT_TEXT;
  1922.         m_Info.t_bDrawOneLine = true;
  1923.         m_Info.t_color.R = 163;
  1924.         m_Info.t_color.G = 163;
  1925.         m_Info.t_color.B = 163;
  1926.         m_Info.t_color.A = 255;
  1927.         m_Info.t_ID = 88;
  1928.         EndItem();
  1929.        
  1930.         //스킬 레벨
  1931.         StartItem();
  1932.         m_Info.eType = DIT_TEXT;
  1933.         m_Info.t_bDrawOneLine = true;
  1934.         m_Info.t_color.R = 176;
  1935.         m_Info.t_color.G = 155;
  1936.         m_Info.t_color.B = 121;
  1937.         m_Info.t_color.A = 255;
  1938.         m_Info.t_strText = " " $ ShowLevel;
  1939.         EndItem();
  1940.        
  1941.         //남은시간
  1942.         if (!IsDeBuff(Item.ID, Item.Level) && Item.Reserved>=0)
  1943.         {
  1944.             StartItem();
  1945.             m_Info.eType = DIT_TEXT;
  1946.             m_Info.nOffSetY = 6;
  1947.             m_Info.bLineBreak = true;
  1948.             m_Info.t_bDrawOneLine = true;
  1949.             m_Info.t_color.R = 163;
  1950.             m_Info.t_color.G = 163;
  1951.             m_Info.t_color.B = 163;
  1952.             m_Info.t_color.A = 255;
  1953.             m_Info.t_ID = 1199;
  1954.             EndItem();
  1955.            
  1956.             StartItem();
  1957.             m_Info.eType = DIT_TEXT;
  1958.             m_Info.nOffSetY = 6;
  1959.             m_Info.t_bDrawOneLine = true;
  1960.             m_Info.t_color.R = 163;
  1961.             m_Info.t_color.G = 163;
  1962.             m_Info.t_color.B = 163;
  1963.             m_Info.t_color.A = 255;
  1964.             m_Info.t_strText = " : ";
  1965.             EndItem();
  1966.            
  1967.             StartItem();
  1968.             m_Info.eType = DIT_TEXT;
  1969.             m_Info.nOffSetY = 6;
  1970.             m_Info.t_bDrawOneLine = true;
  1971.             m_Info.t_color.R = 176;
  1972.             m_Info.t_color.G = 155;
  1973.             m_Info.t_color.B = 121;
  1974.             m_Info.t_color.A = 255;
  1975.             m_Info.t_strText = MakeBuffTimeStr(Item.Reserved);
  1976.             ParamAdd(m_Info.Condition, "Type", "RemainTime");
  1977.             EndItem();
  1978.         }
  1979.        
  1980.         //설명
  1981.         if (Len(Item.Description)>0)
  1982.         {
  1983.             StartItem();
  1984.             m_Info.eType = DIT_TEXT;
  1985.             m_Info.nOffSetY = 6;
  1986.             m_Info.bLineBreak = true;
  1987.             m_Info.t_color.R = 178;
  1988.             m_Info.t_color.G = 190;
  1989.             m_Info.t_color.B = 207;
  1990.             m_Info.t_color.A = 255;
  1991.             m_Info.t_strText = Item.Description;
  1992.             EndItem(); 
  1993.         }      
  1994.     }
  1995.     else
  1996.     {
  1997.         return;
  1998.     }
  1999.        
  2000.     ReturnTooltipInfo(m_Tooltip);
  2001. }
  2002.  
  2003. /////////////////////////////////////////////////////////////////////////////////
  2004. // NORMALITEM
  2005. function ReturnTooltip_NTT_NORMALITEM(string param, ETooltipSourceType eSourceType)
  2006. {
  2007.     local ItemInfo Item;
  2008.    
  2009.     if (eSourceType == NTST_ITEM)
  2010.     {
  2011.         ParseString( param, "Name", Item.Name);
  2012.         ParseString( param, "Description", Item.Description);
  2013.         ParseString( param, "AdditionalName", Item.AdditionalName);
  2014.         ParseInt( param, "CrystalType", Item.CrystalType);
  2015.        
  2016.         //아이템 이름
  2017.         AddTooltipItemName(Item.Name, Item, 1);
  2018.        
  2019.         //Grade Mark
  2020.         AddTooltipItemGrade(Item);
  2021.        
  2022.         //설명
  2023.         if (Len(Item.Description)>0)
  2024.         {
  2025.             m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
  2026.            
  2027.             StartItem();
  2028.             m_Info.eType = DIT_TEXT;
  2029.             m_Info.nOffSetY = 6;
  2030.             m_Info.bLineBreak = true;
  2031.             m_Info.t_color.R = 178;
  2032.             m_Info.t_color.G = 190;
  2033.             m_Info.t_color.B = 207;
  2034.             m_Info.t_color.A = 255;
  2035.             m_Info.t_strText = Item.Description;
  2036.             EndItem(); 
  2037.         }      
  2038.     }
  2039.     else
  2040.     {
  2041.         return;
  2042.     }
  2043.        
  2044.     ReturnTooltipInfo(m_Tooltip);
  2045. }
  2046.  
  2047. /////////////////////////////////////////////////////////////////////////////////
  2048. // RECIPE
  2049. function ReturnTooltip_NTT_RECIPE(string param, ETooltipSourceType eSourceType, bool bShowPrice)
  2050. {
  2051.     local ItemInfo Item;
  2052.    
  2053.     local string strAdena;
  2054.     local string strAdenaComma;
  2055.     local color  AdenaColor;
  2056.    
  2057.     if (eSourceType == NTST_ITEM)
  2058.     {
  2059.         ParseString( param, "Name", Item.Name);
  2060.         ParseString( param, "Description", Item.Description);
  2061.         ParseString( param, "AdditionalName", Item.AdditionalName);
  2062.         ParseInt( param, "CrystalType", Item.CrystalType);
  2063.         ParseInt( param, "Weight", Item.Weight);
  2064.         ParseINT64( param, "Price", Item.Price);
  2065.        
  2066.         //아이템 이름
  2067.         AddTooltipItemName(Item.Name, Item, 1);
  2068.        
  2069.         //Grade Mark
  2070.         AddTooltipItemGrade(Item);
  2071.        
  2072.         //가격
  2073.         if (bShowPrice)
  2074.         {
  2075.             strAdena = Int64ToString(Item.Price);
  2076.             strAdenaComma = MakeCostString(strAdena);
  2077.             AdenaColor = GetNumericColor(strAdenaComma);
  2078.            
  2079.             //가격 : xxx,xxx,xxx
  2080.             AddTooltipItemOption(641, strAdenaComma $ " ", true, true, false);
  2081.             SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
  2082.            
  2083.             //"아데나"
  2084.             StartItem();
  2085.             m_Info.eType = DIT_TEXT;
  2086.             m_Info.nOffSetY = 6;
  2087.             m_Info.t_bDrawOneLine = true;
  2088.             m_Info.t_color = AdenaColor;
  2089.             m_Info.t_ID= 469;
  2090.             EndItem();
  2091.            
  2092.             //읽어주기 스트링
  2093.             AddTooltipItemOption(0, "(" $ ConvertNumToText(strAdena) $ ")", false, true, false);
  2094.             SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
  2095.         }
  2096.        
  2097.         //Weight
  2098.         AddTooltipItemOption(52, String(Item.Weight), true, true, false);
  2099.        
  2100.         //설명
  2101.         if (Len(Item.Description)>0)
  2102.         {
  2103.             m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
  2104.            
  2105.             StartItem();
  2106.             m_Info.eType = DIT_TEXT;
  2107.             m_Info.nOffSetY = 6;
  2108.             m_Info.bLineBreak = true;
  2109.             m_Info.t_color.R = 178;
  2110.             m_Info.t_color.G = 190;
  2111.             m_Info.t_color.B = 207;
  2112.             m_Info.t_color.A = 255;
  2113.             m_Info.t_strText = Item.Description;
  2114.             EndItem(); 
  2115.         }      
  2116.     }
  2117.     else
  2118.     {
  2119.         return;
  2120.     }
  2121.        
  2122.     ReturnTooltipInfo(m_Tooltip);
  2123. }
  2124.  
  2125. /////////////////////////////////////////////////////////////////////////////////
  2126. // SHORTCUT
  2127. function ReturnTooltip_NTT_SHORTCUT(string param, ETooltipSourceType eSourceType)
  2128. {
  2129.     local ItemInfo Item;
  2130.    
  2131.     local EItemParamType eItemParamType;
  2132.     local EShortCutItemType eShortCutType;
  2133.     local string ItemName;
  2134.     local ShortcutCommandItem commandItem;
  2135.     local int shortcutID;
  2136.     local string strShort;
  2137.     local int i;
  2138.     local ItemInfo TheItemInfo;
  2139.     local MacroInfo TheMacroInfo;
  2140.  
  2141.     local ShortcutAssignWnd Script;
  2142.  
  2143.  
  2144.     Script = ShortcutAssignWnd( GetScript( "OptionWnd.ShortcutTab" ) );
  2145.  
  2146.     strShort = "<" $ GetSystemString(1523) $ ": ";
  2147.    
  2148.     if (eSourceType == NTST_ITEM)
  2149.     {  
  2150.         if( BoolSelect )
  2151.         {
  2152.             ParseInt( param, "ItemSubType", Item.ItemSubType);
  2153.             ParseString( param, "Name", Item.Name);
  2154.             ParseInt( param, "RefineryOp1", Item.RefineryOp1);
  2155.             ParseInt( param, "RefineryOp2", Item.RefineryOp2);
  2156.             eShortCutType = EShortCutItemType(Item.ItemSubType);
  2157.             //아이템 이름 취득
  2158.             ItemName = class'UIDATA_ITEM'.static.GetRefineryItemName( Item.Name, Item.RefineryOp1, Item.RefineryOp2 );
  2159.             switch (eShortCutType)
  2160.             {
  2161.             case SCIT_ITEM:
  2162.                 ReturnTooltip_NTT_ITEM(param, "inventory", eSourceType);
  2163.                 break;
  2164.             case SCIT_SKILL:           
  2165.                 ReturnTooltip_NTT_SKILL(param, eSourceType);
  2166.                 break;
  2167.             case SCIT_ACTION:
  2168.             case SCIT_MACRO:
  2169.                 if (eSourceType == NTST_ITEM)
  2170.                 {
  2171.                     ParseString( param, "Name", Item.Name);
  2172.                     ParseString( param, "Description", Item.Description);
  2173.                     ParamToItemInfo(param, TheItemInfo);
  2174.                    
  2175.                     m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
  2176.  
  2177.                     //액션 이름
  2178.                     StartItem();
  2179.                     m_Info.eType = DIT_TEXT;
  2180.                     m_Info.t_bDrawOneLine = true;
  2181.                     m_Info.t_strText = Item.Name;
  2182.                     m_Info.t_color.R =202;
  2183.                     m_Info.t_color.G =174;
  2184.                     m_Info.t_color.B =115;
  2185.                     m_Info.t_color.A =255;
  2186.                     EndItem();
  2187.                    
  2188.                     //액션 설명
  2189.  
  2190.                  if( class'UIDATA_MACRO'.static.GetMacroInfo(TheItemInfo.ID, TheMacroInfo) )
  2191.                  {
  2192.                     for( i=0; i<12; i++ )
  2193.                     {  
  2194.                         if( TheMacroInfo.CommandList[i] == "" )
  2195.                             break;
  2196.  
  2197.                         StartItem();
  2198.                         m_Info.eType = DIT_TEXT;
  2199.                         m_Info.t_bDrawOneLine = true;
  2200.                         m_Info.bLineBreak = true;
  2201.                         m_Info.t_strText = TheMacroInfo.CommandList[i];
  2202.                         m_Info.t_color.R =169;
  2203.                         m_Info.t_color.G =149;
  2204.                         m_Info.t_color.B =117;
  2205.                         m_Info.t_color.A =255;
  2206.                         EndItem();
  2207.                     }
  2208.                  }
  2209.                 }
  2210.                 else
  2211.                 {
  2212.                     return;
  2213.                 }
  2214.                    
  2215.                 ReturnTooltipInfo(m_Tooltip);
  2216.                 break;
  2217.             case SCIT_RECIPE:
  2218.             case SCIT_BOOKMARK:
  2219.                 //아이템 이름
  2220.                 m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
  2221.                 StartItem();
  2222.                 m_Info.eType = DIT_TEXT;
  2223.                 //m_Info.bLineBreak = true;
  2224.                 m_Info.t_bDrawOneLine = true;
  2225.                 m_Info.t_strText = ItemName;
  2226.                 EndItem();
  2227.                 break;
  2228.             default:
  2229.                 break;
  2230.             }
  2231.             ParseINT(param, "ShortcutID", shortcutID);
  2232.             if( GetOptionBool( "Game", "EnterChatting" ) )
  2233.             {
  2234.                 class'ShortcutAPI'.static.GetAssignedKeyFromCommand("TempStateShortcut", "UseShortcutItem Num=" $ shortcutID, commandItem);
  2235.             }
  2236.             else
  2237.             {
  2238.                 class'ShortcutAPI'.static.GetAssignedKeyFromCommand("GamingStateShortcut", "UseShortcutItem Num=" $ shortcutID, commandItem);
  2239.             }
  2240.            
  2241.            
  2242.             //단축키 설명...
  2243.             if( commandItem.subkey1 != "" )
  2244.             {
  2245.                 strShort = strShort $ Script.GetUserReadableKeyName( commandItem.subkey1 ) $ "+";
  2246.             }
  2247.             if( commandItem.subkey2 != "" )
  2248.             {
  2249.                 strShort = strShort $ Script.GetUserReadableKeyName( commandItem.subkey2 ) $ "+";
  2250.             }
  2251.             if( commandItem.Key != "" )
  2252.             {
  2253.                 strShort = strShort $ Script.GetUserReadableKeyName( commandItem.Key ) $ ">";
  2254.             }
  2255.  
  2256.             if( commandItem.subkey1 == "" && commandItem.subkey2 == "" && commandItem.Key == "" )
  2257.             {
  2258.                 strShort = strShort $ GetSystemString(27) $">";
  2259.             }
  2260.            
  2261.             //줄추가~
  2262.             AddTooltipItemBlank(2);    
  2263.  
  2264.             StartItem();
  2265.             m_Info.eType = DIT_SPLITLINE;
  2266.             m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;        
  2267.             m_Info.u_nTextureHeight = 1;
  2268.             m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
  2269.             EndItem();
  2270.  
  2271.             if( ItemName != "" )
  2272.             {
  2273.                 AddTooltipItemBlank(5);
  2274.                
  2275.                 StartItem();
  2276.                 m_Info.eType = DIT_TEXT;
  2277.                 m_Info.t_strText = strShort;
  2278.                 EndItem();
  2279.                
  2280.                 AddTooltipItemBlank(4);
  2281.                
  2282.                 ReturnTooltipInfo(m_Tooltip);              
  2283.             }
  2284.             return;
  2285.         }
  2286.         else
  2287.         {
  2288.             ParseItemID( param, Item.ID );
  2289.             ParseString( param, "Name", Item.Name);
  2290.             ParseString( param, "AdditionalName", Item.AdditionalName);
  2291.             ParseInt( param, "Level", Item.Level);
  2292.             ParseInt( param, "Reserved", Item.Reserved);
  2293.             ParseInt( param, "Enchanted", Item.Enchanted);
  2294.             ParseInt( param, "ItemType", Item.ItemType);
  2295.             ParseInt( param, "ItemSubType", Item.ItemSubType);
  2296.             ParseInt( param, "CrystalType", Item.CrystalType);
  2297.             ParseInt( param, "ConsumeType", Item.ConsumeType);
  2298.             ParseInt( param, "RefineryOp1", Item.RefineryOp1);
  2299.             ParseInt( param, "RefineryOp2", Item.RefineryOp2);
  2300.             ParseINT64( param, "ItemNum", Item.ItemNum);
  2301.             ParseInt( param, "MpConsume", Item.MpConsume);
  2302.             //branch
  2303.             ParseInt ( param, "IsBRPremium", Item.IsBRPremium);
  2304.             //end of branch
  2305.  
  2306.             eShortCutType = EShortCutItemType(Item.ItemSubType);
  2307.             eItemParamType = EItemParamType(Item.ItemType);
  2308.  
  2309.             //아이템 이름 취득
  2310.             ItemName = class'UIDATA_ITEM'.static.GetRefineryItemName( Item.Name, Item.RefineryOp1, Item.RefineryOp2 );
  2311.  
  2312.             switch (eShortCutType)
  2313.             {
  2314.             case SCIT_ITEM:
  2315.                 //branch
  2316.                 AddPrimeItemSymbol(Item);
  2317.                 //end of branch
  2318.                 //인첸트 ex) "+10"
  2319.                 AddTooltipItemEnchant(Item);
  2320.  
  2321.                 //아이템 이름
  2322.                 AddTooltipItemName(ItemName, Item, 1);
  2323.  
  2324.                 //Grade Mark
  2325.                 AddTooltipItemGrade(Item);
  2326.  
  2327.                 //아이템 갯수
  2328.                 AddTooltipItemCount(Item);
  2329.                 break;
  2330.             case SCIT_SKILL:           
  2331.                 //아이템 이름
  2332.                 StartItem();
  2333.                 m_Info.eType = DIT_TEXT;
  2334.                 m_Info.t_bDrawOneLine = true;
  2335.                 m_Info.t_strText = ItemName;
  2336.                 EndItem();
  2337.  
  2338.                 if (Len(Item.AdditionalName)>0)
  2339.                 {
  2340.                     StartItem();
  2341.                     m_Info.eType = DIT_TEXT;
  2342.                     m_Info.nOffSetX = 5;
  2343.                     m_Info.t_bDrawOneLine = true;
  2344.                     m_Info.t_color.R = 255;
  2345.                     m_Info.t_color.G = 217;
  2346.                     m_Info.t_color.B = 105;
  2347.                     m_Info.t_color.A = 255;
  2348.                     m_Info.t_strText = Item.AdditionalName;
  2349.                     EndItem();
  2350.  
  2351.                     Item.Level = class'UIDATA_SKILL'.static.GetEnchantSkillLevel( Item.ID, Item.Level );
  2352.                 }
  2353.  
  2354.                 //ex) " Lv "
  2355.                 StartItem();
  2356.                 m_Info.eType = DIT_TEXT;
  2357.                 m_Info.t_bDrawOneLine = true;
  2358.                 m_Info.t_strText = " ";
  2359.                 EndItem();
  2360.  
  2361.                 StartItem();
  2362.                 m_Info.eType = DIT_TEXT;
  2363.                 m_Info.t_bDrawOneLine = true;
  2364.                 m_Info.t_color.R = 163;
  2365.                 m_Info.t_color.G = 163;
  2366.                 m_Info.t_color.B = 163;
  2367.                 m_Info.t_color.A = 255;
  2368.                 m_Info.t_ID = 88;
  2369.                 EndItem();
  2370.  
  2371.                 //스킬 레빌
  2372.                 StartItem();
  2373.                 m_Info.eType = DIT_TEXT;
  2374.                 m_Info.t_bDrawOneLine = true;
  2375.                 m_Info.t_color.R = 176;
  2376.                 m_Info.t_color.G = 155;
  2377.                 m_Info.t_color.B = 121;
  2378.                 m_Info.t_color.A = 255;
  2379.                 m_Info.t_strText = " " $ Item.Level;
  2380.                 EndItem();
  2381.  
  2382.                 //MP소모량
  2383.                 StartItem();
  2384.                 m_Info.eType = DIT_TEXT;
  2385.                 m_Info.t_bDrawOneLine = true;
  2386.                 m_Info.t_strText = " (";
  2387.                 EndItem();
  2388.  
  2389.                 StartItem();
  2390.                 m_Info.eType = DIT_TEXT;
  2391.                 m_Info.t_bDrawOneLine = true;
  2392.                 m_Info.t_ID = 91;
  2393.                 EndItem();
  2394.  
  2395.                 StartItem();
  2396.                 m_Info.eType = DIT_TEXT;
  2397.                 m_Info.t_bDrawOneLine = true;
  2398.                 m_Info.t_strText = ":" $ Item.MpConsume $ ")";
  2399.                 EndItem();
  2400.                 break;
  2401.  
  2402.             case SCIT_ACTION:
  2403.             case SCIT_MACRO:
  2404.             case SCIT_RECIPE:
  2405.             case SCIT_BOOKMARK:
  2406.                 //아이템 이름
  2407.                 StartItem();
  2408.                 m_Info.eType = DIT_TEXT;
  2409.                 m_Info.t_bDrawOneLine = true;
  2410.                 m_Info.t_strText = ItemName;
  2411.                 EndItem();
  2412.                 break;
  2413.             }
  2414.         }
  2415.     }
  2416.     else
  2417.     {
  2418.         return;
  2419.     }
  2420.        
  2421.     ReturnTooltipInfo(m_Tooltip);
  2422. }
  2423.  
  2424. /////////////////////////////////////////////////////////////////////////////////
  2425. // RECIPE_MANUFACTURE
  2426. function ReturnTooltip_NTT_RECIPE_MANUFACTURE(string param, ETooltipSourceType eSourceType)
  2427. {
  2428.     local ItemInfo Item;
  2429.    
  2430.     if (eSourceType == NTST_ITEM)
  2431.     {
  2432.         ParseString( param, "Name", Item.Name);
  2433.         ParseString( param, "Description", Item.Description);
  2434.         ParseString( param, "AdditionalName", Item.AdditionalName);
  2435.         ParseINT64( param, "Reserved64", Item.Reserved64);
  2436.         ParseInt( param, "CrystalType", Item.CrystalType);
  2437.         ParseINT64( param, "ItemNum", Item.ItemNum);
  2438.        
  2439.         m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
  2440.        
  2441.         //아이템 이름
  2442.         AddTooltipItemName(Item.Name, Item, 1);
  2443.        
  2444.         //Grade Mark
  2445.         AddTooltipItemGrade(Item);
  2446.        
  2447.         //ex) "필요수 : 2"
  2448.         AddTooltipItemOption(736, Int64ToString(Item.Reserved64), true, true, false);
  2449.        
  2450.         //ex) "보유수 : 0"
  2451.         AddTooltipItemOption(737, Int64ToString(Item.ItemNum), true, true, false);
  2452.        
  2453.         //설명
  2454.         if (Len(Item.Description)>0)
  2455.         {
  2456.             StartItem();
  2457.             m_Info.eType = DIT_TEXT;
  2458.             m_Info.nOffSetY = 6;
  2459.             m_Info.bLineBreak = true;
  2460.             m_Info.t_color.R = 178;
  2461.             m_Info.t_color.G = 190;
  2462.             m_Info.t_color.B = 207;
  2463.             m_Info.t_color.A = 255;
  2464.             m_Info.t_strText = Item.Description;
  2465.             EndItem(); 
  2466.         }
  2467.     }
  2468.     else
  2469.     {
  2470.         return;
  2471.     }
  2472.        
  2473.     ReturnTooltipInfo(m_Tooltip);
  2474. }
  2475.  
  2476. /////////////////////////////////////////////////////////////////////////////////
  2477. // PLEDGEINFO
  2478. function ReturnTooltip_NTT_CLANINFO(string param, ETooltipSourceType eSourceType)
  2479. {
  2480.     local LVDataRecord record;
  2481.    
  2482.     if (eSourceType == NTST_LIST)
  2483.     {
  2484.         ParamToRecord( param, record );
  2485.        
  2486.         //ex) "직업 : 엘븐메이지"
  2487.         AddTooltipItemOption(391, GetClassType(int(record.LVDataList[2].szData)), true, true, true);
  2488.     }
  2489.     else
  2490.     {
  2491.         return;
  2492.     }
  2493.        
  2494.     ReturnTooltipInfo(m_Tooltip);
  2495. }
  2496.  
  2497. //선준 수정(2010.03.30) 완료
  2498. function ReturnTooltip_NTT_POSTINFO(string param, ETooltipSourceType eSourceType)
  2499. {
  2500.     local LVDataRecord record;
  2501.    
  2502.     if (eSourceType == NTST_LIST)
  2503.     {
  2504.         ParamToRecord( param, record );
  2505.  
  2506.         //ex) "직업 : 엘븐메이지"
  2507.         AddTooltipItemOption(391, GetClassType(int(record.LVDataList[1].szData)), true, true, true);
  2508.     }
  2509.     else
  2510.     {
  2511.         return;
  2512.     }
  2513.        
  2514.     ReturnTooltipInfo(m_Tooltip);
  2515. }
  2516.  
  2517.  
  2518. //선준 수정(2010.02.22 ~ 03.08) 완료
  2519. /////////////////////////////////////////////////////////////////////////////////
  2520. // ROOMLIST
  2521. function ReturnTooltip_NTT_ROOMLIST(string param, ETooltipSourceType eSourceType)
  2522. {
  2523.     local int i;
  2524.     local LVDataRecord record;
  2525.     local int len;
  2526.    
  2527.     m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH + 40;
  2528.  
  2529.     if (eSourceType == NTST_LIST)
  2530.     {
  2531.         ParamToRecord( param, record );
  2532.        
  2533.         len = int( record.LVDataList[6].szData );
  2534.  
  2535.         for( i = 0 ; i < len ; i++ )
  2536.         {
  2537.             StartItem();
  2538.             m_Info.eType = DIT_TEXTURE;
  2539.             m_Info.u_nTextureWidth = 11;
  2540.             m_Info.u_nTextureHeight = 11;
  2541.             m_Info.u_strTexture = GetClassIconName( record.LVDataList[7 + i].nReserved1 );
  2542.             EndItem();
  2543.  
  2544.             StartItem();
  2545.             m_Info.eType = DIT_TEXT;
  2546.             m_Info.t_bDrawOneLine = false;
  2547.             m_Info.t_color.R = 163;
  2548.             m_Info.t_color.G = 163;
  2549.             m_Info.t_color.B = 163;
  2550.             m_Info.t_color.A = 255;
  2551.             m_Info.t_strText = " " $ record.LVDataList[7 + i].szData;
  2552.             EndItem();
  2553.             if( i != len - 1 )
  2554.             {
  2555.                 AddTooltipItemBlank(2);
  2556.             }
  2557.         }
  2558.  
  2559.         //ex) "직업 : 엘븐메이지"
  2560.         //AddTooltipItemOption(391, GetClassType(int(record.LVDataList[2].szData)), true, true, true);
  2561.     }
  2562.     else
  2563.     {
  2564.         return;
  2565.     }
  2566.  
  2567.     ReturnTooltipInfo(m_Tooltip);
  2568. }
  2569.  
  2570. /////////////////////////////////////////////////////////////////////////////////
  2571. // USERLIST
  2572. function ReturnTooltip_NTT_USERLIST(string param, ETooltipSourceType eSourceType)
  2573. {
  2574.     local LVDataRecord record;
  2575.    
  2576.     m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH + 80;
  2577.  
  2578.     if (eSourceType == NTST_LIST)
  2579.     {
  2580.         ParamToRecord( param, record );
  2581.        
  2582.         //ex) "직업 : 엘븐메이지"
  2583.         AddTooltipItemOption(391, GetClassType(int(record.LVDataList[1].szData)), true, true, true);
  2584.        
  2585.         AddTooltipItemBlank(0);
  2586.         //ex)귀속 지역 :
  2587.         StartItem();
  2588.         m_Info.eType = DIT_TEXT;
  2589.         m_Info.t_color.R = 163;
  2590.         m_Info.t_color.G = 163;
  2591.         m_Info.t_color.B = 163;
  2592.         m_Info.t_color.A = 255;
  2593.         m_Info.t_strText = GetSystemString( 2276 ) $ " : ";
  2594.         EndItem();
  2595.        
  2596.         //설명
  2597.         StartItem();
  2598.         m_Info.eType = DIT_TEXT;
  2599.         m_Info.t_color.R = 176;
  2600.         m_Info.t_color.G = 155;
  2601.         m_Info.t_color.B = 121;
  2602.         m_Info.t_color.A = 255;
  2603.         if( record.LVDataList[5].szData == "" )
  2604.         {          
  2605.             m_Info.t_strText = GetSystemString( 27 );
  2606.         }
  2607.         else
  2608.         {          
  2609.             m_Info.t_strText = record.LVDataList[5].szData;
  2610.         }
  2611.         EndItem();
  2612.        
  2613.        
  2614.     }
  2615.     else
  2616.     {
  2617.         return;
  2618.     }
  2619.    
  2620.    
  2621.     ReturnTooltipInfo(m_Tooltip);
  2622. }
  2623.  
  2624.  
  2625. /////////////////////////////////////////////////////////////////////////////////
  2626. // PARTYMATCH
  2627. function ReturnTooltip_NTT_PARTYMATCH(string param, ETooltipSourceType eSourceType)
  2628. {
  2629.     local LVDataRecord record;
  2630.    
  2631.     m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH + 80;
  2632.  
  2633.     if (eSourceType == NTST_LIST)
  2634.     {
  2635.         ParamToRecord( param, record );
  2636.        
  2637.         //ex) "직업 : 엘븐메이지"
  2638.         AddTooltipItemOption(391, GetClassType(int(record.LVDataList[1].szData)), true, true, true);
  2639.        
  2640.         //선준 수정(2010.02.22 ~ 03.08) 완료
  2641.         //ex)현재 위치 : 글루디오
  2642.         AddTooltipItemOption(471, GetZoneNameWithZoneID(int(record.LVDataList[3].szReserved)), true, true, true);
  2643.        
  2644.         /*
  2645.         AddTooltipItemBlank(0);
  2646.         //귀속지역
  2647.         StartItem();
  2648.         m_Info.eType = DIT_TEXT;
  2649.         m_Info.t_bDrawOneLine = false;
  2650.         m_Info.t_color.R = 163;
  2651.         m_Info.t_color.G = 163;
  2652.         m_Info.t_color.B = 163;
  2653.         m_Info.t_color.A = 255;
  2654.         m_Info.t_strText = GetSystemString( 2276 ) @ ":";
  2655.         EndItem();     
  2656.        
  2657.         //설명
  2658.        
  2659.         StartItem();
  2660.         m_Info.eType = DIT_TEXT;       
  2661.         m_Info.t_color.R = 176;
  2662.         m_Info.t_color.G = 155;
  2663.         m_Info.t_color.B = 121;
  2664.         m_Info.t_color.A = 255;
  2665.         if( record.LVDataList[4].szData == "" )
  2666.         {
  2667.             //m_Info.bLineBreak = true;
  2668.             m_Info.t_strText = "" @ GetSystemString( 27 );
  2669.         }
  2670.         else
  2671.         {
  2672.             m_Info.bLineBreak = true;
  2673.             m_Info.t_strText = record.LVDataList[4].szData;
  2674.         }
  2675.         EndItem();
  2676.         */
  2677.  
  2678.        
  2679.         AddTooltipItemBlank(0);
  2680.         //ex)귀속 지역 :
  2681.         StartItem();
  2682.         m_Info.eType = DIT_TEXT;
  2683.         m_Info.t_color.R = 163;
  2684.         m_Info.t_color.G = 163;
  2685.         m_Info.t_color.B = 163;
  2686.         m_Info.t_color.A = 255;
  2687.         m_Info.t_strText = GetSystemString( 2276 ) $ " : ";
  2688.         //m_Info.t_strText = "귀속 지역 : ";
  2689.         EndItem();
  2690.        
  2691.         //설명
  2692.         StartItem();
  2693.         m_Info.eType = DIT_TEXT;
  2694.         m_Info.t_color.R = 176;
  2695.         m_Info.t_color.G = 155;
  2696.         m_Info.t_color.B = 121;
  2697.         m_Info.t_color.A = 255;
  2698.         if( record.LVDataList[4].szReserved == "" )
  2699.         {          
  2700.             m_Info.t_strText = GetSystemString( 27 );
  2701.         }
  2702.         else
  2703.         {          
  2704.             m_Info.t_strText = record.LVDataList[4].szReserved;
  2705.         }
  2706.         EndItem();
  2707.        
  2708.        
  2709.     }
  2710.     else
  2711.     {
  2712.         return;
  2713.     }
  2714.    
  2715.    
  2716.     ReturnTooltipInfo(m_Tooltip);
  2717. }
  2718.  
  2719. //선준 추가 UNION 예전 직업만 나오는 경우.
  2720. /////////////////////////////////////////////////////////////////////////////////
  2721. // UINONLIST
  2722. function ReturnTooltip_NTT_UNIONLIST(string param, ETooltipSourceType eSourceType)
  2723. {
  2724.     local LVDataRecord record;
  2725.    
  2726.     if (eSourceType == NTST_LIST)
  2727.     {
  2728.         ParamToRecord( param, record );
  2729.        
  2730.         //ex) "직업 : 엘븐메이지"
  2731.         AddTooltipItemOption(391, GetClassType(int(record.LVDataList[1].szData)), true, true, true);
  2732.     }
  2733.     else
  2734.     {
  2735.         return;
  2736.     }
  2737.        
  2738.     ReturnTooltipInfo(m_Tooltip);
  2739. }
  2740.  
  2741. /////////////////////////////////////////////////////////////////////////////////
  2742. // QUESTLIST
  2743. function ReturnTooltip_NTT_QUESTLIST(string param, ETooltipSourceType eSourceType)
  2744. {
  2745.     local LVDataRecord record;
  2746.    
  2747.     local int nTmp;
  2748.    
  2749.     if (eSourceType == NTST_LIST)
  2750.     {
  2751.         ParamToRecord( param, record );
  2752.        
  2753.         //퀘스트 이름
  2754.         AddTooltipItemOption(1200, record.LVDataList[0].szData, true, true, true);
  2755.        
  2756.         //반복성
  2757.         switch(record.LVDataList[3].nReserved1)
  2758.         {
  2759.         case 0:
  2760.         case 2:
  2761.             nTmp = 861;
  2762.             break;
  2763.         case 1:
  2764.         case 3:
  2765.             nTmp = 862;
  2766.             break;
  2767.         }
  2768.         AddTooltipItemOption2(1202, nTmp, true, true, false);
  2769.     }
  2770.     else
  2771.     {
  2772.         return;
  2773.     }
  2774.        
  2775.     ReturnTooltipInfo(m_Tooltip);
  2776. }
  2777.  
  2778. /////////////////////////////////////////////////////////////////////////////////
  2779. // RAIDLIST
  2780. function ReturnTooltip_NTT_RAIDLIST(string param, ETooltipSourceType eSourceType)
  2781. {
  2782.     local LVDataRecord record;
  2783.    
  2784.     if (eSourceType == NTST_LIST)
  2785.     {
  2786.         ParamToRecord( param, record );
  2787.        
  2788.         if (Len(record.szReserved)<1)
  2789.             return;
  2790.        
  2791.         m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
  2792.        
  2793.         //레이드 설명
  2794.         StartItem();
  2795.         m_Info.eType = DIT_TEXT;
  2796.         m_Info.t_bDrawOneLine = false;
  2797.         m_Info.t_color.R = 178;
  2798.         m_Info.t_color.G = 190;
  2799.         m_Info.t_color.B = 207;
  2800.         m_Info.t_color.A = 255;
  2801.         m_Info.t_strText = record.szReserved;
  2802.         EndItem();
  2803.     }
  2804.     else
  2805.     {
  2806.         return;
  2807.     }
  2808.        
  2809.     ReturnTooltipInfo(m_Tooltip);
  2810. }
  2811.  
  2812. /////////////////////////////////////////////////////////////////////////////////
  2813. // QUESTINFO
  2814. function ReturnTooltip_NTT_QUESTINFO(string param, ETooltipSourceType eSourceType)
  2815. {
  2816.     local LVDataRecord record;
  2817.    
  2818.     local int nTmp;
  2819.     local int Width1;
  2820.     local int Width2;
  2821.     local int Height;
  2822.        
  2823.     if (eSourceType == NTST_LIST)
  2824.     {
  2825.         ParamToRecord( param, record );
  2826.        
  2827.         //퀘스트 이름
  2828.         AddTooltipItemOption(1200, record.LVDataList[0].szData, true, true, true);
  2829.        
  2830.         //수행조건
  2831.         AddTooltipItemOption(1201, record.LVDataList[1].szData, true, true, false);
  2832.        
  2833.         //Width결정!
  2834.         GetTextSizeDefault(GetSystemString(1200) $ " : " $ record.LVDataList[0].szData, Width1, Height);
  2835.         GetTextSizeDefault(GetSystemString(1201) $ " : " $ record.LVDataList[1].szData, Width2, Height);
  2836.         if (Width2>Width1)
  2837.             Width1 = Width2;
  2838.         if (TOOLTIP_MINIMUM_WIDTH>Width1)
  2839.             Width1 = TOOLTIP_MINIMUM_WIDTH;
  2840.         m_Tooltip.MinimumWidth = Width1 + 30;
  2841.        
  2842.         //추천레벨
  2843.         AddTooltipItemOption(922, record.LVDataList[2].szData, true, true, false);
  2844.        
  2845.         //반복성
  2846.         switch(record.LVDataList[3].nReserved1)
  2847.         {
  2848.         case 0:
  2849.         case 2:
  2850.             nTmp = 861;
  2851.             break;
  2852.         case 1:
  2853.         case 3:
  2854.             nTmp = 862;
  2855.             break;
  2856.         }
  2857.         AddTooltipItemOption2(1202, nTmp, true, true, false);
  2858.        
  2859.         //퀘스트설명
  2860.         StartItem();
  2861.         m_Info.eType = DIT_TEXT;
  2862.         m_Info.nOffSetY = 6;
  2863.         m_Info.t_bDrawOneLine = false;
  2864.         m_Info.bLineBreak = true;
  2865.         m_Info.t_color.R = 178;
  2866.         m_Info.t_color.G = 190;
  2867.         m_Info.t_color.B = 207;
  2868.         m_Info.t_color.A = 255;
  2869.         m_Info.t_strText = record.szReserved;
  2870.         EndItem();
  2871.     }
  2872.     else
  2873.     {
  2874.         return;
  2875.     }
  2876.        
  2877.     ReturnTooltipInfo(m_Tooltip);
  2878. }
  2879.  
  2880. /////////////////////////////////////////////////////////////////////////////////
  2881. // MANOR
  2882. function ReturnTooltip_NTT_MANOR(string param, string TooltipType, ETooltipSourceType eSourceType)
  2883. {
  2884.     local LVDataRecord record;
  2885.    
  2886.     local int idx1;
  2887.     local int idx2;
  2888.     local int idx3;
  2889.    
  2890.     if (eSourceType == NTST_LIST)
  2891.     {
  2892.         ParamToRecord( param, record );
  2893.        
  2894.         if (TooltipType == "ManorSeedInfo")
  2895.         {
  2896.             idx1 = 4;
  2897.             idx2 = 5;
  2898.             idx3 = 6;
  2899.         }
  2900.         else if (TooltipType == "ManorCropInfo")
  2901.         {
  2902.             idx1 = 5;
  2903.             idx2 = 6;
  2904.             idx3 = 7;
  2905.         }
  2906.         else if (TooltipType == "ManorSeedSetting")
  2907.         {
  2908.             idx1 = 7;
  2909.             idx2 = 8;
  2910.             idx3 = 9;
  2911.         }
  2912.         else if (TooltipType == "ManorCropSetting")
  2913.         {
  2914.             idx1 = 9;
  2915.             idx2 = 10;
  2916.             idx3 = 11;
  2917.         }
  2918.         else if (TooltipType == "ManorDefaultInfo")
  2919.         {
  2920.             idx1 = 1;
  2921.             idx2 = 4;
  2922.             idx3 = 5;
  2923.         }
  2924.         else if (TooltipType == "ManorCropSell")
  2925.         {
  2926.             idx1 = 7;
  2927.             idx2 = 8;
  2928.             idx3 = 9;
  2929.         }
  2930.        
  2931.         // 씨앗 or 작물 이름
  2932.         AddTooltipItemOption(0, record.LVDataList[0].szData, false, true, true);
  2933.        
  2934.         // 레벨
  2935.         AddTooltipItemOption(537, record.LVDataList[idx1].szData, true, true, false);
  2936.  
  2937.         // 보상 타입1
  2938.         AddTooltipItemOption(1134, record.LVDataList[idx2].szData, true, true, false);
  2939.        
  2940.         // 보상 타입2
  2941.         AddTooltipItemOption(1135, record.LVDataList[idx3].szData, true, true, false);
  2942.     }
  2943.     else
  2944.     {
  2945.         return;
  2946.     }
  2947.        
  2948.     ReturnTooltipInfo(m_Tooltip);
  2949. }
  2950.  
  2951. // [퀘스트 아이템 툴팁 추가]
  2952. function ReturnTooltip_NTT_QUESTREWARDS(string param, ETooltipSourceType eSourceType)
  2953. {
  2954.     // [퀘스트 아이템 툴팁 추가] 이 부분에 퀘스트 아이템 툴팁에 걸맞는 코드가 들어가면 될 것 같습니다.
  2955.     // 2009.10.14
  2956.     // ReturnTooltip_NTT_ITEM(param, "Inventoty", eSourceType);
  2957.     ReturnTooltip_NTT_ITEM(param, "QuestReward", eSourceType);
  2958. }
  2959.  
  2960. //"XXX : YYYY" 형태의 TooltipItem을 편하게 추가해 준다.
  2961. function AddTooltipItemOption(int TitleID, string Content, bool bTitle, bool bContent, bool IamFirst)
  2962. {
  2963.     if (bTitle)
  2964.     {
  2965.         StartItem();
  2966.         m_Info.eType = DIT_TEXT;
  2967.         if (!IamFirst)
  2968.             m_Info.nOffSetY = 6;
  2969.         m_Info.bLineBreak = true;
  2970.         m_Info.t_bDrawOneLine = true;
  2971.         m_Info.t_color.R = 163;
  2972.         m_Info.t_color.G = 163;
  2973.         m_Info.t_color.B = 163;
  2974.         m_Info.t_color.A = 255;
  2975.         m_Info.t_ID = TitleID;
  2976.         EndItem();
  2977.     }
  2978.    
  2979.     if (Content != "0")
  2980.     {
  2981.         if (bContent)
  2982.         {
  2983.             if (bTitle)
  2984.             {
  2985.                 StartItem();
  2986.                 m_Info.eType = DIT_TEXT;
  2987.                 if (!IamFirst)
  2988.                     m_Info.nOffSetY = 6;
  2989.                 m_Info.t_bDrawOneLine = true;
  2990.                 m_Info.t_color.R = 163;
  2991.                 m_Info.t_color.G = 163;
  2992.                 m_Info.t_color.B = 163;
  2993.                 m_Info.t_color.A = 255;
  2994.                 m_Info.t_strText = " : ";
  2995.                 EndItem();
  2996.             }
  2997.            
  2998.             StartItem();
  2999.             m_Info.eType = DIT_TEXT;
  3000.             if (!IamFirst)
  3001.                 m_Info.nOffSetY = 6;
  3002.             if (!bTitle)
  3003.                 m_Info.bLineBreak = true;
  3004.             m_Info.t_bDrawOneLine = true;
  3005.             m_Info.t_color.R = 176;
  3006.             m_Info.t_color.G = 155;
  3007.             m_Info.t_color.B = 121;
  3008.             m_Info.t_color.A = 255;
  3009.             m_Info.t_strText = Content;
  3010.             EndItem();
  3011.         }
  3012.     }
  3013. }
  3014.  
  3015. function AddTooltipItemOptionDef(int TitleID, ItemInfo Item, bool bTitle, bool bContent, bool IamFirst, optional bool isShield)
  3016. {
  3017.     local int FullDamage, DefaultDamage, Diffirence;
  3018.  
  3019.     if( isShield )
  3020.     {
  3021.         FullDamage = GetShieldDefense(Item.CrystalType, Item.Enchanted, Item.ShieldDefense);
  3022.         DefaultDamage = GetShieldDefense(Item.CrystalType, 0, Item.ShieldDefense);
  3023.         Diffirence = FullDamage - DefaultDamage;
  3024.     }
  3025.     else if( TitleID == 95 )
  3026.     {
  3027.         FullDamage = GetPhysicalDefense(Item.CrystalType, Item.Enchanted, Item.PhysicalDefense);
  3028.         DefaultDamage = GetPhysicalDefense(Item.CrystalType, 0, Item.PhysicalDefense);
  3029.         Diffirence = FullDamage - DefaultDamage;
  3030.     }
  3031.     else
  3032.     {
  3033.         FullDamage = GetMagicalDefense(Item.CrystalType, Item.Enchanted, Item.MagicalDefense);
  3034.         DefaultDamage = GetMagicalDefense(Item.CrystalType, 0, Item.MagicalDefense);
  3035.         Diffirence = FullDamage - DefaultDamage;
  3036.     }
  3037.  
  3038.     if (bTitle)
  3039.     {
  3040.         StartItem();
  3041.         m_Info.eType = DIT_TEXT;
  3042.         if (!IamFirst)
  3043.             m_Info.nOffSetY = 6;
  3044.         m_Info.bLineBreak = true;
  3045.         m_Info.t_bDrawOneLine = true;
  3046.         m_Info.t_color.R = 255;
  3047.         m_Info.t_color.G = 255;
  3048.         m_Info.t_color.B = 255;
  3049.         m_Info.t_color.A = 255;
  3050.         m_Info.t_ID = TitleID;
  3051.         EndItem();
  3052.     }
  3053.    
  3054.     if (FullDamage != 0)
  3055.     {
  3056.         if (bContent)
  3057.         {
  3058.             if (bTitle)
  3059.             {
  3060.                 StartItem();
  3061.                 m_Info.eType = DIT_TEXT;
  3062.                 if (!IamFirst)
  3063.                     m_Info.nOffSetY = 6;
  3064.                 m_Info.t_bDrawOneLine = true;
  3065.                 m_Info.t_color.R = 255;
  3066.                 m_Info.t_color.G = 255;
  3067.                 m_Info.t_color.B = 255;
  3068.                 m_Info.t_color.A = 255;
  3069.                 m_Info.t_strText = " : ";
  3070.                 EndItem();
  3071.             }
  3072.            
  3073.             StartItem();
  3074.             m_Info.eType = DIT_TEXT;
  3075.             if (!IamFirst)
  3076.                 m_Info.nOffSetY = 6;
  3077.             if (!bTitle)
  3078.                 m_Info.bLineBreak = true;
  3079.             m_Info.t_bDrawOneLine = true;
  3080.             m_Info.t_color.R = 207;
  3081.             m_Info.t_color.G = 148;
  3082.             m_Info.t_color.B = 11;
  3083.             m_Info.t_color.A = 255;
  3084.             m_Info.t_strText = ""$FullDamage;
  3085.             EndItem();
  3086.  
  3087.             if( Diffirence != 0 )
  3088.             {
  3089.                 StartItem();
  3090.                 m_Info.eType = DIT_TEXT;
  3091.                 if (!IamFirst)
  3092.                     m_Info.nOffSetY = 6;
  3093.                 if (!bTitle)
  3094.                     m_Info.bLineBreak = true;
  3095.                 m_Info.nOffSetX = 4;
  3096.                 m_Info.t_bDrawOneLine = true;
  3097.                 m_Info.t_color.R = 208;
  3098.                 m_Info.t_color.G = 180;
  3099.                 m_Info.t_color.B = 119;
  3100.                 m_Info.t_color.A = 255;
  3101.                 m_Info.t_strText = "("$DefaultDamage$" + "$Diffirence$")";
  3102.                 EndItem();
  3103.             }
  3104.         }
  3105.     }
  3106. }
  3107.  
  3108. function AddTooltipItemOptionDamage(int TitleID, ItemInfo Item, bool bTitle, bool bContent, bool IamFirst)
  3109. {
  3110.     local int FullDamage, DefaultDamage, Diffirence;
  3111.  
  3112.     if( TitleID == 94 )
  3113.     {
  3114.         FullDamage = GetPhysicalDamage(Item.WeaponType, Item.SlotBitType, Item.CrystalType, Item.Enchanted, Item.PhysicalDamage);
  3115.         DefaultDamage = GetPhysicalDamage(Item.WeaponType, Item.SlotBitType, Item.CrystalType, 0, Item.PhysicalDamage);
  3116.         Diffirence = FullDamage - DefaultDamage;
  3117.     }
  3118.     else
  3119.     {
  3120.         FullDamage = GetMagicalDamage(Item.WeaponType, Item.SlotBitType, Item.CrystalType, Item.Enchanted, Item.MagicalDamage);
  3121.         DefaultDamage = GetMagicalDamage(Item.WeaponType, Item.SlotBitType, Item.CrystalType, 0, Item.MagicalDamage);
  3122.         Diffirence = FullDamage - DefaultDamage;
  3123.     }
  3124.  
  3125.     if (bTitle)
  3126.     {
  3127.         StartItem();
  3128.         m_Info.eType = DIT_TEXT;
  3129.         if (!IamFirst)
  3130.             m_Info.nOffSetY = 6;
  3131.         m_Info.bLineBreak = true;
  3132.         m_Info.t_bDrawOneLine = true;
  3133.         m_Info.t_color.R = 255;
  3134.         m_Info.t_color.G = 255;
  3135.         m_Info.t_color.B = 255;
  3136.         m_Info.t_color.A = 255;
  3137.         m_Info.t_ID = TitleID;
  3138.         EndItem();
  3139.     }
  3140.    
  3141.     if (FullDamage != 0)
  3142.     {
  3143.         if (bContent)
  3144.         {
  3145.             if (bTitle)
  3146.             {
  3147.                 StartItem();
  3148.                 m_Info.eType = DIT_TEXT;
  3149.                 if (!IamFirst)
  3150.                     m_Info.nOffSetY = 6;
  3151.                 m_Info.t_bDrawOneLine = true;
  3152.                 m_Info.t_color.R = 255;
  3153.                 m_Info.t_color.G = 255;
  3154.                 m_Info.t_color.B = 255;
  3155.                 m_Info.t_color.A = 255;
  3156.                 m_Info.t_strText = " : ";
  3157.                 EndItem();
  3158.             }
  3159.            
  3160.             StartItem();
  3161.             m_Info.eType = DIT_TEXT;
  3162.             if (!IamFirst)
  3163.                 m_Info.nOffSetY = 6;
  3164.             if (!bTitle)
  3165.                 m_Info.bLineBreak = true;
  3166.             m_Info.t_bDrawOneLine = true;
  3167.             m_Info.t_color.R = 207;
  3168.             m_Info.t_color.G = 148;
  3169.             m_Info.t_color.B = 11;
  3170.             m_Info.t_color.A = 255;
  3171.             m_Info.t_strText = ""$FullDamage;
  3172.             EndItem();
  3173.  
  3174.             if( Diffirence != 0 )
  3175.             {
  3176.                 StartItem();
  3177.                 m_Info.eType = DIT_TEXT;
  3178.                 if (!IamFirst)
  3179.                     m_Info.nOffSetY = 6;
  3180.                 if (!bTitle)
  3181.                     m_Info.bLineBreak = true;
  3182.                 m_Info.nOffSetX = 4;
  3183.                 m_Info.t_bDrawOneLine = true;
  3184.                 m_Info.t_color.R = 208;
  3185.                 m_Info.t_color.G = 180;
  3186.                 m_Info.t_color.B = 119;
  3187.                 m_Info.t_color.A = 255;
  3188.                 m_Info.t_strText = "("$DefaultDamage$" + "$Diffirence$")";
  3189.                 EndItem();
  3190.             }
  3191.         }
  3192.     }
  3193. }
  3194.  
  3195. //"XXX : YYYY" 형태의 TooltipItem을 편하게 추가해 준다.
  3196. //SYSSTRING : SYSSTRING
  3197. function AddTooltipItemOption2(int TitleID, int ContentID, bool bTitle, bool bContent, bool IamFirst)
  3198. {
  3199.     if (bTitle)
  3200.     {
  3201.         StartItem();
  3202.         m_Info.eType = DIT_TEXT;
  3203.         if (!IamFirst)
  3204.             m_Info.nOffSetY = 6;
  3205.         m_Info.bLineBreak = true;
  3206.         m_Info.t_bDrawOneLine = true;
  3207.         m_Info.t_color.R = 163;
  3208.         m_Info.t_color.G = 163;
  3209.         m_Info.t_color.B = 163;
  3210.         m_Info.t_color.A = 255;
  3211.         m_Info.t_ID = TitleID;
  3212.         EndItem();
  3213.     }
  3214.    
  3215.     if (bContent)
  3216.     {  
  3217.         if (bTitle)
  3218.         {
  3219.             StartItem();
  3220.             m_Info.eType = DIT_TEXT;
  3221.             if (!IamFirst)
  3222.                 m_Info.nOffSetY = 6;
  3223.             m_Info.t_bDrawOneLine = true;
  3224.             m_Info.t_color.R = 163;
  3225.             m_Info.t_color.G = 163;
  3226.             m_Info.t_color.B = 163;
  3227.             m_Info.t_color.A = 255;
  3228.             m_Info.t_strText = " : ";
  3229.             EndItem();
  3230.         }      
  3231.        
  3232.         StartItem();
  3233.         m_Info.eType = DIT_TEXT;
  3234.         if (!IamFirst)
  3235.             m_Info.nOffSetY = 6;
  3236.         if (!bTitle)
  3237.             m_Info.bLineBreak = true;
  3238.         m_Info.t_bDrawOneLine = true;
  3239.         m_Info.t_color.R = 176;
  3240.         m_Info.t_color.G = 155;
  3241.         m_Info.t_color.B = 121;
  3242.         m_Info.t_color.A = 255;
  3243.         m_Info.t_ID = ContentID;
  3244.         EndItem();
  3245.     }
  3246. }
  3247.  
  3248. //아이템의 색상을 다시 설정해준다.
  3249. function SetTooltipItemColor(int R, int G, int B, int Offset)
  3250. {
  3251.     local int idx;
  3252.     idx = m_Tooltip.DrawList.Length-1-Offset;
  3253.     m_Tooltip.DrawList[idx].t_color.R = R;
  3254.     m_Tooltip.DrawList[idx].t_color.G = G;
  3255.     m_Tooltip.DrawList[idx].t_color.B = B;
  3256.     m_Tooltip.DrawList[idx].t_color.A = 255;
  3257. }
  3258.  
  3259. //빈공간의 TooltipItem을 추가한다.
  3260. function AddTooltipItemBlank(int Height)
  3261. {
  3262.     StartItem();
  3263.     m_Info.eType = DIT_BLANK;
  3264.     m_Info.b_nHeight = Height;
  3265.     EndItem();
  3266. }
  3267.  
  3268. //인첸트
  3269. function AddTooltipItemEnchant(ItemInfo Item)
  3270. {
  3271.     local EItemParamType eItemParamType;
  3272.    
  3273.     eItemParamType = EItemParamType(Item.ItemType);
  3274.     if (Item.Enchanted>0 && IsEnchantableItem(eItemParamType))
  3275.     {
  3276.         StartItem();
  3277.         m_Info.eType = DIT_TEXT;
  3278.         m_Info.t_bDrawOneLine = true;
  3279.         m_Info.t_color.R = 176;
  3280.         m_Info.t_color.G = 155;
  3281.         m_Info.t_color.B = 121;
  3282.         m_Info.t_color.A = 255;
  3283.         m_Info.t_strText = "+" $ Item.Enchanted $ " ";
  3284.         EndItem();
  3285.     }  
  3286. }
  3287.  
  3288. //아이템 이름 + AdditionalName
  3289. function AddTooltipItemName(string Name, ItemInfo Item, int AddTooltipItemName)
  3290. {
  3291.     StartItem();
  3292.     m_Info.eType = DIT_TEXT;
  3293.     m_Info.t_bDrawOneLine = true;
  3294.     switch (AddTooltipItemName)
  3295.     {
  3296.         case 0:
  3297.         m_Info.t_color.R = 137;
  3298.         m_Info.t_color.G = 137;
  3299.         m_Info.t_color.B = 137;
  3300.         m_Info.t_color.A = 255;
  3301.         break;
  3302.         case 1:
  3303.         m_Info.t_color.R = 255;
  3304.         m_Info.t_color.G = 255;
  3305.         m_Info.t_color.B = 255;
  3306.         m_Info.t_color.A = 255;
  3307.         break;
  3308.         case 2:
  3309.         m_Info.t_color.R = 255;
  3310.         m_Info.t_color.G = 251;
  3311.         m_Info.t_color.B = 4;
  3312.         m_Info.t_color.A = 255;
  3313.         break;
  3314.         case 3:
  3315.         m_Info.t_color.R = 255;
  3316.         m_Info.t_color.G = 0;
  3317.         m_Info.t_color.B = 255;
  3318.         m_Info.t_color.A = 255;
  3319.         break;
  3320.     }
  3321.     m_Info.t_strText = Name;
  3322.     EndItem();
  3323.    
  3324.     //Additional Name
  3325.     if (Len(Item.AdditionalName)>0)
  3326.     {
  3327.         StartItem();
  3328.         m_Info.eType = DIT_TEXT;
  3329.         m_Info.t_bDrawOneLine = true;
  3330.         m_Info.t_color.R = 255;
  3331.         m_Info.t_color.G = 217;
  3332.         m_Info.t_color.B = 105;
  3333.         m_Info.t_color.A = 255;
  3334.         m_Info.t_strText = " " $ Item.AdditionalName;
  3335.         EndItem();
  3336.     }
  3337. }
  3338.  
  3339. //Grade Mark
  3340. function AddTooltipItemGrade(ItemInfo Item)
  3341. {
  3342.     local string TextureName;
  3343.  
  3344.     if(Item.CrystalType > 0)
  3345.     {
  3346.         StartItem();
  3347.         m_Info.eType = DIT_TEXTURE;
  3348.         m_Info.nOffSetX = 2;
  3349.         m_Info.nOffSetY = 0;
  3350.      
  3351.         switch (Item.CrystalType)
  3352.         {
  3353.             case 1: // D grade_d
  3354.             TextureName = "symbol.grade_d";
  3355.             break;
  3356.      
  3357.             case 2: // C grade_c
  3358.             TextureName = "symbol.grade_c";
  3359.             break;
  3360.  
  3361.             case 3: // B grade_b
  3362.             TextureName = "symbol.grade_b";
  3363.             break;
  3364.      
  3365.             case 4: // A grade_a
  3366.             TextureName = "symbol.grade_a";
  3367.             break;
  3368.      
  3369.             case 5: // S grade_s
  3370.             TextureName = "symbol.grade_s";
  3371.             break;
  3372.      
  3373.             case 6: // S80 Grade_S80
  3374.             TextureName = "symbol.Grade_S80";
  3375.             break;
  3376.      
  3377.             case 7: // S84 Grade_S84
  3378.             TextureName = "symbol.Grade_S84";
  3379.             break;
  3380.      
  3381.             case 8: // R Grade_R
  3382.             TextureName = "symbol.Grade_R";
  3383.             break;
  3384.      
  3385.             case 9: // R95 Grade_R95
  3386.             TextureName = "symbol.Grade_R95";
  3387.             break;
  3388.      
  3389.             case 10: // R99 Grade_R99
  3390.             TextureName = "symbol.Grade_R99";
  3391.             break;
  3392.            
  3393.             case 11: // R110 Grade_R110
  3394.             TextureName = "symbol.Grade_R110";
  3395.             break;
  3396.         }
  3397.      
  3398.         if (Item.CrystalType == 6 || Item.CrystalType == 7 || Item.CrystalType == 9 || Item.CrystalType == 10 || Item.CrystalType == 11)
  3399.         {
  3400.             m_Info.u_nTextureWidth = 32;
  3401.             m_Info.u_nTextureHeight = 16;
  3402.          
  3403.             m_Info.u_nTextureUWidth = 32;
  3404.             m_Info.u_nTextureUHeight = 16;
  3405.         }
  3406.         else
  3407.         {
  3408.             m_Info.u_nTextureWidth = 16;
  3409.             m_Info.u_nTextureHeight = 16;
  3410.          
  3411.             m_Info.u_nTextureUWidth = 16;
  3412.             m_Info.u_nTextureUHeight = 16;
  3413.         }
  3414.  
  3415.  
  3416.         m_Info.u_strTexture = TextureName;
  3417.         EndItem();
  3418.     }
  3419. }
  3420.  
  3421. //Stackable Count
  3422. function AddTooltipItemCount(ItemInfo Item)
  3423. {
  3424.     if (IsStackableItem(Item.ConsumeType))
  3425.     {
  3426.         StartItem();
  3427.         m_Info.eType = DIT_TEXT;
  3428.         m_Info.t_bDrawOneLine = true;
  3429.         m_Info.t_strText = " (" $ MakeCostString(Int64ToString(Item.ItemNum)) $ ")";
  3430.         EndItem();
  3431.     }  
  3432. }
  3433.  
  3434. //제련 색상
  3435. function GetRefineryColor(int Quality, out int R, out int G, out int B)
  3436. {
  3437.     switch (Quality)
  3438.     {
  3439.     case 1:
  3440.         R = 187;
  3441.         G = 181;
  3442.         B = 138;
  3443.     break;
  3444.     case 2:
  3445.         R = 132;
  3446.         G = 174;
  3447.         B = 216;
  3448.     break;
  3449.     case 3:
  3450.         R = 193;
  3451.         G = 112;
  3452.         B = 202;
  3453.     break;
  3454.     case 4:
  3455.         R = 225;
  3456.         G = 109;
  3457.         B = 109;
  3458.     break;
  3459.     default:
  3460.         R = 187;
  3461.         G = 181;
  3462.         B = 138;
  3463.     break;
  3464.     }
  3465. }
  3466.  
  3467. //속성 게이지 그려주기
  3468. function AddTooltipItemAttributeGage(ItemInfo Item)
  3469. {
  3470.     local int i;
  3471.     //local int highAttrValue[6];
  3472.     local Array<string> textureName, tooltipStr;
  3473.     local bool FirstTime;
  3474.    
  3475.     for(i = 0; i < 6; i++)
  3476.     {
  3477.         textureName[i] = "";
  3478.         tooltipStr[i] = "";
  3479.     }
  3480.    
  3481.     NowAttrLv =0;
  3482.     NowMaxValue =0;
  3483.     NowValue =0;
  3484.  
  3485.    
  3486.     // 공격 아이템 속성
  3487.     if (Item.AttackAttributeValue  > 0)
  3488.     {
  3489.  
  3490.         //AddSystemMessageString("1");
  3491.        
  3492.         SetAttackAttribute(Item.AttackAttributeValue,ATTRIBUTE_FIRE);
  3493.         SetAttackAttribute(Item.AttackAttributeValue,ATTRIBUTE_WATER);
  3494.         SetAttackAttribute(Item.AttackAttributeValue,ATTRIBUTE_WIND);
  3495.         SetAttackAttribute(Item.AttackAttributeValue,ATTRIBUTE_EARTH);
  3496.         SetAttackAttribute(Item.AttackAttributeValue,ATTRIBUTE_HOLY);
  3497.         SetAttackAttribute(Item.AttackAttributeValue,ATTRIBUTE_UNHOLY); //레벨과 현제값등을 구한다.
  3498.        
  3499.         switch(Item.AttackAttributeType)
  3500.         {
  3501.             case ATTRIBUTE_FIRE:
  3502.                 textureName[ATTRIBUTE_FIRE] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_FIRE";
  3503.                 tooltipStr[ATTRIBUTE_FIRE] =GetSystemString(1622) $ " Lv " $ String(AttackAttLevel[ATTRIBUTE_FIRE]) $ " ("$ GetSystemString(1622) $ " " $ GetSystemString(55) $ " " $ String(Item.AttackAttributeValue) $")";
  3504.                 break;
  3505.             case ATTRIBUTE_WATER:
  3506.                 textureName[ATTRIBUTE_WATER] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_WATER";
  3507.                 tooltipStr[ATTRIBUTE_WATER] =GetSystemString(1623) $ " Lv " $ String(AttackAttLevel[ATTRIBUTE_WATER]) $ " ("$ GetSystemString(1623) $ " " $ GetSystemString(55) $ " " $String(Item.AttackAttributeValue) $ ")";
  3508.                 break;
  3509.             case ATTRIBUTE_WIND:
  3510.                 textureName[ATTRIBUTE_WIND] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_WIND";
  3511.                 tooltipStr[ATTRIBUTE_WIND] =GetSystemString(1624) $ " Lv " $ String(AttackAttLevel[ATTRIBUTE_WIND]) $ " ("$ GetSystemString(1624) $ " " $ GetSystemString(55) $ " " $String(Item.AttackAttributeValue) $ ")";
  3512.                 break;
  3513.             case ATTRIBUTE_EARTH:
  3514.                 textureName[ATTRIBUTE_EARTH] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_EARTH";
  3515.                 tooltipStr[ATTRIBUTE_EARTH] =GetSystemString(1625) $ " Lv " $ String(AttackAttLevel[ATTRIBUTE_EARTH]) $ " ("$ GetSystemString(1625) $ " " $ GetSystemString(55) $ " " $ String(Item.AttackAttributeValue) $")";
  3516.                 break;
  3517.             case ATTRIBUTE_HOLY:
  3518.                 textureName[ATTRIBUTE_HOLY] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_DIVINE";
  3519.                 tooltipStr[ATTRIBUTE_HOLY] =GetSystemString(1626) $ " Lv " $ String(AttackAttLevel[ATTRIBUTE_HOLY]) $ " ("$ GetSystemString(1626) $ " " $ GetSystemString(55) $ " " $String(Item.AttackAttributeValue) $ ")";
  3520.                 break;
  3521.             case ATTRIBUTE_UNHOLY:
  3522.                 textureName[ATTRIBUTE_UNHOLY] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_DARK";
  3523.                 tooltipStr[ATTRIBUTE_UNHOLY] =GetSystemString(1627) $ " Lv " $ String(AttackAttLevel[ATTRIBUTE_UNHOLY]) $ " ("$ GetSystemString(1627) $ " " $ GetSystemString(55) $ " " $String(Item.AttackAttributeValue) $ ")";
  3524.                 break;
  3525.         }
  3526.     }
  3527.     else    // 방어 아이템 속성
  3528.     {  
  3529.         //AddSystemMessageString("2");
  3530.         SetDefAttribute(Item.DefenseAttributeValueFire,ATTRIBUTE_FIRE);
  3531.         SetDefAttribute(Item.DefenseAttributeValueWater,ATTRIBUTE_WATER);
  3532.         SetDefAttribute(Item.DefenseAttributeValueWind,ATTRIBUTE_WIND);
  3533.         SetDefAttribute(Item.DefenseAttributeValueEarth,ATTRIBUTE_EARTH);
  3534.         SetDefAttribute(Item.DefenseAttributeValueHoly,ATTRIBUTE_HOLY);
  3535.         SetDefAttribute(Item.DefenseAttributeValueUnholy,ATTRIBUTE_UNHOLY); //레벨과 현제값등을 구한다.
  3536.  
  3537.         if(Item.DefenseAttributeValueFire != 0) //파이어 속성 툴팁 그리기
  3538.         {
  3539.             textureName[ATTRIBUTE_FIRE] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_FIRE";
  3540.             tooltipStr[ATTRIBUTE_FIRE] =GetSystemString(1623) $ " Lv " $ String(DefAttLevel[ATTRIBUTE_FIRE]) $ " ("$ GetSystemString(1622) $ " " $ GetSystemString(54) $ " " $ String(Item.DefenseAttributeValueFire) $")";
  3541.         }
  3542.         if(Item.DefenseAttributeValueWater != 0) //물 속성 툴팁 그리기
  3543.         {
  3544.             textureName[ATTRIBUTE_WATER] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_WATER";
  3545.             tooltipStr[ATTRIBUTE_WATER] =GetSystemString(1622) $ " Lv " $ String(DefAttLevel[ATTRIBUTE_WATER]) $ " ("$ GetSystemString(1623) $ " " $ GetSystemString(54) $ " " $String(Item.DefenseAttributeValueWater) $ ")";
  3546.         }
  3547.         if(Item.DefenseAttributeValueWind != 0) //바람 속성 툴팁 그리기
  3548.         {
  3549.             textureName[ATTRIBUTE_WIND] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_WIND";
  3550.             tooltipStr[ATTRIBUTE_WIND] =GetSystemString(1625) $ " Lv " $ String(DefAttLevel[ATTRIBUTE_WIND]) $ " ("$ GetSystemString(1624) $ " " $ GetSystemString(54) $ " " $String(Item.DefenseAttributeValueWind) $")";
  3551.         }
  3552.         if(Item.DefenseAttributeValueEarth != 0) //땅 속성 툴팁 그리기
  3553.         {
  3554.             textureName[ATTRIBUTE_EARTH] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_EARTH";
  3555.             tooltipStr[ATTRIBUTE_EARTH] =GetSystemString(1624) $ " Lv " $ String(DefAttLevel[ATTRIBUTE_EARTH]) $ " ("$ GetSystemString(1625) $ " " $ GetSystemString(54) $ " " $String(Item.DefenseAttributeValueEarth) $ ")";
  3556.         }
  3557.         if(Item.DefenseAttributeValueHoly != 0) //신성 속성 툴팁 그리기
  3558.         {
  3559.             textureName[ATTRIBUTE_HOLY] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_DIVINE";
  3560.             tooltipStr[ATTRIBUTE_HOLY] =GetSystemString(1627) $ " Lv " $ String(DefAttLevel[ATTRIBUTE_HOLY]) $ " ("$ GetSystemString(1626) $ " " $ GetSystemString(54) $ " " $ String(Item.DefenseAttributeValueHoly) $")";
  3561.         }
  3562.         if(Item.DefenseAttributeValueUnholy != 0) //암흑 속성 툴팁 그리기
  3563.         {
  3564.             textureName[ATTRIBUTE_UNHOLY] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_DARK";
  3565.             tooltipStr[ATTRIBUTE_UNHOLY] =GetSystemString(1626) $ " Lv " $ String(DefAttLevel[ATTRIBUTE_UNHOLY]) $ " ("$ GetSystemString(1627) $ " " $ GetSystemString(54) $ " " $String(Item.DefenseAttributeValueUnholy) $ ")";
  3566.         }
  3567.         // 방어 아이템 속성
  3568.        
  3569.  
  3570.     }
  3571.  
  3572.     if (Item.AttackAttributeValue  > 0)//공격속성일경우
  3573.     {
  3574.  
  3575.  
  3576.         for(i = 0; i < 6; i++)
  3577.         {
  3578.             if(tooltipStr[i] == "") continue;  
  3579.  
  3580.             AddTooltipItemBlank(0);
  3581.             StartItem();
  3582.             m_Info.eType = DIT_SPLITLINE;
  3583.             m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;        
  3584.             m_Info.u_nTextureHeight = 1;
  3585.             m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
  3586.             EndItem();     
  3587.  
  3588.             StartItem();
  3589.             m_Info.eType = DIT_TEXT;
  3590.             m_Info.nOffSetY = 6;
  3591.             m_Info.bLineBreak = true;
  3592.             m_Info.t_bDrawOneLine = true;
  3593.             m_Info.t_strText = tooltipStr[i];
  3594.             EndItem();
  3595.            
  3596.             //텍스쳐 두장을 겹쳐 그려야 한다.
  3597.             StartItem();
  3598.             m_Info.eType = DIT_TEXTURE;
  3599.             m_Info.bLineBreak = true;
  3600.             m_Info.t_bDrawOneLine = true;
  3601.             m_Info.nOffSetX = 0;
  3602.             m_Info.nOffSetY = 2;
  3603.             m_Info.u_nTextureWidth = 140;
  3604.             m_Info.u_nTextureHeight = 7;
  3605.             m_Info.u_strTexture = textureName[i] $ "_BG";
  3606.             EndItem();
  3607.            
  3608.             StartItem();
  3609.             m_Info.eType = DIT_TEXTURE;
  3610.             m_Info.bLineBreak = true;
  3611.             m_Info.t_bDrawOneLine = true;
  3612.             m_Info.nOffSetX = 0;
  3613.             m_Info.nOffSetY = -7;
  3614.             m_Info.u_nTextureWidth = AttackAttCurrValue[i] * 140 / AttackAttMaxValue[i] ;
  3615.             if( m_Info.u_nTextureWidth > 140) m_Info.u_nTextureWidth = 140; //넘어가면 걍 140이라는.. ㅋ
  3616.             m_Info.u_nTextureHeight = 7;
  3617.             m_Info.u_strTexture = textureName[i];
  3618.             EndItem();
  3619.  
  3620.             AddTooltipItemBlank(4);
  3621.         }
  3622.    
  3623.     }
  3624.     else{ //방어 속성일 경우
  3625.         for(i = 0; i < 6; i++)
  3626.         {
  3627.             if(tooltipStr[i] == "") continue;
  3628.            if(!FirstTime)
  3629.            {
  3630.             AddTooltipItemBlank(0);
  3631.             StartItem();
  3632.             m_Info.eType = DIT_SPLITLINE;
  3633.             m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;        
  3634.             m_Info.u_nTextureHeight = 1;
  3635.             m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
  3636.             EndItem();
  3637.             FirstTime=true;
  3638.            }
  3639.  
  3640.             StartItem();
  3641.             m_Info.eType = DIT_TEXT;
  3642.             m_Info.nOffSetY = 6;
  3643.             m_Info.bLineBreak = true;
  3644.             m_Info.t_bDrawOneLine = true;
  3645.             m_Info.t_strText = tooltipStr[i];
  3646.             EndItem();
  3647.            
  3648.             //텍스쳐 두장을 겹쳐 그려야 한다.
  3649.             StartItem();
  3650.             m_Info.eType = DIT_TEXTURE;
  3651.             m_Info.bLineBreak = true;
  3652.             m_Info.t_bDrawOneLine = true;
  3653.             m_Info.nOffSetX = 0;
  3654.             m_Info.nOffSetY = 2;
  3655.             m_Info.u_nTextureWidth = 140;
  3656.             m_Info.u_nTextureHeight = 7;
  3657.             m_Info.u_strTexture = textureName[i] $ "_BG";
  3658.             EndItem();
  3659.            
  3660.             StartItem();
  3661.             m_Info.eType = DIT_TEXTURE;
  3662.             m_Info.bLineBreak = true;
  3663.             m_Info.t_bDrawOneLine = true;
  3664.             m_Info.nOffSetX = 0;
  3665.             m_Info.nOffSetY = -7;
  3666.            
  3667.             m_Info.u_nTextureWidth = DefAttCurrValue[i] * 140 / DefAttMaxValue[i] ;
  3668.             if( m_Info.u_nTextureWidth > 140) m_Info.u_nTextureWidth = 140; //넘어가면 걍 140이라는.. ㅋ
  3669.             m_Info.u_nTextureHeight = 7;
  3670.             m_Info.u_strTexture = textureName[i];
  3671.             EndItem(); 
  3672.         }
  3673.         if( FirstTime )
  3674.             AddTooltipItemBlank(4);
  3675.     }
  3676.    
  3677. }
  3678.  
  3679. // function StartItem()
  3680. // {
  3681. //  local DrawItemInfo infoClear;
  3682. //  m_Info = infoClear;
  3683. // }
  3684. //
  3685. // function EndItem()
  3686. // {
  3687. //  m_Tooltip.DrawList.Length = m_Tooltip.DrawList.Length + 1;
  3688. //  m_Tooltip.DrawList[m_Tooltip.DrawList.Length-1] = m_Info;
  3689. // }
  3690.  
  3691. //퀘스트 아이템의 퀘스트 이름 표시
  3692. function AddTooltipItemQuestList(ItemInfo Item)
  3693. {
  3694.     local int i;
  3695.    
  3696.     //<관련 퀘스트>
  3697.     if(Item.RelatedQuestID[0] != 0)
  3698.     {
  3699.         StartItem();
  3700.         m_Info.eType = DIT_TEXT;
  3701.         m_Info.nOffSetY = 10;
  3702.         m_Info.bLineBreak = true;
  3703.         m_Info.t_bDrawOneLine = true;
  3704.         m_Info.t_strText = GetSystemString(1721);
  3705.         EndItem();
  3706.     }
  3707.    
  3708.     for(i = 0 ; i<MAX_RELATED_QUEST ; i++)
  3709.     {      
  3710.         if(Item.RelatedQuestID[i] != 0)
  3711.         {
  3712.             StartItem();
  3713.             m_Info.eType = DIT_TEXT;
  3714.             m_Info.nOffSetY = 6;
  3715.             m_Info.t_color.R = 163;
  3716.             m_Info.t_color.G = 163;
  3717.             m_Info.t_color.B = 163;
  3718.             m_Info.t_color.A = 255;
  3719.             m_Info.bLineBreak = true;
  3720.             m_Info.t_bDrawOneLine = true;
  3721.             m_Info.t_strText = class'UIDATA_QUEST'.static.GetQuestName(Item.RelatedQuestID[i]);;
  3722.             EndItem();
  3723.         }
  3724.     }
  3725. }
  3726.  
  3727.  
  3728. // 속성의 레벨값을 전역변수에 저장    //자료가 많아서 전역변수에 집어넣는다.
  3729.  
  3730. function SetAttackAttribute(int Attvalue, int type)
  3731. {
  3732.     if( AttValue >= 375)    // 9렙 375 ~ 450
  3733.     {
  3734.         AttackAttLevel[type] = 9;
  3735.         AttackAttMaxValue[type] = 75;
  3736.         AttackAttCurrValue[type] = AttValue - 375;
  3737.     }
  3738.     else if( AttValue >= 325)   // 8렙 325 ~ 375
  3739.     {
  3740.         AttackAttLevel[type] = 8;
  3741.         AttackAttMaxValue[type] = 50;
  3742.         AttackAttCurrValue[type] = AttValue - 325;
  3743.     }
  3744.     else if( AttValue >= 300)   // 7렙 300 ~ 325
  3745.     {
  3746.         AttackAttLevel[type] = 7;
  3747.         AttackAttMaxValue[type] = 25;
  3748.         AttackAttCurrValue[type] = AttValue - 300;
  3749.     }
  3750.     else if( AttValue >= 225)   // 6렙 225 ~ 300
  3751.     {
  3752.         AttackAttLevel[type] = 6;
  3753.         AttackAttMaxValue[type] = 75;
  3754.         AttackAttCurrValue[type] = AttValue - 225;
  3755.     }
  3756.     else if( AttValue >= 175)   // 5렙 175 ~ 225
  3757.     {
  3758.         AttackAttLevel[type] = 5;
  3759.         AttackAttMaxValue[type] = 50;
  3760.         AttackAttCurrValue[type] = AttValue - 175;
  3761.     }
  3762.     else if( AttValue >= 150)   // 4렙 150 ~ 175
  3763.     {
  3764.         AttackAttLevel[type] = 4;
  3765.         AttackAttMaxValue[type] = 25;
  3766.         AttackAttCurrValue[type] = AttValue - 150;
  3767.     }
  3768.     else if( AttValue >= 75)    // 3렙 75 ~ 150
  3769.     {
  3770.         AttackAttLevel[type] = 3;
  3771.         AttackAttMaxValue[type] = 75;
  3772.         AttackAttCurrValue[type] = AttValue - 75;
  3773.     }
  3774.     else if( AttValue >= 25)    // 2렙 25~ 75
  3775.     {
  3776.         AttackAttLevel[type] = 2;
  3777.         AttackAttMaxValue[type] = 50;
  3778.         AttackAttCurrValue[type] = AttValue - 25;
  3779.     }
  3780.     else    // else 0~ 25
  3781.     {
  3782.         AttackAttLevel[type] = 1;
  3783.         AttackAttMaxValue[type] = 25;
  3784.         AttackAttCurrValue[type] = AttValue;
  3785.     }  
  3786. }
  3787. // 속성의 레벨값을 전역변수에 저장    //자료가 많아서 전역변수에 집어넣는다.
  3788.  
  3789.  
  3790. function SetDefAttribute(int Defvalue, int type)
  3791. {
  3792.     if( DefValue >= 150)    // 9렙     150~180
  3793.     {
  3794.         DefAttLevel[type] = 9;
  3795.         DefAttMaxValue[type] = 30;
  3796.         DefAttCurrValue[type] = DefValue - 150;
  3797.     }
  3798.     else if( DefValue >= 132)   // 8렙 132 ~ 150
  3799.     {
  3800.         DefAttLevel[type] = 8;
  3801.         DefAttMaxValue[type] = 18;
  3802.         DefAttCurrValue[type] = DefValue - 132;
  3803.     }
  3804.     else if( DefValue >= 120)   // 7렙 120 ~ 132
  3805.     {
  3806.         DefAttLevel[type] = 7;
  3807.         DefAttMaxValue[type] = 12;
  3808.         DefAttCurrValue[type] = DefValue - 120;
  3809.     }
  3810.     else if( DefValue >= 90)    // 6렙 90 ~ 120
  3811.     {
  3812.         DefAttLevel[type] = 6;
  3813.         DefAttMaxValue[type] = 30;
  3814.         DefAttCurrValue[type] = DefValue - 90;
  3815.     }
  3816.     else if( DefValue >= 72)    // 5렙 72 ~ 90
  3817.     {
  3818.         DefAttLevel[type] = 5;
  3819.         DefAttMaxValue[type] = 18;
  3820.         DefAttCurrValue[type] = DefValue - 72;
  3821.     }
  3822.     else if( DefValue >= 60)    // 4렙 60 ~ 72
  3823.     {
  3824.         DefAttLevel[type] = 4;
  3825.         DefAttMaxValue[type] = 12;
  3826.         DefAttCurrValue[type] = DefValue - 60;
  3827.     }
  3828.     else if( DefValue >= 30)    // 3렙 30 ~ 60
  3829.     {
  3830.         DefAttLevel[type] = 3;
  3831.         DefAttMaxValue[type] = 30;
  3832.         DefAttCurrValue[type] = DefValue - 30;
  3833.     }
  3834.     else if( DefValue >= 12)    // 2렙 // 12 ~ 30
  3835.     {
  3836.         DefAttLevel[type] = 2;
  3837.         DefAttMaxValue[type] = 18;
  3838.         DefAttCurrValue[type] = DefValue - 12;
  3839.     }
  3840.     else    // else             // 0~ 12
  3841.     {
  3842.         DefAttLevel[type] = 1;
  3843.         DefAttMaxValue[type] = 12;
  3844.         DefAttCurrValue[type] = DefValue;
  3845.     }  
  3846. }
  3847.  
  3848. //branch
  3849. function AddPrimeItemSymbol(ItemInfo Item)
  3850. {
  3851.     local string TextureName;
  3852.  
  3853.     if (Item.IsBRPremium != 2)
  3854.         return;
  3855.  
  3856.     TextureName = GetPrimeItemSymbolName();
  3857.     if (Len(TextureName)>0)
  3858.     {
  3859.         StartItem();
  3860.         m_Info.eType = DIT_TEXTURE;
  3861.         m_Info.nOffSetX = 2;
  3862.         m_Info.nOffSetY = 0;
  3863.        
  3864.         m_Info.u_nTextureWidth = 16;
  3865.         m_Info.u_nTextureHeight = 16;
  3866.            
  3867.         m_Info.u_nTextureUWidth = 16;
  3868.         m_Info.u_nTextureUHeight = 16;
  3869.  
  3870.         m_Info.u_strTexture = TextureName;
  3871.         EndItem();
  3872.     }
  3873. }
  3874. //end of branch
  3875. defaultproperties
  3876. {
  3877. }
  3878.  
Advertisement
Add Comment
Please, Sign In to add comment