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

Скриптование


Svoboда

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

volazar

Ну во первых такой код чреват вылетами. В одной строке проверяете и сам объект, и его секцию. А если никакого костюма не надето? объект = nil, и тут же произойдет попытка получить nil:section() для следующей проверки.

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

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

В третьих... хотя небуду больше ничего говорить, хватит.

local msg1 = true
local msg2 = true
function nano_speed()
local nano_speed = db.actor:item_in_slot(1)
local nano_suit = db.actor:item_in_slot(6)
local gg = db.actor
    if nano_speed and nano_suit then
        if nano_speed:section() == "nano_speed" and nano_suit:section() == "nano_suit" then
        if msg1 then
        news_manager.send_tip(gg, "%c[10,241,129,129]".."Сообщение центрального процессора:".."\\n".."%c[10,241,129,129]Инициализирован модуль "Скорость". Модуль готов к использованию.".."\n")
        this.nano_speed_1() -- Какой молодец. И модуль нацепил и костюм не забыл одеть.
        msg1 = false
        msg2 = true
        end
        elseif nano_speed:section() == "nano_speed" and nano_suit:section() ~= "nano_suit" then
        if msg2 then
           news_manager.send_tip(gg, "%c[10,241,129,129]".."ERROR:".."\\n".."%c[10,241,129,129]Ошибка инициализации. Отсутствует подключение к центральному процессору!".."\n", nil, nil, 30000) -- А костюм где? Дубина!
           msg2 = false
           msg1 = true
        end
        else
        msg1 = true
        msg2 = true
        end
    elseif nano_speed then
    if nano_speed:section() == "nano_speed" and msg2 then
           news_manager.send_tip(gg, "%c[10,241,129,129]".."ERROR:".."\\n".."%c[10,241,129,129]Ошибка инициализации. Отсутствует подключение к центральному процессору!".."\n", nil, nil, 30000) -- А костюм где? Дубина!
           msg2 = false
           msg1 = true
    end
    else
    msg1 = true
    msg2 = true
    end
end

 

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение

Возникла тут пара вопросов, что-то или упустил или забыл наверное...

1. Можно ли из игры, скриптом установить story_id объекта? До этого объект его не имеет.

2. Каким способом можно скриптом опять же, просканировать какие story_id свободны, кроме перебора всех серверных объектов?

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение

volazar у тебя в переделанной функции удаления, ключом для чтения из пстора является таблица телепортов локации. а функцию спавна ты переделал? она же у тебя записывает по строковому ключу, а не по таблице.

 

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

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Столкнулся тут с непонятной проблемой.

Имеем - 4 свои таблицы, в которых хранятся id онлайн-объектов четырех типов. неписи, монстры, аномалии, артефакты. биндеры аномалий и артефактов у меня сделаны.

local dt_stalkers = {}
local dt_monsters = {}
local dt_anomalys = {}
local dt_artefacts = {}

function add_stalker_data(id)
    table.insert(dt_stalkers, id)
end

function del_stalker_data(id)
    local a = 1
    local b = nil
    while dt_stalkers[a] ~= nil do
    if dt_stalkers[a] == id then b = a end
    a = a + 1
    end
    if b then table.remove(dt_stalkers, b) 
    else log("hdetect.sript:message:Error_deletestalker"..tostring(id)) end
end

function add_monster_data(id)
    table.insert(dt_monsters, id)
end

function del_monster_data(id)
    local a = 1
    local b = nil
    while dt_monsters[a] ~= nil do
    if dt_monsters[a] == id then b = a end
    a = a + 1
    end
    if b then table.remove(dt_monsters, b) 
    else log("hdetect.sript:message:Error_deletemonster"..tostring(id)) end
end

function add_anomaly_data(id)
    table.insert(dt_anomalys, id)
end

function del_anomaly_data(id)
    local a = 1
    local b = nil
    while dt_anomalys[a] ~= nil do
    if dt_anomalys[a] == id then b = a end
    a = a + 1
    end
    if b then table.remove(dt_anomalys, b) 
    else log("hdetect.sript:message:Error_deleteAnomaly"..tostring(id)) end
end

function add_artefact_data(id)
    table.insert(dt_artefacts, id)
end

function del_artefact_data(id)
    local a = 1
    local b = nil
    while dt_artefacts[a] ~= nil do
    if dt_artefacts[a] == id then b = a end
    a = a + 1
    end
    if b then table.remove(dt_artefacts, b) 
    else log("hdetect.sript:message:Error_deleteartefact"..tostring(id)) end
end

 

 

функции add_XXX_data вызываются из net_spawn соответствующих объектов, функции del_XXX_data из net_destroy

Ну так вот, как вы заметили, каждая функция удаления выдает сообщение в лог, если ей на удаление приходит объект, которого в таблице и не было.

И при завершении игры/уходе гг с уровня на другой, в лог пачками валятся сообщения Error_deletestalker, т.е. запросы на удаление из таблицы неписей, которые в таблице не числятся. Такая ситуация только с неписями, а вот с аномалиями, артами и монстрами ни разу таких странностей не было.

Получается, в онлайне могут присутствовать нпс, для которых не вызывался net_spawn, откуда же они тогда берутся и как их отловить?

Перебором всех 65к объектов для их отлова заниматься не хочется...

 

игра ТЧ 1,0004, амк-скриптов в составе мода практически нет, для вывода в лог используется модуль от RvP

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

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение

ins33, может перестать уже биться о стену и принять то что дают? :)

Выше Shredder тебе дал абсолютно рабочую функцию, используй ее и все заработает как ты хотел без всяких вылетов.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение

GreadFiasco Значение в конфиге, через скрипт изменить нельзя. Можно его только прочитать оттуда, что ты и делаешь в своем примере.

Можно скриптом заменять один предмет на другой - точно такой же, но с другим весом.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение
Еще часто баги вылетают такие, что как бы НПС говорит фразу ГГ, или после моей фразы опять такая же(по содержанию) только НПС ее говорит. Как с этим бороться?

Скорее всего, ид фраз неправильно задаешь. Не тот тип данных при своевольных трактовках луа приводит к глюкам в данном случае.

По нужной тебе затее - в первой фразе через экшен вызови math.random(1,100)

Сохрани результат. А на нужные тебе рандомные фразы повесь прекондишены вида

function randomselect_1_2() return (phrase_select_random < 51) end
function randomselect_2_2() return (phrase_select_random > 50) end

 

Driv3r

Магазинное питание при разрядке оружия производит переконвертацию магазинов. т.к. фактически при разрядке из оружия выпадает столько магазинов, сколько было в нем патронов. Скрипт магазинного питания удаляет лишние, переводя количество в состояние магазина, записывая число патронов иным образом. А скрипт ограничения рюкзака вмешивается в этот процесс, пытаясь произвести действия с объектами, которые были удалены магазинным питанием, отсюда вылет.

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

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)
Не понял вот эту фразу...вот мой диалог в котором косяки:

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

 phr0 = dlg:AddPhrase(intro_phrase[math.random(1, table.getn(intro_phrase))], "0", "", -10000):GetPhraseScript()

"0" измени на 0. "" - на -1.

 phr1 = dlg:AddPhrase("Текст 2", "1_2", "0", -10000):GetPhraseScript()

"1_2" - замени на 2. "0" - на 0.

И так далее, не строки, а числа. Как я понял из сторонних источников, строковые ид фраз применяются начиная с 5-го патча. А на 4-м и ранее - только числа.

Artos !

Struck, рандомность выбора фраз в диалогах возможна только при самом первом создании драфта (дерева) диалога. В последующем - что получил - то и будет показывать в диалоге, и так до перезагрузки.

Ну вы бы читали хоть вышенаписанное. Я же уже привел пример как рандомный выбор реализовать :)

 

Вот, если угодно, его величество рандом во всей красе

local phrase_select_random
function upd_random()
phrase_select_random = math.random(1,100)
end
function randomselect_1_10() return (phrase_select_random < 11) end
function randomselect_2_10() return (phrase_select_random > 10 and phrase_select_random < 21) end
function randomselect_3_10() return (phrase_select_random > 20 and phrase_select_random < 31) end
function randomselect_4_10() return (phrase_select_random > 30 and phrase_select_random < 41) end
function randomselect_5_10() return (phrase_select_random > 40 and phrase_select_random < 51) end
function randomselect_6_10() return (phrase_select_random > 50 and phrase_select_random < 61) end
function randomselect_7_10() return (phrase_select_random > 60 and phrase_select_random < 71) end
function randomselect_8_10() return (phrase_select_random > 70 and phrase_select_random < 81) end
function randomselect_9_10() return (phrase_select_random > 80 and phrase_select_random < 91) end
function randomselect_10_10() return (phrase_select_random > 90) end

 

первую функцию - вызываем через экшен в стартовой фразе диалога. остальные используем в качестве прекондишенов для рандомных фраз.

число функций и подбор чисел соответственно - должны совпадать с числом вариантов рандомной фразы.

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

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение
"No available phrase to say, dialog[escape_trader_test_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.

Поделиться этим сообщением


Ссылка на сообщение

Artos

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

И что касается первой фразы, есть у меня одна идея. А если первые две фразы сделать "пустыми", т.е. без текста?) При скриптовой генерации диалога, такие фразы пропускаются - считаются как бы пустыми линками. Но ведь экшен из них вызвать можно. И в итоге первая не пустая фраза - будет вовсе уже не первой, но однако первой которую увидит игрок. И она уже может быть рандомной.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Struck

Посмотри внимательно что у тебя происходит...

Ты в КАЖДОЙ функции прекондишена вызываешь math.random по 1-2 раза. Она же тебе возвращает рандомные числа. Таким образом, поведение каждой из функций рандомно и не зависит от остальных - существует вероятность, что все три не будут доступны, и произойдет вылет, И также есть вероятность что доступны будут все три. Неудивительно что вся эта чехарда не работает.

 

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

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

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

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

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

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение

Имеем: биндер аномалий, с колбеками net_spawn и net_destroy. Версия игры ТЧ 1.0004.

А другие колбеки аномалиям доступны? и где можно узнать какие.

конкретнее интересует колбек на попадание актора/нпс/монстра/физ/объекта/болта в шейп аномалии.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение

Еще один вопрос - к тем кто юзает дебаговый модуль от RvP.

Используя функцию log("сообщение") приходилось ли кому замечать такой факт: из одного определенного модуля (файла скрипта) вызовы этой функции игнорируются, т.е. не выводят информацию в лог, (как первый, так и второй) при том что отлично работают во всех остальных.

При этом:

1) в модуле нет локальных переменных или функций с именем "log".

2) код синтаксически верен и работает, функции модуля вызываются, работают и возвращают значения

3) Вызовы log("сообщение") из других модулей стабильно работают, а из данного - наотрез.

4) Замена log на старый недобрый get_console():execute("сообщение") приводит к тому что все работает и сообщения записываются в лог как неопознанные команды.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение

В ЗП вообще тайники не в ящиках, если мне память не изменяет... так что по ТЧ/ЧН можно наверно просто взять любой ящик и проверить есть ли он в treasure_manager-e. Если нету - значит не тайниковый.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение

при спавне вешай стори_ид, при смерти - проверяй стори_ид, сравнивай с записанным. совпало - значит он.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение

Да вроде ничего не путаешь все правильно

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение

Вопрос по скриптовым окнам на классе CUIScriptWnd.

В справочнике о нем почитал, скрипты игры посмотрел. В InitCallBacks всюду вижу чтонибудь вроде такого:

    self:AddCallback("btn_enter",    ui_events.BUTTON_CLICKED,    self.OnButton_OK_clicked,        self)

А можно ли на кнопку также повесить и другой колбек? например отследить не только событие нажатия, но и например наведение мыши на кнопку.

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

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение

evstrat

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

Пока не совсем понятно на каком этапе у тебя не получается.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

evstrat

Не в качестве готовой функции, но как информация для старта размышлений.

function inv_mass(npc)
if not npc then
npc = db.actor
end
local mass = 0
npc:iterate_inventory(
function(dummy, item)
if item:section() ~= nil then
local item_mass = system_ini():r_float(item:section(),"inv_weight")
if item_mass then mass = mass + item_mass end
end
end
,npc)
return mass
end

 

Тут не делается проверки на содержимое пачек патронов - в них ведь разное количество может быть. И не ведется подсчет веса патронов заряженных в оружие, а также вес навешенных на него аддонов. Это все легко подсчитать, если прочесть нет-пакет оружия. Но это уж сами :) На блюдечке не здесь угощают.

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

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Поделиться этим сообщением


Ссылка на сообщение

P.S. Для чего изобретать свой велосипед? ... и не имея навыков по теме, даже не смотреть на уже готовые примеры...

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

 

 

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

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

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