Объявления |
---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: Как создать плагин для HD модаВ spellIndirectTable хранятся значения для игровых свитчей, работающих с заклинаниями. У нас вызовы существ - два последних числа, поэтому во все таблицы, кроме B, добавляем ещё одно значение, равное последнему. В таблице B у нас 38 для Firebirds и 39 для Magic Elementals, пусть будет 40 для Sprites. Теперь идём в функцию SummonCreatures(), добавляем кейс, а также не забываем прописать новое значение в условии (позже я этот момент упрощу, а пока нужно делать так): if (c->ecx == 38 || c->ecx == 39 || c->ecx == 40). Ещё не забудьте добавить новое заклинание вызова в список разрешённых (enabled spells).
|
Re: Как создать плагин для HD модаВсе сделал. Сейчас по идее должно все работать. Единственный момент, в книге не отображается пока что. Гляньте, пжл, код, какая-то мелочь осталась, что-то нужно добавить/исправить и все заработает.
Отнес к Магии Воздуха. Также нужно было еще добавить массив параметров: int spriteSpellParams[] = { 800, 800, 1200, 1600 }; Плюс есть еще один коварный момент, который будет отличать Summon Sprite от всех других вызовов элементалей: Вызов Фей не должен мешать после этого вызову элементалей. Как это сделать? |
Re: Как создать плагин для HD модаНужно увеличить кол-во заклинаний (SPELLS_NUM). Ещё можно убрать коэффициент 1.2 в getSummoningEffect(). Он - компенсация за дороговизну. Для Фей можно даже понижающий сделать. Момент с разрешением вызова других элементалей делается через дополнительный лоухук (позже добавлю).
|
Re: Как создать плагин для HD модаПочему возникают ситуации, что некоторые аргументы функции в самой функции просто не применяются? Это проблема IDA или какой-то хитрый ход программистов NWC?
|
Re: Как создать плагин для HD модаAlexSpl писал(а): Точно. Увеличил на всякий еще ANIMS_NUM также до 87. AlexSpl писал(а): Сделал коэффициент 0.8 в getSummoningEffect() для Фей. Также немного поднял параметры до spriteSpellParams[] = { 1000, 1000, 1500, 2000 }. Плюс отнес его ко всем школам вместо только магии Воздуха. Сейчас все прекрасно отображается и работает. Для Фей осталось добавить дополнительный лоухук, чтобы можно было вызывать и других элементалей вместе с Феями. AlexSpl писал(а): Теперь нам остается добавить всего 2 интереснейших закла - Смертельный взгляд (Death Stare) и Возрождение (Revival) и плагин готов. В итоге у нас получится 11 уникальных заклов, где не будет ни одного из MoP. В MoP походные заклы - либо имба, либо малолезный Факел (хотя добавить их можно, любителям WoG зайдет, другие - откл в ini). А боевые мне вообще не нравятся. Ну разве что Притяжение при осаде города может пригодится, остальное - такое себе. Польза Регенерации сомнительна, только для существ 6-7 уровня на начальных этапах. Вызов светлячкеов - фигня. Вьюга такое себе. На Эксперте она срабатывает массово на все вражексие отряды. При этом в оригинале нет ни одного ударного закла, который бы наносил урон исключительно вражексим отрядам (Волна Смерти, Уничтожение нежити и Армагеддон - наносят урон всем отрядам на поле боя). Наш Death Cloud, да и другие заклы, выглядят куда интересней. Исходный код: 1) Смертельный взгляд (Death Stare) - 5 уровень - 30 (при развитии школы - 25) - Магия огня В оригинале работает так, что при ударе каждая Могучая горгона мгновенно убивает 1 существо в целевом отряде с шансом 10%, но не более N/10, где N – количество Могучих горгон. Округление вверх. Действует только на живых. Немагическая способность. Например, 31 Могучая горгона после атаки может дополнительно убить до 4 существ (31/10) Смертельным взглядом (округление вверх) . Однако ключевым фактором является то, что шанс срабатывания рассчитывается для каждой горгоны отдельно, а не для всего отряда. Иначе бы 31 горгона всегда убивала 4 существ Смертельным взглядом. Вероятность хотя бы одного успешного срабатывания способности можно рассчитать по формуле: 1 – (1 – p)^N где p – шанс срабатывания Смертельного взгляда, равный 0,1 (10%), N – количество Могучих горгон. Закл должен работать следующим образом: Могучие горгоны у нас существа 5-го уровня. Обычно абилка соответствует базовому уровню развития школы. Как правило, на Эксперте идет двухкратный прирост относительно Базового уровня. Делаем для Базового/Продвинутого/Экспертного уровня: 10%/13,33%/20%. Что будет соответствовать: N/10, 2*N/15 (или N/7.5), N/5 N - кол-во существ в дружественном отряде на который наложен закл. Обозначим наш процент с вероятностью которого будет убиваться Смертельным взглядом 1 вражеское существо на 1 существо из нашего отряда, который будет зависеть от уровня развития школы, за P. Таким образом 100 / P - часть от всего стека, то есть максимально возможное кол-во существ убиваемых Смертельным взглядом за один раз. Для всех существ 5-го уровня P будет фиксированным (за исключеним Элементалей земли/магмы) и будет зависеть только от уровня развития школы. Кол-во убивамых Смертельных взглядом существ зависит от кол-ва существ в атакующем стеке. Очевидно, что оставляя процент неизменным и накладывая этот закл на более низкоуровневых существ, чей прирост гораздо больше, мы получим имбу. А для более высокоуровневых, мы, наооборот, потеряем в эффективности, так как их прирост меньше. А потому, чтобы выйти на тот же уровень убийств, мы должны пропорционально увеличению прироста уменьшать процент и наборот. Для этого введем коэффициент k, где k = 3 / bg. Где bg - base growth - базовый прирост существ на который накладывается закл и 3 - это базовый прирост Могучих горгон и всех существ 5-го уровня за исключением Элементалей земли/магмы (там 4). Итого мы получим следующую формулу для максимально возможного кол-ва убиваемых Смертельным взглядом существ: N * P * k / 100 или 3 * N * P / 100 * bg --- Например, для существ 4-го уровня, чей базовый прирост приемущественно равен 4 (за исключением Пегасов, там 5), мы получим: 3 * N * P / 4 * 100 Это будет 7,5%; 10%; 15% или N/13.33; N/10; N/6.66 Для существ же 6-го уровня, чей базовый прирост равен 2, мы получим: 3 * N * P / 2 * 100 Это будет 15%; 20%; 30% или N/6.66; N/5; N/3.33. --- 2) Возрождение (Revival) (абилка Лордов вампиров) - 5 уровень - Мана 30 (при развитии школы - 25) - Магия Земли None/Basic: Восстанавливаем 50% в здоровье/существах от нанесенного нашим отрядом (под Revival) урона. Advanced: Восстанавливаем 75% в здоровье/существах от нанесенного нашим отрядом (под Revival) урона. Expert: Восстанавливаем 100% в здоровье/существах от нанесенного нашим отрядом (под Revival) урона. Немного подправил картинки для Death Stare плюс включил в архив Вам еще картинки для Revival и Summon Sprite для обновления def'ов. |
Re: Как создать плагин для HD модаЦитата: Было бы более понятно с примером. Компилятор, может, например, записать аргумент в локальную переменную, и потом код уже использует эту переменную, а изначальный аргумент становится хранилищем для временных данных (такое иногда происходит с аргументами без const). Сама IDA не всегда точно определяет кол-во аргументов и соглашение о вызове. Допускаю ещё, что аргумент объявлен, но по каким-то причинам оказывается ненужным. |
Re: Как создать плагин для HD модаЯ придумал, как сбалансировать Fear. Нам нужно сделать, чтобы на None/Basic урон от ответки снижался до 50% (на 50%), половина от обычного урона, а на Advanced до 25% (на 75%), четверть от обычного урона. А вот Expert не трогаем, там ответки быть не должно. То есть так будет оптимально, если мы сделаем подобно тому, как работает ответка в оригинале при атаке отряда под Слепотой.
AlexSpl писал(а): Также придумал последнее 12 заклинание, как раз таки нужное нам уникальное ПОХОДНОЕ! Довольно таки интересное и главное полезное походное заклинание, которое отлично впишется в магическую систему третьих Героев. Заклинание назвал Mobility (Подвижность). Есть 2 возможных варианта его реализации: 1. 4 уровень - Магия Земли - 16 маны (12 при развитии навыка) None: +300 единиц перемещения 1 раз в день. Basic: +300 единиц перемещения 2 раза в день. Advanced: +300 единиц перемещения 3 раза в день. Expert: +300 единиц перемещения 4 раза в день. 2. 5 уровень - Магия Земли - 20 маны (15 при развитии навыка) None: +300 единиц перемещения 1 раз в день. Basic: +600 единиц перемещения 1 раз в день. Advanced: +900 единиц перемещения 1 раз в день. Expert: +1200 единиц перемещения 1 раз в день. Если же игрок попытается использовать данный закл, когда кол-во попыток на день уже исчерпано, то в таком случае аналогично как и с Dimension Door, выводим сообщение: [Hero name] is not skilled enough to cast this spell again today. Я немного больше склоняюсь к первому варианту, более сбалансированный что ли, больше маны придется тратить в итоге. Хотя второй вариант тоже неплох. Все же окончательный выбор пускай будет за Вами. Тот вариант, который считаете более подходящим, такой и выбирайте. Также и с картинкой. Я сделал две. Какая больше вам лично понравится, такую и выбирайте. PS: AlexSpl, а как обстоят дела с хуком для Фей, чтобы можно было вызывать других элементалей вместе с Феями? Вы, вроде, обещали добавить. Код с добавленным заклом Вызов Фей я публиковал, но что-то вы его даже не смотрели... Ах да, и что там с Death Stare и Revival, получается? А то что-то вы вообще перестали отписыватся в теме. Неужели KB II так сильно затянул? Думаю, можно же переодически немного отвлекатся и в перерывах пилить плагин. Надо бы уже его доделывать, а то как-то нехорошо получается, большую часть уже сделали, осталось совсем ничего, и все зависло. Надо бы уже его добивать. |
Re: Как создать плагин для HD модаЯ понимаю, что нужно доделывать, но, если честно, я не фанат последних заклинаний и мотивации их пилить у меня ноль. Раз уж Вы добавили Вызов фей, включу это заклинание в плагин. Мне кажется, на данном этапе гораздо важнее отполировать те заклинания, которые уже есть, добавить нормальные описания, вынести характеристики в ini. Если будет интерес, конечно, будем добавлять новые. Насчёт походного, которое Вы предложили: выглядит блекло. Даже МП за бой поднимать интереснее.
|
Re: Как создать плагин для HD модаНу блин всего 2 боевых закла и 1 походное. Я понимаю, что они не очень простые в реализации (Death Stare и Revival), но ведь уникальные, интересные и главное полезные. Да и походное Mobility как по мне, вполне себе ничего. С учетом того, что у нас вообще нет ни одного походного, то пускай хоть такое будет. Дополнительные MP никогда не бывают лишними. В некоторых ситуациях подобный закл может очень сильно помочь.
Да и тем более Вы же лично сделали все, целый конструктор, чтобы добавление новых заклов было максимально простым и быстрым. Раз уж аж 9 добавили, то эти уже можно добавить и все, на этом точка. У меня лично уже нет идей, только добавлять заклы из MoP (если будет интерес к этим). 12 заклов придумал. |
Re: Как создать плагин для HD модаОни как раз таки простые в реализации (соответствующий код уже есть). Ладно Вампиризм может быть полезен, но всё равно я думаю, что Вы нереальные (имбовые) проценты придумали, но я не одобряю Death Stare. Почему? Как Вы себе представляете, например, отряд крестьян, который убивает несколько Чёрных Драконов? Что это за магия такая? Death Stare самое место в абилках. Т.е. никакой логики за заклинанием. А походное должно быть реально крутым. Просто прибавить MP смотрится, как чит. Т.е. его реально будут кастовать каждый ход при игре на скорость, ибо мастхэв. А нужно полезное, но ситуативное.
|
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2