-- ============================================================================= -- СИСТЕМА НАВЫКОВ АРЕНЫ FRONTIR - БАЗОВЫЕ НАВЫКИ -- Версия: 2.0 -- Описание: Таблица навыков, доступных для изучения за медали доблести -- ============================================================================= -- Структура данных навыков: -- [индекс] = {SkillID_новый, требуемый_уровень, SkillID_проверка, стоимость_медалей, стоимость_золота} local bas_skill = {} -- ============================================================================= -- НАВЫКИ УРОВНЯ 2 (улучшения базовых навыков) -- ============================================================================= -- Боевые навыки bas_skill[4] = {2500102, 1, 25001, 20, 25000} -- Танец дракона - Бог [Ур. 2] bas_skill[5] = {2500302, 1, 25003, 20, 25000} -- Танец феникса - Бог [Ур. 2] bas_skill[6] = {2500502, 1, 25005, 20, 25000} -- Натиск - Бог [Ур. 2] bas_skill[7] = {2500702, 1, 25007, 20, 25000} -- Благословение - Бог [Ур. 2] bas_skill[8] = {2500902, 1, 25009, 20, 25000} -- Рычание - Бог [Ур. 2] bas_skill[9] = {2501102, 1, 25011, 20, 25000} -- Оглушающий выстрел - Бог [Ур. 2] bas_skill[10] = {2501302, 1, 25013, 20, 25000} -- Звездопад - Бог [Ур. 2] bas_skill[11] = {2501502, 1, 25015, 20, 25000} -- Гравитация - Бог [Ур. 2] bas_skill[12] = {2501702, 1, 25017, 20, 25000} -- Разложение - Бог [Ур. 2] bas_skill[13] = {2501902, 1, 25019, 20, 25000} -- Тусклый свет - Бог [Ур. 2] bas_skill[14] = {2502102, 1, 25021, 20, 25000} -- Молния - Бог [Ур. 2] bas_skill[15] = {2502302, 1, 25023, 20, 25000} -- Абсолютный ноль - Бог [Ур. 2] bas_skill[16] = {2502502, 1, 25025, 20, 25000} -- Геотермальный взрыв - Бог [Ур. 2] bas_skill[17] = {2502702, 1, 25027, 20, 25000} -- Теневой шаг - Бог [Ур. 2] bas_skill[18] = {2502902, 1, 25029, 20, 25000} -- Отторжение - Бог [Ур. 2] bas_skill[19] = {2503102, 1, 25031, 20, 25000} -- Боевая песня - Бог [Ур. 2] bas_skill[20] = {2503302, 1, 25033, 20, 25000} -- Небесная буря - Бог [Ур. 2] bas_skill[21] = {2503502, 1, 25035, 20, 25000} -- Атака души - Бог [Ур. 2] bas_skill[22] = {2503702, 1, 25037, 20, 25000} -- Сталь - Бог [Ур. 2] bas_skill[23] = {2503902, 1, 25039, 20, 25000} -- Удар очищения - Бог [Ур. 2] -- ============================================================================= -- НАВЫКИ УРОВНЯ 3 (максимальные улучшения) -- ============================================================================= bas_skill[24] = {2500103, 2, 25001, 30, 50000} -- Танец дракона - Бог [Ур. 3] bas_skill[25] = {2500303, 2, 25003, 30, 50000} -- Танец феникса - Бог [Ур. 3] bas_skill[26] = {2500503, 2, 25005, 30, 50000} -- Натиск - Бог [Ур. 3] bas_skill[27] = {2500703, 2, 25007, 30, 50000} -- Благословение - Бог [Ур. 3] bas_skill[28] = {2500903, 2, 25009, 30, 50000} -- Рычание - Бог [Ур. 3] bas_skill[29] = {2501103, 2, 25011, 30, 50000} -- Оглушающий выстрел - Бог [Ур. 3] bas_skill[30] = {2501303, 2, 25013, 30, 50000} -- Звездопад - Бог [Ур. 3] bas_skill[31] = {2501503, 2, 25015, 30, 50000} -- Гравитация - Бог [Ур. 3] bas_skill[32] = {2501703, 2, 25017, 30, 50000} -- Разложение - Бог [Ур. 3] bas_skill[33] = {2501903, 2, 25019, 30, 50000} -- Тусклый свет - Бог [Ур. 3] bas_skill[34] = {2502103, 2, 25021, 30, 50000} -- Молния - Бог [Ур. 3] bas_skill[35] = {2502303, 2, 25023, 30, 50000} -- Абсолютный ноль - Бог [Ур. 3] bas_skill[36] = {2502503, 2, 25025, 30, 50000} -- Геотермальный взрыв - Бог [Ур. 3] bas_skill[37] = {2502703, 2, 25027, 30, 50000} -- Теневой шаг - Бог [Ур. 3] bas_skill[38] = {2502903, 2, 25029, 30, 50000} -- Отторжение - Бог [Ур. 3] bas_skill[39] = {2503103, 2, 25031, 30, 50000} -- Боевая песня - Бог [Ур. 3] bas_skill[40] = {2503303, 2, 25033, 30, 50000} -- Небесная буря - Бог [Ур. 3] bas_skill[41] = {2503503, 2, 25035, 30, 50000} -- Атака души - Бог [Ур. 3] bas_skill[42] = {2503703, 2, 25037, 30, 50000} -- Сталь - Бог [Ур. 3] bas_skill[43] = {2503903, 2, 25039, 30, 50000} -- Удар очищения - Бог [Ур. 3] -- Дублирующиеся записи удалены для избежания конфликтов -- ============================================================================= -- Обработчик диалога с NPC тренером навыков арены Frontir (ID: 9010429) -- Управляет обучением навыков за медали доблести -- ============================================================================= function c9010429_OnTalk(MapID, InstanceID, TargetID, TargetTypeID, RoleID, TalkIndex) local MsgID = msg.BeginMsgEvent() local Num = role.GetRoleItemNum(RoleID, 6600799) -- Количество медалей доблести -- Основное меню диалога if TalkIndex == -1 then msg.AddMsgEvent(MsgID, 20, 950536) -- "Принимай участие в боях 1 на 1, получай медали доблести как доказательство своих успехов и используй их для получения навыков более высокого уровня." msg.AddMsgEvent(MsgID, 24, TargetID) -- ID NPC -- Добавление опций навыков уровня 2 (улучшения) for i = 4, 23 do local skillData = bas_skill[i] if skillData and role.IsLearnedSkill(RoleID, skillData[3]) == 1 then msg.AddMsgEvent(MsgID, 21, i) msg.AddMsgEvent(MsgID, 1, 950536 + (i - 3)) -- ID сообщения для навыка end end -- Добавление опций навыков уровня 3 (максимальные) for i = 24, 43 do local skillData = bas_skill[i] if skillData and role.IsLearnedSkill(RoleID, skillData[3]) == 2 then msg.AddMsgEvent(MsgID, 21, i) msg.AddMsgEvent(MsgID, 1, 950576 + (i - 23)) -- ID сообщения для навыка уровня 3 end end msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 100002) -- OK -- Обработка выбора навыка для изучения elseif TalkIndex >= 4 and TalkIndex <= 43 then local skillData = bas_skill[TalkIndex] if skillData then msg.AddMsgEvent(MsgID, 20, 950617) -- "Вы уверены, что хотите выучить навык за медалей доблести и золота?" msg.AddMsgEvent(MsgID, 24, TargetID) -- ID NPC msg.AddMsgEvent(MsgID, 9, skillData[4]) -- Стоимость медалей msg.AddMsgEvent(MsgID, 9, skillData[5]) -- Стоимость золота msg.AddMsgEvent(MsgID, 21, 50 + TalkIndex) msg.AddMsgEvent(MsgID, 1, 950700) -- OK msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 100002) -- OK end -- Обработка подтверждения изучения навыка elseif TalkIndex >= 54 and TalkIndex <= 93 then local skillData = bas_skill[TalkIndex - 50] -- Получаем данные навыка if skillData then local currentLevel = role.IsLearnedSkill(RoleID, skillData[3]) local playerGold = role.GetRoleSilver(MapID, InstanceID, RoleID) -- Проверка условий изучения if currentLevel == skillData[2] and playerGold >= skillData[5] and Num >= skillData[4] then -- Снимаем старый навык role.RemoveSkill(RoleID, skillData[3]) -- Снимаем ресурсы role.RemoveFromRole(MapID, InstanceID, RoleID, 6600799, skillData[4], 101) role.DecRoleSilver(MapID, InstanceID, RoleID, skillData[5] * 10000, 452) -- Добавляем новый навык role.AddSkill(RoleID, skillData[1]) -- Сообщение об успехе msg.AddMsgEvent(MsgID, 20, 950619) -- "Навык успешно изучен!" msg.AddMsgEvent(MsgID, 24, TargetID) else -- Сообщение об ошибке msg.AddMsgEvent(MsgID, 20, 950618) -- "Не достаточно средств для изучения." msg.AddMsgEvent(MsgID, 24, TargetID) end msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 100002) -- OK end end msg.DispatchRoleMsgEvent(RoleID, MsgID) end aux.RegisterCreatureEvent(9010429, 7, "c9010429_OnTalk")