Jr13San, твой способ даст результат на следующем чтении заклинании. Да и Spell_Cast_имязаклинания в первой Готике отсутствуют. Если бы хотелось сделать повреждение случайным, это бы проблемы не представляло - сдвиг на одно кастование роли не играет (да и любителей поперегружаться не у дел оставляет
, а вот как его привязать к параметрам персонажа?
Реально движок Готики осуществяет считывание параметров заклинания в следующих случаях (не считая загрузки): после окончания цикла заклинания (не важно, успешного или нет), при впихивании свитка/руны в слот, при убирании свитка/руны из руки в инвентарь, при доставании - не всегда, а только если цифрами и ГГ не совершает никаких действий в этот момент. И присваивание значения до двига не дойдет, пока он параметры не считает. Таким образом, установив параметры привязки к атрибутам кастующего сейчас, мы не можем гарантировать, что спел с таким повреждением не прочитает кто-то другой, а при перестрелке одинаковыми заклинаниями вообще каша получится. На это можно наплевать (я так и сделаю при необходимости), но только если не будет лучшего способа.
Jr13San, мне хотелось проверить, каким станет прохождение за мага, если к повреждения спелами использовать подход, аналогичный оружейному - ввести вероятность критического и увеличивать ее с обучением новым кругам магии или увеличивать повреждения в зависимости от достигнутого круга.
Теоретически, двиг должен все параметры забивать в какие-то свои переменные/масивы, имена/номера мест которых определяются id спела - не даром же требуется не только пронумеровать все заклинания, но и указать их количество. Вполне возможно, что зная эти внутренние названия можно менять эффективно значения не дожидаясь запроса от двига.
Есть конечно и совсем простой способ частично достигнуть желаемого мне эффекта - после закачки маны кидать кубики и при неудаче возвращать не SPL_SENDCAST, а SPL_SENDSTOP и сообщение, что заклинание не удалось, но это на крайний случай.
Несколько инстанций спелов не помогут - на руны цепляется один и выполнение висит на двиге. Я даже теоретически не представляю как тогда придется выкручиваться и переключаться на разные вариации без глобальной переделки всего и вся.
Jr13San, нету B_AssessDamage в первой Готике. Можно скозлить, конечно, из второй - я собирался что-то подобное сделать для других целей, ибо во Мрачных Тайнах которые я патчу, уже есть счетчик противников по типу и почетные звания, но бонуса они не дают
Хотя, может он по другому называется? Несколько функций для расчета повреждений от заморозки и им подобных то есть.
С магией же надо пробовать - дополнительно вычитать хитпоинты без учета защиты не верно, а значит опять таки придется весь расчет повреждений от заклинаний делать чисто скриптовым, а на двиге оставить только определение самого факта попадания.