Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Gaz24 6 Опубликовано 23 Сентября 2013 Поделиться Опубликовано 23 Сентября 2013 Как сделать так, чтобы детектор показывал артефакты на мини-карте? Ссылка на комментарий
Вспышка 836 Опубликовано 23 Сентября 2013 Поделиться Опубликовано 23 Сентября 2013 Возможно ли как-то добавить громкости звукам амбиента, а то что-то тихо звучат. В каком скрипте это можно посмотреть? AMD Ryzen 5 2600 \ ASRock B450 PRO 4 \ RTX 2070 Super \ RAM DDR4 16Gb (3400MHz) \ 2 SSD Crucial MX500 (250Gb и 500Gb) \ Windows 10 (2004) x64-bit Ссылка на комментарий
BFG 7 582 Опубликовано 23 Сентября 2013 Поделиться Опубликовано 23 Сентября 2013 @Вспышка, На Сталкерине прочитай ЭТУ статью. "Кругом зомби.....у меня кончаются патроны...." Ссылка на комментарий
Shredder 49 Опубликовано 23 Сентября 2013 Поделиться Опубликовано 23 Сентября 2013 Как сделать так, чтобы детектор показывал артефакты на мини-карте? Опишу, как бы я сделал. Для артефактов добавляешь биндер. На апдейте проверяешь расстояние до актора и наличие у него в слоте детектора, если расстояние меньше, допустим, 30 метров - ставим метку на артефакт. Ссылка на комментарий
Потенциал 216 Опубликовано 23 Сентября 2013 Поделиться Опубликовано 23 Сентября 2013 Не помню, что последний раз редактировал, но столкнулся с такой проблемой: Торговцы стоят и не реагируют почти ни на что. С ними можно поговорить, но они абсолютно не двигаются, даже если в них стрелять (меняется только их отношение к ГГ) Ссылка на комментарий
_Val_ 2 225 Опубликовано 23 Сентября 2013 Поделиться Опубликовано 23 Сентября 2013 @Вспышка, посмотри файл env_ambient.ltx. Для амбиентных звуков там прописан параметр sound_dist. В зависимости от его значения(проставляется в метрах), один и тот же звук может звучать громче или тише. Допустим если стоит sound_dist = 30, 60, можно поставить = 20, 20, да хоть единицу. Естественно лучший вариант, это использование редакторов звука и СДК. 1 Ссылка на комментарий
AndrewMor 527 Опубликовано 25 Сентября 2013 Поделиться Опубликовано 25 Сентября 2013 Люди, посоветуйте грамотный туторов по респавну. А то одну статейку читал, вроде делал, как написано, а респавн все равно не происходит... RESPAWN NPC-----------------------------------------------------------------------------Для создания респавна, понадобится два файла, all.spawn и spawn_section.ltx.Это минимальный набор. Для полной настройки респавнера, нужны ещё character_desc_simulation.xml и npc_profile.xml.--------------------------------------------------------------------------------1. В gamedata\spawns\all.spawn создаём секцию респавнера [10000] ; cse_abstract propertiessection_name = respawnname = имя респавнера, например, pred_respawn_military_blockpostposition = координаты (x,y,z)direction = 0,0,0id = 65535version = 118script_version = 6; cse_alife_object propertiesgame_vertex_id = гейм-вертексdistance = 10level_vertex_id = левел-вертексobject_flags = 0xffffff3ecustom_data = <[respawn]respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9 (pred_military_respawn_1);max_count = 8;min_count = 4max_spawn = 2 (5)idle_spawn = mediumconditions = 100END; cse_shape propertiesshapes = 1shape_0:type = sphereshape_0:offset = 0,0,0shape_0:radius = 1; cse_alife_space_restrictor propertiesrestrictor_type = 0; se_respawn properties Если используется программа XrSpawner,; то копируем любую секцию respawn; меняем имя объекта,; координаты, и в окошке скрипт прописываемspawned_obj =[respawn]respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9max_count = 8min_count = 4max_spawn = 2idle_spawn = mediumconditions = 100;Где respawn_section = id респавн-секций из файла spawn_section.ltx.;Цифры после запятой, означают отношение одной секции к другой.;Если планируется одинаковое количество респавна из каждой секции,;то цифры ставить не требуется. max_count = количество респавн-запросов;за период времени, пока ГГ находится на уровне. При переходе на другой уровень;счётчик max_count сбрасывается. (ставить не обязательно);min_count = минимальное количество нпс, для экстренного респавна.;(ставить не обязательно);max_spawn = количество нпс за один цикл респавна.;idle_spawn = тип спавна. Известно три типа: medium, often, seldom.;Обычно используется тип medium.;conditions = Условие респавна. Можно установить проверку условий (инфопоршень),;где респавн будет происходить только при выполнении условия. Номер означает;общий процент выполнения респавна. Например так conditions = {+инфо} 100, 0;где респавн будет происходить со стопроцентной вероятностью, только при наличии;установленного инфопоршна.--------------------------------------------------------------------------------2. В файле gamedata\config\creatures\spawn_section.ltx создаём респавн-секции[esc_urody_respawn_1]:stalker$spawn = "respawn\esc_urody_respawn_1"character_profile = sim_urody_novice (sim_military_regular)spec_rank = novice (regular)community = bandit (military)[esc_urody_respawn_2]:stalker$spawn = "respawn\esc_urody_respawn_2"character_profile = sim_urody_regularspec_rank = regularcommunity = bandit;Где esc_urody_respawn_1 - id респавн-секции.;sim_urody_novice и sim_urody_regular - классы профайлов нпс.;novice и regular - ранги нпс.;bandit - группировка нпс.--------------------------------------------------------------------------------3. В файле gamedata\config\gameplay\npc_profile.xml регистрируем классы sim_urody_regular и sim_urody_novice <character id="sim_urody_regular>"<class>sim_urody_regular</class></character> <character id="sim_urody_novice"><class>sim_urody_novice</class></character> --------------------------------------------------------------------------------4. Создаём профили, в файле character_desc_simulation.xml, с классами sim_urody_regular и sim_urody_novice и группировкой bandit.--------------------------------------------------------------------------------RESPAWN MUTANTOV-------------------------------------------------------------------------------В принципе, респавн мутантов идентичен респавну нпс. Но с одним лишь отличием, которое егозначительно упрощает. Вся настройка респавна мутантов, ограничивается секцией в файле all.spawn.Вписываем секцию респавнера, как указано в -RESPAWN NPC-. Все настройки идентичны, кроме строкиrespawn_section = . В ней прописываем типы мутантов, из файла se_respawn.script.Такие как flesh_weak, flesh_normal, dog_weak, boar_strong, и т.д..--------------------------------------------------------------------------------ОБЩИЕ НАСТРОЙКИ--------------------------------------------------------------------------------Обязательные условия респавна 1. На уровне обязательно должен быть хоть один гулаг для респавнящихся нпс и мутантов.Так как количество неписей для респавна ориентируется по доступным местам в гулагах.2. Респавн производится, только если под гулагами есть доступные работы.3. На каждом уровне респавн ограничен определёнными типами неписей. Данные ограниченияустановлены в файле miscsmart_terrain_presets.ltx. Чтобы сделать возможным респавннеписей, не предусмотренных на данном уровне, надо в секции нужного уровня дописать требуемые типы неписей.--------------------------------------------------------------------------------Для проверки созданного респавнера можно не ждать когда сработает системный респавн,а вызвать принудительно респавн в нужной секции. Для этого прописываем в любой логикевызов функции %=respawner_spawn(имя респавнера)%. Где имя респавнера - имя секции,созданой в файле all.spawn. Скобки обязательны.Например, можно создать рядом с зоной респавнера, временный рестриктор. И в кастом датерестриктора прописать вызов функции принудительного вызова респавна в нужном респавнерепри входе ГГ в зону рестриктора[logic]active = sr_idle@in[sr_idle@in]on_actor_inside = %=respawner_spawn(имя респавнера)% sr_idle@out[sr_idle@out]on_actor_outside = sr_idle@in Функция принудительного вызова респавна, находится в файле xr_effects.script.--------------------------------------------------------------------------------RESPAWN ITEMS-------------------------------------------------------------------------------Респавн инвентаря в инвентарных ящиках, несколько отличается от способа респавна неписей.--------------------------------------------------------------------------------1. Первое, что нам нужно сделать, это создать инвентарный ящик в файле all.spawn[10000]; cse_abstract propertiessection_name = inventory_boxname = имя ящикаposition = координаты x,y,zdirection = 0,0,0id = 65535version = 118script_version = 6; cse_alife_object propertiesgame_vertex_id = гейм-вертексdistance = 0level_vertex_id = левел-вертексobject_flags = 0xffffffbastory_id = ай-ди ящика; cse_visual propertiesvisual_name = equipmentsitem_box_01--------------------------------------------------------------------------------2. Затем, в файле game_story_id.ltx регистрируем id ящика. (выбираем любое свободное число).--------------------------------------------------------------------------------3. Создаём респавнер в файле all.spawn. Координаты и размеры зоны респавнера должныбыть такими, чтоб инвентарный ящик поместился внутри зоны респавнера[10001]; cse_abstract propertiessection_name = respawnname = имя респавнераposition = координаты x,y,zdirection = 0,0,0id = 65535version = 118script_version = 6; cse_alife_object propertiesgame_vertex_id = гейм-вертексdistance = 2level_vertex_id = левел-вертексobject_flags = 0xffffff3ecustom_data = END[respawn]respawn_section = список вещей респавнаidle_spawn = -1parent = ай-ди ящикаitem_spawn = truemax_count = 7END; cse_shape propertiesshapes = 1shape_0:type = boxshape_0:axis_x = 0.5,0,0 (ширина зоны респавнера по X)shape_0:axis_y = 0,0.5,0 (высота зоны респавнера по Y)shape_0:axis_z = 0,0,1 (ширина зоны респавнера по Z)shape_0:offset = 0,0,0; cse_alife_space_restrictor propertiesrestrictor_type = 3; se_respawn propertiesГде respawn_section = список вещей респавна. Как и в респавнерах неписей, возможна прописка соотношений между вещами. Напримерrespawn_section = wpn_pm,2, vodka,2, medkit,1, energy_drink,2, ammo_9x18_fmj,3idle_spawn = тип спавна. Инвентарь не имеет типов спавна, поэтому ставится (-1).parent = ай-ди инвентарного ящика, в котором производить респавн вещей.item_spawn = (true/false) - возможность включения и отключения респавна. Можно задавать условия.max_count = количество респав-циклов за определённый период времени.(Пока ГГ находится на уровне. После перехода ГГ на другой уровень счётчик сбрасывается).--------------------------------------------------------------------------------4. Создаём вызов респавна. Обычно вызов производится из smart_terrain. В custom_dataлюбого подходящего smart_terrain, под секцией [smart_terrain], вписываем вызов респавна[smart_terrain]respawn = имя респавнера И респавн будет производиться при каждом пополнении нпс под данным смартом. Сталкер - наше всё! Ссылка на комментарий
losiara 13 Опубликовано 25 Сентября 2013 Поделиться Опубликовано 25 Сентября 2013 (изменено) Отличная статья, если не ошибаюсь singapur22 писал, прекрасно работает, что тебе не нравится??? Изменено 25 Сентября 2013 пользователем losiara Жизнь следует измерять поступками, а не временем... Ссылка на комментарий
Artos 99 Опубликовано 26 Сентября 2013 Поделиться Опубликовано 26 Сентября 2013 (изменено) @AndrewMor, не нужно путать: ты не видишь в игре новых неписей, которые должен заспавнить тобою создаваемый респавнер, с тем, что он их вообще не спавнит. Один и тот же результат может иметь разные причины. Главным условием, чтобы ты в игре увидел своих заспавненных неписей является или независимость твоих неписей от гулагов ("smart_terrains = none") или наличие доступной для них работы в каком-либо гулаге. В противном случае, они просто после спавна будут сразу же удалены из игры. Понять, спавнит ли респавнер или нет, или спавнит, но объекты сразу же удаляются, можно только по логам, для чего требуется, например, в файле se_respawn.script в методе se_respawn:create(prob) реанимировать строки вывода в лог, начинающиеся с "printf("SPAWNING"... Нужно еще иметь ввиду, что респавнерам находящимся на текущей локации в оригинале игры запрещено спавнить, т.е. актор должен уйти на др.локацию. Так что, если ты создап респавнер на Кордоне и ждешь, не уходя с локации, когда кто-нибудь из него появится - бессмысленно. Примечание: Статья хорошая и правильная, но в комментах ("Обязательные условия респавна") пункты 1 и 3 излишни. Уточнения: п.1. Наличие "хоть одного гулага" на локации, где создается респавнер, не обязательно. Респавнер будет пытаться (периодически или одноразово) спавнить объект(ы) в соответствии с заданными ему параметрами. Однако, главным условием появления в игре заспавненного объекта является наличие свободной работы в каком-либо гулаге и не важно на какой локации, или его независимость от гулагов (о чем написано выше). Иной вопрос, дойдет ли непись до другой локации, если нет связей, но это уже вопрос к game.graph. п.3. Если какой-либо уровень запрещен для нахождения на нем объекта с неподходящим рангом, это не запрещает респавнеру спавнить объекты, которые будут уходить с неразрешенных для них локаций. Изменено 26 Сентября 2013 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Х_и_м_и_к 3 Опубликовано 26 Сентября 2013 Поделиться Опубликовано 26 Сентября 2013 (изменено) Всем добрый день. неполучается удалить нпс, пробовал с помощью function dell_kluk_final() local se_obj = alife():object("esc_wolf") if se_obj then alife():release(se_obj, true) end end не получилось может я что-то не так делаю? какие еще есть способы удаления нпс из игры? подскажите пожалуйста. может где нибудь есть описание как это сделать. пробовал вот так код function remove_freaks() remove_obj("grom11_spawn") end получаем вылет, где что прописать нужно? FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...од-Секрет\gamedata\scripts\werto_dialog.script:81: attempt to call global 'remove_obj' (a nil value) stack trace: Изменено 26 Сентября 2013 пользователем WERTOix Ссылка на комментарий
Artos 99 Опубликовано 26 Сентября 2013 Поделиться Опубликовано 26 Сентября 2013 (изменено) @_Val_, 1-ая функция, указанная 'ом, полностью рабочая. Если alife() был бы недоступен, то это не неработало бы, а давало бы вылет. Ну а удалять (получать объект для удаления) в ТЧ можно и по имени (а не секции!), и по игровому идентификатору (id) и по стори-ид'у (story_id)... нужно просто не гадать и не тупо копипастить, а понимать то, что пишешь в коде. Ну и читать(!) почаще топики: "Справочник по функциям и классам" и "Скриптование", а не ждать подсказки по банальным вопросам, поминавшимся и разъясненным тысячи раз в сотнях ФАКов... Изменено 29 Сентября 2013 пользователем BFG 1 1 "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Боягуз 3 Опубликовано 26 Сентября 2013 Поделиться Опубликовано 26 Сентября 2013 Неоднократное нарушение п.2.1. 50 баллов и 7 дней ридонли. Cyclone 4 Tetris 9in1, 2 кб ОЗУ, 1kHz(одноядерный),2х цветовой широкоформатный дисплей. Ссылка на комментарий
Malandrinus 615 Опубликовано 27 Сентября 2013 Поделиться Опубликовано 27 Сентября 2013 неполучается удалить нпсВарианта два. Первый - удаляешь не того сталкера. У тебя удаляется Волк, а в названии функции другое имя. Если же ты именно Волка хотел удалить, то значит есть проблема. Второй вариант, бывает, что онлайновые сталкеры не хотят удаляться. Я не знаю точной причины, но это как правило коррелирует с тем, что сталкеры квестовые и у них есть всякая разная логика и т.п. Может помочь удаление из оффлайна. Также можно не удалять, а просто перевести в оффлайн навечно. Визуально с удалением разницы не будет никакой. Сейчас подробно не скажу, но там есть параметр в логике, в котором можно прописать условие нахождения в оффлайне/онлайне. Так в общем то делается в оригинальной игре, никого не удаляют, а только уводят в оффлайн. 1 Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Х_и_м_и_к 3 Опубликовано 27 Сентября 2013 Поделиться Опубликовано 27 Сентября 2013 (изменено) можно прописать условие нахождения в оффлайне/онлайне. Очень хотелось бы реализовать вот это. Мне намекнули в каком направлении двигаться. Выглядит так - гг говорит с нпс, диалог заканчивается срабатывает бреак, затем акцион и непись удаляется! Как думаешь сработает? Или что-то с офлайном мудрить придется))) Говорят что нужно время, задержка в несколько секунд, иначе вылет. Реализовывай, кто тебе не даёт? Здесь тема не для похотелок - предложи свой вариант решения, дабы можно было тебе что-то поправить/дополнить/подсказать. А если отвечать на вопрос, то да - можно. Если все будут сюда писать свои предположения (без поддержки своих слов кодом, ну или хотя бы размышлениями), то никакой темы не хватит. Итак её (тему) захламили вопросами, на которые ответ находится через пять минут после пользования поиском. Но ты же опять пытаешься выставить себя так, как будто тебя нашли "крайним". А ведь всё сводится к тому, что тебе чего-то лень: либо поискать, либо описать свои домыслы... хотя мне кажется, что ты всё же ищешь не совета, а готового решения. Как удалить НПС тебе сказали. Как запустить функцию по окончанию диалога, ты, по всей видимости, и сам знаешь - посему, ты даже и пробовать не хочешь. ColR_iT Изменено 29 Сентября 2013 пользователем BFG Ссылка на комментарий
Pro100 Moder 0 Опубликовано 27 Сентября 2013 Поделиться Опубликовано 27 Сентября 2013 (изменено) Люди, пожалуйста, помогите! Я отправил сообщение Меченому через скрипт, но текст в игре стал какими-то каракулями. Что делать? Вот функция: function sms_ot_sidora() news_manager.send_tip(db.actor, "%c[255,0,255,0]".."Сидорович:".."\\n".."%c[255,255,128,128]Меченый, ты у Хруста? Надеюсь, что вы там еще не забухали? Иди ко мне дело, етсь.".."".."\n", nil, nil, 20000)end Вот ссылка на скрин: http://yadi.sk/d/V304Bo0S9xscH Изменено 27 Сентября 2013 пользователем ColR_iT Ссылка на комментарий
azrael1325 28 Опубликовано 27 Сентября 2013 Поделиться Опубликовано 27 Сентября 2013 @Pro100 Moder, в файле скрипта смени кодировку на ANSI. Ссылка на комментарий
AndrewMor 527 Опубликовано 27 Сентября 2013 Поделиться Опубликовано 27 Сентября 2013 (изменено) Главным условием, чтобы ты в игре увидел своих заспавненных неписей является или независимость твоих неписей от гулагов ("smart_terrains = none") Что-то я не совсем понял. У меня заспавнены неписи через all.spawn, приписаны к своему смарту. Вот и надо мне, чтобы при их смерти происходил респавн. А как понять - smart_terrains = none? Попробую объяснить, что я сдедал: 1. заспавнил НПС через all.spawn. 2. приписал их к смарту. 3. прописал им логику. 4. вписал их в character_desc_имя локи и сделал свой профиль. И вот чтобы при их смерти спавнились новые (другие), сделать-то нужно что? 1. респавнер. 2. прописать их в character_desc_simulation. 3. вписать в spawn_section. 4. создать профиль. Это все или я не совсем правильно понимаю и нужно сделать что-то еще? Изменено 27 Сентября 2013 пользователем AndrewMor Сталкер - наше всё! Ссылка на комментарий
Malandrinus 615 Опубликовано 27 Сентября 2013 Поделиться Опубликовано 27 Сентября 2013 (изменено) WERTOix, диалог заканчивается срабатывает бреак, затем акцион и непись удаляется! Как думаешь сработает? Или что-то с офлайном мудрить придется Лучше не пытаться удалять непися прямо из диалога. Попробовать конечно никто не мешает.Вот нашёл. Требовалось обеспечить появление предмета по условию. Предмет исходно был в аллспавне. Я прописывал в кастомдату объекта вот такое условие: custom_data = <<END [spawner] cond = {+<инфопорция для выхода в онлайн>} END Вроде как работало. Для неписей под смартом условие прописывается в поле online соответствующей работы.Тогда в диалоге надо просто выдать/забрать во фразе нужную инфопорцию и непись уйдёт своим ходом в оффлайн.С точным рецептом здесь могу и ошибаться, поскольку давно делал да и тогда глубоко не вникал. Изменено 27 Сентября 2013 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Fireball.Stalker 1 Опубликовано 27 Сентября 2013 Поделиться Опубликовано 27 Сентября 2013 Ребята! Как сделать новую модель артефакта (с уже существующего) с новой текстурой? Заранее извините за глупый вопрос Ссылка на комментарий
_Val_ 2 225 Опубликовано 27 Сентября 2013 Поделиться Опубликовано 27 Сентября 2013 @Fireball.Stalker, как вариант прописать новую текстуру прямо в модели, открыв её Нотепадом++. Название должно содержать такое же количество знаков, как и старое. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти