Перейти к содержанию

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

 
 
8 часов назад, Neptun сказал:

Добро. Написал такую функцию:

Мод Связь Времен.

Файл xr_telekinez.script

Любой объект, попавший в зону, за исключением монстров и сталкеров, становится невесомым.


Терпение... И все получится.

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


Ссылка на сообщение
Поделиться на другие сайты
 
11 часов назад, makdm сказал:

Мод Связь Времен.

Файл xr_telekinez.script

Любой объект, попавший в зону, за исключением монстров и сталкеров, становится невесомым.

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Neptun 

без таблиц, и эффект пропадает при сейв / лоаде:

Спойлер

-- в логике рестриктора: =zone_physic_effects(имя_зоны_из_all.spawn)
 


function zone_physic_effects(actor, npc, p)
    if p[1] == nil then
        return news_manager.send_tip(actor, "%c[255,255,255,0]xr_effects : zone_physic_effects : empty arguments", nil, nil)
    end

    local zone = db.zone_by_name[p[1]]

    for i = 1, 65535, 1 do
        local sv_obj = alife():object(i)
        if (sv_obj and sv_obj.parent_id and sv_obj.parent_id == 65535 and sv_obj.online == true) then
            local cl_obj = level.object_by_id(sv_obj.id)
            if (get_clsid(sv_obj)==clsid.script_phys or get_clsid(sv_obj)==clsid.obj_phys_destroyable) and zone:inside(cl_obj:position()) then
                -- получение физ.оболочки, работает только для онлайн объектов
                local ph_cl_obj = cl_obj:get_physics_shell()
                if ph_cl_obj and cl_obj:mass() < 1000 then

                    -- подкинуть на >100 метров по +у
                    -- ph_cl_obj:apply_force(0,700000,0)

                    -- невесомость на 10 секунд
                    cl_obj:set_const_force(vector():set(0,1,0), cl_obj:mass()*19.62, 10000)

                end
            end
        end
    end
end

 

 

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


Ссылка на сообщение
Поделиться на другие сайты
 

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

Спойлер

Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ...- Зов Припяти\gamedata\scripts\se_smart_cover.script:93: attempt to index field '?' (a nil value)

 


Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62

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


Ссылка на сообщение
Поделиться на другие сайты
 

Mervin62 Возможно смартковер не на АИ сетке.


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


Ссылка на сообщение
Поделиться на другие сайты
 
4 минуты назад, denis2000 сказал:

Возможно смартковер не на АИ сетке.

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


Дополнено 6 минуты спустя

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


Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62

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


Ссылка на сообщение
Поделиться на другие сайты
 
10 часов назад, Neptun сказал:

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

А я вам что аномалию что-ли дал?

Я вам и дал биндер зоны, в котором отслеживаются все попавшие в неё объекты и их айдишники пишутся в таблицу.

Причем это не какая-то костыльная функция, которую вы просите, а чисто движковый метод.

1. В файл system.ltx прописываете эту зону 

[telekinez_zone]
GroupControlSection =
$spawn      = "ai\telekinez_zone"
class     = SCRIPTZN
script_binding  = xr_telekinez.bind

2. В SDK ставите эту зону ai\telekinez_zone и в кастом дата зоны прописываете [telekinez_zone]

3. Собираете spawn

4. В игре заходите в зону и начинаете выбрасывать вещи из рюкзака. Смотрите, что происходит.

 

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

Терпение... И все получится.

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


Ссылка на сообщение
Поделиться на другие сайты
 
1 час назад, makdm сказал:

4. В игре заходите в зону и начинаете выбрасывать вещи из рюкзака. Смотрите, что происходит.

Это и похоже на аналог аномалии. Мне не надо, чтобы эта зона постоянно работала, а только в определённый момент игры и то не на всегда.

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


Ссылка на сообщение
Поделиться на другие сайты
 

Вы хоть и писали, что

12 часов назад, Neptun сказал:

Я не силен в скриптах, поэтому не отказался бы от пояснения мне, не сведущему.

но, вот честно, я не думал, что "дно" совсем рядом.

В самом биндере есть ответ на ваши пожелания. Вот это:

if has_alife_info("actor_has_all_need_artefacts") then
        return
    end

Да, это и есть отключение действий в биндере. Как его включить, надеюсь, догадаться сможете.

 


Терпение... И все получится.

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


Ссылка на сообщение
Поделиться на другие сайты
 
10 часов назад, Mervin62 сказал:

...если перезагрузить сохранение, то весь народ пропадает полностью...
...при старте игры спавнится два комплекта сквадов...

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


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


Ссылка на сообщение
Поделиться на другие сайты
 
14 часов назад, makdm сказал:

В игре заходите в зону и начинаете выбрасывать вещи из рюкзака. Смотрите, что происходит.

 

Ничего не происходит. Всё по науке сделал, а результата ноль. Я разочарован. 

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


Ссылка на сообщение
Поделиться на другие сайты
 

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

UPD: Оказывается, НПС тоже перестали сдвигаться с места. 

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Boomer Возможно фрагментирована АИ-сетка.


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


Ссылка на сообщение
Поделиться на другие сайты
 

А можно ли мизери мод чутка под себя поправить? дроп вещей с нпс и т.д.

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

WildAx дроп вещей в конфигах с death в названии в папке gamedata/config/misc обычно

и т.д - смотря что


76561198152189716.png

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


Ссылка на сообщение
Поделиться на другие сайты
 

приветствую, после спавна новых нпс вылет

Спойлер

[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : C:\MFS-Team\Advanced-X-Ray\SourcesAXR\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : c:\games\scop\gamedata\scripts\_g.script:479: bad argument #2 to 'format' (string expected, got nil)
 

Спойлер

function start_add_spawn()
spawn_sniper_one()
end

function spawn_sniper_one()
alife():create("my_stalker",vector():set(111.75521087646,-3.9362425804138,185.2212677022),1158851,316)
alife():create("stalker_enot",vector():set(118.23574066162,-3.9364204406738,181.56564331055),1169314,316)
alife():create("stalker_gupi",vector():set(104.43164825439,-3.9352867603302,183.4156036377),1145772,316)
alife():create("stalker_mucha",vector():set(116.00570678711,-3.9382157325745,181.42231750488),1165652,316)
alife():create("stalker_varvar",vector():set(113.40515899658,-7.3491163253784,185.6340637207),1160919,316)
end

Спойлер

    if spawn_world.load_variable("spawn_sniper",false)==false then
        spawn_world.start_add_spawn()
        spawn_world.save_variable("spawn_sniper",true)
    end

 

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


Ссылка на сообщение
Поделиться на другие сайты
 
8 часов назад, lewandowski сказал:

c:\games\scop\gamedata\scripts\_g.script:479: bad argument #2 to 'format'

Такие логи обычно бывают при ошибках в логике НПС.  Было бы неплохо посмотреть спавн-секции и файлы логики этих товарищей.

8 часов назад, lewandowski сказал:

alife():create("my_stalker",vector():set(111.75521087646,-3.9362425804138,185.2212677022),1158851,316)
alife():create("stalker_enot",vector():set(118.23574066162,-3.9364204406738,181.56564331055),1169314,316)
alife():create("stalker_gupi",vector():set(104.43164825439,-3.9352867603302,183.4156036377),1145772,316)
alife():create("stalker_mucha",vector():set(116.00570678711,-3.9382157325745,181.42231750488),1165652,316)
alife():create("stalker_varvar",vector():set(113.40515899658,-7.3491163253784,185.6340637207),1160919,316)

И заодно.  Что скрывается под маской?

8 часов назад, lewandowski сказал:

 spawn_world.save_variable("spawn_sniper",true)

 

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


Ссылка на сообщение
Поделиться на другие сайты
 
15 часов назад, ian98 сказал:

WildAx дроп вещей в конфигах с death в названии в папке gamedata/config/misc обычно

и т.д - смотря что

Да я хотел состояние оружия и шмоток у нпц поднять, чтобы убивая их можно было их оружием пользоваться. Убил я наёмника, думаю сейчас хороший ствол заимею, а там кусок мусора и патрон нет.

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
8 минут назад, WildAx сказал:

я хотел состояние оружия и шмоток

А ну это в скриптах с аналогичным названием death


Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62

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


Ссылка на сообщение
Поделиться на другие сайты
 

WildAx да, это нужно в скрипте death_manager найти строку примерно такую, но я не знаю как оно в мизери там, но в зп такую

	if isWeapon(item) and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) then
		set_weapon_drop_condition(item)
		return
	end

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

Вероятно это xr_motivator, в нем ищем строку

death_manager.drop_manager(self.object):create_release_item()

и удаляем ее. Будут и патроны, и пушки 100%, и вообще шоколад

 

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

76561198152189716.png

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


Ссылка на сообщение
Поделиться на другие сайты
 

1) Какой функцией (и возможно ли вообще) выдать инфопоршень при обыске трупа НПС?
2) Как вызвать скрипт (выдачи задания например) при поднятии определённого предмета? Я так понял это только проверку на его наличие у актора в bind_stalker пихать?
3) Где-то давно видел статью по созданию простейшего GUI-интерфейса (окна с кнопкой выхода), и его вызова через использование предмета в инвентаре,  сейчас что-то не нашёл. Может кто помнит, или просто пример приведёт?



ASUS z87-k, I5-4670 @3.40GHz, MSI GTX 1050ti, 16gb ОЗУ, SSD 100gb, 2xHDD 500gb,
Windows 10 Pro. Аномали на ультрах летает. Вместе с компом по комнате.

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


Ссылка на сообщение
Поделиться на другие сайты
 
20 минут назад, Сталкер из прошлого сказал:

выдать инфопоршень при обыске трупа НПС

Посмотри у шевысталкера на Ютубе, там как раз подробное видимо есть на данную тему.


Дополнено 2 минуты спустя
23 минуты назад, Сталкер из прошлого сказал:

Как вызвать скрипт (выдачи задания например) при поднятии определённого предмета

Куча вариантов, один из них ты озвучил.


Дополнено 15 минуты спустя

Сталкер из прошлого 

Спойлер

"Проверка на взятие предмета и выдача инфопоршня"
Функции типа "Проверка на взятие предмета..." я лично использую в квестах тегами
Код
<function_complete>файл.функция</function_complete>
Код
function search_weapon_complete1(actor, npc)
if db.actor ~= nil then
if db.actor:object("ПРЕДМЕТ") then
db.actor:give_info_portion("ПОРШЕНЬ")
return true
end
end
return false
end

 


Дополнено 23 минуты спустя

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


Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62

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


Ссылка на сообщение
Поделиться на другие сайты
 

1. Как сделать чтобы квест на предмет был на несколько предметов? возьмем надо принести НПС 10 аптечек и 5 бинтов то в скриптах нужно указать:

function функция(first_speaker, second_speaker)
return db.actor:object("medkit_army", 10)~=nil and db.actor:object("bandage", 5)~=nil 

end

и при сдаче квеста:

function функция(first_speaker, second_speaker)
dialogs.relocate_item_section_from_actor{first_speaker, second_speaker, "medkit_army" 10}
dialogs.relocate_item_section_from_actor{first_speaker, second_speaker, "bandage" 5}

end

2. Как сделать чтобы с ГГ НПС здоровался как Борода или Сыч

в логике НПС прописал

Спойлер

[meet_guide]
close_snd_hello = Название звука
close_snd_bye = Название звука
close_anim         = nil
close_victim     = nil
far_anim         = nil
far_victim         = nil
close_distance  = 0
far_distance     = 0
close_snd_distance = 3
abuse           = false
use = {=actor_enemy} false, true
allow_break = false
meet_on_talking = false
meet_on_talking = false

 

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


Ссылка на сообщение
Поделиться на другие сайты
 

Добрый день. Пытаюсь скомпилировать спавн через SDK для новой локации, заселение создаю с нуля. Сейчас просто пытаюсь создать all.spawn чтобы лока появилась в игре.

Во время компиляции постоянно ловлю вот такую лабуду:

Спойлер

wtf.thumb.png.e73eafabc4cf84b0a3e9f24fca2807e9.png

Все, что смог найти по подобным ошибкам - "на карте нет граф поинтов". Но в моем случае они как бы есть, я их поставил. Что я делаю не так? Или граф поинтов недостаточно?

В чем может быть проблема?

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


Ссылка на сообщение
Поделиться на другие сайты
 

Mawrak Локацию с нуля я не делал. В моём случае, ошибка была из-за того, что я криво прописал локацию в game_levels, а точнее забыл изменить id. Может у тебя также. 


                                                       

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу