Помощь - Поиск - Пользователи - Календарь
Полная версия: ОДИНОЧНЫЙ ВОПРОС
Город Мастеров > РЕДАКТОРЫ > Neverwinter Nights Aurora Toolset
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68
Nashman
Я отредактировать стандартный, деревенский тип локи, тоесть не оригинал отредактировать, а просто в свой ХАК добавить эту же деревушку, но переделаную для моих нуждsmile.gif


Что бы не спамить спрошу сдеся: Где норальный поезд можно найти, тоесть не настоящий smile.gif, а модель в формате для макса, что бы после кое-какой модификации можна было и в тулсет?
helvene
1. Открываете NWN Explorer.
2. Экспортируете нужные вам тайлы.
3. При необходимости - переименовываете их.
4. Редактируете.
5. Запаковываете в хак.
6. Подключаете хак к модулю.
Zirrex
Меня давно интересовал вопрос, почему Биовари не сделали функции, которые отвечают за смену имени и квенты? Спрашивается, чего проще? Ведь эти параметры можно увидеть в любом просмоторщике персонажа, или же через Leto поменять.

Конечно, многое можно менять через базу, но не эти параметры. Да и порой хочется что-то подобное иметь под рукой и быстро изменить через диалог с помощью скрипта. Ан нет, увы...
-fenix-
QUOTE(Zirrex @ Apr 12 2006, 22:11) [snapback]77557[/snapback]
Меня давно интересовал вопрос, почему Биовари не сделали функции, которые отвечают за смену имени и квенты?

Про квенту не помню, а вот имя можно будет менять в 1.67. Вот на счет, можно ли будет ментять ПС, тож не помню. pardon.gif
kreon
Не подскажете, видел где-то, что возможно каким-то отбразом кодировать цвета в сообщениях НвН (в SendMessageToPC, квенте, диалогах...), а как - не знаю...
Aiwan
CODE
  --------- ЦВЕТА ТЕКСТА ------------

<c°°°> Текст </c>  - Серый
<cууу> Текст </c>  - Белый
<c уу> Текст </c>  - Голубой
<cу у> Текст </c>  - Пурпурный
<cуу > Текст </c>  - Желтый
<cу  > Текст </c>  - Красный
<c у > Текст </c>  - Зеленый
<c  у> Текст </c>  - Синий
<c   > Текст </c>  - Default (no color)

</c>   (color end TAG)
Zirrex
Пытался заставить всех НПС говорить свои диалоги приватно, чтобы они не мешали играть остальным игрокам, но ничего не выходит. Использовал функцию:

NSS
void ActionStartConversation(object oObjectToConverseWith, string sDialogResRef="", int bPrivateConversation=FALSE, int bPlayHello=TRUE)


По умолчанию стоит эта функция:
NSS
int BeginConversation(string sResRef="", object oObjectToDialog=OBJECT_INVALID)

И вот что странно, ведь когда sDialogResRef пустой, в описании так и написано, скрипт должен использовать диалог по умолчанию, т.е. диалог, который установлен в настройках НПС, но почему-то, когда в скрипте пишешь (""), то НПС становится нем как рыба.
Aiwan
Если мой склероз не провалил спассы, то где-то у Лекса есть такой скрипт, когда 2 НПС трещат меж собой диалоговыми строками.
Lex
Не, Айв, тут не то совершенно.
QUOTE(Zirrex @ Apr 13 2006, 23:39) [snapback]77736[/snapback]
И вот что странно, ведь когда sDialogResRef пустой, в описании так и написано, скрипт должен использовать диалог по умолчанию, т.е. диалог, который установлен в настройках НПС, но почему-то, когда в скрипте пишешь (""), то НПС становится нем как рыба.

вот тут хз, у меня всегда "" нормально выдавали диалог.
Zirrex
Lex, а как ты сам скрипт оформлял? Если вспомнить, то сама функция находится в сприпте "nw_c2_default4". Так вот вместо "BeginConversation()" я писал так:
NSS
AssignCommand(oShouter, ActionStartConversation(OBJECT_SELF, "", TRUE, FALSE));

Работать не желает. Стоит удалить все после "OBJECT_SELF", и закрыть скобку, как диалог тут же оживает.

Aiwan, это то понятно. Мне же не разговор НПС нужен, а чтобы в момент обращения игрока к НПС, остальные игроки не видели диалога, который создает НПС игроку, обратившемуся к нему.

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

В дальнейшем я хочу все диалоги перевести на переменные, и брать их оттуда, генерируя диалог на ходу, но надо еще разобраться, как это сделать. Лучше иметь одну базу диалогов, чем для каждого нового НПС делать отдельный файл. Во-первых, диалоги можно выделить любым цветом, ну и конечно же скрыть от показа, когда они не нужны окружающим НПС игрокам.
azathoth
NSS
AssignCommand(oShouter, ActionStartConversation(OBJECT_SELF, "", TRUE, FALSE));

Судя по строке берется диалог ПС (которого нет)
Попробуй так (для "nw_c2_default4"):
NSS
ActionStartConversation(oShouter, "", TRUE);
Lex
QUOTE(azathoth @ Apr 15 2006, 02:12) [snapback]77984[/snapback]
Судя по строке берется диалог ПС (которого нет)
Попробуй так (для "nw_c2_default4"):

гыгы.. Аз прав, Зирекс. Ты заставляешь шутера (те игрока). smile.gif Оформлял я как Аз написал.
Zirrex
Попробую так. Но, что странно, уже пробовал делать подобным образом, и не вышло.

Забавно, какие-то НПС отвечают, какие-то нет. Не очень понимаю, по какому принципу выбирает.

И вот что интересно, если написать:
NSS
AssignCommand(OBJECT_SELF, ActionStartConversation(oShouter, ""));

Общаются все, но стоит добавить:
NSS
AssignCommand(OBJECT_SELF, ActionStartConversation(oShouter, "", TRUE));

Как некоторые тут же замолкают. Глюк?

З.Ы. Надо больше спать, совсем уже не соображаю...
bibinoka
Не в курсе када выйдет 1.67 ?
Kavin
Хотел прояснить одну вещь: событие OnBlocked возникает только тогда, когда NPC натыкается на закрытую дверь, или же и тогда, когда наткнулось, например, на дерево, стул, стол и прочее?.. Подскажите, пожалуйста!
Lex
поставь SendMessageToPC(GetFirstPC(),GetName(OBJECT_SELF) + " blocked!"); или SpeakString("Im blocked!");
в скрипт на этом слоте и пусти неписей по локе, посмотри какой когда блокируется.
Aiwan
QUOTE(bibinoka @ Apr 16 2006, 22:12) [snapback]78226[/snapback]
Не в курсе када выйдет 1.67 ?

Точной даты не знают даже в Биовар.
Emerlad
Меня интересует функция EffectAreaOfEffect(), а точнее одна из ее констант - AOE_* области...
Можно ли создать свою область AOE ? просьба если кто работал с созданием подобных вещей..научить, обьяснить как это делать....
Lex
QUOTE(Emerlad @ Apr 18 2006, 21:20) [snapback]78617[/snapback]
Меня интересует функция EffectAreaOfEffect(), а точнее одна из ее констант - AOE_* области...
Можно ли создать свою область AOE ? просьба если кто работал с созданием подобных вещей..научить, обьяснить как это делать....

а чего там непонятного?
NSS
// Create an Area Of Effect effect in the area of the creature it is applied to.
// If the scripts are not specified, default ones will be used.
effect EffectAreaOfEffect(int nAreaEffectId, string sOnEnterScript="", string sHeartbeatScript="", string sOnExitScript="")

константа ауры, скрипт на вход (первый раз срабатывает для того, на кого аура ложится), ХБ, на выход из ауры.
Константы прописаны в vfx_persistent.2da. Столбцов там много, делай по аналогии. Самые важные это Форма (C - Circle, R - Rectangle, ), Радиус (для кругов), Длина, Ширина (для прямоугольников), потом скрипты (они по умолчанию будут с этой константой. Но те, что ты укажешь в функции своей - перекроют те, что будут в 2да.), модели это визуалки для ауры.. больше вроде не нужно ничего.

Emerlad
Lex, спасибо..откуда мне было знать про vfx_persistent.2da...
kreon
Есть-ли способ скриптово вывести ДМа из ДМ-хайда?
Еще вопрос:
Возможен ли скриптовый хук на событие отправки сообщения?
Zirrex
kreon, не встречал что-то подобного. Да и зачем это нужно? Каждый ДМ сам контролирует свое появление.

Ты подразумеваешь общение в шаут, или общение в разных каналах?
kreon
Зачем нужно ДМ? Дело в том, что всвязи с нвхуками, я написал защиту веселую...
ДМ заходит, кидается на спец. локу и должен ввести персональный ДМ-пароль. Так что, чтоб пароль услышал непись-проверяющий, ДМ должен выйти из хайда. А если FadeToBlack() стоит, то как он выйдет из хайда?
А если не стоит, то ДМ из консоли может начитить.... Опыт там кинуть..
Про разговор - любой способ... То есть игрок говорит, а сервер перехватывает.
[MoF]Darth_Nick
выкладывали же фикс уже.. с тем хуком это не дм; по функциональности это меньше четверти дм.

QUOTE
Про разговор - любой способ... То есть игрок говорит, а сервер перехватывает.

если сервер перехватывает, то хукай сокеты.. WSARecvFrom(помойму) сервака
а если хукать у клиента, то либо искать функцию, либо опять же сокеты.(sendto вроде, а не WSASendTo )

т.к. вышеприведенное - мои нубозаключения, то поправьте если что...
*ушел дальше снифить*
Zirrex
kreon, Oh, my god! А зачем так сложно? Поищи на форуме скрипт черного списка. Я его усовершенствовал, и добавил множество разнообразных списков, которые отвечают за бан, вход и т.п. вещи. Так у меня в него включен список ДМ-ов, который могут редактировать только доверенные люди. В него вносится связка "Ключ + Логин". Если этих данных нету в списке, то любой "левый" ДМ сразу же бутится. И не важно, как именно, он входит. Нет данных в базе, прощай.

Все разговоры обычно записываются в логи, которые сохраняются со стороны сервера. Если уже перехватывать, то можно попробовать воспользоваться функциями сервера. Я с ними сам не работал, но не думаю, что это столь уж сложно. Приват перехватить ты не сможешь. Эта функция заблокирована от просмотра разработчиками. Приват, есть приват. И обвинять человека в том, что он написал приватно, это верх цинизма.
Nashman
Aiwan, ты как-то писал в "Базе скриптов" скрипт smile.gif(закрутил), и сипользовал слово "Енкаунчеры"...Вопрос что это такое?
Dik Morris
smile.gif
Encounter - столкновение с монстрами попросту говоря.
Работает аналогично триггерам, запусти Encounter Wizard и разберись.

PS: хотя, у тебя наверно просто напросто NWN русифицирован, отсюда и непонятки. smile.gif
kreon
Zirrex, чтоб не перебилдивать модуль каждый раз, когда надо дать кому-то ДМ-доступ..
С проверкой по ключам уже было.. Я там хэш-функцию написал, которая на основе player_name и cdkey возвращает пароль.
Что касаемо приватов, то мне это не нужно. Возникла идея "синхронного перевода", а именно:
Все игроки той-же языковой группы, что и говорящий, видят текст так, как он был написан.
Игроки других языковых групп видят "переведенный" текст. То есть, чтобы понимать, о чем говорит другая фракция, нужно самому игроку знать данный язык. Либо нанимать переводчика, за денюжку есстественно.
Вот для этого и пытался реализовать перехват сообщений... Пока вариант есть один - писание в пати с каким-нить условным знаком и расставление по всей карте невидимых NPC с Listen
Lex
насколько я помню такое было реализовано на Эксисе. Разные языки.
/elf текст и эльфы видят нормально, остальные "воэ'локе" какое-нить. Но приходилось писать так в пати-канал.. или в виспер.. я не помню уже.
[MoF]Darth_Nick
на вольте система помойму была с языками
Zirrex
kreon, чего-чего делать? А зачем? Это же работа со стандартной базой игры. Файл базы сохраняется на сервере в директорию "database". В любой момент ты можешь вызвать НПС, просмотреть список допущенных Дм-ов, и удалить оттуда того, кто отстранен от Дм-а. При этом не обязательно сразу же менять пароль для доступа к серверу через Дм клиент. Проверено, и работает отлично. В логи пишутся все попытки несанкционированного доступа к серверу через Дм клиент в обход пароля и пары "Ключ + Логин". По-моему этого достаточно. Но каждый раз вводить пароль, это гм... да еще и в темноте smile.gif

Посмотри ради интереса скрипты DMFI. Там реализовано разделение на языки. Если будет писаться перевод, то он всегда станет отображаться в окне боевых логов, что не самое удачное решение, так как эти логи очень быстро и лихо уезжают за границу окна, а вернуть текст, который был написан минут 20-30 назад, иногда не очень реально. Если только не залезть в файл "nwclientLog1.txt", и специально не посмотреть то, что было написано.
kreon
Zirrex, Мистленд полностью отвязан от баз данных smile.gif Поэтому вводить базу ради ДМов как-то не хочется smile.gif
Ну ладно, нет так нет smile.gif Придется по старинке менять пароли каждую неделю...
Про разговоры: вот, так чтоб писалось в боевой лог у меня получилось и у самого... В радиусе 30 метров перебираем игроков и SendMessageToPC();
А вот как сделать нормально?
helvene
QUOTE(kreon @ Apr 24 2006, 17:44) [snapback]79508[/snapback]
Zirrex, Мистленд полностью отвязан от баз данных Поэтому вводить базу ради ДМов как-то не хочется
Ну ладно, нет так нет Придется по старинке менять пароли каждую неделю...

Создайте таблицу паролей, с обязательной перезагрузкой сервера каждые сутки с новым паролем.
А вообще - лучше через базу.
Zirrex
kreon, гм, да эта база занимает копейки, что как-то делать модуль без базы, очень уж странно. Тем более система гибка в настройках и изменениях. Ограничивается она лишь твоей фантазией. У меня на основе скрипта Каа сделано 7 разных списков. Вызывается НПС, с помощью команды я могу переключаться между базами, и либо удалять из них данные, либо вносить. Как правило, данные вносятся через уже созданные скрипты. Меняется предварительно лишь значение переменной.

Эту базу можно адаптировать под свои нужны таким образом, чтобы всю информацию можно было выводить в игре. Вообще, в плане универсальности посохов, я больше ни где не видел таких. Конечно, каждый шард делает себе посохи под свои нужны, но посох у ГМ или ДМ должен выворачивать наизнанку любого игрока и подробно показывать всю подноготную о нем. А иначе мастер как слепой.

З.Ы. Я уже устал рекламировать этот скрипт. Каа, мне за вредность надо молоко давать smile.gif
Elf-Drow
Я хотел бы узнать, как можно ввести в тулсете дополнительные функции, к примеру RewardPC, а то у меня из тулсет вообще не воспринимает...
Предыдущее мое сообщение по этому вопросу исчезло при таинственных обстоятельствах...
Lex
не подрубил нужную библиотеку значит. Читай лексикон.
QUOTE(Elf-Drow @ Apr 27 2006, 01:03) [snapback]79742[/snapback]
RewardPC

такой нет. Есть
RewardGP(int, object, int)
RewardXP(string, int, object, int, int)
для обоих требуется это в начале скрипта:
#include "nw_i0_plot"
Aiwan
QUOTE(Elf-Drow @ Apr 27 2006, 03:03) [snapback]79742[/snapback]
Предыдущее мое сообщение по этому вопросу исчезло при таинственных обстоятельствах...

Читай тех.фопросы. Там написано что сейчас в реальности два форума и две базы. Кто туда попадает, кто сюда...
Ёжик
Уважаемые товарищи люди! ПОскольку тема для новичков закрыта, обращаюсь сюда.
Мечтаю создать собственнный модуль, сценарий написала. Но ничего не понимаю в том, как это всё делается. Т.е. хватает меня ровно на то, чтобы открыть тулсет. Может быть есть какое-нить "руководство для полных чайноков со свистком" или кто заинтересуется сценарием? Могу прислать
Dik Morris
QUOTE
Может быть есть какое-нить "руководство для полных чайноков со свистком"

Читай FAQ по тулсету: ЗДЕСЬ (~4м/б )

QUOTE
ПОскольку тема для новичков закрыта

Разве ? smile.gif
http://www.wrg.ru/forums/index.php?showtopic=731&st=2520
Elf-Drow
А можно ли спросить, откуда вообще взяли все эти новые функции... ActionCreate,RewardPC? Кстати, все получилось с инклюдами...спасибо Лекс
Dik Morris
QUOTE
А можно ли спросить, откуда вообще взяли все эти новые функции... ActionCreate,RewardPC? Кстати, все получилось с инклюдами...спасибо Лекс

Такие фун-ции можно легко делать самому. smile.gif
Читай Lexicon.

Например,
Есть код:
NSS
// Позволяет ставить CreateObject в делей и очередь действий.
void ActionCreate(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE, string sNewTag="");
// Это прототип фун-ции, он не обязат. но нужен для описания функции.

void ActionCreate(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE, string sNewTag="")
{
   CreateObject(nObjectType, sTemplate, lLocation, bUseAppearAnimation, sNewTag);
}
// А, это тело фун-ции, в нем и указывается все необходимое.


Выше мы вывели новую, фун-цию, теперь её необходимо подключить к нужному скрипту, перед void main():
#include "Название библиотеки в которой сохранен выш. приведенный код"
Lex
QUOTE(Dik Morris @ Apr 28 2006, 05:37) [snapback]79902[/snapback]
Разве ?

я открыл, наткнувшись на этот пост. Так что сейчас тема открыта уже. А как я ее случайно закрыл - хз.
Dik Morris
Перед тем как отпостить, я заходил в оснв. форум NWNAT, тема обозначалась как "горячая"... =)
Sorry за оффтоп - молчу. smile.gif
Szeretlek
вопрос:
как перенести кастомный предмет из одного модуля в другой?

Этот предмет - бутылка с джином из Хоту smile.gif
Dik Morris
Например экспортировать героя вместе с предметом.
Szeretlek
QUOTE(Dik Morris @ Apr 29 2006, 19:41) [snapback]80174[/snapback]
Например экспортировать героя вместе с предметом.

я вообще-то про тулсет o_O
ситуация:
есть модуль 1 с интересной шмоткой.
есть модуль 2 без неё.
Что делать?
helvene
Еще проще: экспортировать предмет smile.gif
А если бутылку с джинном экспортировать из одного модуля в другой вместе с героем, то в другом модуле она просто не будет работать smile.gif
Lex
QUOTE(helvene @ Apr 30 2006, 02:02) [snapback]80223[/snapback]
Еще проще: экспортировать предмет

этого мало.
Нужны кроме самой вещи еще скрипты, диалоги, палитровые элементы, что с ней связаны.
После импорта в модуль возможно потребуется правка скриптов.
helvene
QUOTE(Lex @ Apr 30 2006, 02:07) [snapback]80224[/snapback]
Нужны кроме самой вещи еще скрипты, диалоги, палитровые элементы, что с ней связаны.

Если моя ничего не путать, то связанные с предметом скрипты тулсет выискивает и экспортит сам. Или нет?
Lex
нет. Только скрипты диалога и скрипты элементов палитры цепляются сами (ибо тут все просто, пройтись по слотам и все дела). + цепляются диалоги к элементам палитры.
А скрипт, скажем, активации айтема, не прицепится вместе с самим айтемом.

Как я понял, это лампа с джином, значит нужно тащить еше и джина из палитры. И он тоже сам не прицепится к айтему.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2024 Invision Power Services, Inc.