• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток! Спешите принять участие в конкурсе "Таинственные миры" 2024!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык

Gothic ½ zSpell

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.332
Баллы
315
Вобщем решили мы с Gratt'ом написать спелл пак, и как всегда уперлись в топорность движка готы, те кто делал заклинания для игры, я думаю уже знакомы с тем какой это чертов геморой: куча каких то массивов, обязательное требование что бы имя эффекта имя спела, имена функций логики спелла совпадали друг с другом, массивы где нужно считать руками куда что выписывать, кошмар кароче.
Теперь же логика создания спела будет примерно такой:
Создаем заклинание, и рядом с ним с таким же именем создаем инстанцию C_SPELL_DATA, в которую пишем все необходимые данные, вроде имени инстанции, эффекта, типа используемой энергии, и тд.


При всем этом, старые спелы, с макс индексом 100(родные спелы готы) работают как и прежде, по прежним законам, для того что бы использовать новую систему, индекс должен быть выше 100. В дальнейшем для новой системы переработаю функции расхода маны, и все вот это вот, ибо то что сейчас мана из спеллов отжирается тупо скриптом, это кошмар.
Обсуждаем что добавить еще.

Вот готовимся к релизу промежуточной версии.
Актуальная версия лежит здесь
Конструктор заклинаний | zSpells

Для изучения содержимого - распаковать том zSpell.vdf с учетом иерархии файлов.
Список файлов тома:

System\Autorun\zParserExtender.dll - расширитель парсера для загрузки .d и .src в обход .dat файла.
System\Autorun\zSpell.dll - файл плагина, расширяющий возможности создания спелов
System\Autorun\zSpell.src - файл, определяющий правильный порядок загрузки .d скриптов из папки zSpell
System\Autorun\zSpell\zSpell_Ptorotypes.d - файл определений для новых спелов
System\Autorun\zSpell\Spell_Heal.d - пример циклической реализации спела восполнения здоровья System\Autorun\zSpell\Spell_PyroBlast.d - пример огненного шара System\Autorun\zSpell\zSpell_PFX.d - добавляет в игру несколько новых эффектов частиц для новых спелов
System\Autorun\zSpell\zSpell_VFX.d - добавляет в игру несколько новых визуальных эффектов для новых спелов Для добавления новых спелов можно воспользоваться программой Gothic Sourcer, либо добавить свои скрипты в папку System\Autorun. При использовании Gothic Sourcer, необходимо добавить в него функцию с сигнатурой: void Spl_InvestNext(instance).

И во вложении подробное описание всего скрипта заклинания
 

Вложения

  • SPell notes.D
    8,2 KB · Просмотры: 52
  • zSpell.7z
    1,1 MB · Просмотры: 56
Последнее редактирование модератором:

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.124
Благодарности
3.215
Баллы
485
А можно ли теперь добавить новое заклинание превращения? Без расширителей можно только изменять существующие.
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.332
Баллы
315
Ну это с расширителем, а так да, можно. Без расширителей нельзя даже добавить боевые заклинания с индексом выше 100, там класс колизий ломается при выходе за его пределы.
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
5.843
Благодарности
5.268
Баллы
910
По моему расширители даже близко ничего в этом отношений не делают. В моде Предо много заклинаний боевых за пределом 100 и работает без проблем.
Это все равно не отменяет того факта, что надо создавать под каждое заклинание свой pfx/vfx/sfx, если заклинание полностью новое.
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.332
Баллы
315
Ну, у меня например заклинания работали черз одно место с индексом выше 100.

Ну тут тоже нужно создавать, с поправкой на то что можно юзать еще и те которые уже есть без проблем, вот. И все в одном файлике.
В смысле?
 
Последнее редактирование:

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.184
Благодарности
2.879
Баллы
420
Без расширителей нельзя даже добавить боевые заклинания с индексом выше 100, там класс колизий ломается при выходе за его пределы.
Пробовал в Готике 1 делать заклинание в рамках существующего массива. Все работает, кроме коллизий. Чего оно хочет для нормальной работы?
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.332
Баллы
315
Коллизию) Там класс коллизий криво стоит

C++:
switch(GetSpellType())
    {
      
    case SPL_FIRESTORM:
    case SPL_PYROKINESIS:
    case SPL_SKULL:                // FireStorm
        if (visName_S.Search("_SPREAD")!=-1)    SetCollisionClass (zCCollObjectBoxPassThrough::S_GetCollObjClass());
        else                                    SetCollisionClass (zCCollObjectProjectile::S_GetCollObjClass());
    break;
    case SPL_LIGHTNINGFLASH:
    case SPL_GEYSER:
    case SPL_BREATHOFDEATH:
    case SPL_WINDFIST:
    case SPL_WATERFIST:
    case SPL_CHARGEFIREBALL:
    case SPL_INSTANTFIREBALL:
    case SPL_PALDESTROYEVIL:
    case SPL_FIREBOLT:
    case SPL_ICEBOLT:
    case SPL_ICELANCE:
    case SPL_PALHOLYBOLT:
    case SPL_THUNDERBALL:
    case SPL_ICECUBE:
    case SPL_WHIRLWIND:
    case SPL_GREENTENTACLE:
    case SPL_DESTROYUNDEAD:
    case SPL_MASTEROFDESASTER:
    case SPL_DEATHBOLT:
    case SPL_DEATHBALL:
    case SPL_CONCUSSIONBOLT:
    case SPL_PALREPELEVIL:
    case SPL_ZAP:
    case SPL_BELIARSRAGE:
    case SPL_SUCKENERGY:
    case SPL_PLAGUE:
    case SPL_SUMMONSWARM:
    case SPL_RESERVED_64:
    case SPL_RESERVED_65:
    case SPL_RESERVED_66:
    case SPL_RESERVED_67:
    case SPL_RESERVED_68:
    case SPL_RESERVED_69:
    case SPL_RESERVED_77:
    case SPL_RESERVED_78:
    case SPL_RESERVED_79:
    case SPL_RESERVED_89:
    case SPL_RESERVED_90:
    case SPL_RESERVED_91:
    case SPL_RESERVED_92:
    case SPL_RESERVED_93:
    case SPL_RESERVED_94:
    case SPL_RESERVED_95:
    case SPL_RESERVED_96:
    case SPL_RESERVED_97:
    case SPL_RESERVED_98:
    case SPL_RESERVED_99:
        SetCollisionClass (zCCollObjectProjectile::S_GetCollObjClass());
        break;
    default:
//        SetCollisionClass (zCCollObjectComplex::S_GetCollObjClass());
        SetCollisionClass (zCCollObjectBoxPassThrough::S_GetCollObjClass());
        break;
    }

Вот, если выходим за пределы 100, то колизия пастру, и часто не наносит дамаг. В г1 там видимо из той же оперы, только под каждый спелл коллизия проставлена, что в принципе правильно)
Вот в спойлере код как оно в движке устроено.
 
Последнее редактирование:

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.184
Благодарности
2.879
Баллы
420
Т.е. создавая спелл со своим именем, я тем самым ломаю соответствие имени в движке для коллизий? Скажем, заклинание в слоте SPL_RESERVED_64, обозвали по-своему, но в движке ссылка на SPL_RESERVED_64. Коллизии не работают.
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.332
Баллы
315
Нет, имя не имеет значения, только цыфары. Откуда же в двиге эти имена, их там нет, только значения.
 

Lorddemonik

★★★★★
Редактор раздела
Регистрация
17 Дек 2011
Сообщения
1.003
Благодарности
511
Баллы
350
Вспоминается, что когда делали массовое заклинание, дали 101 номер. Урон наносила только вплотную и то, рандомно.
А будет ли возможность как-нибудь кастомизировать заклинания, как например, в моде на Воге. Только без Икаруса?
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.332
Баллы
315
Будет конечно, но позже. Скинь кстати линк на те закланиния с вога
 
Последнее редактирование:

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.332
Баллы
315
Утром вобщем тестовую версию выкинем, пока базово, но хочу сказать создавать спелы теперь это два клика мышью. Просто пушка вышла!
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.332
Баллы
315
Вот готовимся к релизу промежуточной версии.

Для изучения содержимого - распаковать том zSpell.vdf с учетом иерархии файлов.
Список файлов тома:

System\Autorun\zParserExtender.dll - расширитель парсера для загрузки .d и .src в обход .dat файла.
System\Autorun\zSpell.dll - файл плагина, расширяющий возможности создания спелов
System\Autorun\zSpell.src - файл, определяющий правильный порядок загрузки .d скриптов из папки zSpell
System\Autorun\zSpell\zSpell_Ptorotypes.d - файл определений для новых спелов
System\Autorun\zSpell\Spell_Heal.d - пример циклической реализации спела восполнения здоровья System\Autorun\zSpell\Spell_PyroBlast.d - пример огненного шара System\Autorun\zSpell\zSpell_PFX.d - добавляет в игру несколько новых эффектов частиц для новых спелов
System\Autorun\zSpell\zSpell_VFX.d - добавляет в игру несколько новых визуальных эффектов для новых спелов Для добавления новых спелов можно воспользоваться программой Gothic Sourcer, либо добавить свои скрипты в папку System\Autorun. При использовании Gothic Sourcer, необходимо добавить в него функцию с сигнатурой: void Spl_InvestNext(instance).

И во вложении подробное описание всего скрипта заклинания
 

Вложения

  • zSpell.7z
    1,1 MB · Просмотры: 5
  • SPell notes.D
    8,2 KB · Просмотры: 8
Последнее редактирование:

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.332
Баллы
315
А кто подскажет программы для редактирования частиц готана?
 
Сверху Снизу