-- GetGiftRoleID = {} -- dianmingNormal = {} -- dianmingSpecial = {} -- function dianmingIni() -- dianmingNormal={1,2,3,4,5} -- dianmingSpecial = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,4,4,5,5,5,5,5,6,6,6,6,6,7,7,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11} -- Таблица вероятностей специальных подарков -- GetGiftRoleID = {} -- end -- function dianmingNor(hour,min) -- local giftNormal={1,2,3,4,5} -- Обычные подарки -- local NormalId = {4830095,4830096,4830097,4830098,4830099} -- local length=0 -- for k,v in pairs(dianmingNormal) do -- length = length + 1 -- end -- if length == 0 then -- dianmingIni() -- end -- local temp = dianmingNormal[math.random(#dianmingNormal)] -- local RoleID = chooseRole() -- local giftID -- if(hour == 22 and min == 0) then -- giftID = 3500204 -- local MsgID = msg.BeginMsgEvent() -- msg.AddMsgEvent(MsgID, 101,209006) -- msg.AddMsgEvent(MsgID, 2, RoleID) -- msg.AddMsgEvent(MsgID, 4, giftID) -- msg.DispatchBroadcast(MsgID,-1,-1,-1) -- else -- giftID = NormalId[temp] -- table.remove(dianmingNormal,temp) -- end -- local RoleNums=0 -- for k,v in pairs(GetGiftRoleID) do -- RoleNums = RoleNums + 1 -- end -- GetGiftRoleID[RoleNums+1] = {RoleID,giftID,1} -- local MsgID = msg.BeginMsgEvent() -- msg.AddMsgEvent(MsgID, 71, 209011) -- msg.AddMsgEvent(MsgID, 4, giftID) -- msg.DispatchRoleMsgEvent(RoleID, MsgID) -- end -- function dianmingSpe(hour,min) -- local giftSpecial={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,4,4,5,5,5,5,5,6,6,6,6,6,7,7,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11} -- Специальные подарки -- local SpecialId = {3020120,3020121,3020122,4800234,3030143,3030144,3030145,3030146,4800233,4800260,4800232} -- local length=0 -- for k,v in pairs(dianmingSpecial) do -- length = length + 1 -- end -- if length == 0 then -- dianmingIni() -- end -- local temp = dianmingSpecial[math.random(#dianmingSpecial)] -- local RoleID = chooseRole() -- local giftID = 0 -- if(hour == 22 and min == 0) then -- giftID = 3020035 -- local MsgID = msg.BeginMsgEvent() -- msg.AddMsgEvent(MsgID, 101, 209006) -- msg.AddMsgEvent(MsgID, 2, RoleID) -- msg.AddMsgEvent(MsgID, 4, giftID) -- msg.DispatchBroadcast(MsgID,-1,-1,-1) -- elseif(hour == 23 and min == 0) then -- giftID = 3020036 -- local MsgID = msg.BeginMsgEvent() -- msg.AddMsgEvent(MsgID, 101, 209006) -- msg.AddMsgEvent(MsgID, 2, RoleID) -- msg.AddMsgEvent(MsgID, 4, giftID) -- msg.DispatchBroadcast(MsgID,-1,-1,-1) -- elseif(hour == 23 and min == 59) then -- giftID = 3020037 -- local MsgID = msg.BeginMsgEvent() -- msg.AddMsgEvent(MsgID, 101, 209006) -- msg.AddMsgEvent(MsgID, 2, RoleID) -- msg.AddMsgEvent(MsgID, 4, giftID) -- msg.DispatchBroadcast(MsgID,-1,-1,-1) -- else -- giftID = SpecialId[temp] -- table.remove(dianmingSpecial,temp) -- end -- local RoleNums=0 -- for k,v in pairs(GetGiftRoleID) do -- RoleNums = RoleNums + 1 -- end -- GetGiftRoleID[RoleNums+1] = {RoleID,giftID,1} -- local MsgID = msg.BeginMsgEvent() -- msg.AddMsgEvent(MsgID, 71, 209011) -- msg.AddMsgEvent(MsgID, 4, giftID) -- msg.DispatchRoleMsgEvent(RoleID, MsgID) -- end -- function chooseRole() -- Выбор случайного игрока -- local RoleTblIni = map.GetMapAllRoleID(3424073512, -1) -- local RoleTbl = {} -- local length=0 -- local luckyRoleId = 0 -- for k,v in pairs(RoleTblIni) do -- length = length + 1 -- end -- local RoleNums=0 -- for k,v in pairs(GetGiftRoleID) do -- RoleNums = RoleNums + 1 -- end -- for i = 1,length do -- RoleTbl[i] = RoleTblIni[i] -- end -- for i = 1,length do -- for r= 1,RoleNums do -- if RoleTblIni[i] == GetGiftRoleID[r][1] then -- table.remove(RoleTbl,i) -- break -- end -- end -- end -- local RoleTotalNum=0 -- for k,v in pairs(RoleTbl) do -- RoleTotalNum = RoleTotalNum + 1 -- end -- if(RoleTotalNum >= 1) then -- local temp = math.random(RoleTotalNum) -- for r=1,RoleTotalNum do -- luckyRoleId = RoleTbl[temp] -- for i = 1,RoleNums do -- if luckyRoleId == GetGiftRoleID[i][1] then -- break -- else -- return luckyRoleId -- end -- end -- end -- else -- if(length >= 1) then -- local temp = math.random(length) -- local luckyRoleId = RoleTblIni[temp] -- end -- end -- return luckyRoleId -- end -- function xingyunzhishen_OnIalk(MapID, InstanceID, TargetID, TargetTypeID, RoleID, TalkIndex) -- if TalkIndex == -1 then -- local MsgID = msg.BeginMsgEvent() -- msg.AddMsgEvent(MsgID, 20, 209007) -- -- msg.AddMsgEvent(MsgID, 24, TargetID) -- ID NPC -- msg.AddMsgEvent(MsgID, 21, 4) -- Кнопка подтверждения -- msg.AddMsgEvent(MsgID, 1,209010) -- "Подтвердить" -- msg.AddMsgEvent(MsgID, 21, 20) -- Кнопка отмены -- msg.AddMsgEvent(MsgID, 1, 100002) -- "Отмена" -- msg.DispatchRoleMsgEvent(RoleID, MsgID) -- elseif TalkIndex == 4 then -- local num=0 -- local i = 0 -- local bool = true -- for k,v in pairs(GetGiftRoleID) do -- num = num + 1 -- end -- local temp = false -- local inGift = false -- if(num == nil or num ==0 ) then -- local MsgID = msg.BeginMsgEvent() -- msg.AddMsgEvent(MsgID, 20, 209009) -- -- msg.AddMsgEvent(MsgID, 24, TargetID) -- ID NPC -- msg.AddMsgEvent(MsgID, 21, 20) -- Кнопка отмены -- msg.AddMsgEvent(MsgID, 1, 100002) -- "Отмена" -- msg.DispatchRoleMsgEvent(RoleID, MsgID) -- temp = true -- end -- while bool == true do -- if i < num then -- i = i + 1 -- else -- bool = false -- end -- if(num >= 1) then -- if RoleID == GetGiftRoleID[i][1] then -- if GetGiftRoleID[i][3] == 1 then -- inGift = false -- local x = 0 -- if GetGiftRoleID[i][2] == 4830095 or GetGiftRoleID[i][2] == 4830097 or GetGiftRoleID[i][2] == 3500204 then -- x = 1 -- elseif GetGiftRoleID[i][2] == 4830096 then -- x = 3 -- elseif GetGiftRoleID[i][2] == 4830098 then -- x = 5 -- elseif GetGiftRoleID[i][2] == 4830099 then -- x = 2 -- end -- if role.GetBagFreeSize(RoleID) < 1 then -- local MsgID = msg.BeginMsgEvent() -- msg.AddMsgEvent(MsgID, 26, 100003) -- Сообщение о недостатке места в инвентаре -- msg.AddMsgEvent(MsgID, 9, 1) -- msg.DispatchRoleMsgEvent(RoleID, MsgID) -- return 32,false -- else -- role.AddRoleItem(MapID, InstanceID, RoleID, GetGiftRoleID[i][2], x, -1, 8, 35) -- GetGiftRoleID[i][3] = 0 -- temp =true -- bool = false -- end -- else -- inGift = true -- end -- end -- end -- end -- if inGift == false and temp == false then -- local MsgID = msg.BeginMsgEvent() -- msg.AddMsgEvent(MsgID, 20, 209009) -- -- msg.AddMsgEvent(MsgID, 24, TargetID) -- ID NPC -- msg.AddMsgEvent(MsgID, 21, 20) -- Кнопка отмены -- msg.AddMsgEvent(MsgID, 1, 100002) -- "Отмена" -- msg.DispatchRoleMsgEvent(RoleID, MsgID) -- elseif inGift == true then -- local MsgID = msg.BeginMsgEvent() -- msg.AddMsgEvent(MsgID, 20, 209008) -- -- msg.AddMsgEvent(MsgID, 24, TargetID) -- ID NPC -- msg.AddMsgEvent(MsgID, 21, 20) -- Кнопка отмены -- msg.AddMsgEvent(MsgID, 1, 100002) -- "Отмена" -- msg.DispatchRoleMsgEvent(RoleID, MsgID) -- end -- end -- end -- aux.RegisterCreatureEvent(5610098, 7, "xingyunzhishen_OnIalk")