Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Измененный вид лучей
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Моды
feanor
За неимением темы "Небольшие глупые моды" создаю отдельную.
DLL для Эры:
http://zalil.ru/30309177

Теперь у бехолдеров будут лучи всех цветов радуги (выбирается один из семи цветов случайно), а у магов вместо прямого луча будет молния.

Код:

Код
#define OPCODE_JUMP 0xE9
#define OPCODE_CALL 0xE8
#define OPCODE_NOP 0x90

#define HOOKTYPE_JUMP 0
#define HOOKTYPE_CALL 1

#define HOOK_SIZE 5

inline void WriteHook( void *pOriginal, void *pNew, char type )
{
    *(byte*)pOriginal = (type==HOOKTYPE_JUMP)?OPCODE_JUMP:OPCODE_CALL;
    *(void**)( (byte*)pOriginal + 1 ) = (void*)( (byte*)pNew - (byte*)pOriginal - HOOK_SIZE );
}

__fastcall void (*DrawBattleRay)(int ecx, int edx, int a2, signed int a3, signed int a4, signed int a5, signed int a6, int a7, int a8, int a9, int a10, int a11, int a12, signed int a13, int a14, int a15, int a16, float a17, int a18) =
        (__fastcall void (*)(int ecx, int edx, int a2, signed int a3, signed int a4, signed int a5, signed int a6, int a7, int a8, int a9, int a10, int a11, int a12, signed int a13, int a14, int a15, int a16, float a17, int a18))(0x5A5F30);

void XRays_Ray(int unit, int ecx, int edx, int a2, signed int x1, signed int y1, signed int x2, signed int y2, int a6, int a7, int thickness_st, int thickness_end, int color16, int curv1, signed int curv2, int speed, int a14, int a15, float slowness, int a17)
{
    int eyecolor[7]={63488,64512,65504,2016,2047,31,32784};
    if (unit==35)
        {curv1=50; curv2=-50; /*color16=0x77EE;*/}


    if (unit==74 || unit==75)
        {color16=eyecolor[rand()%7];}

    if (unit==197)
        {
            color16= ((0xFF>>3)<<11) + (((rand()%0x7C)>>2)<<5) + (0x00>>3);
        }

    DrawBattleRay(ecx,edx,a2,x1,y1,x2,y2,a6,a7,thickness_st,thickness_end,color16,curv1,curv2,
speed,a14,a15,slowness,a17);

}


__fastcall void XRays_RayHook(int ecx, int edx, int a2, signed int x1, signed int y1, signed int x2, signed int y2, int a6, int a7, int thickness_st, int thickness_end, int color16, int curv1, signed int curv2, int speed, int a14, int a15, float slowness, int a17)
{
    register void *ebx asm("ebx");
    XRays_Ray((int)ebx,ecx,edx,a2,x1,y1,x2,y2,a6,a7,thickness_st,thickness_end,color16,curv1,cu
rv2,speed,a14,a15,slowness,a17);
}


extern "C" __stdcall BOOL DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{

    switch (fdwReason)
    {
        case DLL_PROCESS_ATTACH:
              {
                  WriteHook((void*)0x43F2DE, (void*)(XRays_RayHook), HOOKTYPE_CALL);
                break;
              }

        case DLL_PROCESS_DETACH:
            // detach from process
            break;

        case DLL_THREAD_ATTACH:
            // attach to thread
            break;

        case DLL_THREAD_DETACH:
            // detach from thread
            break;
    }
    return TRUE; // succesful
}
FCst1
А скриншот? biggrin.gif
feanor
Не-не, я [censored] скринить эти [censored] лучи, которые даже на малой скорости пролетают быстрее моей реакции.
tolich
slomo

Ну или параллельно рендер в 3дмаксе запусти.
Haart of the Abyss
Мне почему-то казалось, что я уже где-то видел тему или пост за тем же авторством и с таким же содержанием, что и первый пост этой темы…

Цитата
Не-не, я [censored] скринить эти [censored] лучи, которые даже на малой скорости пролетают быстрее моей реакции.
Разве среди откопанных тобой параметров не было скорости движения луча? Можно (можно же?) уменьшить её раз в десять и делать показательные скриншоты сколько Эру угодно. Это мне приходилось делить архимагов и бехолдеров на как можно больше стаков и молиться закону больших чисел, чтобы получить скриншоты, доказывающие неоднородность их лучей, а ты просто колдануть можешь.
Vade Parvis
Эх... Лучу бехольдера бы ещё соответствующий случайный эффект rolleyes.gif
FCst1
Я глянул. У архимагов молния действительно отлично смотрится smile.gif
feanor
Цитата
а ты просто колдануть можешь.

Это ж компилировать, искать куда оно там собралось, копировать в очередную копию героев, делать тестовую карту, запускать, скринить, удалять длл, удалять строку из кода, компилировать (:
Vade Parvis
У меня, кстати, был завуалированный вопрос smile.gif Известно, что дать случайное колдунство при выстреле бехольдеру можно — но можно ли сделать так, чтобы цвет луча соответствовал выпавшему типу колдунства? Колдующий бехольдер — имба, конечно (впрочем, для мини-мода можно на имбовость забить или скомпенсировать её каким-нибудь наиболее простым и коротким в коде способом), но зато няшно-то как! happy.gif
feanor
Цитата
Эх... Лучу бехольдера бы ещё соответствующий случайный эффект

Это надо тогда будет ему параметры править.

Хотя, можно какому-нить нейтральному убербехолдеру.

Цитата
Известно, что дать случайное колдунство при выстреле бехольдеру можно — но можно ли сделать так, чтобы цвет луча соответствовал выпавшему типу колдунства?

Можно.

Придумывай колдунства smile.gif
Haart of the Abyss
Для справки привожу эффекты разных глаз ДнДшных бехолдеров (надо полагать, из трёхсполовинной редакции). Данные взяты из статьи Ричарда Псмита, все претензии к покойному.
Цитата
Центральный — неподвижный — глаз в поле своего обзора (это широкий конус) отключает всю и всяческую магию. Волшебные стены и иллюзии развеиваются, призванные существа убираются восвояси, заговоренные предметы и волшебные палочки не действуют, и читать заклинания бесполезно.

Меньшие глаза — все разные, у каждого свой эффект. Стебельки позволяют им смотреть практически в любую сторону — разве что не прямо под злобоглаза (и то если он не наклонится). Правда, в силу какого-то мозгового ограничения злобоглаз неспособен применять их способоности больше 6-7 глаз в одном направлении; но и этого, как правило, более чем достаточно.

Эффекты у глаз такие.

Два глаза очаровывают и делают цель близким другом злобоглаза. Разница между ними в том, что один способен работать с любыми существами: хоть с человеком, хоть с химерой, джинном или великаном, а второй специализируется исключительно на гуманоидах не слишком крупного размера. Обычно очарованный таким образом противник мешает своим товарищам атаковать столь симпатичное создание. Иногда злобоглаз оставляет зачарованного при себе — в качестве слуги и защитника.
Третий глаз нужен затем, чтобы на короткое время избавиться от одного врага: он вселяет ужас. Не самое надежное оружие, но если очарование уже не сработало — это все-таки второй шанс.
Четвертый глаз усыпляет цель. Используется примерно так же, как и страх.
Пятый глаз замедляет врага. Это чисто вспомогательное оружие, обычно используется против общей цели одновременно с «главным калибром» — если выживет, так хоть замедлится...
Шестой ранит противника лучом. Опытный боец в силах пережить такое ранение, поэтому злобоглаз применяет его в основном против слабых противников — оруженосцев, слуг, призванных монстров. Важнейшее преимущество этого глаза: если уж луч попал в цель, уклониться от его эффекта невозможно.
Седьмой способен перемещать в пространстве большую массу (около 150 кг), как бы захватив ее лучом. Применение разнообразно — от сбрасывания людей в пропасть до баррикадирования дверей.
И, наконец, три последних луча — главное оружие злобоглаза.
Восьмой глаз убивает противника на месте (а если удалось устоять против смертельной мощи — то наносит ранение). Как правило, этот способ боя используется против волшебников, убийц и им подобных, потому что здоровенный громила имеет очень неплохие шансы выжить.
Девятый глаз превращает в камень. Это оружие используется в первую очередь против тех, чья внешность покажется злобоглазу интересной: он любит украшать свое жилище статуями.
Десятый глаз обращает цель в пыль (и, как и восьмой, в случае неудачи ограничивается уроном, но более мощным).


В переводе на геройские заклинания-и-спецабилки… Ну, главный глаз даже не рассматриваем за имбовостью (хотя можно свести к диспеллу, как у змиек, но…), а что до остальных, то это у нас получается примерно такой набор:
1, 2. Гипноз.
3. Ужас (а-ля лазурные драконы).
4. Эмм… Есть идеи?
5. Замедление.
6. Просто дамаг без спецэффектов?
7. Тоже смутно представляю, что это может быть… Перемещение поражённого юнита на одну клетку в любом свободном направлении по выбору выстрелившего игрока?
8. Эффект смертельного взгляда горгон.
9. Окаменение а-ля медузы и василиски.
10. Практически дублирует восьмой (разницы между dead и eradicated в Героях не делают, это вам не ММ). Может, превращать в пыль не саму цель, а её доспехи (читай — накладывать "разрушающий луч")?


В целом мне кажется, что для ММ ДнДшный бехолдер подошёл бы, а вот адаптировать его в Герои 3 можно, только натянув на глобус (благо он и так, и так круглый).


И для сравнения — в Героях 4 в арсенал бехолдеров, согласно данным heroesofmightandmagic.com, входят Curse, Disrupting Ray, Slow, Sorrow, Weakness, Magic Leech, and Misfortune. По моим личным данным, в нём также есть Cancellation (во всяком случае, если мне не изменяет память, суммонов они нет-нет да и диспеллили). Почти все эти заклинания (если быть занудой — все, кроме маналича) есть и в тройке, так что четвёрочные бехолдеры, напротив, хорошо поддаются адаптации и дрессировке.
Vade Parvis
Ну, собсна, Хаарт почти всё уже сказал, что мне хотелось smile.gif Хочу также упомянуть опять-таки ДнД-шные "Призматические брызги":
http://wiki.aerie.ru/index.php?title=%D0%9...Prismatic_Spray

Лорд Хаарт, +1 по интерпретации способностей smile.gif
4. Забывчивость?
6. Волшебная стрела, пожалуй (кстати, мега-бехольдер во "В поисках приключений!" её кастовал — подозреваю, это была интерпретация именно этого глаза).
7. Базовая "Телепортация", если можно без заморачивания (а я подозреваю, что так и есть) сделать применение на вражеского юнита.
10. Если извратиться и если это нейтральный убер-бехольдер в банке существ, то можно убить врага "Жертвой", наверное (и анимация в тему выходит). Или, как вариант — -50% к количеству атакованного отряда.
Vade Parvis
Кстати о мегазлобоглазах... Я сейчас не могу вспомнить точно, и не удалось отыскать подтверждений, юзая поиском: случайно не было такого, что кто-то рипал из какой-то относительно свежей игры по ДнД (или это Маэстро находил для Позера?) и выкладывал бехольдера образца последних редакций (см. ниже)?

Я именно о такой форме, не о двух вариантах БГ-шного.
feanor
Цитата
7. Базовая "Телепортация", если можно без заморачивания (а я подозреваю, что так и есть) сделать применение на вражеского юнита.

Цитата
Для этой способности доступны почти все боевые заклинания, включая такие как Зыбучий песок, Огненная стена и Вызов Элементаля. Дружественные заклинания (к примеру, Щит) будет наколдован как Массовый щит на все союзные войска каждый раз, когда существо атакует противника, но если заклинание не имеет массового эффекта (к примеру, Антимагия, Волшебное Зеркало, Огненный Щит), он наколдует на врага. Заклинание Клона (65) создаст клон вражеского существа под вашим контролем, но будьте осторожны - не давайте способность на уровне 0, потому что игра вылетит, если клон наколдуется со стороны без героя. Корни (72) связывают врага и не дают ему двигаться, пока связующий не отойдет от цели либо не умрет.
Заклинания, которые не могут быть использованы и вызовут вылет игры или отсутствие действия, включают: Воскрешение, Оживить Нежить, Жертва, Облако Смерти, Гром Титанов и Смертельный взгляд. Телепорт работает, но делает битву невыигрышной для этого игрока - целевой стек "исчезает", но все еще считается в битве. Он не может двигаться или атаковать в рукопашную (или быть атакованным), но если он стрелок, он все еще может стрелять. Также можно дать заклинание Паралич (74) и Окаменение (70).

packa
Цитата
Не-не, я [censored] скринить эти [censored] лучи, которые даже на малой скорости пролетают быстрее моей реакции.

5-ти секундное видео? smile.gif

Насчет заклинаний для каждого глаза - кул идея) мне нра)

А насчет цветов луча - так что парится, пускай по цвету игрока и все smile.gif
Etoprostoya
Цитата
А насчет цветов луча - так что парится, пускай по цвету игрока и все

Пакка дело говорит. smile.gif

Но серого цвета нейтралов не надо, вместо него - банальный белый.
Vade Parvis
Плохая идея, к сожалению sad.gif
Во-первых — не так красиво. Во-вторых — нелогично и притянуто за уши (в РА2 злило и злит, что цвет луча альянсовского лазера соответствует цвету игрока). В-третьих — теряется связь между цветом луча и его св-вами, в результате фича теряет значительный кусок прикольности.
Etoprostoya
Это всё-таки лучше, чем случайная выборка.
Цитата
Во-первых — не так красиво. Во-вторых — нелогично и притянуто за уши ... В-третьих — теряется связь между цветом луча и его св-вами

Типо случайный цвет всему этому удовлетворяет? nunu.gif

Хм, совсем не этот смайл хотел показать. "Ну-ну!" - это совсем не то!
Vade Parvis
Нет, это хуже, чем случайная выборка. Цвет=эффект же.

Ну и радужные бехольдерчики, конечно smile.gif
gamecreator
так пусть луч будет радужным. в длину, если что.
nosferatu
А на конце радуги горшочек золота дебаф rolleyes.gif
Haart of the Abyss
Цитата
Мне одному кажется, что с такой зубной системой он может питаться только кашей с ложечки? Для добычи размером с него и больше слишком длинные, тонкие и изогнутые (будут ломаться или выворачиваться из гнёзд при любой попытке добычи вырваться), для мелкой добычи (что более правдоподобно, ибо крупную ему при такой анатомии и проглатывать некуда) слишком неудобные (во-первых, более мелкие и частые дали бы куда лучшую гарантию попадания зубами по мелкой цели, во-вторых, он же даже рот закрыть толком не может), о пережёвывании и говорить не приходится, а для цедильного аппарата они уж слишком редко посажены.
nosferatu
Цитата(Лорд Хаарт @ 11 Jan 2011, 17:44) *
Цитата
Мне одному кажется, что с такой зубной системой он может питаться только кашей с ложечки? Для добычи размером с него и больше слишком длинные, тонкие и изогнутые (будут ломаться или выворачиваться из гнёзд при любой попытке вырваться), для мелкой добычи (что более правдоподобно, ибо крупную ему при такой анатомии и проглатывать некуда) слишком неудобные (во-первых, более мелкие и частые дали бы куда лучшую гарантию попадания зубами по мелкой цели, во-вторых, он же даже рот закрыть толком не может), о пережёвывании и говорить не приходится, а для цедильного аппарата они уж слишком редко посажены.

Мне тоже так кажется, но я же молчу так брутальнее. rolleyes.gif

Кстати, эти зубы напоминают зубы рыбок саблезубов
Vade Parvis
Не всё так страшно — просто авторы фентезийных иллюстраций вечно подобным образом поступают ради брутальности и эпичности smile.gif

Вот, к примеру, как эта же няшка выглядит в виде миньки:
gamecreator
Цитата(Лорд Хаарт @ 11 Jan 2011, 17:44) *
крупную ему при такой анатомии и проглатывать некуда
а может он внутри больше, чем кажется.
Vade Parvis
Кстати да. Пасть и зубы размерами и видом весьма напоминают хищных глубоководных рыб — а для этих "милашек" характерна такая фишка, как способность желудка и брюха очень сильно растягиваться для пожирания крупной добычи целиком. Да и змеи тоже "тянутся" хорошо smile.gif
Haart of the Abyss
Хм… Врождённый mouth of holding? Поскольку бехолдеры в ДнД и так имеют кучу врождённых волшебных свойств и поскольку речь идёт о Спарте ДнД, это вполне возможно. И немало объясняет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.