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

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

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

1 час назад, Купер сказал:

@андрей дронав ,

  off topic (Скрыть)

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

 

Дружище, я никогда не учил язык программирования, для меня этот код "Абракадабра". Я умею пользоваться "WinMerge", и на этом мой навык мододела кончился. Буду пробовать ковырять ссылаясь на прошлые темы, а вдруг узнаю, ПАЧИМУ НЕ РАБОТАЕТ:laugh:

 

Может быть так?

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

self.object:set_callback(callback.use_object, self.use_object, self)
...
end

  function actor_binder:use_object(obj)
        sound_obj_left = sound_object([[material\\dead-body\\collide\\hithard0]])
        sound_obj_left:play_at_pos(db.actor, vector():set(1, 0, 1), 0, sound_object.s2d)
    end

 

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

ui_main_menu.script->

function main_menu:InitControls() ...     local _ver = xml:InitStatic        ("static_version",self)     local mm                        = _G.main_menu.get_main_menu()     _ver:SetText                    ("ver. " .. mm:GetGSVer())    end

function main_menu:InitControls()
...
    local _ver = xml:InitStatic        ("static_version",self)
    local mm                        = _G.main_menu.get_main_menu()
    _ver:SetText                    ("ver. " .. mm:GetGSVer())   
end

 

Еще можно так:      _ver:SetText ("Ж.О.П.А.")

Изменено пользователем macron
  • Согласен 1
  • Смешно 3
Ссылка на комментарий
30.06.2022 в 17:56, Zander_driver сказал:

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

.

Пытался адаптировать этот скрипт

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

-- Отрезание запчастей монстров ножом и озвучка. Для отрезания достаточно, чтобы нож был в рюкзаке.
local monster = nil
local snd = nil
function get_monster()
    return monster
end

-- Ножи и прочее ХО, которым можно отрезать запчасть
local knives = {
    ["wpn_knife"]=true
}

function right_knife(knife)
    return (knives[knife:section()] and knife:condition()>0.1) or false
end

function on_part_take(obj)
    if not monster then
        return 
    end
    local item_part=ini_reader.iniReader():readBool(obj:section(),"monster_part",false)
    local monster_part=ini_reader.iniReader():readString(monster:section(),"Spawn_Inventory_Item_Section","")
    if not item_part or monster_part~=obj:section() then
        return
    end
    
    if actor_has_knife() then
        level.start_stop_menu(level.main_input_receiver(), true)
        if snd and snd:playing() then
            snd:stop()
        end
        snd = voice("zwuk\\inv_mutant_loot_"..math.random(1,16))
        snd:play_at_pos(db.actor, vector(), 0, sound_object.s2d)
        archievements.acv_count_event("acv_gvdr", 500, "acv_gvdr") 
        local knife=db.actor:item_in_slot(0)
        local cond_dec=ini_reader.iniReader():readString(knife:section(),"condition_shot_dec",0)
        if cond_dec~=0 then
            knife:set_condition(knife:condition()-cond_dec)
        end
        return
    end
    sms("on_part_take_0", nil, "nano", 5000)
    db.actor:transfer_item(obj, monster)
end

function actor_has_knife()
    local item_in_slot=db.actor:item_in_slot(0)
    if item_in_slot and item_in_slot:condition()>0.1 then
        return knives[item_in_slot:section()] or false
    end
    return false
end

function on_monster_use(victim, who)
    monster = victim
end

function on_monster_stop_use()
    monster = nil
end

function move_on()
    snp.move_on()
end
 

 

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

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

(Платформа ОП, rx_kill_wounded.script). 

Какой из? Их же уже столько, а в каждом по своему! :biggrin: 

По идее, достаточно в rx_ai.script просто откомментировать загрузку и включение ненужной схемы:

function load_schemes()
function enable_schemes(ini,npc)

В оригинале модулей AI, кстати, достаточно просто удалить/переместить нужный/ненужный файл с соответствующим модулем.

 

 

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

@Купер не все так просто может оказаться. Например,если отключить движковую схему добивания раненных, то ничего хорошего не выйдет. В движке эта схема сильно связана с боевкой. Т.е. раненный остаётся в списке врагов и пока есть в памяти хоть один не раненный, то бой идёт с ним(и). Если в памяти остались только раненные враги, то активизируется схема добивания раненных. А если она отключена, будет упс, т.к. движок на такое не рассчитан и не знает, что делать. Враг как бы есть, а что делать - не понятно. Т.ч. насчёт "по идее" отключить, все может оказаться не так просто.

  • Нравится 1
  • Согласен 1
  • Полезно 2
Ссылка на комментарий
1 час назад, dsh сказал:

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

В принципе, добивать раненых не есть хорошо... Было бы хорошо, если бы нпс "добивали" раненых аптечкой, т.е. вербовали в свою группировку, как это делает ГГ

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

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

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

А где-то можно почитать предметно относительно недоработок оригинальной движковой GSC схемы добивания подранков? В смысле: " подводные камни", что сделано через пень колоду, etc.

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

@Купер в исходниках движка? Мои данные основаны именно на этом. Это узнано в процессе переделки, что бы добиванием занимался тот, кто ближе, а не шли всей толпой.

@Купер кстати, это не то, чтобы недоработка. Нужно понимать, что движок сталкера - это движок созданный для одной игры, а не просто игровой движок. Т.е. моды по сути пытаются натянуть сову на глобус и использовать этот движок для того, для чего он не предназначен.

  • Полезно 2
Ссылка на комментарий
5 часов назад, EGER.OVERKILL WF сказал:

У меня там следующая билеберда: (брал из этого же файла, с другого рестриктора) 

  Настройки шейпа (Скрыть)

; cse_shape properties
shapes = 1
shape_0:type = sphere
shape_0:offset = 0,0,0
shape_0:radius = 4.5480751991272

@EGER.OVERKILL WF, давай-ка полную выкладку, как оно сейчас выглядит?

; cse_shape properties
shapes = shape0 <- ??? - кол-во шейпов
shape0:type = sphere - тип (сфера/параллелепипед)
shape0:offset = 0,0,0 - смещение 
shape0:radius = 5 - радиус (для типа "сфера")

; cse_alife_space_restrictor properties
restrictor_type = 0

В логике я бы лично подстраховался (хотя, в принципе, и лишнее, наверное):

[logic]
active = sr_idle

[sr_idle]
on_actor_inside = {-kura} nil %+kura%

{...} - условия для выполнения

%...% - действия

Ссылка на комментарий
16 часов назад, Купер сказал:

давай-ка полную выкладку

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

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[871]

; cse_abstract properties
section_name = space_restrictor
name = wy
position =  6.2584047317505,2.5409622192383, 72.255088806152
direction = -0.36953055858612, 0.0, -0.92921859025955
id = 65535
version = 118
script_version = 6
spawn_id = 871

; cse_alife_object properties
game_vertex_id = 89
distance = 9.8000002
level_vertex_id = 283095
object_flags = 0xffffff3e
custom_data = <<END
[logic]
active = sr_idle

[sr_idle]
on_actor_inside = nil %+kura%
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0, 0, 0
shape0:radius = 5

; cse_alife_space_restrictor properties
restrictor_type = 3

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

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

@EGER.OVERKILL WF , 

36 минут назад, EGER.OVERKILL WF сказал:

; cse_shape properties
shapes = shape0

вот здесь, по идее, число: 1

  • Согласен 1
Ссылка на комментарий
11 минут назад, Купер сказал:

@EGER.OVERKILL WF , 

вот здесь, по идее, число: 1

Если правильно понял, должно быть следущее:

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

shapes = 1
shape_0:type = sphere
shape_0:offset = 0,0,0
shape_0:radius = 4.5480751991272

 

Изменено пользователем EGER.OVERKILL WF
  • Согласен 1
Ссылка на комментарий

@EGER.OVERKILL WF, вот тут ещё посмотри.

---

Не, какая-то ерундистика получается.

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

Для коробки:

  • shape_0:axis_x = 1,0,0
    Длина по оси X
  • shape_0:axis_y = 0,1,0 
    Длина по оси Y
  • shape_0:axis_z = 0,0,1
    Длина по оси Z
  • shape_0:offset = 0,0,0
    Смещение центра коробки от координат объекта, указанных в position.

Длины коробки так странно выглядят, потому что в спавне они заданы как матрица трансформации объекта, поскольку движок оперирует именно ими. Если описываете объект правильным параллелепипедом, значение имеют только «диагональные» координаты: первая для X, вторая для Y, третья для Z. Остальные должны быть нулевые. Если же меняете их, грани шейпа в игре не будут параллельны, коробка будет «кривой».
Для аномалий обычно используется сфера, для всего остального – коробка.

K.D.

Изменено пользователем Купер
Ссылка на комментарий
06.07.2022 в 08:49, Купер сказал:

on_actor_inside = {-kura} nil %+kura%

{...} - условия для выполнения

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

 

А то, у меня с этим затык, я как не пробывал, первые два выдаются и работают (вызывают функции), а третий никак не выдается.

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

[logic]
active = sr_idle

[sr_idle]
on_actor_inside = sr_idle@2

[sr_idle@2]
on_info = {+stiq} nil %+kura% sr_territory

[sr_territory]
territory_death = nil %+lox_dead% sr_territory@2

[sr_territory@2]
territory_death = nil %+lox2_dead%  sr_idle@3

[sr_idle@3]
on_actor_inside = {+lox_dead -loxi_dead +lox2_dead} nil %+loxi_dead%

Ни on_actor_inside, ни on_info , ничего не повлияло.

Я в этом карлан, по этому попрошу указать мне на мою ошибку. 

Изменено пользователем EGER.OVERKILL WF
Ссылка на комментарий

@EGER.OVERKILL WF , что-то наподобие такого в простейшем варианте:

; начальная секция логики
[logic]
active = sr_idle

; если актор в рестрикторе, проверяем {..} наличие поршня stiq, переключаемся на схему sr_territory@1 выдаём %..% поршень kura 
[sr_idle]
on_actor_inside = {+stiq} sr_territory@1 %+kura%

; при выполнении условий отключаем рестриктор и выдаём конечный поршень.
[sr_territory@1]
territory_death = {+lox_dead +lox2_dead -loxi_dead} nil %+loxi_dead%

NB!

1: sr_territory отслеживает только события хита и смерти NPC, засчитанные от актора.

2: смутно припоминается, что глючная она (вот чем, пардон, навскидку не вспомню). Требуется консультация.

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

 

p.s.: вот зря карланом обозвался, придёт разработчик Prosectors Project, ругаться будет :biggrin:

---

@EGER.OVERKILL WF, да про карлана шутка. Вряд ли, как мне кажется, человек обидится. Просто бывают и вот такие курьёзы в нашем славном королевстве. :)

 

 

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

изначальную задумку бы озвучить,

Прихожу в зону рестриктора, там два бандита. Убиваю обоих.

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

p.s 3-ий поршень, выдающийся по убийству двоих (два других за первого и второго), разумеется мог бы давать какой-то квест, или спавнить предмет или что-то еще в этом духе.

 

32 минуты назад, Купер сказал:

p.s.: вот зря карланом обозвался,

Простите, без притензии на чужой ник)

Но, слово не воробей, а в теме рестрикторов и их логик, я действительно мало. 

Опять же, спасибо, попробую посмотреть, может и получится то, что нужно. 

Изменено пользователем EGER.OVERKILL WF
Ссылка на комментарий

Здравы будем.

Проблема с пропажей патронов. Пример: подобрал автомат, разрядил, в инвентаре 30 штук. Зарядил. Потом понадобилось снова разрядить - 4 штуки. Может любое кол-во получиться при разрядке, произвольное. То же самое и при смене типа патрона. 

В чем проблема, кто знает?

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

@Ворон545  Очередной любитель ясновидящих? Так их тут нету, совсем...

В оригинале ТЧ нет проблем с патронами\перезарядкой. Какие моды установлены, движок?

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

ясновидящих

Ага, он самый.

 

Мод UZI. Соавтор этого мода. 

Здесь обсуждают проблемы не только чистой игры, но и модов, в т.ч. и своих. Упоминание конкретного мода не обязательно. Имеет значение сам факт проблемы и сталкивался ли кто-нибудь с подобным.

Я тут не первый раз вопросы задаю.

Ссылка на комментарий
Только что, Ворон545 сказал:

Я тут не первый раз вопросы задаю.

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

А бывает, что люди сюда заходят и вбрасывают некий вопрос для ясновидящих, просто чтобы пообщаться. Причины явления при этом не интересны вопрошающему на самом деле.

Ваш вопрос - он из вторых.

5 минут назад, Ворон545 сказал:

Ага, он самый.

Что сами же и признали.

 

п.с. А может быть, общаться лучше у костра? Там это никому не мешает. А тут техническая тема как никак.

  • Нравится 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.

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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