function I4700185_GiftBag(MapID, InstanceID, TypeID, TargetID) --玩家ID, 生成物品TypeID,数量,品质,生成模式,log用网络消息枚举 local r = math.random(10000) local temp = 0 local index = 1 local tbl = {} tbl[1]={3500023,1,65} tbl[2]={3500039,1,150} tbl[3]={3040004,1,450} tbl[4]={3040009,1,450} tbl[5]={3040014,1,450} tbl[6]={3040019,1,450} tbl[7]={3040024,1,450} tbl[8]={3040029,1,450} tbl[9]={3040034,1,450} tbl[10]={3040039,1,450} tbl[11]={3040044,1,450} tbl[12]={3040049,1,300} tbl[13]={3040054,1,300} tbl[14]={3040059,1,300} tbl[15]={3500207,1,200} tbl[16]={3500048,1,200} tbl[17]={3500041,1,150} tbl[18]={4999004,1,200} tbl[19]={4820256,1,150} tbl[20]={4530243,3,350} tbl[21]={4500002,3,500} tbl[22]={5600003,1,500} tbl[23]={4820079,1,400} tbl[24]={4820078,30,500} tbl[25]={4820039,1,400} tbl[26]={4820038,30,500} tbl[27]={3070051,3,600} tbl[28]={3020035,1,20} tbl[29]={3020033,1,30} tbl[30]={4222501,1,5} tbl[31]={4212036,1,5} tbl[32]={3500208,1,10} tbl[33]={3060060,1,100} tbl[34]={3020091,1,5} tbl[35]={3020090,1,10} for i = 1,35 do temp = temp + tbl[i][3] if temp >= r then index = i break end end if index >= 28 then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 100, 280) --开启了获得了 msg.AddMsgEvent(MsgID, 2, TargetID) msg.AddMsgEvent(MsgID, 4, TypeID) msg.AddMsgEvent(MsgID, 4, tbl[index][1]) msg.DispatchWorldMsgEvent(MsgID) end role.AddRoleItem(MapID, InstanceID, TargetID, tbl[index][1], tbl[index][2], -1, 8, 420) end function I4700185_CanUseGiftBag(MapID, InstanceID, TypeID, TargetID) local bRet, bIgnore = 0, false --判断背包空闲空间是否足够 local FreeSize = role.GetBagFreeSize(TargetID) if(FreeSize < 1) then --提示玩家背包空间不足 bRet = 40 end return bRet, bIgnore end aux.RegisterItemEvent(4700185, 1, "I4700185_GiftBag") aux.RegisterItemEvent(4700185, 0, "I4700185_CanUseGiftBag") function I4820059_Use(MapID, InstanceID, TypeID, TargetID) local tianya = role.GetRoleItemNum(TargetID,4820059) local yueluo = role.GetRoleItemNum(TargetID,4820060) if (yueluo > 0 and tianya > 0) then role.RemoveFromRole(MapID, InstanceID, TargetID, 4820059, 1, 101) role.RemoveFromRole(MapID, InstanceID, TargetID, 4820060, 1, 101) role.AddRoleItem(MapID, InstanceID, TargetID, 4700185, 1, -1, 8, 420) end return 1 end function I4820059_CanUse(MapID, InstanceID, TypeID, TargetID) local yueluo = role.GetRoleItemNum(TargetID,4820059) local tianya = role.GetRoleItemNum(TargetID,4820060) --判断背包空闲空间是否足够 local FreeSize = role.GetBagFreeSize(TargetID) if(FreeSize < 1) then --提示玩家背包空间不足 return 40, false end if (yueluo < 1 or tianya < 1) then return 32, false end return 0,false end aux.RegisterItemEvent(4820059, 1, "I4820059_Use") aux.RegisterItemEvent(4820059, 0, "I4820059_CanUse") aux.RegisterItemEvent(4820060, 1, "I4820059_Use") aux.RegisterItemEvent(4820060, 0, "I4820059_CanUse")