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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
14 страниц V  « < 4 5 6 7 8 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты: Все вопросы, Алгоритмы, оптимизация, особености и хитрости в скриптинге
Griffon
сообщение May 16 2007, 09:11
Сообщение #111


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

Класс: Страж Тьмы
Характер: True Neutral
Раса: Человек
МАСТЕР D&D



Цитата(r1Stranger @ May 15 2007, 19:01) [snapback]108263[/snapback]
Может надо было вписывать в имя тэг существа?


Именно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Jun 26 2007, 12:54
Сообщение #112


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Вот два скрипта, которые делают любого НПС полностью неподвижным (на случай, если нужна статуя, игрушка и т.д.)
Первый ставится на слот OnConversation:
Neverwinter Script Source
// empty to avoid default behaviour

void RemoveEffects(object oObject)
{
    effect eEffect = GetFirstEffect(oObject);
    while(GetIsEffectValid(eEffect))
    {
        RemoveEffect(oObject, eEffect);
        eEffect = GetNextEffect(oObject);
    }
}

void main()
{
    PlaySound("as_cv_winch1");
    /*SetPlotFlag(OBJECT_SELF, FALSE);
    RemoveEffects(OBJECT_SELF);
    ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK, 0.5);
    effect eHold = EffectVisualEffect(VFX_DUR_FREEZE_ANIMATION);
    ActionDoCommand(ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHold, OBJECT_SELF));
    ActionDoCommand(SetPlotFlag(OBJECT_SELF, TRUE));*/

}

Второй - на слот OnSpawn:
Neverwinter Script Source
void main()
{
    effect eHold = EffectVisualEffect(VFX_DUR_FREEZE_ANIMATION);
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, eHold, OBJECT_SELF);
    SetLocalInt(OBJECT_SELF, "X1_L_IMMUNE_TO_DISPEL", 10);
}

Оба взяты из SoU, но прекрасно работают и в НВН2.
Наслаждайтесь! (IMG:style_emoticons/kolobok_light/rolleyes.gif)

ВАЖНО: Чтобы НПС оставался действительно неподвижным, не забудьте убить все остальные скрипты. Должны остаться только эти два. (IMG:style_emoticons/kolobok_light/smile.gif)

Сообщение отредактировал shadowdweller - Jun 26 2007, 12:56
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Griffon
сообщение Jun 28 2007, 12:02
Сообщение #113


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

Класс: Страж Тьмы
Характер: True Neutral
Раса: Человек
МАСТЕР D&D



Скриптование вэйпойнтов:

Neverwinter Script Source
#include "ginc_wp"

void main()
{
    int iCurrentWP = GetCurrentWaypoint();
    int iNextWP;
    switch (iCurrentWP)
    {
        case 1:
            iNextWP = Random(GetNumWaypoints()-1) + 2;
            SetNextWaypoint(iNextWP);
            ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 7.0);
            break;
        case 2:
            SetNextWaypoint(1);
            ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW, 1.0, 4.0);
            break;
        case 3:
            SetNextWaypoint(1);
            break;
    }
}


Neverwinter Script Source
#include "ginc_wp"
     
const int REDIRECTOR_WP = 1;

void main()
{
    int iCurrentWP = GetCurrentWaypoint();// where we are
    int iNextWP;
    switch (iCurrentWP)
    {
        case 1:
// Node 1 should be placed off somewhere out of the way.  This is where the creatures
// will hang out in between reaching the end of the path and starting on a new path.
// Creatures will change their appearance in between travels.

// 1st param is the list of nodes they may reappear at. Must follow the pattern XX,YY,ZZ...
// 2nd param is the length of time to wait before reappearing.
                  StandardRedirectorNode("02,03", 5.0f);
            break;
        case 2:
// Nodes 2 on up define the network the road walkers travel.  They will never return to the node
// they just came from.  When they reach an end node (typically a door or a route out of the area)
// they will be be "redirector node" - typically node 1.

// 1st param is the list of nodes they may travel to. Must follow the pattern XX,YY,ZZ...
//                (end nodes are those with only 1 element in the list)
// 2nd param is the redirector WP
                  StandardRoadNetworkNode("03", REDIRECTOR_WP);
            break;

        case 3:
                  StandardRoadNetworkNode("02", REDIRECTOR_WP);
            break;
    }
}



Статья.


Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Валеско
сообщение Jul 14 2007, 22:48
Сообщение #114


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

Класс: Бард
Характер: Chaotic Neutral
Раса: Животное
МАСТЕР Пера



В одной из локаций модуля присутствует жаровня. Жаровня - это такая фиговина при нажимании на которую оружие игрока воспламеняется.\
Для действия жаровни был написан скрипт:

Neverwinter Script Source
void main()
{
ActionCastSpellAtObject(SPELL_FLAME_WEAPON,GetLast
sedBy());
}


Однако в работающем скрипте есть недостаток. Воспламенение оружия не прекращается ни через минуту, ни через 2 часа. Что делать?
Воспламенение должно длиться 30-40 секунд.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jul 14 2007, 23:05
Сообщение #115


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

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



делать не через магию, а через добавление временного эффекта на предмет.
Что-то типа:
Neverwinter Script Source
void main()
{
object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,GetLastUsedBy());
if (!GetIsObjectValid(oWeapon)) return;
AddItemProperty(DURATION_TYPE_TEMPORARY,ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_FIRE,IP_CONST_DAMAGEBONUS_1d6),oWeapon,40.0);
}

насчет работы под НВН2 не знаю, не могу проверить. Но по идее проблем быть не должно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Валеско
сообщение Jul 15 2007, 09:59
Сообщение #116


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

Класс: Бард
Характер: Chaotic Neutral
Раса: Животное
МАСТЕР Пера



ERROR: UNDEFINED IDENTIFIER
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jul 15 2007, 13:44
Сообщение #117


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

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



2 Валеско, я подправил:

Neverwinter Script Source
void main()
{
object oWeapon = GetItemInSlot
(INVENTORY_SLOT_RIGHTHAND,
GetLastUsedBy());

if (!GetIsObjectValid(oWeapon)) return;
AddItemProperty(DURATION_TYPE_TEMPORARY,
ItemPropertyDamageBonus
(IP_CONST_DAMAGETYPE_FIRE,IP_CONST_DAMAGEBONUS_1d6)
,oWeapon,40.0);
}


PS: дело было в том, что при абзатце, функции "делились", на несколько частей, соответственно скрипт и не составлялся.


Сообщение отредактировал Dik Morris - Jul 15 2007, 13:48
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Drow
сообщение Jul 18 2007, 20:18
Сообщение #118


Level 6
**

Класс: Бледный Мастер
Характер: Lawful Good
Раса: Эльф



Как лучше всего скриптом сделать непися невидимым. В смысле не эффект невидимости, а чтобы непися не было видно в тру сии.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jul 18 2007, 21:15
Сообщение #119


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

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



2 Drow, эх, жаль NWN-2 на компьютере нет (и не горю желанием ее устанавливать) но думаю, EffectVisualEffect и константа VFX_DUR_CUTSCENE_INVISIBILITY, все-таки остались. Так что попробуй использовать их.

Никакие "штатные" средства (ака трусинг или си-инвиз) этот эффект не берут.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tomb
сообщение Jul 23 2007, 23:01
Сообщение #120


Светлый лорд Корелии
Иконки Групп

Класс: Тайный Лучник
Характер: Lawful Good
Раса: Полуэльф
NWN: Тестер



Ребят а кто нить может помочь со скриптом на сундуки для шарда...
Сундук привязан на акк
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jul 24 2007, 06:05
Сообщение #121


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



Tomb, если ты о генерации лута, то можно почитать статью Игроделу. Правда там пробиты шмотки для 1 Невера...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Griffon
сообщение Jul 24 2007, 08:00
Сообщение #122


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

Класс: Страж Тьмы
Характер: True Neutral
Раса: Человек
МАСТЕР D&D



Рандомный генератор лута - подходит как для модуля, так и для шарда. Правда, он написан на выпадение лута с монстров.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tomb
сообщение Jul 24 2007, 11:46
Сообщение #123


Светлый лорд Корелии
Иконки Групп

Класс: Тайный Лучник
Характер: Lawful Good
Раса: Полуэльф
NWN: Тестер



Неа я про сундуки чтобы хранить свой шмот....
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lorendroll
сообщение Jul 24 2007, 12:35
Сообщение #124


Level 9
***

Класс: Волшебник
Характер: Neutral Good
Раса: Эльф



Ну так ты расскажи как именно хочешь чтобы работала твоя система. Если сундук на каждого игрока свой, привязывай SetLocalObject на нужного oPC, а чтобы после рестарта восстанавливать лежащие в сундуке вещи нужно на попадание в сундук вещи запоминать вещь по тегу (StrRef'у? не знаю точно), привязывая SetLocalString на игрока. Но здесь без БД трудно будет, не знаю, есть уже НВНх для НВН2 или нет...
Да или вот пришло в голову интересное решение - завести отдельный модуль-"хранилище". Который просто SaveGame'ить время от времени. Есть ведь возможность переместить игрока в другой модуль скриптом онлайн? Я честно говоря с этим еще не экспериментировал, но должно работать...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tomb
сообщение Jul 24 2007, 13:01
Сообщение #125


Светлый лорд Корелии
Иконки Групп

Класс: Тайный Лучник
Характер: Lawful Good
Раса: Полуэльф
NWN: Тестер



Насколько я помню Ванес писал скрипт с внешней БД
Она работал так
Сундук привязывается к акку шмот по тегу сохраняется во внешней БД
Положил шмот нажал на рычаг и счастье
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
FreemanD
сообщение Aug 10 2007, 11:33
Сообщение #126


Level 2
*

Класс: Рейнджер
Характер: Chaotic Good
Раса: Человек



Люди, помогите чайнику... Я тут где-то напоролся на тему где было упоминание про то как посадить перса на стул, к примеру. Но там было сказано, что скрипты x2_am_sit и еще какой-то, x2_plc_sit кажется, короче они кривые, и их надо дорабатывать. Не могли бы вы мне на пальцах объяснить, что именно с ними надо сделать? и желательно с подробными коменнтариями. А то блин, сделал две табуреточки и пенек, повесил скрипт, помучался, а перс, собака такая, не садится! Стоит около него, на панельке действий висит действие "сесть", и все!!! (IMG:style_emoticons/kolobok_light/vava.gif)

*Ушел в кому*

И такой вопрос: а есть скрипт на действие "Лечь"? Чтобы и на пол, и на кровать, допустим... Я просто сейчас делаю маленький тренировочный модуль, в котором будет все включено, но при этом хочу сделать его максимально качественно и реалистично. Стиль, обстановка, нпсы уже готовы, остались эффекты, диалоги, и вот самая больная тема - скрипты... Хелп... (IMG:style_emoticons/kolobok_light/sad.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Aug 11 2007, 00:04
Сообщение #127


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

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



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

Лечь... Ты видел лежащего НПС в игре?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Guest_NWNmaster_*
сообщение Aug 12 2007, 15:13
Сообщение #128








BAN ME

Сообщение отредактировал NWNmaster - Aug 26 2011, 04:11
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vhall
сообщение Aug 12 2007, 15:33
Сообщение #129


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

Класс: Обыватель
Характер: True Neutral
Раса: Дварф
NWN: Контент



Конечно можно.
Только если анимация колеса будет предварительно прописана в максе и подготовлена для обращения через скрипт. (IMG:style_emoticons/kolobok_light/biggrin.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Griffon
сообщение Aug 13 2007, 08:54
Сообщение #130


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

Класс: Страж Тьмы
Характер: True Neutral
Раса: Человек
МАСТЕР D&D



Цитата(FreemanD @ Aug 10 2007, 12:33) *
вопрос: а есть скрипт на действие "Лечь

Зачем тебе скрипт если есть анимация смерти и НПС падает на пол.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
FreemanD
сообщение Aug 13 2007, 11:41
Сообщение #131


Level 2
*

Класс: Рейнджер
Характер: Chaotic Good
Раса: Человек



Если бы я знал с чего начинать, то начал бы. А так, никакого руководства под руками нет, чтобы азы какие-нибудь получить... Блин... Нырять то в бездну, не зная что там ох как не хочется...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Guest_NWNmaster_*
сообщение Aug 13 2007, 13:10
Сообщение #132








BAN ME

Сообщение отредактировал NWNmaster - Aug 26 2011, 04:11
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
FreemanD
сообщение Aug 16 2007, 10:14
Сообщение #133


Level 2
*

Класс: Рейнджер
Характер: Chaotic Good
Раса: Человек



Цитата
Лечь... Ты видел лежащего НПС в игре?


Я специально еще раз прошел игру, чтобы убедиться, что глаза меня не обманули, и понял, что лежащий нпс в игре есть. Обычно это спящие орки и багберы, в пещерах. Скрин сделать не успел, потому что они вскакивают, и хотят меня побить. (IMG:style_emoticons/kolobok_light/vava.gif)

В редакторе визуальных эффектов обнаружил действие лечь. (LAYDOWN, кажется.) Нпс там берет и реально ложится, правда только на пол, но все равно прогресс. А вот скрипт не нашел. Его реально сделать?

Цитата
Зачем тебе скрипт если есть анимация смерти и НПС падает на пол.


Не катит, мне надо чтобы нпс после того как его растолкают не сваливался с ног как пьяный, а тихо уходил и ложился обратно. Там где лежал.

Цитата
Если бы я знал с чего начинать, то начал бы. А так, никакого руководства под руками нет, чтобы азы какие-нибудь получить... Блин... Нырять то в бездну, не зная что там ох как не хочется...


Беру свои слова обратно, прочитал вики. (IMG:style_emoticons/kolobok_light/prankster2.gif) Нырнул в бездну.

Мне кто-нить объяснит, что со скиптом "сесть" делать? (IMG:style_emoticons/kolobok_light/shout.gif)

Сообщение отредактировал FreemanD - Aug 16 2007, 10:17
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Валеско
сообщение Aug 23 2007, 20:05
Сообщение #134


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

Класс: Бард
Характер: Chaotic Neutral
Раса: Животное
МАСТЕР Пера



Возможно, тут помогут разобраться. Есть скрипт:

Neverwinter Script Source
#include "mf_hench"
#include "c_animations"

void C_GoDown(object oTarget)
{
      float fTiming;
      fTiming = C_CustomAnimationLength(oTarget, "laydownb");
      PlayCustomAnimation(oTarget, "laydownb", 0, 1.0);
    DelayCommand(fTiming, C_PlayCustomAnimation(oTarget, "proneb", 1, 1.0));
}

void main()
{
object oPoint = GetObjectByTag("WP_RIV_AWAY");
object oBoy = GetObjectByTag("RIV_NPC_YOR");
object oBoy2 = GetObjectByTag("RIV_NPC_DAN");
object oMrin = GetHenchmanByTag("DRW_HEN_MRE01");
effect eEffect = EffectSleep();
if (GetHenchValid("DRW_HEN_MRE01"))
    {
    DestroyObject(GetObjectByTag("T_MISC_TAVERN"));
    int i = 0;
    object oObject = GetObjectByTag("T_ALCO_SLEEP",i);
    while (GetIsObjectValid(oObject))
        {
        DestroyObject(oObject);
        i++;
        oObject = GetObjectByTag("T_ALCO_SLEEP",i);
        }
    }
else
    {
    int i = 0;
    object oObject = GetObjectByTag("RIV_NPC_ALR",i);
    while (GetIsObjectValid(oObject))
        {
        AssignCommand(oObject, ActionDoCommand(ApplyEffectToObject(EFFECT_TYPE_SL
EP, eEffect, oObject,99999.0)));
        C_GoDown(oObject);
        i++;
        oObject = GetObjectByTag("RIV_NPC_ALR",i);
        }
    }
DelayCommand(6.0,SetCutsceneMode(GetFirstPC(),FALS
));
AssignCommand(oBoy2, ClearAllActions());
AssignCommand(oBoy, ClearAllActions());
DelayCommand(0.1,AssignCommand(oBoy2, ActionForceMoveToObject(oPoint)));
DelayCommand(0.1,AssignCommand(oBoy,  ActionForceMoveToObject(oPoint)));
DelayCommand(20.0, DestroyObject(oBoy));
DelayCommand(20.0, DestroyObject(oBoy2));
}


Помимо всего прочего отвечающий за то, чтобы персы с тегом RIV_NPC_ALR лежали на полу и не двигались. Все бы хорошо, но скрипт этот работает только в пределах одной локации, в то время как "дрова" лежат на другой... Есть варианты, как это можно поправить?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Aug 24 2007, 06:05
Сообщение #135


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



Цитата
Возможно, тут помогут разобраться. Есть скрипт:


Уходя – уходи!

Цитата
Я не жалею что потратил столько времени на такое бесперспективное и неблагодарное дело как модульмейкинг на НВН2, но жалею, что потратил его в русском комьюнити.

Оскорбив все русское комьюнити, вылив кучу грязи на модмейкеров и скриптеров - просить о помощи???… Вытри слюни и сопли, и будь мужчиной!
P.S. Западло такому человеку помогать… За 3 года мог бы хоть кодами NSS научиться пользоваться…
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

14 страниц V  « < 4 5 6 7 8 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 16th July 2025 - 17:11