I am Dead 916 Опубликовано 21 Февраля 2021 Поделиться Опубликовано 21 Февраля 2021 @Zander_driverОчень даже жаль, а на ковыряние движка места нету на ноутбуке( Ссылка на комментарий
ARTLantist 14 Опубликовано 22 Февраля 2021 Поделиться Опубликовано 22 Февраля 2021 в 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 916 Опубликовано 22 Февраля 2021 Поделиться Опубликовано 22 Февраля 2021 @ARTLantist Скрытый текст local news_text = "%c[255,160,160,160]"..game.translate_string("st_tip").."\\n".."%c[default]"..game.translate_string(news_id) Ссылка на комментарий
I am Dead 916 Опубликовано 23 Февраля 2021 Поделиться Опубликовано 23 Февраля 2021 Всех с праздником! Очередной вопрос из разряда "ткните меня носом", как прибавить/убавить кровотечение у гг через скрипт? Ссылка на комментарий
Okichi 922 Опубликовано 23 Февраля 2021 Поделиться Опубликовано 23 Февраля 2021 (изменено) @I am Dead для добавления кровотечения - например нанести доп.хит с типом "chemical_burn". Пример посмотреть можно в нлс-ишном bind_monster.script. Изменено 23 Февраля 2021 пользователем Okichi 1 След от кругов на воде - это тоже след (с) Ссылка на комментарий
WinCap 316 Опубликовано 23 Февраля 2021 Поделиться Опубликовано 23 Февраля 2021 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) Ссылка на комментарий
I am Dead 916 Опубликовано 23 Февраля 2021 Поделиться Опубликовано 23 Февраля 2021 (изменено) @WinCapПричем тут complex_mode ? Этот параметр переносит строки если не хватает ширины окна. @OkichiА если нанести chemical_bur, состояние костюма при этом не изменится? И можно ли нанести отрицательный хит, что убавит уровень кровотечения? Изменено 23 Февраля 2021 пользователем I am Dead Ссылка на комментарий
WinCap 316 Опубликовано 23 Февраля 2021 Поделиться Опубликовано 23 Февраля 2021 (изменено) 1 час назад, I am Dead сказал(а): Причем тут complex_mode ? Этот параметр переносит строки если не хватает ширины окна. Это не только перенос строк, но отрисовка цвета текста %c. З.Ы. Вторая часть сообщения адресована не мне. Изменено 23 Февраля 2021 пользователем WinCap S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
I am Dead 916 Опубликовано 23 Февраля 2021 Поделиться Опубликовано 23 Февраля 2021 52 минуты назад, WinCap сказал(а): Это не только перенос строк, но отрисовка цвета текста %c. Только что проверил, у себя в моде, и параметр complex_mode никак не пересекается с цветом текста. Ссылка на комментарий
Stalkersof 183 Опубликовано 23 Февраля 2021 Поделиться Опубликовано 23 Февраля 2021 А как будет кнопка Enter на клавиатуре. Пишу так dik == DIK_keys.DIK_ENTER не срабатывает Freeplay Graphic Mod(FGM) Ссылка на комментарий
I am Dead 916 Опубликовано 23 Февраля 2021 Поделиться Опубликовано 23 Февраля 2021 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 Ссылка на комментарий
Zander_driver 10 334 Опубликовано 24 Февраля 2021 Поделиться Опубликовано 24 Февраля 2021 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. Ссылка на комментарий
Капрал Хикс 534 Опубликовано 28 Февраля 2021 Поделиться Опубликовано 28 Февраля 2021 В каком скрипте смотреть считывание рангов NPC для формирования 20-ки лучших сталкеров? Нашёл ranks.script, он что ли? Хочется тут с товарищами пофиксить багу одну, а именно: Даже если сталкер мёртв, он все равно останется в рейтинге до тех пор, пока в игре есть его труп. Это связано с тем, что рейтинг не видит разницы между живым NPC и трупом. Мёртвый сталкер автоматически пропадёт из рейтинга, как только труп исчезнет из игры. Стандартное время исчезновения трупа — 36 часов. При желании игрок может ускорить этот процесс, отнеся труп в ближайшую «воронку» или «карусель». При этом стоит учесть, что трупы ключевых персонажей (например, трупы Черепа и Лукаша) из игры не исчезнут. Ссылка на комментарий
AndrewMor 527 Опубликовано 1 Марта 2021 Поделиться Опубликовано 1 Марта 2021 9 часов назад, Капрал Хикс сказал(а): При этом стоит учесть, что трупы ключевых персонажей (например, трупы Черепа и Лукаша) из игры не исчезнут. Всегда доставали эти вечные трупы. Сама концепция Зоны предполагает, что трупы не должны вечно лежать на локациях. В идеале нужен скрипт, который убирает любой труп после его обыска ГГ. 2 Сталкер - наше всё! Ссылка на комментарий
Это популярное сообщение. ted.80 277 Опубликовано 1 Марта 2021 Это популярное сообщение. Поделиться Опубликовано 1 Марта 2021 12 часов назад, AndrewMor сказал(а): В идеале нужен скрипт, который убирает любой труп после его обыска ГГ. Согласен, но как по вашему должен работать этот скрипт? Удалять труп сразу после обыска? будет выглядеть весьма глупо - но уложится в пару сток кода, Удалять через какое-то время? или после ухода в оффлайн? это тянет за собой кучу -проверок -таймеры -записи в сторадж -и все будет висеть на многострадальном апдейте? ЕМНИП можно использовать скрипт - release_body_manager.script из ЧН Подключение: 1. В папку scripts из ЧН копируешь файл release_body_manager.script 2. В файл xr_motivator.script в метод death_callback добавляешь release_body_manager.get_release_body_manager():moving_dead_body(self.object) Это отвечает за перемещение трупов сталкеров в таблицу. 3. В файл bind_monster.script также в метод death_callback добавляешь строчку release_body_manager.get_release_body_manager():moving_dead_body(self.object) Это отвечает за перемещение трупов монстров таблицу. 4. В файл bind_stalker.script в методы save и load соответственно добавляешь release_body_manager.get_release_body_manager():save(packet) и release_body_manager.get_release_body_manager():load(reader) Пробуй что получилось. З.Ы. Имей ввиду, что персонажи, которые имеют story_id удаляться не будут. Также не будут удаляться тела НПС в которых есть квестовые предметы. З.Ы.Ы Честно стырено с другого ресурса 1 5 Личный АРХИВ по S.T.A.L.K.E.R Ссылка на комментарий
AndrewMor 527 Опубликовано 2 Марта 2021 Поделиться Опубликовано 2 Марта 2021 9 часов назад, ted.80 сказал(а): Удалять через какое-то время? или после ухода в оффлайн? Удалять при новом заходе на локацию, как-то так. При обыске выдавать инфо, при заходе на локу - проверять инфо, если выдан - удалять труп. Костыльно конечно. Но работать будет, причем с любыми трупами, в т.ч. имеющими стори_ид. 9 часов назад, ted.80 сказал(а): ЕМНИП можно использовать скрипт Руки дойдут - обязательно попробую. Сталкер - наше всё! Ссылка на комментарий
AndreySol 215 Опубликовано 2 Марта 2021 Поделиться Опубликовано 2 Марта 2021 1 час назад, AndrewMor сказал(а): При обыске выдавать инфо, при заходе на локу - проверять инфо, если выдан - удалять труп. Мой вариант - не плодить инфо-порции, а использовать db.script, который сами разрабы назвали "База данных живых онлайновых объектов, зон и рестрикторов, актёра". Писать трупы в таблицу, её потом читать. Преимущества таблицы - можно хранить любое кол-во нужной инфо об объекте. Ссылка на комментарий
AndrewMor 527 Опубликовано 2 Марта 2021 Поделиться Опубликовано 2 Марта 2021 @AndreySol Потому и написал, что костыльно использовать инфо-порции. Сталкер - наше всё! Ссылка на комментарий
Капрал Хикс 534 Опубликовано 2 Марта 2021 Поделиться Опубликовано 2 Марта 2021 (изменено) Как-то всё в итоге к уборке трупов свелось, мда. Скрипты уборщика трупов-то уже на любой вкус есть, только под себя подогнать. Я вот вроде нашёл функцию в 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 при обыске трупов перестанут отображаться или ещё что... Интересно, если монстрам добавить эту проверку можно ли будет забороть баг вида: при обыске трупа мутанта строка отношения копирует строку отношения последнего обысканного трупа, из-за чего может оказаться нейтральным или дружественным. Изменено 2 Марта 2021 пользователем Капрал Хикс 1 Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 3 Марта 2021 Поделиться Опубликовано 3 Марта 2021 Всем доброго. Вопрос такой - каким образом реализованы в игре вороны? Они ведь не обрабатываются скриптами вообще? Имею в виду их логику, траекторию. Это движковое? Есть ли возможность задать вектор движения вороне? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти