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

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

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 ядер, 32 потока, 5.75 ГГц); 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 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

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

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

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
Ссылка на комментарий
59 минут назад, Manool сказал:

А в вашем случае item - это, скорее всего, строка

Не скорее всего, а так и есть.

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

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

[ЗП 1.6.02]

Документы с завода и квестовый артефакт "Измененный изолятор" не обнаруживаются при переборе инвентаря – "ловится" только модуль памяти БПЛА. При обычном поиске for i = 0, db.actor:object_count() -1 видны все  квестовые предметы. В чем может быть причина?

Spoiler
-- триггер через расход бинта
	db.actor:inventory_for_each(
		function(item)
			if item:section():find("jup") then
				news_manager.send_tip(db.actor, item:section())
			end
		end
	)

 

 

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

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

Шпаргалка

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

При обыске мутантов получаю такую иконку: https://disk.yandex.ru/i/C7p9gpesomX2mQ Что я пишу не так?

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

function InterfeiceLoot:SetMutantImage()

    local killed_mutant_tbl =
    {
    snork                = {file="ui\\guide\\ui_actor_monsters_pda",x="393",y="200",special="0"},
    dog                = {file="ui\\guide\\ui_actor_monsters_pda_3",x="0",y="800",special="0"},
    pseudodog            = {file="ui\\guide\\ui_actor_monsters_pda",x="788",y="200",special="0"},
    psy_dog                = {file="ui\\guide\\ui_actor_monsters_pda",x="788",y="200",special="0"},
    poltergeist            = {file="ui\\guide\\ui_actor_monsters_pda_3",x="0",y="400",special="0"},
    bloodsucker            = {file="ui\\guide\\ui_actor_monsters_pda_3",x="393",y="400",special="0"},
    controller            = {file="ui\\guide\\ui_actor_monsters_pda_3",x="393",y="800",special="0"},
    chimera                = {file="ui\\guide\\ui_actor_monsters_pda_3",x="0",y="600",special="0"},
    tushkano            = {file="ui\\guide\\ui_actor_monsters_pda_3",x="0",y="0",special="0"},
    rat                = {file="ui\\guide\\ui_actor_monsters_pda_3",x="0",y="0",special="0"},
    flesh                = {file="ui\\guide\\ui_actor_monsters_pda_3",x="393",y="600",special="0"},
    burer                = {file="ui\\guide\\ui_actor_monsters_pda",x="0",y="0",special="0"},
    boar                = {file="ui\\guide\\ui_actor_monsters_pda",x="393",y="200",special="0"},
    giant                = {file="ui\\guide\\ui_actor_monsters_pda",x="0",y="200",special="0"},
    cat                = {file="ui\\guide\\ui_actor_monsters_pda_2",x="0",y="0",special="0"},
    fracture            = {file="ui\\guide\\ui_actor_monsters_pda_2",x="393",y="200",special="0"},
    zombie                = {file="ui\\guide\\ui_actor_monsters_pda_2",x="0",y="200",special="0"},
    }

    local mutant_id = sys_ini:r_string_ex(self.section,"species") or nil

    local mutant_f = "ui\\guide\\ui_actor_monsters_pda_3"
    local mutant_x = 0
    local mutant_y = 0

 

    mutant_f = tostring(killed_mutant_tbl[mutant_id].file)
    mutant_x = tostring(killed_mutant_tbl[mutant_id].x)
    mutant_y = tostring(killed_mutant_tbl[mutant_id].y)

    local x1 = mutant_x
    local y1 = mutant_y


    local mutant_width = 393
    local mutant_height = 200

    local x2 = x1 + mutant_width
    local y2 = y1 + mutant_height

 

    self.image = self.xml:InitStatic("form:image",self.form)
    self.image:InitTexture(tostring(mutant_f))
    self.image:SetOriginalRect(x1,y1,x2,y2)
end

Платформа ОГСР. Заранее спасибо.

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

Как сделать для НПС систему лута тайников/монстров/зажигания костров? Не особо что-то получается разобраться в оригинальном xr_corpse_detection.script. Как именно находится цель для НПС, и как его туда направить для дальнейших действий с этой целью? Мб кто подскажет, или есть какие посты на эту тему, не могу найти...

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

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

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

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

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

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

Войти

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

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

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