Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

Профиль
Фотография
Рейтинг
 
Опции
Опции
Персональное Соглашение
Chimeric не имеет договора в данный момент.
Персональная информация
Chimeric
Пушкин
Возраст неизвестен
Мужчина
Между любовью и честью
День рождения неизвестен
Интересы
Нет данных
Другая информация
Класс: Обыватель
Характер: Chaotic Neutral
Раса: Гигант
Мастер: NWN: Тексты
Мастер: Нет данных
Мастер: Нет данных
Проект N1: Нет данных
Проект N2: Нет данных
Статистика
Присоединился: 23.11.2004
Просмотры профиля: 4,820*
Последний раз замечен: 20th November 2010 - 14:44
Местное время: Jul 20 2018, 04:11
1,252 сообщения (0.25 сообщений в день)
Контактная информация
AIM Нет данных
Yahoo Нет данных
ICQ Нет данных
MSN Нет данных
* Просмотры профиля обновляются каждый час

Chimeric

Master


Темы
Сообщения
Файлы
Комментарии
Друзья
Содержание
14 Jul 2010
Есть сеттинг, довольно фантастический даже для фантастики, с элементами нф и фэнтези. Вернее, есть основа сеттинга, детали будут писаться. Есть также желание сделать из него браузерную игру, которой придется быть, просто из-за характера материала, нестандартной и, вероятно, похожей на MUD. Есть большая нужда в соавторах, если они окажутся близки по духу. Нет навыков программирования для всего этого. Со временем могут быть кое-какие деньги от спонсора под проект, если мы придумаем, как ему придать коммерческую форму. Как видите, все довольно туманно, но чтобы оформилось, как раз и нужны другие люди.

Приглашаю тех, кому интересно и кто рубит код. Могут понадобиться и художники, но пока что для интерфейса, большей части игры придется быть текстовой.
27 Nov 2009
Графика уже не впечатляет, а если начать крупный проект, то устареет до конца работ. Бог с ними, правилами ДнД, гномами, бонусами и т.д.; мне интересно, есть ли какой-нибудь современный движок, который позволял бы работать со скриптами и где диалоги имели бы нормальный вид? На ум приходят только игры Bethesda.
28 Aug 2009
Во всяком случае, используется этот метод нечасто. Для кого-то он может быть совсем в новинку.

Функции SetListening, SetListenPattern и иже с ними предназначены для проверки реакций, главным образом, NPC на те или иные реплики. PC могут узнавать через них пароли и т.п. - очень ограниченная функциональность, которую обычно оставляют, как она есть. Но подумаем, что такое система "слушания" вообще, если она позволяет игре отмечать "сказанные", то есть напечатанные, слова и реагировать на них? Это клавишный интерфейс, - по сути, parser, как назывались в текстовых квестах системы, позволявшие набрать в DOS-строчке, к примеру, TAKE SWORD - и персонаж брал меч. Клавишный интерфейс сложнее использовать, чем графический, но и возможности у него шире. В NWN мы можем использовать эту функцию для разного рода настроек.

Меня интересует прежде всего магия. Вот один случай: как нам указать, кого именно мы хотим получить, употребив чары Monster Summoning? Случайный выбор или, наоборот, никакого выбора - это не по мне, но и радиальные кнопки для стольких вариантов завести нереально. Делаем для Monster Summoning скрипт по образцу следующего, который управляет вызыванием элементалов.


Neverwinter Script
/// Пример чар, вызывающих элементала нужной стихии.


void Summon(string sElemental);

{
effect eSummon = EffectSummonCreature(sElemental, ЭФФЕКТ ПОЯВЛЕНИЯ, 0.5f); /// или другая функция вызова
location lTarget = GetLocation(OBJECT_SELF);
float fDuration = GetCasterLevel() * 18; /// длится 3 раунда за уровень мага

if (GetMetaMagicFeat() = METAMAGIC_EXTEND) /// метамагия

{
fDuration * 2;
}

ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, lTarget, fDuration);
}


void main()

{

effect eStun = SupernaturalEffect(EffectStun()); /// контролируя элементала, маг выключен из происходящего

SignalEvent(OBJECT_SELF, EventSpellCastAt(OBJECT_SELF, SPELL_CONJURE_ELEMENTAL, FALSE));
ApplyEffectTObject(DURATION_TYPE_TEMPORARY, eStun, OBJECT_SELF, fDuration);
string sPattern = "(**зем**|**почв**|**камен**|**песк**|**песч**
|**песо**|**глин**)|(**огонь**|**огн**|**плам**|**у
голь**|**зол**|**жар**|**дым**)|(**вод**|**мор**|**
рек**|**реч**|**рек**|**океан**|**дожд**)|(**возду*
*|**ветр**|**вихр**|**бриз**|**ураган**|**бур**)"
;


/// желательно сделать struct с индексами всех схем для ListenPattern

/// любая группа этих слов даст игре знать, какой элемент мага интересует. Фраза может варьироваться от простого "камень" до "Явись, порождение песка!"


SetListenPatternNumber(OBJECT_SELF, 2); /// ставим схему
SetListening(oPC, TRUE); /// начинаем слушать
DelayCommand(5.0, SetListening(oPC, FALSE)); /// у мага пять секунд на то, чтобы напечатать команду

string sCall = GetMatchedSubstring(0)); /// следим за ЛЮБЫМИ словами мага
int nTheElement = GetMatchedSubstringsCount(sCall); /// считаем совпадения со схемой

while (nTheElement > 0) /// если они нашлись, то где именно?

{

if (TestStringAgainstPattern("**зем**|**почв**|**камен**|**песк**|**песч**|
**песо**|**глин**"
, sCall) = TRUE) /// если призыв к земле, то...

{
Summon("Земной элементал");
break;
}
}

else if (TestStringAgainstPattern("**огонь**|**огн**|**плам**|**уголь**|**зол**|
**жар**|**дым**"
, sCall) = TRUE) /// если призыв к огню, то...

{
Summon("Огненный элементал");
break;
}
}

else if (TestStringAgainstPattern("**вод**|**мор**|**рек**|**реч**|**рек**|**оке
ан**|**дожд**"
, sCall) = TRUE) /// если призыв к воде, то...

{
summon("Водный элементал");
break;
}
}

else if (TestStringAgainstPattern("**возду**|**ветр**|**вихр**|**бриз**|**ураган
**|**бур**"
, sCall) = TRUE) /// если призыв к воздуху, то...

{
Summon("Воздушный элементал");
break;
}
}
}

Не исключено, что я допустил ошибки в коде. Тогда прошу меня поправить, тем более, что он писался для Авроры. Но идея верна. Известно во всяком случае, что можно получить PC через GetLastSpeaker и можно записать его слова в string - а остальное, как говорится, дело техники. Вы в состоянии сами домыслить, для чего еще хорош этот слуховой аппарат. В голову приходят варианты:

1) С его помощью можно отвечать на простые вопросы NPC напрямую, без диалогового окна. Стражник спрашивает "Сдаешься?" и если через пять секунд игрок не напечатает "Да" или "Сдаюсь", то -

2) Можно отдавать персонажу несложные команды, как то: "Следи за (имя NPC или игрока)". Эту команду необходимо предварить "командным словом", в ответ на которое игра будет фиксировать следующие реплики по заданным схемам. Слово, разумеется, игрок должен знать наперед. Тогда, при правильных настройках, персонаж автоматически включит Stealth и будет ходить за объектом по пятам. Другое командное слово выключит режим записи. Так как все функции слушания проверяются через общий для всего шарда GetLastSpeaker, на крупных шардах полезно давать знать игроку, что его команда услышана. Кстати, Функции SetListening все равно, кричит персонаж на весь сервер или шепчет, поэтому лишние сообщения не будут качаться над головами. Точно так же можно приказать самому себе "Делай зелья невидимости" - и персонаж займется алхимией. Эти автоматические действия было бы не так сложно прописать. По сути функция открывает дорогу макросам.

3) Система аукционов. NPC или PC говорит командное слово, объявляет лот, говорит другое командное слово и внимает выкрикам. Максимальное услышанное значение автоматически забирает у покупателя деньги и вручает ему товар.

4) Всякого рода численные параметры теперь могут быть указаны точно. Предположим, какое-то заклинание создает nLevel * 5 HD нежити любого рода, а игроку нужна конкретная смесь. Теперь он может напечатать "3 гуля, 1 гаст и 5 зомби" - и вуаля!

4) Чары наподобие Sequencer.

5) Завещания!

6) Новые возможности контроля для Dungeon Master, который теперь может просто напечатать, к примеру, "дождь"...

И так далее, и так далее, и так далее.
18 Aug 2009
Всем привет. Я написал несколько скриптов, связанных с одним и тем же классом - некромантом. Хочется, чтобы мастера скриптового дела поглядели на них. В следующее мое появление здесь я их размещу и буду добавлять мало-помалу. Сам я не специализируюсь на скриптах, к тому же у меня нет возможности их протестировать, да и вообще поиграть в НВН2 - компьютер слишком слаб для него. То, что написано, ориентировано на первую часть НВН и Аврору, поэтому и понадобятся коррективы. Может показаться странным, что я что-то делаю для игры, которую сам не в состоянии запустить, но меня увлекает создание контента. Главное - ставить достижимые цели.

Еще (и здесь уже я полный профан) может понадобиться человек, хорошо знакомый с AI хенчменов. Есть идея сделать для некроманта хенчмена-гуля (я нашел интересное заклинание в Wizard Spell Compendium для AD&D). За мной в этом случае будет диалог или диалоги, но я не берусь перевести в код странные привычки, каких, вы понимаете, от гуля можно ждать. Заинтересовавшихся спецов прошу отметиться здесь.

Айван, Лекс, а не сделать ли это очередным конкурсом? Назовите его "Лучший AI для необычного хенчмена" или как-то так, и в качестве хенчмена, чтобы был фокус, назначить именно спутника-гуля. Тогда мы получили бы несколько работ и взяли бы лучшее из них. Этот замысел с гулем и скриптами для некроманта - не для моего личного пользования. Я не планирую ввести их в какой-нибудь свой модуль. Наоборот, я хочу сделать некий полезный набор, упругий пакет, достаточно соблазнительный и полный, чтобы приманить распорядителей шардов. Пусть они посмотрят на дополненного и исправленного некроманта и скажут себе "Эй, а ведь наш-то некромант - скучнее, просто hack-n-slash... Возьмем этого".
Матерые скриптеры, шаг вперед! Вот диалог для первого БГ. Реплики отсылают к строчкам dialog.tlk, так что вы, вероятно, ничего там не увидите. Но это неважно - проверки Infinity Engine на месте. Проблема? Диалог не запускается, только и всего. Я не учел чего-то в Conditions реплик верхнего уровня. Несколько там ищут Global, но первоначальная - нет, и все равно дело швах. С того, кто мне поможет, сниму венец безбрачия, исправлю судьбу, уничтожу врагов.
Последние посетители


10 Oct 2016 - 14:24


9 Sep 2014 - 12:48


7 Mar 2013 - 2:21


21 Jun 2012 - 15:08


2 Jan 2011 - 17:30

Комментарии
Вам не оставили ни одного комментария Chimeric.

Друзья

1270 сообщения
17th June 2014 - 22:36

718 сообщения
26th April 2015 - 22:16
Показать всех друзей
Текстовая версия Сейчас: 20th July 2018 - 04:11