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

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

 

61561952a1.png

Тема посвящена моддингу на платформе Зов Припяти.

 

Правила темы:

  • Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть.
  • Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
  • Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
  • Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться.

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


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

Всё началось когда я заменил геймдату SDK на геймдату своего мода. Ну, и теперь в разделе spawn element у меня пропали все папки кроме: Respawn, artefacts, weapons

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


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

Хотел спросить как можно только в СДК 0.7 без частого компеляции  локации только спавен собрать

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


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

Всё началось когда я заменил геймдату SDK на геймдату своего мода.

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


Daniil1989 Если локация и АИ-сетка скомпилированы, то достаточно собирать спавн внося изменения.

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

Путь во мгле.
Связь времен.

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

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


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

какая-либо фиксилка ogg-commentариев и invalid ogg-version?

https://cloud.mail.ru/public/bgxR/WxRswTp6i

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


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

Если локация и АИ-сетка скомпилированы, то достаточно собирать спавн внося изменения.

Локация и Аи-сетка были скомпилированы  спавен тоже. Если я другой спавен поставил на локации  то потом спавен не  скомпилировается вылетает ошибка 

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


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

Daniil1989 Лог с сообщением об ошибке покажите.


Путь во мгле.
Связь времен.

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

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


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

Лог с сообщением об ошибке покажите.

[error]Expression    : assertion failed
[error]Function      : CGraphMerger::CGraphMerger
[error]File          : D:\prog_repository\sources\trunk\utils\xrAI\xr_graph_merge.cpp
[error]Line          : 597
[error]Description   : tpGraphs.size()
 

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


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

Daniil1989 Обычно это означает, что локация не прописана в конфигах. Читайте/смотрите гайды!


Путь во мгле.
Связь времен.

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

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


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

Обычно это означает, что локация не прописана в конфигах. Читайте/смотрите гайды!

Я прописал в гейм макс сингал, гейм левелс где еще надо

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


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

Народ,подскажите плиз как изменить цвет текста при подборе предметов ?!а то при подборе цвет текста сливается с фауной и предмет вообще не возможно найти,есть знающие?

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

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


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

Народ,подскажите плиз как изменить цвет текста при подборе предметов ?!а то при подборе цвет текста сливается с фауной и предмет вообще не возможно найти,есть знающие?

Движок для этого надо править будет.
Вот необходимые для вас функции:
LOCAL.SetTextColor(color_rgba(255,R,G,B));
В методе NameShort() предмета (*item) нужно будеть использовать эту функцию.


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

Есть у меня несколько переменных, и во всех них есть такой текст ..."stalker_battle"
Мне нужно как-то среди всех переменных найти "battle", всё то что позади "battle" меня не интересует и мне не нужно.
Например:
найти "battle" после первых 5 знаков (!!! Во всех переменных разное кол-во знаков!!!)
mp_stalker_merc_battle
Оранжевым цветом я выделил что мне нужно найти. Пробовал функцией string.find(), но видимо она ищет только в начале (чтобы функция сработала у меня должно быть battle_mp_stalker_merc).
Это нужно для того, чтобы выполнялось условие.
if find_void(найти battle в переменных) then

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

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


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

Редактировал\добавлял секции прицелов с регулируемым зумом и наткнулся на баг: при первом прицеливании через него, взгляд "уноситься в бесконечность", пока не покрутишь колёсико мыши. Как этого избежать?

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


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

-- ============================================================
--
-- Script Functions for Task Dialogs in Yantar (dialogs_yantar.script)
--    CoC 1.4.14 - DoctorX Questlines 1.10
--
--    Modified by: DoctorX
--    Last revised: November 01, 2016
--
-- ============================================================


function give_player_bad_psi_helmet(a,b)
    dialogs.relocate_money_from_actor(a,b,25000)
    alife():create("bad_psy_helmet",vector(),0,0,0)
    news_manager.relocate_item(db.actor, "in", "bad_psy_helmet")
end

function upgrade_player_bad_psi_helmet(a,b)
    local o = db.actor:object("bad_psy_helmet")
    if (o) then
        news_manager.relocate_item(db.actor, "out", "bad_psy_helmet")
        local se_itm = alife_object(o:id())
        if (se_itm) then
            alife():release(se_itm,true)
        end
    end

    if not (db.actor:has_info("yan_stalker_sakharov_offer_free_upgrade")) then
        dialogs.relocate_money_from_actor(a,b,18000)
    end

    task_manager.get_task_manager():give_task("yan_stalker_sakharov_psi_helmet_upgrade")
    utils.save_ctime(db.actor,"yan_stalker_sakharov_psi_helmet_upgrade",game.get_game_time())
end

function take_money_good_psi_helmet(a,b)
    if not (db.actor:has_info("yan_stalker_sakharov_offer_free_upgrade")) then
        dialogs.relocate_money_from_actor(a,b,40000)
    end
    task_manager.get_task_manager():give_task("yan_stalker_sakharov_psi_helmet_upgrade")
    utils.save_ctime(db.actor,"yan_stalker_sakharov_psi_helmet_upgrade",game.get_game_time())
end

-- ////////////////////////////////////////////////////////////////////////////////////////////////
--
-- give_player_good_psi_helmet function
--
-- ------------------------------------------------------------------------------------------------
--
--    Description:
--        - Gives actor good psi helmet
--
--    Usage:
--        give_player_good_psi_helmet( )
--
--    Parameters:
--        none
--
--    Return value (type: none):
--        none
--
-- ------------------------------------------------------------------------------------------------
--    Modified by DoctorX
--    for DoctorX Questlines 1.10
--    Last modified November 01, 2016
-- ------------------------------------------------------------------------------------------------

-- Give actor good psi helmet:
function give_player_good_psi_helmet( a, b )

    alife( ):create( "good_psy_helmet", vector( ), 0, 0, 0 )
    news_manager.relocate_item( db.actor, "in", "good_psy_helmet" )
    local tm = task_manager.get_task_manager( )
    local task_info = tm.task_info
    if ( task_info and task_info["yan_stalker_sakharov_psi_helmet_upgrade"] ) then
        task_manager.get_task_manager( ):set_task_completed( "yan_stalker_sakharov_psi_helmet_upgrade" )
    end
    task_manager.get_task_manager( ):give_task( "turn_off_brain_machine" )

end

-- \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


function actor_has_psi_helmet(a,b)
    if (db.actor:object("bad_psy_helmet") ~= nil or db.actor:object("good_psy_helmet") ~= nil) then
        return true
    end
    return false
end

function actor_dont_has_psi_helmet(a,b)
    return not actor_has_psi_helmet(a,b)
end

function actor_has_bad_psi_helmet(a,b)
    return db.actor:object("bad_psy_helmet") ~= nil
end

function actor_can_afford_bad_psi_helmet(a,b)
    return db.actor:money() >= 25000
end

function actor_can_afford_good_psi_helmet(a,b)
    return db.actor:money() >= 40000
end

function actor_can_afford_bad_to_good_psi_helmet(a,b)
    return db.actor:has_info("yan_stalker_sakharov_offer_free_upgrade") or db.actor:money() >= 18000
end

function actor_has_good_psi_helmet_task_completed(a,b)
    local tsk = task_manager.get_task_manager().task_info["yan_stalker_sakharov_psi_helmet_upgrade"]
    return tsk and tsk.stage >= 2
end

function actor_dont_has_good_psi_helmet_task_completed(a,b)
    return not actor_has_good_psi_helmet_task_completed(a,b)
end

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

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

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


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

Пробовал функцией string.find(), но видимо она ищет только в начале

Я понимаю, что слово мало что значит, но тогда обратимся  к оригиналу.

Посмотрим функцию check_npc_name в файле xr_conditions.script

Затем откроем файл pri_a28_arch.ltx и увидим такое

suitable = {-pri_a28_arch_done =check_npc_name(kovalski)} true

Затем откроем файл spawn_sections_pripyat.ltx и увидим, что секции НПС такие:

pri_a17_military_colonel_kovalski

и 

pri_a17_military_colonel_kovalski_strong

Внимание вопрос!

Каким образом скрипт логики умеет назначить логику объекту, если слово kovalski стоит в конце имени???

 

 

 

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

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


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

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

Предлагаю такой метод:
При получении инфопорции из заданной таблицы менять флаг info_count на info_count + 1.
В info_callback игрока сделать проверку:
for k,v in pairs (xr_effects.info_table) do
     if info_id == v (здесь нужно вынести таблицу из функции, сделать так чтобы она объявлялась НЕ в теле функции) then
            info_count = info_count +1
     end
end
Потом проверить: if info_count == 2 или info_count == 4 then

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

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


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

Всем привет, не подскажите: а как собственно завершить игру(пустить титры, чтобы потом выбросило на рабочий стол)?

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


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

завершить игру

Из скрипта после титров вызвать. 

get_console():execute("quit")

 

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


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

Hozar_2002 а как сами титры пустить?

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


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

o4kostr3l , в xr_effects за вас все уже сделали ПЫС:
Титры:

function game_credits(actor, npc)
	db.gameover_credits_started = true
	game.start_tutorial("credits_seq")
end

Дисконект:

function game_disconnect(actor, npc)
	local c = get_console()
	c:execute("disconnect")
--	c:execute_deferred("main_menu off")
--	c:execute_deferred("hide")
end

Выход из игры вам показали выше.

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


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

Ребята, Нид Хэлп.Я адаптируюмод на артефакты под SGM 2.2 но не тут то было.Я их добавил везде и все дела НО ЕСТЬ ПРОБЛЕМА, Арты есть в игрея могу их спаунить и они катаются по полу(типо я запинаюсь об них когда хожу), но не обнаруживаются ни одним детектором. Ни на табло ни в мире не видно их. Никто не подскажет, что я сделал не так? При том что арты из СГМ и Ванильные арты все видно и все находятся детекторами. 

P.S. Я только учусь, и методом тыка уже много чего попробовал, но чё-то не врубаюсь в чём прикол. 

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

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


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

ZV4X Нужно прописать детекторам новые арты в файле devices.ltx:

Спойлер

[detector_simple_af_base]; Арты регистрируемые базовым детектором
af_class_1        = af_cristall
af_sound_1_        = detectors\art_beep1
af_freq_1        = 0.05, 2
af_class_2        = af_fireball
af_sound_2_        = detectors\art_beep1
af_freq_2        = 0.05, 2
af_class_3        = af_medusa
af_sound_3_        = detectors\art_beep1
af_freq_3        = 0.05, 2
af_class_4        = af_cristall_flower
af_sound_4_        = detectors\art_beep1
af_freq_4        = 0.05, 2
........

 

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

Путь во мгле.
Связь времен.

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

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


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

denis2000 Я так и прописал, только они по номерам вразноброс 1-50 потом сразу 300-350 потом 50-100 и т.д., но наверное проблема не в этом... И вообще там дичь какая-то творится, я делаю блок [detector_simple_af_base] а он пишет что нету блока [detector_simple] и наоборот... Есть ещё вот такое [detector_simple_af_base]:identity_immunities... Тоесть какой ему нужен-то? Я уже в два файла понаписал, в одном сделал [detector_simple_af_base] и так далее с другими детекторами а в другом [detector_simple]. И всё работает, но арты не находит, и ещё почему-то сварог перестал показывать аномалии на табло, только арты, и только ванильные

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


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

ZV4X Файл один devices.ltx. Секций по количеству детекторов четыре: detector_simple_af_base, detector_advanced_af_base, detector_elite_af_base, detector_scientific_af_base

НО нумерация параметров в них сквозная! То есть если добавите параметр в detector_scientific_af_base, то он может быть заменен одноименным из другой секции.

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


Путь во мгле.
Связь времен.

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

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


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

denis2000 Я так и прописал, только они по номерам вразноброс 1-50 потом сразу 300-350 потом 50-100 и т.д., но наверное проблема не в этом... И вообще там дичь какая-то творится, я делаю блок [detector_simple_af_base] а он пишет что нету блока [detector_simple] и наоборот... Есть ещё вот такое [detector_simple_af_base]:identity_immunities... Тоесть какой ему нужен-то? Я уже в два файла понаписал, в одном сделал [detector_simple_af_base] и так далее с другими детекторами а в другом [detector_simple]. И всё работает, но арты не находит, и ещё почему-то сварог перестал показывать аномалии на табло, только арты, и только ванильные

Надо новые артефакты ещё в ui\ui_detector_artefact.xml регистрировать.

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


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

liner Это я знаю. В ui_detector_artefact я давно всё сделал

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


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

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

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

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

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

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

Войти

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

Войти

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

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