Прежде чем задавать вопрос - посмотрите в >> КАРТОТЕКЕ << Возможно, там уже есть готовый ответ.
Тема предназначена для общих вопросов. Прежде, чем тут что-то написать, посмотрите другие темы этого раздела. Вполне возможно, что они больше соответствуют тематике вашего вопроса.
gamedayspassed - это не функция, а глобальная переменная, отсчитывающая время в сутках с момента начала игры (float, одни сутки - единица, один час примерно равен 0,0417). Для того, чтобы использовать ее в таймерах, нужно засекать это время и потом сравнивать с текущим. Если ее просто вставить в тот скрипт вместо getsecondspassed, получится все, что угодно, кроме того, что Вам нужно.
====================== Мод "Нью-Йорк" на русском: 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
Изменение репутации для пользователя Hellraiser
HellraiserOffline
Сообщение №3662
написано: 26 декабря 2013, 21:07
| Отредактировано: Hellraiser - 26 декабря 2013, 20:21
С учетом того, что это должен быть не базовый объект, а его Ref копия.
О этом было написано сразу же.
Добавлено (27 Декабря 2013, 00:19) --------------------------------------------- А вообще я себе оживление делал вот таким образом:
IDRef.resurrect 1 IDRef.setActorValue Health 600
вместо 600 ставим сколько хотим в пределах разумного.
Добавлено (27 Декабря 2013, 01:07) --------------------------------------------- Ща накропаю ликбез.
Death is the old debt, which sooner or later will have to pay. This is as good a day to die as any, but at your funeral nobody will come. Your way in hell you'll have to do yourself... Happy journey! Alright, guys, all will be there, but you before...
1. Создаём НОВОГО НПС, ставим его в мир и даём ему уникальный RefID + постоянную ссылку на него. Cм.ниже: Почему нужно создать именно нового НПС? Если использовать базовый объект из игры без изменения его Object ID и повесить на него скрипт, то этот скрипт будет висеть на всех НПС, использующих этот базовый объект. Ход игры можно поломать.
2. Пишем вот такой объектный скрипт: 3. Вешаем его на нашего нового НПС: 4. Идём в игру и наслаждаемся - валим его, а он вскакивает через сутки как ни в чём не бывало. 5. Прикладываю esp. Сделал я нового НПС и поместил около салуна "Старатель". После его убийства он вскакивает через сутки. И так до бесконечности. Надеюсь, что нужное вам время респауна выставите сами. Нужно заменить "1" на нужное кол-во дней в глобальной переменной GameDaysPassed+1 Ссылка на esp
UPD
1. Ещё нужно добавить в скрипт одну строку, чтобы у НПС снова появлялось оружие, которое он выронил во время боя. См.ниже: Естественно, все предметы, выроненные этим НПС и валяющиеся на земле, исчезнут при срабатывании скрипта.
2. Да, и тип переменной DayN лучше поменять с short на float для ТОЧНОГО отсчёта времени:
Примечание:
Естественно, при таком подходе придётся писать скрипты на каждого НПС, так в них используются их уникальные RefID.
Death is the old debt, which sooner or later will have to pay. This is as good a day to die as any, but at your funeral nobody will come. Your way in hell you'll have to do yourself... Happy journey! Alright, guys, all will be there, but you before...
В дополнение к Hellraiser. Специально для таких случаев, когда нет желания ждать дефолтные трое суток, имеется функция GetTimeDead, которая отмеряет время после смерти актера в часах. Применение этой функции делает скрипт немного короче:
Код
if getdead && GetTimeDead > 24 ResurrectActor ResetHealth endif
====================== Мод "Нью-Йорк" на русском: 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
Hellraiser, К сожалению ваш способ не подойдет, т.к. неписей уже более 1000 разбросано по пустошам и каждому приписывать свой ID, проще говоря, задолбаешься. У меня масштабный мод, с уже выставленными спавнточками, вот только по непонятной мне причине они не респавнятся или респавнятся не в должном количестве, я с таким никогда раньше не сталкивался, скрипты не писал, увы но для меня, то что для вас является очевидным, темный лес. Прошу вас, пожалуйста, объясните, что и как (на ин.яз. сайтах нужной инфы не нашел, все не то). Что можно сделать в моем случае: на пустошах уже имеется к примеру 150 спавнточек моих аааLvlSuperMutan, как их заставить возрождаться каждые 12ч, т.е. глобально, не прикручивая к каждой точке свой рефАйДи, а повешать скрипт именно на аааLvlSuperMutan? И да, спасибо вам всем что вызвались помочь, я уже третий день ковыряю Вегас и все безрезультатно, сегодня заметил, что и с ванильными спавнточками такая же беда, на трассе которая проходит от Примма до Карьера с Когтями смерти, подрывники не респавнятся или респавнятся частично, но есть один подрывник возле труппов караванщиков, который респавнится всегда, но почему-то полудохлый. Изучил его, обычный подрывник без скриптов и каких-либо ссылок/связей/ и прочей лабуды, почему он работает, а другие исчезают или глючат не пойму.
не прикручивая к каждой точке свой рефАйДи, а повешать скрипт именно на аааLvlSuperMutan
Для неприкручивания ко всему подряд своих рефайди служит Linked Ref, а для навешивания одного и того же скрипта на многих - чек-бокс Use Script при назначенном шаблоне (Template).
Изменение репутации для пользователя spok2
spok2Offline
Сообщение №3669
написано: 27 декабря 2013, 16:05
| Отредактировано: Hellraiser - 27 декабря 2013, 21:57
а для навешивания одного и того же скрипта на многих - чек-бокс Use Script при назначенном шаблоне (Template).
?????????????? Ладно, я так понял, что я не получу нормального ответа. Шут с ними с этими скриптами (похду это не для меня) и Вегасом тоже, надо оно мне, ***** такое. Блин в Скайриме все намного удобнее и проще (хотя тоже проблем хватает, но такого маразма я еще нигде не видел). Спасибо хоть на этом.
Ладно, я так понял, что я не получу нормального ответа.
Здесь что, кто-то виноват в том, что у тебя ни свои, ни ванильные не респавнятся? Не хочешь чек-бокс, выбирай один и тот же скрипт из списка прокрутки - это то же самое. Просто вешаешь на своего супермутанта скрипт без упоминания всяких рефов - по умолчанию все функции применяются к носителю скрипта. NPCRef.GetDead - это если только ты хочешь проверить какого-то другого непися, не того, на котором скрипт. Если проверяешь носителя - достаточно просто GetDead. И так далее. Если актёры там у тебя как-то привязаны к каким-то точкам спавна, которым ты не хочешь всем давать свои RefID, то привязываешь их к этим точкам linked ref'ом, а в скрипте используешь конструкцию с реф-переменной. Типа такого:
Код
ref MyLink
Begin OnDeath ; (OnReset, On ещё что-нибудь)
set MyLink to GetLinkedRef ; дальше используешь эту переменную так, как будто это обычное RefID
End
Добавлено (27 Декабря 2013, 20:35) --------------------------------------------- И поверь, неизвестно у кого больше поводов для раздражения - у тех ли, кому не разжевали, а просто указали нужное напрвление, или у тех, кто разъясняет чуть ли не кажые две недели одни и те же простые базовые вещи, которые есть во всех туторах и учебниках.
Изменение репутации для пользователя Hellraiser
HellraiserOffline
Сообщение №3671
написано: 27 декабря 2013, 18:16
| Отредактировано: Hellraiser - 27 декабря 2013, 18:44
аааLvlSuperMutan, как их заставить возрождаться каждые 12ч
Если у тебя всего один базовый объект на всех неписей - аааLvlSuperMutan, то это проще пареной репы. Сейчас скрипт переделаю, попробую в игре и отпишусь.
Death is the old debt, which sooner or later will have to pay. This is as good a day to die as any, but at your funeral nobody will come. Your way in hell you'll have to do yourself... Happy journey! Alright, guys, all will be there, but you before...
Здесь что, кто-то виноват в том, что у тебя ни свои, ни ванильные не респавнятся?
Да я ж разве вас в чем-то обвинил или упрекнул? Я сам ничего не могу понять, ну не врубаюсь я в скрипты, отсюда и раздражение, но оно ни к вам ни к кому-либо еще отношения не имеет. Разжевать это именно то что мне и нужно, увы я ничего не понимаю в скриптах, а разбираться просто нет времени, если вам сложно, то можете мне ничего не объяснять вы имеете на то полное право и я вас ни в коем-случае не буду ни к чему принуждать. Вы даете ссылки, но для меня они почти бесполезны, я редактор изучал без всяких уроков, как говорится методом тыка, и к примеру термин чек-бокс для меня пустой звук, эти уроки помогут лишь так скажем первооткрывателям редактора ценной информации, лично для меня, в них почти нет, потому я различными терминами не совсем владею, но это конечно же моя проблема никак не ваша, просто я уже писал, то что для вас может быть очевидно, для меня лес дремучий. Можете оъяснить - буду признателен, не можете или не хотите - ваше право, никаких обид и претензий с моей стороны не будет.
Изменение репутации для пользователя Hellraiser
HellraiserOffline
Сообщение №3673
написано: 27 декабря 2013, 18:43
| Отредактировано: Hellraiser - 27 декабря 2013, 19:15
1. Создаём новый базовый объект. В моём случае это а01188MercA, в твоём это будет аааLvlSuperMutan. Затем суём их сколько хочешь в мир - присваивать им RefID не нужно!. Я для примера сделал пятерых. 2. Пишем вот такой скрипт: 3. Вешаем этот скрипт на наш базовый объект:
Всё. Теперь все копии этого объекта в мире, будучи убитыми, будут возрождаться через 13 часов. Проверено. Вот esp. Пять новых неписей бродят у магазина Чета в Гудспрингс. Можете убедиться сами.
Death is the old debt, which sooner or later will have to pay. This is as good a day to die as any, but at your funeral nobody will come. Your way in hell you'll have to do yourself... Happy journey! Alright, guys, all will be there, but you before...
я редактор изучал без всяких уроков, как говорится методом тыка,
А вот это очень плохо. Зачем тыкать во что-то, если это "что-то" уже разжевано и разложено по полочкам кучу лет назад? Не понимаю я вас...
Death is the old debt, which sooner or later will have to pay. This is as good a day to die as any, but at your funeral nobody will come. Your way in hell you'll have to do yourself... Happy journey! Alright, guys, all will be there, but you before...
Зачем тыкать во что-то, если это "что-то" уже разжевано и разложено по полочкам кучу лет назад?
Разжевано то что и разжевывать не надо, только самое примитивное, то до чего самому додуматься не сложно, я конечно же посещаю форумы, офф.сайты, но действительно полезной информации очень мало, все в общих чертах и самое простое.
Проверил, все сделал как на картинках, не появляются, я в шоке, что за напасть такая. Попробую начну новую игру, либо создам лвлНПС с нуля, но завтра, на сегодня с меня хватит
Изменение репутации для пользователя Hellraiser
HellraiserOffline
Сообщение №3677
написано: 27 декабря 2013, 19:21
| Отредактировано: Hellraiser - 27 декабря 2013, 21:36
А здесь вы очень не правы. Даже в Картотеке немеряно полезной информации для думающих людей. А вы, видимо, думать просто не хотите. Я сделал последний скрипт для вас (cм. ниже), собрав и оптимизировав его как мозаику из ответов уважаемых Spalny_Vagon, Graf и Joopeeter, данных вам же. Теперь он до смешного прост. UPD Хочу внести некоторые поправки в свой скрипт. Нужно написать так: Почему именно так? Если при смерти актер был расчленён, то при его возрождении с помощью старого скрипта, он мог остаться без головы или чего он там потерял во время смерти (руки, ноги, яйца :)). Я исправил свою оплошность. С этим скриптом таких проблем нет - все как новенькие . Если в скрипте переставить строки ResetInventory и ResurrectActor местами, то наши парни возрождаются целыми, но голыми. Вот такая фича, оказывается. Век живи - век учись. Ну и ещё одна мелочь - при старом скрипте актер возрождался не через 12, а через 13 часов. Теперь всё четко - именно 12. Правленный espшник тут
Death is the old debt, which sooner or later will have to pay. This is as good a day to die as any, but at your funeral nobody will come. Your way in hell you'll have to do yourself... Happy journey! Alright, guys, all will be there, but you before...
ценной информации, лично для меня, в них почти нет, потому я различными терминами не совсем владею
Мне кажется, или в этом предложении действительно есть противоречие?
В одной только этой теме, не считая соседних, триста страниц вопросов и из них, вопросов, процентов восемьдесят или больше происходят от метода тыка. И да, если кто-то желает применять, например, скрипты хоть чуть-чуть осмысленно, а не методом тыка, ему придётся хотя бы самый минимум освоить, чтобы хоть понимать, про что ему отвечают. Нет, если нравится тыкаться наощупь, никто запретить, конечно, не может.
Ладно, это всё лирика. А физика в том, что скриптовый респаун, который ещё может худо-бедно служить костылём для возрождения нескольких неписей, для массового применения непригоден. Лишняя тысяча неписей - это и так неслабая дополнительная нагрузка, даже если у них отмечен No Low Level Processing. А лишняя тысяча неписей со скриптами GameMode - это вообще ни в какие ворота. Те, кто читал туторы, знают, что скрипты на неписях выполняются всегда, даже когда те не находятся в загруженной области. Пусть у "незагруженных" они выполняются и не в каждом фрейме, а пореже, но всё равно достаточно часто. Не нужна и без того не слишком стабильной игре тысяча GameMode'ов.
Изменение репутации для пользователя Hellraiser
HellraiserOffline
Сообщение №3679
написано: 27 декабря 2013, 22:57
| Отредактировано: Hellraiser - 28 декабря 2013, 06:49
Скрипт-то у нас один единственный, если что. Так как базовый объект один.
UPD C утречка поразвлекался - довёл кол-во неписей в одной точке от не х... делать до 152 - полёт нормальный. Дальше уже точно лень стало. См. спойлер.
1. 152 НПС около магаза Чета в ГЕКК: 2. 152 НПС в игре: Esp Естественно, стало тормозить от такого кол-ва народа в одном месте. Но ни вылетов, ни глюков. Кстати, этот файл можно использовать как тест для игры и компов. :D
Death is the old debt, which sooner or later will have to pay. This is as good a day to die as any, but at your funeral nobody will come. Your way in hell you'll have to do yourself... Happy journey! Alright, guys, all will be there, but you before...
С этим не спорю, но тут такое дело. У автора какой-то то ли редкий баг игры, то ли мод какой влез в настройки респавна и тот сломался, не знаю. А у других всё работает как надо и без скриптовых костылей. Если автор делает мод для собственного пользования, то ему, конечно, придётся принимать какие-то меры чтобы мод работал с его редким багом. Если для опубликования, то пользователям эти скрипты нужны как собаке пятая нога. Нет, если автор предупредит в описании что-де такое дело, тыща неписей, тыща скриптов, может предъявлять повышенные требования, то я ни слова не скажу. А если не предупредит, то скажу.
И да, ещё. Сам таких модов, населяющих пустошь до плотности Москвы, не ставил и не собираюсь, но неоднократно встречал отзывы, что от них начинаются тормоза. И в Вегасе, и в третьем Фоллауте, хотя тот сам по себе технически лучше отлажен. Это, надо полагать, даже без скриптов (хотя кто их знает). Сейчас уж тех сообщений не найду, конечно.
Изменение репутации для пользователя Hellraiser
HellraiserOffline
Сообщение №3681
написано: 28 декабря 2013, 06:47
| Отредактировано: Hellraiser - 28 декабря 2013, 06:48
А у других всё работает как надо и без скриптовых костылей.
Да это понятно, у меня тоже с респавном никогда проблем не было. Просто я решил немного поразвлекаться, да и проверить заодно кое-какие догадки в игре. Опять таки тот скрипт, который я написал первым (оживление НПС по Ref) может кому-нибудь и пригодится. Вполне возможно, я сам его использую.
Death is the old debt, which sooner or later will have to pay. This is as good a day to die as any, but at your funeral nobody will come. Your way in hell you'll have to do yourself... Happy journey! Alright, guys, all will be there, but you before...
Если при смерти актер был расчленён, то при его возрождении с помощью старого скрипта, он мог остаться без головы или чего он там потерял во время смерти (руки, ноги, яйца :)).
таких чудес я еще не видел, но если ближе к делу, то он мало чем помогает - присутствует все та же проблема частичного респауна, оживают далеко не все, а со временем и вообще исчезают, качнул пиратку от механиков - та же канитель, не пойму почему у вас нет такой проблемы, а у меня присутствует, может мне Вегас мстит из-за предвзятого к нему отношения? Спасибо за новый скрипт, опробую его.
Изменение репутации для пользователя Hellraiser
HellraiserOffline
Сообщение №3683
написано: 28 декабря 2013, 08:30
| Отредактировано: Hellraiser - 28 декабря 2013, 08:47
Я тоже. Но факт остаётся фактом. Возможно, это прикол именно скриптового механизма. Я специально проверял несколько раз: если пишешь resurrect 1, то частей тела, которые были отстреляны, не хватает. Ходящий непись без головы выглядел круто. А если пишешь resurrectactor или просто resurrect - всё нормально.
Теперь в Фолыче можно реальных зомби настроить.
Death is the old debt, which sooner or later will have to pay. This is as good a day to die as any, but at your funeral nobody will come. Your way in hell you'll have to do yourself... Happy journey! Alright, guys, all will be there, but you before...
мало чем помогает - присутствует все та же проблема частичного респауна
Чудеса всё чудесатее... Даже теряюсь в догадках, что же это такое может быть. Скрипт же простой как табуретка, в нём просто нечему ломаться. Так, на всякий случай: а проверяется-то на чистой игре? А то мало ли, может, какой-нибудь продвинутый ребаланс имеет свой взгляд на демографию пустошей и экстендером удаляет любое лишнее население?
Добавлено (28 Декабря 2013, 13:11) --------------------------------------------- Если вернуть общеигровой срок респавна к дефолтным 72-м или вообще выставить на 1000 тоже не работает? Это я к тому, что игровой уборщик трупов может подсуетиться раньше, чем сработает скрипт.
Я гулей отстреливал, голова собиралась, но выглядела как фарш, безобразное месиво причем с одним глазом, видимо второй был безвозвратно утерян игрой, ноги и руки тоже то еще зрелище, новый скрипт все это исправил, но я заметил что теряется смысл лвллистов, т.е. оживают именно убитые скажем так модели, смена не происходит. Насчет респауна без изменений, чую я так и не докопаюсь до истины, начинал игру без модов - сначала вроде все нормально, но потом НПС начинают исчезать, не все причем, в некоторых местах появляются исправно. В общем отдохнуть надо, пошел я на Столичную пустошь, там вроде все нормально. Спасибо еще раз!
Скрипт вешается на неписей с отключенным респавном? Это к тому, что если нормальный респавн что-то сломало, но не до конца, то неудачная попытка респавна может произойти раньше, чем сработает скрипт.
Если вернуть общеигровой срок респавна к дефолтным 72-м или вообще выставить на 1000 тоже не работает? Это я к тому, что игровой уборщик трупов может подсуетиться раньше, чем сработает скрипт.
Ха мысль, я тут модик сделал, на оптимизацию, т.к. НПС много следовательно и дохляков скапливается куча, так вот чтобы игра их не обрабатывала я изменил кое-какие настройки чтобы они(убитые) шустрее исчезали, может в этом косяк? Скрипт то оживляет труп, а если его нет похоже ничего и не оживляет. Сейчас пойду проверю.
spok2, так, так, косячник. Колись, чего там поломал?
Death is the old debt, which sooner or later will have to pay. This is as good a day to die as any, but at your funeral nobody will come. Your way in hell you'll have to do yourself... Happy journey! Alright, guys, all will be there, but you before...
Скрипт то оживляет труп, а если его нет похоже ничего и не оживляет.
Так оно и есть, убрал настройки "убирания" трупов, стали оживать в полном составе, похоже мне наоборот прийдется увеличить это время, чтоб никто не затерялся.