--天火之匣 function I4400501_GiftBag(MapID, InstanceID, TypeID, TargetID) local TypeID = {20,6600914,6600915,6600916,6600917,6600918,6600919} local bool_duihuan = false local allnum = 0 for k,v in pairs(TypeID) do if k > 1 then local i = role.GetRoleItemNum(TargetID, v) allnum = i + allnum end if TypeID[1] <= allnum then bool_duihuan = true break end end local shengyu = TypeID[1] if bool_duihuan then for k,v in pairs(TypeID) do if k > 1 then local i = role.GetRoleItemNum(TargetID, v) if i < shengyu then role.RemoveFromRole(MapID, InstanceID, TargetID, v, i, 420) shengyu = shengyu - i else role.RemoveFromRole(MapID, InstanceID, TargetID, v, shengyu, 420) break end end end role.AddRoleItem(MapID, InstanceID, TargetID, 4400502, 1, -1, 8, 420) local dropList = { {itemID = 3070024, count = 1, chance = 4000}, -- Малая руна опыта {itemID = 3060001, count = 3, chance = 5000}, -- Пыльца эльфов [Ур. 1] {itemID = 3050006, count = 2, chance = 5000}, -- Чугун [О] {itemID = 3020009, count = 1, chance = 5000}, -- Руна удачи новичка [перс.] {itemID = 3050007, count = 2, chance = 5000}, -- Чугун [Ур. 4] {itemID = 3070018, count = 1, chance = 3500}, -- Свиток воскрешения {itemID = 3070051, count = 1, chance = 3500}, -- Камень полета {itemID = 3070010, count = 1, chance = 2500}, -- Руна битвы [2 ч] {itemID = 3070057, count = 1, chance = 300}, -- Доп. сумка [перс.] {itemID = 3070058, count = 1, chance = 300}, -- Доп. склад [перс.] {itemID = 3070036, count = 1, chance = 4000}, -- Малая руна сокровищ {itemID = 3070030, count = 1, chance = 4000}, -- Малая золотая руна } local normalID = 3070056 -- Обычный предмет if math.random(100) > 31 then -- Выдаем случайный предмет из dropList на основе шансов local totalChance = 0 for _, item in ipairs(dropList) do totalChance = totalChance + item.chance end local rand = math.random(1, totalChance) local cumulative = 0 for _, item in ipairs(dropList) do cumulative = cumulative + item.chance if rand <= cumulative then role.AddRoleItem(MapID, InstanceID, TargetID, item.itemID, item.count, -1, 8, 420) break end end else role.AddRoleItem(MapID, InstanceID, TargetID, normalID, 1, -1, 8, 420) end return 0 end return 0 end function I4400501_CanUseGiftBag(MapID, InstanceID, TypeID, TargetID) local bRet, bIgnore = 0, false local FreeSize = role.GetBagFreeSize(TargetID) if(FreeSize < 2) then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 26, 100003) msg.AddMsgEvent(MsgID, 9, 2) msg.DispatchRoleMsgEvent(TargetID, MsgID) bRet = 40 else local TypeID = {20,6600914,6600915,6600916,6600917,6600918,6600919} local bool_duihuan = false local allnum = 0 for k,v in pairs(TypeID) do if k > 1 then local i = role.GetRoleItemNum(TargetID, v) allnum = i + allnum end if TypeID[1] <= allnum then bool_duihuan = true break end end if not bool_duihuan then bRet = 32 local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 26, 206429) msg.DispatchRoleMsgEvent(TargetID, MsgID) end end return bRet, bIgnore end aux.RegisterItemEvent(4400501, 1, "I4400501_GiftBag") aux.RegisterItemEvent(4400501, 0, "I4400501_CanUseGiftBag")