Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
202 страниц V  « < 200 201 202  
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
zmeylsdn
сообщение Jan 18 2019, 19:22
Сообщение #5026


Level 2
*

Класс: Бледный Мастер
Характер: Chaotic Neutral
Раса: Человек



-1- В скрипте nw_s0_summon первый вариант с OBJECT_SELF работает на перса, второй вариант с object oSummon не работает никак, в т.ч. и без DelayCommand(3.0). Использую одновременно только один из вариантов, тут объединил для наглядности.
CODE
else if(nSpellID == SPELL_SUMMON_CREATURE_III)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_1;
sSummon = "NW_S_WOLFDIRE";
if(nCasterLevel >= 25)
{
sSummon = "z_s13qq";
}
if(GetHasFeat(FEAT_GREATER_SPELL_FOCUS_CONJURATION
))
{
object oTarget = OBJECT_SELF;
effect eBonus = EffectAbilityIncrease(ABILITY_STRENGTH, 4);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBonus, oTarget);

object oSummon = GetAssociate(ASSOCIATE_TYPE_SUMMONED);
effect eBonus = EffectAbilityIncrease(ABILITY_STRENGTH, 4);
DelayCommand(3.0, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBonus, oSummon));
}
}

-2- В скрипте самона на onSpawn добавил это внутри void main(), никакого эффекта
CODE
object oMaster = GetMaster();
if(GetHasFeat(FEAT_GREATER_SPELL_FOCUS_CONJURATION
, oMaster))
{
object oTarget = OBJECT_SELF;
effect eBonus = EffectAbilityIncrease(ABILITY_STRENGTH, 4);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBonus, oTarget);
}

-3-Пытаюсь изменить ДЦ всех спеллов на эпик лвлах. Ищу в формуле спела GetSpellSaveDC() и меняю на nSpellDC. Докидываю код:
CODE
int nSpellDC;
int nCasterLevel = GetCasterLevel(OBJECT_SELF);
if(nCasterLevel <= 20)
{
nSpellDC = GetSpellSaveDC();
}
if((nCasterLevel >= 21) && (nCasterLevel <= 21))
{
nSpellDC = GetSpellSaveDC() + 10;
}
if(nCasterLevel >= 22)
{
nSpellDC = GetSpellSaveDC() + 20;
}

и все работает (проверено на NW_S0_WailBansh). Вопрос - возможно ли одним кодом охватить все спеллы? Каждый спелл зависит от
#include "X0_I0_SPELLS"
#include "x2_inc_spellhook"
так что видимо этот код нужно добавлять в один из этих скриптов. Но как этим одним кодом заменить GetSpellSaveDC() каждого спела на nSpellDC? Или может есть другой путь.

Сообщение отредактировал zmeylsdn - Jan 19 2019, 19:18
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Jan 19 2019, 08:08
Сообщение #5027


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Саммон уже вызван на момент применения эффекта? Я вижу вверху строчку с рефом, такое чувство, что эффект вызова саммона ещё не применён.

Все скрипты придётся менять вручную. Даже если поправить инклуд, всё равно все скрипты надо будет перекомпилировать, а этого не сделать, если предварительно не изменить хоть как-то (создать модульную версию).

Сообщение отредактировал denis0k - Jan 19 2019, 08:09
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

202 страниц V  « < 200 201 202
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 20th January 2019 - 04:55