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

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

7 минут назад, Okichi сказал:

Наоборот же

Я это и имею ввиду, как то невнятно написал просто. 

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

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

Доброго времени. А есть способ узнать, присутствует ли у непися, который находится в оффлайне (например на другой локации) в его инвентаре конкретный итем?

 

  • Жуть! 1
Ссылка на комментарий
2 часа назад, _Sk8_AsTeR_ сказал:

есть способ узнать, присутствует ли у непися, который находится в оффлайне (например на другой локации) в его инвентаре конкретный итем?

Я конечно понимаю, что наСТОящий сталкер - лёгких путей не ищет, но на кой фиг такие сложности?

soryy за offтоп

 

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

Я в чужие дела не лезу, хочет узнать - значит есть, зачем.

@_Sk8_AsTeR_ если опираться на функционал оригинального движка. То придется перебрать в цикле 65к id, по каждому взять серверный объект, а у серверного объекта проверить его parent_id. Те у кого совпадет с id нужного непися - принадлежат ему.

function get_offline_inv(id)
  local item_id = 1
  while item_id < 65534 do
    local sobj = alife():object(item_id)
    if sobj and sobj.parent_id == id then 
      table.insert(offline_inv, sobj)
    end
    item_id++; -- :)
  end
end

Как-то так. На более доведенном до ума движке, можно лучше конечно.

P.S. Да, "готовый код" "заминирован" простыми ошибками намеренно. Я остаюсь верен своему принципу - помощи заслуживает тот, кто сам что-то делает. Эти простые ошибки легко исправить, если понимать, что делаешь. Однако если просто бездумно скопировать-вставить код, он работать не будет

  • Спасибо 1
  • Полезно 1
  • Сомнительно 2

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий
2 минуты назад, Zander_driver сказал:
item_id++; -- :)

Я конечно дико извиняюсь, это какова язика синтоксис?

C# или С++ ?  но явно не LUA

чукча конечно не прогер и может ошибаться

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

@Zander_driver Затем, что если знать, ЧТО именно человеку нужно - можно иногда подсказать более рациональный и" нормальный" способ сделать что-либо. 
А не городить странных конструкций только потому, что человек думает, будто то, что он просит - _единственный_ способ решения его проблемы.

Посмотрите хоть в соседней теме по ковырянию - там просили (прости господи) анимки для ручного указания стэйтов мутанту. Вместо нормального использования моб_хоума с логикой.
Или в этой же теме  -  эпопея с пачкой патронов.
Всегда, чтоб продуктивно помочь -  надо знать, какая конечная цель.
 

  • Согласен 3
  • Полезно 1

След от кругов на воде - это тоже след (с)

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

Я в чужие дела не лезу, хочет узнать - значит есть, зачем.   #Сидорович

 

12 минут назад, Zander_driver сказал:

если опираться на функционал оригинального движка

если на то пошло - и будем опираться на оригинал - у непися может и будет находиться только то, что ему заспавнено (оллспавном или скриптом),

и больше ни чего - так как в ванили нпс не лутаются, не торгуют между собой и барыгами, не шмонают трупы и нычки, и не собирают арты и любой другой хабар,

единственная возможность изменения содержимого инвентаря (если я ни чего не забыл) нпс это торговля с ГГ, поэтому я и посчитал данный вопрос 

всего лишь глупой хотелкой.

Ссылка на комментарий
1 час назад, Okichi сказал:

Всегда, чтоб продуктивно помочь -  надо знать, какая конечная цель.

Так то оно так. Но, если конечная цель является военной тайной вопрошающего, и не раскрывается ни при каких условиях, то что тут можно поделать?

Можно конечно устроить партизанский допрос с пристрастием :crazy2: Но, это немного затратно по времени. В конце концов, если бы это было важно, человек сам бы сказал.

2 часа назад, ted.80 сказал:

Я конечно дико извиняюсь, это какова язика синтоксис?

А еще можно выделить мой пост выше, и прочитать текст целиком, включая _невидимый_ :)

Одну "мину" нашел, возьми с полки пирожок. Их там было две.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

@Zander_driver , ну, например - в данном случае полезно бы знать, является ли искомый предмет ( который надо найти в инвентаре непися ) - уником, или это снова "пачка патронов". Если это уник - совсем не надо цикл на 65 тыс, достаточно получить серверный объект этого уника ( по ид, по стори_айди, по имени, по хранимой переменной - как там он изначально определялся ) - и проверить ТОЛЬКО для него его текущего парента. 

Вряд ли подобные данные можно считать военной тайной, не раскрываемой ни при каких условиях...

След от кругов на воде - это тоже след (с)

Ссылка на комментарий
8 часов назад, Zander_driver сказал:

Одну "мину" нашел, возьми с полки пирожок. Их там было две

Я и не искал - она сама мне прямо в глаз "попала" :23:

Это и правда было-бы весело - если бы не было печально, подавляющее большинство среднестатистических индивидуумов тупо скопирует твой "заминированный" код,

и не будет разбираться в синтаксисе и искать пасхалки, а будет сидеть и ныть в комментах "ни роботаит",

а если ему подскажут в чём трабл - ну или всё же сам допетрит - как ты думаешь что он с ним сделает?

!Правильно! - повесит на апдейт! и вся эта портянка будет перебирать 65к предметов за такт, и опять начнется "виснит", "логаит", "вылитаит", :dash3:

так что это тот ещё вопрос, под кого это мина заложена :WhiteVoid_2:, и восстанут "Юзвери" из пепла форумных ристалищ - и пойдут они строчить каменты на 3 страницы offтопа

 

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

Есть у кого-нибудь схемы лута ящиков и разжигания костров неписями для ЗП? Или мб какая-нибудь статья где-то есть, посвящённая подобным темам. А то самому ума немного не хватает до конца разобраться со всем тем, что есть в xr_corpse_detection, чтобы по аналогии составлять скрипты для лута ящиков и т.д.

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


Вопрос по ОГСР движку. Как заставить ГГ достать бинокль? Добавил по аналогии как в НА7 -- в bind_stalker:

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

local slot_before_binoc    = -1

 

function actor_binder:on_key(dik)
    local bind = dik_to_bind(dik)
    xr_signals.on_event("key_press", key, bind)
    if key == bind_to_dik(key_bindings.kNA_USE_BINOC) then
    if self.object:active_slot() == 8 then
    self.object:activate_slot(slot_before_binoc)
    elseif self.object:item_in_slot(8) and self.object:item_in_slot(8):is_binoculars() then
    slot_before_binoc = db.actor:active_slot()
    self.object:activate_slot(8)
end
end
end

 

function actor_binder:on_mouse_wheel(vol)
    if level.main_input_receiver() then
        return
    end
    xr_signals.on_event("mouse_wheel", vol)

    if self.object:has_info("ui_inventory") then
        return
    end

    if self.object:has_info("ui_pda") then
        return
    end

    if self.object:active_slot() == 5 and vol > 0 then
        if self.object:item_in_slot(8) and self.object:item_in_slot(8):is_binoculars() then
            self.object:activate_slot(8)
        end
    elseif self.object:active_slot() == 8 and vol > 0 then
        if self.object:item_in_slot(5) and not self.object:zoom_mode() then
            self.object:activate_slot(5)
        end
    end
end

В external:

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

[custom_keyboard_action]
na_use_binoc=kNA_USE_BINOC

В ui_keybinding:

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

<command id="kb_na_use_binoc"        exe="na_use_binoc"/>

В игре назначил кнопку и результат 0.

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

Возможно в чистом ТЧ получить координаты точки, на которую нацелен/смотрит ГГ?

@Кекс в логику рестриктора функцию:

=set_squad_enemy_to_actor(id_сквада)

 

God save Hatsune Miku!

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

@Colder Чтож вы все пытаетесь игрока(т.е. живого человека) загнуть в ваши похотелки??? Ну всунешь ты ГГ бинокль скриптом в руки, что мешает игроку тут-же нажать назначенную клавишу другого снаряжения или колесико мыши крутнуть? В ЧЕМ смысл?

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

Подозреваю, кат-сцену делают... где по сюжету ГГ должен бинокль достать, да еще наверное посмотреть в строго определенном направлении, чтобы там чего-то нужное увидеть.

Проще всё нужное в этом случае, отснять на видео, перегнать в формат интро-роликов игры, и уже это в игре запускать. По образу-подобию снов Стрелка после прохождения Х-18 и иже с ними.

  • Согласен 1
  • Полезно 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

@Zander_driver 

Так я ж об этом самом: на кой игроку руки заламывать, сделайте в виде кат-сцены или ролика.

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

Всем привет. Пытаюсь дать рандомный хит заспавненому предмету ГГ в рюкзак.

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

function parse_list_box(obj)

    local sec = obj:section()

    local ac = sys_ini:r_float_ex(sec, "amount_content")

    local at = sys_ini:r_string_ex(sec, "amount_target")


        if rand(100) < ac then

        if ini_pack:section_exist(at) then


        local n = ini_pack:line_count(at)

        local key = rand(0,n-1)

        local result, item, num = ini_pack:r_line(at, key, "", "")


        alife():create(item, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())


        item:set_condition((math.random(5)+15)/100) -- делаю так, получаю вылет

        local name = tostring(sys_ini:r_string(item, "inv_name_short"))

            axr_txt_tip.send_tip_attach("%c[d_cyan]"..gts("st_ui_package").." %c[ui_white]"..gts(name))

            return item, num

        end

    end

end

Можно ли вообще каким нибудь путём дать хит?

Ссылка на комментарий
9 часов назад, Colder сказал:

Пытаюсь дать рандомный хит заспавненому предмету ГГ в рюкзак

Хит наносится так - 

Скрытый текст
	local h = hit()
	h.power = 0.3
	h.direction = vector():set(0, 0, 0)
	h.impulse = 0
	h.draftsman = db.actor
	h.type = hit.fire_wound
	obj:hit(h)  -- obj в данном случае клиентский объект, которому наносится хит

 

 item:set_condition((math.random(5)+15)/100)

Метод set_condition применяется к клиентским объектам. А в вашем случае item - это, скорее всего, строка, поэтому и вылет.

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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