function c5800124_OnTalk(MapID, InstanceID, TargetID, TargetTypeID, RoleID, TalkIndex) local GuildID = guild.GetRoleGuildID(RoleID) local GuildLevel = role.GetGuildAtt(RoleID, 1) local GuildMaterial = guild.GetGuildMaterial(GuildID) local GuildPos = guild.GetRoleGuildPos(GuildID, RoleID) local money = role.GetRoleSilver(MapID, InstanceID,RoleID) local GuildMaterialRequirement = {2000,5000,11000,20000,32000,47000,65000,86000,110000,137000,0} local skillStats = {} skillStats = {{{1000,7000},{11000,11000},{22000,14000},{33000,17000},{44000,21000},{55000,25000},{66000,29000},{77000,34000},{88000,39000},{99000,44000}}, {{1000,7000},{11000,11000},{22000,14000},{33000,17000},{44000,21000},{55000,25000},{66000,29000},{77000,34000},{88000,39000},{99000,44000}}, {{500,300},{800,800},{1100,1300},{1400,1800},{1700,2300},{2000,2800},{2300,3300},{2600,3800},{2900,4300},{3200,4800}}, {{500,300},{800,800},{1100,1300},{1400,1800},{1700,2300},{2000,2800},{2300,3300},{2600,3800},{2900,4300},{3200,4800}}, {{100,132},{200,264},{300,396},{400,528},{500,660},{600,792},{700,924},{800,1056},{900,1188},{1000,1320}}, {{2500,4500},{3000,5000},{3500,5500},{4000,6000},{4500,6500},{5000,7000},{5500,7500},{6000,8000},{6500,8500},{7000,9000}}} local delskill = {69438,69439,69440,69441,69442,69443} local message1 = {950788,950790,950792,950794,950796,950798} local message2 = {950787,950789,950791,950793,950795,950797} local ProtectorLevel, skillLearned, skill_level = guild_patron(GuildID,0,0,0) local MsgID = msg.BeginMsgEvent() if GuildID == nil or GuildID == -1 or GuildID == 4294967295 then msg.AddMsgEvent(MsgID, 20, 950769) --Вступите в гильдию или создайте её, чтобы общаться с покровителем msg.AddMsgEvent(MsgID, 24, TargetID) else if TalkIndex == -1 then msg.AddMsgEvent(MsgID, 20, 950770) -- У покровителя гильдии <p1> на данный момент <p2> уровень. Глава или заместитель главы гильдии может прокачивать уровень покровителя гильдии при помощи показателя Ресурсы. Чтобы повысить уровень покровителя, гильдия должна достигнуть того же уровня, который желает прокачать у покровителя msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 19, GuildID) msg.AddMsgEvent(MsgID, 9, tonumber(ProtectorLevel)) msg.AddMsgEvent(MsgID, 21, 4) msg.AddMsgEvent(MsgID, 1, 950771) -- Общая информация if GuildPos == 2 or GuildPos == 3 then msg.AddMsgEvent(MsgID, 21, 5) msg.AddMsgEvent(MsgID, 1, 950773) -- Прокачка end msg.AddMsgEvent(MsgID, 21, 6) msg.AddMsgEvent(MsgID, 1, 950777) -- Эффекты elseif TalkIndex == 4 then msg.AddMsgEvent(MsgID, 20, 950772) --Покровитель гильдии позволяет использовать эффекты благословения, которые временно повышают боевые параметры участников гильдии. Величины добавляемых параметров зависят от уровня покровителя гильдии. Каждый участник гильдии сам выбирает, какие именно параметры желает повысить msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 951137) -- Назад elseif TalkIndex == 5 then if tonumber(ProtectorLevel)<10 then msg.AddMsgEvent(MsgID, 20, 950774) -- У покровителя гильдии <p1> на данный момент <p2> уровень. Для повышения уровня на 1 нужно собрать и отдать <p3> ресурсов гильдии, а также иметь <p4> уровень гильдии. msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 19, GuildID) msg.AddMsgEvent(MsgID, 9, tonumber(ProtectorLevel)) msg.AddMsgEvent(MsgID, 9, GuildMaterialRequirement[tonumber(ProtectorLevel)+1]) msg.AddMsgEvent(MsgID, 9, tonumber(ProtectorLevel)+1) msg.AddMsgEvent(MsgID, 21, 7) msg.AddMsgEvent(MsgID, 1, 950776) -- Повысить уровень else msg.AddMsgEvent(MsgID, 20, 950775) -- У покровителя гильдии <p1> на данный момент <p2> уровень. Достигнут максимальный уровень. msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 19, GuildID) msg.AddMsgEvent(MsgID, 9, tonumber(ProtectorLevel)) end msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 951137) -- Назад elseif TalkIndex == 6 then msg.AddMsgEvent(MsgID, 20, 950778) msg.AddMsgEvent(MsgID, 24, TargetID) for i =0,5 do msg.AddMsgEvent(MsgID, 21, 8+i) msg.AddMsgEvent(MsgID, 1, 950779+i) -- Эфекты end msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 951137) -- Назад elseif TalkIndex == 7 then if GuildLevel>tonumber(ProtectorLevel) then if GuildMaterial>=GuildMaterialRequirement[tonumber(ProtectorLevel)+1] then guild_patron(GuildID,1,0,0) guild.ModifyGuildMaterial(GuildID,-1,GuildMaterialRequirement[tonumber(ProtectorLevel)+1]*(-1),-1) msg.AddMsgEvent(MsgID, 20, 950801) -- Уровень покровителя гильдии успешно повышен msg.AddMsgEvent(MsgID, 24, TargetID) else msg.AddMsgEvent(MsgID, 20, 950799 ) --Не достаточно ресурсов для повышения уровня покровителя гильдии msg.AddMsgEvent(MsgID, 24, TargetID) end else msg.AddMsgEvent(MsgID, 20, 950800) -- Гильдия должна достигнуть <p1> уровня. msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 9, tonumber(ProtectorLevel)+1) end msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 951137) -- Назад elseif TalkIndex == 8 or TalkIndex == 9 or TalkIndex == 10 or TalkIndex == 11 or TalkIndex == 12 or TalkIndex == 13 then local i = tonumber(TalkIndex)-7 local ProtectorLevel, skillLearned, skill_level = guild_patron(GuildID,2,RoleID,delskill[i]) if tonumber(ProtectorLevel) > 0 then if tonumber(skillLearned) == 0 then msg.AddMsgEvent(MsgID, 20, message2[i]) -- Это благословение повысит параметры msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 9, skillStats[i][1][1]) msg.AddMsgEvent(MsgID, 9, skillStats[i][1][2]) msg.AddMsgEvent(MsgID, 21, i+13) msg.AddMsgEvent(MsgID, 1, 950786) -- Разблокировать else msg.AddMsgEvent(MsgID, 20, message1[i]) -- Это благословение повысит параметры(Разблокировка) msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 9, skillStats[i][tonumber(ProtectorLevel)][1]) msg.AddMsgEvent(MsgID, 9, skillStats[i][tonumber(ProtectorLevel)][2]) msg.AddMsgEvent(MsgID, 21, i+19) msg.AddMsgEvent(MsgID, 1, 950785) -- Получить end else msg.AddMsgEvent(MsgID, 20, 950802) -- Для получения баффа поднимите уровень покровителя гильдии. msg.AddMsgEvent(MsgID, 24, TargetID) end msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 951137) -- Назад elseif TalkIndex == 14 or TalkIndex == 15 or TalkIndex == 16 or TalkIndex == 17 or TalkIndex == 18 or TalkIndex == 19 then if money >= 10000000 then local i = tonumber(TalkIndex)-13 role.DecRoleSilver(MapID,InstanceID,RoleID,10000000,-1) guild_patron(GuildID,3,RoleID,delskill[i]) msg.AddMsgEvent(MsgID, 20, 950803) --Бафф успешно разблокирован. msg.AddMsgEvent(MsgID, 24, TargetID) else msg.AddMsgEvent(MsgID, 20, 950967) --Недостатоно золота msg.AddMsgEvent(MsgID, 24, TargetID) end msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 951137) -- Назад elseif TalkIndex == 20 or TalkIndex == 21 or TalkIndex == 22 or TalkIndex == 23 or TalkIndex == 24 or TalkIndex == 25 then for i= 1,6 do role.RemoveSkill(RoleID, delskill[i]) end local j= tonumber(TalkIndex)-19 role.AddSkill(RoleID,delskill[j]*100+ProtectorLevel) end end msg.DispatchRoleMsgEvent(RoleID, MsgID) end aux.RegisterCreatureEvent(5800124, 7, "c5800124_OnTalk")