Уважаемые гости и новички, приветствуем Вас на нашем форуме
Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».
Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
Удачи!
Друзья, доброго времени суток! Спешите принять участие в конкурсе "Таинственные миры" 2025!
Ждем именно вас!
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
так не понятно. добавь для отладчика инфу
func void Spell_Cast_zFirebolt()
{
Hlp_PrintConsole(Str_Format(" Spell_Cast_zFirebolt[%s %i], self.name, self.id));
// счётчик для НПС (не герой)
self.aivar[AIV_SelectSpell] += 1;
};
руны можно отдельные сделать, что...
а если овца блокирует проход, то что НПС должен делать?
такую проверку использовать?
if (Npc_IsPlayer(self) == true) // нпс управляет герой
&& (self.guild > GIL_SEPERATOR_HUM) // нпс не человек
но если использовать zSpell, то надо будет править B_SelectSpell. Впрочем всю необходимую информацию можно взять из инстанции руны:
func void B_ReadyRune(var C_NPC slf, var int rune)
{
if (!Npc_GetInvItem(slf, rune))
{
CreateInvItem(slf, rune);
}...
ты можешь использовать Конструктор заклинаний | zSpells от Saturas . он добавил возможность устанавливать необходимый уровень заклинания без инвестирования маны.
// отнимает ману + увеличиваем уровень заклинания + обнуляем аивер
if (self.aivar[AIV_SpellLevel] != 0)
{...
func int Spell_Logic_Firebolt (var int manaInvested)
{
var C_Item itm; // для проверко брони и оружия
var C_NPC her; her = Hlp_GetNpc(PC_Hero);
var int SPL_Cost_mana;
// проверка на наличие маны у НПС для каста
if (manaInvested == 0)
{
SPL_Cost_mana =...
в неоф. патче можно проще
if C_IsNpc(self,PC_Hero)
или еще короче
if (C_NpcIsHero(self) == true)
проверка на рокфелера для тестов
if (C_NpcIsRockefeller(self) == true)
func int Spell_Logic_Firebolt (var int manaInvested)
{
...
var C_NPC her; her = Hlp_GetNpc(PC_Hero); // ссылка на инстанцию героя
...
if (Hlp_GetInstanceID(self)==Hlp_GetInstanceID(her)) // self это инстанция героя pc_hero
{
...
};
....
};
эта проверка будет действовать и на ищущих
а это ты откуда взял?
у тебя по новому коду за последний год, проверка на то герой это или нет, только на моей памяти использовалась пять раз.
это условие будет действовать на всех НПС? или ты имеешь ввиду только героя? или при этом ещё и Равен должен быть убить? :-)
у тебя отладчик есть. смотри в отладчик вызывает ли оружие "спел_логик". и подобные вопросы появляться не будут.
у меня складывается впечатление что порой что то блокирует открытие инвентаря для торговли. было бы здорово прояснить этот момент и сделать плагин про это :-)
так же хотелось бы прояснить насчёт инстанции с important = true. возможно ли сделать что бы инвентарь торговли открывался в том...
не понятно, что есть "разумеется". минимальный уровень 1? или 0? или 4? максимальный уровень 15? или 20? или 100? бонус от маны может быть больше 5?
***
проверку на коготь я не знаю как лучше организовать. можно попробовать проверить по имени, может прокатит
if...
текущая мана или максимальная мана?
уровень больше 15 может быть?
в сете или сам по себе?
уровень меньше 4 может быть?
уровень
примечание
Базовые значения
4
бонус маны
от 1 до 999
плюс 1 уровень за 80 ед. ATR_MANA
Роба мага Огня
1
Тяжелая роба мага Огня
2
Роба Ищущего
минус...
upd
обновил первый пост. добавил определение уровня спела с помощью Npc_GetActiveSpellLevel и отнимание маны с помощью SPL_FORCEINVEST. поменял какие то слова местами.
Таблицу с проверками вынес в отдельный пост #2 Готика ½ - Spell_Logic - увеличения урона заклинаний
ну и еще раз: я писал всё...
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.