Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
sapsan 336 Опубликовано 9 Декабря 2010 Поделиться Опубликовано 9 Декабря 2010 (изменено) malandrinus, перешли на использование такого: function game_milliseconds() if StartTime == nil then getStartTime() if StartTime == nil then return 0 end end local gtime = game.get_game_time() local seconds = gtime:diffSec(StartTime) local y,m,d,h,min,sec,ms = gtime:get() return (seconds * 1000 + ms) end function game_seconds() if StartTime == nil then getStartTime() if StartTime == nil then return 0 end end return game.get_game_time():diffSec(StartTime) end function game_minutes() return math_floor(game_seconds() / 60) end function game_hours() return math_floor(game_seconds() / 3600) end function game_days() return math_floor(game_seconds() / 86400) end Косяки могут остаться только если где-то этот переход не сделали или время сохраняется ещё по-старому. Например в xr_gulag.script. Всё руки никак не дойдут переделать сохранение/чтение там... malandrinus, сообщение Kolmogor-а (в его тему отправил кто-то из забредших в тему Солянки) ну и тот факт, что в CTime используется 64-разрядный счетчик. Изменено 10 Декабря 2010 пользователем sapsan Ссылка на комментарий
Malandrinus 615 Опубликовано 9 Декабря 2010 Поделиться Опубликовано 9 Декабря 2010 (изменено) sapsan, Вот есть встроенный в игру счётчик. Когда он докручивается до конца, то время устанавливается в стартовое. Дата отматывается назад и функция game.get_game_time() будет давать это обнулённое значение. Я это проверял. Так каким образом помогают эти новые функции, если системное время игры (которое в них используется) глючит? Прошёл месяц игрового времени и всё. Что я не понимаю? Изменено 9 Декабря 2010 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
ColR_iT 171 Опубликовано 10 Декабря 2010 Поделиться Опубликовано 10 Декабря 2010 (изменено) Раз уж дело каснулось скриптов, то у меня такой вопрос: а где происходит апдейт актора на потерю жизни? // Ф-ия actor_binder:update, файл bind_stalker.script. Ищи там. Министр. А вот и не нашел я там ничего. function actor_binder:update(delta) object_binder.update(self, delta) -- DEBUG slowdown -- slowdown.update() local time = time_global() game_stats.update (delta, self.object) -- апдейт погоды self.weather_manager:update() -- апдейт схемы детектора self.actor_detector:update() -- апдейт звуковой схемы актера xr_sound.update_actor() --' Проверка потери жизни --[[ if self.object.health - lasthealth > 0.001 or self.object.health - lasthealth < -0.001 then printf("%f | %f", self.object.health, self.object.health - lasthealth, game.time() - lasttime) lasthealth = self.object.health lasttime = game.time() end ]] -- Обновление отключения ввода с клавиатуры. if self.st.disable_input_time ~= nil and game.get_game_time():diffSec(self.st.disable_input_time) >= self.st.disable_input_idle then level.enable_input() self.st.disable_input_time = nil end -- Обновление сна с переносом чувака в указанную позицию if self.st.sleep_relocate_time ~= nil and game.get_game_time():diffSec(self.st.sleep_relocate_time) >= self.st.sleep_relocate_idle then self.object:set_actor_position(self.st.sleep_relocate_point) local dir = self.st.sleep_relocate_point:sub(self.st.sleep_relocate_look) self.object:set_actor_direction(dir:getH()) self.st.sleep_relocate_time = nil end -- Апдейт прятание оружия игрока во время диалога if weapon_hide == true or self.object:is_talking() then if self.weapon_hide == false then self.object:hide_weapon() self.weapon_hide = true end else if self.weapon_hide == true then self.object:restore_weapon() self.weapon_hide = false end end -- обновление рестрикторов, которые под логикой, срабатывает через интервалы времени if self.next_restrictors_update_time < time then bind_restrictor.actor_update(delta) self.next_restrictors_update_time = time + 200 task_manager.actor_update() end -- обновление постпроцессов if post_process ~= 0 then if post_process:update () == true then post_process = 0 end end -- обновление пси-антенны if sr_psy_antenna.psy_antenna then sr_psy_antenna.psy_antenna:update(delta) end --' Вывод сообщения о большой радиации if self.object.radiation >= 0.7 then local hud = get_hud() local custom_static = hud:GetCustomStatic("cs_radiation_danger") if custom_static == nil then hud:AddCustomStatic("cs_radiation_danger", true) hud:GetCustomStatic("cs_radiation_danger"):wnd():SetTextST("st_radiation_danger") end else local hud = get_hud() local custom_static = hud:GetCustomStatic("cs_radiation_danger") if custom_static ~= nil then hud:RemoveCustomStatic("cs_radiation_danger") end end if self.bCheckStart then printf("SET DEFAULT INFOS") if not has_alife_info("storyline_actor_start") and (level.name() == "l01_escape") then self.object:give_info_portion("storyline_actor_start") _G.g_start_avi = true printf("*AVI* RUN START AVI") end -- if not has_alife_info("encyclopedy") then -- self.object:give_info_portion("encyclopedy") -- end if not has_alife_info("global_dialogs") then self.object:give_info_portion("global_dialogs") end if not has_alife_info("level_changer_icons") then self.object:give_info_portion("level_changer_icons") end level_tasks.add_lchanger_location() self.bCheckStart = false end end Как видно они просто закоментированны. Может есть еще где? Ищу для чистой 1.004. Изменено 10 Декабря 2010 пользователем Куфзук Ссылка на комментарий
MgVolkolak 0 Опубликовано 10 Декабря 2010 Поделиться Опубликовано 10 Декабря 2010 (изменено) Здравствуйте! Есть вопрос по звукам: Если я добавлю дополнительную гитарную мелодию, скажем guitar_11, то будет ли ее играть нпс, или где-то еще нужно дописывать что список мелодий увеличился с 10 до 11? И еще вопрос: например мне нужно добавить вид бандитов новичков с другим оружием. В character_desc_simulation есть три вида бандитов новичков: "sim_bandit_novice_default1" "sim_bandit_novice_default2" и "sim_bandit_novice_default3". Если я добавлю новый вид "sim_bandit_novice_default4", то будет ли он использоваться игрой? Изменено 10 Декабря 2010 пользователем MgVolkolak "Зло перестало быть слепой хаотичной силой. Сегодня Зло действует по праву закона - ибо у него теперь есть права. Оно действует в соответствии с заключенными мирными договорами, ибо о Зле подумали, заключая эти договоры. Геральт из Ривии, ведьмак." Ссылка на комментарий
ColR_iT 171 Опубликовано 10 Декабря 2010 Поделиться Опубликовано 10 Декабря 2010 (изменено) MgVolkolak, со звуками - да. Просто добавь со следующим номером в папку characters_voice\human_?. Хотя там 3 папки human_01, _02 и _03 соответственно. Я добавлял в каждую, для нужной группировки. На счет нового вида. Если пропишешь в спавн новому НПС свой профиль, тогда да, а так, сама игра твой новый профиль выбирать не будет. О! Пардон! Проглядел, что ты панисал character_desc_simulation. Посмотри вот эту статью: Wiki. Изменено 10 Декабря 2010 пользователем Куфзук Ссылка на комментарий
Министр 3 Опубликовано 10 Декабря 2010 Поделиться Опубликовано 10 Декабря 2010 Куфзук, я так и не понял что тебе надо. Единственная проверка на потерю жизни ГГ в ориг. игре как раз та которую ты выделил в своем посте, другой насколько я знаю нет. Ссылка на комментарий
ColR_iT 171 Опубликовано 10 Декабря 2010 Поделиться Опубликовано 10 Декабря 2010 А она работает??? Она ведь закоментирована. Или --[[ Coment ]]-- это не коментарии? Ссылка на комментарий
Гость max_max_08 Опубликовано 10 Декабря 2010 Поделиться Опубликовано 10 Декабря 2010 (изменено) Такая проблемка. Ни как не могу выдать в сообщении число из таблицы. local tbl = {} tbl[1] = cost function send_msg() local text = "Стоимость"..tbl[1]"руб." --вот здесь не пойму как вписать цену db.actor:give_game_news(text, "ui\\ui_iconsTotal",Frect():set(332,376,83,47),0,10000) end ============= Локальная cost это сумма нескольких локальных local cost1 = 100 local cost2 = 200 local cost3 = 300 cost=cost1+cost2+cost3 Может и можно обойтись и без таблицы, я не знаю. А локальная переменная будет хранить свое значение после сэйв/лоад? Может его сразу вписать в месадж, без занесения в таблицу Изменено 11 Декабря 2010 пользователем max_max_08 Ссылка на комментарий
Nazgool 250 Опубликовано 10 Декабря 2010 Поделиться Опубликовано 10 Декабря 2010 (изменено) Если переменная 'соst' определена до этого, то : local tbl = {} tbl[1] = tostring(cost) -- в принципе Luа прекрасно сама преобразовывает числа в строки и наоборот, но от греха подальше пусть лучше будет через tostring function send_msg() local text = "Стоимость "..tbl[1].." руб." -- и т.д... end Только зачем таблицу нужно создавать??? Тебе, я думаю, виднее. Изменено 10 Декабря 2010 пользователем Gun12 Ссылка на комментарий
Министр 3 Опубликовано 10 Декабря 2010 Поделиться Опубликовано 10 Декабря 2010 (изменено) Куфзук, она закомментирована, следовательно в игре не используется. P.S. Объясни, что тебе от этой проверки надо. Изменено 10 Декабря 2010 пользователем Министр Ссылка на комментарий
ColR_iT 171 Опубликовано 10 Декабря 2010 Поделиться Опубликовано 10 Декабря 2010 (изменено) Министр, да все немного банально - глянуть на сие действо и по возможности малость изменить. Хотелось бы изменить существующую (если она конечно же есть), чтобы не вешать на апдейт актера еще одну функцию, которая бы проверяла его состояние жизнидеятельности Изменено 10 Декабря 2010 пользователем Куфзук Ссылка на комментарий
ColR_iT 171 Опубликовано 12 Декабря 2010 Поделиться Опубликовано 12 Декабря 2010 hypercatt, что конкретно тебе нужно!? Спавн мертвого НПС или оживить мертвого НПС? Про оживление НПС, вот ссылка: Артефакт для воскрешения мертвого НПС , надеюсь разберешься. А если тебе нужен спавнить мертвого, то в шапке темы есть ссылка на шпаргалку от n6260, там есть. И не только это, очень много полезностей! Ссылка на комментарий
ColR_iT 171 Опубликовано 12 Декабря 2010 Поделиться Опубликовано 12 Декабря 2010 hypercatt, вот что мне дал Google: Цитата от banderos, втеме "Скриптование и спаун": function spawn_trup_npc() local obj = alife():create("здесь профиль твоего нпс",vector():set(-45.41, 19.18, 5.84), 2340, 1530) local tbl = amk.read_stalker_params(obj) tbl.custom="[known_info]\nможно вставить инфопоршен" -- эту строку можно убрать. Она для выдачи инфопоршена при обыске трупа. tbl.sid = 481543 -- id tbl.health = 0 tbl.updhealth = 0 amk.write_stalker_params(tbl, obj) end Если делаешь через all.spawn, то еще проще, просто пропиши health = 0. Ссылка на комментарий
_Призрак_ 11 Опубликовано 12 Декабря 2010 Поделиться Опубликовано 12 Декабря 2010 hypercatt Ты лучше диалоги этого НПС пропиши кому нибудь. Допустим бармену: Поиском находишь твоего НПС. Поищи по имени в конфигс/геймплай_характер_**** Там ты увидишь его секцию. Что то типа такого: <specific_character id="start_game_killer" team_default="1"> <name>Командир</name> <icon>ui_inGame2_Sich</icon> <map_icon x="1" y="0"> </map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio> <class>start_game_killer</class> <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_02\stalker\</snd_config> <rank>880</rank> <reputation>0</reputation> <money min="480000" max="480000" infinitive="1" /> <visual>actors\stalker_bandit\stalker_bandit_3_face_1</visual> <supplies> [spawn] \n wpn_ak74 \n ammo_5.45x39_fmj = 1 \n wpn_beretta \n ammo_9x19_fmj = 1 \n grenade_rgd5 = 1 \n #include "gameplay\character_items.xml" #include "gameplay\character_food.xml" #include "gameplay\character_drugs.xml" </supplies> #include "gameplay\character_criticals_4.xml" <actor_dialog>test</actor_dialog> <actor_dialog>start_game_killer_dialog</actor_dialog> <actor_dialog>actor_break_dialog</actor_dialog> </specific_character> Оттуда копируй строки где есть <actor_dialog>*******</actor_dialog> Потом открываешь character_desc_bar и найди секцию бармена (поищи по слову barman) У него находишь где написано <actor_dialog>*******</actor_dialog> и вставляешь туда диалоги твоего помершего НПС Freedom Ссылка на комментарий
Рудь 0 Опубликовано 12 Декабря 2010 Поделиться Опубликовано 12 Декабря 2010 (изменено) Здравствуйте. Интересует проблема Leviathan на 266 странице http://www.amk-team.ru/forum/index.php?s=&...post&p=5128. У самого стоит АМК с патчами + nlc 5.08 + графические моды +адаптация под 1.0006 + мои правки. Правил all.spawn, убирал халяву в виде патронов, артефактов и т.п. в контейнерах. Не люблю, когда проходишь игру в N-й раз и знаешь, что есть патроны или аптечки в определённом месте. После правок компилировал новый all.spawn утилитой acdc. В результате все секции в файле были перенумерованы. Из-за этого не появляются переходы. Стоит заменить all.spawn на nlc-й и загрузить сохранение перед сдачей документов их Х18 бармену, то переход на росток появляется. С переносом спауна переходов из all.spawn, как написано в WiKi не справлюсь, не силён я в этом. Как всё-таки скомпилировать all.spawn, чтобы не менялась нумерация секций? Пробовал разные версии acdc, во всех нумерация меняется. И ещё вопрос, как убрать спавн артефакта, например, батарейки у перехода со свалки в ТД. Секцию нашёл, а что делать? Изменено 12 Декабря 2010 пользователем Рудь Ссылка на комментарий
ColR_iT 171 Опубликовано 12 Декабря 2010 Поделиться Опубликовано 12 Декабря 2010 Рудь, ну вопервых: при компиляции нового all.spawn, нужно начинать новую игру. Вовторых: при удалении или добавлении новой секции в all.spawn, нумерация хочешь не хочешь поменяется, это делае сам acdc и на сколько мне известно, сдвиг нумирации в ту или иную сторону, не на что не влияет. В третьих: чтобы убрать батарейку, просто убери ее секцию. Ссылка на комментарий
Рудь 0 Опубликовано 12 Декабря 2010 Поделиться Опубликовано 12 Декабря 2010 Куфзук, с новой игрой понятно, начинал заново. Только почитав пост Leviathan и проверив на деле, убедился, что дело в перенумерации секций. Да и потом в процессе игры, можно запросто менять all.spawn, естественно, только чтобы скрипт спаунинга перехода сработал, в остальных случаях - новая игра. За подсказку с удалением секции -спасибо, что-то я сам не догадался. Вот такой вопрос, в каком скрипте прописаны номера секций спаунинга перехода связанные с секциями all.spawn? Попробую заменить их в соответствии с нумерацией all.spawn. Это как один вариант. Еще думаю попробовать поиграться со значениями в acdc.pl, возможно проблема сбивки нумерации в нём. Ссылка на комментарий
sapsan 336 Опубликовано 12 Декабря 2010 Поделиться Опубликовано 12 Декабря 2010 Как сделать монстра незасекаемым биноклем ? Ссылка на комментарий
Рудь 0 Опубликовано 13 Декабря 2010 Поделиться Опубликовано 13 Декабря 2010 (изменено) Куфзук, не совсем понятно. Если нет вызова по номеру секции из какого-либо скрипта, почему перенумерация не даёт спаниться переходам. Попробовал ещё раз заново начать игру, поставил неуязвимость ГГ, добежал до Агропрома, взял документы по переходу с Агропрома на Кордон со 2-го этажа здания, где вояки сидят. В результате переход не открылся. Т.е. в момент, когда берёшь документ, по идее, выполняется скрипт, этот скрипт ссылается на координаты перехода из соответствующей секции all.spawn. Это верно или я заблуждаюсь? Добавлено через 106 мин.: Куфзук, к сожалению, на подфоруме NLC убрали все ветки про 5-ю версию, остались только ссылки. А Сяк сюда редко заходит. Попробую всё-таки покавыряться с acdc, там секция с названием use constant levels_info. Всё, разобрался. Перенумерация секций в all.spawn неизбежна, посему нужно править скрипт sak.script, в самом начале файла. Пример: add_new_lc(9100,1462,"На Кордон","info_way100a") правим на add_new_lc(9100,хххх,"На Кордон","info_way100a") Здесь хххх - новый номер секции в скомпилированном all.spawn. Изменено 13 Декабря 2010 пользователем Рудь Ссылка на комментарий
Министр 3 Опубликовано 13 Декабря 2010 Поделиться Опубликовано 13 Декабря 2010 (изменено) Рудь, да, в NLC спаун идет по номеру секции в all.spawn. P.S. И да, пожалуйста, если вы не знаете правильного ответа, то лучше не отвечайте, людям только тяжелей от таких советов приходится. Изменено 13 Декабря 2010 пользователем Министр Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти