286 lines
12 KiB
Lua
286 lines
12 KiB
Lua
------------------------------------------------
|
||
--作者: HJ
|
||
--日期: 2021-03-10
|
||
--文件: LuaItemBase.lua
|
||
--模块: LuaItemBase
|
||
--描述: 基础物品类,用于提供物品模型相应接口
|
||
------------------------------------------------
|
||
local L_PetEquip = require("Logic.Item.PetEquip")
|
||
local L_HorseEquip = require("Logic.Item.HorseEquip")
|
||
local L_DevilSoulEquip = require("Logic.Item.DevilSoulEquip")
|
||
local L_SoulPearl = require("Logic.Item.SoulPearl")
|
||
local L_UnrealEquip = require("Logic.Item.UnrealEquip")
|
||
local L_CItemBase = CS.Thousandto.Code.Logic.ItemBase
|
||
local LuaItemBase = {
|
||
EquipBaseAttDic = nil,
|
||
EquipSpecialAttDic = nil,
|
||
}
|
||
|
||
--判断物品类型
|
||
function LuaItemBase.GetItemTypeByModelID(cfgID)
|
||
if (cfgID >= 2000000 and cfgID < 3000000) then
|
||
return ItemType.Equip;
|
||
elseif (cfgID >= 4000000 and cfgID < 5000000) then
|
||
return ItemType.HolyEquip;
|
||
elseif (cfgID >= 5000000 and cfgID < 6000000) then
|
||
return ItemType.ImmortalEquip;
|
||
elseif (cfgID >= 6000000 and cfgID < 7000000) then
|
||
return ItemType.LingPo;
|
||
elseif (cfgID >= 7000000 and cfgID < 7010000) then
|
||
return ItemType.PetEquip;
|
||
elseif (cfgID >= 7010000 and cfgID < 8000000) then
|
||
return ItemType.SoulPearl;
|
||
elseif (cfgID >= 8000000 and cfgID < 8010000) then
|
||
return ItemType.HorseEquip;
|
||
elseif (cfgID >= 9000000 and cfgID < 9010000) then
|
||
return ItemType.DevilSoulEquip;
|
||
elseif (cfgID >= 10000000 and cfgID < 11000000) then
|
||
return ItemType.UnrealEquip;
|
||
end
|
||
local item = DataConfig.DataItem[cfgID]
|
||
if item then
|
||
return item.Type;
|
||
end
|
||
return ItemType.UnDefine;
|
||
end
|
||
|
||
|
||
--根据配置表ID,生成模板数据
|
||
function LuaItemBase.CreateItemBase(cfgID)
|
||
local type = LuaItemBase.GetItemTypeByModelID(cfgID);
|
||
if (type == ItemType.PetEquip) then
|
||
return L_PetEquip:New(cfgID)
|
||
elseif (type == ItemType.SoulPearl) then
|
||
return L_SoulPearl:New(cfgID)
|
||
elseif (type == ItemType.HorseEquip) then
|
||
return L_HorseEquip:New(cfgID)
|
||
elseif (type == ItemType.DevilSoulEquip) then
|
||
return L_DevilSoulEquip:New(cfgID)
|
||
elseif (type == ItemType.UnrealEquip) then
|
||
return L_UnrealEquip:New(cfgID)
|
||
else
|
||
return L_CItemBase.CreateItemBase(cfgID)
|
||
end
|
||
end
|
||
|
||
--根据网络消息,生成模板数据
|
||
function LuaItemBase.CreateItemBaseByMsg(msg)
|
||
if msg then
|
||
local type = LuaItemBase.GetItemTypeByModelID(msg.itemModelId);
|
||
if (type == ItemType.PetEquip) then
|
||
return L_PetEquip:NewWithMsg(msg)
|
||
elseif (type == ItemType.SoulPearl) then
|
||
return L_SoulPearl:NewWithMsg(msg)
|
||
elseif (type == ItemType.HorseEquip) then
|
||
return L_HorseEquip:NewWithMsg(msg)
|
||
elseif (type == ItemType.DevilSoulEquip) then
|
||
return L_DevilSoulEquip:NewWithMsg(msg)
|
||
elseif (type == ItemType.UnrealEquip) then
|
||
return L_UnrealEquip:NewWithMsg(msg)
|
||
else
|
||
return L_CItemBase.CreateItemBaseByLuaMsg(msg)
|
||
end
|
||
end
|
||
return nil;
|
||
end
|
||
|
||
--根据装备类型获取装备部位名字
|
||
function LuaItemBase.GetEquipNameWithType(type)
|
||
local ret = nil;
|
||
if type == PetEquipType.Defalt then
|
||
ret = DataConfig.DataMessageString.Get("C_EQUIP_ALL");
|
||
elseif type == PetEquipType.Bell then
|
||
ret = DataConfig.DataMessageString.Get("C_PETEQUIP_TYPENAME1");
|
||
elseif type == PetEquipType.Necklace then
|
||
ret = DataConfig.DataMessageString.Get("C_MONSTERSOUL_XIANGQUAN");
|
||
elseif type == PetEquipType.ClawCover then
|
||
ret = DataConfig.DataMessageString.Get("C_PETEQUIP_TYPENAME2");
|
||
elseif type == PetEquipType.FuDai then
|
||
ret = DataConfig.DataMessageString.Get("C_PETEQUIP_TYPENAME3");
|
||
elseif type == 211 then
|
||
ret = DataConfig.DataMessageString.Get("C_SOULPEARL_TYPENAME1");
|
||
elseif type == 212 then
|
||
ret = DataConfig.DataMessageString.Get("C_SOULPEARL_TYPENAME2");
|
||
elseif type == 213 then
|
||
ret = DataConfig.DataMessageString.Get("C_SOULPEARL_TYPENAME3");
|
||
elseif type == 214 then
|
||
ret = DataConfig.DataMessageString.Get("C_SOULPEARL_TYPENAME4");
|
||
elseif type == 215 then
|
||
ret = DataConfig.DataMessageString.Get("C_SOULPEARL_TYPENAME5");
|
||
elseif type == 216 then
|
||
ret = DataConfig.DataMessageString.Get("C_SOULPEARL_TYPENAME6");
|
||
elseif type == 217 then
|
||
ret = DataConfig.DataMessageString.Get("C_SOULPEARL_TYPENAME7");
|
||
elseif type == 218 then
|
||
ret = DataConfig.DataMessageString.Get("C_SOULPEARL_TYPENAME8");
|
||
elseif type == 219 then
|
||
ret = DataConfig.DataMessageString.Get("C_SOULPEARL_TYPENAME9");
|
||
elseif type == 220 then
|
||
ret = DataConfig.DataMessageString.Get("C_SOULPEARL_TYPENAME10");
|
||
elseif type == MountEquipType.Face then
|
||
ret = DataConfig.DataMessageString.Get("C_MOUNT_EQUIP_TYPE_PART_FACE");
|
||
elseif type == MountEquipType.Heart then
|
||
ret = DataConfig.DataMessageString.Get("C_MOUNT_EQUIP_TYPE_PART_HEART");
|
||
elseif type == MountEquipType.Ring then
|
||
ret = DataConfig.DataMessageString.Get("C_MOUNT_EQUIP_TYPE_PART_RING");
|
||
elseif type == MountEquipType.Foot then
|
||
ret = DataConfig.DataMessageString.Get("C_MOUNT_EQUIP_TYPE_PART_FOOT");
|
||
elseif type == EquipmentType.Weapon then
|
||
ret = DataConfig.DataMessageString.Get("C_EQUIP_NAME_WEAPON");
|
||
elseif type == EquipmentType.Necklace then
|
||
ret = DataConfig.DataMessageString.Get("C_EQUIP_NAME_NECKLACE");
|
||
elseif type == EquipmentType.Helmet then
|
||
ret = DataConfig.DataMessageString.Get("C_EQUIP_NAME_HELMET");
|
||
elseif type == EquipmentType.Clothes then
|
||
ret = DataConfig.DataMessageString.Get("C_EQUIP_NAME_CLOTHES");
|
||
elseif type == EquipmentType.Belt then
|
||
ret = DataConfig.DataMessageString.Get("C_EQUIP_NAME_YAODAI");
|
||
elseif type == EquipmentType.LegGuard then
|
||
ret = DataConfig.DataMessageString.Get("C_EQUIP_NAME_BELT");
|
||
elseif type == EquipmentType.Shoe then
|
||
ret = DataConfig.DataMessageString.Get("C_EQUIP_NAME_SHOE");
|
||
elseif type == EquipmentType.FingerRing then
|
||
ret = DataConfig.DataMessageString.Get("C_EQUIP_NAME_FINGERRING");
|
||
elseif type == EquipmentType.Bracelet then
|
||
ret = DataConfig.DataMessageString.Get("C_EQUIP_NAME_Bracelet");
|
||
elseif type == EquipmentType.EarRings then
|
||
ret = DataConfig.DataMessageString.Get("C_EQUIP_NAME_EarRings");
|
||
elseif type == EquipmentType.Badge then
|
||
ret = DataConfig.DataMessageString.Get("C_EQUIP_NAME_Badge");
|
||
elseif type == UnreadEquipType.TouKui then--幻装头盔
|
||
ret = DataConfig.DataMessageString.Get("C_UNREAL_EQUIP_TYPE1");
|
||
elseif type == UnreadEquipType.ErHuan then--幻装耳环
|
||
ret = DataConfig.DataMessageString.Get("C_UNREAL_EQUIP_TYPE2");
|
||
elseif type == UnreadEquipType.XiangLian then--幻装项链
|
||
ret = DataConfig.DataMessageString.Get("C_UNREAL_EQUIP_TYPE3");
|
||
elseif type == UnreadEquipType.YiFu then--幻装衣服
|
||
ret = DataConfig.DataMessageString.Get("C_UNREAL_EQUIP_TYPE4");
|
||
elseif type == UnreadEquipType.KuZi then--幻装裤子
|
||
ret = DataConfig.DataMessageString.Get("C_UNREAL_EQUIP_TYPE5");
|
||
elseif type == UnreadEquipType.WuQi then--幻装武器
|
||
ret = DataConfig.DataMessageString.Get("C_UNREAL_EQUIP_TYPE6");
|
||
elseif type == UnreadEquipType.HuWan then--幻装护腕
|
||
ret = DataConfig.DataMessageString.Get("C_UNREAL_EQUIP_TYPE7");
|
||
elseif type == UnreadEquipType.XieZi then--幻装鞋子
|
||
ret = DataConfig.DataMessageString.Get("C_UNREAL_EQUIP_TYPE8");
|
||
elseif type == UnreadEquipType.JieZhi then--幻装戒指
|
||
ret = DataConfig.DataMessageString.Get("C_UNREAL_EQUIP_TYPE9");
|
||
elseif type == UnreadEquipType.ShouZHuo then--幻装手镯
|
||
ret = DataConfig.DataMessageString.Get("C_UNREAL_EQUIP_TYPE10");
|
||
end
|
||
return ret;
|
||
end
|
||
|
||
--获取物品类型名字
|
||
function LuaItemBase.GetTypeNameWitType(type)
|
||
local ret = nil;
|
||
if type == ItemType.Equip then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEM_NAME_EQUIP")
|
||
elseif type == ItemType.Money then
|
||
ret = DataConfig.DataMessageString.Get("C_BACKPACKBAG_CURRENCY")
|
||
elseif type == ItemType.Effect then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEMTYPE_EFFECTITEM");
|
||
elseif type == ItemType.Material then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEM_NAME_MATERIAL");
|
||
elseif type == ItemType.GemStone then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEMTYPE_DIAMAND");
|
||
elseif type == ItemType.GiftPack then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEM_NAME_GIFT");
|
||
elseif type == ItemType.SpecialPingZiItem then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEM_NAME_SUIPIAN");
|
||
elseif type == ItemType.Gift then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEMTYPE_GIFT");
|
||
elseif type == ItemType.Normal then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEM_NAME_NORMAL");
|
||
elseif type == ItemType.Special then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEM_NAME_SPECIAL");
|
||
elseif type == ItemType.Title then
|
||
ret = DataConfig.DataMessageString.Get("TITLE_SYSTEM");
|
||
elseif type == ItemType.HolyEquip then
|
||
ret = DataConfig.DataMessageString.Get("ShenZhuang");
|
||
elseif type == ItemType.SpecialBox then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEMTYPE_BOXS");
|
||
elseif type == ItemType.ChangeJob then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEMTYPE_CHANGEJOB");
|
||
elseif type == ItemType.XiShui then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEMTYPE_XISHUI");
|
||
elseif type == ItemType.VipExp then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEMTYPE_VIPEXE");
|
||
elseif type == ItemType.LingPo then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEMTYPE_LINGPO");
|
||
elseif type == ItemType.ImmortalEquip then
|
||
ret = DataConfig.DataMessageString.Get("C_XIANJIA");
|
||
elseif type == ItemType.PetEquip then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEMTYPE_PETEQUIP");
|
||
elseif type == ItemType.HorseEquip then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEMTYPE_HORSEEQUIP");
|
||
elseif type == ItemType.DevilSoulEquip then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEMTYPE_DEVIL_SOUL_EQUIP");
|
||
elseif type == ItemType.DevilSoulChip then
|
||
ret = DataConfig.DataMessageString.Get("C_ITEMTYPE_DEVIL_SOUL_EQUIPCLIP");
|
||
elseif type == ItemType.UnrealEquip then
|
||
ret = DataConfig.DataMessageString.Get("C_UNREAL_EQUIP");
|
||
elseif type == ItemType.UnrealEquipChip then
|
||
ret = DataConfig.DataMessageString.Get("C_UNREAL_EQUIP_CHIP");
|
||
end
|
||
return ret;
|
||
end
|
||
|
||
--获取装备和物品的ICON
|
||
function LuaItemBase.GetItemIcon(id)
|
||
local retString = 0;
|
||
if (id >= 1000000) then
|
||
local item = DataConfig.DataEquip[id];
|
||
if item then
|
||
retString = item.Icon;
|
||
end
|
||
else
|
||
local item = DataConfig.DataItem[id];
|
||
if item then
|
||
retString = item.Icon;
|
||
end
|
||
end
|
||
|
||
return retString;
|
||
end
|
||
--获取装备和物品的名字
|
||
function LuaItemBase.GetItemName(id)
|
||
local retString = "";
|
||
if (id >= 1000000) then
|
||
local item = DataConfig.DataEquip[id];
|
||
if item then
|
||
retString = item.Name;
|
||
end
|
||
else
|
||
local item = DataConfig.DataItem[id];
|
||
if item then
|
||
retString = item.Name;
|
||
end
|
||
end
|
||
|
||
return retString;
|
||
end
|
||
|
||
function LuaItemBase.GetQualityStr(quality)
|
||
if quality == QualityCode.Green then
|
||
return DataConfig.DataMessageString.Get("C_GUILD_SORT_QUALITY_GREEN")
|
||
elseif quality == QualityCode.Blue then
|
||
return DataConfig.DataMessageString.Get("C_GUILD_SORT_QUALITY_BLUE")
|
||
elseif quality == QualityCode.Violet then
|
||
return DataConfig.DataMessageString.Get("C_GUILD_SORT_QUALITY_PURPLE")
|
||
elseif quality == QualityCode.Orange then
|
||
return DataConfig.DataMessageString.Get("C_GUILD_SORT_QUALITY_ORANGE")
|
||
elseif quality == QualityCode.Golden then
|
||
return DataConfig.DataMessageString.Get("C_GUILD_SORT_QUALITY_GOLD")
|
||
elseif quality == QualityCode.Red then
|
||
return DataConfig.DataMessageString.Get("C_GUILD_SORT_QUALITY_RED")
|
||
elseif quality == QualityCode.Pink then
|
||
return DataConfig.DataMessageString.Get("Pink_Color")
|
||
elseif quality == QualityCode.DarkGolden then
|
||
return DataConfig.DataMessageString.Get("C_COLOR_DARKGOLD")
|
||
elseif quality == QualityCode.Colorful then
|
||
return DataConfig.DataMessageString.Get("C_COLOR_HUANCAI")
|
||
end
|
||
return "";
|
||
end
|
||
return LuaItemBase |