Перейти к контенту
Halford

[SoC] Ковыряемся в файлах

Рекомендуемые сообщения

10 часов назад, AndreySol сказал:

и в соответствии с его персональной логикой перекинет на АТП и потом заставит галопом мчаться в ДН на матрасик, что не есть красиво

Вот здесь не понял... Мне пришлось вышвырнуть Шустрика из гулага, что бы заработал кондлист на его спавн. Повесил на него персональную логику, Шустрый спаунится по условию и вдобавок не "перемещается" больше на АТП, т.е. всё наоборот. Что я упустил?

Изменено пользователем mole venomous

Здесь могла быть ваша реклама.

Ссылка на комментарий
22 минуты назад, Libery сказал:

при использование 6 слота происходило то или иное действие!

Это надо на апдейт актерского биндера вешать проверку.

 

@Libery

Цитата

Шустрый спаунится по условию и вдобавок не "перемещается" больше на АТП, т.е. всё наоборот. Что я упустил?

Я же не виддел, что у тебя там в логике Шустрого, да и честно давно уже не помню, как у него там в оригинале было - персоналка или работа в гулаге?

  • Нравится 1
Ссылка на комментарий
1 минуту назад, AndreySol сказал:

Я же не виддел, что у тебя там

В оригинале работа в гулаге. Я почти точно копировал её в персональную логику. Делал наугад, только что бы работал [spawner]. Тогда вообще думал, что ремарк конфликтует с работой из гулага...

Здесь могла быть ваша реклама.

Ссылка на комментарий

@AndreySol, кстати, а в сдк напротив каких строк нужно поставить галочку, чтобы нпс не двигался в оффлайне?

По поводу того, что НПС в гулагах возвращаются на изначальную работу.В ЛА проблема решена так, в xr_gulag изменена вот эта функция (показываю прямиком из ЛА):

function cfg_get_condlist(ini, section, field, npc)
local str = utils.cfg_get_string(ini, section, field, npc, false, "")
if not str then
return nil
end

local par = utils.parse_params(str)
if not par[1] then
abort_syntax_error_in_cond(npc, section, field)
end

local t = {}

t.name = field
t.condlist = parse_condlist(npc, section, field, par[1])

return t
end

— получить имя пути места работы
function gulag:get_job_path_name( job )
local section = job.section

if not self.ltx:line_exist(section, "active") then
log("(%s):get_job_path_name: Wrong section=[%s] :<%s>", self.name, section, "Error!")
table.print(job, sModule..":job|"..self.name)
if self.ltx:section_exist(section) then
abort("%s: ltx=[%s] no 'active' in section=[%s]", sModule, self.ltx_name, section, "")
else
abort("%s: ltx=[%s] no section=[%s]", sModule, self.ltx_name, section, "")
end
end

local active_section = xr_logic.determine_section_to_activate(self, self.ltx, section, db.actor)
—local active_section = self.ltx:r_string(section, "active")
local path_field = nil
for _,v in ipairs(path_fields) do
if self.ltx:line_exist(active_section, v) then
path_field = v
break
end
end
if not path_field then
abort("%s: ltx=[%s], there is no path in section=[%s]", sModule, self.ltx_name, active_section, "")
end
—/ check for mismatching paths
local path_name = self.name .. "_" .. self.ltx:r_string(active_section, path_field)
if path_field == "center_point" then
—/ fix for npcs respawning in firebins!
if level.patrol_path_exists(path_name .. "_task") then
return path_name .. "_task" —/>
end
end
if not level.patrol_path_exists(path_name) then
if not validate_patrol_path(path_name) then
abort("%s: gulag=[%s] section=[%s] field=[%s] path=[%s]~doesn't exist!", sModule, self.name, active_section, path_field, path_name, "")
end
end
—/ logging for specified "gulag_name" logic
—if self.name == "esc_village_lager" then
— log("(%s):get_job_path_name:logic=[%s],active=[%s],path=[%s]", self.name, section, active_section, self.ltx:r_string(active_section, path_field))
—end
return path_name —/>
end

После этого если в поле active прописать что-то типо такого:

active = {+cond} walker@2 {-cond} walker@1

то НПС перестанет возвращаться на первую работу в оффлайне.

Я когда-то добавлял эту функцию в свой мод и всё работало, а когда пришла надобность добавить в другой мод, то без вылета уже не обошлось.

Так что кто сможет адаптировать эту функцию - отпишите пожалуйста.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

Парни сос! Создал дозиметр в тч. Всё работает но вот только как на худе появляется надпись с % заражения она не пропадает а так и остаеться висеть. Как убрать текст на худе обратно! Вот так я пользуюсь с выводом на худ function dozimetr_hud()
get_hud():AddCustomStatic("radiation_detector", true):wnd():SetText(game.translate_string("st_rad_level")..": "..math.floor(db.actor.radiation*10000*1).." "..game.translate_string("st_msv"))
else
if hud:GetCustomStatic("radiation_detector")~=nil -- если остался, то надо убрать
hud:RemoveCustomStatic("radiation_detector") -- вот так убрали.
end

 

Что в ней не так?

Ссылка на комментарий
24 минуты назад, Libery сказал:

else

Это ещё что? У тебя должно быть условие if, по которому выводится статик до проверки отсутствия условия (else), когда статик можно убирать. См. статик опасной радиации в bind_stalker.

  • Согласен 1

Здесь могла быть ваша реклама.

Ссылка на комментарий

Вообще делал так с другого файла ссылается на это

 function dozimetr_hud()
get_hud():AddCustomStatic("radiation_detector", true):wnd():SetText(game.translate_string("st_rad_level")..": "..math.floor(db.actor.radiation*10000*1).." "..game.translate_string("st_msv"))
end

 

Появляется сообщение на экране и все!

Как Убрать? Может через таймер как то через 3-4 сек только как его прописать вопрос.

@mole venomous, Там же проверка на заражённость а тут использование предмета

Ссылка на комментарий
2 минуты назад, Libery сказал:

Как Убрать

Вызвать функцию, которая отработает get_hud():RemoveCustomStatic("бла-бла-бла"). Возьми готовые таймеры хоть с базового АМК-мода для этого.

  • Нравится 1
  • Согласен 1

Здесь могла быть ваша реклама.

Ссылка на комментарий

@mole venomous, Так как туда таймер запихнуть?

function use_radiation_detector(obj)
if obj:section() == "radiation_detector" then
libery_items_sis.timer_dozimetr_start() --Тут на таймер убирания оружия
get_hud():AddCustomStatic("radiation_detector", true):wnd():SetText(game.translate_string("st_rad_level")..": "..math.floor(db.actor.radiation*10000*1).." "..game.translate_string("st_msv"))
spawn_item_in_inv("radiation_detector")
db.actor:hide_weapon()
end
end

function spawn_item_in_inv(spawn_item,npc)
if npc==nil then
npc=db.actor
end

return alife():create(spawn_item,
npc:position(),
npc:level_vertex_id(),
npc:game_vertex_id(),
npc:id())
end

Вот полностью

Ссылка на комментарий
12 минут назад, Libery сказал:

таймер запихнуть

Под вызовом ф-ии включения статика добавить вызов таймера из amk.script

Скрытый текст

amk.start_timer("имя_строки",5)

В amk.script в ф-ии __do_timer_action добавить новый экшн, который будет ссылаться на отключение статика

Скрытый текст

if select_string=="имя_строки" then
        файл.ф-ия отключения
end

 

Изменено пользователем mole venomous
  • Нравится 1
  • Согласен 1

Здесь могла быть ваша реклама.

Ссылка на комментарий

@Libery

Почему все методом научного тыка? Читай "Справочник по ф-циям и классам" и "Уроки по модостроению". Половина твоих вопросов там уже есть. Что за лень?

  • Согласен 2
Ссылка на комментарий

Такой вопрос. Отдаю торговцу костюм, после чего он появляется у него в продаже. Как сделать так, чтобы этот предмет не появлялся у него в продаже?

Изменено пользователем Houdini_one

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

@Houdini_one:blink:. Запретить продажу оного в трейдлисте у торговца. В смысле, который gamedata\config\misc\trade_тра-та-та.ltx. Секция [тра-та-та_sell]. Всё, что после названия секции костюма - в минус.

  • Спасибо 1
  • Согласен 2
Ссылка на комментарий

Существует ли решение в ТЧ 1.0006, которое позволит "читать" метку внутри другой? Например, описание тайника внутри метки местности

https://yadi.sk/i/4QZbwucXRTYa-w

Здесь могла быть ваша реклама.

Ссылка на комментарий

Привет всем.

Ребята, можно ли скриптово определить состояние ПНВ?

В чистой ТЧ или в Xray ext

И что за метод - vision_enabled(), не он по случаем?

 

Изменено пользователем UriZzz

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

Ссылка на комментарий

@UriZzz В ТЧ нетпакет для слота фонарика, torch_flags (UPDATE, -1, u8), значение 6 или 7 = ПНВ включен.

  • Спасибо 1
  • Полезно 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...