Ищи в базе скриптов. Есть кусок кода.
Аваддон
Nov 5 2004, 22:05
Сидел вчера скриптил и вдруг у меня возник комплекс неполноценности...
Я хочу чтобы при активировании одного предмета - игроку открывался инвентарь сундука который стоит в недоступном ему месте. Тоесть кто-то в может в тот сундук положить что захочет а игрок когда активирует предмет ему откроется инвентарь того самого сундука где лежит предмет который кто то положил. Вобщем что то вроде почты

Ну естественно беру команду OpenInventory(GetObjectByTag(ТэгСундука),GetItemActivator());
И нифига...
Теперь вопрос - что я в этой жизни упустил?
хм..как насчет того, что далековато до сундука (в другой локе, или просто растояние большое)
Аваддон
Nov 5 2004, 22:18
Эх, Лекс, ну ведь для других действий то он этот сундук хоть за 22 локи использовать будет. Там же не Nearest:) Пробовал поставить прям рядом. Стою у сундука кликаю на сундук - открывается инвентарь, кладу вещь, использую предмет - инвентарь не вызывается, хоть расшибись.
хм.. (другие действия это фигня, открывай, закрывай его хоть на другом конце модуля. А вот для показа инвентаря они должны быть близко. Посмотри на хенчшу и игрока.)..кстати..может функция только с кричами работает??
Аваддон
Nov 5 2004, 22:27
Лекс да я и с кричами пробовал! И около сундука предмет активировал. И около крича. Вот нет и все тут. Ладно, чем вилами по воде возить лучше подождем пока кто нить справится
попробую дома в своем СоУ 1.32 сделать
Аваддон
Хоть расшибись, но сундук не откроется (точнее не покажет свой инвентарь!), если ты, как чар, будешь дальше "рабочего" экрана от него находится. Это движковое.
Пример. Открой инвентарь хенча, потом скажи ему (с открытым на экране инвентарем!) через радиальное меню, типа: "стой здесь". Отегай по-тихому... инвентарь захлопнется эдак через метров 15...
Аваддон
Nov 6 2004, 17:54
Вот блин

А как можно тогда отсрочить событие CreateItemOnObject? Delay его не берет
QUOTE (Аваддон @ Nov 6 2004, 17:54) |
Вот блин А как можно тогда отсрочить событие CreateItemOnObject? Delay его не берет |
ммм точно ?
у мя в одном месте прошла вот такая несуразная строчка...сработало
DelayCommand(fDelay,ActionGiveItem( CreateItemOnObject(sRezult,oFirst,1),oFirst));
Velteron
Nov 7 2004, 22:55
Привет всем !
Я разработчик модуля "Новое Средиземье" , который расположен по адресу nwn.uagames.com . Т.к я не сильно разбираюсь в скриптах , то ,естественно куча багов . Уже не хватает сил

Скриптер нужен , как воздух . Пожалуйста , если вы можете помочь - пишите мне на мыло chosen5@yandex.ru , либо в форуме
http://members.lycos.co.uk/nmiddle/forums/ .
Сейчас такие проблемы :
При перезаходе у игроков восстанавливаются все ХП и спеллы . Если у игрока ХП от 0 , до -10 , то при переходе жизни восстанавливаются . Пробовал сделать блягодаря камню смерти , но вышло хуже некуда

Не удаляется лут . После дня работы лута становиться так много , что сильно лагает
Еще есть ряд других проблем
Please Help !
н, АНЦЮРШЕ ЛСДПНЯРЭЧ Х ОНАЕДЮЛХ МЮД ЛНМЯРПЮЛХ, ОНЛНЦХРЕ ЛМЕ Я УЕМВЛЕМЪЛХ, ОНФЮКСИЯРЮ. ЙЮЙ ДНАЮБХРЭ Й цц БРНПНЦН УЕМВЛЕМЮ? ю КСВЬЕ, Х РПЕРЭЕЦН. с ЛЕМЪ ЯРНХЪР нПДШ юМДЕПДЮПЙЮ Х РЮЛ УЕМВЛЕМНБ ЛНФЕР АШРЭ ДБНЕ, Ю ХМНЦДЮ Х РПНЕ, МН Б ЛНДСКЕ ЯРЮМДЮПРМШИ ЯЙПХОР МЕ ОПНУНДХР - бШДЮЕРЯЪ ЯННАЫЕМХЕ Н РНЛ, ВРН ЛНФМН ХЛЕРЭ РНКЭЙН НДМНЦН УЕМВЛЕМЮ.
Добавлено в [mergetime]1099878319[/mergetime] O-O--ps!!!!...
Sory!
It must be some encoding prblems/
I mean, how to get more than one henchman? I'got HoA but standart scrit don/work correct/
Аваддон
Nov 8 2004, 08:18
QUOTE (Velteron @ Nov 7 2004, 22:55) |
Сейчас такие проблемы : При перезаходе у игроков восстанавливаются все ХП и спеллы . Если у игрока ХП от 0 , до -10 , то при переходе жизни восстанавливаются . Пробовал сделать блягодаря камню смерти , но вышло хуже некуда Не удаляется лут . После дня работы лута становиться так много , что сильно лагает |
Хе-хе-хе... Это еще не проблемы....

Обращайся в тему
Вопросы от самых маленьких,чтоль. Поможем чем можем:) На счет спеллов и хит-поинтов, вроде
_kaa_ скрипт выкладывал, там где они заносятся в базу данных.
Маэв Лютина
Nov 10 2004, 07:14
Помогите, пожалуйста! Присоединился ко мне НПС, ходит за мной с момента присоединения только до тех пор, пока я не выйду в другую локацию. Он, во первых - выйти не может, а во вторых, даже если я захожу обратно - не обращает на меня внимания. Однако остается присоединенным... Как это лечится и, если можно, поясните, что я сделала не так?
Аваддон
Nov 10 2004, 07:42
С хенчами это к ДБ...
2 Маэв Лютина,
Посмотри в настройках твоего хенчмена, вкладка скриптов(в моей версии зовется "письмена"), Там должны быть особы скрипты хенчмена, иначе он тебя слушаться не будет. Может, в этом твоя проблема?
А моя проблема это тоже хенчмен, второй. Эта сволоч не присоединается ни AddHenchman(GetPCSpeaker(), OBJECT_SELF) ни HireHenchman(GetPCSpeaker()); вместо присоединение выдает сообщение, о том, что я могу иметь только одного, хотя "Орды" у меня стоят, а там и три хенчмена сразу бывают.
У меня на этом сюжет модуля завязан!
К стати, кто-ни будь знает, чем эти две функции отличаются. (понадобилось ведь разработчикам придумывать вторую...)
Маэв Лютина
Nov 11 2004, 03:53
Q'elt'rine Я дома проверю в этом ли...Так что - посмотрим. По твоему вопросу даже не могу пока ничего посоветовать - у меня тоже кроме одного никто не присоединяется, хотя у меня сюжет на этом не завязан. Благодарю за советю
Добавлено в [mergetime]1100134524[/mergetime] Q'elt'rine Есть еще одна неувязка - для того, чтобы он ходил следом приходится каждый раз с ним заговаривать...Досадно(
QUOTE (Маэв Лютина @ Nov 11 2004, 06:53) |
Q'elt'rine Есть еще одна неувязка - для того, чтобы он ходил следом приходится каждый раз с ним заговаривать...Досадно( |
Он у тебя не хеньм. Твой скрипт не верный. Там надо не число хеньчмов указывать а его самого как объект. Либо не указыват вообще. Тогда по умаолчанию это OBJECT_SELF. Смотри свою тему...
Добавлено в [mergetime]1100141543[/mergetime]
QUOTE (Q'elt'rine @ Nov 11 2004, 06:20) |
А моя проблема это тоже хенчмен, второй. Эта сволоч не присоединается ни AddHenchman(GetPCSpeaker(), OBJECT_SELF) ни HireHenchman(GetPCSpeaker()); вместо присоединение выдает сообщение, о том, что я могу иметь только одного, хотя "Орды" у меня стоят, а там и три хенчмена сразу бывают. |
Такое моно только в ХОТУ с 1.59 версии. А у тебя 1.30

Патчуй...
Маэв Лютина
Nov 11 2004, 07:09
Q'elt'rine Проверила. Выставила скрипты хенчмена. Входит и выходит - замечательно выходит! Однако пока не кликнешь "следовать", стоит и смотрит на меня очень внимательно...чувство, надо сказать, возникает довольно забавное...
Добавлено в [mergetime]1100146229[/mergetime] И вот ведь вопрос: что делать?
Аваддон
Nov 11 2004, 08:54
QUOTE (Q'elt'rine @ Nov 11 2004, 03:20) |
ни HireHenchman(GetPCSpeaker()); |
А почему у меня такой функции нет?
QUOTE (Маэв Лютина @ Nov 11 2004, 07:09) |
пока не кликнешь "следовать", стоит и смотрит на меня очень внимательно... |
А может на завершении ветки диалога после AddHenchman надо выполнить им команду ActionForceFollowObject ?
QUOTE (Аваддон @ Nov 11 2004, 11:54) |
А почему у меня такой функции нет? |
Эта функция из инклюды Биовар. Ее нет в природе.
QUOTE (Аваддон @ Nov 11 2004, 11:54) |
А может на завершении ветки диалога после AddHenchman надо выполнить им команду ActionForceFollowObject ? |

Ты что! НЕТ!
Каждая опция хеньма, задается ЧЕРЕЗ ДИАЛОГ! Не только скрипты на хеньчмана надо но и его диалог. Вот там и регулируется, расстояние между тобой и ним, его поведение, воровские умения и прочая муть. Ясно?
Добавлено в [mergetime]1100157820[/mergetime] Типа, вешается локалки разные и после этого скрипты на хеньчмане задают им поведение нужное для тебя...
Aiwan
А почему у меня в ХОТУ такое спокойно делается?
Маэв Лютина
На счет этого - не знаю, по крайней мере - пока не знаю.
Да и не принципиально это, по моему.
QUOTE (Q'elt'rine @ Nov 11 2004, 19:50) |
А почему у меня в ХОТУ такое спокойно делается? |
Ну естественно он будет бегать за тобой, но тупо не как Хеньч. Понятно?

Даже если он хеньч, то его параметры надо через скрипты Биовар натраивать в зависимости от них работают скрипты НА САМОМ ХЕНЬЧМАНЕ. Ясно?
Aiwan
я имел в виду, почему в ХОТУ сразу два три хенчмена бывают.
QUOTE (Q'elt'rine @ Nov 12 2004, 05:24) |
я имел в виду, почему в ХОТУ сразу два три хенчмена бывают. |
Потаму что в ХоТУ добавленно новое в том числе, тайлы,
функции скриптинга, и т.д. Только в движке ХотУ это добавлено и в скриптинг. Понятно?
Aiwan честно говоря, нет

.
Ну да ладно, скоро я патч поставлю... По крайней мере, я на это расчитываю...
Еще такой вопрос, кто - нибудь знает, как создавать особые возможности у артефактов, вроде тех каковые дают в начале теней андертайда? Вопрос в том, как скрипты привязываются к предметам.
|REZIDENT|
Nov 12 2004, 09:45
Помогите пожалута скриптом.
Нужно усадить НПС на стул, стол, кровать хоть куда нибудь (тока не на пол).
Нужно как то указать сам обьект на которые будет усажен НПС и самомго НПС.
Саму анимацию присаживания я заню, только эта сволочь (НПС) никак не хочет садится на заданный обьект. Либо его в сторону относит постоянно от стула, либо он вообще исчезает кудато.
вопрос...
если две ситуации...
1. работает постоянно скрипт, который выболняет каждые N секунд определенные действия (вроде харбитного, тока интервалы времени, через которое скрипт запускается можно менять). Действий, допустим, всего 3: подсчет и сохранение в локальную переменную модуля постоянно изменеющихся данных, "опрос" локальных переменных на определенном кол-ве объектов, ну и, скажем, небольшой дебаговый скрипт, использующий 2-3 простеньких функции...
2. есть 3 подобных скрипта, каждый из которых выполняет отведенное ему действие... В данном случае скрипты выполняются с промежутком в 2 секунды, сначала первый, потом второй, потом третий, потом снова первый и т.д.
И в первом, и во втором случае скрипты постоянно опрашиваются харбитом модуля на одну или несколько переменных...
в общем хочу узнать, какой из вариантов будет "кушать" меньше ресурсов ???
даже если разница незначительна - для меня она имеет значение
ну и сразу еще вопросик на ту же тему... если действий (а значит и скриптов во втором случае) не 3, а скажем 10... как изменится ситуация ???
|REZIDENT| разговор неконкретный. Вот почему... Ты просишь выправить ситуацию, в которой неизвестный НПС не может семть на неизвестный стул. КОД В ССТУДИЮ!

Что бы разобраться с твоей ошибкой нужно посмотреть твою домашнюю работу. И так на будущее всех касается. Есть ошибка? Кидайте код. Жду
QUOTE (Q'elt'rine @ Nov 12 2004, 11:11) |
Вопрос в том, как скрипты привязываются к предметам. |
Сделай предмет используемым в свойствах, там где все свойства: спеллы, вес и прочее. Дальше напиши скрипт ему и при использовании на слоте в модуле OnActivateItem
QUOTE |
The OnActivateItem Event fires whenever a player uses an item via its "Activate Item" radial menu option. |
При использовании этого предмета сработает скрипт.
Приветствую...
Подскажите как можно получить ПС, который пытается открыть закрытую дверь. Мой вариант скрипта висит на onfailtoopen и не дает ПС
CODE |
object oPC = GetLastUsedBy();
if (GetLocalString( oPC,"PlayerName") != GetName(oPC))
{ SetLocalString( oPC,"PlayerName", GetName(oPC)); SetLocalInt(GetModule(), "SomeOneTryOpen", TRUE); SetLocalObject(GetModule(), "oPC", oPC); } else SetLocalInt(GetModule(), "SomeOneTryOpen", FALSE);
|
Скрипт проверяет пытался ли открыть дверь кто-нибудь если нет то задет глобальную переменую..., проблема не в проверке пс это или нет а в возможности получить того кто тыкает на закрытую дверь.
Neverwinter Script Source |
if(GetIsPC(oPC).... |
Вот так проверить можно и НУЖНО.
Добавлено в [mergetime]1100264876[/mergetime]
И вообще, скажи ЗАЧЕМ это скрипт. Задачу и конкретней обрисуй. Я может тебя не понял...
|REZIDENT| предложу такой вариант:
на OnSpawn НПС
CODE |
void main() { object oCreature = GetObjectByTag("тэг_существа"); object oChair = GetObjectByTag("тег_стула"); AssignCommand(oCreature,ActionSit(oChair)); } |
Если игрок попробует с ним заговорить(разговора нет) то НПС встанет, чтобы не вставал ставь этот же скрипт на OnConversation
Я выяснил, в чем прикол с хенчменами. Это не сверсией игры связанно.
В HotU в свойствах модуля в графе onModuleLoad стоит скрипт в котором встречается строчка SetMaxHenchmen(3);
Все дело в ней. Я сделал скрипт, отличающегося от стандартного, стоящего по умолчанию в onModuleLoad, только наличием этой строчки. И теперь у меня в модуле может быть до трех хенчменов одновременно.
к стати, в том скрипте лежит невключенным много интересного, например можно включить действие фаерболов на нейтральных персонажей.
Теперь у меня другой вопрос (у меня всегда будут вопросы

) как скриптом убить персонажа. Не стереть а именно убить (чтоб кровью истек и умер в мучениях

)?
Наверно, это просто, но я не догоняю.
Аваддон
Nov 14 2004, 07:34
Дык есть такая вещь
Neverwinter Script Source |
// Create a Death effect // - nSpectacularDeath: if this is TRUE, the creature to which this effect is // applied will die in an extraordinary fashion // - nDisplayFeedback effect EffectDeath(int nSpectacularDeath=FALSE, int nDisplayFeedback=TRUE) |
Вот и накладываешь ее на персонажа функцией ApplyEffectToObject
Как присвоить диалог фамильяру или саммоненному животному? Чтобы можно было поговорить с ним и послать куда надо
QUOTE (gor @ Nov 15 2004, 05:57) |
Как присвоить диалог фамильяру или саммоненному животному? Чтобы можно было поговорить с ним и послать куда надо |
Обычно у фамильяра уже есть диалог. Он ведь кастуется из палитры. Но можно любой другой например так:
Neverwinter Script Source |
ActionStartConversation(oPC, "имя_диалога_из_палитры") |
Добавлено в [mergetime]1100531723[/mergetime]
Такой командой можно заставить говорить с заданным диалогом из палитры. Просто вставь его имя.
elf-demon
Nov 15 2004, 18:37
Aiwan
у вас на сайте статья прикольная про скрипты а то я вних не очень допираю=(
Так вот статья - "Aurora Toolset" Описание функций тулсета.
Там только часть 1 аь остальные? не мог бы дать мне все? либо суда на флрум скинь ссылки либо на мыло -
elf-demon@yandex.ru
Cпасибо!
2 Q'elt'rine
Поставил патч?Ж) То биш - достал ли где nwmain.exe или таки качал ребилд?
Гор, файлы часто попадаются на крупных шардах или порталах где есть НВН. Поищи...
Lemegeton
Nov 20 2004, 16:20
Подсобите, кто-нить.
Нужно "затемнить" сцену чтобы ничего видно не было, кроме диалогов.
Делаю раз:
CODE |
void main { object oPC = GetPCSpeaker(); effect eDark = EffectVisualEffect(VFX_DUR_BLACKOUT); ApplyEffectToObject(DURATION_TYPE_INSTANT, eDark, oPC); } |
(Кусок кода. По событию от диалога.)
Делаю два: компайл саксессфул 0 еррорз.
Делаю три: Тест.
Результат: НЕ ПАШЕТ. Совсем.
Не работает эффект VFX_DUR_BLACKOUT ! Почти все остальные работают, а этот - нет. В чем загвоздочка - то ?
Mihason
Nov 20 2004, 19:10
народ скрипт нужен!!!
Мишень для лука .... нажимаеш взламать ... и надо чтобы при каждом выстреле давался 1 ехп .... любому лвл ... можете помоч??И как сделать чтобы при ипользавание он выбирал команду взломать?
И как сделать чтобы после того как ты открыл дверь она акрывалась через 2 сек?
На OnDamaged мишени ставишь скрипт, в нем пишешь
Neverwinter Script Source |
const int XP =1;
void main()
{ object oPC = GetLastDamager(OBJECT_SELF);
if (!GetIsPC(oPC)) {
return;
}
GiveXPToCreature(oPC, XP); } |
Mihason
Nov 20 2004, 20:17
помогите плз срочно надо ...
QUOTE (Mihason @ Nov 20 2004, 22:10) |
И как сделать чтобы после того как ты открыл дверь она акрывалась через 2 сек? |
На OnOpen двери ставь.
Neverwinter Script Source |
void main() { object oPC = GetLastOpenedBy(); object oDoor = OBJECT_SELF; if (!GetIsPC(oPC)) { DelayCommand(7.0f, ActionCloseDoor(oDoor)); return; } AssignCommand(oDoor, ActionWait(2.0)); AssignCommand(oDoor, ActionCloseDoor(oDoor)); } |
Ilharess
Nov 21 2004, 00:09
AssignCommand(oDoor, ActionCloseDoor(oDoor)); не нужно связывать она и так закроется ActionCloseDoor(oDoor));
Добавлено в [mergetime]1100985220[/mergetime] Хотел сделать проверку на каст спела в арии, и вот что пришло в голову.. можно ли так или есть лучше способы?
На онхб арии
CODE |
object oLastSpellCaster = SetLocalObject(GetModule(), GetName(GetLastSpellCaster()), GetLastSpellCaster()); |
А у нпс на onPerception
CODE |
if (GetLastPerceived() == oLastSpellCaster) { if (GetLastPerceptionSeen()) { действия нпс
|
И где про NW_FLAG.. посмотреть можно?
И еще

если на пути нпса попадается закрытая дверь, то он пытается сломать ее, можно ли сделать что бы он сначала пробывал открывать ее (хочу что бы работал onfailtoopen) или это уже ядро?
Mihason
Nov 21 2004, 00:28
как сделать чтобы при нажатии использовать переходило на каманду взломать?(нажимаеш использовать а он ломает ....)
И еще ... Я сделал чтобы дверь закрывалась через 2 сек ... но как сделать чтобы она была закрта вобще( чтобы нужен был ключь чтобы открыть) какбы 1 раз откываеш ключем и она закрывается ... и чтобы 2 раз опять ключ надо было ...
Elven king
Nov 21 2004, 01:48
QUOTE (Mihason @ Nov 21 2004, 00:28) |
И еще ... Я сделал чтобы дверь закрывалась через 2 сек ... но как сделать чтобы она была закрта вобще( чтобы нужен был ключь чтобы открыть) какбы 1 раз откываеш ключем и она закрывается ... и чтобы 2 раз опять ключ надо было ... |
В своойствах двери выбираешь закладку Lock, далее ставишь галочку около lock потом около can be relocked, далее key required to unlock lock в поле key tag пишешь тэг ключа, которым будет открываться дверь, вот и все.
gor Извиняюсь, что так поздно отвечаю, - скачал ребилд с сайта Игромании - не я. есть друзья с нелимитированым нетом. А потом скачал no cd. Еть же тема про это.
- это было не в тему. а в тему:
Старая песня про усаживание персонажей на стул.
мой скрипт вглядит так
void main()
{
object oChair = GetNearestObjectByTag("seatable");
AssignCommand(OBJECT_SELF, ActionSit(oChair));
}
записывается в OnSpawn(если бы еще кто сказал. когда эта штука - OnSpawn - срабатывает, было бы совсем хорошо

) но персонаж перед разговором вскакивает, а если этот же скрипт положить и в OnConversation, то просто никакого разговора не будет - персонаж никак на клики не реагирует.
И еще, произошел у меня странный эффект замещения
Было два хенчменя и один зверь, вызванный хенчменом. Присоединяется еще один хенчмен, но почемуто тутже отсоединяется другой. Хтоя я прописал количество хенчменов равным трем. Что за фигня такая? Изза зверя чтоли?
Mihason
Nov 21 2004, 10:21
QUOTE |
В своойствах двери выбираешь закладку Lock, далее ставишь галочку около lock потом около can be relocked, далее key required to unlock lock в поле key tag пишешь тэг ключа, которым будет открываться дверь, вот и все. |
У меня на русском. Но я так понел что ключь будет проподать?
Мне надо чтобы ключь не пропадал и дверь после 2 сек закрывалась на замок.
Elven king
Nov 21 2004, 12:27
QUOTE (Mihason @ Nov 21 2004, 10:21) |
Но я так понел что ключь будет проподать? |
нет он не будет пропадать...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.