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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 86 87 88 89 90 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Kavin
сообщение Apr 19 2006, 21:19
Сообщение #2161


Level 8
***

Класс: Паладин
Характер: Lawful Good
Раса: Полуэльф
ПОДМАСТЕРЬЕ



Хотел спросить: есть ли возможность сохранить стек действий создания?..
То есть ему задана очередь действий, но стоит кому-то с ним заговорить или атаковать его - и он останавливается, последовательность прерывается и все...
Можно ли на время разговора или сражения запомнить эту последовательность и потом ее возобновить с прерванной точки?..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
[MoF]Darth_Nick
сообщение Apr 19 2006, 21:24
Сообщение #2162


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

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить
NWN: Скриптинг [PW]



1 действие можно через GetCurrentAction
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Apr 19 2006, 22:30
Сообщение #2163


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Kavin, если только после каждого выполненного действия не сохранять переменную. Например, НПС подошел к столу - сохраняем переменную; НПС открыл сундук - сохраняем переменную. Переменная одна, меняется лишь цифра. Если НПС прервали, продолжить с последней переменной. Расписать серию условий по переменным, что если переменная равна тому-то, начать с этого действия. И не важно, что делал НПС, и как далеко отошел от своей цели. Не сохранять новую переменную до тех пор, пока он не выполнит своего задания. Когда НПС начинает идти по второму разу, повторяя свой цикл, сбросить переменную в ноль.

Ради интереса можешь посмотреть скрипты Мораг. У нее все расписано по часам, что если происходит то-то, делать это. Использованы те же условия.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 19 2006, 22:37
Сообщение #2164


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

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE(Kavin @ Apr 19 2006, 22:19) [snapback]78804[/snapback]
То есть ему задана очередь действий, но стоит кому-то с ним заговорить или атаковать его - и он останавливается, последовательность прерывается и все...
Можно ли на время разговора или сражения запомнить эту последовательность и потом ее возобновить с прерванной точки?..

я подробно описывал алгоритм анимации НПС, который включает в себя такие вещи. (прерывание разговором. боем так же, небольшой добавкой в скрипт onEndCombatRaund). Причем там был приведен как сам код, так и подробное описание. Не говоря уже о демо-модуле. Насколько я знаю, ты интересовался этим еще осенью, неужели с тех пор без изменений?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Kavin
сообщение Apr 20 2006, 07:05
Сообщение #2165


Level 8
***

Класс: Паладин
Характер: Lawful Good
Раса: Полуэльф
ПОДМАСТЕРЬЕ



Lex, да, с тех пор без изменений. Я тулсет закрыл в декабре, а открыл после этого 9-го апреля.
А в какой теме ты это описывал, не напомнишь?..
ЗЫ.: Про демо-модуль ничего не слышал, правда. (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 20 2006, 12:58
Сообщение #2166


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

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



2 статьи по анимации на старом сайте. Сайт снесли в феврале вроде, а статьи на новый не переехали пока. Когда ты тогда интересовался этим вопросом, я давал линки. Сейчас у мя нет на харде тех материалов.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Apr 20 2006, 16:41
Сообщение #2167


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Kavin
Статьи есть ЗДЕСЬ


LEX: забыл про народ, уехали оттуда черте когда, а сайт висит. (IMG:style_emoticons/kolobok_light/smile.gif) ) Надеюсь перенесем на сайт статью.


Сообщение отредактировал Dik Morris - Apr 20 2006, 18:06
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Kavin
сообщение Apr 20 2006, 20:23
Сообщение #2168


Level 8
***

Класс: Паладин
Характер: Lawful Good
Раса: Полуэльф
ПОДМАСТЕРЬЕ



Спасибо! Работаю.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Артём
сообщение Apr 21 2006, 18:00
Сообщение #2169


Level 5
**

Класс: Друид
Характер: Neutral Good
Раса: Человек



Кто-нибудь может написать скрипт на повышения силы, ловкости и т.д?
Так чтобы это было постаяннао. (IMG:style_emoticons/kolobok_light/swoon.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Apr 21 2006, 18:02
Сообщение #2170


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



NSS
// Apply eEffect to oTarget.
void ApplyEffectToObject(int nDurationType, effect eEffect, object oTarget, float fDuration=0.0f)

NSS
// Create an Ability Increase effect
// - bAbilityToIncrease: ABILITY_*
effect EffectAbilityIncrease(int nAbilityToIncrease, int nModifyBy)

NSS
// Set the subtype of eEffect to Supernatural and return eEffect.
// (Effects default to magical if the subtype is not set)
// Permanent supernatural effects are not removed by resting
effect SupernaturalEffect(effect eEffect)


1 минус - иконка справа от портрета игрока.
(Хотя это как сказать... Кажется ЗДЕСЬ Lex, предлагал иной способ.)

PS:
QUOTE
Так чтобы это было постаяннао

int DURATION_TYPE_PERMANENT.

Сообщение отредактировал Dik Morris - Apr 21 2006, 18:19
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Артём
сообщение Apr 23 2006, 14:59
Сообщение #2171


Level 5
**

Класс: Друид
Характер: Neutral Good
Раса: Человек



А можит кто-то другой сможыт исправить так чтобы небыло значька.
[/nss]void main()
{
object oTargetPC = GetPCSpeaker();
effect oEffectAbilityIncrease = EffectAbilityIncrease (ABILITY_CONSTITUTION, 1);
ApplyEffectToObject(DURATION_TYPE_ PERMANENT, oEffectAbilityIncrease, oTargetPC);
}

И ещё напишыте пожалуйста скрипт на снятие одежды с героя.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
[MoF]Darth_Nick
сообщение Apr 23 2006, 15:03
Сообщение #2172


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

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить
NWN: Скриптинг [PW]



QUOTE
И ещё напишыте пожалуйста скрипт на снятие одежды с героя.

поиск юзай..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elf-Drow
сообщение Apr 23 2006, 15:11
Сообщение #2173


Level 8
***

Класс: Теневой Танцор
Характер: True Neutral
Раса: Эльф



Здрасьте, не подскажете как можно в определенный момент, к примеру катсцены, включить воспроизведение музыки? пробовал через звук(обычный, как объект), но он не хочет воспроизводиться. А музыку свою в игру вставлял в формате BMU, как описано в мануале Айвана, но он ее не видит, хотя делал все точно по инструкции. Подсобите, пожалуйста, советом...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Apr 23 2006, 15:18
Сообщение #2174


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Вкл. боевую музыку:
NSS
// Play the battle music for oArea.
void MusicBattlePlay(object oArea)

Если нужно сменить уже играющею то:
NSS
// Change the background day track for oArea to nTrack.
// - oArea
// - nTrack
void MusicBackgroundChangeDay(object oArea, int nTrack)

Либо:
NSS
// Change the background night track for oArea to nTrack.
// - oArea
// - nTrack
void MusicBackgroundChangeNight(object oArea, int nTrack)

Соответственно с battle точно также.
NSS
// Change the battle track for oArea.
// - oArea
// - nTrack
void MusicBattleChange(object oArea, int nTrack)

QUOTE
музыку свою в игру вставлял в формате BMU, как описано в мануале Айвана, но он ее не видит, хотя делал все точно по инструкции.

Заместо константы TRACK_ , ставь номер своей композиции, из 2da ambietmusic.

QUOTE
А можит кто-то другой сможыт исправить так чтобы небыло значька.

Повторюсь: http://www.wrg.ru/forums/index.php?showtopic=1798

QUOTE
И ещё напишыте пожалуйста скрипт на снятие одежды с героя.

NSS
// Unequip oItem from whatever slot it is currently in.
void ActionUnequipItem(object oItem)


Сообщение отредактировал Lex - Apr 23 2006, 16:36
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elf-Drow
сообщение Apr 24 2006, 15:04
Сообщение #2175


Level 8
***

Класс: Теневой Танцор
Характер: True Neutral
Раса: Эльф



А дык через что присваивать Area? Через Location? А Location тода через что?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Apr 24 2006, 15:18
Сообщение #2176


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE
А дык через что присваивать Area? Через Location? А Location тода через что?

В зависимости от ситуации.
Например, если ты хочешь сменить трек в текущей локации:
NSS
object oArea = GetArea(OBJECT_SELF);// Т.е oArea - сама лока

Если в какой либо другой:
NSS
object oArea = GetArea(GetObjectBtTag(""));


Сообщение отредактировал Dik Morris - Apr 24 2006, 15:23
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
windhover
сообщение Apr 26 2006, 01:49
Сообщение #2177


Level 3
*

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



Доброго времени суток. У меня возник вопрос, если он глупый, прошу строго не судить - так как это мой первый опыт в написании скриптов.
Решил немного модифицировать скрипт с реакцией гварда на оружие в руках игрока: при виде игрока с оружием в руках, гвард начинает диалог(предлагает заплатить штраф), при отказе платить штраф вызывается следующий скрипт:
CODE

void main()
{
object oPC = GetPCSpeaker();
object OS = OBJECT_SELF;
object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);

      if (!GetIsObjectValid(oWeapon)) return;

      DelayCommand(0.30, ActionSpeakString("Может так ты лучше поймешь!"));
      DelayCommand(0.60, ActionUseFeat(FEAT_IMPROVED_DISARM, oPC));
      DelayCommand(1.40, ApplyEffectToObject(1, EffectKnockdown(), oPC, 8.0));
      DelayCommand(0.25, SetStandardFactionReputation(REPUTATION_TYPE_ENEMY, 50, oPC));
      DelayCommand(2.30, ClearAllActions(TRUE));
      DelayCommand(4.30, ActionPickUpItem(oWeapon));
      DelayCommand(7.20, ActionMoveToObject(oPC, FALSE, 1.4));
      DelayCommand(10.0, AssignCommand(OBJECT_SELF, ActionStartConversation(oPC, "dl_afterdisarm")));
}

Ведет он себя абсолютно непредсказуемо. Чаще всего гвард после проведения дизарма остается хостайл и продолжает атаковать игрока.
Подскажите, пожалуйста в чем может быть проблема или скажите хоть куда копать.
Спасибо.

З.Ы.
DelayComand() - это задержка от начала выполнения скрипта или от предыдущего действия?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 26 2006, 02:53
Сообщение #2178


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

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE(windhover @ Apr 26 2006, 02:49) [snapback]79626[/snapback]
DelayComand() - это задержка от начала выполнения скрипта или от предыдущего действия?

от начала
QUOTE(windhover @ Apr 26 2006, 02:49) [snapback]79626[/snapback]
Чаще всего гвард после проведения дизарма остается хостайл и продолжает атаковать игрока.

ну ессно. Ты ж его заставляешь применить фит, который расценивается как атака. Смена отношения между РС и хостайлами не ясна.
Если уж на то пошло, то тебе надо такое:
- отчистить стеки акций у обоих участников
- (тут можно поставить TemporaryEnemy)
- применить фит дизарм
- наложить кнок
- с небольшой задержкой после дизарма очищай персональные отношения, можешь насильно поставить нейтрал
- запускай диалог. Но учти, что после боя требуется время.

как вариант - выкинуть дизарм. Те анимашка (быстрый взмах рукой.. скажем ANIMATION_LOOPING_TALK_FORCEFUL), эффект кнока, копирование оружия на землю и удаление из руки. Подбор и диалог сразу.

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
windhover
сообщение Apr 26 2006, 18:26
Сообщение #2179


Level 3
*

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



QUOTE(Lex @ Apr 26 2006, 02:53) [snapback]79629[/snapback]

как вариант - выкинуть дизарм. Те анимашка (быстрый взмах рукой.. скажем ANIMATION_LOOPING_TALK_FORCEFUL), эффект кнока, копирование оружия на землю и удаление из руки. Подбор и диалог сразу.

Спасибо большое, вариант без дизарма действителшьно лучше, так как стража тоже иногда "1" бросает =)
Еще один глупый вопрос: если скрипт вызывается из диалога, ClearAllActions(TRUE) у кого очистит стэк акций?

P.S. простите, поправил.. Mozilla чегойто... (IMG:style_emoticons/kolobok_light/unsure.gif) (IMG:style_emoticons/kolobok_light/unsure.gif)

Сообщение отредактировал windhover - Apr 26 2006, 18:55
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 26 2006, 20:45
Сообщение #2180


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

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE(Aiwan @ Apr 26 2006, 19:32) [snapback]79700[/snapback]
Еще один глупый вопрос: если скрипт вызывается из диалога, ClearAllActions(TRUE) у кого очистит стэк акций?

в диалоге если не указываешь объект, или указываешь OBJECT_SELF, то это относится к НПС, с которым разговариваешь. Тут это особо не нужно (я про отчистку), но лучше подстраховаться и ввести в правило: что-то делаешь с Игроком/Неписью - отчисть его стек, если это возможно. (бывают случаи когда стек наоборот чистить не нужно, но эт другая история)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Talarasha
сообщение Apr 28 2006, 05:20
Сообщение #2181


Level 6
**

Класс: Маг
Характер: Lawful Evil
Раса: Нежить



Добрый день (IMG:style_emoticons/kolobok_light/smile.gif) . Не особо разбираюсь в скриптах - все познания ограничиваются установкой локальных переменных, созданием монстров и эффектами, поэтому частенько заглядываю сюда в поисках готовых примеров. Долго искал, но не смог обнаружить, как сделать:
1.Вызов приживалы (спутника, существа у магов и колдунов), вызов элементалей и планаров доступным только в определенных областях и с наличием определенных предметов в инвентаре.
2.Предмет, вызывающий определенное существо сроком на 6 минут, после чего его использование становится невозможным на 12 минут.
Буду очень признателен, если кто-нибудь окажется достаточно терпеливым и объяснит мне, как это сделать (IMG:style_emoticons/kolobok_light/smile.gif) .
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Apr 28 2006, 07:17
Сообщение #2182


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE
2.Предмет, вызывающий определенное существо сроком на 6 минут, после чего его использование становится невозможным на 12 минут.

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

Я сделал так что NPC, после истечении 6 минут, прыгает на нужный вайпоин.
(Скажем, в той же закрытой локе)

На onActivateItem в мод. св-вах:
NSS
void main()
{
  object oPC = GetItemActivator(); // Игрок;
  object oNPC = GetObjectByTag(""); // Таг вызываемого NPC;
  object oWP = GetObjectByTag(""); // Таг "домашнего" вейпа;
  object oItem = GetItemActivated(); // Активируемый предмет;

     if (GetTag(oItem) == "") // Здесь укажи таг oItem ;
      {
        if (GetLocalInt(oPC, "Local") == FALSE)
         {
            SetLocalInt(oPC,"Local", 1);
            DelayCommand(1200.0, SetLocalInt(oPC,"Local",0));
            effect eVisual = EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_FIRE);
            DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisual, oPC));

            DelayCommand(0.7, AssignCommand(oNPC, ClearAllActions(TRUE)));
            DelayCommand(1.0, AssignCommand(oNPC, ActionJumpToObject(oPC)));

            DelayCommand(599.7, AssignCommand(oNPC, ClearAllActions(TRUE)));
            DelayCommand(600.0, AssignCommand(oNPC, ActionJumpToObject(oWP)));

           
         }

        if (GetLocalInt(oPC, "Local") == TRUE)
         FloatingTextStringOnCreature("Нужное время еще не пришло.", oPC);
      }
}

QUOTE
1.Вызов приживалы (спутника, существа у магов и колдунов), вызов элементалей и планаров доступным только в определенных областях и с наличием определенных предметов в инвентаре.

Это можно сделать, немного модернизировав вышеприведенный код, т.е добавить проверку на айтемы, локи и т.п...

Сообщение отредактировал Dik Morris - Apr 28 2006, 07:48
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Talarasha
сообщение Apr 28 2006, 10:44
Сообщение #2183


Level 6
**

Класс: Маг
Характер: Lawful Evil
Раса: Нежить



Премного благодарен (IMG:style_emoticons/kolobok_light/smile.gif) .
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Apr 29 2006, 14:15
Сообщение #2184


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

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



Есть гостиница, в ней - разные комнаты. В некоторых есть окна, во всех есть различные источники искусственного освещения.
Нужно сделать естественное освещение, т.е. с наступлением дня и ночи менять тайловое освещение в тех комнатах, в которых есть окна.
Но поскольку просто так скриптами границы комнаты не определишь (насколько я знаю), есть вопрос: Как, по-вашему, наиболее удобно/эффективно обозначать расположение тайлов комнаты для скрипта? Можно, конечно, и в скрипт коррдинаты каждого тайла запихнуть, но это как-то не очень. Повторюсь: ВСЕ тайлы менять не надо, только определённые комнаты.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mefist
сообщение Apr 29 2006, 18:42
Сообщение #2185


Level 1


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



Недавно сел за редактор и никак не могу понять следующие вещи.

Как приказать NPC двигаться в точку? И как назначить эту точку?

При генерации вещей в сундуках, они выбратся из указанного уровня вещей. А можно ли редактировать эти самые уровни? Например, при генерации золота на высоком уровне получается около 20 золотых, а мне нужно примерно 1000-3000. И можно как-то сделать, чтобы они генерировались из заданного мной списка вещей?


Сообщение отредактировал mefist - Apr 29 2006, 18:53
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 86 87 88 89 90 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29th April 2025 - 12:46