Pro-ild Опубликовано 13 декабря, 2010 Жалоба Поделиться Опубликовано 13 декабря, 2010 Как примерно выглядит скрипт, отвечающий за переменную, которая должна сменить гритинги у неписей, когда сменится с 0 на 1?Хочу реализовать невозможность говорить с неписями фракции эшлендер до тех пор пока игрок не "выучит язык". Ссылка на комментарий Поделиться на другие сайты Поделиться
LofZ Опубликовано 13 декабря, 2010 Жалоба Поделиться Опубликовано 13 декабря, 2010 Гритинги, как и топики, меняются не столько под воздействием какого-либо скрипта, сколько из-за разнообразных условий. Это может быть раса игрока, пол, локация, принадлежность к организации, локальная или глобальная переменная и т.д. Но более всего, пожалуй, распространены условия по журнальным записям.Создай журнальную запись "1_yazyk", сделай запись с индексом 1 такого содержания "эшлендеры не хотят разговаривать со мной, пока я не выучу их язык" и запись с индексом 5 - "Я выучил язык эшлендеров, теперь могу свободно разговаривать с ними". Далее создай новый гритинг (наверное, среди Greeting 0) и фразу для фракции эшлендеров. Типа "Мы не будем говорить с тобой, пока ты не выучишь {наш язык}" В результ нужно написать journal "1_yazyk" 1 Далее создать для эшлендеров повыше еще один гритинг с фразой: "Ты еще не знаешь наш язык. Иди учи его, балбес". В условиях journal "1_yazyk" == 1. В результе goodbye. А повыше еще одну фразу для эшлендеров, нейтрального содержания типа "Привет, собеседник!" с условием journal "1_yazyk" >= 5. Для ситуации, когда язык выучен. Остается только пройти курс изучения эшлендерского языка. :) По его завершении добавить в скрипт или диалог строчку journal "1_yazyk" 5 Ссылка на комментарий Поделиться на другие сайты Поделиться
Pro-ild Опубликовано 14 декабря, 2010 Жалоба Поделиться Опубликовано 14 декабря, 2010 Огромное спасибо) Но можно наверное обойтись и одной журнальной записью, если нет необходимости создавать гритинг "ты всё ещё". Надо же, а я и не подумал)Только сомневаюсь что эшлендер, знающий Имперский язык будет заставлять тебя его учить Я как раз-таки исхожу из того, что большинство вообще ничего из речи игрока не понимают. Но это так, на полях. Ссылка на комментарий Поделиться на другие сайты Поделиться
LofZ Опубликовано 15 декабря, 2010 Жалоба Поделиться Опубликовано 15 декабря, 2010 На здоровье! :) Тут надо еще исключить возможность эшлендерам бесконечно начинать инициировать квест. Поэтому лучше несколько записей. Только сомневаюсь что эшлендер, знающий Имперский язык будет заставлять тебя его учить Тебе как автору виднее :))) Ссылка на комментарий Поделиться на другие сайты Поделиться
Helis Опубликовано 27 декабря, 2010 Жалоба Поделиться Опубликовано 27 декабря, 2010 В некоторой локации лежит предмет А, у меня в инвентаре есть предмет Б. Условие сдачи квеста: иметь при себе предмет А, а предмет Б оставить в той локации. Как организовать? Ссылка на комментарий Поделиться на другие сайты Поделиться
TJ Опубликовано 27 декабря, 2010 Жалоба Поделиться Опубликовано 27 декабря, 2010 (изменено) В некоторой локации лежит предмет А, у меня в инвентаре есть предмет Б. Условие сдачи квеста: иметь при себе предмет А, а предмет Б оставить в той локации. Как организовать?Звучит несложно. Момент закрытия квеста - это момент завершения обмена вещи А на вещь Б?Наличие предмета А проверяем функцией GetItemCountНаличие предмета Б в локации я бы проверил, наверное, функцией GetDistance - if ( GetDistance, "Объект_Б" Скрипт весишь на какой-либо уникальный объект в локации (не А или Б).Обе проверки применяешь в одном скрипте как условие для повышения индекса журнала.Оба объекта должны иметь галку Reference Persist. На объект Б весишь скриптик со строками:if ( onActivate ) if ( GetJournalIndex >= 100 ) ;индекс, при котором квест считается сданным return endif endifчтобы после сдачи квеста объект Б нельзя было забрать. Изменено 27 декабря, 2010 пользователем TJ Ссылка на комментарий Поделиться на другие сайты Поделиться
Pro-ild Опубликовано 9 января, 2011 Жалоба Поделиться Опубликовано 9 января, 2011 Нужен скрипт:если у любого непися в игре появляется такой-то предмет в инвентаре, нужно чтобы через час он исчез из инвентаря.если непись с этим предметом убит, тоже нужно чтобы предмет исчез. Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 9 января, 2011 Жалоба Поделиться Опубликовано 9 января, 2011 Begin Script short doonce float time if ( getitemcount "предмет" > 0 ) if ( doonce == 0 );Чтобы не зацикливалось set doonce to 1 set time to ( gamehour + 1 ); через час удаляем endif endif if ( doonce == 1 ) if ( gamehour >= time ) set doonce to 2 removeitem "предмет" 1 elseif ( gamehour >= 0 ) if ( time >= 24 ) set doonce to 2 removeitem "предмет" 1 endif endif endif;Если тело не уберут, то скрипт сработает и на трупе, а чтобы тело не убрали, надо в свойствах npc(там где respawn) поставить галочку corpses persist. end Script Ссылка на комментарий Поделиться на другие сайты Поделиться
Pro-ild Опубликовано 9 января, 2011 Жалоба Поделиться Опубликовано 9 января, 2011 Это глобальный скрипт? Если нет, то на что его вешать? Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 9 января, 2011 Жалоба Поделиться Опубликовано 9 января, 2011 На npc. Или глобальный.Begin Script short doonce float time if ( npc->getitemcount "предмет" > 0 ) if ( doonce == 0 );Чтобы не зацикливалось set doonce to 1 set time to ( gamehour + 1 ); через час удаляем endif endif if ( doonce == 1 ) if ( gamehour >= time ) set doonce to 2 npc->removeitem "предмет" 1 elseif ( gamehour >= 0 ) if ( time >= 24 ) set doonce to 2 removeitem "предмет" 1 endif endif endif;Если тело не уберут, то скрипт сработает и на трупе, а чтобы тело не убрали, надо в свойствах npc(там где respawn) поставить галочку corpses persist. end Script Ссылка на комментарий Поделиться на другие сайты Поделиться
Pro-ild Опубликовано 9 января, 2011 Жалоба Поделиться Опубликовано 9 января, 2011 Спасибо) Я возьму глобальный, ведь он должен на всех неписей в игре распространяться! Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 9 января, 2011 Жалоба Поделиться Опубликовано 9 января, 2011 Тогда либо NPC Enhanced, там для стандартных рас скрипт, только требует MWE. Или много скриптов на различные ID. Ссылка на комментарий Поделиться на другие сайты Поделиться
z-Hunter Опубликовано 9 января, 2011 Жалоба Поделиться Опубликовано 9 января, 2011 (изменено) На npc. Или глобальный.Begin Script short doonce float time if ( npc->getitemcount "предмет" > 0 ) if ( doonce == 0 );Чтобы не зацикливалось set doonce to 1 set time to ( gamehour + 1 ); через час удаляем endif endif if ( doonce == 1 ) if ( gamehour >= time ) set doonce to 2 npc->removeitem "предмет" 1 elseif ( gamehour >= 0 ) if ( time >= 24 ) set doonce to 2 removeitem "предмет" 1 endif endif endif;Если тело не уберут, то скрипт сработает и на трупе, а чтобы тело не убрали, надо в свойствах npc(там где respawn) поставить галочку corpses persist. end Script Этот скрипт работает только на одном конкретном NPC, поэтому для того, что хочет сделать Pro-Lid (использовать в ЧО) он не годится. Можно сделать проще, для любых NPC с этим скриптом, да ещё и с автоматическим добавлением предмета: begin BusyNPCScript float GH if ( GetItemCount, "zH_beer_of_business" == 0 ) AddItem "zH_beer_of_business", 1 set GH to ( GameHour + 1) ; NPC станет свободным через 1 час else if ( GH >= GameHour ) RemoveItem "zH_beer_of_business", 1 StopScript "BusyNPCScript" endif endif end (вешать этот скрипт надо локально) И ещё, этот скрипт автоматически завершается после выполнения и не грузит попусту процессор. А первый будет выполнятся до скончания века, особенно если последовав твоему совету сделать все тела неубираемыми. Изменено 9 января, 2011 пользователем z-Hunter Ссылка на комментарий Поделиться на другие сайты Поделиться
Bogdan Опубликовано 10 января, 2011 Жалоба Поделиться Опубликовано 10 января, 2011 здрасьте!) подскажите, а можно как-нибудь через скрипт заставить ГГ спать определённое кол-во времени? Ссылка на комментарий Поделиться на другие сайты Поделиться
LofZ Опубликовано 10 января, 2011 Жалоба Поделиться Опубликовано 10 января, 2011 Я думаю, тут помогут эксперименты с глобальной переменной Hour. Что-то в духе set Hour to ( Hour + 8 ) - прошло 8 часов. Ну и, конечно, fadeout/fadein создадут затемнение, что позволит подумать, что это быд сон. Я делала скрипт, позволяющий проскочить день с помощью команды set Day to (Day + 1)http://fullrest.ru/forum/topic/13564-kak-virubit-igroka/ - вот тут. Ссылка на комментарий Поделиться на другие сайты Поделиться
Bogdan Опубликовано 10 января, 2011 Жалоба Поделиться Опубликовано 10 января, 2011 получается по сути мы просто меняем дату в календаре, я правильно понимаю? Ссылка на комментарий Поделиться на другие сайты Поделиться
LofZ Опубликовано 10 января, 2011 Жалоба Поделиться Опубликовано 10 января, 2011 Ага. Но если использовать при этом затемнение экрана, то будет практически как сон. Ссылка на комментарий Поделиться на другие сайты Поделиться
Bogdan Опубликовано 10 января, 2011 Жалоба Поделиться Опубликовано 10 января, 2011 спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Menorra Опубликовано 10 февраля, 2011 Жалоба Поделиться Опубликовано 10 февраля, 2011 Задам вопрос "Кто?". Кто возьмётся за нелёгкую задачу по переводу девятой версии MSFD? У нас в базе 8.1 в переводе и, как я поняла, дополнении Gwathlobala. Это существенно упрощает задачу. Ссылка на комментарий Поделиться на другие сайты Поделиться
Helis Опубликовано 6 марта, 2011 Жалоба Поделиться Опубликовано 6 марта, 2011 Выручите, друзья. Тут в квесте, по задумке разрабов, должно быть так: ты с неписем говоришь, и под конец разговора экран темнеет (FadeOut), а когда снова светлеет, то непись пропадает. А в реале экран-то темнеет, но непись никуда не девается. Вопрос: это нереальная задумка или багованный скрипт :D? Ссылка на комментарий Поделиться на другие сайты Поделиться
LofZ Опубликовано 6 марта, 2011 Жалоба Поделиться Опубликовано 6 марта, 2011 (изменено) Непонятно. Если это чужой плагин, то с таким вопросом по прохождению нужно обратиться в другую тему или создать специальный топик. Или может быть вопрос в том, что технически происходит при затемнении экрана? Только затемнение. Непися надо дисейблить отдельным скриптом (или отдельной командой). ЗЫ: затемнение при диалоге? Гм. Мне кажется, это выглядит неэстетично. Лучше скрипт запустить через диалог глобальный на затемнение. Изменено 6 марта, 2011 пользователем LofZ Ссылка на комментарий Поделиться на другие сайты Поделиться
Scarab-Phoenix Опубликовано 6 марта, 2011 Жалоба Поделиться Опубликовано 6 марта, 2011 LofZ, ему для локализации надо. А плагин оказался глючным, приходится чинить чужие глюки. Ссылка на комментарий Поделиться на другие сайты Поделиться
Helis Опубликовано 7 марта, 2011 Жалоба Поделиться Опубликовано 7 марта, 2011 Непися надо дисейблить отдельным скриптом (или отдельной командой).Это понятно.Я вопрос переформулирую: возможно ли убрать непися с глаз без перезагрузки локации и без активных действий со стороны непися =)? затемнение при диалоге? Гм. Мне кажется, это выглядит неэстетично.Не, там это очень в тему LofZ, ему для локализации надо. А плагин оказался глючным, приходится чинить чужие глюки. Да, будь прокляты буржуи =( Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 7 марта, 2011 Жалоба Поделиться Опубликовано 7 марта, 2011 (изменено) Через таймер. Goodbye, fadeout(на несколько секунд), set timer to ( timer + getsecondspassed ), disable Изменено 7 марта, 2011 пользователем Муурн Шепард Ссылка на комментарий Поделиться на другие сайты Поделиться
GKalian Опубликовано 9 мая, 2011 Жалоба Поделиться Опубликовано 9 мая, 2011 В скриптах не очень, посему вопрос.Есть два объекта: первый с анимацией, второй - кнопка. По нажатию на кнопку должна срабатывать анимация первого объекта. Можете предложить простой скрипт с двумя действиями? По нажатию на кнопку объект включается/выключается. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти