Files
Main/Assets/GameAssets/Resources/Lua/Logic/Item/LuaItemBase.lua
2025-01-25 04:38:09 +08:00

286 lines
12 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

------------------------------------------------
--作者: 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