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

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

В этой битве титанов ни на чью сторону вставать не буду, скажу что прав и тот, и тот, а вот почему - кто ответит, тому ачивка "желание монолиту". Сам это вкусил в процессе написания одного супер модуля ;).

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

 

 

Хотя можешь и не проверять, а открыть файл bind_smart_terrain.script и в методе net_spawn увидишь db.add_smart_terrain( self.se_smart_terrain ) Затем открой файл db.script. Дальше, надеюсь всё и так ясно.

Это забавно. А ничего, что тут совсем другое действие?)

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

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

@makdm@Zander_driver, спасиба, мужики! Обе схемы заработали. Назовём тогда "схема за 05.07.2015 от makdm с правками от Zander_driver". :D  В момент сейва глючные объекты удаляются не только на текущем уровне, но сразу на всех. Думаю, попробовать её же и при старте/загрузке игры включать, чтобы заранее грохала, особенно если попадется старый глючный сейв...

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

Как переместить сквад на другую локацию в ЗП? Имею в виду не мелкие, а Затон, Юпитер и т.д.

Да где же этот артефакт, едрить его в корень!

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

@MrGROX,  удаляешь на локации убытия и проспавниваешь на локации прибытия.

Именно так делали разрабы Сталкера в ЗП все переходы сквадов с локации на локацию.

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

Справедливости сказать, в ЗП нпс-ы вполне себе переходят по связанным графпоинтам с локации на локацию, и даже сквад может так перейти...но не всегда. Частенько вылетает, когда ведомые в скваде теряют лидера. А одиночки (или сквады из 1-го нпс) нормально ходят между локами.

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

@Clayman, мне как раз таки и нужно, чтобы всего один НПС переходил. Просто хотелось бы узнать, что в скрипте писать. А насчёт удаления и последующего спавна - нет, абсолютно не подойдёт такой вариант.

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

Да где же этот артефакт, едрить его в корень!

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

 

 

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

Не в скрипте, а в конфиге(ltx-файл) логики для этого НПСа. Так что, с этим вопросом в ковырялку ЗП. 

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

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

Доброго времени суток! Помогите разобраться со скриптами. Хочу сделать отдельный скрипт для внесения функций на точки переходов между локациями. Создаю пустой скрипт mapspots.script, вписываю его и функцию в bind_stalker.script так:

 

function actor_binder:info_callback(npc, info_id)
printf("*INFO*: npc='%s' id='%s'", npc:name(), info_id)
--' Сюжет
-- Отметки на карте
mapspots.add_lc_spot_to_map()
end


В скрипте mapspots.script пишу следующее:

 

function has_lc_to_marsh_1()
if db.actor:has_info("actor_teleport_to_marsh_1") then
local obj_id = get_story_object_id("esc_to_marsh_1")
--if(obj_id) then
level.map_add_object_spot_ser(obj_id, "level_changer_down_left", "lc_to_marsh_name")
end
end

function has_lc_to_escape_1()
if db.actor:has_info("actor_teleport_to_marsh_1") then
local obj_id = get_story_object_id("marsh_to_esc_1")
--if(obj_id) then
level.map_add_object_spot_ser(obj_id, "level_changer_up_right", "lc_to_esc_name")
end
end

function add_lc_spot_to_map()
if db.actor == nil then
return
end
-- перечислим функции, которые обрабатываем
has_lc_to_marsh_1()
has_lc_to_escape_1()
end

 

Всё сохраняю, запускаю игру и получаю вылет:

Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ...call of pripyat\gamedata\scripts\bind_stalker.script:133: attempt to index global 'mapspots' (a nil value)

Но если я заношу все функции, напрямую в bind_stalker.script (или, например, в dialogs_локация.script), и вписываю в bind_stalker.script так

function actor_binder:info_callback(npc, info_id)
printf("*INFO*: npc='%s' id='%s'", npc:name(), info_id)
--' Сюжет
ui_clc_menu.level_changer_choise(info_id)
-- Отметки на карте
add_lc_spot_to_map()
end


то вылета нет, подскажите, что я делаю неправильно? (Прошу сильно не пинать, я со скриптами впервые работаю :) ).

Изменено пользователем Grif_on
Ссылка на комментарий
Description : ...call of pripyat\gamedata\scripts\bind_stalker.script:133: attempt to index global 'mapspots' (a nil value)

Такая строка говорит о том что у вас в mapspots.script синтаксическая ошибка. или, файл скрипта называется не так.

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

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

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

Знающие, подскажите. Мод FAE для ТЧ. Если запустить таймер из amk.script, как его возможно сбросить или отключить?

Сталкер - наше всё!

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

 

 

Если запустить таймер из amk.script, как его возможно сбросить или отключить?

Ну это уже не серьезно: если есть какая-то система таймеров, и Вы знаете ф-цию запуска, то что мешает посмотреть в том-же скриптовом модуле ф-цию остановки\сброса\перезапуска ?

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

@UnLoaded, Просто я еще в скрипте таймера еще не разбирался, а необходимость сброса/отмены таймера назрела.

Сталкер - наше всё!

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

 

 

если есть какая-то система таймеров, и Вы знаете ф-цию запуска, то что мешает посмотреть в том-же скриптовом модуле ф-цию остановки\сброса\перезапуска ?

между прочим, за последние несколько постов, самая полезная мысль. А тролльная перепалка, это конечно весело, но вряд ли полезно.

  • Согласен 2

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

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

 

 

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

Спасибо, но я уже сам разобрался. Ничего сложного там нету.

Сталкер - наше всё!

Ссылка на комментарий
Как прописать custom_data определенному объекту через скрипт?

Завалялась вот функция:

local obj=alife():create("esc_stalk",vector():set(-63.919,6.269,-36.914),283878,3051)
local params=amk.read_stalker_params(obj)
params.custom="[logic]\ncfg = scripts\\name.ltx" ---- путь к файлу логики.
params.sid=12547
amk.write_stalker_params(params,obj)

Работать будет только с АМК модом.

Изменено пользователем BoBaH_671
  • Полезно 1

Ранее был известен под ником BoBaH_671.

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

Снимаю/цепляю оптический прицел из скрипта. Сейчас делаю это, удаляя оружие и спауня новое, меняя нетпакет при спауне. Есть способы "синхронизировать" клиентский объект с серверным, что бы обойтись без удаления/спауна?

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

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

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

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

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

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

Войти

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

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

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