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

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

 

b27b2a4837.png

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

 

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

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

c01570bf2e07524.png

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


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

Поиском поищи где читается

в спавне и конфигах не нашёл) попробую зрение урезать


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

зрение урезал - помогло


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

можно как-нибудь отключить post_combat для некоторых НПС?

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


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

imcrazyhoudini было точно у кого-то, попадалось

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


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

function UISleep:add_to_time()
    if sleep_time < max_sleep_time then
        sleep_time = sleep_time + 1;
        self.display:SetText(sleep_time.." ч..");
        self.display:SetTextX(44);
    end
end

function UISleep:sub_to_time()
    if sleep_time > min_sleep_time then
        sleep_time = sleep_time - 1;
        self.display:SetText(sleep_time.." ч.");
        self.display:SetTextX(44);
    end
end

как сделать чтобы было:
1 - час
2-4 - часа
5-12 - часов?

чтобы писалось так, вместо того что сейчас (ч.)


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

хотя ещё тут идёт вызов display
 

Спойлер

function UISleep:init_interface()
    local xml = CScriptXmlInit();
    xml:ParseFile("ui_sleep.xml");
    --Background.
    self.background = xml:InitStatic("background",self);
    self:SetWndPos(vector2():set(100,100));
    self:SetWndSize(vector2():set(self.background:GetWidth(),self.background:GetHeight()));
    self.background:SetWndPos(vector2():set(0,0));
    --Indicator.
--    self.safetybar = xml:InitStatic("safetybar",self);
--    self.fearbar = xml:InitStatic("fearbar",self);
--    self:set_level_danger();
    --Display for show hours of sleeping.
    self.display = xml:InitStatic("display",self);
    self.display:SetTextX(44);
    --Button for activation of sleeping.
    self.button_sleep = xml:InitButton("button_sleep",self);
    self:Register(self.button_sleep, "button_sleep");
    --Button for quit.
    self.button_quit = xml:InitButton("button_quit",self);
    self:Register(self.button_quit, "button_quit");
    --Button for add of hour.
    self.button_left = xml:InitButton("button_left",self);
    self:Register(self.button_left, "button_left");
    --Button for sub of hour.
    self.button_right = xml:InitButton("button_right",self);
    self:Register(self.button_right, "button_right");
end

а в конфиге уже:
 

Спойлер

    <display x="200" y="59" width="102" height="23">
        <texture x="23" y="285" width="102" height="23">ui\atmsleep</texture>
        <texture>ui_button_main02</texture>
          <text font="graffiti19">1 час</text>
          <text_color>
              <e r="227" g="199" b="178"/> <t r="180" g="153" b="155"/> <d r="106" g="95" b="91"/> <h r="0" g="0" b="0"/>
          </text_color>
    </display>

 

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


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

imcrazyhoudini 

Спойлер

function display_txt(time)
    local txt = " ч."
        if time == 1 then
            txt = " час"
        elseif 2 <= time and time <= 4 then
            txt = " часа"
        elseif 5 <= time and time <= 12 then
            txt = " часов"
        end
            return time..txt
end

function UISleep:add_to_time()
    if sleep_time < max_sleep_time then
        sleep_time = sleep_time + 1
        self.display:SetText(display_txt(sleep_time))
        self.display:SetTextX(44)
    end
end

function UISleep:sub_to_time()
    if sleep_time > min_sleep_time then
        sleep_time = sleep_time - 1
        self.display:SetText(display_txt(sleep_time))
        self.display:SetTextX(44)
    end
end

 

  • Спасибо 1

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


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

N42 эх, что я без тебя бы делал

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


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

[danger_condition@ignore]
ignore_distance       = 20

Я же правильно понимаю - противники за 20 метров для НПС существовать НЕ будут?

 

Кстати, и почему такая конструкция убивает combat_ignore?:
combat_ignore_cond = {=check_fighting(26) =enemy_gulag(yan_zombied:yan_zombied_attack)}
Без =enemy_gulag(yan_zombied:yan_zombied_attack) работает.

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


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

Я же правильно понимаю

Не совсем! Если будет активный враг (best_enemy) и не будет надстройки xr_combat_ignore_cond, то нет! Иначе будет игнорить звуки стрельбы звуки трупиков, гранаты...

3 часа назад, imcrazyhoudini сказал:

enemy_gulag

Странно,а должно. Что в лог пишет? Я так понимаю, yan_zombied и yan_zombied_attack это смарты, да?

 

local n = g.name --' Тут не ошибка ли?

local n = g:name()

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

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


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

Mass проверю


Дополнено 29 минуты спустя
6 часов назад, Mass сказал:

Я так понимаю, yan_zombied и yan_zombied_attack это смарты, да?

да

6 часов назад, Mass сказал:

Что в лог пишет?

ничего, но у меня он не стоит на отлов скриптов и всё в таком плане

6 часов назад, Mass сказал:

Тут не ошибка ли?

не помогло

полагаю, что это проверка с тч, где были гулаги, а в чн уже смарты, поэтому не проходит

у меня ситуация: сценка, в которой нпс почему-то начинает агриться на противников за 200 метров

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


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

не помогло

Вообще-то -это ошибка была! 

 

4 часа назад, imcrazyhoudini сказал:

полагаю, что это проверка с тч,

Вы не правы! В ЗП есть аналог функции только без итерации

 

4 часа назад, imcrazyhoudini сказал:

у меня ситуация: сценка, в которой нпс почему-то начинает агриться на противников за 200 метров

Он находится под логикой активной схемы или в комбате в idle состоянии? Рядом есть раздражители?

 

4 часа назад, imcrazyhoudini сказал:

отлов скриптов

Ой зря! 

Возможна еще одна ситуация при симуляции в комбате! Может добавить еще проверку is_smart_in_combat Типа смарт в состоянии атаки или защиты? Мало ли комбат игноре всему виной

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

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


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

Вообще-то -это ошибка была! 

а я поправил как вы и подсказали

40 минут назад, Mass сказал:

активной схемы

под схемой (не в смарте)

40 минут назад, Mass сказал:

раздражители

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

41 минуту назад, Mass сказал:

Типа смарт

агрится сталкер на людей в смарте которые атакуют другой смарт

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


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

агрится сталкер на людей в смарте которые атакуют другой смарт

Намешал разных файлов скриптов из разных версий, скрипт убит ( в основном это где-то смарт-терайны). Это распространённый баг.  Часто выползает. когда в smart_terrain.script вносятся правки. Либо алспавн косячный.

А еще возможно его на работу не бурут.

Я с такой фигнёй сталкивался, когда ЧН на движ 1602 переносил. Дописал смарты, а они отличаются скриптово, и даже в алспавне. Много разного в движках. Половина нпс пошли работать, а другая пошли целиться в фейк стенку базы чн.

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

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


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

под схемой (не в смарте)

Вы точно уверены что в этот момент нпс под логикой? Попробуйте сделать логирование хотябы апдейта этого непися и enemy_gulag. Посмотрите результат на чем спотыкается игра! У меня данная функция нормально работает!

 

10 минут назад, Diesel сказал:

А еще возможно его на работу не бурут.

Всё может быть, поэтому нужно смотреть в апдейте активную секцию данного сталкера. Что с ним в данный момент происходит

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


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

Намешал разных файлов скриптов из разных версий, скрипт убит ( в основном это где-то смарт-терайны). Это распространённый баг.  Часто выползает. когда в smart_terrain.script вносятся правки. Либо алспавн косячный.

да не мешал я разные файлы, у меня на компе чн 1.5.10, всё

4 часа назад, Mass сказал:

Попробуйте сделать логирование хотябы апдейта этого непися и enemy_gulag.

попрошу помощи - как производится логирование?

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


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

ещё интересно - как лечится такое:
 

Спойлер

! [LUA][ERROR] ERROR: Path between [yan_snork1] and [yan_zombied_attack] doesnt exist for [6].
 
FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_pcall_failed
[error]File          : D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrServerEntities\script_engine.cpp
[error]Line          : 192
[error]Description   : <no expression>
[error]Arguments     : LUA error: ...ames\stalker clear sky\gamedata\scripts\sim_board.script:729: attempt to index local 'smart' (a nil value)


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

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


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

imcrazyhoudini это вейпоинты однако. Поправьте меня если что. Вылеты по Path - это обрыв логики по вэйпоинтам.

У тебя пысовский алспавн? Бывает такое когда сетку перекомпилируешь, а линковка вейпоинтов хреновая, то появляются и такие баги.

Еще я встречал в модах (если не навру правленый ОГСМ) такой же подобный вылет на болотах. И на Агропроме у лидера сталкеров.

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

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


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

У тебя пысовский алспавн?

нет, ничего общего с пысами не имеет

там буквально 250 метров между лагерями, у обоих смартов все вэйпоинты есть вроде как

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


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

все вэйпоинты есть вроде как

Они могут быть вреале, но могут быть не видимыми нпс. Советую вообще не лезть в аи сетку и алспавн. Начни делать мод с чистого чн - это залог успеха.  Я 12 лет ЧН ковыряю, и так и не понял как линковать новые вейпоинты.

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


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

Начни делать мод с чистого чн - это залог успеха.

да как я без вейпоинтов мод с нуля буду делать?

у меня нет локаций с чн, ни смартов оригинальных, ничего

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


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

у меня нет локаций с чн, ни смартов оригинальных, ничего

В другой теме заметил, что ты пилишь ОГСР. Вот и причина тут скорее всего. Этот движок основан на даунгрейде ЗП до ТЧ, и мало чем похож на ЧН. Хотя я  в тонкостях не шарю.

Рашьше мы как-то через АСДС вейпоинты делали и всё работало, хрен его знает короче что посоветовать.

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


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

что за путь должен быть-то?

Если не уверены что с аи сеткой всё нормально, удалите target_smart у yan_snork1. Вроде по логу у него назначена цель на yan_zombied_attack. Так снесите его! Возможно в рестрикторах дело еще.... Сложно что-то подсказать! Про логирование написал в лч. Много букаф!

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

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


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

далите target_smart

targets = yan_zombied

yan_zombied_attack - другой смарт

а вообще если убрать targets вылетает "нет цели", что-то типо такого

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


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

targets = yan_zombied

Это же логика ТЧ? Я просто уже давно лет 10 не смотрел ТЧ. В ЧН логике targets не встречается.
Я припоминаю, что мы таргет делали на актора, когда не знали куда таргетировать. 😆

Завязывайте мешать логику из ТЧ с другими версиями.

 

 

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

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


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

targets = yan_zombied

Думал их несколько! Можно же  указывать цели через запятую.  Кстати, согласно gulag_general.script

while path_exists(target_gname.."_kamp_"..path_idx.."_task") do

Где target_gname это имя смарта целевого, path_idx- индекс

Этот путь у вас есть?  Или у вас эксклюзивы?

19 минут назад, Diesel сказал:

В ЧН логике targets не встречается.

Это в самом смарте делается (all_spawn)

Изменено пользователем Mass
  • Жму руку 1

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


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

Этот путь у вас есть?

у меня такой набор путей:
walker
kamp
kamp_task
home
spawn_point

в смартах снорков отсутствовал walker, добавил, пока не тестировал

впрочем вылет убрался переигровкой с самого начала игры

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


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

в смартах снорков отсутствовал walker

Эммм... Точно валкер? Для монстров? Не моб_валкер. Вы так не пугайте! Зы: воукер😂

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

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


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

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

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

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

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

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

Войти

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

Войти

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