Случайная подборка модов
ABC Inferno
3.9
Под прикрытием смерти. Клондайк 2.0
4.0
G.L.A.D.I.A.T.O.R. II Время Альянса
3.4
Новый Арсенал 6. Революция
3.5
Новое Время
3.2
Shadows Addon 0.8
4.1
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  Wolfstalker
Среда, 24.02.2016, 00:25 | Сообщение # 1
Статус:
Легенда:
Сообщений: 2258
Награды: 15
Регистрация: 05.04.2010

В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга


• Не флудить
• Предварительно просматривайте раздел, ведь ответ на ваш вопрос может быть там
• В своем вопросе указывайте платформу моддинга — Тень Чернобыля, Чистое небо или Зов Припяти




F.A.Q

  Злобная реклама
Среда, 24.02.2016, 00:25
Статус:
Сообщений: 666
Регистрация: 05.04.2010
Украина  BozKurt
Пятница, 15.12.2017, 00:18 | Сообщение # 9346
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

BoBaH_671, а зачем их вообще все проверять, если можно найти первый не выданный и забить на остальные?
Код
function check_info_nimble()
    local info_table = {"info_pm_nimble", "info_ak74_nimble", "info_fort_nimble"}
    for i = 1, #info_table do
        if not has_alife_info(info_table[i]) then
            return false
        end
    end
    return true
end


Можно, да, только вот это ничего не поменяет, в частности время выполнения. smile
BoBaH_671
Сообщение отредактировал BozKurt - Пятница, 15.12.2017, 00:18
  Злобная реклама
Пятница, 15.12.2017, 00:18
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Российская Федерация  Graff46
Пятница, 15.12.2017, 02:53 | Сообщение # 9347
Новое Время
Статус:
Бывалый:
Сообщений: 867
Награды: 7
Регистрация: 02.05.2013

У меня вопрос: В ТЧ левел вертексы идут по порядку по номеру также как и в пространстве? Т. е. за 5 лВ на террейне идёт 6-й, не может быть такого, что 5 и 6 вертексы в разных углах локации?
  Злобная реклама
Пятница, 15.12.2017, 02:53
Статус:
Сообщений: 666
Регистрация: 02.05.2013
Российская Федерация  denis2000
Пятница, 15.12.2017, 10:59 | Сообщение # 9348
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Graff46, Нет близость индексов не означает близость геометрическую.
  Злобная реклама
Пятница, 15.12.2017, 10:59
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Украина  aleksstalker
Пятница, 15.12.2017, 18:50 | Сообщение # 9349
Статус:
Новичок:
Сообщений: 245
Награды: 2
Регистрация: 19.01.2017

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

Логика в секции спавна:


Вей поинты
  Злобная реклама
Пятница, 15.12.2017, 18:50
Статус:
Сообщений: 666
Регистрация: 19.01.2017
Российская Федерация  YTroll
Пятница, 15.12.2017, 19:27 | Сообщение # 9350
Статус:
Бывалый:
Сообщений: 824
Награды: 13
Регистрация: 09.11.2012

подскажите пожалуйста, как корректно удалить вертолет из игры через скрипт, именно вертолет, а не НПС или предмет, желательно привести пример
  Злобная реклама
Пятница, 15.12.2017, 19:27
Статус:
Сообщений: 666
Регистрация: 09.11.2012
Коста Рика  Jargon
Пятница, 15.12.2017, 19:59 | Сообщение # 9351
X-Ray Multiplayer Extension
Статус:
Бывалый:
Сообщений: 1078
Награды: 3
Регистрация: 24.06.2012

YTroll,
Можно в логике прописать...
"...\S.T.A.L.K.E.R. - Clear Sky\gamedata\configs\scripts\marsh\mar_intro_lebedev_2.ltx"


Цитата aleksstalker ()
сталкер тч: создал нпс

Как же всё это по 100500 раз замусолено... Почитав комментарии только в этой теме можно довольно-таки много раз наткнуться на подобные вопросы и их решения.
Да и вообще, почему бы не использовать СДК? все же есть, даже оригинальные уровни в формате сдк чего раньше не было, там это проще сделать в 100 раз, зачем себе жизнь усложнять переворачивая тонны текста all спавна...
Сообщение отредактировал Jargon - Пятница, 15.12.2017, 20:07
  Злобная реклама
Пятница, 15.12.2017, 19:59
Статус:
Сообщений: 666
Регистрация: 24.06.2012
Российская Федерация  makdm
Пятница, 15.12.2017, 20:01 | Сообщение # 9352
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата YTroll ()
как корректно удалить вертолет из игры через скрипт,

Функция удаления объектов через скрипт - одна для всех объектов

alife():release( server_object, true )

Вопрос лишь в том: "Каким способом получить server_object ( серверный класс объекта )"
Тут способов несколько. Можно по метке story_id, можно по имени объекта, можно по классу или по секции с некоторыми ограничениями.
Выбирайте, что вам доступно.
  Злобная реклама
Пятница, 15.12.2017, 20:01
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  yobakun
Пятница, 15.12.2017, 20:02 | Сообщение # 9353
Статус:
Новичок:
Сообщений: 270
Награды: 5
Регистрация: 30.07.2016

Как проверить наличие алаф объекта в рестрикторе? Нужен аналог on_actor_inside через скрипты.
  Злобная реклама
Пятница, 15.12.2017, 20:02
Статус:
Сообщений: 666
Регистрация: 30.07.2016
Украина  aleksstalker
Пятница, 15.12.2017, 20:08 | Сообщение # 9354
Статус:
Новичок:
Сообщений: 245
Награды: 2
Регистрация: 19.01.2017

Jargon, СДК то проще, но с батниками к СДК 0.4 беда и беда, сылку дайте. И да почему так сразу "о боже ". Я просто спросил за логику патруля ? Может, что не так, а вы так сразу.)))
  Злобная реклама
Пятница, 15.12.2017, 20:08
Статус:
Сообщений: 666
Регистрация: 19.01.2017
Российская Федерация  makdm
Пятница, 15.12.2017, 20:12 | Сообщение # 9355
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

yobakun, для ЗП куча функций в файле xr_conditions.script:

function obj_in_zone(actor, zone, p)

function one_obj_in_zone(actor, zone, p)

function story_obj_in_zone_by_name (actor, npc, p)

function npc_in_zone(actor, npc, p)

Выбирайте ту, которая вам нужна.
  Злобная реклама
Пятница, 15.12.2017, 20:12
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  alanbrose
Пятница, 15.12.2017, 20:14 | Сообщение # 9356
Статус:
Отмычка:
Сообщений: 113
Награды: 4
Регистрация: 28.08.2015

BoBaH_671, огромное спасибо. Второй метод не сработал (возможно из-за моей криворукости). Сделал пронумерованные поршни с первым методом - диалог исчез. Я аж удивился, что получилось. smile
  Злобная реклама
Пятница, 15.12.2017, 20:14
Статус:
Сообщений: 666
Регистрация: 28.08.2015
Российская Федерация  YTroll
Пятница, 15.12.2017, 20:31 | Сообщение # 9357
Статус:
Бывалый:
Сообщений: 824
Награды: 13
Регистрация: 09.11.2012

Jargon , благодарю, но через логику для меня сложновато,

Цитата makdm ()
Функция удаления объектов через скрипт - одна для всех объектов

alife():release( server_object, true )

Вопрос лишь в том: "Каким способом получить server_object ( серверный класс объекта )"
Тут способов несколько. Можно по метке story_id, можно по имени объекта, можно по классу или по секции с некоторыми ограничениями.
Выбирайте, что вам доступно.

метки story_id, у вертолетов на ЧАЭС1 нет, что странно у БТР и солдат - есть, а у вертолетов нет,
а приведите пример удаления по имени объекта, вот имя одного вертолета в секциях спавна - aes_helicopter_0000
  Злобная реклама
Пятница, 15.12.2017, 20:31
Статус:
Сообщений: 666
Регистрация: 09.11.2012
Российская Федерация  makdm
Пятница, 15.12.2017, 20:51 | Сообщение # 9358
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата YTroll ()
а приведите пример удаления по имени объекта,

Вызов функции;

remove_heli_by_name( "aes_helicopter_0000" )

Сама функция:

Код
function remove_heli_by_name( name )
    for k,v in pairs( db.heli ) do
        if string.find( v:name(), name ) ~= nil then
            alife():release(alife():object( k ), true)
           break
        end
    end
end    
Сообщение отредактировал makdm - Пятница, 15.12.2017, 20:55
  Злобная реклама
Пятница, 15.12.2017, 20:51
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  YTroll
Пятница, 15.12.2017, 21:08 | Сообщение # 9359
Статус:
Бывалый:
Сообщений: 824
Награды: 13
Регистрация: 09.11.2012

makdm , а во множественном числе т.е. удаление разом нескольких вертолетов, это будет выглядеть вот так?
Вызов функции;

remove_heli_by_name( "aes_helicopter_0000" )
remove_heli_by_name( "aes_helicopter_0001" )
remove_heli_by_name( "aes_helicopter_0002" )
remove_heli_by_name( "aes_helicopter_0003" )
remove_heli_by_name( "aes_helicopter_0004" )
remove_heli_by_name( "aes_helicopter_0007" )
remove_heli_by_name( "aes_helicopter_0008" )
remove_heli_by_name( "aes_helicopter_0009" )
remove_heli_by_name( "aes_helicopter_0010" )

Сама функция:

function remove_heli_by_name( name )
for k,v in pairs( db.heli ) do
if string.find( v:name(), name ) ~= nil then
alife():release(alife():object( k ), true)
break
end
end
end

или как-то можно оптимизировать вызов функции?
Сообщение отредактировал YTroll - Пятница, 15.12.2017, 21:14
  Злобная реклама
Пятница, 15.12.2017, 21:08
Статус:
Сообщений: 666
Регистрация: 09.11.2012
Российская Федерация  Overfirst
Пятница, 15.12.2017, 21:12 | Сообщение # 9360
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

Цитата YTroll ()
а во множественном числе, это будет выглядеть вот так?

Код
for i = 0, 9 do
     remove_heli_by_name("aes_helicopter_000" .. i)
end
     remove_heli_by_name("aes_helicopter_0010")
  Злобная реклама
Пятница, 15.12.2017, 21:12
Статус:
Сообщений: 666
Регистрация: 11.06.2015
Поиск: