erlik
А почему не сделать проще и предсказуемее?
local timer_info = game.get_game_time() + 35*60*1000 --/ начальная установка таймера: 35 минут
function timer_infoportion()
--/ game.get_game_time() -> game-time (ms)
if has_alife_info("totalizator") and timer_info < game.get_game_time() then
db.actor:disable_info_portion("totalizator")
timer_info = game.get_game_time()+35*60*1000 --/ повторный взвод (необязательно)
end
end
Т.о. твой таймер запустится только при 'взводе' инфопоршена и остановится по окончании отсчета и как только инфопоршен будет сброшен.
Перед взводом таймера может быть желательно перепроверить/апдейтить начальное значение timer_info.
Например:
function set_infoportion_totalizator()
timer_info = game.get_game_time() + 35*60*1000
db.actor:give_info_portion("totalizator")
end
Естественно требуется исключить какое-либо вторичное включение инфопоршена (сторонней функцией), что может повлечь зацикливание таймера (это и в твоем варианте имеется).
P.S. Сорри, вчера допустил ошибку в установке таймера.
А твоя ошибка вероятно связана с тем, что твой вариант таймера не останавливается и в момент начала отсчета обязательно требует установки s = 0, иначе ты начинаешь отсчет НЕ с начала.
Artos
спасибо за подсказку.
я тоже подозревал, что там что то не то с точкой отсчета.
поэтому действительно стоит ставить в таймер изначальную проверку на то что поршень был получен, чтобы он начинал тикать именно с этого момента.
Поршень у меня выдается в диалоге как тока Меченый делает ставку - то есть именно в этот момент срабатывает и функция перебора сумм выигрышей\проигрышей и назначает итог сделанной ставки. Но для того чтобы этого не выглядело моментальной лотереей и сделана задержка в приходе сообщения, и фраза-ветка - "забрать выигрыш" (в случае выигрыша) или основной диалог (в случае проигрыша/или по нолям) должны (для этих же целей) появляться позже сообщения.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Artos и erlik приветствую вас.
Прочитал что было написано вами, очень содержательный разговор. Хоть я мало что еще понимаю в програмировании но всегда интересно узнать что-то новое. Теперь к делу. erlik как обстоит дело с убором меток с рестрикторов? Я попытался кое как их убрать с помощью диалога но ничего не вышло. Опыта да и уменя очень мало. Так что если вопрос решится прозьба поделится методом.
И еще гопода вы не знаете можно ли связаться с автором мода Наемники? Дело в том что взялся разберать его функции и появились вопросы, а задавать ли их не авторам мода незаню стоит ли.
Вобщем если кто знает как связаться и будет ли толк то отпишите пожалуйста.
karavan
Red75 я и сам не встречал на сталкеровских сайтах. Мод его еще 2007 года - так что возможно он уже давно сталкеровской тематикой не занимается.
С убиранием меток на рестрикторе пока проблема - да у меня к тому же почему то сохранки бьются - не грузятся потом. И лог очень странный - никогда такого не было.
У тебя с этим проблем нет? Никак не могу понять из-за чего - из-за рестриктора ли , из-за функции убирания меток или еще из-за чего.. до этого все норм было.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
Знаеш сохранки не тестил, поскольку для теста функций всегад запустаю новою игру, но проверю обязательно.
Жаль что Red75 не найти, потому что есть кой какие мысли по новым типам НПС, а самому возможно не получится их реализовать. Хотя есть наработки, но без разбора функций наемников никак.
добавлено спустя 10 минут
erlik
Проверил сохраненки. Да, действительно бьются. Вот лог.
FATAL ERROR
[error]Expression : no_assert
[error]Function : CALifeStoryRegistry::add
[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\alife_story_registry.cpp
[error]Line : 30
[error]Description : Specified story object is already in the Story registry!
Поробовал убрать из диалога акшион вызова рестриктора и все нормально, сохраненка загрузилась.
Заначит точно проблема из-за рестриктора. Наверное его надо регистрировать. Но где?
karavan
Вот вот и у меня точно такой же лог - никогда до этого такого лога не имел.
Смысл его в том, что какой то объект (может рестриктор) с этим айди (или сидом - фиг его знает) в игре уже зарегистрирован - и получается что то типа дубликата.
В общем тока singapur22 сможет объяснить в чем дело.
Раньше такого дела с рестриктором не наблюдал - а может дело в функции ставящей метку? попробуй убрать ее - сделать как было без метки. И попробовать потом грузануть сохранку...может дело только в метке.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Да и вот еще что.
1)Если делаеш так: Новая игра - взял любой квест - сохранился - загрузка нормальная
2)Если делаеш так: Новая игра - взял любой квест - Взял рестриктор (даже если просто береш рестриктор) - сохранился - загружатся и мгновенный вылет с логом, который приведен выше.
Знаеш может я не прав но дело здесь случайно не в записи в ПДА и регистрации задания, которого у нас нет.
karavan
я кажется понял в чем дело - дело в моей функции активации рестриктора - не смотря на то, что в ней стоит защита (через поршень) от вторичной активации функции спавна рестриктора, она все равно при загрузке уровня (любой сохранки на нем) его спавнит снова - отсюда и лог - объект уже существует.
Попытаюсь ее переделать.
Если активируешь рестриктор просто через диалог (убрав апдейт функции активате из бинд_сталкер) - одноразово, то увидишь что вылета быть не должно.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Нашел только способ как изменить выдачу оружия у Волка
Цитата :"Так, для модернизированного ружья есть один всего файл - unique_items.ltx, а находится он тут - C:\Games\S.T.A.L.K.E.R\gamedata\config\misc (у меня так). Чтобы ГГ дали оружие надо в скрипте escape_dialog в функции где Волк дает ГГ тот пистолет написать еще и то что поможет ему дать тебе Гаусс(например). Все должно выглядеть приблизительно вот так:
function give_weapon_to_actor (trader, actor)
dialogs.relocate_item_section(trader, "wpn_pm", "in") - выдача ПМ
dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in") - 1-я пачка патронов
dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in") - 2-я пачка патронов
dialogs.relocate_item_section(trader, "wpn_knife", "in") - нож
dialogs.relocate_item_section(trader, "wpn_gauss", "in") - а это сам Гаусс
end "
Сталкер Монолита
все просто - вставь сидору в стартовый диалог - под любой его фразой - экшен функции, которая и выдает оружие.
Этот же экшен (escape_dialog.give_weapon_to_actor) убери из диалога волка.
можешь попробовать вот такой прикол сотворить
найди у сидора в диалоге (файл - dialogs_escape , имя диалога - "escape_trader_start_dialog")
строчку escape_trader_start_dialog_321111 dialogs.break_dialog
и вместо выделенного красным вставь это 199 --\ в этой фразе экшен уже стоит :-)
увидишь что будет(если не вылетит). вообще в ранней версии сталкера именно сидор и должен был выдавать оружие. и это сохранилось в игре - в ветках диалога, которые не задействованы.
отредактировал(а) erlik: 25-09-2009 13:34 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
PsyXo
Есть не проверенный способ:
Редактируешь Outfit.ltx, добавляя туда свой новый костюм.
В секции нового костюма есть строчка:
$spawn = "outfit\specops_outfit"
Отвечающая за СДК.
Меняешь её на:
$spawn = "outfit\<название_твоего_костюма_на_английском>_outfit"
После чего кидаешь модифицированный Outfit.ltx в соответствующую папку в СДК + текстуры и модель костюма для корректной работы.
Зона поражения 3 (когда ни будь в другой реальности...)
Привет всем. Вот недавно скачал build 1935 и увидел там встроенный в инвентарь сон. Кто знает, можно его перенести в ТЧ?
Кровосос без щупалец, это как с щупальцами, только без щупалец...
Занимаюсь модмейкерством 8 месяцов. Конфиги, спавн, диалоги, локации, немного текстуры.
Перенес локацию Юпитер из Зова Припяти на ТЧ. Описание и ссылка в моем журнале.
singapur22
Спасибо, что сказал, а то бы я ковырялся весь вечер :-)
Кровосос без щупалец, это как с щупальцами, только без щупалец...
Занимаюсь модмейкерством 8 месяцов. Конфиги, спавн, диалоги, локации, немного текстуры.
Перенес локацию Юпитер из Зова Припяти на ТЧ. Описание и ссылка в моем журнале.
Всем привет! Давненько меня не было...
Не подкажите какие файлы отвечают за сцену на дикой территории? Там где наемники у Круглова информацию вымогают... И еще. Я так понял, чтобы сделать новый слот, без ковыряния движка не обойтись?
singapur22
меня тут доконал лог Description : Specified story object is already in the Story registry!
при перезагрузке.
я выяснил что все это вылазит из-за моей функции активации рестриктора (стоит на апдейте - срабатывает при загрузке локи кордон и при отсутствии поршня, который затем выдается для предотвращения вторичной сработки - но не то выходит),
то есть получается что при загрузке сохранки функция опять пытается заспавнить рестриктор - отсюда и лог, что объект уже сущесвтует. Пробовал уже три варианта - это последний - и опять не то.
local finish = 0
--\ функция для активация рестриктора
function activate()
if has_alife_info("restrictor") and
finish == 1 then
return
elseif level.name() == "l01_escape"
and finish == 0 then
test_restrictor.spawn_restrictor()
db.actor:give_info_portion("restrictor")
finish = 1
end
end
переменная финиш сохраняется.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
На его, если быть точнм. И это полный развод. Баньте засранца. Игра через 7 дней выйдет.
.— Должны были, да не приняли… Сказали, мол, раз сняли наклейку, то на глянце теперь «микроцарапины». Я обрадовался, что не «наноцарапины», и пошел домой.
Сталкер Монолита
скрипт из файла xr_wounded запрещает это делать.( строчка 82)
Если хочешь все таки сделать - меняй скрипт. :-)
вот только не уверен, что у неписей врагов сразу же появится и диалог о помощи
manunj
просто не хотел активировать его через диалог :-)
karavan
а ты разве функцию activate на апдейт в бинд_сталкер не ставил? Ставил - иначе рестриктор бы и не появился...
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
Проверил по названиям файлов созданных для рестриктора - нет у меня регистрации. Напомни пожалуйста какая функция должна быть зарегестрирована.
Эта?
function activate()
if level.name() == "l01_escape" and
db.actor:dont_has_info("info_01") then
restrictor.spawn_restrictor()
end
db.actor:give_info_portion ("info_01")
end
manunj
я писал про лог , когда думал, что это из-за функции с анимацией усталости - но она оказалсь абсолютно не причем. Вылетало ведь только когда я грузил сейв...
проверил и твой вариант (первый) - там все тоже, что и было у меня, кроме порядка операторов и условий, но то ж самое - вылет.
насчет того, что она раньше спавнит, чем загружает данные - не знаю, надо чтобы кто-нить из спецов пояснил - может ли быть такое.
karavan
да не надо ее нигде регистрировать - просто она глючная - работает не так как надо.
рестриктор спавнит, а прекращать свою работу после спавна не хочет.
надо что то другое придумывать...
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.