что бы я не менял в шаблонах, в игре ничего не меняется. нужно удалить кнопку Сохранить.
Ты менял файл Menus\Options\Pause_Menu.xml, внутри pause_save_button там, где в норме копируется _FlagIsSaveAllowed, вместо всего этого <copy ... /> ставил &false; - и ничего не менялось? Гмм... У тебя архив инвалидатора инвалидации будущим годом датирован? То есть свежее, чем файл, который ты правил?..
Ipatow, извиняюсь. Чуть проще можно? Валидация у меня от fomm, более ничего не знаю.
Добавлено (10 Октября 2014, 03:10) --------------------------------------------- Засунул этот файл в фомод, установил таким образом. Ну раз проблема может быть в валидации, ничего не поменялось. Больше похоже что эти файлы вообще не за что не отвечают.
Засунул этот файл в фомод, установил таким образом
Что-то я задумался: а ты вообще что пытаешься сделать? Самому себе отключить кнопку? Так тут достаточно силы воли, не нажимаешь на неё и всё. Кому-то другому свинью подложить? Так он покроет тебя трёхэтажным и отломает твоё издевательство... Ну, это был академический интерес... Так или иначе, прежде чем компоновать какие-то фомоды на раздачу, сначала надо убедиться, что файл сам по себе работает и все элементы на экране игры выглядят как задумано - так же, как прежде чем заворачивать текстуру в BSA, надо убедиться, что она отрисовывается в игре как хотелось и т.п.
Насчёт "валидации" - чтобы без громоздких повторений, сходи в КАРТОТЕКУ...
Изменение репутации для пользователя Darwinian
DarwinianOffline
Сообщение №1265
написано: 10 октября 2014, 09:34
| Отредактировано: Darwinian - 10 октября 2014, 09:27
И эффекта не имеет, кнопка на месте. Два раза на инвалидацию жмякал. добавление других текстур работает нормально.
Добавлено (10 Октября 2014, 13:29) --------------------------------------------- Да даже если все из этого файла удалить, меню не поменяется. Этот файл вообще не участвует в построении меню.
Добавлено (10 Октября 2014, 13:34) --------------------------------------------- В общем. Для чистоты эксперемента. Разобрал Fallout - Misc.bsa. Засунул туда измененный pause_menu.xml и снова запаковал и поместил в папку data. Изменений нет.
Да, запросто может не участвовать. Каждый раз, когда я что-то ищу в дебрях меню, я очень быстро начинаю произносить недружелюбные реплики в адрес лошади, на которой приехал Рикардо Гонзалес... Хотя лошадь, в общем, практически ни в чём не виновата
Так или иначе, все менюшки - там, в папке менюз. И я совершенно уверен, что эту кнопку можно там найти и истребить. Вопрос в том, насколько кровь-из-носу это тебе надо...
Darwinian, а если через функцию MenuMode 1013 ? Вышел геймер по эскейпу в паузу - а ему сообщение, мол - рано вышел. И возврат в игру. И так, пока не сохранится автоматически в нужной точке и не отработает переменная, отслеживающая это сохранение. ЗЫ. Моё дело - предложить, а разбирать по косточкам будут профи
Очень надо. Идея такова, убрать у пользователя возможность сохраняться самому.
Да, почему-то мне так сразу и показалось. И я сразу и сказал, что сделает пользователь. Первым делом покроет тебя матом, разумеется. Потом, если твой мод не чудовищно привлекателен, выкинет эту наглую гадость в мусорку и по всем форумам отсоветует не трогать продукцию шибко умного, который лучше юзера знает, что юзеру надо. А если мод и впрямь конфетка аж слюна капает - тогда да, выломает твою "защиту" и всем знакомым раздаст версию "без бага"... Это безнадёжное дело - загонять железной рукой пользователя в светлое будущее. Ну оторвал ты у него сохранение из меню, выключил быстрое сохранение, а потом вырвал у него с компьютера и растоптал все известные тебе моды, которые для забывчивых автоматично сохраняют игру то ли по таймеру, то ли в ключевых моментах (по завершении боя например)... Пользователь найдёт способ сохраниться.
Как подобное делается относительно цивилизованным способом. Не надо перехватывать сохранение - перехвати загрузку. Создай глобальную переменную-флажок, которая выставляется в единичку только перед разрешённым сохранением и сразу после него сбрасывается на нолик. То есть если мы загрузились и видим единичку - сейв был "кошерный". Если нолик - значит, сохранение было без разрешения, и мы вывешиваем табличку: "эта сохранённая игра не может быть восстановлена без отключения мода МойМод" и играть не даём. Если игрок согласен с твоими правилами игры - он хлопнет себя по лбу - дескать, чёрт! по привычке машинально быстрое сохранение ткнул! - и загрузится с "кошерного" сейва безо всяких матов. А если не согласен - ну так пусть отключает и восстанавливается с дорогого его сердцу момента, мы ему руки не выкручиваем.
Изменение репутации для пользователя КсюXa
КсюXaOffline
Сообщение №1270
написано: 11 октября 2014, 05:48
| Отредактировано: КсюXa - 11 октября 2014, 05:50
Не надо перехватывать сохранение - перехвати загрузку.
Это по типу, как в "проект Бразил" ? Там при запуске игры предлагается на выбор во что играть: в основной Вегас или побегать по "Бразилу". При выборе второго грузится их мод со всеми их прибамбасами. И пользователь уже морально готов ко всем причудам создателя.
На бразилов я смотрел очень мельком, и на то, как там оборудованы сохранения, внимания не обратил. Но подобным образом с сохранениями обходится Arwen в её Tweaks в модуле "бессмертного ГГ":
[...] One Life (Arwen_OneLife.esp): [...] - Important! Auto-Saves MUST be disabled when this module is active, and please do not use Quick-Saves or Quick-Loads (or any mod that alters the default saves or adds automatic saves). [...] - One Life saves are done as a pair: the OneLife_Death save automatically revives your character after they die (Normal Death); and the OneLife_Alive saves can be loaded at anytime (without penalties), should your game crash (or as a convenient restore point). Only the last the OneLife_Death save and the last three OneLife_Alive saves are kept (the oldest save will be overwritten at the next automatic Stat save), so you may want to do an occasional manual save. (But, if you die before my scripted save is updated, the default death/reload will be triggered). - Loading the last OneLife_Alive save will just restore your game at the last One Life backup autosave. Loading the last OneLife_Death save will initiate a Normal Death, with the normal One Life death penalties (useful if you experienced a CTD on death). But you should avoid loading a One Life save from a previous gaming session (after starting the game), as the game doesn't like loading older Revival points, after new ones have been set. - When you are finished with a game session, you should always make a manual save before you quite the game (and you should always load your manual save when you resume your game). [...]
Первым делом покроет тебя матом, разумеется. Потом, если твой мод не чудовищно привлекателен, выкинет эту наглую гадость в мусорку и по всем форумам отсоветует не трогать продукцию шибко умного, который лучше юзера знает, что юзеру надо.
Я напишу что мне вроде как плевать.
Идея перехватить загрузку верная, но что то я не могу придумать как это реализовать. Получается после каждой загрузке происходит проверка, если сейв был сделан скриптом, играем дальше. Если нет игрок умирает\портается в тестировачную комнату. Как сделать проверку сразу после загрузки?
Проверяем GetGameLoaded в квестскрипте, если загрузились: без флага "честная загрузка" вежливо не даём играть, с флагом - сбрасываем флаг. Игрок, в принципе, может успеть сохраниться в те моменты, когда флаг "честная загрузка" стоит - но поскольку это либо в полсекунды после честной загрузки до проверки флага квестскриптом, либо за долю секунды до или после честного сейва... Мы не будем скандалить насчёт сейва, "нечестного" на секунду.
Ребят, извините,что не в тему.Но у меня большая проблема:Отказал FOMM при запуске выдает табличку отправлять не отправлять отчет:((((Что с этим делать,пробовал переустановить и игру и FOMM ничего не помогает:(((
Привет всем. Думаю вот сделать что то типа системы заказов как в сталкере, но через терминал, а не НПС. В общем хочу чтобы некоторые очень редкие стволы и спец костюмы заказывались через терминал. Смотришь в терминале что есть, выбираешь вещь которая понравилась и заказываешь. Сразу после подверждения заказа забираются крышки/довоенные деньги и через, скажем, пару дней в контеинер добавляется заказанная вещь.
Как в ГЕККЕ устроены терминалы -это я знаю, списки оружия и т.д. сделать смогу. Хотелось бы узнать какой самый разумный способ запустить скрипт с терминала чтобы начать отсчет времени и по его истечений в контеинер добавилась вещь. И так как в скриптах я не силён, то был бы благодарен за пример такого скрипта.
Спасибо.
Вдохни… взгляни вокруг, поверь в спасенье, Ведь между злом - песчинки доброты… И вспомни, прочитай в безбрежном небе, Что кто-то дышит, пока дышишь ты...
Как в ГЕККЕ устроены терминалы - это я знаю, списки оружия и т.д. сделать смогу. Хотелось бы узнать какой самый разумный способ запустить скрипт с терминала чтобы начать отсчет времени и по его истечений в контеинер добавилась вещь.
В терминале в строчке нужной покупки условие Player.GetItemCount Caps001 >= цены выбирает, показывать ли кнопку "купить" или кнопку "цена вот, но у тебя столько нет". В варианте "купить" Item Result Script нужной покупки исполняет
Создаётся Actor Effect имени этого товара с одним базовым эффектом имени этого товара и длительностью трое суток или сколько там надо, можно каждому товару свой срок сделать. Создаётся Base Effect имени этого товара - флажок только Self, назначен скрипт имени этого товара. Создаётся скрипт этого товара:
SCRIPTNAME Order001Script BEGIN ScriptEffectFinish контейнер-реф.AddItem нужный-товар нужное-количество END
Всё это увязывается как положено - скрипт в магэффект, магэффект в спелл, спелл в скрипт строчки терминала.
Как работает - строчка терминала забирает деньги и вешает на ГГ эффект, который по окончании действия положит что надо куда надо. Можно ещё вместо Actor Effect сделать Ingestible (включается тем же CastImmediateOnSelf, прописывать кроме базовых эффектов ничего не надо, поскольку в виде предмета оног нигде никогда не появится), тогда по окончании игра сама исполнит "ДЗЫНЬ!" и выдаст сообщение "действие эффекта-ожидания-покупки закончилось!"
Изменение репутации для пользователя BigBadBoss
BigBadBossOffline
Сообщение №1281
написано: 22 октября 2014, 09:38
| Отредактировано: BigBadBoss - 20 октября 2014, 19:24
Добавлено (20 Октября 2014, 23:16) --------------------------------------------- Еще такой вопрос. Как сделать чтобы игрок заидя к примеру в газовое облако начал терять здоровье и выидя из него переставал? Например как в ДЛС "Мертвые деньги" в фаллаут Нью вегасе. Помню мне удавалось сделать такое как то давно, еще на старом компьютере, но без конца выскакивало сообщение о дабалений эффекта и его окончаний, что мне лично не понравилось.
Добавлено (22 Октября 2014, 13:38) --------------------------------------------- Вобще никто незнает какой скрипт прикрутить, чтобы здоровье уходило?
Вдохни… взгляни вокруг, поверь в спасенье, Ведь между злом - песчинки доброты… И вспомни, прочитай в безбрежном небе, Что кто-то дышит, пока дышишь ты...
SCRIPTNAME GasCloudEffect FLOAT Timer BEGIN ScripEffectUpdate SET Timer TO Timer - ScriptEffectElapsedSeconds IF Timer > 0 RETURN ENDIF SET Timer TO интервал-укуса DamageActorValue Health размер-укуса END
Скрипт в базовый эффект, базовый эффект куда хочешь - хоть в энчант брони, хоть в спелл/абилку, хоть в таблетку. Напомню, что здоровье имеет тип float, так что можно кусать хоть по 3.14
Вдохни… взгляни вокруг, поверь в спасенье, Ведь между злом - песчинки доброты… И вспомни, прочитай в безбрежном небе, Что кто-то дышит, пока дышишь ты...
Вобще никто незнает какой скрипт прикрутить, чтобы здоровье уходило?
Предположим (хоть из вопроса хрен поймёшь), что имелось ввиду какой скрипт прикрутить не к хвосту собачьему, а к облаку, чтобы здоровье не чьё-нибудь, а игрока, уходило в смысле не погулять, а постепенно уменьшалось. Для этого на месте облака ставим сферический триггер (если облако не кубическое, конечно) и к нему прикручиваем что-то вроде (написал без проверки):
Код
float timer
Begin OnTrigger player
if timer < 0 set timer to 1 player.DamageAV health [сколько уходить в секунду] else set timer to timer - GetSecondsPassed endif
Уже не касательно вопроса BigBadBoss, а из любознательности - а кидаться триггерами можно? Ну, вот я гранату допустим газовую кинул и оно должно две минуты вонять...
Уже не касательно вопроса BigBadBoss, а из любознательности - а кидаться триггерами можно?
В свойствах Explosions есть окно Placed Impact Object. Туда можно засунуть все что угодно. Можно попробовать и триггер. Если у кого-нибудь получится, отпишитесь.
====================== Мод "Нью-Йорк" на русском: https://modgames.net/load/fallout3/addon/new-york-bolshoe-yabloko/34-1-0-1294 Мод "Нью-Йорк" на английском: https://modgames.net/load/fallout3/kvesty/the-big-apple/23-1-0-19771
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №1288
написано: 22 октября 2014, 22:15
| Отредактировано: Joopeeter - 22 октября 2014, 22:15
а кидаться триггерами можно? Ну, вот я гранату допустим газовую кинул и оно должно две минуты вонять...
А в "Мёртвых деньгах" это граната? А то я не играл, так что не в курсе. Подумал про стационарное облако типа утечки газа.
Нет, кидаться триггерами не получается. Непосредственно назначать его как Placed Impact Object, как я понимаю, бесполезно - размер-то задаётся в ГЭКК. Но это ладно, можно было бы растянуть заранее и потом его MoveTo куда требуется. Но передвинутый триггер, хоть и показывает новые "передвинутые" координаты, все свои триггерские свойства оставляет где они были. То есть блоки OnTrigger и OnTriggerEnter как срабатывали на старом месте, так и продолжают срабатывать на том же самом старом месте.
На замену триггеру в голову приходит только что-то совсем громодкое. Типа сделать взрыв огромного радиуса, а в середину положить маленькую постоянную ссылку. Взрыв всем вокруг бродячим актёрам - потенциальным жертвам выдаст эффект, который будет отслеживать расстояние до постоянной ссылки. И такой же взрыв, но без постоянной ссылки в середине, одновременно помещается персонально под игрока. Чтобы эффект гарантированно достался ему и спутникам. Ну и кто подойдёт к ссылке близко, у того здоровье и уходит. Смущает то, что GetDistance вроде считается тяжёлой функцией, да ещё в таких количествах, да ещё на стольких актёрах.
Плюс к тому непись, в отличие от игрока, не сможет распознать атаку, сообразить отчего вдруг ему поплохело и что надо быстрее бежать от ссылки подальше. Так и помрёт там в облаке. Разве что ещё скриптовый пакет какой-нибудь ему дать заодно, чтобы выманить из ядовитого места.
Изменение репутации для пользователя Броненосец
БроненосецOffline
Сообщение №1289
написано: 22 октября 2014, 23:50
| Отредактировано: Рашпиль - 22 октября 2014, 23:54
fActorSwimBreathBase (по умолчанию 10, в обливионе было 4) Determines the base length that any actor can stay under water. fActorSwimBreathMult (по умолчанию 0.5, в обливионе было 0.3) Multiplier for how long an actor can stay underwater, based Endurance. fActorSwimBreathDamage (по умолчанию 0.2) Determines the percent of total health damage that occurs per second when you stay underwater too long.
Эээ.. что-то я ничего не понял. Это какие-то характеристики гг? Где их искать? А если из изменить это будет только на гг работать или на нпс тоже?
Это какие-то характеристики гг? Где их искать? А если из изменить это будет только на гг работать или на нпс тоже?
Это параметры игры. Изменяются они в GECK: меню -> Gameplay -> Settings...
Влияют ли они только на ГГ, я не проверял - с одной стороны, всяким болотникам игра выдаёт подводное дыхание, но это может быть такой же нелепостью, как специально выданный супермутантам иммунитет к радиации (фоновая радиация в игре действует только на ГГ, остальные облучиться могут практически только через поедание радиоактивной пищи)...