Помощь - Поиск - Пользователи - Календарь
Полная версия: ОДИНОЧНЫЙ ВОПРОС
Город Мастеров > РЕДАКТОРЫ > 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
justshurik
подскажите пожалуйста как установить в магазине скриптом цену на вещь, отличную от той, что генерируется автоматически?
Melisse
Цены на предметы в магазине можно менять только через функцию

Neverwinter Script
void OpenStore( object oStore,  object oPC,   int nBonusMarkUp = 0int nBonusMarkDown = 0);


где nBonusMarkUp - это повышение/понижение цены ( % ) на продажу магазином игроку предметов, а nBonusMarkDown - повышение/понижение цены ( % ) на скупку магазином у игрока предметов. (Если я не ошибаюсьsmile.gif, может быть, наоборот)

Если вы поставите nBonusMarkUp = 10, а nBonusMarkDown = 5
То при открытие магазина цена всех предметов (от процента, изначально установленного в свойствах магазина в ячейке "повысить") повыситься на 10%, и цена скупки магазином предметов (от процента, изначально установленного в свойствах магазина в ячейке "понизить") будет на 5% больше
Можно ставить и отрицательные числа, например, nBonusMarkUp = -10, nBonusMarkDown = -5, то при открытие магазина цена всех предметов в нем понизиться на 10% и цена скупки тоже упадет на 5%.
justshurik
QUOTE (Melisse @ Nov 29 2012, 11:31) *
Цены на предметы в магазине можно менять только через функцию

Neverwinter Script
void OpenStore( object oStore,  object oPC,   int nBonusMarkUp = 0int nBonusMarkDown = 0);


где nBonusMarkUp - это повышение/понижение цены ( % ) на продажу магазином игроку предметов, а nBonusMarkDown - повышение/понижение цены ( % ) на скупку магазином у игрока предметов. (Если я не ошибаюсьsmile.gif, может быть, наоборот)

Если вы поставите nBonusMarkUp = 10, а nBonusMarkDown = 5
То при открытие магазина цена всех предметов (от процента, изначально установленного в свойствах магазина в ячейке "повысить") повыситься на 10%, и цена скупки магазином предметов (от процента, изначально установленного в свойствах магазина в ячейке "понизить") будет на 5% больше
Можно ставить и отрицательные числа, например, nBonusMarkUp = -10, nBonusMarkDown = -5, то при открытие магазина цена всех предметов в нем понизиться на 10% и цена скупки тоже упадет на 5%.


то есть свою цену на вещь принудительно установить нельзя вообще никак кроме как через эту функцию?
Melisse
Можно... используя NWNX. (nwnx.org)
Там есть функция что-то типа SetItemGoldValue, которой устанавливается цена конкретного итема.
Flaristan
Цену на вещь принудительно установить можно, но обычным способом – только выше номинальной. Для этого в окне свойств предмета в тулсете есть окошко «дополнительной стоимости» под окном зарядов предмета.

Необычным способом можно например установить цены во всех магазинах НПС 1% от номинала и регулировать стоимость предмета добавочной стоимостью в «копейках». Тогда можно добиться например того, что вещь с параметрами на 50 000 гп будет стоить 525 гп., а «полная пластинчатая броня» что-то вроде 20 золотых.

Еще можно применить совсем необычный способ и торговать через конвертации что тоже может дать кучу преимуществ для манипуляций равно как и неудобств в игре.
justshurik
я понял. Здесь задача немного другая. имеется вещь. стоит вещь около 1 золотых. Мне нужно поднять стоимость вещи до нескольких сотен тысяч или миллионов золотых. Просто это скриптовый артефакт. Игра оценивает его стоимость как 1 золотой, но скрипт, который на нем висит делает стоимость артефакта около миллиона.
denis0k
В тулсете в свойствах итема есть пункт типа additional cost, можно накрутить цену вверх. Насчёт ограничений не в курсе, никогда не хотел поднимать цены, только опускать smile.gif Чтобы у каждого крестьянина не было по мешку золота.

Оффтоп: самые дорогие артефакты в дмг 3.5 - около 200к. Это либо крутой посох, либо крутое кольцо c 10ю кругами заклинаний, либо меч +10 (или эквивалент ему). Сложно даже представить, что за шмотка за лям smile.gif Это либо меч +22, либо доспех +31, либо кольцо 6 желаний smile.gif
Melisse
или я туплю или речь шла о том, чтобы скриптом установить цену, а не в тулсете... не?
denis0k
Да, в первом посту есть слово "скрипт" smile.gif Зато последнее описание говорит о том, что скрипт вовсе не нужен.
justshurik
QUOTE (denis0k @ Nov 29 2012, 21:37) *
В тулсете в свойствах итема есть пункт типа additional cost, можно накрутить цену вверх. Насчёт ограничений не в курсе, никогда не хотел поднимать цены, только опускать smile.gif Чтобы у каждого крестьянина не было по мешку золота.

Оффтоп: самые дорогие артефакты в дмг 3.5 - около 200к. Это либо крутой посох, либо крутое кольцо c 10ю кругами заклинаний, либо меч +10 (или эквивалент ему). Сложно даже представить, что за шмотка за лям smile.gif Это либо меч +22, либо доспех +31, либо кольцо 6 желаний smile.gif


нет. немного не так. Есть предмет. На этом предмете есть свойство - Активировать предмет. При активации предмета срабатывает скрипт, ну скажем, во всей локации на некоторое время перестает полностью работать магия. Так вот, игра оценивает такую вещь в 1 золотой, но по смыслу понятно, что дешево такая вещь стоить не может. Через дополнительную стоимость увеличить цену получается только на 32.5 К, а нужно гораздо больше.

Есть конечно задумка реализовать через систему диалогов, но это уж очень будет муторно, потому что подобного рода уникальных артефактов (скриптовых) около 70 и прописывать для каждого индивидуальный диалог будет очень долго.
denis0k
В baseitems.2da на каждый тип есть базовая цена. Сделай новый тип, поставь цену.
PaiNt
Цитата(justshurik @ Dec 3 2012, 05:55) *
нет. немного не так. Есть предмет. На этом предмете есть свойство - Активировать предмет. При активации предмета срабатывает скрипт, ну скажем, во всей локации на некоторое время перестает полностью работать магия. Так вот, игра оценивает такую вещь в 1 золотой, но по смыслу понятно, что дешево такая вещь стоить не может. Через дополнительную стоимость увеличить цену получается только на 32.5 К, а нужно гораздо больше.

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

или напихай какихнибуть дорогих свойств помимо активации
denis0k
Для неэкипируемого итема там только спеллы, и если возможно напихать спеллов на миллион, то только монотонно добавляя все. В смысле вообще все, и то не факт, что на миллион наберётся. Зато, если итем будет иметь на себе все спеллы, никакая больше плюшка не нужна smile.gif
Anakondar
Миллион очень быстро набирается. К слову, у 24 левел рекваймент уже 1 000 000. А среди стандартных айтемов есть даже те, что 61 уровень требуют.

Сделай стандартное повышение стоимости на 32767 и продавай её в магазине с sell mark up 1000. А магазин открывай OpenStore (oStore, oPC, -100, 100); вот тебе вещь 360+ тысяч. Только выстави, чтоб магазин ничего не покупал.

Можно это без магазина сделать: давать или забирать эту вещь в диалоге. Там ты сам сможешь поставить любую сумму. Только не забудь поставить проверку наличия данной суммы не только при появлении строки диалога, но и непосредственно перед даванием айтема. И не нужно кучу диалогов, достаточно одного + кастомные токены. Заполнять их можно из констант в самом скрипте или из локалок.

Ну и ещё один вариант - не нужно ничего менять. У меня целая куча айтемов с активацией предмети или уникальной силой. Естественно в магазины за 1 их никто не продаёт. Если вдруг такой айтем вдруг тебе стал не нужен, ты можешь продать его другому игроку, по той цене, на которой договоритесь.
Ilerien
Проще всего сделать кастомное свойство, которое ничего, кроме повышения цены предмета, не делает.
justshurik
QUOTE (Ilerien @ Dec 3 2012, 19:10) *
Проще всего сделать кастомное свойство, которое ничего, кроме повышения цены предмета, не делает.

Можно ли немного поподробней об этом? не очень понял как это сделать
Ilerien
Цитата(justshurik @ Dec 3 2012, 19:17) *
Можно ли немного поподробней об этом? не очень понял как это сделать
Добавить новое свойство в itempropdef.2da и itemprops.2da, сделать для него собственную таблицу ценности. Это довольно геморно, но результат будет лучше любых костылей с навешиванием существующих свойств.
Спецификация.
Проще всего посмотреть на примерах. В СЕР'е, скажем, это реализовано - там есть свойства Value Increase / Decrease.

Альтернатива - добавить специальное заклинание в spells.2da, которое будет выполнять нужный скрипт, и соответствующее свойство с большой ценой в iprp_spells.2da.
Anakondar
Альтернатива проще и правильнее. А кастомные свойства даже не нужны, в 1.69 есть ничего не дающие свойства, такие как качество. Просто делаешь ему ненулевую стоимость (собственно, зависящую от уровня "качества") и покрываешь все диапазоны цен.
Ilerien
Цитата(Anakondar @ Dec 3 2012, 22:08) *
Альтернатива проще и правильнее. А кастомные свойства даже не нужны, в 1.69 есть ничего не дающие свойства, такие как качество. Просто делаешь ему ненулевую стоимость (собственно, зависящую от уровня "качества") и покрываешь все диапазоны цен.
Неправда. Свойство Quality - пустышка, совершенно ничего, кроме присутствия, не делает. Даже цену не меняет.
Anakondar
Так в том-то и дело. Назначаешь ему цену в 2дашках и всё.
SKleer
Давно не заходил юда. rolleyes.gif
Возможно ли сделать в предмете (допустим - щит) динамичное описание?
Например:
Мы одеваем щит и ботинки. В описании щита нам пишут: "На вас одето 1) Такой-то щит 2) Такие-то ботинки"
Ilerien
Цитата(Anakondar @ Dec 4 2012, 23:44) *
Так в том-то и дело. Назначаешь ему цену в 2дашках и всё.
Окей, неправильно понял. Но всё равно костыль, лучше отдельное свойство завести.
Цитата
Возможно ли сделать в предмете (допустим - щит) динамичное описание?
Например:
Мы одеваем щит и ботинки. В описании щита нам пишут: "На вас одето 1) Такой-то щит 2) Такие-то ботинки"
SetDescription() и соответствующие эвенты.
Anakondar
Цитата(Ilerien @ Dec 6 2012, 00:08) *
Но всё равно костыль, лучше отдельное свойство завести.

1. Зачем заводить ничего не дающее свойство, если оно итак уже есть?
2. Вовсе не костыль, от качества зависит стоимость - абсолютно логично.
SKleer
У меня нет такой функции о.о. Можнт это из-за версии 1.66?
denis0k
Нужна 1.69.
Anakondar
Смотря для чего. Если для добавления ненужного свойства, то необязательно. Ну а вообще рекомендую обновиться
SKleer
Жаль, что нужна 1.69. Она мне не понравилась почему-то. При смерти героя мне почему-то дают какой-то левый предмет в инвентарь, что раздражает.
А так, я хотел сделать комплект волшебных доспехов. (как в Titan Quest)
И когда напялены 2 или более предмета, то в описание объекта добавляется: "Вы надели: ботинки, щит. Увеличина атака на +1, броня на +10"
Ilerien
Цитата
Жаль, что нужна 1.69. Она мне не понравилась почему-то. При смерти героя мне почему-то дают какой-то левый предмет в инвентарь, что раздражает.
Это легко пофиксить.
SKleer
Может 2 вопроса будут не уместны в данной теме, но есть ли способ заменить непонятные символы (кирилицу) в редакторе, на русские символы? На виндовс ХР всё было нормально.

И возможно сделать, чтобы видеоролики отображались без установки патча 1.69?
Заранее спасибо.
Melisse
В настройках редактора скриптов выбери шрифт Courier
Не используй кириллицу в названиях переменных, только для имен и описания существ, локаций, предметов..
SKleer
О! Спасибо. У меня стоял Courier new.
Цитата
Не используй кириллицу в названиях переменных, только для имен и описания существ, локаций, предметов..

Да это всё равно скрин из моего заброшенного модуля. Я сейчас другой делаю. rolleyes.gif
Ollone5
И так, меня долго не было и по этому накопились вопросы:
1) Подскажите, как мне заставить бить ловушку только по врагам? Или заставить вылетать из конкретной точки снаряды в враждебных мне нпс, наступивших на триггер?
2) Возможно ли с помощью скриптов, прямо в игре, заменить один тайл на другой. Конкретно - у меня есть тайл обычной стены, стену разбили монстры и там образовалась дыра.
3) Можно ли для всех установленных хаков написать один tlk?
4) Я скачал пак на средневековые доспехи и оружие, при попытке создать половину из предложенного оружия у меня вылетает тулсет, а у доспехов появляется слишком много пустых слотов. Это нормально? Есл нет, то как с этим бороться?
5) Патч вирусмена от палочек не помог, не могу им воспользоваться из-за "закрытого" реестра. Реестр я вправил и запустил этот файлик. Пишет что всё добавлено, но в самом тулсете никаких изменений.
Это не всё, решу эти - буду задавать новые. Мой модуль не стоит! Скоро выложу скрины в соответствующей теме.
Flaristan
1) Стандартные ловушки если не ошибаюсь считают врагом всех кто не в отряде того кто ее поставил. Скриптом через «ГетИзЭними» и «ГетИзНеарПС» (или как-то так).
2) На моей памяти только эффекты менять (включая эффекты поверхностей). Трюк с изменением тайлов можно осуществить через альтернативные локации, но лучше сделать разбиваемую стену и дыру взаимозаменяемыми респавном активными объектами (при наличие фантазии можно весьма неплохо это изобразить с имеющейся стандартной палитрой объектов, комбинированной с аналогичными тайлами).
Остальное хз. smile.gif
gennady
Цитата(Ollone5 @ Dec 29 2012, 10:15) *
Подскажите, как мне заставить бить ловушку только по врагам? Или заставить вылетать из конкретной точки снаряды в враждебных мне нпс, наступивших на триггер?


это у меня стоит на катапультах, может что возмешь на вооружение
Neverwinter Script
void main()
{
object oPC = GetFirstPC();
object oBal = OBJECT_SELF;
object oZel = GetNearestObjectByTag("ZEL_BAL");//Объект на который должен быть скастован спелл.

if (GetIsObjectValid(oZel) && GetDistanceToObject(oZel) <= 50.0f
    && GetLocalInt(oBal,"BALL") != 1)
{
  SetLocalInt(oBal,"BALL",1);
  PlaySound("as_cv_winch1");
  DelayCommand(15.3, SetLocalInt(oBal,"BALL",FALSE));
  if (GetTag(oBal) == "CATAPULTA")
  AssignCommand(oBal,ActionCastSpellAtObject(SPELL_F
IREBALL,oZel));
  else
switch (Random(2)+1)
{
case 1:
AssignCommand(oBal,ActionCastSpellAtObject(SPELL_F
LAME_ARROW,oZel));
break;
case 2:
AssignCommand(oBal,ActionCastSpellAtObject(SPELL_M
ELFS_ACID_ARROW,oZel));
break;
}
}
}
Flaristan
Цитата(Ilerien @ Jan 4 2012, 23:20) *
Поставить dialog.tlk от 1.69.
Русскую версию (правда, я бы советовал английскую) отсюда (переименовать в dialog.tlk и бросить в корень игры).
Недавно решил попробовать перевести модуль в 1.69 из 1.67 которую использовал изначально из-за этой ошибки с "пурпурным драконом": сделал как было посоветовано, создал модуль чтоб проверить - вылезло с первого раза вместо старой ошибки это......больше ничего вроде не произошло и со второго раза ошибка уже не выскакивает. Этого стоит опасаться и пилить бэкапы или забить?
Melisse
Что за ошибка с пурпурным драконом?

Проблемы при переходе со старых версий на новые бывают в 2да. В каталоге с игрой есть файл, где помечено сколько строк нужно зарезервировать, при создании своих 2да.
Если 2да файлы заполнялись с конца последней строки - в более новых версиях могут быть наслоения и часть новых штук просто исчезнет, от чего могут быть всякие ошибки.
Другие ошибки не встречались при переходе с одной версии на другую. Обычно после критикал ребилд 1.69 не может быть ошибок, разве что не совместимость видеокарты или звука.
denis0k
Это драйвер OpenGL.
Flaristan
Цитата(Melisse @ Jan 16 2013, 13:29) *
Что за ошибка с пурпурным драконом?
Сохраняющая авторство цитата, в отличает от сделанной вручную, содержит в заглавие ссылку на сообщение откуда была взята. Там сообщением ранее задавался вопрос который описывает полностью последствия ошибки класса пурпурного дракона которая местами возникает после перевода НВН в 1.69 версию и не дает тулсету работать с модулями корректно.

Хых видеокарта? Странно... Ну, будем надеяться не заразно.
denis0k
Цитата
Хых видеокарта? Странно... Ну, будем надеяться не заразно.
После покупки железа 2012 года оба нвна у меня почили. Нвн1 неправильно определяет видеокарту (цепляется к драйверу удалённого рабочего стола, такая проблема у некоторых людей чуть ли не с релиза вин7, судя по гуглу), находит 255 процессоров и чуть ли не петабайты оперативки и вылетает при любом чихе. Нвн2 в тулсете при создании второго окна рендера (свойства итема, плейса и т.п.) выбрасывает исключение, что смахивает на старые грабли, тянущиеся из тулсета нвн1, который именно из-за этих дочерних окон с определённой версии перестал работать в линуксе под вайном smile.gif
Melisse
Я думаю эти проблемы решаются людьми как-то. Играют же. Вопрос в желании и нужности.
denis0k
Да. Схожие проблемы у многих игр. Например, у котора - его пофиксили фанаты. У дивайн дивинити - его пофиксили разработчики. А также: дум/квейк/анреал/бардс тейл (фанаты), oni (разработчик), ну и т.п., каждый тут может что-то написать. При попытке нагуглить решение для нвн выдаёт что-то типа "да, не повезло, чувак, попробуй драйвера поменять или режим совместимости включить, авось поможет" smile.gif К слову, вместе с нвн и котором некие проблемы и у биоварских же масс эффектов - первый видит отрицательное число оперативки, но серьёзно не глючит, а второй просто вылетает, работает только третий, но эт понятно - его регулярно патчат из-за мультиплеера.

Когда основная масса нвнщиков обновит свои компы, может фанатский фикс и будет, а так оно нафиг никому не надо.
Flaristan
Это что за хрень??


Melisse
Flaristan
возможно, в анимации проблемы. smile.gif
Дело в том что в 1.69 добавили новые анимации и новые фенотипы.
Возможно, происходит конфликт, если у вас в хак паке есть анимации.

Анимации в нвн это жестокость для моделера, не знаю так ли во всех других играх, но чтобы сделать новую одежду, приходится подгонять ее для всех видов фенотипов (7рас*2 (худой и толстый + для кояшек (7*2)) = 28 видов (без турнирных) только одного элемента броньки, например, туловища)

А вообще чего вы не проверите хакпаки на конфликты? Там же в тулсете есть эта тема. Он вам прям список ресурсов кофликтных выдаст.

П.С. Возможно, еще что-то и дело не в том, что я думаю.
Flaristan
Цитата(Melisse @ Jan 22 2013, 10:46) *
Возможно, происходит конфликт, если у вас в хак паке есть анимации.
А вообще чего вы не проверите хакпаки на конфликты?
Потому что их нет. smile.gif
Melisse
Цитата
Потому что их нет.

Видимо тогда видеокарта, как и в предыдущем случае.
Вроде ATI Radeon плохо переваривают neverwinter? если у вас такая
denis0k
Я с 2007го (т.е. с момента, как сам стал компы собирать) на радеонах, никаких проблем с актуальными играми. У Флэра, судя по скринам выше, вроде как интегрированная интел. Если бажащий плейс стандартный, то проблема с видяшкой. Не знаю, как в нвн, но вообще анимация обычно аппаратно обрабатывается на гпу. Если в более современных 3д-играх нормально, то мои поздравления в связи с вступлением в клуб "без нвн по причинческим технинам" biggrin.gif

P.S. Первый ведьмак на интел хд3000+ идёт.
Flaristan
Карта вроде бы да интеловская но не суть, потому что:
1) если проблема была бы с видеокартой vs toolset 1.69 – ошибка не появилась бы «внезапно», а сразу же после перехода на 1.69 версию (а до нее я успел уже поработать в новой версии чуть ли не неделю);
2) экспериментальным путем удалось выяснить, что игре действительно не нравится обелиск (хаков нет, все стандартное же) подпадающий под указанные приметы (морской обелиск в общем – стул не понятно каким боком там) – причем что самое интересное не нравится он исключительно(!) находясь в точке старта модуля (в других местах они стоят себе нормально, что так же совершенно неадекватно, учитывая тот факт что до этого в точке старта эти же самые обелиски никаких ошибок не вызывали и стояли там всегда);
3) подобную ошибку я встречал ранее еще работая в 1.67 версии тулсета (причиной тогда внезапно стал аппеаренс зомби если я правильно помню) – ошибка не приводила ни к чему (разве что иногда к подвисанию загрузки модуля) и поэтому была благополучно проигнорирована и в последствии пропала так же как и появилась;
4) теперь я не уверен что эти вещи связаны, но в результате всего этого балагана модуль стал подглючивать и выкидывать странные штуки при редактировании вроде произвольной замены данных из устаревших бэкапов(???) – скрипт на уникальную силу предмета толи переполнился, толи просто не хочет работать с новыми изменениями, работая по старому варианту (хотя не совсем понятно как это физически возможно если в модуле в скрипте написано одно, а работает он по-другому – так как было написано до этого)… изменения объектов в локации меняются самопроизвольно по тому же принципу… может быть в модуле появилась избранная крыса? biggrin.gif
Melisse
Надо билдить переодически.
А еще лучше, когда начинаются проблемы переносить все в новый контейнер модуля. Помогает.

Цитата
в клуб "без нвн по причинческим технинам"

да-да. Не верю, что технические причины могут остановить smile.gif А вот нежелание/ненужность - да. Можно приводить кучу примеров, да.. но выхода нет, когда его не ищут smile.gif
Flaristan
Бэкапить в смысле? Это-то конечно есть. Только что проверил бэкапы старых и очень старых версий - у меня на компе стоит куча клиентов под НВН, потому что свой родной клиент либо битый либо еще что (имеет врожденный баг с белыми текстурами), так что есть еще чужой клиент на котором этого бага нет: на НВН 1.67 - ошибок нет; 1.69 (свой родной клиент) - ошибок нет включая последние версии модуля; 1.69 (чужой клиент) - выдает ошибки даже на очень старых версиях под 1.67. Так что с модулями все в порядке - проблема в клиенте, причина только не понятна.

Сейчас еще потестю глюки со скриптами на разных версиях.

P.S.: Что значит переносить в новый контейнер - создавать модуль заново и делать полный экспорт всего?

update: Походу это клиент навернулся, потому что его исходная копия (клиента) воспринимает модуль без ошибки.

А вот скрипт продолжает глючить на других клиентах - я так подразумеваю есть какой-то предел для числа строк в скрипте или может для ответвлений "if" в его теле? Мой содержит 30 блоков класса
Neverwinter Script
if (GetTag(oItem)==". . .")
{
//. . .
return;
}
в общей сложности на 2702 строки.
Melisse
Не бэкапить,а билдить модуль "Строить модуль"


Цитата
А вот скрипт продолжает глючить на других клиентах - я так подразумеваю есть какой-то предел для числа строк в скрипте или может для ответвлений "if" в его теле? Мой содержит 30 блоков класса

посмотри ai скрипты в 10к строк
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2025 Invision Power Services, Inc.