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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 145 146 147 >  
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
virusman
сообщение Jul 31 2013, 00:03
Сообщение #3641


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

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



Я где-то выкладывал .reg-файл для этого.
Вот, собственно:
http://www.city-of-masters.ru/forums/index...st&p=120513
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
arcmag
сообщение Jul 31 2013, 20:10
Сообщение #3642


Level 2
*

Класс: Убийца
Характер: Neutral Evil
Раса: Нежить



Цитата
Я где-то выкладывал .reg-файл для этого.
Вот, собственно:
http://www.city-of-masters.ru/forums/index...st&p=120513


А что этот файл должен делать то? Я его скачал cp1252_fix запустил подтвердил комп перезагрузил. Ничего собственно не изменилось к сожалению

Цитата
Похоже, что проблема с отображением русских букв довольно часто встречается. Хотелось бы её всё-таки решить.
У кого есть такой баг, напишите:
1. Какая версия Windows
2. Какая версия NWN
3. NWN с русской локализацией или нет?
4. Тулсет английский?
5. Если сломалось после определённого момента, то опишите, после чего перестали отображаться русские буквы.
6. Где-нибудь в тулсете русский язык отображается или нет?


1) Windows XP SP 3
2) Была 1.66 пропатчил до 1.69
3) Да перевод на русский поставил
4) Тулсет тоже русский
5) После чего сам не помню) помню лишь то что в сами файлы НВН я не лазил ничего не редактировал и не удалял, в тулсете что то делал но все действия не помню в основном со скриптами копался.
6) Русский язык корректно отображается во всем тулсете но в компиляторе он почему то он именно не печатается если взять и скопировать фразу на русском и вставить в тулсет то он вполне корректно отображается. И еще на букву Я начал ругаться хотя раньше такого никогда не было .

Сообщение отредактировал arcmag - Jul 31 2013, 20:11
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Jul 31 2013, 22:36
Сообщение #3643


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

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



6) Патч dumbo.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Sep 5 2013, 18:31
Сообщение #3644


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



Если кто-то знает тонкости работы эвента "OnPlayerUnEquipItem" - в чем может быть загвоздка в скрипте подобного типа:..
Neverwinter Script
void main()
{
object oPC = GetPCItemLastUnequippedBy();
object oItem = GetPCItemLastUnequipped();
effect eEffect;

eEffect = GetFirstEffect(oPC);
while (GetIsEffectValid(eEffect))
      {
      if ((GetEffectType(eEffect) == EFFECT_TYPE_SKILL_INCREASE) || (GetEffectType(eEffect) == EFFECT_TYPE_SKILL_DECREASE))
         {
         RemoveEffect(oPC, eEffect);
         }
      eEffect = GetNextEffect(oPC);
      }

if (oItem == ...)
   {
   eEffect = EffectSkillIncrease(SKILL_..., ...);
   ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC);
   }
}
Естественно вместо точек конкретные данные/условия. Суть загвоздки в том, что не срабатывает цикл снятия эффектов; причем на эвенте "OnPlayerEquipItem" подобный скрипт срабатывает нормально.

Сообщение отредактировал Flaristan - Sep 5 2013, 18:31
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Sep 5 2013, 19:22
Сообщение #3645


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

Класс: Волшебник
Характер: Neutral Good
Раса: Фея
NWN: Скриптинг [PW]
Край Лесов



Вообще не знаю вроде все правильно.Вот пример из лексикона, согласно которому все нормально
Neverwinter Script
//Remove blindness from the PC
effect eLoop=GetFirstEffect(oPC);

while (GetIsEffectValid(eLoop))
   {
   if (GetEffectType(eLoop)==EFFECT_TYPE_BLINDNESS)
         RemoveEffect(oPC, eLoop);

   eLoop=GetNextEffect(oPC);
   }
}


имхо, на мой взгляд посимпатичнее было сделать так

Neverwinter Script
eEffect = GetFirstEffect(oPC);
     while (GetIsEffectValid(eEffect))
      {
         int nType = GetEffectType(eEffect);
         if (nType == EFFECT_TYPE_SKILL_INCREASE ||
             nType == EFFECT_TYPE_SKILL_DECREASE)
         {
                RemoveEffect(oPC, eEffect);
         }
      
         eEffect = GetNextEffect(oPC);
      }


Если тебе необходимо снять конкретный тип эффекта, которые у персонажа появился при надевании конкретно типа итема
То лучше делать фишку через проверку того кто эффект создал.
т.е. при налоениие эффекта ты пишешь AssignCommand(oSets, ApplyEffect(bla-bla, oPC));
естественно оSets в данном случае просто объект, который отвечает за эффекты от сетов (это из библиотеки системы сетов)
А при снятии - просто проверяешь, что эффекты созданы сетами и удаляешь их:
Neverwinter Script
object oSets = GetObjectByTag("SETS");
    effect eEff = GetFirstEffect(oPC);
    while (GetIsEffectValid(eEff))
    {
        if (GetEffectCreator(eEff) == oSets)
        {
            RemoveEffect(oPC, eEff);
        }

        eEff = GetNextEffect(oPC);
    }



а при надевании в кастомной функции уже прописываешь проверки и все такое. Система сетов есть на ваулте - если интересно поищи.

Сообщение отредактировал Melisse - Sep 5 2013, 19:26
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Sep 7 2013, 00:04
Сообщение #3646


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



Сеты это все-таки немного другое – у меня эффект добавляется при использовании не уникального итема: для придания большей актуальности режиму парирования в игре, я ввел дополнительно базовое значение в +10 парирования (подобно базовым +10 брони на теле) персонажам использующим любые комбинации не дистантного оружия без использования щитов, а так же используя факел. Помимо того факел (любой) у меня сам по себе в игре дает дополнительные бонусы и пенальти.
В общем эвенты «снять/одеть» работают в НВН не совсем корректно, и при использовании такого большого числа условий - постоянно возникают разнообразные баги в т.ч. по мере попыток их решения. Во время тестов у меня создалось впечатление, что у эвента «снять» нарушена причинноследственная связь – при снятии предмета, похоже, что для скрипта расчетным состоянием персонажа является состояние до его снятия (при котором естественно, что предмет еще находится на теле, хотя скрипт срабатывает именно от того, что мы его сняли). Хотя до конца я так и не понял их принцип работы.

В общем последний более менее рабочий вариант у меня был такой:..
Neverwinter Script
//(этот скрипт идет под номером 3)
//сначала очищаем все бонусы и пенальти
eEffect = GetFirstEffect(oPC);
while (GetIsEffectValid(eEffect))
      {
      if ((GetEffectType(eEffect) == EFFECT_TYPE_SKILL_INCREASE)
         || (GetEffectType(eEffect) == EFFECT_TYPE_SKILL_DECREASE))
         {
         RemoveEffect(oPC, eEffect);
         }
      eEffect = GetNextEffect(oPC);
      }

//если у персонажа есть оружие в правой руке и оно не дистантное...
if ( (GetIsObjectValid (GetItemInSlot (INVENTORY_SLOT_RIGHTHAND, oPC) ) )
  && (!GetWeaponRanged (GetItemInSlot (INVENTORY_SLOT_RIGHTHAND, oPC) ) ) )
   {
//...и если у персонажа нету щита в левой руке - получаем бонус парирования
   if ( (GetBaseItemType (GetItemInSlot (INVENTORY_SLOT_LEFTHAND, oPC) ) != BASE_ITEM_SMALLSHIELD)
     && (GetBaseItemType (GetItemInSlot (INVENTORY_SLOT_LEFTHAND, oPC) ) != BASE_ITEM_LARGESHIELD)
     && (GetBaseItemType (GetItemInSlot (INVENTORY_SLOT_LEFTHAND, oPC) ) != BASE_ITEM_TOWERSHIELD) )
      {
      eEffect = EffectSkillIncrease(SKILL_PARRY, 10);
      eEffect = SupernaturalEffect(eEffect);
      ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC);
      }
   }
   else
   {
//в противном случае дополнительно проверяем нет ли в левой руке факела и если есть - так же даем этот бонус
   if (GetBaseItemType (GetItemInSlot (INVENTORY_SLOT_LEFTHAND, oPC) ) == BASE_ITEM_TORCH)
      {
      eEffect = EffectSkillIncrease(SKILL_PARRY, 10);
      eEffect = SupernaturalEffect(eEffect);
      ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC);
      }
   }

//если персонаж имеет факел в левой руке - он так же получает отдельные бонусы и пенальти от его ношения
if (GetBaseItemType (GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC) ) == BASE_ITEM_TORCH)
   {
   eEffect = EffectSkillIncrease(SKILL_SPOT, 10);
   eEffect = SupernaturalEffect(eEffect);
   ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC);

   eEffect = EffectSkillDecrease(SKILL_HIDE, 10);
   eEffect = SupernaturalEffect(eEffect);
   ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC);

   eEffect = EffectSkillDecrease(SKILL_ANIMAL_EMPATHY, 10);
   eEffect = SupernaturalEffect(eEffect);
   ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC);
   }
…скрипт (в теории) универсально подходящий как для события «снять» так и для «одеть» (т.к. он проверяет полное состояние экипировки и назначает результирующие бонусы, зачистив все предварительно). Однако в отличие от эвента «одеть» - эвент «снять» его переваривает неудовлетворительно.

Как удалось решить обойти проблему:..
Neverwinter Script
//скрипт 1
void main()
{
object oPC = GetPCItemLastEquippedBy();

if (!GetIsPC(oPC))
return;

DelayCommand(0.5, ExecuteScript("3", oPC));
}

//скрипт 2
void main()
{
object oPC = GetPCItemLastUnequippedBy();

if (!GetIsPC(oPC))
return;

DelayCommand(0.5, ExecuteScript("3", oPC));
}
...т.к. последняя версия этих скриптов была приведена к универсальной – запихал ее отдельным скриптом и на события «снял/одел» просто назначил запуск ее как активную проверку, запускающуюся от лица персонажа стартовавшего эвент.

Сообщение отредактировал Flaristan - Sep 7 2013, 00:21
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Sep 8 2013, 10:52
Сообщение #3647


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

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



Делал сеты таким же макаром - работало без нареканий.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Sep 8 2013, 16:45
Сообщение #3648


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



Таким же макаром в смысле через проверки эффектора или через доп скрипт?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Sep 9 2013, 07:34
Сообщение #3649


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

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



Один скрипт на equip, второй - unequip, в каждом одна и та же проверка на надетые итемы и эффекты на персонаже. Никаких костылей.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Sep 9 2013, 20:41
Сообщение #3650


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



Когда я только факел делал и предмет был указан по тагу – все работало отлично. Чехарда началась, когда место тагов заняли более универсальные типы итемов.
Но костыль проблему с нарушением причинно-следственной связи устраняет и на том ладно.

Сообщение отредактировал Flaristan - Sep 9 2013, 20:44
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 31 2019, 07:36
Сообщение #3651


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Ну нифика себе некропост, пятнадцатилетней давности... (IMG:style_emoticons/kolobok_light/swoon.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Synth
сообщение Mar 12 2020, 16:56
Сообщение #3652


Level 1


Класс: Обыватель
Характер: Lawful Good
Раса: Человек



Neverwinter Script
void main()
{
    if(GetLocalInt(GetFirstPC(), "iAlreadyPlayedCS") == 0)
    {
    SetLocalInt(GetFirstPC(), "iAlreadyPlayedCS",1);
    SetTime(23,0,0);
    ExecuteScript("m1_cs00");
    }
   
    else
    {
    ExecuteScript("m1_cs11a");
    }
}


Абсолютно ничего не смыслю в скриптах. Может кто объяснить, что там происходит?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Mar 12 2020, 23:25
Сообщение #3653


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

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



Если нет переменной iAlreadyPlayedCS на игроке, то ставит время на 23 и запускает скрипт m1_cs00. Иначе запускает m1_cs11a.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Synth
сообщение Mar 13 2020, 00:03
Сообщение #3654


Level 1


Класс: Обыватель
Характер: Lawful Good
Раса: Человек



Большое тебе спасибо! Теперь хоть можно понять, что к чему, но понимание всего этого все еще хромает)

Цитата(Synth @ Mar 12 2020, 23:00) *
Большое тебе спасибо! Теперь хоть можно понять, что к чему, но полное усвоение все еще хромает) Скрипт, который ниже - будет запускать только в том случае, если игрок уже находится в кат-сцене?

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Mar 17 2020, 19:29
Сообщение #3655


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

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



Про катсцену в скрипте ни слова. Возможно, переменная с ней связана, но прямо проверки катсцены нет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Synth
сообщение Mar 19 2020, 14:53
Сообщение #3656


Level 1


Класс: Обыватель
Характер: Lawful Good
Раса: Человек



Ага, я понял! Это ссылки на скрипты. Я думал, что раз написано CS - значит это кат-сцена. Похоже в этих самых скриптах и находятся функции с кат-сценами.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Mar 21 2020, 09:01
Сообщение #3657


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

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



Да, скорее всего CS - это катсцена. Но это названия переменных, они имеют смысл только для разработчика.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Mouik Kelm
сообщение Dec 10 2020, 21:40
Сообщение #3658


Level 1


Класс: Ученик Дракона
Характер: Chaotic Evil
Раса: Человек



День добрый. Хотелось бы спросить как написать три скрипта:
1) НПС фонарщик должен ходить, включая и выключая фонари, соответственно
2) Группа НПС должна приходить после определенного события
3) Как сделать говорящий предмет, подобный Энсеррику?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Dec 11 2020, 13:48
Сообщение #3659


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



1. Сложный скрипт для новичка. В разделе скриптов есть примеры, там включаются факелы ночью и выключаются днем. Попробуйте приспособить их.
2. Ставим группу НПС в закрытой локации, в диалоге ставим простой скрипт на строку диалога, типа нпс прыгнуть в локацию в точку А и подойти к РС.
3. Предмет который носится в инвентаре?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Mouik Kelm
сообщение Dec 11 2020, 15:20
Сообщение #3660


Level 1


Класс: Ученик Дракона
Характер: Chaotic Evil
Раса: Человек



Да, предмет носится в инвентаре
И не могли бы вы подсказать пример скрипта прихода нпс?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Dec 11 2020, 19:12
Сообщение #3661


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



http://www.city-of-masters.ru/forums/index.php?showtopic=5 - вот тут полно скриптов написанных для разных задач. Ищи и подбирай под себя. У меня уже сто лет нет нвн на компе. Помочь вряд ли смогу, только теоретически сказать как реализовать.

http://www.city-of-masters.ru/forums/index...?showtopic=1612 - это тема специально для новичков, все подробно расписано, есть и про нпс варианты.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Mouik Kelm
сообщение Dec 22 2020, 18:28
Сообщение #3662


Level 1


Класс: Ученик Дракона
Характер: Chaotic Evil
Раса: Человек



Чтож, с фонарями разобрался. Но все еще остается вопрос с говорящим предметом и приходом нпс. Здесь, к сожалению, не смог найти
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Dec 25 2020, 12:21
Сообщение #3663


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Очень плохо ищите. Вот тут все написано русским языком.
Neverwinter Script
void main()
{
object oActivator = GetItemActivator(); // это активатор объекта(наш PC)
object oActivated = GetItemActivated(); // это активируемый объект (камень)


if ("ТАГ КАМНЯ" == GetTag(oActivated)) // проверка. Нужный ли объект использован
  {
  AssignCommand(oActivator, ClearAllActions()); // чистим игроку акции
  AssignCommand(oActivator, ActionStartConversation()); //  Функцию не помню по памяти, это начало диалога и таг диалога
  }
}


Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
zmeylsdn
сообщение Dec 26 2020, 15:06
Сообщение #3664


Level 3
*

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



Привет. Хочу сделать итем, который будет давать команду самону "двигаться", если использован на пустое место и "атаковать", если на нпц\обьект.
Думаю поместить его в скрип спелов призыва, чтобы проверял, есть ли итем в инвентаре и давал, если нет.
Есть какие-то наработки в этом направлении?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Dec 26 2020, 18:08
Сообщение #3665


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Я таких не помню, но если скриптинг осилен то не проблема написать его.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 145 146 147 >
Ответить в эту темуОткрыть новую тему
6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 10th May 2025 - 08:23