Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
Здравствуйте. Интересует такой вопрос, можно ли определить кнопку на которую что-то забиндено(без отлова нажатия)??
Добавлено (18.05.2019, 16:06) --------------------------------------------- Оффтоп, сам написал функцию. кому надо ловите.
-- Получить биндер кнопки -- Получить биндер кнопки function GetBind(key)--(keys) get_console():execute("cfg_save key") local file_path = getFS():update_path("$app_data_root$", "key.ltx") local file = io.open( file_path, "r" ) local bind = "" if file ~= nil then for line in file:lines() do if string.find(key,line) or string.find(line,key) then local tbind = string_expl(line, " ") bind = tostring(tbind[#tbind]) end end file:close() end return bind end
--! Внимание: стандартный шаблон плохо работает с "особыми" символами (например #) и разбивает строку криво function string_expl(sStr, sDiv, Mode, bNoClear) sStr = tostring(sStr) if not (sStr ~= "nil" and sStr ~= '') then return {} end --> нечего разделять local tRet = {} local sPattern = '[%w%_]+' --> дефолтный патерн (разделение по 'словам') if type(sDiv) == "string" then --> если задан сепаратор: разделяем по нему if bNoClear then --> если НЕ указано 'чистить пробелы' sPattern = '([^'..sDiv..']+)' else --> иначе с чисткой пробелов sPattern = '%s*([^'..sDiv..']+)%s*' end end --* разделяем строку по патерну if Mode == nil then --> обычный массив for sValue in sStr:gmatch(sPattern) do table.insert(tRet, sValue) end else local sTypeMode = type(Mode) if sTypeMode == "boolean" then --> таблица '[значение] = true или false' for sValue in sStr:gmatch(sPattern) do tRet[sValue] = Mode end elseif sTypeMode == "number" then --> таблица '[idx] = число или стринг' for sValue in sStr:gmatch(sPattern) do tRet[#tRet+1] = tonumber(sValue) or sValue end end end return tRet --> возвращаем таблицу end
local wpn_fire = GetBind("wpn_fire ") -- кнопка "огонь"
Сообщение отредактировал _ToHaSH_2002 - Суббота, 18.05.2019, 16:09
makdm, Иногда запрещаю стрельбу, открытие/закрытие инвентаря или пда, и надо запоминать кнопку, на которую люди биндят оный (ибо я на Caps инвентарь открываю)
atanda, это с отловом нажатия, или перебором диков, а мне же нужно напрямую получать кнопку, и не химичить типа (заменять DIK_ на k) и тд... Еще такой вопрос знающим, вроде как заметил что модель предмета, находящегося вне поля зрения выгружается. Можно ли это как-то убрать, ибо хочу в мод замутить как у шокера Panoramic 3.0 но без правок двигла.
Решил немного переделать локацию Лиманск, начал ставить предметы.
Там где переход в госпиталь, около здания расставил разную технику. Зашёл в игру, всё нормально. Потом решил поставить предметы в домике, который рядом находится, после стройки. Расставил предметы, зашёл, их нет. Сначала не понял, но потом дошло. Когда я близко подхожу к место где должен стоять этот статический объект, то он появляется, но пропадает всё окружение. Стены становятся прозрачными.
Народ! Есть варианты запускать анимацию по спейсу? То есть ГГ заходит в спейс, на обьекте отработала одна анимация, вышел из спейса отработала другая анимация. Хотя бы на примере родного обьекта из ЗП door_labx8. возможно сделать чтоб эта дверь открывалась когда ГГ в спейсе и закрывалась когда выходит из спейса?
Сообщение отредактировал Policai - Воскресенье, 19.05.2019, 14:03
Policai, не знаю, каким образом запускается анимация, но то, что я использовал бы эту функцию - факт: on_info = {=actor_in_zone(name_zone)} тут нужное действие. Выход из зоны проверил бы так: on_info = {!actor_in_zone(name_zone)} тут нужное действие.
Это я в курсе, но как описать действие на запуск анимации? Подозреваю что как то связано со скриптами... То есть команда то даётся из логики а вот какую функцию она запускает я незнаю. Я дуб в этом деле..
function play_anim(obj,anim_name) obj:play_cycle(anim_name, false) end
Добавлено (19.05.2019, 16:41) --------------------------------------------- Значит в xr_effects надо добавить что-то типа
Код
function play_anim(actor, npc, p) if not p then return end local obj = get_story_object(p[1]) local anim_name = p[2] obj:play_cycle(anim_name, false) end