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

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

в news_manager есть функция send_tip, которую мы вызываем, когда хотим послать сообщение главное герою. Самая первая строка пишет тёмно-серым цветом "сообщение", за это отвечает этот кусок кода:

	local news_caption = game.translate_string("st_tip") --st_tip - "Сообщение"
	local news_text = game.translate_string(news_id)
	actor:give_game_news(news_caption, news_text, texture, timeout*1000, showtime, 0)

Я хочу изменить это "сообщение" на другой текст, с этим проблем не возникло. НО, я также хотел и цвет поменять, но он не меняется! Я думал мб в конфигах в строках сразу поменять цвет, что работало везде где я встречал, но на экран выводится также серая надпись с со всеми параметрами цвета, что я указал "\n%c[0,255,0,0]Внимание:". Как всё таки изменить цвет это строки?

Ссылка на комментарий

@I am Dead  для  добавления кровотечения -  например нанести доп.хит с типом "chemical_burn".  Пример посмотреть можно  в нлс-ишном bind_monster.script.
 

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

След от кругов на воде - это тоже след (с)

Ссылка на комментарий
22 часа назад, ARTLantist сказал(а):

Как всё таки изменить цвет этой строки?

Что бы это сделать, нужно добавить параметр complex_mode="1" в соответствующее текстовое поле. Если речь идет о CoP, то это тэг <caption_static> в файлах pda_logs.xml и maingame_pda_msg.xml.

S.T.A.L.K.E.R. CoP Objects (upd 15.11.24)

Ссылка на комментарий

@WinCapПричем тут complex_mode ? Этот параметр переносит строки если не хватает ширины окна. 

@OkichiА если нанести chemical_bur, состояние костюма при этом не изменится? И можно ли нанести отрицательный хит, что убавит уровень кровотечения?

Изменено пользователем I am Dead
Ссылка на комментарий
1 час назад, I am Dead сказал(а):

Причем тут complex_mode ? Этот параметр переносит строки если не хватает ширины окна. 

Это не только перенос строк, но отрисовка цвета текста %c.

 

З.Ы. Вторая часть сообщения адресована не мне.

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

S.T.A.L.K.E.R. CoP Objects (upd 15.11.24)

Ссылка на комментарий
52 минуты назад, WinCap сказал(а):

Это не только перенос строк, но отрисовка цвета текста %c.

 Только что проверил, у себя в моде, и параметр complex_mode никак не пересекается с цветом текста.

Ссылка на комментарий
11 минут назад, Stalkersof сказал(а):

А как будет кнопка Enter на клавиатуре. Пишу так dik == DIK_keys.DIK_ENTER не срабатывает

Вот все коды клавиш которые можно использовать в игре 

Скрытый текст

C++ class DIK_keys {
    const DIK_0 = 11;
    const DIK_1 = 2;
    const DIK_2 = 3;
    const DIK_3 = 4;
    const DIK_4 = 5;
    const DIK_5 = 6;
    const DIK_6 = 7;
    const DIK_7 = 8;
    const DIK_8 = 9;
    const DIK_9 = 10;
    const DIK_A = 30;
    const DIK_ADD = 78;
    const DIK_APOSTROPHE = 40;
    const DIK_APPS = 221;
    const DIK_AT = 145;
    const DIK_AX = 150;
    const DIK_B = 48;
    const DIK_BACK = 14;
    const DIK_BACKSLASH = 43;
    const DIK_C = 46;
    const DIK_CAPITAL = 58;
    const DIK_CIRCUMFLEX = 144;
    const DIK_COLON = 146;
    const DIK_COMMA = 51;
    const DIK_CONVERT = 121;
    const DIK_D = 32;
    const DIK_DECIMAL = 83;
    const DIK_DELETE = 211;
    const DIK_DIVIDE = 181;
    const DIK_DOWN = 208;
    const DIK_E = 18;
    const DIK_END = 207;
    const DIK_EQUALS = 13;
    const DIK_ESCAPE = 1;
    const DIK_F = 33;
    const DIK_F1 = 59;
    const DIK_F10 = 68;
    const DIK_F11 = 87;
    const DIK_F12 = 88;
    const DIK_F13 = 100;
    const DIK_F14 = 101;
    const DIK_F15 = 102;
    const DIK_F2 = 60;
    const DIK_F3 = 61;
    const DIK_F4 = 62;
    const DIK_F5 = 63;
    const DIK_F6 = 64;
    const DIK_F7 = 65;
    const DIK_F8 = 66;
    const DIK_F9 = 67;
    const DIK_G = 34;
    const DIK_GRAVE = 41;
    const DIK_H = 35;
    const DIK_HOME = 199;
    const DIK_I = 23;
    const DIK_INSERT = 210;
    const DIK_J = 36;
    const DIK_K = 37;
    const DIK_KANA = 112;
    const DIK_KANJI = 148;
    const DIK_L = 38;
    const DIK_LBRACKET = 26;
    const DIK_LCONTROL = 29;
    const DIK_LEFT = 203;
    const DIK_LMENU = 56;
    const DIK_LSHIFT = 42;
    const DIK_LWIN = 219;
    const DIK_M = 50;
    const DIK_MINUS = 12;
    const DIK_MULTIPLY = 55;
    const DIK_N = 49;
    const DIK_NEXT = 209;
    const DIK_NOCONVERT = 123;
    const DIK_NUMLOCK = 69;
    const DIK_NUMPAD0 = 82;
    const DIK_NUMPAD1 = 79;
    const DIK_NUMPAD2 = 80;
    const DIK_NUMPAD3 = 81;
    const DIK_NUMPAD4 = 75;
    const DIK_NUMPAD5 = 76;
    const DIK_NUMPAD6 = 77;
    const DIK_NUMPAD7 = 71;
    const DIK_NUMPAD8 = 72;
    const DIK_NUMPAD9 = 73;
    const DIK_NUMPADCOMMA = 179;
    const DIK_NUMPADENTER = 156;
    const DIK_NUMPADEQUALS = 141;
    const DIK_O = 24;
    const DIK_P = 25;
    const DIK_PAUSE = 197;
    const DIK_PERIOD = 52;
    const DIK_PRIOR = 201;
    const DIK_Q = 16;
    const DIK_R = 19;
    const DIK_RBRACKET = 27;
    const DIK_RCONTROL = 157;
    const DIK_RETURN = 28;
    const DIK_RIGHT = 205;
    const DIK_RMENU = 184;
    const DIK_RSHIFT = 54;
    const DIK_RWIN = 220;
    const DIK_S = 31;
    const DIK_SCROLL = 70;
    const DIK_SEMICOLON = 39;
    const DIK_SLASH = 53;
    const DIK_SPACE = 57;
    const DIK_STOP = 149;
    const DIK_SUBTRACT = 74;
    const DIK_SYSRQ = 183;
    const DIK_T = 20;
    const DIK_TAB = 15;
    const DIK_U = 22;
    const DIK_UNDERLINE = 147;
    const DIK_UNLABELED = 151;
    const DIK_UP = 200;
    const DIK_V = 47;
    const DIK_W = 17;
    const DIK_X = 45;
    const DIK_Y = 21;
    const DIK_YEN = 125;
    const DIK_Z = 44;
    const MOUSE_1 = 256;
    const MOUSE_2 = 512;
    const MOUSE_3 = 1024;

};

 

  • Спасибо 1
  • Полезно 2
Ссылка на комментарий
12 часов назад, Stalkersof сказал(а):

А как будет кнопка Enter на клавиатуре

DIK_keys.DIK_RETURN

 

14 часов назад, I am Dead сказал(а):

если нанести chemical_bur, состояние костюма при этом не изменится?

Изменится.

И отрицательное туда нельзя. (не даст эффекта). Нету прямого способа управлять кровотечением, такого чтоб не задевал состояние комбеза и хп. Нужно править движок, для этого)

  • Спасибо 2

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

В каком скрипте смотреть считывание рангов NPC для формирования 20-ки лучших сталкеров? Нашёл ranks.script, он что ли? Хочется тут с товарищами пофиксить багу одну, а именно:

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

Мёртвый сталкер автоматически пропадёт из рейтинга, как только труп исчезнет из игры. Стандартное время исчезновения трупа — 36 часов. При желании игрок может ускорить этот процесс, отнеся труп в ближайшую «воронку» или «карусель». При этом стоит учесть, что трупы ключевых персонажей (например, трупы Черепа и Лукаша) из игры не исчезнут.

 

Ссылка на комментарий
9 часов назад, Капрал Хикс сказал(а):

При этом стоит учесть, что трупы ключевых персонажей (например, трупы Черепа и Лукаша) из игры не исчезнут.

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

  • Согласен 2

Сталкер - наше всё!

Ссылка на комментарий
9 часов назад, ted.80 сказал(а):

Удалять через какое-то время? или после ухода в оффлайн?

Удалять при новом заходе на локацию, как-то так. При обыске выдавать инфо, при заходе на локу - проверять инфо, если выдан - удалять труп. Костыльно конечно. Но работать будет, причем с любыми трупами, в т.ч. имеющими стори_ид.

 

9 часов назад, ted.80 сказал(а):

ЕМНИП можно использовать скрипт

Руки дойдут - обязательно попробую.

Сталкер - наше всё!

Ссылка на комментарий
1 час назад, AndrewMor сказал(а):

При обыске выдавать инфо, при заходе на локу - проверять инфо, если выдан - удалять труп.

Мой вариант - не плодить инфо-порции, а использовать db.script, который сами разрабы назвали "База данных живых онлайновых объектов, зон и рестрикторов, актёра". Писать трупы в таблицу, её потом читать. Преимущества таблицы - можно хранить любое кол-во нужной инфо об объекте.

Ссылка на комментарий

Как-то всё в итоге к уборке трупов свелось, мда. Скрипты уборщика трупов-то уже на любой вкус есть, только под себя подогнать. Я вот вроде нашёл функцию в ranks.script:
 

Скрытый текст

-- возвращает название ранга заданного game_object (персонажа)

function get_obj_rank_name( obj )
    if not ranks_loaded then
        read_all_ranks()
    end

    local obj_rank

    -- HACK
    if obj.m_story_id ~= nil then
        obj_rank = obj:rank()
    else
        obj_rank = obj:character_rank()
    end

   --добавляем проверку в следующей строке на живость NPC:

    if IsStalker(obj) and obj:alive() then
        return get_rank_name( obj_rank, stalker_rank_intervals ) or stalker_max_rank_name
    else
        return get_rank_name( obj_rank, monster_rank_intervals ) or monster_max_rank_name
    end
end

 

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

Интересно, если монстрам добавить эту проверку можно ли будет забороть баг вида: при обыске трупа мутанта строка отношения копирует строку отношения последнего обысканного трупа, из-за чего может оказаться нейтральным или дружественным.

Изменено пользователем Капрал Хикс
  • Нравится 1
Ссылка на комментарий

Всем доброго. Вопрос такой - каким образом реализованы в игре вороны? Они ведь не обрабатываются скриптами вообще? Имею в виду их логику, траекторию. Это движковое? Есть ли возможность задать вектор движения вороне? 

Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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