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

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

@mole venomous , db.actor:get_inventory_weight(). По идееПример использования.

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

Кто-нибудь многострадальный R1 к OGSR всё-таки прикручивал/ет? Никто не в курсе?

 

Изменено пользователем Купер
  • Спасибо 1
Ссылка на комментарий
6 часов назад, Купер сказал:

R1 к OGSR

:offtopic: Это отрицательное развитие.

  • Сочувствую 1

Отношения между людьми- главная ценность в человеческом обществе.
Любая полученная информация- это только повод для размышлений, а не побуждение к действию.
Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAE
Накопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt

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

Здравствуйте. Есть мод Call of Misery и дополнение на миникарту. Хочу сделать итем на пояс, который тратит энергию и включает эту миникарту.
Хоть примерно скрипт накидайте или наводку на пример похожего функционала из других модов. Звучит максимально просто, но без примера и знания языка не могу реализовать сам.

:unsure:

 

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

Можно ли в GUI окне вывести Fillist с иконками итемов а не имя как это видно на скрине. Где можно подсмотреть? https://disk.yandex.ru/i/RrPaSNJ4OCr7Eg

Изменено пользователем Colder
Ссылка на комментарий

Есть функция которая выдает все тайники

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

function CTreasure:create_random_stash()
    for k,v in pairs(self.treasure_info) do
    self:give_treasure(k)
end
end

Помогите сделать что бы она выдавала 1 тайник.

Изменено пользователем Colder
Ссылка на комментарий

@Colder Выдаст рандомный тайник -

Скрытый текст
function CTreasure:create_random_stash()
	local t = {}
	for k, v in pairs(self.treasure_info) do
		table.insert(t, k)
	end
	self:give_treasure(t[math.random(#t)])
end

 

 

Изменено пользователем Manool
  • Спасибо 1
Ссылка на комментарий

Здрасьте.

 

[ТЧ/ЧН] Изменение подсказки при взаимодействии с объектом через метод set_tip_text(string): при тесте на трупе мутанта подсказка меняется на один апдейт, после чего возвращается к исходному виду "Обыскать труп".

Как заставить игру сохранить изменение?

 

Spoiler
[scripts\bind_monster.script]
function generic_object_binder:use_callback(obj)
	if not obj:alive() then
		self.object:set_nonscript_usable(false)
		self.object:set_tip_text("test")
	end
end

 

 

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

Шпаргалка

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

Не хватает костного мозга в холодце, как добавить в исключения предмет на поясе по id, что бы размер этого предмета не учитывался в ограниченном объёме рюкзака? По типу такого:

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

    local OutfitSlot = db.actor:item_in_slot(6)
    if OutfitSlot ~= nil then IdOutfit = OutfitSlot:id() end

Всё, распихиваемое по слотам, места не занимает. С предметами на поясе же у меня постоянно вопросы, которые оставляю здесь...

Движок ОГСР.

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

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

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

@mole venomous 

Скрытый текст
local excluded_ids = {}
for i = 0, db.actor:belt_count() - 1 do	-- цикл всех предметов на поясе
	local item = db.actor:item_on_belt(i)
	if item then
		excluded_ids[item:id()] = true
	end
end
-- проверка на исключение:
if excluded_ids[id] then	-- id здесь предмета, который нужно проверить
end

 

 

  • Спасибо 1
  • Полезно 1
Ссылка на комментарий
6 hours ago, Norman Eisenherz said:

подсказка меняется на один апдейт

Вот это вот мне подсказывает, что что-то ещё меняет подсказку. Может скрипт какой, или движок, тебе должно быть виднее.

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

@Norman Eisenherz 

generic_object_binder:update(delta) там несколько упоминаний set_tip_text, соответственно, на апдейте постоянно корректируется подсказка. Об этом, кстати, dsh намекнул... Копай туда.

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

Привет всем!
Решил намутить рабочую гитару, чтобы после 43 секунд игры мелодии, она возвращалась обратно в инвентарь.
Забацал 2 файла, один dmb.script, второй dmb2.script. 

 


 
 

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

 

local tSound ={
dmb_pleer      = "interface\\inv_guitar",
}

function muzika() 
alife():create("dmb_pleer", db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id())
end

function use_item(obj) 
    local obj = obj:section()
    if obj then  
        if obj == "dmb_pleer" then  
            dmb2.start_timer()
        end
    end
    
   if obj and tSound[obj:section()]  then 
      local snd = xr_sound.get_safe_sound_object(tSound[obj:section()])
      if snd then 
      snd:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 2.0)
      end
   end
end

 


А вот второй скрипт, куда я запихнул таймер

 

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

   function action_timer()
      alife():create("dmb_pleer", db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id())
   end
 
   function start_timer()
      local iTimer = time_global() + 43000
 
      local function check_timer()
         return time_global() > iTimer
      end
 
      level.add_call(check_timer, action_timer)
   end


И при попытке юзануть ту самую гитару, вылазит ЭТО:
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ....l.k.e.r. Тень Чернобыля\gamedata\scripts\dmb.script:22: attempt to call method 'section' (a nil value)

Помогите пожалуйста)
 

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

@Hind Путаница в типе и значениях переменных: сначала obj – объект, потом obj – секция, то есть строка, и для этой строки ты еще раз пытаешься прочитать секцию.

 

@AndreySol Получается решение вида "заново менять уже измененную подсказку каждый апдейт". Кроме проверки по таблице id уже обработанных мутантов, как можно добиться варианта "смерть, 1 апдейт и остановка + запоминание при перезагрузке"?

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

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

Шпаргалка

Ссылка на комментарий
25.08.2022 в 22:19, Norman Eisenherz сказал:

Получается решение вида "заново менять уже измененную подсказку каждый апдейт".

Ну так оно единственно верное. У тебя для монстров и нпс есть апдейт(generic_object_binder:update(delta)), в нем постоянно корректируется подсказка, в зависимости от состояния объекта. Вот тебе пример из модика(мод "Мясник" (CoP) от Singapur22), который меняет логику обыска трупов монстров, тебя интересует выделенный фрагмент:

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

    if self.object:alive() then
        if self.object:is_talk_enabled() then
            self.object:set_tip_text("character_use")
        else
            self.object:set_tip_text("")
        end
    else
        if self.used then
            self.object:set_tip_text("")
        else
            local character_use = read_if_exist("s",nil,self.object:section(),"character_use","dead_monster_use")
            self.object:set_tip_text(character_use)

        end
    end

Для дохлого монстра подсказка меняется сразу по факту его помирания, а в методе use_callback она возвращается в исходное значение.

Изменено пользователем AndreySol
  • Полезно 1
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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