![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3241
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Я нигде не нашел, как проверять, какой уровень моего персонажа. Мне нужно, чтобы диалог с одним персонажем проходил следуюшим образом: Сначала он дает мне задание на ковку меча, и на тренеровку моих навыков, а потом на 3ем уровне он просит меня разобраться с ограми.
Мастер скриптов неправильно пишет мне скрипт, или просто не работает... |
![]()
Сообщение
#3242
|
|
Level 2 ![]() Класс: Оборотень Характер: Lawful Good Раса: Человек ![]() |
Помоему функция
Neverwinter Script // Получает число броска хитов (hitdice) для oCreature, что является его уровнем. // * Возвращаемое значение, если oCreature - невалидное существо: 0 int GetHitDice(object oCreature); Комментарии мои, сам я ею не пользовался и как то дело не доходило, чтобы проверить, чтоже она возвращает, но по слухам вроде оно |
![]()
Сообщение
#3243
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Ладно, вроди сделал пальцем скрипт, и боевая задача была решена=)
Но теперь новая проблема: я ненашел в базе скриптов следующего: НПС подходит и начинает разговор. Чтото помню, было такое... но невспомню, где видел... А такая фишка нужна мне уже в 2х местах... Сообщение отредактировал GoOfs - Mar 31 2010, 18:49 |
![]()
Сообщение
#3244
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Влей мой модуль ПВ, там куча стандартных триггеров и скриптов в палитре, с описанием. Почитай и попробуй. На них работает весь модуль.
|
![]()
Сообщение
#3245
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Aiwan, благодарю! Думаю это привнесет в мой мод немного большее, чем я жду от ХотУ и СОУ. Я достаточно долго искал Хакпаки для нвн, и наконец то их нашел. А есть ли еще другие паки? Ну чтобы выбор был побольше.
|
![]()
Сообщение
#3246
|
|
Level 18 ![]() Класс: Страж Тьмы Характер: True Neutral Раса: Человек МАСТЕР D&D ![]() |
GoOfs, на nwvault.ign.com, правда все на английском.
|
![]()
Сообщение
#3247
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Neverwinter Script void main() { object oWP = GetNearestObjectByTag("Point_"+GetTag(OBJECT_SELF)); object oPC = GetFirstPC(); object oSelf = OBJECT_SELF; int iFIRST_TIME = GetLocalInt (oSelf, "FIRST_TIME"); if (iFIRST_TIME = 1) { AssignCommand(oSelf, ActionMoveToObject(oPC, TRUE, 0.1)); AssignCommand(oSelf, ActionStartConversation(oPC, "111", FALSE, FALSE)); AssignCommand(oSelf, ActionWait(15.0)); SetLocalInt (oSelf,"FIRS_TIME", 0); } else { AssignCommand(oSelf, ActionMoveToObject(oWP, TRUE, 0.1)); } } Скрипт должен: 1)отправить НПС к игроку 2)начать диалог с игроком 3)уйти на точку и стоять там, ожидая возвращения игрока. Вроди и работает скрипт, но собака, нехочет 2ую часть выполнять(та что после else)... В чем проблема? Как её решить? Может какието конфликты с слотом OnPerception?.. Уже 2ой день маюсь, бьюсь над этим скриптом, все никак не выходит... Сообщение отредактировал GoOfs - Apr 5 2010, 18:21 |
![]()
Сообщение
#3248
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Надо
Neverwinter Script if (iFIRST_TIME == 1) То, что написал ты - это присваивание, оно всегда возвращает 1.
Сообщение отредактировал Ilerien - Apr 5 2010, 18:45 |
![]()
Сообщение
#3249
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Ilerien, благодарю, без этого бесспорно мой скрипт бы и не заработал. проверял=)
Но я сам нашел ошибку. Это была банальная опечатка. --- Еще один такой вопрос: как непися отправить в тартарары, или просто убить. Моя задача сейчас Отправить непися к игроку. Поговорив с неписем, последний должен уйти и либо умереть и воскреснуть в близлежащей таверне, либо портануться в ту же таверну. Сообщение отредактировал GoOfs - Apr 7 2010, 16:17 |
![]()
Сообщение
#3250
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
на слот end conversation (слот этот ищи в диалоге, там в одной из закладок справа внизу) ставь скрипт с телепортом игрока.
|
![]()
Сообщение
#3251
|
|
Level 1 Класс: Монах Характер: Chaotic Good Раса: Эльф ![]() |
Всем привет.
Я только-только начал практиковаться в скриптописании под первый NWN, но продвижения пока не большие. Сейчас появилось пару вопросов. 1. Хочу реализовать следующую ситуацию: Главный Герой обыскивает труп и находит ключевой предмет. Предмет он кладет к себе в инвентарь. Как только предмет оказывается в инвентаре, происходит проверка не его наличие. Если TRUE, то генерятся монстры из палитры и расставляются не далеко от Главного Героя. Затем, нападают на него. 2. Хочу реализовать следующую ситуацию: Стоит колодец. Главный Герой взаимодействует с колодцем (юзает, кликает на него), после чего переносится в другую область. По прибытии в новую область, герою наносится однократное повреждение и вычитается определенное количество хит пойнтов. Ситуация как-бы иллюстрирует, что Главный Герой провалился в колодец и ушибся. На форуме я ничего подходящего к сожалению не нашел. Если кому не трудно, напишите пожалуйста такие скрипты и //прокомментируйте для пущей пользы в изучении. |
![]()
Сообщение
#3252
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Писать ничего не буду, но:
1) Обрати внимание на модульное событие onAcquireItem и функции GetModuleItemAcquired/GetModuleItemAcquiredBy, GetItemPossessedBy, CreateObject; 2) Событие onUsed, функции GetLastUsedBy, JumpToLocation и иже с нею, EffectDamage, GetCurrentHitPoints, ApplyEffectToObject |
![]()
Сообщение
#3253
|
|
Level 5 ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Good Раса: Человек ![]() |
переносит игрока в точку и уронит, и уронит на колени
на OnUsed Neverwinter Script object oPC = GetLastUsedByObject();
AssignCommand(oPC, ClearAllActions());// отменяем все действия AssignCommand(oPC, JumpToObject(GetObjectByTag("ТЭГ ОБЪЕКТА")) );//кидаем в точку effect eDamage = EffectDamage(d10());// 1д10 дОмага DelayCommand(5.0f, ApplyEffectToObject(DURATION_TYPE_INTSTANT, eDamage, oPC)); DelayCommand(5.1f, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectKnockdown(), oPC, 6.0f)); Сообщение отредактировал Laajin - May 19 2010, 08:46 |
![]()
Сообщение
#3254
|
|
Level 1 Класс: Волшебник Характер: Chaotic Evil Раса: Эльф ![]() |
мастера помогите
делают мод, Колизей. В принципе понятно в чем он заключается, ГГ является рабом которого заставляют драться на арене проблема в том что не могу сделать народ - зрителей, охота чтобы они кричали орали( что уже сделано) и двигались а не стояли как истуканы. Как осуществить их постоянную анимацию??? пожалуйста помогите |
![]()
Сообщение
#3255
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
см. функцию ActionPlayAnimation()
в принципе можно на ХБ НПС написать простенький скрипт, который будет заставлять проигрывать НПС рандомную анимацию. |
![]()
Сообщение
#3256
|
|
Level 1 Класс: Волшебник Характер: Chaotic Evil Раса: Эльф ![]() |
а можешь написать этот скриптик??? и куда его поставить надо??? плззз
|
![]()
Сообщение
#3257
|
|
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
Neverwinter Script void main() int iEmotion; int iAnimation; string sVoice; iEmotion = d6(); switch (iEmotion) { case 1: iAnimation = ANIMATION_FIREFORGET_SALUTE; sVoice="bla bla bla"; break; case 2: iAnimation = ANIMATION_FIREFORGET_DRINK; sVoice="bla bla bla"; break; case 3: iAnimation = ANIMATION_FIREFORGET_TAUNT; sVoice="bla bla bla"; break; case 4: iAnimation = ANIMATION_FIREFORGET_VICTORY1; sVoice="bla bla bla"; break; case 5: iAnimation = ANIMATION_FIREFORGET_VICTORY2; sVoice="bla bla bla"; break; case 6: iAnimation = ANIMATION_FIREFORGET_VICTORY3; sVoice="bla bla bla"; break; } AssignCommand(OBJECT_SELF, ActionPlayAnimation(iAnimation)); AssignCommand(OBJECT_SELF, ActionSpeakString(sVoice, TALKVOLUME_SHOUT)); } В свойствах создания есть вкладка скриптов, a там на OnHeartBeat |
![]()
Сообщение
#3258
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
ток я бы сделал не d6, а d8 Чтобы они не каждые 6 секунд все дергались, а иногда стояли "столбом". И если фразы не четко привязаны к анимации (пересекаются со смыслом анимации), то для текста я бы сделал отдельный свич (дабы комбинаций анимация-текст было бы больше). Но это косметика, а в целом Batkom написал все верно.
Только AssignCommand(OBJECT_SELF, - делать не нужно, можно сразу Neverwinter Script ClearAllAcations(); // ну эт для подстраховки, мало ли что. ActionPlayAnimation(iAnimation); ActionSpeakString(sVoice, TALKVOLUME_SHOUT); и заводить переменную для свича не обязательно, достаточно switch d6() |
![]()
Сообщение
#3259
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Лёш, все верно написал, но тут еще конь не валялся, т.ч. Devstvenik, посмотри еще здесь и напиши, что тебе конкретно нужно: http://remmgen.narod.ru/tscript3.html#SC_HB
Сообщение отредактировал gennady - Sep 4 2010, 16:25 |
![]()
Сообщение
#3260
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Понятно, что тут еще есть куда двигаться (я в базе выкладывал шаблон для имитации разговора нескольких НПС с фразами и анимацией. Тут вприцнипе тоже самое). Но этим уже автор заниматься должен сам, если оно ему надо. Кстати именно в данном случае, такого решения вполне достаточно, имхо. Это фон, и поэтому дополнительные затраты времени на такие скрипты не стоят потраченных усилий.
|
![]()
Сообщение
#3261
|
|
Level 18 ![]() Класс: Страж Тьмы Характер: True Neutral Раса: Человек МАСТЕР D&D ![]() |
Для колизея можно добавить и
ANIMATION_LOOPING_MEDITATE ANIMATION_LOOPING_TALK_FORCEFUL с заданием времени float fDurationSeconds = 0.5f |
![]()
Сообщение
#3262
|
|
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
Только AssignCommand(OBJECT_SELF, - делать не нужно, можно сразу .... и заводить переменную для свича не обязательно, достаточно switch d6() Вот это не знал, спасибо. Кстати, так подумал, десяток ниписей в таком колизее мгновенно загадит весь чат. Стоит сделать проверку Neverwinter Script if (d6()>5) ActionSpeakString(sVoice, TALKVOLUME_SHOUT); Можно спикстринг заменить на Neverwinter Script PlayVoiceChat(VOICE_CHAT_BATTLECRY1); или что-то другое из группы VOICE_CHAT_* У меня есть вопрос: Сейчас пишу пресловутый распорядок дня для неписей. Имею два пути решения. 1) на onhb у каждого npc стоит проверка времени(day/night) и если никого нет в локации, а ему пора спать, он тихо - мирно прыгает домой.(все равно у npc что-то исполняется на onhb, почему бы не добавить туда еще...) 2) на onhb у плейсибла стоит проверка времени и таблица npc, которым нужно приказать спать. Если проверка успешна, плейсибл обзванивает всех ниписей и расставляет их по домам. Так, как это дело пишется для шарда, то самое важное тут - быстродействие. Так вот, что будет работать быстрее? Сообщение отредактировал Batkom - May 24 2010, 16:40 |
![]()
Сообщение
#3263
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Быстрее в хб непися, на плейсе или локе лишние ресурсы хавает обход неписей.
Для какого шарда, если не секрет? Сообщение отредактировал Ilerien - May 24 2010, 18:12 |
![]()
Сообщение
#3264
|
|
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
В том то и вся соль, обход неписей по идее должен совершаться два раза в сутки.
[измините за оффтоп, лирика] Собственный модуль, не привязанный к забытым королевствам. Когда-то держал в локальной сети скромненький шардик, менее, чем на сто локаций с несбалансированным рулесетом. Было весело, но года через три шард загнулся. Сейчас вот довожу до ума правила, выкидываю чужие хаки, (из гемовского хака я правда оставил чудную башню и холмики, надеюсь, никто обижаться не будет) рисую локации, балансирую спавны. Акцент собираюсь делать на динамических головоломках в данжах и активном участии ДМ в игре. Как доваяю до той кондиции, чтобы не стыдно было сервер запускать, выпущу в большой мир. [/измините за оффтоп, лирика] |
![]()
Сообщение
#3265
|
|
Отверженный ![]() ![]() ![]() ![]() Класс: Теневой Танцор Характер: Neutral Good Раса: Баатезу ![]() |
[измините за оффтоп, лирика] Собственный модуль, не привязанный к забытым королевствам. Когда-то держал в локальной сети скромненький шардик, менее, чем на сто локаций с несбалансированным рулесетом. Было весело, но года через три шард загнулся. Сейчас вот довожу до ума правила, выкидываю чужие хаки, (из гемовского хака я правда оставил чудную башню и холмики, надеюсь, никто обижаться не будет) рисую локации, балансирую спавны. Акцент собираюсь делать на динамических головоломках в данжах и активном участии ДМ в игре. Как доваяю до той кондиции, чтобы не стыдно было сервер запускать, выпущу в большой мир. [/измините за оффтоп, лирика] Желаю удачи. (IMG:style_emoticons/kolobok_light/good.gif) Сообщение отредактировал virus_found - May 24 2010, 22:05 |
![]() ![]() |
Текстовая версия | Сейчас: 8th May 2025 - 13:36 |