insectSpawnPoint = { {448, 2873, 918}, {456, 3049, 905}, {473, 3049, 910}, {477, 2981, 902}, {490, 2842, 918}, {478, 2739, 934}, {482, 2647, 1088}, {467, 2650, 1090}, {454, 2657, 1088}, {543, 2568, 1074}, {449, 3231, 828}, {456, 2786, 857}, {467, 3280, 826}, {488, 2791, 797}, {493, 2700, 780}, {453, 2987, 789}, {420, 2888, 802}, {317, 2872, 892}, {499, 2799, 706}, {491, 2885, 653}, {523, 2709, 689}, {533, 2711, 593}, {491, 2734, 507}, {470, 2778, 528}, {428, 2862, 516}, {430, 2889, 478}, {455, 3324, 476}, {500, 2627, 504}, {506, 2610, 477}, {510, 2551, 449}, {507, 2632, 433}, {507, 2551, 423}, {454, 3200, 426}, {430, 2843, 427}, {425, 2843, 448}, {593, 2525, 406}, {538, 2732, 229}, {505, 2838, 218}, {465, 2850, 231} } kartu_pos = { {521, 2609, 1021}, {571, 2534, 971}, {481, 2743, 959}, {377, 2793, 973}, {398, 2860, 845}, {507, 2708, 847}, {493, 2700, 766}, {590, 2589, 710}, {580, 2619, 816}, {470, 2737, 687}, {599, 2598, 673}, {604, 2485, 593}, {607, 2432, 549}, {576, 2554, 471}, {585, 2543, 399}, {590, 2543, 348}, {555, 2574, 285}, {523, 2551, 405}, {514, 2558, 472}, {444, 2745, 368}, {366, 2862, 300}, {322, 2850, 362}, {418, 2827, 399}, {347, 2850, 484}, {382, 2847, 540}, {413, 2850, 735}, {317, 2838, 792} } beachPartyPalace = nil kartu = {} beachPartyInsect = {} function C9010305_OnTalk(MapID, InstanceID, TargetID, TargetTypeID, RoleID, TalkIndex) local MsgID = msg.BeginMsgEvent() if TalkIndex == -1 then if role.GetRoleItemNum(RoleID, 6600506) < 1 then msg.AddMsgEvent(MsgID, 20, 950319) --бжжж бжжжж msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 21, 4) msg.AddMsgEvent(MsgID, 1, 950320) --взять жука else msg.AddMsgEvent(MsgID, 20, 950332) -- уже есть жук msg.AddMsgEvent(MsgID, 24, TargetID) end msg.AddMsgEvent(MsgID, 21, 99) msg.AddMsgEvent(MsgID, 1, 100002) --Отмена elseif TalkIndex == 4 then role.AddRoleItem(MapID, InstanceID, RoleID, 6600506, 1, -1, 8, 420) map.MapDeleteCreature(MapID, InstanceID, TargetID) end msg.DispatchRoleMsgEvent(RoleID, MsgID) end aux.RegisterCreatureEvent(9010305, 7, "C9010305_OnTalk") function beachParty_OnStart(ActID) for i = 1, #insectSpawnPoint do beachPartyInsect[i] = map.MapCreateColCreature(3390518312, -1, 9010305, insectSpawnPoint[i][1], insectSpawnPoint[i][2], insectSpawnPoint[i][3], 1, "") end local j = 0 for i = 1, 5 do j = math.random(1, #kartu_pos) kartu[i] = map.MapCreateColCreature(3390518312, -1, 9010076 + math.random(1, 4), kartu_pos[j][1], kartu_pos[j][2], kartu_pos[j][3], 1, "") end act.SetActScriptData(1141, 1, 3, map.MapCreateColCreature(3390518312, -1, 9010309, 589, 2557, 762, 1, "")) end aux.RegisterActEvent(1141, 2, "beachParty_OnStart") function beachParty_OnTimerMin(actID) local curmin = tonumber(os.date("%M")) local j = 0 if curmin % 5 == 0 then for i = 1, 5 do j = math.random(1, #kartu_pos) map.MapDeleteCreature(3390518312, -1, kartu[i]) kartu[i] = map.MapCreateColCreature(3390518312, -1, 9010076 + math.random(1, 4), kartu_pos[j][1], kartu_pos[j][2], kartu_pos[j][3], 1, "") end if curmin % 4 == 0 then for i = 1, #insectSpawnPoint do map.MapDeleteCreature(3390518312, -1, beachPartyInsect[i]) beachPartyInsect[i] = map.MapCreateColCreature(3390518312, -1, 9010305, insectSpawnPoint[i][1], insectSpawnPoint[i][2], insectSpawnPoint[i][3], 1, "") end end end end aux.RegisterActEvent(1141, 4, "beachParty_OnTimerMin") function beachParty_OnEnd(ActID) for i = 1, #insectSpawnPoint do map.MapDeleteCreature(3390518312, -1, beachPartyInsect[i]) end for i = 1, #kartu_pos do map.MapDeleteCreature(3390518312, -1, kartu[i]) end map.MapDeleteCreature(3390518312, -1, act.GetActScriptData(1141, 1, 3)) act.SetActScriptData(1141) Sand_castle(0, 3, 0) end aux.RegisterActEvent(1141, 3, "beachParty_OnEnd") function kartu_OnInVest(MapID, InstanceID, CreatureID, CreatureTypeID, RoleID) local item_kart = {4040011, 4040012, 4040013, 4040014, 4040015} role.AddRoleItem(MapID, InstanceID, RoleID, item_kart[math.random(1, 5)], 1, -1, 8, 420) end aux.RegisterCreatureEvent(9010077, 6, "kartu_OnInVest") aux.RegisterCreatureEvent(9010078, 6, "kartu_OnInVest") aux.RegisterCreatureEvent(9010079, 6, "kartu_OnInVest") aux.RegisterCreatureEvent(9010080, 6, "kartu_OnInVest") function beachPalace_OnTalk(MapID, InstanceID, TargetID, TargetTypeID, RoleID, TalkIndex) local usedNum = act.GetActScriptData(1141, 1, 1) local currStage = act.GetActScriptData(1141, 1, 2) local MsgID = msg.BeginMsgEvent() if TalkIndex == -1 or TalkIndex == 9 then msg.AddMsgEvent(MsgID, 20, 950321) --описание msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 21, 11) msg.AddMsgEvent(MsgID, 1, 950322) --статус msg.AddMsgEvent(MsgID, 21, 21) msg.AddMsgEvent(MsgID, 1, 950324) --о наградах msg.AddMsgEvent(MsgID, 21, 31) msg.AddMsgEvent(MsgID, 1, 950326) --сдать msg.AddMsgEvent(MsgID, 21, 41) msg.AddMsgEvent(MsgID, 1, 950328) --получить бафф msg.AddMsgEvent(MsgID, 21, 99) msg.AddMsgEvent(MsgID, 1, 100002) --Отмена else if TalkIndex == 11 then msg.AddMsgEvent(MsgID, 20, 950323) --статус msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 9, usedNum) -- elseif TalkIndex == 21 then msg.AddMsgEvent(MsgID, 20, 950325) --о наградах msg.AddMsgEvent(MsgID, 24, TargetID) elseif TalkIndex == 31 then if role.GetRoleItemNum(RoleID, 6600508) >= 1 then role.RemoveFromRole(MapID, InstanceID, RoleID, 6600508, 1, 400) role.AddRoleItem(MapID, InstanceID, RoleID, 6600509, 1, -1, 8, 420) act.SetActScriptData(1141, 1, 1, usedNum + 1) if (usedNum + 1) % 25 == 0 and usedNum <= 100 then act.SetActScriptData(1141, 1, 2, currStage + 1) end else msg.AddMsgEvent(MsgID, 20, 950327) -- нет предмета msg.AddMsgEvent(MsgID, 24, TargetID) end elseif TalkIndex == 41 then if usedNum < 0 then msg.AddMsgEvent(MsgID, 20, 950329) --меньше 100 msg.AddMsgEvent(MsgID, 24, TargetID) elseif role.IsRoleHaveBuff(MapID, InstanceID, RoleID, 98061) then msg.AddMsgEvent(MsgID, 20, 950329) --уже есть бафф msg.AddMsgEvent(MsgID, 24, TargetID) else unit.AddBuff(MapID, InstanceID, RoleID, 9806101, RoleID) end end msg.AddMsgEvent(MsgID, 21, 9) msg.AddMsgEvent(MsgID, 1, 950331) --назад end msg.DispatchRoleMsgEvent(RoleID, MsgID) end aux.RegisterCreatureEvent(9010309, 7, "beachPalace_OnTalk") aux.RegisterCreatureEvent(9010306, 7, "beachPalace_OnTalk") aux.RegisterCreatureEvent(9010307, 7, "beachPalace_OnTalk") aux.RegisterCreatureEvent(9010308, 7, "beachPalace_OnTalk") function Karpou_OnDie(MapID, InstanceID, TargetID, TargetTypeID, RoleID) local bhave = role.IsRoleHaveBuff(MapID, InstanceID, RoleID, 99965) if not bhave then role.AddRoleItem(MapID, InstanceID, RoleID, 3010028, 1, -1, 8, 420) role.AddRoleItem(MapID, InstanceID, RoleID, 3010031, 1, -1, 8, 420) role.AddRoleItem(MapID, InstanceID, RoleID, 3500208, 1, -1, 8, 420) unit.AddBuff(MapID, InstanceID, RoleID, 9996501, RoleID) end local lootRoleTable = cre.GetAroundRole(MapID, InstanceID, TargetID, 100000, 100000) for k, RolID in pairs(lootRoleTable) do role.AddRoleItem(MapID, InstanceID, RolID, 6600214, 1, -1, 8, 420) role.AddRoleItem(MapID, InstanceID, RolID, 3070056, 5, -1, 8, 420) local a = role.GetRoleItemNum(RolID, 6600881) local QuestID = 30006 if role.IsRoleHaveQuest(MapID, InstanceID, RolID, QuestID) and a < 1 then role.QuestAddRoleItem(MapID, InstanceID, RolID, QuestID, 6600881, 1, -1, 420) end end end aux.RegisterCreatureEvent(9010062, 4, "Karpou_OnDie") function s61_OnPlayerEnter(MapID, InstanceID, RoleID) local level = role.GetRoleLevel(MapID, InstanceID, RoleID) if level >= 60 then local sex = role.GetRoleSex(RoleID) if sex == 1 then unit.AddBuff(MapID, InstanceID, RoleID, 6940102, RoleID) elseif sex == 0 then unit.AddBuff(MapID, InstanceID, RoleID, 6940202, RoleID) end unit.AddBuff(MapID, InstanceID, RoleID, 9999993, RoleID) end end aux.RegisterMapEvent("s61", 2, "s61_OnPlayerEnter") function s61_OnPlayerLeave(MapID, InstanceID, RoleID) if role.IsRoleHaveBuff(MapID, InstanceID, RoleID, 69401) then unit.CancelBuff(MapID, InstanceID, RoleID, 6940102) end if role.IsRoleHaveBuff(MapID, InstanceID, RoleID, 69402) then unit.CancelBuff(MapID, InstanceID, RoleID, 6940202) end end aux.RegisterMapEvent("s61", 3, "s61_OnPlayerLeave") function s61_GetOnePerfectMap(MapID, InstanceID, RoleID) return 1 end aux.RegisterMapEvent("s61", 14, "s61_GetOnePerfectMap") function s61_CanEnter(MapID, InstanceID, RoleID) return 1 end aux.RegisterMapEvent("s61", 15, "s61_CanEnter")