you need to modify interface.u > tooltip.uc, you can't do anything from interface.xdat.
actually, that image comes from l2aqua's interface, those guys shared their interface compiler a while ago, here's the script:
class Tooltip extends UICommonAPI;
const TOOLTIP_MINIMUM_WIDTH = 144;
const TOOLTIP_SETITEM_MAX = 3;
const ATTRIBUTE_FIRE = 0;
const ATTRIBUTE_WATER = 1;
const ATTRIBUTE_WIND = 2;
const ATTRIBUTE_EARTH = 3;
const ATTRIBUTE_HOLY = 4;
const ATTRIBUTE_UNHOLY = 5;
var CustomTooltip m_Tooltip;
var DrawItemInfo m_Info;
var Array<int> AttackAttLevel;
var Array<int> AttackAttCurrValue;
var Array<int> AttackAttMaxValue; //모든 공격 속성의 레벨, 현재레벨에서의 값, 현재레벨에서의 최대값을 여기에 저장한다.
var Array<int> DefAttLevel;
var Array<int> DefAttCurrValue;
var Array<int> DefAttMaxValue; //모든 방어 속성의 레벨, 현재레벨에서의 값, 현재레벨에서의 최대값을 여기에 저장한다.
var int NowAttrLv;
var int NowMaxValue;
var int NowValue;
var bool BoolSelect;
function OnRegisterEvent()
{
RegisterEvent( EV_RequestTooltipInfo );
}
function OnLoad()
{
BoolSelect = true; // 숏컷 툴팁 켜기/끄기 기본값을 켜기로(TTP#41925) 2010.8.23 - winkey
if(CREATE_ON_DEMAND==0)
OnRegisterEvent();
}
function OnEvent(int Event_ID, string param)
{
switch( Event_ID )
{
case EV_RequestTooltipInfo:
//debug("툴팁이벤트 넘어오냐");
HandleRequestTooltipInfo(param);
break;
}
}
function setBoolSelect( bool b )
{
BoolSelect = b;
}
function HandleRequestTooltipInfo(string param)
{
local String TooltipType;
local int SourceType;
local ETooltipSourceType eSourceType;
ClearTooltip();
if (!ParseString(param, "TooltipType", TooltipType))
return;
if (!ParseInt(param, "SourceType", SourceType))
return;
eSourceType = ETooltipSourceType(SourceType);
//AddSystemMessageString(""$TooltipType);
//AddSystemMessageString(""$eSourceType);
//////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////// Normal Tooltip /////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//debug("Tooltip타입:"$TooltipType);
if (TooltipType == "Text")
{
ReturnTooltip_NTT_TEXT(param, eSourceType, false);
}
else if (TooltipType == "Description")
{
ReturnTooltip_NTT_TEXT(param, eSourceType, true);
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////// ItemWnd Tooltip ////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (TooltipType == "Action")
{
ReturnTooltip_NTT_ACTION(param, eSourceType);
}
else if (TooltipType == "Skill")
{
ReturnTooltip_NTT_SKILL(param, eSourceType);
}
else if (TooltipType == "NormalItem")
{
ReturnTooltip_NTT_NORMALITEM(param, eSourceType);
}
else if (TooltipType == "Shortcut")
{
ReturnTooltip_NTT_SHORTCUT(param, eSourceType);
}
else if (TooltipType == "AbnormalStatus")
{
ReturnTooltip_NTT_ABNORMALSTATUS(param, eSourceType);
}
else if (TooltipType == "RecipeManufacture")
{
ReturnTooltip_NTT_RECIPE_MANUFACTURE(param, eSourceType);
}
else if (TooltipType == "Recipe")
{
ReturnTooltip_NTT_RECIPE(param, eSourceType, false);
}
else if (TooltipType == "RecipePrice")
{
ReturnTooltip_NTT_RECIPE(param, eSourceType, true);
}
else if (TooltipType == "Inventory"
|| TooltipType == "InventoryPrice1"
|| TooltipType == "InventoryPrice2"
|| TooltipType == "InventoryPrice1HideEnchant"
|| TooltipType == "InventoryPrice1HideEnchantStackable"
|| TooltipType == "InventoryPrice2PrivateShop"
|| TooltipType == "InventoryWithIcon"
|| TooltipType == "InventoryPawnViewer") // PawnViewer용 추가 - lancelot 2007. 10. 16.
{
//~ debug("툴팁보여주세요.");
ReturnTooltip_NTT_ITEM(param, TooltipType, eSourceType);
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////// ListCtrl Tooltip ///////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//선준 수정(2010.02.22 ~ 03.08) 완료
else if ( TooltipType == "RoomList" )
{
ReturnTooltip_NTT_ROOMLIST(param, eSourceType);
}
else if ( TooltipType == "UserList" )
{
ReturnTooltip_NTT_USERLIST(param, eSourceType);
}
else if (TooltipType == "PartyMatch")
{
ReturnTooltip_NTT_PARTYMATCH(param, eSourceType);
}
else if (TooltipType == "UnionList")
{
ReturnTooltip_NTT_UNIONLIST(param, eSourceType);
}
else if (TooltipType == "QuestInfo")
{
ReturnTooltip_NTT_QUESTINFO(param, eSourceType);
}
else if (TooltipType == "QuestList")
{
ReturnTooltip_NTT_QUESTLIST(param, eSourceType);
}
else if (TooltipType == "RaidList")
{
ReturnTooltip_NTT_RAIDLIST(param, eSourceType);
}
else if (TooltipType == "ClanInfo")
{
ReturnTooltip_NTT_CLANINFO(param, eSourceType);
}
//선준 수정( 10.03.30 ) 완료
//우편함에 툴팁 추가.
else if (TooltipType == "PostInfo")
{
ReturnTooltip_NTT_POSTINFO(param, eSourceType);
}
/////////////////////////////////////////////////////
// MANOR
else if (TooltipType == "ManorSeedInfo"
|| TooltipType == "ManorCropInfo"
|| TooltipType == "ManorSeedSetting"
|| TooltipType == "ManorCropSetting"
|| TooltipType == "ManorDefaultInfo"
|| TooltipType == "ManorCropSell")
{
ReturnTooltip_NTT_MANOR(param, TooltipType, eSourceType);
}
// [퀘스트 아이템 툴팁 추가]
else if (TooltipType == "QuestItem")
{
ReturnTooltip_NTT_QUESTREWARDS(param, eSourceType);
}
}
function bool IsEnchantableItem(EItemParamType Type)
{
return (Type == ITEMP_WEAPON || Type == ITEMP_ARMOR || Type == ITEMP_ACCESSARY || Type == ITEMP_SHIELD);
}
function ClearTooltip()
{
m_Tooltip.SimpleLineCount = 0;
m_Tooltip.MinimumWidth = 0;
m_Tooltip.DrawList.Remove(0, m_Tooltip.DrawList.Length);
}
function StartItem()
{
local DrawItemInfo infoClear;
m_Info = infoClear;
}
function EndItem()
{
m_Tooltip.DrawList.Length = m_Tooltip.DrawList.Length + 1;
m_Tooltip.DrawList[m_Tooltip.DrawList.Length-1] = m_Info;
}
/////////////////////////////////////////////////////////////////////////////////
// TEXT
function ReturnTooltip_NTT_TEXT(string param, ETooltipSourceType eSourceType, bool bDesc)
{
local string strText;
local int ID;
if (eSourceType == NTST_TEXT)
{
if (ParseString( param, "Text", strText))
{
if (Len(strText)>0)
{
if (bDesc)
{
m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_color.R = 178;
m_Info.t_color.G = 190;
m_Info.t_color.B = 207;
m_Info.t_color.A = 255;
m_Info.t_strText = strText;
EndItem();
}
else
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = strText;
EndItem();
}
}
}
else if (ParseInt( param, "ID", ID))
{
if (ID>0)
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_ID = ID;
EndItem();
}
}
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
/////////////////////////////////////////////////////////////////////////////////
// INVENTORY Etc
function ReturnTooltip_NTT_ITEM(string param, String TooltipType, ETooltipSourceType eSourceType)
{
local ItemInfo Item;
local EItemType eItemType;
local EEtcItemType eEtcItemType;
local bool bLargeWidth;
local string SlotString;
local string strTmp;
local int nTmp;
local int idx;
//제련효과
//local string ItemName;
local int Quality;
local int ColorR;
local int ColorG;
local int ColorB;
local string strDesc1;
local string strDesc2;
local string strDesc3;
// 보급형 아이템
//local int ItemNameClass;
//셋트아이템
//~ local array<ItemID> arrItemID;
local int SetID;
//~ local int SetID2;
//아데나읽어주기
local string strAdena;
local string strAdenaComma;
local color AdenaColor;
local ItemID tmpItemID;
local bool FirstTime1;
if (eSourceType == NTST_ITEM)
{
ParamToItemInfo(param, Item);
SlotString = GetSlotTypeString(Item.ItemType, Item.SlotBitType, Item.ArmorType);
eItemType = EItemType(Item.ItemType);
eEtcItemType = EEtcItemType(Item.ItemSubType);
if( Item.consumeType == 0 )
{
//item icon
StartItem();
m_Info.eType = DIT_TEXTURE;
m_Info.u_nTextureWidth = 32;
m_Info.u_nTextureHeight = 32;
m_Info.u_strTexture = Item.IconName;
EndItem();
if( Item.IconPanel == "InventoryTabs.pvp_tab" && Item.Enchanted > 0 )
Item.IconPanel = "InventoryTabs.pvp_tab_enchant"$Item.Enchanted;
else if( Item.IconPanel == "" && Item.Enchanted > 0 )
Item.IconPanel = "InventoryTabs.tab_enchant"$Item.Enchanted;
StartItem();
m_Info.eType = DIT_TEXTURE;
m_Info.nOffSetX = -32;
m_Info.u_nTextureWidth = 32;
m_Info.u_nTextureHeight = 32;
m_Info.u_strTexture = Item.IconPanel;
EndItem();
if( Item.Enchanted > 0 )
{
//item enchant
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.nOffSetX = 5;
m_Info.t_strText = "+"$Item.Enchanted;
m_Info.t_color.R =230;
m_Info.t_color.G =164;
m_Info.t_color.B =8;
m_Info.t_color.A =255;
EndItem();
}
if( (Item.refineryOp1 != 0 || Item.refineryOp2 != 0) && InStr(Caps(Item.Description), Caps("masterwork") ) != (-1) )
{
//item name
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.nOffSetX = 4;
m_Info.t_strText = "Augmented "$Item.Name;
m_Info.t_color.R =70;
m_Info.t_color.G =247;
m_Info.t_color.B =135;
m_Info.t_color.A =255;
EndItem();
}
else if( Item.refineryOp1 != 0 || Item.refineryOp2 != 0 )
{
//item name
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.nOffSetX = 4;
m_Info.t_strText = "Augmented "$Item.Name;
m_Info.t_color.R =70;
m_Info.t_color.G =243;
m_Info.t_color.B =237;
m_Info.t_color.A =255;
EndItem();
}
else if( InStr(Caps(Item.Description), Caps("masterwork") ) != (-1) )
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.nOffSetX = 4;
m_Info.t_strText = ""$Item.Name;
m_Info.t_color.R =243;
m_Info.t_color.G =241;
m_Info.t_color.B =70;
m_Info.t_color.A =255;
EndItem();
}
else
{
//item name
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.nOffSetX = 4;
m_Info.t_strText = Item.Name;
EndItem();
}
//item special ability
if( Item.AdditionalName != "" )
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.nOffSetX = 4;
m_Info.t_strText = Item.AdditionalName;
m_Info.t_color.R =229;
m_Info.t_color.G =195;
m_Info.t_color.B =95;
m_Info.t_color.A =255;
EndItem();
}
//item grade icon
AddTooltipItemGrade(Item);
strTmp = GetWeaponTypeString(Item.WeaponType);
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.bLineBreak = true;
m_Info.nOffSetX = 36;
m_Info.nOffSetY = -11;
if( strTmp != "" )
m_Info.t_strText = strTmp$" / "$SlotString;
else
m_Info.t_strText = SlotString;
m_Info.t_color.R =175;
m_Info.t_color.G =154;
m_Info.t_color.B =120;
m_Info.t_color.A =255;
EndItem();
m_Tooltip.SimpleLineCount = 2;
if (TooltipType == "InventoryPrice1"
|| TooltipType == "InventoryPrice1HideEnchant"
|| TooltipType == "InventoryPrice1HideEnchantStackable")
{
strAdena = Int64ToString(Item.Price);
strAdenaComma = MakeCostString(strAdena);
AdenaColor = GetNumericColor(strAdenaComma);
//가격 : xxx,xxx,xxx
AddTooltipItemOption(322, strAdenaComma $ " ", true, true, false);
SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
//"아데나"
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color = AdenaColor;
m_Info.t_ID= 469;
EndItem();
//SimpleTooltip을 가격까지 보여준다.
m_Tooltip.SimpleLineCount = 3;
//읽어주기 스트링
if (Item.Price>IntToInt64(0))
{
m_Tooltip.SimpleLineCount = 4;
AddTooltipItemOption(0, "(" $ ConvertNumToText(strAdena) $ ")", false, true, false);
SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
}
}
//InventoryPrice2 타입
if (TooltipType == "InventoryPrice2"
|| TooltipType == "InventoryPrice2PrivateShop")
{
strAdena = Int64ToString(Item.Price);
strAdenaComma = MakeCostString(strAdena);
AdenaColor = GetNumericColor(strAdenaComma);
//가격 : 1개당
AddTooltipItemOption2(322, 468, true, true, false);
SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
//"xxx,xxx,xxx "
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color = AdenaColor;
m_Info.t_strText = " " $ strAdenaComma $ " ";
EndItem();
//"아데나"
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color = AdenaColor;
m_Info.t_ID= 469;
EndItem();
//SimpleTooltip을 가격까지 보여준다.
m_Tooltip.SimpleLineCount = 3;
//읽어주기 스트링
if (Item.Price>IntToInt64(0))
{
m_Tooltip.SimpleLineCount = 4;
//"("
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_color = AdenaColor;
m_Info.t_strText = "(";
EndItem();
//"1개당"
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color = AdenaColor;
m_Info.t_ID = 468;
EndItem();
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color = AdenaColor;
m_Info.t_strText = " " $ ConvertNumToText(strAdena) $ ")";
EndItem();
}
}
//InventoryPrice2PrivateShop 타입
if (TooltipType == "InventoryPrice2PrivateShop")
{
if (IsStackableItem(Item.ConsumeType) && Item.Reserved64 > IntToInt64(0))
{
//"구매개수 : xx"
AddTooltipItemOption(808, Int64ToString(Item.Reserved64), true, true, false);
}
}
}
else
{
if (TooltipType == "InventoryWithIcon")
{
StartItem();
m_Info.eType = DIT_TEXTURE;
m_Info.u_nTextureWidth = 32;
m_Info.u_nTextureHeight = 32;
m_Info.u_strTexture = Item.IconName;
EndItem();
if( Item.consumeType != 0 && Int(Int64ToString(Item.ItemNum)) > 0 && Item.ID.ClassID != 57 && Item.ID.ClassID != 5575 )
Item.IconPanel = "InventoryTabs.tab_consumables"$Min(100, Int(Int64ToString(Item.ItemNum)));
StartItem();
m_Info.eType = DIT_TEXTURE;
m_Info.nOffSetX = -32;
m_Info.u_nTextureWidth = 32;
m_Info.u_nTextureHeight = 32;
m_Info.u_strTexture = Item.IconPanel;
EndItem();
AddTooltipItemBlank(4);
}
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
//m_Info.t_strText = ""$Item.Name$"("$Int64ToString(Item.ItemNum)$")";
m_Info.t_strText = ""$Item.Name;
EndItem();
if (Item.AdditionalName != "")
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = Item.AdditionalName;
m_Info.nOffSetX = 4;
m_Info.t_color.R =229;
m_Info.t_color.G =195;
m_Info.t_color.B =95;
m_Info.t_color.A =255;
EndItem();
}
if( Int64ToInt(Item.ItemNum) > 0 )
AddTooltipItemCount(Item);
if (IsAdena(Item.ID))
{
m_Tooltip.SimpleLineCount = 2;
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = "(" $ ConvertNumToText(Int64ToString(Item.ItemNum)) $ ")";
EndItem();
}
if (TooltipType == "InventoryPrice1"
|| TooltipType == "InventoryPrice1HideEnchant"
|| TooltipType == "InventoryPrice1HideEnchantStackable")
{
strAdena = Int64ToString(Item.Price);
strAdenaComma = MakeCostString(strAdena);
AdenaColor = GetNumericColor(strAdenaComma);
//가격 : xxx,xxx,xxx
AddTooltipItemOption(322, strAdenaComma $ " ", true, true, false);
SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
//"아데나"
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color = AdenaColor;
m_Info.t_ID= 469;
EndItem();
//SimpleTooltip을 가격까지 보여준다.
m_Tooltip.SimpleLineCount = 2;
//읽어주기 스트링
if (Item.Price>IntToInt64(0))
{
m_Tooltip.SimpleLineCount = 3;
AddTooltipItemOption(0, "(" $ ConvertNumToText(strAdena) $ ")", false, true, false);
SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
}
}
//InventoryPrice2 타입
if (TooltipType == "InventoryPrice2"
|| TooltipType == "InventoryPrice2PrivateShop")
{
strAdena = Int64ToString(Item.Price);
strAdenaComma = MakeCostString(strAdena);
AdenaColor = GetNumericColor(strAdenaComma);
//가격 : 1개당
AddTooltipItemOption2(322, 468, true, true, false);
SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
//"xxx,xxx,xxx "
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color = AdenaColor;
m_Info.t_strText = " " $ strAdenaComma $ " ";
EndItem();
//"아데나"
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color = AdenaColor;
m_Info.t_ID= 469;
EndItem();
//SimpleTooltip을 가격까지 보여준다.
m_Tooltip.SimpleLineCount = 2;
//읽어주기 스트링
if (Item.Price>IntToInt64(0))
{
m_Tooltip.SimpleLineCount = 3;
//"("
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_color = AdenaColor;
m_Info.t_strText = "(";
EndItem();
//"1개당"
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color = AdenaColor;
m_Info.t_ID = 468;
EndItem();
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color = AdenaColor;
m_Info.t_strText = " " $ ConvertNumToText(strAdena) $ ")";
EndItem();
}
}
//InventoryPrice2PrivateShop 타입
if (TooltipType == "InventoryPrice2PrivateShop")
{
if (IsStackableItem(Item.ConsumeType) && Item.Reserved64 > IntToInt64(0))
{
//"구매개수 : xx"
AddTooltipItemOption(808, Int64ToString(Item.Reserved64), true, true, false);
}
}
}
AddTooltipItemBlank(4);
StartItem();
m_Info.eType = DIT_SPLITLINE;
m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;
m_Info.u_nTextureHeight = 1;
m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
EndItem();
switch (eItemType)
{
// 1. WEAPON
case ITEM_WEAPON:
bLargeWidth = true;
//Physical Damage
//AddTooltipItemOptionDamage(94, String(GetPhysicalDamage(Item.WeaponType, Item.SlotBitType, Item.CrystalType, Item.Enchanted, Item.PhysicalDamage)), true, true, false);
AddTooltipItemOptionDamage(94, Item, true, true, false);
//Masical Damage
//AddTooltipItemOptionDamage(98, String(GetMagicalDamage(Item.WeaponType, Item.SlotBitType, Item.CrystalType, Item.Enchanted, Item.MagicalDamage)), true, true, false);
AddTooltipItemOptionDamage(98, Item, true, true, false);
//Attack Speed
AddTooltipItemOption(111, GetAttackSpeedString(Item.AttackSpeed), true, true, false);
//SoulShot Count
if (Item.SoulshotCount>0)
{
AddTooltipItemOption(404, "X " $ Item.SoulshotCount, true, true, false);
}
//SpiritShot Count
if (Item.SpiritShotCount>0)
{
AddTooltipItemOption(496, "X " $ Item.SpiritshotCount, true, true, false);
}
//Weight
if (Item.Weight==0)
AddTooltipItemOption(52, " 0 ", true, true, false);
else
AddTooltipItemOption(52, String(Item.Weight), true, true, false);
//AddTooltipItemOption(52, String(Item.Weight), true, true, false);
//MP Consume
if (Item.MpConsume != 0)
{
AddTooltipItemOption(320, String(Item.MpConsume), true, true, false);
}
//제련효과
if (Item.RefineryOp1 != 0 || Item.RefineryOp2 != 0)
{
AddTooltipItemBlank(4);
StartItem();
m_Info.eType = DIT_SPLITLINE;
m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;
m_Info.u_nTextureHeight = 1;
m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
EndItem();
//컬러값 취득
if (Item.RefineryOp2 != 0)
{
Quality = class'UIDATA_REFINERYOPTION'.static.GetQuality( Item.RefineryOp2 );
GetRefineryColor(Quality, ColorR, ColorG, ColorB);
}
if (Item.RefineryOp1 != 0)
{
strDesc1 = "";
strDesc2 = "";
strDesc3 = "";
if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.RefineryOp1, strDesc1, strDesc2, strDesc3 ))
{
if (Len(strDesc1)>0)
{
AddTooltipItemOption(0, strDesc1, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc2)>0)
{
AddTooltipItemOption(0, strDesc2, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc3)>0)
{
AddTooltipItemOption(0, strDesc3, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
}
}
if (Item.RefineryOp2 != 0)
{
strDesc1 = "";
strDesc2 = "";
strDesc3 = "";
if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.RefineryOp2, strDesc1, strDesc2, strDesc3 ))
{
if (Len(strDesc1)>0)
{
AddTooltipItemOption(0, strDesc1, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc2)>0)
{
AddTooltipItemOption(0, strDesc2, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc3)>0)
{
AddTooltipItemOption(0, strDesc3, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
}
}
//"교환/드롭 불가"
AddTooltipItemOption(1491, "", true, false, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
break;
// 2. ARMOR
case ITEM_ARMOR:
bLargeWidth = true;
// Sheild
if ( Item.SlotBitType == 256 && Item.ArmorType == 4 ) // ArmorType == 4 is sigil..
{
if (Item.PhysicalDefense != 0)
AddTooltipItemOptionDef(95, Item, true, true, false);
//Avoid Modify
if (Item.AvoidModify != 0)
AddTooltipItemOption(97, String(Item.AvoidModify), true, true, false);
//Weight
if (Item.Weight != 0)
{
AddTooltipItemOption(52, String(Item.Weight), true, true, false);
AddTooltipItemBlank(4);
}
}
else if (Item.SlotBitType == 256 || Item.SlotBitType == 128) //SBT_LHAND or SBT_RHAND
{
//Shield Defense
//debug("Shield Defense" $ Item.ShieldDefense);
if (Item.ShieldDefense != 0)
AddTooltipItemOptionDef(95, Item, true, true, false, true);
//Shield Defense Rate
//debug("Shield Defense Rate" $ Item.ShieldDefenseRate);
if (Item.ShieldDefenseRate != 0)
AddTooltipItemOption(317, String(Item.ShieldDefenseRate), true, true, false);
//Avoid Modify
//debug("Avoid Modify" $ Item.AvoidModify);
if (Item.AvoidModify != 0)
AddTooltipItemOption(97, String(Item.AvoidModify), true, true, false);
//Weight
//debug("Weight" $ Item.Weight);
if (Item.Weight != 0)
{
AddTooltipItemOption(52, String(Item.Weight), true, true, false);
AddTooltipItemBlank(4);
}
}
// Magical Armor
else if (IsMagicalArmor(Item.ID))
{
//MP Bonus
AddTooltipItemOption(388, String(Item.MpBonus), true, true, false);
//Physical Defense
if (Item.SlotBitType == 65536)
{
}
else if ( Item.SlotBitType == 524288)
{
}
else if ( Item.SlotBitType == 262144)
{
}
else
{
if (Item.PhysicalDefense != 0)
AddTooltipItemOptionDef(95, Item, true, true, false);
}
//Weight
if (Item.Weight != 0)
{
AddTooltipItemOption(52, String(Item.Weight), true, true, false);
AddTooltipItemBlank(4);
}
}
// Physical Armor
else
{
//Physical Defense
if (Item.SlotBitType == 65536)
{
}
else if ( Item.SlotBitType == 524288)
{
}
else if ( Item.SlotBitType == 262144)
{
}
else
{
if (Item.PhysicalDefense != 0)
AddTooltipItemOptionDef(95, Item, true, true, false);
}
//Weight
if (Item.Weight != 0)
{
AddTooltipItemOption(52, String(Item.Weight), true, true, false);
AddTooltipItemBlank(4);
}
}
//제련효과
if (Item.RefineryOp1 != 0 || Item.RefineryOp2 != 0)
{
//빈공간
AddTooltipItemBlank(12);
//"[제련효과]"
AddTooltipItemOption(1490, "", true, false, false);
SetTooltipItemColor(255, 255, 255, 0);
//컬러값 취득
if (Item.RefineryOp2 != 0)
{
Quality = class'UIDATA_REFINERYOPTION'.static.GetQuality( Item.RefineryOp2 );
GetRefineryColor(Quality, ColorR, ColorG, ColorB);
}
if (Item.RefineryOp1 != 0)
{
strDesc1 = "";
strDesc2 = "";
strDesc3 = "";
if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.RefineryOp1, strDesc1, strDesc2, strDesc3 ))
{
if (Len(strDesc1)>0)
{
AddTooltipItemOption(0, strDesc1, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc2)>0)
{
AddTooltipItemOption(0, strDesc2, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc3)>0)
{
AddTooltipItemOption(0, strDesc3, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
}
}
if (Item.RefineryOp2 != 0)
{
strDesc1 = "";
strDesc2 = "";
strDesc3 = "";
if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.RefineryOp2, strDesc1, strDesc2, strDesc3 ))
{
if (Len(strDesc1)>0)
{
AddTooltipItemOption(0, strDesc1, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc2)>0)
{
AddTooltipItemOption(0, strDesc2, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc3)>0)
{
AddTooltipItemOption(0, strDesc3, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
}
}
//빈공간
AddTooltipItemBlank(12);
}
break;
// 3. ACCESSARY
case ITEM_ACCESSARY:
bLargeWidth = true;
//Magical Defense
// 탈리스만은 아이템 마방을 보여주지 않는다.
// 왼팔찌 오른팔찌도 마방을 보여주지 않는다.
if ((Item.SlotBitType != 4194304 ) && (Item.SlotBitType != 1048576 ) && (Item.SlotBitType != 2097152 ))
AddTooltipItemOptionDef(99, Item, true, true, false);
if (Item.Weight == 0)
AddTooltipItemOption(52, " 0 ", true, true, false);
else
AddTooltipItemOption(52, String(Item.Weight), true, true, false);
//debug ("Refinery Result Accessotires" @ Item.RefineryOp1);
//제련효과
if (Item.RefineryOp1 != 0 || Item.RefineryOp2 != 0)
{
//빈공간
AddTooltipItemBlank(3);
StartItem();
m_Info.eType = DIT_SPLITLINE;
m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;
m_Info.u_nTextureHeight = 1;
m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
EndItem();
//컬러값 취득
if (Item.RefineryOp2 != 0)
{
Quality = class'UIDATA_REFINERYOPTION'.static.GetQuality( Item.RefineryOp2 );
GetRefineryColor(Quality, ColorR, ColorG, ColorB);
}
if (Item.RefineryOp1 != 0)
{
strDesc1 = "";
strDesc2 = "";
strDesc3 = "";
if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.RefineryOp1, strDesc1, strDesc2, strDesc3 ))
{
if (Len(strDesc1)>0)
{
AddTooltipItemOption(0, strDesc1, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc2)>0)
{
AddTooltipItemOption(0, strDesc2, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc3)>0)
{
AddTooltipItemOption(0, strDesc3, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
}
}
if (Item.RefineryOp2 != 0)
{
strDesc1 = "";
strDesc2 = "";
strDesc3 = "";
if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.RefineryOp2, strDesc1, strDesc2, strDesc3 ))
{
if (Len(strDesc1)>0)
{
AddTooltipItemOption(0, strDesc1, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc2)>0)
{
AddTooltipItemOption(0, strDesc2, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc3)>0)
{
AddTooltipItemOption(0, strDesc3, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
}
}
//빈공간
AddTooltipItemBlank(1);
}
break;
// 4. QUEST
case ITEM_QUESTITEM:
bLargeWidth = true;
//Slot Type
if (Len(SlotString)>0)
AddTooltipItemOption(0, SlotString, false, true, false);
break;
// 5. ETC
case ITEM_ETCITEM:
bLargeWidth = true;
if (eEtcItemType == ITEME_PET_COLLAR)
{
//Pet Name
if (Item.Damaged == 0)
nTmp = 971;
else
nTmp = 970;
AddTooltipItemOption2(969, nTmp, true, true, false);
//Pet Level
AddTooltipItemOption(88, String(Item.Enchanted), true, true, false);
}
else if (eEtcItemType == ITEME_TICKET_OF_LORD)
{
AddTooltipItemOption(972, String(Item.Enchanted), true, true, false);
}
else if (eEtcItemType == ITEME_LOTTO)
{
// 복권에서는 bless가 회차, 몬스터레이스에서는 Enchant가 회차입니다. 주의하세요! - lancelot 2008. 11. 11.
// 회차
AddTooltipItemOption(670, String(Item.Blessed), true, true, false);
// 선택번호
AddTooltipItemOption(671, GetLottoString(Item.Enchanted, Item.Damaged), true, true, false);
}
else if (eEtcItemType == ITEME_RACE_TICKET)
{
// 회차
AddTooltipItemOption(670, String(Item.Enchanted), true, true, false);
// 선택번호
AddTooltipItemOption(671, GetRaceTicketString(Item.Blessed), true, true, false);
//Money
AddTooltipItemOption(744, String(Item.Damaged*100), true, true, false);
}
//Weight
//~ if (Item.Price!=0)
if (Item.Weight==0)
AddTooltipItemOption(52, " 0 ", true, true, false);
else
AddTooltipItemOption(52, String(Item.Weight), true, true, false);
break;
}
/////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
// [칠월칠석, 방어구 각인] item enchant option - by jin 09/08/05
if (Item.EnchantOption1 != 0 || Item.EnchantOption2 != 0 || Item.EnchantOption3 != 0)
{
//빈공간
AddTooltipItemBlank(12);
//"[인챈트효과]"
AddTooltipItemOption(2214, "", true, false, false);
SetTooltipItemColor(255, 255, 255, 0);
//컬러값 취득
if (Item.EnchantOption1 != 0)
{
// [칠월칠석, 방어구각인] 각인 효과는 일단 무조건 1번 색상을 사용. - by jin 09/08/06
GetRefineryColor(1, ColorR, ColorG, ColorB);
}
if (Item.EnchantOption1 != 0)
{
strDesc1 = "";
strDesc2 = "";
strDesc3 = "";
if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.EnchantOption1, strDesc1, strDesc2, strDesc3 ))
{
if (Len(strDesc1)>0)
{
AddTooltipItemOption(0, strDesc1, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc2)>0)
{
AddTooltipItemOption(0, strDesc2, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc3)>0)
{
AddTooltipItemOption(0, strDesc3, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
}
}
if (Item.EnchantOption2 != 0)
{
strDesc1 = "";
strDesc2 = "";
strDesc3 = "";
if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.EnchantOption2, strDesc1, strDesc2, strDesc3 ))
{
if (Len(strDesc1)>0)
{
AddTooltipItemOption(0, strDesc1, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc2)>0)
{
AddTooltipItemOption(0, strDesc2, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc3)>0)
{
AddTooltipItemOption(0, strDesc3, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
}
}
if (Item.EnchantOption3 != 0)
{
strDesc1 = "";
strDesc2 = "";
strDesc3 = "";
if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.EnchantOption3, strDesc1, strDesc2, strDesc3 ))
{
if (Len(strDesc1)>0)
{
AddTooltipItemOption(0, strDesc1, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc2)>0)
{
AddTooltipItemOption(0, strDesc2, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
if (Len(strDesc3)>0)
{
AddTooltipItemOption(0, strDesc3, false, true, false);
SetTooltipItemColor(ColorR, ColorG, ColorB, 0);
}
}
}
//빈공간
AddTooltipItemBlank(12);
}
//내구도 아이템
if (Item.CurrentDurability >= 0 && Item.Durability > 0)
{
bLargeWidth = true;
//빈공간
AddTooltipItemBlank(12);
//<투영 병기 정보>
AddTooltipItemOption(1492, "", true, false, false);
SetTooltipItemColor(255, 255, 255, 0);
//사용가능 시간
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_ID = 1493;
EndItem();
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
if (Item.CurrentDurability+1 <= 5)
{
m_Info.t_color.R = 255;
m_Info.t_color.G = 0;
m_Info.t_color.B = 0;
}
else
{
m_Info.t_color.R = 176;
m_Info.t_color.G = 155;
m_Info.t_color.B = 121;
}
m_Info.t_color.A = 255;
m_Info.t_strText = " " $ Item.CurrentDurability $ "/" $ Item.Durability;
EndItem();
//"교환/드롭 불가"
AddTooltipItemOption(1491, "", true, false, false);
//빈공간
if (Len(Item.Description)>0)
{
AddTooltipItemBlank(12);
}
}
//branch
//에너지 정보
if (Item.BR_MaxEnergy > 0)
{
//bLargeWidth = true;
//빈공간
AddTooltipItemBlank(12);
//<에너지 정보>
AddTooltipItemOption(5065, "", true, false, false);
SetTooltipItemColor(255, 255, 255, 0);
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_ID = 5066;
EndItem();
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.bLineBreak = true;
if ( Item.BR_CurrentEnergy==0 || (Item.BR_MaxEnergy / Item.BR_CurrentEnergy > 10) )
{
m_Info.t_color.R = 255;
m_Info.t_color.G = 0;
m_Info.t_color.B = 0;
}
else
{
m_Info.t_color.R = 176;
m_Info.t_color.G = 155;
m_Info.t_color.B = 121;
}
m_Info.t_color.A = 255;
//m_Info.t_strText = " " $ Item.BR_CurrentEnergy $ "/" $ Item.BR_MaxEnergy;
m_Info.t_strText = " " ;
ParamAdd(m_Info.Condition, "Type", "CurrentEnergy");
EndItem();
}
//end of branch
if( Item.ID.ClassID == 57 || Item.ID.ClassID == 5575 )
{
AddTooltipItemOption(52, " 0 ", true, true, false);
}
//설명
if (Len(Item.Description)>0)
{
AddTooltipItemBlank(3);
StartItem();
m_Info.eType = DIT_SPLITLINE;
m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;
m_Info.u_nTextureHeight = 1;
m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
EndItem();
bLargeWidth = true;
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_color.R = 178;
m_Info.t_color.G = 190;
m_Info.t_color.B = 207;
m_Info.t_color.A = 255;
m_Info.t_strText = Item.Description;
EndItem();
AddTooltipItemBlank(4);
}
/////////////////////////////////////////////////////////////////////////////////////////
// 셋트 아이템 정보
if (IsValidItemID(Item.ID))
{
for (idx=0; idx<TOOLTIP_SETITEM_MAX; idx++)
{
//셋트아이템 리스트
for (SetID=0; SetID<class'UIDATA_ITEM'.static.GetSetItemNum(Item.ID, idx); SetID++) //0,1,2번 세트아이템효과 에 대해서 각각 몇가지의 세트가 완비되야하나..
{
bLargeWidth = true;
if (!class'UIDATA_ITEM'.static.IsExistSetItem(Item.ID, idx, SetID))
{
if( !FirstTime1 )
{
if( Len(Item.Description)==0 )
AddTooltipItemBlank(0);
AddTooltipItemBlank(0);
StartItem();
m_Info.eType = DIT_SPLITLINE;
m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;
m_Info.u_nTextureHeight = 1;
m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
EndItem();
FirstTime1=true;
}
tmpItemID.classID = class'UIDATA_ITEM'.static.GetSetItemFirstID(Item.ID, idx, SetID);
if (tmpItemID.classID > 0)
{
StartItem();
m_Info.eType = DIT_TEXTURE;
m_Info.u_strTexture = class'UIDATA_ITEM'.static.GetItemTextureName(tmpItemID);
m_Info.u_nTextureWidth = 16;
m_Info.u_nTextureHeight = 16;
m_Info.u_nTextureUWidth = 32;
m_Info.u_nTextureUHeight = 32;
m_Info.nOffSetY = 5;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
EndItem();
strTmp = class'UIDATA_ITEM'.static.GetItemName(tmpItemID);
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.nOffSetX = 4;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 112;
m_Info.t_color.G = 115;
m_Info.t_color.B = 123;
m_Info.t_color.A = 255;
m_Info.t_strText = strTmp;
ParamAdd(m_info.Condition, "SetItemNum", string(idx));
ParamAdd(m_Info.Condition, "Type", "Equip");
ParamAddItemID(m_Info.Condition, Item.ID);
ParamAdd(m_Info.Condition, "CurTypeID", string(SetID)); //비교할 아이템의 Type 예(0번:흉갑 1번:각반 2번:헬멧 3번:팔 4번 다리 ..ItemName.txt에 들어있는순서
ParamAdd(m_Info.Condition, "NormalColor", "112,115,123");
ParamAdd(m_Info.Condition, "EnableColor", "176,185,205");
EndItem();
}
}
}
//셋트효과
strTmp = class'UIDATA_ITEM'.static.GetSetItemEffectDescription(Item.ID, idx);
if (Len(strTmp)>0)
{
bLargeWidth = true;
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_color.R = 128;
m_Info.t_color.G = 127;
m_Info.t_color.B = 103;
m_Info.t_color.A = 255;
m_Info.t_strText = strTmp;
ParamAdd(m_Info.Condition, "Type", "SetEffect");
ParamAddItemID(m_Info.Condition, Item.ID);
ParamAdd(m_Info.Condition, "EffectID", String(idx));
ParamAdd(m_Info.Condition, "NormalColor", "128,127,103");
ParamAdd(m_Info.Condition, "EnableColor", "183,178,122");
EndItem();
}
}
//인첸트 셋트효과
strTmp = class'UIDATA_ITEM'.static.GetSetItemEnchantEffectDescription(Item.ID);
if (Len(strTmp)>0)
{
bLargeWidth = true;
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_color.R = 74;
m_Info.t_color.G = 92;
m_Info.t_color.B = 104;
m_Info.t_color.A = 255;
m_Info.t_strText = strTmp;
ParamAdd(m_Info.Condition, "Type", "EnchantEffect");
ParamAddItemID(m_Info.Condition, Item.ID);
ParamAdd(m_Info.Condition, "NormalColor", "74,92,104");
ParamAdd(m_Info.Condition, "EnableColor", "111,146,169");
EndItem();
AddTooltipItemBlank(3);
}
}
//퀘스트 정보를 표시한다.
AddTooltipItemQuestList(Item);
// 속성 게이지를 그려준다.
AddTooltipItemAttributeGage(Item);
// 기간제 아이템
if ( Item.CurrentPeriod > 0)
{
//빈공간
AddTooltipItemBlank(12);
//<기간제 아이템>
AddTooltipItemOption(1739, "", true, false, false);
SetTooltipItemColor(255, 255, 255, 0);
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_ID = 1199;
EndItem();
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_strText = " : ";
EndItem();
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_color.R = 178;
m_Info.t_color.G = 190;
m_Info.t_color.B = 207;
m_Info.t_color.A = 255;
m_Info.t_strText = "" $ MakeTimeStr(Item.CurrentPeriod);
ParamAdd(m_Info.Condition, "Type", "PeriodTime");
EndItem();
}
}
else
{
return;
}
if (bLargeWidth)
m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
if(TooltipType == "InventoryPawnViewer") // PawnViewer용 추가 - lancelot 2007. 10. 16.
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.bLineBreak = true;
m_Info.t_strText ="ID : "$string(Item.Id.classID);
EndItem();
}
ReturnTooltipInfo(m_Tooltip);
}
/////////////////////////////////////////////////////////////////////////////////
// ACTION
function ReturnTooltip_NTT_ACTION(string param, ETooltipSourceType eSourceType)
{
local ItemInfo Item;
local ItemInfo TheItemInfo;
local MacroInfo TheMacroInfo;
local int i;
if (eSourceType == NTST_ITEM)
{
ParseString( param, "Name", Item.Name);
ParseString( param, "Description", Item.Description);
ParamToItemInfo(param, TheItemInfo);
//액션 이름
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = Item.Name;
m_Info.t_color.R = 202;
m_Info.t_color.G = 174;
m_Info.t_color.B = 115;
m_Info.t_color.A = 255;
EndItem();
//액션 설명
if (Len(Item.Description)>0)
{
m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = false;
m_Info.bLineBreak = true;
m_Info.t_color.R = 178;
m_Info.t_color.G = 190;
m_Info.t_color.B = 207;
m_Info.t_color.A = 255;
m_Info.t_strText = Item.Description;
EndItem();
}
if( class'UIDATA_MACRO'.static.GetMacroInfo(TheItemInfo.ID, TheMacroInfo) )
{
for( i=0; i<12; i++ )
{
if( TheMacroInfo.CommandList[i] == "" )
break;
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.bLineBreak = true;
m_Info.t_strText = TheMacroInfo.CommandList[i];
m_Info.t_color.R =169;
m_Info.t_color.G =149;
m_Info.t_color.B =117;
m_Info.t_color.A =255;
EndItem();
}
}
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
/////////////////////////////////////////////////////////////////////////////////
// SKILL
function ReturnTooltip_NTT_SKILL(string param, ETooltipSourceType eSourceType)
{
local ItemInfo Item;
local EItemParamType eItemParamType;
local EShortCutItemType eShortCutType;
local int nTmp;
local int SkillLevel;
debug("툴팁들어오나");
if (eSourceType == NTST_ITEM)
{
ParseItemID( param, Item.ID );
ParseString( param, "Name", Item.Name);
ParseString( param, "AdditionalName", Item.AdditionalName);
ParseString( param, "Description", Item.Description);
ParseInt( param, "Level", Item.Level);
eShortCutType = EShortCutItemType(Item.ItemSubType);
eItemParamType = EItemParamType(Item.ItemType);
SkillLevel = Item.Level;
m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
//아이템 이름
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = Item.Name;
EndItem();
// 인챈트시 변환된 레벨을 원래 레벨로 변환시켜준다.
if (Len(Item.AdditionalName)>0)
{
SkillLevel = class'UIDATA_SKILL'.static.GetEnchantSkillLevel( Item.ID, Item.Level );
}
//ex) " Lv "
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = " ";
EndItem();
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_ID = 88;
EndItem();
//스킬 레빌
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 176;
m_Info.t_color.G = 155;
m_Info.t_color.B = 121;
m_Info.t_color.A = 255;
m_Info.t_strText = " " $ SkillLevel;
EndItem();
// 인챈트 내용을 뿌려주는 곳은 이곳
if (Len(Item.AdditionalName)>0)
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetX = 5;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 255;
m_Info.t_color.G = 217;
m_Info.t_color.B = 105;
m_Info.t_color.A = 255;
m_Info.t_strText = Item.AdditionalName;
EndItem();
}
//Operate Type
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 176;
m_Info.t_color.G = 155;
m_Info.t_color.B = 121;
m_Info.t_color.A = 255;
m_Info.t_strText = class'UIDATA_SKILL'.static.GetOperateType( Item.ID, Item.Level );
EndItem();
//소모HP
nTmp = class'UIDATA_SKILL'.static.GetHpConsume( Item.ID, Item.Level );
if (nTmp>0)
{
AddTooltipItemOption(1195, String(nTmp), true, true, false);
}
//소모MP
nTmp = class'UIDATA_SKILL'.static.GetMpConsume( Item.ID, Item.Level );
if (nTmp>0)
{
AddTooltipItemOption(320, String(nTmp), true, true, false);
}
//유효거리
nTmp = class'UIDATA_SKILL'.static.GetCastRange( Item.ID, Item.Level );
if (nTmp>=0)
{
AddTooltipItemOption(321, String(nTmp), true, true, false);
}
//설명
if (Len(Item.Description)>0)
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_color.R = 178;
m_Info.t_color.G = 190;
m_Info.t_color.B = 207;
m_Info.t_color.A = 255;
m_Info.t_strText = Item.Description;
EndItem();
}
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
/////////////////////////////////////////////////////////////////////////////////
// ABNORMALSTATUS
function ReturnTooltip_NTT_ABNORMALSTATUS(string param, ETooltipSourceType eSourceType)
{
local ItemInfo Item;
local int ShowLevel;
local EItemParamType eItemParamType;
local EShortCutItemType eShortCutType;
if (eSourceType == NTST_ITEM)
{
ParseItemID( param, Item.ID );
ParseString( param, "Name", Item.Name);
ParseString( param, "AdditionalName", Item.AdditionalName);
ParseString( param, "Description", Item.Description);
ParseInt( param, "Level", Item.Level);
ParseInt( param, "Reserved", Item.Reserved);
eShortCutType = EShortCutItemType(Item.ItemSubType);
eItemParamType = EItemParamType(Item.ItemType);
m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
//아이템 이름
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = Item.Name;
EndItem();
ShowLevel = Item.Level;
if (Len(Item.AdditionalName)>0)
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetX = 5;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 255;
m_Info.t_color.G = 217;
m_Info.t_color.B = 105;
m_Info.t_color.A = 255;
m_Info.t_strText = Item.AdditionalName;
EndItem();
ShowLevel = class'UIDATA_SKILL'.static.GetEnchantSkillLevel( Item.ID, Item.Level );
}
//ex) " Lv "
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = " ";
EndItem();
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_ID = 88;
EndItem();
//스킬 레벨
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 176;
m_Info.t_color.G = 155;
m_Info.t_color.B = 121;
m_Info.t_color.A = 255;
m_Info.t_strText = " " $ ShowLevel;
EndItem();
//남은시간
if (!IsDeBuff(Item.ID, Item.Level) && Item.Reserved>=0)
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_ID = 1199;
EndItem();
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_strText = " : ";
EndItem();
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 176;
m_Info.t_color.G = 155;
m_Info.t_color.B = 121;
m_Info.t_color.A = 255;
m_Info.t_strText = MakeBuffTimeStr(Item.Reserved);
ParamAdd(m_Info.Condition, "Type", "RemainTime");
EndItem();
}
//설명
if (Len(Item.Description)>0)
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_color.R = 178;
m_Info.t_color.G = 190;
m_Info.t_color.B = 207;
m_Info.t_color.A = 255;
m_Info.t_strText = Item.Description;
EndItem();
}
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
/////////////////////////////////////////////////////////////////////////////////
// NORMALITEM
function ReturnTooltip_NTT_NORMALITEM(string param, ETooltipSourceType eSourceType)
{
local ItemInfo Item;
if (eSourceType == NTST_ITEM)
{
ParseString( param, "Name", Item.Name);
ParseString( param, "Description", Item.Description);
ParseString( param, "AdditionalName", Item.AdditionalName);
ParseInt( param, "CrystalType", Item.CrystalType);
//아이템 이름
AddTooltipItemName(Item.Name, Item, 1);
//Grade Mark
AddTooltipItemGrade(Item);
//설명
if (Len(Item.Description)>0)
{
m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_color.R = 178;
m_Info.t_color.G = 190;
m_Info.t_color.B = 207;
m_Info.t_color.A = 255;
m_Info.t_strText = Item.Description;
EndItem();
}
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
/////////////////////////////////////////////////////////////////////////////////
// RECIPE
function ReturnTooltip_NTT_RECIPE(string param, ETooltipSourceType eSourceType, bool bShowPrice)
{
local ItemInfo Item;
local string strAdena;
local string strAdenaComma;
local color AdenaColor;
if (eSourceType == NTST_ITEM)
{
ParseString( param, "Name", Item.Name);
ParseString( param, "Description", Item.Description);
ParseString( param, "AdditionalName", Item.AdditionalName);
ParseInt( param, "CrystalType", Item.CrystalType);
ParseInt( param, "Weight", Item.Weight);
ParseINT64( param, "Price", Item.Price);
//아이템 이름
AddTooltipItemName(Item.Name, Item, 1);
//Grade Mark
AddTooltipItemGrade(Item);
//가격
if (bShowPrice)
{
strAdena = Int64ToString(Item.Price);
strAdenaComma = MakeCostString(strAdena);
AdenaColor = GetNumericColor(strAdenaComma);
//가격 : xxx,xxx,xxx
AddTooltipItemOption(641, strAdenaComma $ " ", true, true, false);
SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
//"아데나"
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color = AdenaColor;
m_Info.t_ID= 469;
EndItem();
//읽어주기 스트링
AddTooltipItemOption(0, "(" $ ConvertNumToText(strAdena) $ ")", false, true, false);
SetTooltipItemColor(AdenaColor.R, AdenaColor.G, AdenaColor.B, 0);
}
//Weight
AddTooltipItemOption(52, String(Item.Weight), true, true, false);
//설명
if (Len(Item.Description)>0)
{
m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_color.R = 178;
m_Info.t_color.G = 190;
m_Info.t_color.B = 207;
m_Info.t_color.A = 255;
m_Info.t_strText = Item.Description;
EndItem();
}
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
/////////////////////////////////////////////////////////////////////////////////
// SHORTCUT
function ReturnTooltip_NTT_SHORTCUT(string param, ETooltipSourceType eSourceType)
{
local ItemInfo Item;
local EItemParamType eItemParamType;
local EShortCutItemType eShortCutType;
local string ItemName;
local ShortcutCommandItem commandItem;
local int shortcutID;
local string strShort;
local int i;
local ItemInfo TheItemInfo;
local MacroInfo TheMacroInfo;
local ShortcutAssignWnd Script;
Script = ShortcutAssignWnd( GetScript( "OptionWnd.ShortcutTab" ) );
strShort = "<" $ GetSystemString(1523) $ ": ";
if (eSourceType == NTST_ITEM)
{
if( BoolSelect )
{
ParseInt( param, "ItemSubType", Item.ItemSubType);
ParseString( param, "Name", Item.Name);
ParseInt( param, "RefineryOp1", Item.RefineryOp1);
ParseInt( param, "RefineryOp2", Item.RefineryOp2);
eShortCutType = EShortCutItemType(Item.ItemSubType);
//아이템 이름 취득
ItemName = class'UIDATA_ITEM'.static.GetRefineryItemName( Item.Name, Item.RefineryOp1, Item.RefineryOp2 );
switch (eShortCutType)
{
case SCIT_ITEM:
ReturnTooltip_NTT_ITEM(param, "inventory", eSourceType);
break;
case SCIT_SKILL:
ReturnTooltip_NTT_SKILL(param, eSourceType);
break;
case SCIT_ACTION:
case SCIT_MACRO:
if (eSourceType == NTST_ITEM)
{
ParseString( param, "Name", Item.Name);
ParseString( param, "Description", Item.Description);
ParamToItemInfo(param, TheItemInfo);
m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
//액션 이름
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = Item.Name;
m_Info.t_color.R =202;
m_Info.t_color.G =174;
m_Info.t_color.B =115;
m_Info.t_color.A =255;
EndItem();
//액션 설명
if( class'UIDATA_MACRO'.static.GetMacroInfo(TheItemInfo.ID, TheMacroInfo) )
{
for( i=0; i<12; i++ )
{
if( TheMacroInfo.CommandList[i] == "" )
break;
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.bLineBreak = true;
m_Info.t_strText = TheMacroInfo.CommandList[i];
m_Info.t_color.R =169;
m_Info.t_color.G =149;
m_Info.t_color.B =117;
m_Info.t_color.A =255;
EndItem();
}
}
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
break;
case SCIT_RECIPE:
case SCIT_BOOKMARK:
//아이템 이름
m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
StartItem();
m_Info.eType = DIT_TEXT;
//m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = ItemName;
EndItem();
break;
default:
break;
}
ParseINT(param, "ShortcutID", shortcutID);
if( GetOptionBool( "Game", "EnterChatting" ) )
{
class'ShortcutAPI'.static.GetAssignedKeyFromCommand("TempStateShortcut", "UseShortcutItem Num=" $ shortcutID, commandItem);
}
else
{
class'ShortcutAPI'.static.GetAssignedKeyFromCommand("GamingStateShortcut", "UseShortcutItem Num=" $ shortcutID, commandItem);
}
//단축키 설명...
if( commandItem.subkey1 != "" )
{
strShort = strShort $ Script.GetUserReadableKeyName( commandItem.subkey1 ) $ "+";
}
if( commandItem.subkey2 != "" )
{
strShort = strShort $ Script.GetUserReadableKeyName( commandItem.subkey2 ) $ "+";
}
if( commandItem.Key != "" )
{
strShort = strShort $ Script.GetUserReadableKeyName( commandItem.Key ) $ ">";
}
if( commandItem.subkey1 == "" && commandItem.subkey2 == "" && commandItem.Key == "" )
{
strShort = strShort $ GetSystemString(27) $">";
}
//줄추가~
AddTooltipItemBlank(2);
StartItem();
m_Info.eType = DIT_SPLITLINE;
m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;
m_Info.u_nTextureHeight = 1;
m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
EndItem();
if( ItemName != "" )
{
AddTooltipItemBlank(5);
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_strText = strShort;
EndItem();
AddTooltipItemBlank(4);
ReturnTooltipInfo(m_Tooltip);
}
return;
}
else
{
ParseItemID( param, Item.ID );
ParseString( param, "Name", Item.Name);
ParseString( param, "AdditionalName", Item.AdditionalName);
ParseInt( param, "Level", Item.Level);
ParseInt( param, "Reserved", Item.Reserved);
ParseInt( param, "Enchanted", Item.Enchanted);
ParseInt( param, "ItemType", Item.ItemType);
ParseInt( param, "ItemSubType", Item.ItemSubType);
ParseInt( param, "CrystalType", Item.CrystalType);
ParseInt( param, "ConsumeType", Item.ConsumeType);
ParseInt( param, "RefineryOp1", Item.RefineryOp1);
ParseInt( param, "RefineryOp2", Item.RefineryOp2);
ParseINT64( param, "ItemNum", Item.ItemNum);
ParseInt( param, "MpConsume", Item.MpConsume);
//branch
ParseInt ( param, "IsBRPremium", Item.IsBRPremium);
//end of branch
eShortCutType = EShortCutItemType(Item.ItemSubType);
eItemParamType = EItemParamType(Item.ItemType);
//아이템 이름 취득
ItemName = class'UIDATA_ITEM'.static.GetRefineryItemName( Item.Name, Item.RefineryOp1, Item.RefineryOp2 );
switch (eShortCutType)
{
case SCIT_ITEM:
//branch
AddPrimeItemSymbol(Item);
//end of branch
//인첸트 ex) "+10"
AddTooltipItemEnchant(Item);
//아이템 이름
AddTooltipItemName(ItemName, Item, 1);
//Grade Mark
AddTooltipItemGrade(Item);
//아이템 갯수
AddTooltipItemCount(Item);
break;
case SCIT_SKILL:
//아이템 이름
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = ItemName;
EndItem();
if (Len(Item.AdditionalName)>0)
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetX = 5;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 255;
m_Info.t_color.G = 217;
m_Info.t_color.B = 105;
m_Info.t_color.A = 255;
m_Info.t_strText = Item.AdditionalName;
EndItem();
Item.Level = class'UIDATA_SKILL'.static.GetEnchantSkillLevel( Item.ID, Item.Level );
}
//ex) " Lv "
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = " ";
EndItem();
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_ID = 88;
EndItem();
//스킬 레빌
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 176;
m_Info.t_color.G = 155;
m_Info.t_color.B = 121;
m_Info.t_color.A = 255;
m_Info.t_strText = " " $ Item.Level;
EndItem();
//MP소모량
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = " (";
EndItem();
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_ID = 91;
EndItem();
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = ":" $ Item.MpConsume $ ")";
EndItem();
break;
case SCIT_ACTION:
case SCIT_MACRO:
case SCIT_RECIPE:
case SCIT_BOOKMARK:
//아이템 이름
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = ItemName;
EndItem();
break;
}
}
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
/////////////////////////////////////////////////////////////////////////////////
// RECIPE_MANUFACTURE
function ReturnTooltip_NTT_RECIPE_MANUFACTURE(string param, ETooltipSourceType eSourceType)
{
local ItemInfo Item;
if (eSourceType == NTST_ITEM)
{
ParseString( param, "Name", Item.Name);
ParseString( param, "Description", Item.Description);
ParseString( param, "AdditionalName", Item.AdditionalName);
ParseINT64( param, "Reserved64", Item.Reserved64);
ParseInt( param, "CrystalType", Item.CrystalType);
ParseINT64( param, "ItemNum", Item.ItemNum);
m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
//아이템 이름
AddTooltipItemName(Item.Name, Item, 1);
//Grade Mark
AddTooltipItemGrade(Item);
//ex) "필요수 : 2"
AddTooltipItemOption(736, Int64ToString(Item.Reserved64), true, true, false);
//ex) "보유수 : 0"
AddTooltipItemOption(737, Int64ToString(Item.ItemNum), true, true, false);
//설명
if (Len(Item.Description)>0)
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_color.R = 178;
m_Info.t_color.G = 190;
m_Info.t_color.B = 207;
m_Info.t_color.A = 255;
m_Info.t_strText = Item.Description;
EndItem();
}
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
/////////////////////////////////////////////////////////////////////////////////
// PLEDGEINFO
function ReturnTooltip_NTT_CLANINFO(string param, ETooltipSourceType eSourceType)
{
local LVDataRecord record;
if (eSourceType == NTST_LIST)
{
ParamToRecord( param, record );
//ex) "직업 : 엘븐메이지"
AddTooltipItemOption(391, GetClassType(int(record.LVDataList[2].szData)), true, true, true);
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
//선준 수정(2010.03.30) 완료
function ReturnTooltip_NTT_POSTINFO(string param, ETooltipSourceType eSourceType)
{
local LVDataRecord record;
if (eSourceType == NTST_LIST)
{
ParamToRecord( param, record );
//ex) "직업 : 엘븐메이지"
AddTooltipItemOption(391, GetClassType(int(record.LVDataList[1].szData)), true, true, true);
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
//선준 수정(2010.02.22 ~ 03.08) 완료
/////////////////////////////////////////////////////////////////////////////////
// ROOMLIST
function ReturnTooltip_NTT_ROOMLIST(string param, ETooltipSourceType eSourceType)
{
local int i;
local LVDataRecord record;
local int len;
m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH + 40;
if (eSourceType == NTST_LIST)
{
ParamToRecord( param, record );
len = int( record.LVDataList[6].szData );
for( i = 0 ; i < len ; i++ )
{
StartItem();
m_Info.eType = DIT_TEXTURE;
m_Info.u_nTextureWidth = 11;
m_Info.u_nTextureHeight = 11;
m_Info.u_strTexture = GetClassIconName( record.LVDataList[7 + i].nReserved1 );
EndItem();
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = false;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_strText = " " $ record.LVDataList[7 + i].szData;
EndItem();
if( i != len - 1 )
{
AddTooltipItemBlank(2);
}
}
//ex) "직업 : 엘븐메이지"
//AddTooltipItemOption(391, GetClassType(int(record.LVDataList[2].szData)), true, true, true);
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
/////////////////////////////////////////////////////////////////////////////////
// USERLIST
function ReturnTooltip_NTT_USERLIST(string param, ETooltipSourceType eSourceType)
{
local LVDataRecord record;
m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH + 80;
if (eSourceType == NTST_LIST)
{
ParamToRecord( param, record );
//ex) "직업 : 엘븐메이지"
AddTooltipItemOption(391, GetClassType(int(record.LVDataList[1].szData)), true, true, true);
AddTooltipItemBlank(0);
//ex)귀속 지역 :
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_strText = GetSystemString( 2276 ) $ " : ";
EndItem();
//설명
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_color.R = 176;
m_Info.t_color.G = 155;
m_Info.t_color.B = 121;
m_Info.t_color.A = 255;
if( record.LVDataList[5].szData == "" )
{
m_Info.t_strText = GetSystemString( 27 );
}
else
{
m_Info.t_strText = record.LVDataList[5].szData;
}
EndItem();
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
/////////////////////////////////////////////////////////////////////////////////
// PARTYMATCH
function ReturnTooltip_NTT_PARTYMATCH(string param, ETooltipSourceType eSourceType)
{
local LVDataRecord record;
m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH + 80;
if (eSourceType == NTST_LIST)
{
ParamToRecord( param, record );
//ex) "직업 : 엘븐메이지"
AddTooltipItemOption(391, GetClassType(int(record.LVDataList[1].szData)), true, true, true);
//선준 수정(2010.02.22 ~ 03.08) 완료
//ex)현재 위치 : 글루디오
AddTooltipItemOption(471, GetZoneNameWithZoneID(int(record.LVDataList[3].szReserved)), true, true, true);
/*
AddTooltipItemBlank(0);
//귀속지역
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = false;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_strText = GetSystemString( 2276 ) @ ":";
EndItem();
//설명
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_color.R = 176;
m_Info.t_color.G = 155;
m_Info.t_color.B = 121;
m_Info.t_color.A = 255;
if( record.LVDataList[4].szData == "" )
{
//m_Info.bLineBreak = true;
m_Info.t_strText = "" @ GetSystemString( 27 );
}
else
{
m_Info.bLineBreak = true;
m_Info.t_strText = record.LVDataList[4].szData;
}
EndItem();
*/
AddTooltipItemBlank(0);
//ex)귀속 지역 :
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_strText = GetSystemString( 2276 ) $ " : ";
//m_Info.t_strText = "귀속 지역 : ";
EndItem();
//설명
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_color.R = 176;
m_Info.t_color.G = 155;
m_Info.t_color.B = 121;
m_Info.t_color.A = 255;
if( record.LVDataList[4].szReserved == "" )
{
m_Info.t_strText = GetSystemString( 27 );
}
else
{
m_Info.t_strText = record.LVDataList[4].szReserved;
}
EndItem();
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
//선준 추가 UNION 예전 직업만 나오는 경우.
/////////////////////////////////////////////////////////////////////////////////
// UINONLIST
function ReturnTooltip_NTT_UNIONLIST(string param, ETooltipSourceType eSourceType)
{
local LVDataRecord record;
if (eSourceType == NTST_LIST)
{
ParamToRecord( param, record );
//ex) "직업 : 엘븐메이지"
AddTooltipItemOption(391, GetClassType(int(record.LVDataList[1].szData)), true, true, true);
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
/////////////////////////////////////////////////////////////////////////////////
// QUESTLIST
function ReturnTooltip_NTT_QUESTLIST(string param, ETooltipSourceType eSourceType)
{
local LVDataRecord record;
local int nTmp;
if (eSourceType == NTST_LIST)
{
ParamToRecord( param, record );
//퀘스트 이름
AddTooltipItemOption(1200, record.LVDataList[0].szData, true, true, true);
//반복성
switch(record.LVDataList[3].nReserved1)
{
case 0:
case 2:
nTmp = 861;
break;
case 1:
case 3:
nTmp = 862;
break;
}
AddTooltipItemOption2(1202, nTmp, true, true, false);
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
/////////////////////////////////////////////////////////////////////////////////
// RAIDLIST
function ReturnTooltip_NTT_RAIDLIST(string param, ETooltipSourceType eSourceType)
{
local LVDataRecord record;
if (eSourceType == NTST_LIST)
{
ParamToRecord( param, record );
if (Len(record.szReserved)<1)
return;
m_Tooltip.MinimumWidth = TOOLTIP_MINIMUM_WIDTH;
//레이드 설명
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = false;
m_Info.t_color.R = 178;
m_Info.t_color.G = 190;
m_Info.t_color.B = 207;
m_Info.t_color.A = 255;
m_Info.t_strText = record.szReserved;
EndItem();
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
/////////////////////////////////////////////////////////////////////////////////
// QUESTINFO
function ReturnTooltip_NTT_QUESTINFO(string param, ETooltipSourceType eSourceType)
{
local LVDataRecord record;
local int nTmp;
local int Width1;
local int Width2;
local int Height;
if (eSourceType == NTST_LIST)
{
ParamToRecord( param, record );
//퀘스트 이름
AddTooltipItemOption(1200, record.LVDataList[0].szData, true, true, true);
//수행조건
AddTooltipItemOption(1201, record.LVDataList[1].szData, true, true, false);
//Width결정!
GetTextSizeDefault(GetSystemString(1200) $ " : " $ record.LVDataList[0].szData, Width1, Height);
GetTextSizeDefault(GetSystemString(1201) $ " : " $ record.LVDataList[1].szData, Width2, Height);
if (Width2>Width1)
Width1 = Width2;
if (TOOLTIP_MINIMUM_WIDTH>Width1)
Width1 = TOOLTIP_MINIMUM_WIDTH;
m_Tooltip.MinimumWidth = Width1 + 30;
//추천레벨
AddTooltipItemOption(922, record.LVDataList[2].szData, true, true, false);
//반복성
switch(record.LVDataList[3].nReserved1)
{
case 0:
case 2:
nTmp = 861;
break;
case 1:
case 3:
nTmp = 862;
break;
}
AddTooltipItemOption2(1202, nTmp, true, true, false);
//퀘스트설명
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = false;
m_Info.bLineBreak = true;
m_Info.t_color.R = 178;
m_Info.t_color.G = 190;
m_Info.t_color.B = 207;
m_Info.t_color.A = 255;
m_Info.t_strText = record.szReserved;
EndItem();
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
/////////////////////////////////////////////////////////////////////////////////
// MANOR
function ReturnTooltip_NTT_MANOR(string param, string TooltipType, ETooltipSourceType eSourceType)
{
local LVDataRecord record;
local int idx1;
local int idx2;
local int idx3;
if (eSourceType == NTST_LIST)
{
ParamToRecord( param, record );
if (TooltipType == "ManorSeedInfo")
{
idx1 = 4;
idx2 = 5;
idx3 = 6;
}
else if (TooltipType == "ManorCropInfo")
{
idx1 = 5;
idx2 = 6;
idx3 = 7;
}
else if (TooltipType == "ManorSeedSetting")
{
idx1 = 7;
idx2 = 8;
idx3 = 9;
}
else if (TooltipType == "ManorCropSetting")
{
idx1 = 9;
idx2 = 10;
idx3 = 11;
}
else if (TooltipType == "ManorDefaultInfo")
{
idx1 = 1;
idx2 = 4;
idx3 = 5;
}
else if (TooltipType == "ManorCropSell")
{
idx1 = 7;
idx2 = 8;
idx3 = 9;
}
// 씨앗 or 작물 이름
AddTooltipItemOption(0, record.LVDataList[0].szData, false, true, true);
// 레벨
AddTooltipItemOption(537, record.LVDataList[idx1].szData, true, true, false);
// 보상 타입1
AddTooltipItemOption(1134, record.LVDataList[idx2].szData, true, true, false);
// 보상 타입2
AddTooltipItemOption(1135, record.LVDataList[idx3].szData, true, true, false);
}
else
{
return;
}
ReturnTooltipInfo(m_Tooltip);
}
// [퀘스트 아이템 툴팁 추가]
function ReturnTooltip_NTT_QUESTREWARDS(string param, ETooltipSourceType eSourceType)
{
// [퀘스트 아이템 툴팁 추가] 이 부분에 퀘스트 아이템 툴팁에 걸맞는 코드가 들어가면 될 것 같습니다.
// 2009.10.14
// ReturnTooltip_NTT_ITEM(param, "Inventoty", eSourceType);
ReturnTooltip_NTT_ITEM(param, "QuestReward", eSourceType);
}
//"XXX : YYYY" 형태의 TooltipItem을 편하게 추가해 준다.
function AddTooltipItemOption(int TitleID, string Content, bool bTitle, bool bContent, bool IamFirst)
{
if (bTitle)
{
StartItem();
m_Info.eType = DIT_TEXT;
if (!IamFirst)
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_ID = TitleID;
EndItem();
}
if (Content != "0")
{
if (bContent)
{
if (bTitle)
{
StartItem();
m_Info.eType = DIT_TEXT;
if (!IamFirst)
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_strText = " : ";
EndItem();
}
StartItem();
m_Info.eType = DIT_TEXT;
if (!IamFirst)
m_Info.nOffSetY = 6;
if (!bTitle)
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 176;
m_Info.t_color.G = 155;
m_Info.t_color.B = 121;
m_Info.t_color.A = 255;
m_Info.t_strText = Content;
EndItem();
}
}
}
function AddTooltipItemOptionDef(int TitleID, ItemInfo Item, bool bTitle, bool bContent, bool IamFirst, optional bool isShield)
{
local int FullDamage, DefaultDamage, Diffirence;
if( isShield )
{
FullDamage = GetShieldDefense(Item.CrystalType, Item.Enchanted, Item.ShieldDefense);
DefaultDamage = GetShieldDefense(Item.CrystalType, 0, Item.ShieldDefense);
Diffirence = FullDamage - DefaultDamage;
}
else if( TitleID == 95 )
{
FullDamage = GetPhysicalDefense(Item.CrystalType, Item.Enchanted, Item.PhysicalDefense);
DefaultDamage = GetPhysicalDefense(Item.CrystalType, 0, Item.PhysicalDefense);
Diffirence = FullDamage - DefaultDamage;
}
else
{
FullDamage = GetMagicalDefense(Item.CrystalType, Item.Enchanted, Item.MagicalDefense);
DefaultDamage = GetMagicalDefense(Item.CrystalType, 0, Item.MagicalDefense);
Diffirence = FullDamage - DefaultDamage;
}
if (bTitle)
{
StartItem();
m_Info.eType = DIT_TEXT;
if (!IamFirst)
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 255;
m_Info.t_color.G = 255;
m_Info.t_color.B = 255;
m_Info.t_color.A = 255;
m_Info.t_ID = TitleID;
EndItem();
}
if (FullDamage != 0)
{
if (bContent)
{
if (bTitle)
{
StartItem();
m_Info.eType = DIT_TEXT;
if (!IamFirst)
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 255;
m_Info.t_color.G = 255;
m_Info.t_color.B = 255;
m_Info.t_color.A = 255;
m_Info.t_strText = " : ";
EndItem();
}
StartItem();
m_Info.eType = DIT_TEXT;
if (!IamFirst)
m_Info.nOffSetY = 6;
if (!bTitle)
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 207;
m_Info.t_color.G = 148;
m_Info.t_color.B = 11;
m_Info.t_color.A = 255;
m_Info.t_strText = ""$FullDamage;
EndItem();
if( Diffirence != 0 )
{
StartItem();
m_Info.eType = DIT_TEXT;
if (!IamFirst)
m_Info.nOffSetY = 6;
if (!bTitle)
m_Info.bLineBreak = true;
m_Info.nOffSetX = 4;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 208;
m_Info.t_color.G = 180;
m_Info.t_color.B = 119;
m_Info.t_color.A = 255;
m_Info.t_strText = "("$DefaultDamage$" + "$Diffirence$")";
EndItem();
}
}
}
}
function AddTooltipItemOptionDamage(int TitleID, ItemInfo Item, bool bTitle, bool bContent, bool IamFirst)
{
local int FullDamage, DefaultDamage, Diffirence;
if( TitleID == 94 )
{
FullDamage = GetPhysicalDamage(Item.WeaponType, Item.SlotBitType, Item.CrystalType, Item.Enchanted, Item.PhysicalDamage);
DefaultDamage = GetPhysicalDamage(Item.WeaponType, Item.SlotBitType, Item.CrystalType, 0, Item.PhysicalDamage);
Diffirence = FullDamage - DefaultDamage;
}
else
{
FullDamage = GetMagicalDamage(Item.WeaponType, Item.SlotBitType, Item.CrystalType, Item.Enchanted, Item.MagicalDamage);
DefaultDamage = GetMagicalDamage(Item.WeaponType, Item.SlotBitType, Item.CrystalType, 0, Item.MagicalDamage);
Diffirence = FullDamage - DefaultDamage;
}
if (bTitle)
{
StartItem();
m_Info.eType = DIT_TEXT;
if (!IamFirst)
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 255;
m_Info.t_color.G = 255;
m_Info.t_color.B = 255;
m_Info.t_color.A = 255;
m_Info.t_ID = TitleID;
EndItem();
}
if (FullDamage != 0)
{
if (bContent)
{
if (bTitle)
{
StartItem();
m_Info.eType = DIT_TEXT;
if (!IamFirst)
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 255;
m_Info.t_color.G = 255;
m_Info.t_color.B = 255;
m_Info.t_color.A = 255;
m_Info.t_strText = " : ";
EndItem();
}
StartItem();
m_Info.eType = DIT_TEXT;
if (!IamFirst)
m_Info.nOffSetY = 6;
if (!bTitle)
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 207;
m_Info.t_color.G = 148;
m_Info.t_color.B = 11;
m_Info.t_color.A = 255;
m_Info.t_strText = ""$FullDamage;
EndItem();
if( Diffirence != 0 )
{
StartItem();
m_Info.eType = DIT_TEXT;
if (!IamFirst)
m_Info.nOffSetY = 6;
if (!bTitle)
m_Info.bLineBreak = true;
m_Info.nOffSetX = 4;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 208;
m_Info.t_color.G = 180;
m_Info.t_color.B = 119;
m_Info.t_color.A = 255;
m_Info.t_strText = "("$DefaultDamage$" + "$Diffirence$")";
EndItem();
}
}
}
}
//"XXX : YYYY" 형태의 TooltipItem을 편하게 추가해 준다.
//SYSSTRING : SYSSTRING
function AddTooltipItemOption2(int TitleID, int ContentID, bool bTitle, bool bContent, bool IamFirst)
{
if (bTitle)
{
StartItem();
m_Info.eType = DIT_TEXT;
if (!IamFirst)
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_ID = TitleID;
EndItem();
}
if (bContent)
{
if (bTitle)
{
StartItem();
m_Info.eType = DIT_TEXT;
if (!IamFirst)
m_Info.nOffSetY = 6;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.t_strText = " : ";
EndItem();
}
StartItem();
m_Info.eType = DIT_TEXT;
if (!IamFirst)
m_Info.nOffSetY = 6;
if (!bTitle)
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 176;
m_Info.t_color.G = 155;
m_Info.t_color.B = 121;
m_Info.t_color.A = 255;
m_Info.t_ID = ContentID;
EndItem();
}
}
//아이템의 색상을 다시 설정해준다.
function SetTooltipItemColor(int R, int G, int B, int Offset)
{
local int idx;
idx = m_Tooltip.DrawList.Length-1-Offset;
m_Tooltip.DrawList[idx].t_color.R = R;
m_Tooltip.DrawList[idx].t_color.G = G;
m_Tooltip.DrawList[idx].t_color.B = B;
m_Tooltip.DrawList[idx].t_color.A = 255;
}
//빈공간의 TooltipItem을 추가한다.
function AddTooltipItemBlank(int Height)
{
StartItem();
m_Info.eType = DIT_BLANK;
m_Info.b_nHeight = Height;
EndItem();
}
//인첸트
function AddTooltipItemEnchant(ItemInfo Item)
{
local EItemParamType eItemParamType;
eItemParamType = EItemParamType(Item.ItemType);
if (Item.Enchanted>0 && IsEnchantableItem(eItemParamType))
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 176;
m_Info.t_color.G = 155;
m_Info.t_color.B = 121;
m_Info.t_color.A = 255;
m_Info.t_strText = "+" $ Item.Enchanted $ " ";
EndItem();
}
}
//아이템 이름 + AdditionalName
function AddTooltipItemName(string Name, ItemInfo Item, int AddTooltipItemName)
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
switch (AddTooltipItemName)
{
case 0:
m_Info.t_color.R = 137;
m_Info.t_color.G = 137;
m_Info.t_color.B = 137;
m_Info.t_color.A = 255;
break;
case 1:
m_Info.t_color.R = 255;
m_Info.t_color.G = 255;
m_Info.t_color.B = 255;
m_Info.t_color.A = 255;
break;
case 2:
m_Info.t_color.R = 255;
m_Info.t_color.G = 251;
m_Info.t_color.B = 4;
m_Info.t_color.A = 255;
break;
case 3:
m_Info.t_color.R = 255;
m_Info.t_color.G = 0;
m_Info.t_color.B = 255;
m_Info.t_color.A = 255;
break;
}
m_Info.t_strText = Name;
EndItem();
//Additional Name
if (Len(Item.AdditionalName)>0)
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_color.R = 255;
m_Info.t_color.G = 217;
m_Info.t_color.B = 105;
m_Info.t_color.A = 255;
m_Info.t_strText = " " $ Item.AdditionalName;
EndItem();
}
}
//Grade Mark
function AddTooltipItemGrade(ItemInfo Item)
{
local string TextureName;
TextureName = GetItemGradeTextureName(Item.CrystalType);
//debug ("TextureName" @ TextureName);
//debug (TextureName @ Item.CrystalType @ GetItemGradeTextureName(Item.CrystalType));
if (Len(TextureName)>0)
{
StartItem();
m_Info.eType = DIT_TEXTURE;
m_Info.nOffSetX = 2;
m_Info.nOffSetY = 0;
//S80 그레이드일 경우에 한해 아이콘 텍스쳐 크기를 2배로 늘린다.
//debug ("텍스쳐 이름"@ Item.CrystalType );
if (Item.CrystalType == 6 || Item.CrystalType == 7)
{
m_Info.u_nTextureWidth = 32;
m_Info.u_nTextureHeight = 16;
m_Info.u_nTextureUWidth = 32;
m_Info.u_nTextureUHeight = 16;
//debug (TextureName @ Item.CrystalType @ GetItemGradeTextureName(Item.CrystalType));
}
//기타 그레이드에 대해 아이콘 텍스쳐 크기를 세팅한다.
else
{
m_Info.u_nTextureWidth = 16;
m_Info.u_nTextureHeight = 16;
m_Info.u_nTextureUWidth = 16;
m_Info.u_nTextureUHeight = 16;
}
m_Info.u_strTexture = TextureName;
EndItem();
}
}
//Stackable Count
function AddTooltipItemCount(ItemInfo Item)
{
if (IsStackableItem(Item.ConsumeType))
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = " (" $ MakeCostString(Int64ToString(Item.ItemNum)) $ ")";
EndItem();
}
}
//제련 색상
function GetRefineryColor(int Quality, out int R, out int G, out int B)
{
switch (Quality)
{
case 1:
R = 187;
G = 181;
B = 138;
break;
case 2:
R = 132;
G = 174;
B = 216;
break;
case 3:
R = 193;
G = 112;
B = 202;
break;
case 4:
R = 225;
G = 109;
B = 109;
break;
default:
R = 187;
G = 181;
B = 138;
break;
}
}
//속성 게이지 그려주기
function AddTooltipItemAttributeGage(ItemInfo Item)
{
local int i;
//local int highAttrValue[6];
local Array<string> textureName, tooltipStr;
local bool FirstTime;
for(i = 0; i < 6; i++)
{
textureName[i] = "";
tooltipStr[i] = "";
}
NowAttrLv =0;
NowMaxValue =0;
NowValue =0;
// 공격 아이템 속성
if (Item.AttackAttributeValue > 0)
{
//AddSystemMessageString("1");
SetAttackAttribute(Item.AttackAttributeValue,ATTRIBUTE_FIRE);
SetAttackAttribute(Item.AttackAttributeValue,ATTRIBUTE_WATER);
SetAttackAttribute(Item.AttackAttributeValue,ATTRIBUTE_WIND);
SetAttackAttribute(Item.AttackAttributeValue,ATTRIBUTE_EARTH);
SetAttackAttribute(Item.AttackAttributeValue,ATTRIBUTE_HOLY);
SetAttackAttribute(Item.AttackAttributeValue,ATTRIBUTE_UNHOLY); //레벨과 현제값등을 구한다.
switch(Item.AttackAttributeType)
{
case ATTRIBUTE_FIRE:
textureName[ATTRIBUTE_FIRE] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_FIRE";
tooltipStr[ATTRIBUTE_FIRE] =GetSystemString(1622) $ " Lv " $ String(AttackAttLevel[ATTRIBUTE_FIRE]) $ " ("$ GetSystemString(1622) $ " " $ GetSystemString(55) $ " " $ String(Item.AttackAttributeValue) $")";
break;
case ATTRIBUTE_WATER:
textureName[ATTRIBUTE_WATER] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_WATER";
tooltipStr[ATTRIBUTE_WATER] =GetSystemString(1623) $ " Lv " $ String(AttackAttLevel[ATTRIBUTE_WATER]) $ " ("$ GetSystemString(1623) $ " " $ GetSystemString(55) $ " " $String(Item.AttackAttributeValue) $ ")";
break;
case ATTRIBUTE_WIND:
textureName[ATTRIBUTE_WIND] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_WIND";
tooltipStr[ATTRIBUTE_WIND] =GetSystemString(1624) $ " Lv " $ String(AttackAttLevel[ATTRIBUTE_WIND]) $ " ("$ GetSystemString(1624) $ " " $ GetSystemString(55) $ " " $String(Item.AttackAttributeValue) $ ")";
break;
case ATTRIBUTE_EARTH:
textureName[ATTRIBUTE_EARTH] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_EARTH";
tooltipStr[ATTRIBUTE_EARTH] =GetSystemString(1625) $ " Lv " $ String(AttackAttLevel[ATTRIBUTE_EARTH]) $ " ("$ GetSystemString(1625) $ " " $ GetSystemString(55) $ " " $ String(Item.AttackAttributeValue) $")";
break;
case ATTRIBUTE_HOLY:
textureName[ATTRIBUTE_HOLY] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_DIVINE";
tooltipStr[ATTRIBUTE_HOLY] =GetSystemString(1626) $ " Lv " $ String(AttackAttLevel[ATTRIBUTE_HOLY]) $ " ("$ GetSystemString(1626) $ " " $ GetSystemString(55) $ " " $String(Item.AttackAttributeValue) $ ")";
break;
case ATTRIBUTE_UNHOLY:
textureName[ATTRIBUTE_UNHOLY] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_DARK";
tooltipStr[ATTRIBUTE_UNHOLY] =GetSystemString(1627) $ " Lv " $ String(AttackAttLevel[ATTRIBUTE_UNHOLY]) $ " ("$ GetSystemString(1627) $ " " $ GetSystemString(55) $ " " $String(Item.AttackAttributeValue) $ ")";
break;
}
}
else // 방어 아이템 속성
{
//AddSystemMessageString("2");
SetDefAttribute(Item.DefenseAttributeValueFire,ATTRIBUTE_FIRE);
SetDefAttribute(Item.DefenseAttributeValueWater,ATTRIBUTE_WATER);
SetDefAttribute(Item.DefenseAttributeValueWind,ATTRIBUTE_WIND);
SetDefAttribute(Item.DefenseAttributeValueEarth,ATTRIBUTE_EARTH);
SetDefAttribute(Item.DefenseAttributeValueHoly,ATTRIBUTE_HOLY);
SetDefAttribute(Item.DefenseAttributeValueUnholy,ATTRIBUTE_UNHOLY); //레벨과 현제값등을 구한다.
if(Item.DefenseAttributeValueFire != 0) //파이어 속성 툴팁 그리기
{
textureName[ATTRIBUTE_FIRE] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_FIRE";
tooltipStr[ATTRIBUTE_FIRE] =GetSystemString(1623) $ " Lv " $ String(DefAttLevel[ATTRIBUTE_FIRE]) $ " ("$ GetSystemString(1622) $ " " $ GetSystemString(54) $ " " $ String(Item.DefenseAttributeValueFire) $")";
}
if(Item.DefenseAttributeValueWater != 0) //물 속성 툴팁 그리기
{
textureName[ATTRIBUTE_WATER] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_WATER";
tooltipStr[ATTRIBUTE_WATER] =GetSystemString(1622) $ " Lv " $ String(DefAttLevel[ATTRIBUTE_WATER]) $ " ("$ GetSystemString(1623) $ " " $ GetSystemString(54) $ " " $String(Item.DefenseAttributeValueWater) $ ")";
}
if(Item.DefenseAttributeValueWind != 0) //바람 속성 툴팁 그리기
{
textureName[ATTRIBUTE_WIND] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_WIND";
tooltipStr[ATTRIBUTE_WIND] =GetSystemString(1625) $ " Lv " $ String(DefAttLevel[ATTRIBUTE_WIND]) $ " ("$ GetSystemString(1624) $ " " $ GetSystemString(54) $ " " $String(Item.DefenseAttributeValueWind) $")";
}
if(Item.DefenseAttributeValueEarth != 0) //땅 속성 툴팁 그리기
{
textureName[ATTRIBUTE_EARTH] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_EARTH";
tooltipStr[ATTRIBUTE_EARTH] =GetSystemString(1624) $ " Lv " $ String(DefAttLevel[ATTRIBUTE_EARTH]) $ " ("$ GetSystemString(1625) $ " " $ GetSystemString(54) $ " " $String(Item.DefenseAttributeValueEarth) $ ")";
}
if(Item.DefenseAttributeValueHoly != 0) //신성 속성 툴팁 그리기
{
textureName[ATTRIBUTE_HOLY] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_DIVINE";
tooltipStr[ATTRIBUTE_HOLY] =GetSystemString(1627) $ " Lv " $ String(DefAttLevel[ATTRIBUTE_HOLY]) $ " ("$ GetSystemString(1626) $ " " $ GetSystemString(54) $ " " $ String(Item.DefenseAttributeValueHoly) $")";
}
if(Item.DefenseAttributeValueUnholy != 0) //암흑 속성 툴팁 그리기
{
textureName[ATTRIBUTE_UNHOLY] = "L2UI_CT1.Gauges.Gauge_DF_Attribute_DARK";
tooltipStr[ATTRIBUTE_UNHOLY] =GetSystemString(1626) $ " Lv " $ String(DefAttLevel[ATTRIBUTE_UNHOLY]) $ " ("$ GetSystemString(1627) $ " " $ GetSystemString(54) $ " " $String(Item.DefenseAttributeValueUnholy) $ ")";
}
// 방어 아이템 속성
}
if (Item.AttackAttributeValue > 0)//공격속성일경우
{
for(i = 0; i < 6; i++)
{
if(tooltipStr[i] == "") continue;
AddTooltipItemBlank(0);
StartItem();
m_Info.eType = DIT_SPLITLINE;
m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;
m_Info.u_nTextureHeight = 1;
m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
EndItem();
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = tooltipStr[i];
EndItem();
//텍스쳐 두장을 겹쳐 그려야 한다.
StartItem();
m_Info.eType = DIT_TEXTURE;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.nOffSetX = 0;
m_Info.nOffSetY = 2;
m_Info.u_nTextureWidth = 140;
m_Info.u_nTextureHeight = 7;
m_Info.u_strTexture = textureName[i] $ "_BG";
EndItem();
StartItem();
m_Info.eType = DIT_TEXTURE;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.nOffSetX = 0;
m_Info.nOffSetY = -7;
m_Info.u_nTextureWidth = AttackAttCurrValue[i] * 140 / AttackAttMaxValue[i] ;
if( m_Info.u_nTextureWidth > 140) m_Info.u_nTextureWidth = 140; //넘어가면 걍 140이라는.. ㅋ
m_Info.u_nTextureHeight = 7;
m_Info.u_strTexture = textureName[i];
EndItem();
AddTooltipItemBlank(4);
}
}
else{ //방어 속성일 경우
for(i = 0; i < 6; i++)
{
if(tooltipStr[i] == "") continue;
if(!FirstTime)
{
AddTooltipItemBlank(0);
StartItem();
m_Info.eType = DIT_SPLITLINE;
m_Info.u_nTextureWidth = TOOLTIP_MINIMUM_WIDTH;
m_Info.u_nTextureHeight = 1;
m_Info.u_strTexture ="L2ui_ch3.tooltip_line";
EndItem();
FirstTime=true;
}
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = tooltipStr[i];
EndItem();
//텍스쳐 두장을 겹쳐 그려야 한다.
StartItem();
m_Info.eType = DIT_TEXTURE;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.nOffSetX = 0;
m_Info.nOffSetY = 2;
m_Info.u_nTextureWidth = 140;
m_Info.u_nTextureHeight = 7;
m_Info.u_strTexture = textureName[i] $ "_BG";
EndItem();
StartItem();
m_Info.eType = DIT_TEXTURE;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.nOffSetX = 0;
m_Info.nOffSetY = -7;
m_Info.u_nTextureWidth = DefAttCurrValue[i] * 140 / DefAttMaxValue[i] ;
if( m_Info.u_nTextureWidth > 140) m_Info.u_nTextureWidth = 140; //넘어가면 걍 140이라는.. ㅋ
m_Info.u_nTextureHeight = 7;
m_Info.u_strTexture = textureName[i];
EndItem();
}
if( FirstTime )
AddTooltipItemBlank(4);
}
}
// function StartItem()
// {
// local DrawItemInfo infoClear;
// m_Info = infoClear;
// }
//
// function EndItem()
// {
// m_Tooltip.DrawList.Length = m_Tooltip.DrawList.Length + 1;
// m_Tooltip.DrawList[m_Tooltip.DrawList.Length-1] = m_Info;
// }
//퀘스트 아이템의 퀘스트 이름 표시
function AddTooltipItemQuestList(ItemInfo Item)
{
local int i;
//<관련 퀘스트>
if(Item.RelatedQuestID[0] != 0)
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 10;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = GetSystemString(1721);
EndItem();
}
for(i = 0 ; i<MAX_RELATED_QUEST ; i++)
{
if(Item.RelatedQuestID[i] != 0)
{
StartItem();
m_Info.eType = DIT_TEXT;
m_Info.nOffSetY = 6;
m_Info.t_color.R = 163;
m_Info.t_color.G = 163;
m_Info.t_color.B = 163;
m_Info.t_color.A = 255;
m_Info.bLineBreak = true;
m_Info.t_bDrawOneLine = true;
m_Info.t_strText = class'UIDATA_QUEST'.static.GetQuestName(Item.RelatedQuestID[i]);;
EndItem();
}
}
}
// 속성의 레벨값을 전역변수에 저장 //자료가 많아서 전역변수에 집어넣는다.
function SetAttackAttribute(int Attvalue, int type)
{
if( AttValue >= 375) // 9렙 375 ~ 450
{
AttackAttLevel[type] = 9;
AttackAttMaxValue[type] = 75;
AttackAttCurrValue[type] = AttValue - 375;
}
else if( AttValue >= 325) // 8렙 325 ~ 375
{
AttackAttLevel[type] = 8;
AttackAttMaxValue[type] = 50;
AttackAttCurrValue[type] = AttValue - 325;
}
else if( AttValue >= 300) // 7렙 300 ~ 325
{
AttackAttLevel[type] = 7;
AttackAttMaxValue[type] = 25;
AttackAttCurrValue[type] = AttValue - 300;
}
else if( AttValue >= 225) // 6렙 225 ~ 300
{
AttackAttLevel[type] = 6;
AttackAttMaxValue[type] = 75;
AttackAttCurrValue[type] = AttValue - 225;
}
else if( AttValue >= 175) // 5렙 175 ~ 225
{
AttackAttLevel[type] = 5;
AttackAttMaxValue[type] = 50;
AttackAttCurrValue[type] = AttValue - 175;
}
else if( AttValue >= 150) // 4렙 150 ~ 175
{
AttackAttLevel[type] = 4;
AttackAttMaxValue[type] = 25;
AttackAttCurrValue[type] = AttValue - 150;
}
else if( AttValue >= 75) // 3렙 75 ~ 150
{
AttackAttLevel[type] = 3;
AttackAttMaxValue[type] = 75;
AttackAttCurrValue[type] = AttValue - 75;
}
else if( AttValue >= 25) // 2렙 25~ 75
{
AttackAttLevel[type] = 2;
AttackAttMaxValue[type] = 50;
AttackAttCurrValue[type] = AttValue - 25;
}
else // else 0~ 25
{
AttackAttLevel[type] = 1;
AttackAttMaxValue[type] = 25;
AttackAttCurrValue[type] = AttValue;
}
}
// 속성의 레벨값을 전역변수에 저장 //자료가 많아서 전역변수에 집어넣는다.
function SetDefAttribute(int Defvalue, int type)
{
if( DefValue >= 150) // 9렙 150~180
{
DefAttLevel[type] = 9;
DefAttMaxValue[type] = 30;
DefAttCurrValue[type] = DefValue - 150;
}
else if( DefValue >= 132) // 8렙 132 ~ 150
{
DefAttLevel[type] = 8;
DefAttMaxValue[type] = 18;
DefAttCurrValue[type] = DefValue - 132;
}
else if( DefValue >= 120) // 7렙 120 ~ 132
{
DefAttLevel[type] = 7;
DefAttMaxValue[type] = 12;
DefAttCurrValue[type] = DefValue - 120;
}
else if( DefValue >= 90) // 6렙 90 ~ 120
{
DefAttLevel[type] = 6;
DefAttMaxValue[type] = 30;
DefAttCurrValue[type] = DefValue - 90;
}
else if( DefValue >= 72) // 5렙 72 ~ 90
{
DefAttLevel[type] = 5;
DefAttMaxValue[type] = 18;
DefAttCurrValue[type] = DefValue - 72;
}
else if( DefValue >= 60) // 4렙 60 ~ 72
{
DefAttLevel[type] = 4;
DefAttMaxValue[type] = 12;
DefAttCurrValue[type] = DefValue - 60;
}
else if( DefValue >= 30) // 3렙 30 ~ 60
{
DefAttLevel[type] = 3;
DefAttMaxValue[type] = 30;
DefAttCurrValue[type] = DefValue - 30;
}
else if( DefValue >= 12) // 2렙 // 12 ~ 30
{
DefAttLevel[type] = 2;
DefAttMaxValue[type] = 18;
DefAttCurrValue[type] = DefValue - 12;
}
else // else // 0~ 12
{
DefAttLevel[type] = 1;
DefAttMaxValue[type] = 12;
DefAttCurrValue[type] = DefValue;
}
}
//branch
function AddPrimeItemSymbol(ItemInfo Item)
{
local string TextureName;
if (Item.IsBRPremium != 2)
return;
TextureName = GetPrimeItemSymbolName();
if (Len(TextureName)>0)
{
StartItem();
m_Info.eType = DIT_TEXTURE;
m_Info.nOffSetX = 2;
m_Info.nOffSetY = 0;
m_Info.u_nTextureWidth = 16;
m_Info.u_nTextureHeight = 16;
m_Info.u_nTextureUWidth = 16;
m_Info.u_nTextureUHeight = 16;
m_Info.u_strTexture = TextureName;
EndItem();
}
}
//end of branch
defaultproperties
{
}