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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
133 страниц V  « < 131 132 133  
Ответить в эту темуОткрыть новую тему
> ОДИНОЧНЫЙ ВОПРОС, на любую тулсетовскую тему
Alian REXis
сообщение Nov 10 2016, 08:54
Сообщение #3301


Level 7
Иконки Групп

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN: Модмейкер
Начало Войны



Цитата(Desan @ Nov 7 2016, 21:09) *
MMORPG Style Respawner


Тут в базе есть скрипт нормальный. Раньше работал. http://www.city-of-masters.ru/forums/index...amp;#entry12810

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Silvan Shu
сообщение Nov 12 2016, 23:54
Сообщение #3302


Level 1


Класс: Рейнджер
Характер: Chaotic Neutral
Раса: Человек



Цитата(Aiwan @ Jan 10 2005, 23:33) *
Всем одиночные вопросы не по делу постить в эту тему. Если сомневаетесь нужна ли тема, то постите вопрос сюда.
Типа: вот у меня мышка не кликает на тулсете (IMG:style_emoticons/kolobok_light/crazy.gif)


кстати о мышках. в тулсе я новичок - прям-таки профан. в самом неудачном смысле. начал тут переводить один мод. вопрос - как мне сохранить в отдельной папочке все переведенные файлы чтоб скинуть на другой комп или просто кому-то? =)

как редактировать (читай-добавлять субтитры) вступительные ролики расширения .bin? засим благодарю!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Nov 14 2016, 09:48
Сообщение #3303


Level 11
***

Класс: Волшебник
Характер: Neutral Good
Раса: Фея



когда открывается модуль в тулсе, в папке modules создается папка temp со списком всех файлов. Оттуда можно вытаскивать нужный файл и потом точно так же добавлять в другой мод (после добавления в другой модуль, нужно сохраняться и перезапускаться, чтобы обновились списки, а для палитры - нужно в обновлять палитру, через правая кнопка - обновить палитры).
Файлы *.bin - попробуй поискать редакторы на ваулте ( https://neverwintervault.org )
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Oct 26 2017, 17:36
Сообщение #3304


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



Всем привет! Рад, что форум живет и здравствует.
А теперь вопрос. Как и раньше у меня, дурацкий но ... нада...
Как правильно запретить герою отдыхать везде, кроме триггеров рестзоны? С настройками модуля, скриптами диалогами, вейпами повозился достаточно. Короче, все, что мог сам - сделал, иначе бы не спрашивал. Проделал детский эксперимент: импортировал локацию из своего модуля сначала в ПЛ, потом в "Рыцарскую сагу". В обоих модах герой ведет себя прилично, на мостовую или в поле не присаживается. Везде, кроме это добавленной локи. В ней он отдыхает также строго через диалог, но ... везде и всюду! Даже под водой, так его! (IMG:style_emoticons/kolobok_light/biggrin.gif)
Понял, что дело именно в локе. Но вот чем она принципиально отличается от ПЛ-овских или Саговских - не понял. На мой взгляд - ничем. Подумал, может, есть какой специальный полезный скрипт, который перебирает теги локаций? Стал искать - не нашел. Решил, что это глупая идея, собака порылась в чем-то другом.
Но вот в чем именно?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Oct 26 2017, 23:58
Сообщение #3305


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



При отдыхе срабатывает событие OnRest, и запускается соответствующий модульный скрипт. Кинув на игрока ClearAllActions(), отдых можно прервать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Oct 27 2017, 02:58
Сообщение #3306


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



Уважаемый denis0k, спасибо, что так быстро откликнулись. Рад, что Вы, ветеран форума ГМ, остаетесь ему верны. Это пишу без малейшей иронии.
Вот только спрашивал я немного о другом. Точнее, о противоположном. Не о том, как регулировать отдых или прервать его, а как запретить отдых везде, кроме триггеров рестзоны. Со скриптом "module_rest", который стоит на "OnPlayerRest" событий модуля у меня все в порядке. В ПЛ и "Рыцарской Саге", надо полагать, тем более. А именно к этим модулям я добавлял свою локацию для проверки. И, как уже писал, во всех локациях ПЛ и Саги герою разрешен отдых только в триггерах. В моей же, добавленной локе он отдыхает почти по биоваровскому дефолту. Только диалог срабатывает, а так где угодно может присесть и отдохнуть.
Событие "module_rest" распространяется на весь модуль, так? Получается, что ошибка именно в этой добавленной локации? Или все-таки в чем то еще? И я хочу понять, что надо добавить (или убрать), чтобы все заработало корректно.
Кидать на игрока ClearAllActions() на входе в каждую локу? Но ни в ПЛ, ни в Саге ничего подобного нет. Но все-таки на всякий случай я кинул на ПС ClearAllActions() при входе в локу. Не помогло. Все равно дрыхнет где вздумается.
Конкретизирую вопрос: что еще, кроме регулирующего скрипта в событиях запрещает отдых везде, кроме триггеров зоны отдыха? Может, какой-то вейп? Или глобальный скрипт? Или еще что?


Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melisse
сообщение Oct 27 2017, 08:46
Сообщение #3307


Level 11
***

Класс: Волшебник
Характер: Neutral Good
Раса: Фея



Он все правильно вам сказал. Используйте и отредактируйте скрипт модульного события на отдых в слоте OnPlayerRest. На старт отдыха, делайте проверку на нахождение в триггере, если нет - ClearAllActions()
Если подобное реализовано в скрипте Рыцарской саги, посмотрите как это сделано там.

Примерно это выглядит так:

Neverwinter Script
// prevents a PC from resting
// period
void main()
{
    object oPC = GetLastPCRested();
    // capture begin rest attempts
    if (GetLastRestEventType() == REST_EVENTTYPE_REST_STARTED)
    {
          // fun, fun, fun!
        object oTrigger = getNearestObjectByTag ("REST", oPC);
        if (!GetIsObjectValid (oTrigger))
          AssignCommand(oPC, ClearAllActions());
        else
        {
              if(!GetIsInSubArea (oPC, oTrigger))
                  AssignCommand(oPC, ClearAllActions());
        }
    }
}


https://nwnlexicon.com/index.php?title=OnPlayerRest

Сообщение отредактировал Melisse - Oct 27 2017, 08:53
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Oct 27 2017, 16:59
Сообщение #3308


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



Цитата(Melisse @ Oct 27 2017, 08:46) *
Он все правильно вам сказал.

Уважаемая Melisse, да разве кто спорит? Все мастер сказал коротко, ясно и верно. И скрипт, начало которого вы любезно привели в качестве примера, тоже понятен. А вот начало скрипта Геннадия из "Саги":
Neverwinter Script
///////////////////////////    START      /////////////////////////////////////
if (GetLastRestEventType() == REST_EVENTTYPE_REST_STARTED)
  {
    if (!GetIsAreaNatural(GetArea(oPC)))
      {
        if (GetLocalInt(oPC, "RESTZONE") == 0)// ÂÍÅ ÇÎÍÛ ÎÒÄÛÕÀ
        {
        FloatingTextStringOnCreature("Îòäûõ çàïðåùåí! Íóæíî íàéòè êîìíàòó.", oPC);
        AssignCommand(oPC, ClearAllActions());
        AssignCommand(oHench, ClearAllActions());
        return;
        }
      }

Кракозябрики капсом тут "ВНЕ ЗОНЫ ОТДЫХА", но, ПМСМ, и без русских комментов все яснее ясного. У нас с вами, уважаемые мастера, получается как в анекдоте про бедного студента: "Профессор, объяснить я сам могу, я ПОНЯТЬ хочу!" Понять, в чем "провинилось" именно моя локация, которую я импортировал и в ПЛ, и в "Сагу". Почему корректные, верные, сто раз проверенные (аж с 2004 гола!) скрипты настроек модуля ее в упор не видят.
Довел эксперимент вообще до абсурда. Импортировал по одной локе из ПЛ в "Сагу" и наоборот. Специально выбрал самые простенькие, без "лишних" вейпов и плейсов. Все работает прекрасно. Скрипт "Саги" видит и обрабатывает "Дом в Прокампуре", скрипт ПЛ прекрасно принял домишко из поселка Большие Сети. Обе импортированных локи не имели триггеров зон отдыха. Нарисовал. Зарабатали.
Моя локация ничем принципиально не отличается от оригинальных. Ее скрипт не хочет обрабатывать. Мистика?
На всякий случай спрошу: уважаемые мастера, вы абсолютно уверены, что кроме правильного скрипта настроек "module_rest" больше ничего не требуется? Конкретно для локаций.
Ну и попробую биться дальше сам. Потому что Ваши, уважаемые мастера, объяснения верны для стандартных ситуаций, а у меня дичь какая-то... но вообще на всякую дичь я всегда был везучим.
Спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Oct 27 2017, 19:13
Сообщение #3309


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Есть возможность отменять отдых. Есть возможность проверять разные условия. Профит (IMG:style_emoticons/kolobok_light/smile.gif) Теперь немного подробнее.

if (!GetIsAreaNatural(GetArea(oPC))) <-- это значит, что локация не "естественная" (природа), эта настройка включается в свойствах локации.
if (GetLocalInt(oPC, "RESTZONE") == 0) <-- это значит, что при нулевой переменной на игроке (или её отсутствии вовсе), отдых отменяется.

Значит, как-то надо выставить RESTZONE не в 0 (например, в 1). Мне думается, в модуле есть на полу триггеры, которые на вход в него ставят эту локалку на игрока в 1, а при выходе - в 0. Это и будет зона отдыха. Подробнее описать наверно не смогу.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Oct 27 2017, 20:02
Сообщение #3310


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



Цитата(denis0k @ Oct 27 2017, 19:13) *
Подробнее описать наверно не смогу.

И не надо, смысл я понял. И вообще разобрался. Хочется ругаться трехъетажным (на биотварей), но щас... выдохну... и просто скажу спасибо, уважаемый denis0k и уважаемая Melisse за понимание, участие и желание помочь.
Все вы говорили верно, мастера. И ничего дополнительно не требуется для нормального отдыха кроме одного-единственного правильного скрипта в настройках.
Короче, я скачал невер старой версии, ПЛ-овской. Сделал новый пустой модуль и тупо кинул в его настройки скрипт "module_rest". Только его, на остальные настройки плюнул. И все состоялось! Герой пытается присесть, а ему фиг по всей глупой роже. (IMG:style_emoticons/kolobok_light/biggrin.gif)
Но самое смешное - дальше. Прежние свои опыты я проводил (и вообще пытался делать модуль) в "лошадках". Так вот, переписываю этот пустой модуль с единственной настройкой в эти самые "лошадки". Все корректно! Больше того, подрисовываю еще одну пустую локу уже в "лошадках". Перевожу ПС уже в нее. И опять все корректно, все ок!
И вот вопрос (риторический, ясен пень) как это все прикажете понимать?! Ведь в локах, "подрисованных" к ПЛ и "Саге" (созданных в той же версии, что и мой пустой мод!) в "лошадках" ничего не работало. Да и сейчас не работает...
Еще раз спасибо, мастера, а биотварям отдельный респект и побольше икоты по ночам. (IMG:style_emoticons/kolobok_light/vava.gif) Надеюсь, моя одиссея с экспортом-импортом локаций и настройками и без них правильного скрипта повеселит форумчан.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Oct 27 2017, 20:23
Сообщение #3311


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Цитата
Хочется ругаться трехъетажным (на биотварей)
Обещаю, это только начало (IMG:style_emoticons/kolobok_light/biggrin.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Oct 27 2017, 21:44
Сообщение #3312


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



Цитата(denis0k @ Oct 27 2017, 20:23) *
Обещаю, это только начало (IMG:style_emoticons/kolobok_light/biggrin.gif)


Спасибо, обнадежил. (IMG:style_emoticons/kolobok_light/biggrin.gif)
А главное, опять прав! Нарисовал тригеры зоны отдыха и все снова пошло наперекосяк. Но это ерунда, надеюсь, благодаря вашим с Мелиссой подсказкам все налажу. По крайней мере, когда хоть примерно видишь, куда двигаться, это гораздо более иначе, чем смотреть на глюки и хлопать глазами ничего не понимая.
Спасибо!


Дико извиняюсь, что напрочь зафлудил тему, но необходимо сказать: denis0k, отдельное спасибо за последнюю подсказку. Все оказалось даже еще проще. Не требуется нигде писать "if (!GetIsAreaNatural(GetArea(oPC)))", достаточно пометить любую локацию как "тип земли - искусственный". Ерунда получалась в основном из-за того, что я пытаюсь сочинить робинзонаду, скачав с WRG замечательную систему крафта PaiNt_craft. Ну и, понятно, у меня локи все поля-леса и прочие тропики. Помечать их как искусственные не сразу придет в голову. (IMG:style_emoticons/kolobok_light/unsure.gif)
Так что зря я гнал на биоварей... хотя нет, они не этим, так многим другим заслужили!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 29 2017, 22:00
Сообщение #3313


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Да у Биоварей полно пасхалок. Однажды я неделю бился над проблемой, в маленьких локациях спавнились одни и те же монстры в случайных генерациях. После недельного выноса мозга, оказалось, движок генерит случайные числа исходя из данных тайлов в локации. Это значит, если я тупо скопировал пять локаций 4х4 тайла, то в них будут тупо выпадать одинаковые "случайные" числа а это значит одинаковые монстры. Вот такие пироги.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Oct 30 2017, 07:50
Сообщение #3314


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Удивительный факт в том, что сделать нормальный рандом вообще проще, чем городить свой. Там в параметре просто время указывается, оно каждую секунду уникально, но биовари замутили туда данные локации. Это телодвижение должно иметь какой-то смысл (IMG:style_emoticons/kolobok_light/smile.gif) Ну либо я ищу чёрную кошку в тёмной комнате, которой там нет, и они просто рукожопые индусы, во что тоже можно поверить, т.к. их SWTOR не имеет юникода в чатике, да и вообще глючит, если ставить в папку с русскими символами в пути (IMG:style_emoticons/kolobok_light/biggrin.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Oct 30 2017, 22:54
Сообщение #3315


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



С позволения мастеров продолжу веселить их дурацкими вопросами. Но что делать, если поиск и в темах, и расширенный по всему форуму ответа не дал...
Можно ли скриптом заставить героя вытаскивать из инвентаря определенный (по тегу, рефу, богу, черту ets) вид оружия и имитировать атаку на плейс? Именно имитировать, а не атаковать всерьез. У меня по команде
Neverwinter Script
AssignCommand(oPC, DelayCommand(0.5, ActionEquipMostDamagingMelee()));
// Далее - атака.

понятно, что произошло. Герой-тестер выхватил из инвентаря самое крутое оружие, которое имел и разнес горемычный булыжник с воплем "Я раздавлю тебя!". А это был не просто булыжник, а целый "выход горной породы", из него каменной киркой кремень для робинзонады добывать, а герой с ним так непочтительно. (Что любопытно, орал, негодяй, по-русски (IMG:style_emoticons/kolobok_light/biggrin.gif) ).
Нет, можно было защитить булыгу галкой "сюжет", но тогда жалобный дефолтный скулеж героя и постоянно всплывающее "оружие неэффективно" бесит и портить всю атмосферу.
В константах такого понятия как "анимация атаки", ПМСМ, вообще не существует. Что применить наиболее похожее? Я нашел только "ANIMATION_LOOPING_TALK_FORCEFUL", но это вроде то же самое, что галка на "говорить убедительно" в графе "другие действия" диалога? Попробовал применить. Получилось, сорри за каламбур, неубедительно...
Заранее благодарен.
З.Ы. Понимаю, что пост скорее для темы "вопросы новичков", но я вроде как 9 лет на форуме, хотя бы и с перерывом... Впрочем если уважаемый модератор перенесет пост туда - никаких вопросов.

Пока писал, подумал... такое случается...
Не обязательно имитировать, можно и натурально атаковать. Поставлю этой булыге максимум ХП, нарисую рядом пару-тройку таких-же. Атаковать будет с перекурами, присаживаясь и жалуясь на тяжелую жизнь шахтера, это я умею (и написать, и пожаловаться (IMG:style_emoticons/kolobok_light/biggrin.gif) ). Главное, чтобы выхватывал из инвентаря именно каменную кирку (простой молот без бонусов), а не "каменный нож +1". Вот как это сделать - без понятия...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 31 2017, 07:33
Сообщение #3316


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Атаковать можно невидимого монстра или невидимый плейс, естесвенно с плотовым флажком.
Насчет того, что бы одеть нужный меч в нужный слот. В модуле Монета Судьбы, посмотри скрипты проклятых и сюжетных комплектов броней. Именно в них прописано, в какой слот РС одевает предмет с нужным тегом. НВН нет и я по памяти это не напишу. Там все сделано, как тебе нужно. Идет проверка инвентаря, потом снимается с игрока все в боевых слотах, и одевается комплект уникальных. А если комплект проклят, то снять предмет нельзя. Ради интереса кинь в обычную локу кучу уникального оружия и по надевай его увидишь эффект поймешь как работает.


п.с. Вспомнил, это касается в основном проклятых вещей. Комплект ты сам одеваешь.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Oct 31 2017, 20:04
Сообщение #3317


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



Спасибо, уважаемый Мастер! Уже копаюсь в хаках "am_x2_main.hak" и "am_x2_weapon.hak" (модельки тоже интересны) и сокрушаюсь, почему сам до этого не додумался. Основную проблему вряд ли этим решу. Не припоминаю, чтобы проклятое оружие само (то есть по приказу скрипта, ясен пень) прыгало в руку. Вроде бы это один раз делает Эсмерик-меч. Но, во-первых не факт, что я помню правильно (в Хорды, в отличие от "Монетки", которую юзаю довольно часто, играл лет десять тому). Во-вторых, рыться в дефолтных скриптах биотварей?! Может, я лучше пойду вагон уголечка разгрузить, нервных затрат на порядки меньше и точно знаешь, что рано или поздно результат будет. (IMG:style_emoticons/kolobok_light/swoon.gif)
Тем не менее уверен, что накопаю много полезного (в хаках "Монетки", не подумайте, что в "Хордах" (IMG:style_emoticons/kolobok_light/biggrin.gif) ). Отдельное спасибо за привычку коротко комментировать практически каждый скрипт.
Да, "кровавый меч Lexа" тоже, пожалуй, стоит глянуть?
И можно попросить еще одну подсказку, уважаемые мастера? Где поискать что-то похожее на скрипт выдачи вещей с палитры, но с процентным шансом? То есть мой робинзон долбит эту булыгу (монстра, плейс - не суть) и у него 90% шанса добыть кремень, 9% на то, что выпадет к примеру, малахит, и 1% - изумруд или алмаз, тоже не суть.
И последний (на сегодня) вопрос. Наверное, конкретно к Вам, уважаемый Aiwan. Систему PaiNt_craft я, похоже, ниасилил (или она меня, подробности в соответствующей теме на WGR). Скрипты крафта придется занимать у доброй тети Опары и дяди Железнорукого. А вопрос насчет таблички "craftingrecipes.2da". Когда не надо брать за крафт деньги и не требуется нескольких дней (робинзон же, сам же все крафтит и сам себе, ясен пень не платит) что надо писать в соответствующих графах таблички: нули, пять звездочек, "NONE" или еще что? Потому что замена в Великом Плейсе Крафта CRAFT_HEALPER "WP" на "INSTANT", которую обещал так рано покинувший нас DBColl, не работает. По крайней мере, в моем модуле не работатет.
Ответьте, если припомните, конечно. Если нет, сам проверю, муторно, но понятно что делать.
Спасибо.

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 31 2017, 20:41
Сообщение #3318


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Chiffa @ Oct 31 2017, 23:04) *
Не припоминаю, чтобы проклятое оружие само (то есть по приказу скрипта, ясен пень) прыгало в руку. Вроде бы это один раз делает Эсмерик-меч.

В монетке при попытке снять проклятую вещь, ее вставят в тот же слот где была. Порядок слотов был где-то указан, там есть функция типа экипировать вещь и количество слот как параметр в этой функции. Если мне склероз не изменяет. Включая шкурку у существа и РС.
Крафт не мой, я там даже не пытался разбираться. Если была проблема, я сразу обращался к хозяину скриптов.

Цитата(Chiffa @ Oct 31 2017, 23:04) *
И можно попросить еще одну подсказку, уважаемые мастера? Где поискать что-то похожее на скрипт выдачи вещей с палитры, но с процентным шансом? То есть мой робинзон долбит эту булыгу (монстра, плейс - не суть) и у него 90% шанса добыть кремень, 9% на то, что выпадет к примеру, малахит, и 1% - изумруд или алмаз, тоже не суть.

В ПЛ посмотри на ящиках и сундуках, выпадают плотовые вещи с рандомом. Например, в пещере Рэджика, там в зависимости от евила и класса дается уникальная шмотка.


Цитата(Chiffa @ Oct 31 2017, 23:04) *
Отдельное спасибо за привычку коротко комментировать практически каждый скрипт.

Это сделано по двум причинам, для себя и для таких случаев как сейчас. (IMG:style_emoticons/kolobok_light/snoozer_17.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Oct 31 2017, 23:14
Сообщение #3319


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



Ай да Aiwan! Ай да ... почти Пушкин, скажем так...
Спасибо огромное. Вот он, скрипт:
Neverwinter Script
object oPC = GetFirstPC();
object oItem=GetItemPossessedBy(oPC, "ITM_MOLOT");
object oBul = GetObjectByTag("BULYGA");
void main()
{
AssignCommand(oPC, ActionEquipItem(oItem, INVENTORY_SLOT_RIGHTHAND));
DelayCommand(0.0,ActionPauseConversation());
DelayCommand(1.0,AssignCommand (oPC,ActionAttack(oBul)));
DelayCommand(2.0,AssignCommand (oPC,ActionAttack(oBul)));;
DelayCommand(4.0,ActionResumeConversation());
}

И правда простой, как мычание. Пять минут писанины и еще пять на проверку в модуле "Полигон". Ясен пень, тут еще много чего до ума доводить, эффект замедления вешать, давать в инвентарь вещички с палитры, "перекуривать" и т.п., но уж с этим я худо-бедно справлюсь. Главное, что удалось впихнуть эту злополучную "кирку" в этот неладный SLOT_RIGHTHAND. Остальное преодолимо.
Спасибо насчет подсказки про пещеру Реджика. Пойду гляну...
З.Ы. Сорри за офтоп. Aiwan, у тебя что вообще никакого невера? Даже ПЛ и родной "Монетки"? То есть никакой ностальжи, никаких сантиментов? Не-нет, подпись твою я вижу, вопрос риторический...

Понимаю, достал, но исключительно чтобы закрыть вопрос и по нему больше никого не дергать. Нашел подходящий скрипт. Здесь, в старой базе. Переделать под свои нужды отказалось нетрудно. Автор, кстати, некий Aiwan, возможно, слышали? (IMG:style_emoticons/kolobok_light/biggrin.gif)

З.Ы.Ы. Последняя реплика "приклеилась" к общему посту, потому поясняю: речь о скрипте рандома с шансом.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Nov 1 2017, 07:18
Сообщение #3320


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Chiffa @ Nov 1 2017, 02:14) *
З.Ы. Сорри за офтоп. Aiwan, у тебя что вообще никакого невера? Даже ПЛ и родной "Монетки"? То есть никакой ностальжи, никаких сантиментов? Не-нет, подпись твою я вижу, вопрос риторический...

Я полностью ушел в реал, игр нет совсем. Точнее по инерции еще качаю иногда, но дальше установки не идет (IMG:style_emoticons/kolobok_light/smile.gif) Из игр остался только симулятор радиоуправляемых моделей ну и с сыном в НХЛ играю на PS4. (IMG:style_emoticons/kolobok_light/wink3.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Nov 11 2017, 03:53
Сообщение #3321


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



Aiwan, вопрос лично к тебе. Он может казаться странным, а в свете того, что на дворе 2017 год, так и вовсе нелепым, но тем не менее...
Решал дать денек отдыха своему робинзону и сел поиграть. Представь себе, в ПЛ. Такое иногда случается. Во всяком случае, со мной.
Так вот, минут за 10 игры мне пришлось трижды вызывать диспетчер задач, чтобы он прихлопнул НВН. Как только на Прокампур опускалась ночь, я нервно нажимал кнопку быстрого сохранения чуть ли не каждую минуту...
А все из-за печально-знаменитого непися-бандита. Он спавмится, подвешивает игру и идет по своим делам. Вместо того, чтобы нападать на героя, как это и задумано, изображает бродячего непися-обывателя.

Вот скрипт на последнем слоте бандита:
Neverwinter Script
#include "nw_i0_generic"
#include "mm_common"

void main()
{
    int nEvent = GetUserDefinedEventNumber();
    if (nEvent == 1002)
    {
        object oPC = GetLastPerceived();
        if (GetIsPC(oPC) && GetLastPerceptionSeen() && GetTag(OBJECT_SELF) == "SEWER1_BANDIT1")
        {
            SpeakString(ya("Это же то животное, что на менйа плюнуло!.. Убью!!!"));
            AssignCommand(oPC, PlaySound("vs_nhalorm1_bat2"));
            object oNPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_NOT_PC, OBJECT_SELF);
//            AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_LOOPING_TALK_LAUGHIN
G, 1.0f, 6.0f));

            DelayCommand(1.0f, AssignCommand(oNPC, SpeakString("Хе-хе-хе...")));

            AssignCommand(oNPC, AssignCommand(oPC, PlaySound("vs_fvengaum_haha")));
            return;
        }
        else if (GetIsPC(oPC) && GetLastPerceptionSeen() && GetTag(OBJECT_SELF) != "SEWER1_BANDIT1")
        {
            if (!GetIsInCombat() && !IsInConversation(OBJECT_SELF))
            {
                SetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS, FALSE);
                SetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMA
TIONS, FALSE);
                if (Random(4) == 0)
                    SpeakString("Эй ты, стой!..");
                SetCutsceneMode(oPC);

                vector vD = GetPosition(OBJECT_SELF) - GetPosition(oPC);
                float fDir = VectorToAngle(vD);
                AssignCommand(oPC, ClearAllActions());
                AssignCommand(oPC, SetCameraFacing(fDir, 8.0, 50.0, CAMERA_TRANSITION_TYPE_MEDIUM));
                AssignCommand(oPC, SetFacing(fDir));

                ClearAllActions();
                ActionForceMoveToObject(oPC, TRUE);
                ActionDoCommand(SetCommandable(TRUE));
                ActionDoCommand(SetCutsceneMode(oPC, FALSE));
                ActionStartConversation(oPC, "bandit", TRUE, FALSE);
                DelayCommand(0.1, SetCommandable(FALSE));
         
            }
        }
    }
//Дальше реплики драки, которые тут не играют значения и не имеют роли


Так вот, вопрс: что именно и куда вписать, чтобы эта чертова "ClearAllActions();" соскочила с героя, если:
- бандит отошел далеко и уж точно не нападет.
или
- просто не нападает, допустим, 10-15 секунд реального времени.
К примеру, достаточно будет написать в конце перед тремя галками: "DelayCommand(22.0,ActionResumeConversation())
;" или надо как-то более иначе?
Разумеется, я и сам могу покопаться, (исправил же в свое время "легендарный" квест с доилкой!). Но:

У меня нет твоего опыта, а следовательно, уверенности что делаю правильно. С моей кармой скорее получится усугубить, чем исправить. Проверять сложно, эти бандюки то пропадают неделями, то вдруг начинают лезть из всех щелей, как тараканы.
Во-вторых, ты, наверное, единственный из команды создателей ПЛ, который еще активен на форуме ГМ. Кого еще спрашивать?

З.Ы. Ради прикола: самая дисциплинированная непись в ПЛ - бандит. Он накогда не лезет в триггер на сточной канаве. То есть если он отспавмился, а между ним и героем эта канава - все! Считай, висяк гарантирован. А простые быватели шастают по этим канавам как придется, и плевать им на триггеры...

З.Ы.Ы. Так что лучше второй вариант, тупо на время. А то ПС и бандит могут часами стоять рядышком и любоваться друг на друга через канаву...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Nov 11 2017, 09:43
Сообщение #3322


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Во первых, к этому скрипту подрублены две инклюды, а это тоже скрипты. Причем вторая инклюда кастомная от ДБа наверное. ДБ автор скрипта и я никогда не лазил в нем и не проверял его (IMG:style_emoticons/kolobok_light/smile.gif) Так как я и ДБ это как юный падаван и джедай (IMG:style_emoticons/kolobok_light/smile.gif) Если хочется узнать что и как работает, разбирайся сам. Для этого, после каждого действа поставь в скрипт событие, типа в командную строку сообщение или текст над НПС. Тогда ты будешь видеть, что происходит и где затык случается. Найди в монетке мой скрипт am_inc_debug, там простые условия для отладки скриптов. Добавляй из него функции в скрипты и проверяй отлаживай работу.
Прописывается она так
Neverwinter Script
#include "am_inc_debug"

Вот такой скрипт надо создать в палитре скриптов, он будет браться автоматически.
Neverwinter Script
//::///////////////////////////////////////////////
//:: Name: am_inc_common
//:: Copyright © 2005 WRG!
//:://////////////////////////////////////////////
/*
          БИБЛИОТЕКА ДЛЯ ОТЛАДКИ СКРИПТОВ
*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan      Aiwan@e-mail.ru
//:: Created On: 30.05.2005
//:://////////////////////////////////////////////

// СООБЩЕНИЯ ДЛЯ ПРОВЕРКИ (ИСПОЛЬЗУЮТСЯ В СЛУЖЕБНЫХ ЦЕЛЯХ ДЛЯ ОТЛАДКИ КОДА СКРИПТОВ)
// А ТАК ЖЕ ДЛЯ ДМ-ов
// LocalInt - "DEBAG_PC" на модуле, отключит дебаг игрокам
// LocalInt - "DEBAG_DM" на модуле, отключит дебаг DM-ам
void Debug(string message);
// Выводит в Debug: TAG, ResRef и Name объекта.
void DebugObject(object oObject);

//------------------------------------------------------------------------------
void Debug(string message)
{
    object oPC = GetFirstPC();
    if (!GetLocalInt(GetModule(), "DEBAG_PC"))
    {
      SendMessageToPC(oPC, "Debag message: "+message);
    }
    if (!GetLocalInt(GetModule(), "DEBAG_DM"))
          {
            SendMessageToAllDMs("Debag message to DMs: "+message);
          }
}
void DebugObject(object oObject)
{
    string sTag = GetTag(oObject);
    string sResRef = GetResRef(oObject);
    string sName = GetName(oObject);
    Debug ("TAG = "+sTag+", ResRef = "+sResRef+",  Name = "+sName+".");
}
/*
void main(){}


Что такое инклюда есть в моем мануале, почитай, если забыл.

Пример использования:
Neverwinter Script
//:://////////////////////////////////////////////////
//:: X0_CH_HEN_DEATH
//:: Copyright © 2002 Floodgate Entertainment
//:://////////////////////////////////////////////////
/*
  OnDeath handler for henchmen ONLY. Causes them to respawn at
  (in order of preference) the respawn point of their master
  or their own starting location.
*/

//:://////////////////////////////////////////////////
//:: Created By: Naomi Novik
//:: Created On: 10/09/2002
//:://////////////////////////////////////////////////
#include "x0_i0_henchman"
#include "am_inc_debug"
#include "am_inc_cutscene"

void main()
{
    // Handle a bunch of stuff to keep us from running around,
    // dying again, etc.
    PreRespawnSetup();

    // Call for healing
    DelayCommand(0.5, VoiceHealMe(TRUE));

    // Get our last master
    object oPC = GetLastMaster();
    object oSelf = OBJECT_SELF;


    // Clear dialogue events
    ClearAllDialogue(oPC, OBJECT_SELF);
    ClearAllActions();

    SetLocalLocation(oSelf, "POINT_DEATH", GetLocation(oSelf));
    //--------------------------------------------------------------------------
    //  Если РС умер или у нас отключен дебаг, то помощник умрет. В противном
    //  случае воскреснет рядом.
    //--------------------------------------------------------------------------
    if(!GetIsObjectValid(oPC) || GetIsDead(oPC) == TRUE)
    {
    if(GetTag(GetItemInSlot(INVENTORY_SLOT_NECK,oSelf))=
="AM_MNECK_AZUTH")
    {
        effect eEffect1 = EffectVisualEffect(VFX_FNF_SOUND_BURST_SILENT);
        AssignCommand(oSelf, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect1, oSelf));
        DelayCommand(0.7, RespawnHenchman());
        DelayCommand(0.9, PostRespawnCleanup());
        DelayCommand(1.5, AddCutEffects(oSelf));
        DelayCommand(3.0, AssignCommand(oSelf, JumpToObject(GetWaypointByTag("AM_WP_AZUTH_RESPAWN"))));
        DelayCommand(6.0, RemoveCutEffects(oSelf));
        Debug("Алишан в храме Азута. Забирайте ее там.");
        return;
      }
      if(!GetLocalInt(GetModule(), "DEBAG_PC"))
      {
          DelayCommand(1.0, RespawnHenchman());
          DelayCommand(1.5, PostRespawnCleanup());
          DelayCommand(1.9, AssignCommand(oSelf, JumpToLocation(GetLocalLocation(oSelf, "POINT_DEATH"))));
          DelayCommand(2.1, AddHenchman(GetFirstPC(), oSelf));
          Debug("ВЫ В РЕЖИМЕ ТЕСТА. ВАШ ПОМОЩНИК НЕУБИВАЕМ.");
          return;
      }
    else
    //--------------------------------------------------------------------------
    //  Умерла, так умерла... =)
    //--------------------------------------------------------------------------
          {
            SetPlotFlag(OBJECT_SELF,FALSE);
            SetImmortal(OBJECT_SELF, FALSE);
            SetIsDestroyable(TRUE, FALSE, FALSE);
            DestroyObject(OBJECT_SELF, 0.2);
          }
    }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Nov 11 2017, 12:16
Сообщение #3323


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



Мдя... как сложно то все. Я ведь всерьез думал, что две строчки кода приписать - и все океюшки будет. (IMG:style_emoticons/kolobok_light/vava.gif)
Теперь понятно, почему Ви в госпиталь уложили. Нет, Каетан тоже, конечно, хороша, но против Ви...
Ладно, раз джедая нет, падавану не до этого - фиг с ним, с бандитом. Не полному же чайнику (это обо мне, если что) его отлаживать. Да еще после джедая. Не настолько я самонадеян. В конце-концов, не так часто играю в ПЛ, прокампурское начало пережить можно.
А вот за подсказку методы - спасибо большое. Воспользуюсь неприменно. Как раз именно то, чего мне не хватает. Делаю все больше по интуиции и методом тыка. А эти тыки отнимают слишком много времени и нервов. Спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

133 страниц V  « < 131 132 133
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 17th December 2017 - 01:36