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

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


Svoboда

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

Спавню НПЦ вот так

 

 

local obj=alife():create("gar_nano",db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id())
local params=netpack_write.read_stalker_params(obj)
params.custom="[logic]\ncfg = scripts\\ep\\gar\\gar_nano.ltx"
params.sid=30198
netpack_write.write_stalker_params(params,obj)

 

 

Потом пытаюсь удалить(через диалог с другим НПЦ)

 

function del()
local sim = alife()
local se_obj = sim:story_object(30198)
if se_obj then
sim:release(se_obj, true)
end
end

 

 

Но ничего не происходит... Где я ошибаюсь?

 

P.S Выводил при спавне SID - через новости на ПДА - всё хорошо. При удалении поставил брейкпойнтый вот так

 

local sim = alife()
local se_obj = alife():story_object(30198)
news_manager.send_tip(db.actor, "stage 1", 0, "default", 10000)
if se_obj then
news_manager.send_tip(db.actor, "stage 2", 0, "default", 10000)
sim:release(se_obj, true)
end

 

 

Доходит лишь до первого...

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

Не соответствует правилам.

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


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

 

 

В XE для прописывания SIDа была специальная функция, которая одновременно с назначением и регистрировала SID в реестре

 

XE - что это такое?

И как мне тогда быть? М.б как всегда есть готовые решения? В том те TT2 использовался тот же функционал, что и у меня и не было таких проблем...

Не соответствует правилам.

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


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

@Nazgool, нет времени изобретать велосипед...

Может кому интересно будет, как я разобрался с проблемой, мало ли... Решил так - просто для этого НПЦ спавн идет через all.spawn, там прописал story_id и тогда всё удаляется прекрасно прекрасно... 

Не соответствует правилам.

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


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

@Nazgool, Всё, понял. Более не пригодиться задавать sid через скрипт, разве что для рестрикторов, но там проблем таких нету...

Не соответствует правилам.

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


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

Такой вопрос - как одной функцией убрать всех НПЦ с уровня?

Можно и через for 1, 64567 или как то так... Забыл просто, как делать проверку вида IsStalker(obj)

Не соответствует правилам.

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


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

@Romann, попробовал так сделать. Вписал IsStalker(obj), всё проверил, поставил метки через send_tip().

После этого --> if obj and get_clsid(obj) уже ничего не происходило... Пробовал разные варианты, нашел еще пример... В общем не заладилось. Вызывал это дело из меню.

 

Другой вопрос - как проверить находиться ли ГГ в диалоге с НПЦ скриптом?

Почитал справочники - из полезного только level.present() нашел, но это совсем не то(.

Не соответствует правилам.

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


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

Что это значит? Критично ли для сохранений?

 

! Invalid object 'single_player' position. Outside of sector structure.

Не соответствует правилам.

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


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

Почему при спавне НПЦ скриптом в его имени к основному добавляются какие-то рандомные цифры?

Если через all.spawn - такого не наблюдаеться...

Не соответствует правилам.

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


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

@Dennis_Chikin, просто это доставляло некоторые неудобства...

С id тоже разобрался + оценил новые возможности использования расширенных библиотек Lua.

 

Но вопрос из поста #7569 покоя не дает до сих пор...

Не соответствует правилам.

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


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

@Malandrinus, спасибо! С этой функцией я разобрался.

Но я, видимо, перепутал номер поста. Хотелось побольше узнать вот об этом.

 

 

 

! Invalid object 'single_player' position. Outside of sector structure.

 

Как я понял, игра ссылается на ГГ, и какую-то структуру сектора... Ну в общем в этой области для меня - туман.

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

Не соответствует правилам.

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


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

@Nazgool, да, спасибо поставил. И да, разобрался, что это уникальный id. Выше постом расписали...

За динамическое хранилище отдельное спасибо, всё прекрасно работает!

Не соответствует правилам.

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


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

@Kober(BRUC), всё очень просто!

 

if db.actor:dont_has_info("bar_anom_spawn") then -- проверка на то, что поршня НЕТ

---

end

 

if db.actor:has_info("pass_true") then -- проверка на то, что ЕСТЬ.

 

Полный код:

 

 

 

if  db.actor:has_info("pass_true") then
функция_2()
else
функция_3()
end

function функция_3()
db.actor:give_info_portion("gar_art_spawn") -- выдача поршня
print("это пример")
end

function функция_2()
print("еще пример действия")
end
  • Спасибо 1

Не соответствует правилам.

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


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

Ребят, такой вопрос. 

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

Как бы это сделать?

Укажите хотя-бы, в какую сторону смотреть)

Не соответствует правилам.

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


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

@HellRatz, к сожалению, возможности делать что-нибудь в СДК нет.

Просто нужно сделать интересную вещь - зиму на одной из локаций, когда на остальных осень...

 

Если с террейном, снегом, и текстурами НПЦ проблем нет, то вот со всем остальным(деревья,звуки,дома машины) - беда...

 

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

 

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

Ну ладно, посмотрим что ещё народ скажет... 

Не соответствует правилам.

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


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

Как получить через скрипт размер файла?

Читал руководства по Lua, что-то отдельной функции не нашел...

Не соответствует правилам.

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


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

@mortan, как я понял, в игре к каждому материалу звук идет - и прописывется он не в скриптах.

Так что пока - думаем дальше...

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

Не соответствует правилам.

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


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

Такая проблема - нужна заселить специальными дин.аномалиями специальную локацию для мода.

Базируюсь на OGSM, начал ковырять алгоритм спавна, возник вопрос - как получают координаты x,y,z для спавна? В скриптах о них не слова!

Рандомно генерировать числа не прокатит, будет каша со спавном, да и бред это малость... Но тогда, как?

 

Открыл скрипт из simbion мода, вгляделся... Мы получаем все аномалии на уровне, и заменяем их на... Свои!?! Нет, серьезно, я заметил открытие таблицы db.anomalies и передачу координат всех аномалий в ф-ю спавна. Но блин, тут рандомность тогда только в секциях аномалий...

 

Возможно выше я и бред сказанул, но понял код - как смог.

 

Обьясните недалекому, как же идет рандомная генерация именно координат пространства, с game v. и level.v я разобрался...

 

P.S Посмотрел скрипты от dsh - там идет получение позиций НПЦ... Мда... Жду дядек, которые развеят туман...

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

Не соответствует правилам.

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


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

@dsh, ого,и не знал что из level v можно получить координаты!

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

 

Для себя решил делать так(не лучший вариант, но как умею) - получаю координаты всех аномалий. К их х,у,зэд прибавляю какие нибудь числа, и спавню то что нужно. А заранее можно, расставить аномалии-точи вокруг которых будет спавн мои спец.аномалий. Как по мне - вроде не костыль получился :D

Не соответствует правилам.

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


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

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