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

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


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

03.02.2024 в 16:39, Balavnik сказал:

Например npc:id() прокатит? Или это метод клиента и не прокатит?

Прокатит-непрокатит, покатит-непокатит... вам не надоело в асфальтовый каток играться?

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

function get_id(obj)
	if obj ~= nil then
    	if type(obj.id) == 'function' then return obj:id() end -- Если получен клиентский объект, возвращаем его ID
    	if type(obj.id) == 'number' then return obj.id end -- Если получен серверный объект, возвращаем его ID
    end
  	return nil -- Если объект не получен, или не имеет поля id в ожидаемом формате. Значит это не клиентский и не серверный объект, и возвращать нечего.
end

 

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

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

в диалоге

Ок.

2 минуты назад, Balavnik сказал:

А функция xyz прекрасно работала

И работает. Записывает координаты в глобальный вектор.

Таки он тебе зачем? :) "До определенного момента" - именно потому что глобальный...

  • Согласен 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.

Ссылка на комментарий
4 минуты назад, mole venomous сказал:

 чего перестала

Не удалось выяснить. 

 

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

 он тебе зачем

Ну, я делал по образу и подобию солянок. Смотрел, какие конструкции там используются, и переносил в свои файлы. Проверял пару раз - работало.

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

Осенний каламбур. Сентябрь - лето.

img.php?nick=Balavnik&sert=2&text=t6

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

я делал по образу и подобию солянок.

Это очень плохой метод работы. Не рекомендую, так ты коллекционируешь чужие ошибки.

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

Всякие тесты, пробы пера и т.д. и т.п. делай в своих сторонних файлах. Не в _g.script.

  • Нравится 1
  • Согласен 1
  • Полезно 3

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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 Понял. А короткие имена делать или нет? Допустим я создал функцию create в balavnik_script, а в _g.script объявил переменную create = balavnik_script.create. Так можно делать? Иначе не очень удобно каждый раз обращаться.

Осенний каламбур. Сентябрь - лето.

img.php?nick=Balavnik&sert=2&text=t6

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

Так можно, но как правило не надо.

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

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

Метод вектора set не возвращает сам вектор.

А это тут при чём? Значения запишутся в pos_only через set и потом вернётся. return же прописан.
Имхо, хороший метод, при условии, что используется для разовой установки координат (для alife():create() тех же), в остальных случаях уже нужен свой vector().
 

5 часов назад, Balavnik сказал:

А короткие имена делать или нет?

У нас лично используется для часто используемых функций, чтобы легче было к ним обращаться, но, как правильно @Zander_driver сказал, надо сначала чувствовать себя в скриптах как рыба в воде. :grin2:

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

а в _g.script объявил переменную create = balavnik_script.create. Так можно делать? Иначе не очень удобно каждый раз обращаться.

у тебя что миллион строк кода, что если ты будешь писать create вместо alife():create() или вместо balavnik_script.create? для текстового редактора при копи-пасте все равно в этом случае сколько символов копировать:)

  • Нравится 1
  • Смешно 1
Ссылка на комментарий
14 часов назад, Balavnik сказал:

Ну, я делал по образу и подобию солянок.

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

https://github.com/dsh2dsh/op2ogse

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

Помогите решить проблему. При убийстве нпс оружие дропаеться (не всегда) со 100% состоянием как это фиксить? 

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

А напомните пожалуйста подробно, как там по последним данным фэнь-суя безвылетного правильно в конфигах торговли прописывать в разных секциях предметы, если я их хочу запретить к продаже/покупке? Вроде как ;NO TRADE  нельзя юзать?

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

как это фиксить?

Изменять состояние оружия в death_manager.script, как надо тебе.

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

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

предметы, если я их хочу запретить к продаже/покупке?

в OGSR по-крайней мере всё отдано на файлы конфигов торговли ,если надо запретить прописываешь нужную секцию в продажу/покупку и больше ничего не ставишь ни знак равно ничего после, если секции какого-то предмета нет в этом файле, а у непися этот предмет есть, он будет покупать и продавать его по номиналу

 

в оригинале вроде было также, но точно не скажу, там не разбирался там дотошно, но переведя один мод с OGSE на OGSR, ничего не меняя в конфигах обнаружил, что у меня неписи, которые раньше не торговали своим оружием в слоте после перевода мода на другой движок стали) потому не знаю, видимо в ОГСР всё отдали на откуп файлам торговли, а в оригинале был какой-то ещё флаг.

  • Полезно 2
Ссылка на комментарий
33 минуты назад, I am Dead сказал:

это комментарий?

Конечно. Читаться не должен. Но с движком ТЧ и его древними багами я иногда ни в чём не уверен.

  • Не нравится 1
Ссылка на комментарий
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.

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

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

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

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

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

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

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

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

Войти

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

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

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