![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#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 |
![]()
Сообщение
#3266
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата В том то и вся соль, обход неписей по идее должен совершаться два раза в сутки. Хм, туплю. В таком случае лучший выход - это псевдохертбит на модуле или локе (ну или на плейсе, но лока лучше) с задержкой, равной половине суток.Мне это видится так - на загрузке модуля запускается таймер (псевдохербит на малый отрезок времени - раунд или секунду, как удобнее). Когда таймер видит, что время суток сменилось (достигается это с помощью локалки), выкидывается модульный эвент, в обработчике которого перебираются все локи, и для каждой локи происходят соответствующие действия с помеченными неписями. Я бы оформил это как отдельный скрипт, запускаемый из модульного эвента на локе. Цитата (из гемовского хака я правда оставил чудную башню и холмики, надеюсь, никто обижаться не будет) Velmar's Tower 2х2 из Rural+City? (IMG:style_emoticons/kolobok_light/smile.gif)
Сообщение отредактировал Ilerien - May 25 2010, 01:30 |
![]()
Сообщение
#3267
|
|
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
|
![]()
Сообщение
#3268
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Не знаю как для шарда, а для сингла я писал и на ХБ НПС и на ХБ плейсов. Но прыжки тупили, лучше использовать copy, но и тут есть свои нюансы... Хотя, функция получилась нормальная, можно весь мод впихнуть на один ХБ плейса. Если интересно могу выложить.
|
![]()
Сообщение
#3269
|
|
Level 2 ![]() Класс: Рейнджер Характер: Neutral Evil Раса: Эльф ![]() |
Люди, пожалуйста, помогите: как организовать провал заклинания на всю локацию? Что нужно прописать? Чтобы даже мельчайшие магические атрибуты исчезали.
|
![]()
Сообщение
#3270
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата Люди, пожалуйста, помогите: как организовать провал заклинания на всю локацию? Что нужно прописать? Повесить на локу переменную и проверять её в спеллхуке.Цитата Чтобы даже мельчайшие магические атрибуты исчезали. Вот этого не понял. Стандартные средства позволяют сделать провал заклинаний и только заклинаний.
|
![]()
Сообщение
#3271
|
|
Level 2 ![]() Класс: Рейнджер Характер: Neutral Evil Раса: Эльф ![]() |
О, уи. Я просто имел в виду подобие Пещеры Бехолдеров из Hotu- там, помнится, Лук "Вечность" и Энсеррик лишились своих чудотворных свойств.
О, уи. Я просто имел в виду подобие Пещеры Бехолдеров из Hotu- там, помнится, Лук "Вечность" и Энсеррик лишились своих чудотворных свойств. А за совет спасибо. |
![]()
Сообщение
#3272
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата О, уи. Я просто имел в виду подобие Пещеры Бехолдеров из Hotu- там, помнится, Лук "Вечность" и Энсеррик лишились своих чудотворных свойств. Способ для сингла есть - собственно, стащить скрипты из кампании. Не смотрел, как это реализовано, но, полагаю, проходом по инвентарю и удалением большинства свойств со всех предметов.
|
![]()
Сообщение
#3273
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
если именно в локе - проще сделать 100% шанс провала закла в параметрах данной локации. Оно там же, где имя локи, тэг и тд.
|
![]()
Сообщение
#3274
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата если именно в локе - проще сделать 100% шанс провала закла в параметрах данной локации. Оно там же, где имя локи, тэг и тд. Я что-то в этой жизни пропустил? (IMG:style_emoticons/kolobok_light/shok.gif) Нет такого в параметрах локи, хоть убей.
|
![]()
Сообщение
#3275
|
|
Level 5 ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Good Раса: Человек ![]() |
может быть, имеется ввиду % помех в свойствах локации?
но там эти помехи вроде бы для навыков вида выслушивать/прятаться Сообщение отредактировал Laajin - May 26 2010, 13:23 |
![]() ![]() |
Текстовая версия | Сейчас: 28th April 2025 - 02:24 |