Арес Опубликовано 3 сентября, 2013 Жалоба Поделиться Опубликовано 3 сентября, 2013 Как изменить фон у читаемой книги, который по краям, переплет? Ссылка на комментарий Поделиться на другие сайты Поделиться
Cheese for everyone Опубликовано 3 сентября, 2013 Жалоба Поделиться Опубликовано 3 сентября, 2013 Возник еще такой вопрос: есть ли там же, в Function/Variable функция, проверяющая, совершена ли с продавцом хотя бы одна успешная сделка? Причем, если он продает еще и заклинания, то нужна проверка именно на совершенную сделку с предметами, а покупка заклинания считаться за успешную сделку не должна. Как вариант, для этого подошла бы и функция, проверяющая исчез ли хотя бы один предмет из определенного контейнера/изменился ли в нем состав предметов. В данном случае - в сундуке моего продавца, в который я положил продаваемые вещи. Контейнер недосягаем для игрока и получить оттуда предмет можно лишь через покупку, что исключает способ пройти проверку, лишь просто стащив предмет. Для чего это нужно: при успешной сделке либо изменении состава предметов в сундуке, я хочу выставить смену переменной и сменить приветственный диалог продавца на другой. Или все таки мне понадобился бы скрипт, считывающий содержание контейнера и любые происходящие в нем изменения? Если да, то просветите пожалуйста рабочим примером. Ссылка на комментарий Поделиться на другие сайты Поделиться
Ao3 Опубликовано 3 сентября, 2013 Жалоба Поделиться Опубликовано 3 сентября, 2013 (изменено) Только если имеются в виду строго определённые, изначально лежащие в НПС или сундуке, предметы (то есть с рандомными не прокатит), а потом скриптом проверяем не исчез ли каждый по очереди через GetItemCount "ID_предмета" > 0 Изменено 3 сентября, 2013 пользователем Ao3 Ссылка на комментарий Поделиться на другие сайты Поделиться
raddimus Опубликовано 3 сентября, 2013 Жалоба Поделиться Опубликовано 3 сентября, 2013 Как изменить фон у читаемой книги, который по краям, переплет?Поставить ретекстур журнала. Ссылка на комментарий Поделиться на другие сайты Поделиться
Cheese for everyone Опубликовано 3 сентября, 2013 Жалоба Поделиться Опубликовано 3 сентября, 2013 (изменено) Только если имеются в виду строго определённые, изначально лежащие в НПС или сундуке, предметы (то есть с рандомными не прокатит), а потом скриптом проверяем не исчез ли каждый по очереди через GetItemCount "ID_предмета" > 0 Да, вполне определенные предметы с уникальными ID. Обьявил глобальную переменную drawingtoken через Gameplay>Globals. По умолчанию она равна 0. Ее смена на 1 вызывает смену диалога. Я просто не совсем беру в толк, как ее изменить скриптом вида: -Начать скрипт-Если каждый из предметов на месте, drawingtoken остается равной 0-А если хоть что то исчезло, drawingtoken становится равной 1-Конец Как определить, чтобы проверка шла с контейнера, тоже не совсем понятно. Я видел операторы вида player->GetItemCount но это проверка игрока а не самого контейнера. Ну и если несложно, набросайте скрипт хотя бы для двух предметов. Скажем, их ID это "paint1" и "paint2", а ID контейнера "paintchest". Ах да, важная деталь, скрипт должен сработать только один раз. Изменено 3 сентября, 2013 пользователем dddssss Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 3 сентября, 2013 Жалоба Поделиться Опубликовано 3 сентября, 2013 (изменено) Begin TestScript if ( DrawingToken == 1 );не проигрываем скрипт, если предмет уже исчез return end if ( GetItemCount "paint1" < N );N равняется изначальному числу предметов. В скрипт вписать числовое значение, а не переменную! if ( GetItemCount "paint2" < K );K равняется изначальному числу вторых предметов. В скрипт вписать числовое значение, а не переменную! Set Drawingtoken to 1 return endif endif End Как-то так. Вешать на сундук. Изменено 3 сентября, 2013 пользователем Муурн Шепард Ссылка на комментарий Поделиться на другие сайты Поделиться
Ao3 Опубликовано 3 сентября, 2013 Жалоба Поделиться Опубликовано 3 сентября, 2013 (изменено) Муурн, извини, но по-моему тут что-то не так. if ( GetItemCount "paint1" < N ) ;допустим, условие выполняется, предмет 1 забрали if ( GetItemCount "paint2" < K );а второй не трогали, условие не выполняется Set Drawingtoken to 1; тогда переменная не изменится. return endif endif или if ( GetItemCount "paint1" < N ) ;допустим, условие НЕ выполняется, предмет 1 не трогали if ( GetItemCount "paint2" < K );а предмет 2 забрали, но проверки не произойдёт, т.к. не выполнено условие 1 Set Drawingtoken to 1; соответственно, переменная так же не изменится return endif endif То есть твой скрипт работает в том случае, если забрали ОБА предмета, а нам надо ХОТЯ БЫ один. Разве нет? Я вижу только такой вариант if ( GetItemCount "paint1" < N ) ;проверяем первый. Если не выполняется - едем дальше Set Drawingtoken to 1 ;если выпооняется - меняем переменную return ;нам этого достаточно, дальше не идём endif if ( GetItemCount "paint2" < K ) Set Drawingtoken to 1 return endif Я уже пару лет скриптов не писал, так что могу ошибаться. Изменено 3 сентября, 2013 пользователем Ao3 Ссылка на комментарий Поделиться на другие сайты Поделиться
Арес Опубликовано 4 сентября, 2013 Жалоба Поделиться Опубликовано 4 сентября, 2013 Поставить ретекстур журнала.То есть модель у всех книг одна и заменить фон только у одной книги нельзя? И где лежит его модель? Ссылка на комментарий Поделиться на другие сайты Поделиться
raddimus Опубликовано 4 сентября, 2013 Жалоба Поделиться Опубликовано 4 сентября, 2013 (изменено) То есть модель у всех книг одна и заменить фон только у одной книги нельзя?Насколько мне известно, так и есть. Изменено 4 сентября, 2013 пользователем raddimus Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 4 сентября, 2013 Жалоба Поделиться Опубликовано 4 сентября, 2013 Ao3, да, моя ошибка. Ваш вариант верный. Ссылка на комментарий Поделиться на другие сайты Поделиться
bi-666 Опубликовано 5 сентября, 2013 Жалоба Поделиться Опубликовано 5 сентября, 2013 Посмотрите вот тут скрипт ImpDestr_MB3_Script - надо заменить все, что в блоке if ( MagicSpell == 1 ) на то, что Вам надо (только Set MagicSpell to 0 не трогайте). Ссылка на комментарий Поделиться на другие сайты Поделиться
Cheese for everyone Опубликовано 6 сентября, 2013 Жалоба Поделиться Опубликовано 6 сентября, 2013 Нужна небольшая помощь по скриптописанию. Пишу скрипт, для того чтобы NPC кидал читал заклинание на находящийся неподалеку сундук (не на другого NPC), ID которого известен. Ситуация: NPC находится в 10 шагах от сундука. Заклинание у него - работающее на удаленную цель с радиусом в 100 футов. Казалось бы, все должно работать по стандартной формуле Cast, SpellID, TargetID. А вот и нет. Ни скрипт, ни консоль не в силах заставить его скастовать заклинание ни на сундук, ни на активаторы. Однако, NPC с удовольствием проделывает это, если целью заклинания указан другой NPC. Собственно, что нужно сделать, чтобы он читал его именно на сундук (или на обьект, отличный от другого NPC)? Ссылка на комментарий Поделиться на другие сайты Поделиться
Ao3 Опубликовано 6 сентября, 2013 Жалоба Поделиться Опубликовано 6 сентября, 2013 Нужна небольшая помощь по скриптописанию. Пишу скрипт, для того чтобы NPC кидал читал заклинание на находящийся неподалеку сундук (не на другого NPC), ID которого известен. Ситуация: NPC находится в 10 шагах от сундука. Заклинание у него - работающее на удаленную цель с радиусом в 100 футов. Казалось бы, все должно работать по стандартной формуле Cast, SpellID, TargetID.А вот и нет. Ни скрипт, ни консоль не в силах заставить его скастовать заклинание ни на сундук, ни на активаторы.Однако, NPC с удовольствием проделывает это, если целью заклинания указан другой NPC. Собственно, что нужно сделать, чтобы он читал его именно на сундук (или на обьект, отличный от другого NPC)? В СХ вроде бы в Вивеке маг на мишени заклинание тренирует (увы, подробностей не знаю). Спроси у кого-нибудь из команды СХ, или скачай и отыщи самого мага, посмотри скрипт... Не знаю чем ещё помочь( Ссылка на комментарий Поделиться на другие сайты Поделиться
Daedroth_CH Опубликовано 7 сентября, 2013 Жалоба Поделиться Опубликовано 7 сентября, 2013 (изменено) Нужна небольшая помощь по скриптописанию. Пишу скрипт, для того чтобы NPC кидал читал заклинание на находящийся неподалеку сундук (не на другого NPC), ID которого известен. Ситуация: NPC находится в 10 шагах от сундука. Заклинание у него - работающее на удаленную цель с радиусом в 100 футов. Казалось бы, все должно работать по стандартной формуле Cast, SpellID, TargetID.А вот и нет. Ни скрипт, ни консоль не в силах заставить его скастовать заклинание ни на сундук, ни на активаторы.Однако, NPC с удовольствием проделывает это, если целью заклинания указан другой NPC. Собственно, что нужно сделать, чтобы он читал его именно на сундук (или на обьект, отличный от другого NPC)?Целью может послужить только живое сущ-во. НЕ скажу точно, как там сделано в СХ, но скорее всего маги стреляют по кричуру с Return при OnPCHitME, ну или же кричур спрятан внутрь манекена. Однако учти, что в СХ (в 1.5. точно) маги не реагировали на атаки на них. Поэтому в их скрипте это надо учесть.И да, маг в СХ стоит на плазе в Телванийском квартале. Изменено 7 сентября, 2013 пользователем Daedroth_CH Ссылка на комментарий Поделиться на другие сайты Поделиться
Cheese for everyone Опубликовано 7 сентября, 2013 Жалоба Поделиться Опубликовано 7 сентября, 2013 (изменено) Целью может послужить только живое сущ-во. НЕ скажу точно, как там сделано в СХ, но скорее всего маги стреляют по кричуру с Return при OnPCHitME, ну или же кричур спрятан внутрь манекена. Однако учти, что в СХ (в 1.5. точно) маги не реагировали на атаки на них. Поэтому в их скрипте это надо учесть.И да, маг в СХ стоит на плазе в Телванийском квартале. Честно говоря, я так и подумал. Теперь как помню, в моде Reign of Fire, что брал с planeteldersrolls была похожая ситуация, простая маленькая, почти невидимая моделька, помещенная в Сreature, без излишеств, с одним лишь блоком Idle анимации и выставленным свойством Fight 0, удаленным пакетом Wander, которую можно спрятать где и в чем угодно, и она работает как детектор скастованного заклинания. Спасибо, что напомнили о ней. Скачал Reign of Fire и взял модельку оттуда. Отлично работает. Квест почти закончен.Теперь осталось еще кое что: почему то скриптом нельзя сделать вот так на пустом контейнере: MYOComChestPainting -> AddItem, "MYOPainting0", -1. Игра зависает - по видимому, уходит в отрицание или бесконечный цикл. В общем, нужно чтобы в пустой контейнер добавлялись бесконечные предметы. Конечно, можно было сделать вот так: MYOComChestPainting -> AddItem, "MYOPainting0", 100000. Но из за эстетики мода, нужно чтобы в меню сундука предмет визуально был всего один - а на самом деле бесконечный. Потому я и попытался добавить количество -1, по сути, так и делается в Tes Construction. Есть ли другой способ добавить в контейнер бесконечное количество предмета через скрипт? Однако, на полном контейнере с бесконечным количеством предметов (при помещении предмета в сундук было установлено его count на -1), MYOComChestPainting -> RemoveItem, "MYOPainting0", -1 вполне работает (если предмет до этого там уже был) и бесконечный предмет исчезает. Изменено 7 сентября, 2013 пользователем dddssss Ссылка на комментарий Поделиться на другие сайты Поделиться
Daedroth_CH Опубликовано 7 сентября, 2013 Жалоба Поделиться Опубликовано 7 сентября, 2013 Впервые кстати? кстати, про добавление предметов отрицательным числом. Возможно, при addditem -1 скрипт пытается забрать предмет из сундука, отрицание, все таки, но, когда его не находит, то начинает вылетать. Однако у игрока можно ремовить отсутствующие у него предмета без вреда для игры. Ссылка на комментарий Поделиться на другие сайты Поделиться
bi-666 Опубликовано 7 сентября, 2013 Жалоба Поделиться Опубликовано 7 сентября, 2013 Попробуйте проверять наличие предмета, если его нет - добавляйте одну штуку. Чтобы предмет нельзя было оложить назад в контейнер - поставьте ему галочку Organic Container, чтобы скрипт не ломался от кнопки "Взять все" - посмотрите тут. Ссылка на комментарий Поделиться на другие сайты Поделиться
Cheese for everyone Опубликовано 7 сентября, 2013 Жалоба Поделиться Опубликовано 7 сентября, 2013 (изменено) Ага, работает, но если при покупке оставить в контейнере хотя бы 1 предмет. А вот если купить сразу все из контейнера, восстанавливает количество с глюками, например может взять и восстановить 10-30 штук первого предмета. Использовал конструкцию на 10 предметах: If ( GetItemCount, "MYOPainting0" < 1 )AddItem, "MYOPainting0", 1 и т.д. Как прочитал из статьи, всегда советуют оставлять в таком сундуке по 1 разновидности временных предметов, которые удаляются, как только игрок активирует сундук, а затем добавляются вновь. В связи с этим у меня возникла мысль получше - каждый раз добавлять нужные для торговли предметы NPC, а не контейнеру, если начать диалог. И каждый раз убирать их у него, если произошел выход из диалога. Это значительно сократит скрипт и куда более оптимально, чем проводить проверку сундука каждый фрейм. Единственное, что осталось узнать для этого, так это функцию, показывающую, что игрок вступил в диалог с данным NPC. Есть такая? Изменено 7 сентября, 2013 пользователем dddssss Ссылка на комментарий Поделиться на другие сайты Поделиться
mortuus Опубликовано 7 сентября, 2013 Жалоба Поделиться Опубликовано 7 сентября, 2013 Подскажем, стартуй скрипт из гритинга в диалогах. Ссылка на комментарий Поделиться на другие сайты Поделиться
Cheese for everyone Опубликовано 8 сентября, 2013 Жалоба Поделиться Опубликовано 8 сентября, 2013 Сработало. Спасибо всем за ответы .Квест закончен и работает как надо. Ссылка на комментарий Поделиться на другие сайты Поделиться
raddimus Опубликовано 26 сентября, 2013 Жалоба Поделиться Опубликовано 26 сентября, 2013 (изменено) Не работает довольно старинный мод, отключающий инвентарь при параличе http://download.flig...ownload-110-164Скрипт вот такой: begin fl_fp_globalshort stateshort keyif ( MenuMode )Returnendifset state to ( player->GetEffect sEffectParalyze )set key to fl_fp_keyifx ( state )MGEDisallowKey keyelseMGEAllowKey keyendifend Переменная fl_fp_key соответствует правой клавише мыши (257), пробовал и встроенный в МГЕ MWSE, и внешний. Может, возможно реализовать иначе? P.S. Всё готово, спасибо, Дез! Изменено 26 сентября, 2013 пользователем raddimus Ссылка на комментарий Поделиться на другие сайты Поделиться
Boma Kuro Опубликовано 26 сентября, 2013 Жалоба Поделиться Опубликовано 26 сентября, 2013 Переменная fl_fp_key соответствует правой клавише мыши (257), пробовал и встроенный в МГЕ MWSE, и внешний. Может, возможно реализовать иначе?А с другими кнопками тоже не работает? А так при параличе можно и DisablePlayerControls использовать ...или это совсем уж жестоко? Ссылка на комментарий Поделиться на другие сайты Поделиться
raddimus Опубликовано 26 сентября, 2013 Жалоба Поделиться Опубликовано 26 сентября, 2013 А с другими кнопками тоже не работает?А так при параличе можно и DisablePlayerControls использовать ...или это совсем уж жестоко?Не проверял, да и смысла особого не вижу.Это как раз то, что нужно! Уж паралич - так паралич. Тогда, насколько понимаю, зависимость от МГЕ и МВСЕ отбрасывается и глобальная переменная не нужна будет, только глобалскрипт? Если не трудно - поправьте скриптик, чтобы при висящем на персонаже параличе включалась DisablePlayerControls. Ссылка на комментарий Поделиться на другие сайты Поделиться
Марк К. Марцелл Опубликовано 26 сентября, 2013 Жалоба Поделиться Опубликовано 26 сентября, 2013 (изменено) Это как раз то, что нужно! Уж паралич - так паралич. Т.е. эффект лечения паралича автоматом изымается из геймплея. У алхимиков появляются бутылочки чисто украшательного характера, которые к тому же встречаются в левел-листах. Изменено 26 сентября, 2013 пользователем Марк К. Марцелл Ссылка на комментарий Поделиться на другие сайты Поделиться
raddimus Опубликовано 26 сентября, 2013 Жалоба Поделиться Опубликовано 26 сентября, 2013 Т.е. эффект лечения паралича автоматом изымается из геймплея. У алхимиков появляются бутылочки чисто украшательного характера, которые к тому же встречаются в левел-листах.А как ты представляешь себе лечение самого себя от паралича?Бутылочки, в соответствии с задумкой автора оригинала мода станут зельями сопротивления параличу, заклинание никуда не денется и пользоваться им для излечения других можно будет вполне успешно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти