mister_cow может не правильно работать, не так как ты хотел. Тот предмет может спауниться у всех НПС. ВариантVOva-VIP мне больше нравиться тот что постом выше.
Пока тебя мажут свои качели, качает каждого ЦАО production. Хотя становимся старше иногда так страшно проснуться взрослым однажды.
АРКОТ Дык не робит, как я не пытался.
В детх женереке прописал,
в чарактер_деск тоже,
в спавн секшнс кастом дату прописал и туда с логикой вписал.
Ничего
1. death_generic.ltx - отвечает за привязку патронов к оружию;
2. death_items_by_communities.ltx - отвечает за вероятность заспаунить предметы или нет для каждой группировки. Секция [stalker] - значения по умолчанию;
3. death_items_by_levels.ltx - отвечает за возможность появления в инвентаре предметов в зависимости от локации (т.е. можно запретить появление определённых предметов на конкретной локации вне зависимости от группировки);
4. death_items_count**5001618d69873ce82a42**
отредактировал(а) ColR_iT: 24-02-2012 14:02 GMT3 час. Те мнения, которые пишутся с ошибками, не воспринимаются как умные…
Лучше иной раз тупить, но умным быть, чем постоянно умничать, но быть тупым.
Все, кто еще говорит «ИХНИЙ», будут гореть в аду!
mister_cow Ты если не понял, то покажи как ты создал кастом дату и как все вписал. Я тебе показал свой пример для спавна скриптовому неписю документа. Я заспавнил скриптом непися и через кастом дату вписал ему то, что обычно спавнишь через all.spawn т.е.
[spawn]
Опять же НИ нужна, даже если он скриптовый. НИ не нужно, если ты создал весь его профиль и прописал кастом дату и этот твой документ ему в спавн.
Как здорово быть тёртым сталкером! Не бояться каждого шороха, оружия не носить с собой много!
#крысобелка :
Что означает этот лог:
Description : Invalid source num channels:
Arguments : d:\games\s.t.a.l.k.e.r 1.6\gamedata\sounds\music\echo-10.ogg
сделаю копию этого файла один назови echo-10_r второй echo-10.ogg_l
это кажется дело в этом
Arist
Функция relocate_item_section работает следующим образом:
Принимает три аргумента:victim, section и type.
Параметр type принимает два значения: "in" и "out" и соответс**50096c9725ff35736f77**ode]if quest_section[section] == true and
victim:object(section) ~= nil
then
victim:transfer_item(victim:object(section), db.actor)[/code]Сверяем с глобальной таблицей quest_section из файла _g.script, что секция нашего предмета соответствует одному из элементов, а также проверяем есть ли предмет с данной секцией у объекта, в данном случае переданного параметром victim.
Если же совпадений не найдено, т.е. в данной таблицы такой записи нет, то предмет будет не передаваться от НПС игроку, а спавнится у актора в инвентаре.
Поэтому, здесь несколько вариантов: либо прописать твой предмет в глобальную таблицу квестовых предметов, в файле _g.script (таблица находится в самом низу файла), либо передавать предмет вот такой функцией:
[code]function transfer_items_from_npc (victim, section)
-- Существует ли актор и объект
if db.actor and victim then
-- Проверим, а объект случаем не актор?
if victim:id() ~= -1 then
-- Нет, не актор.
-- А есть ли нужный предмет у объекта?
if victim:object(section) ~= nil then
-- Предмет есть и мы его передаём актору.
victim:transfer_item(victim:object(section), db.actor)
end
end
end
end[/code]
Функцию вызывать из реплики оппонента.
В таком случае предмет будет именно передаваться.
Те мнения, которые пишутся с ошибками, не воспринимаются как умные…
Лучше иной раз тупить, но умным быть, чем постоянно умничать, но быть тупым.
Все, кто еще говорит «ИХНИЙ», будут гореть в аду!
У меня появилась проблема странная с НПС, когда они ударяют тебя, если долго пытаться поговорить с оружием.
Дело в том, что ударять стали только единицы НПС, многие просто не ударяют, просто говорят, что с оружием говорить не будут, и у некоторых даже вылетает (ошибка указывает на 20 строку _g скрипта).
Вот например с Волком если так делать, то вылетает. Например долго пытаюсь с ним с оружием на руках поговорить. Он просто ничего не делает, но если я отойду от него примерно на 15 метров, то вот тогда и происходит вылет.
С чем это может быть связано? Можно ли как-нибудь хотя бы просто избежать вылета? (кроме того, что в каждой логике ставить use_wpn = true)
отредактировал(а) VOva-VIP: 24-02-2012 20:17 GMT3 час.
Те мнения, которые пишутся с ошибками, не воспринимаются как умные…
Лучше иной раз тупить, но умным быть, чем постоянно умничать, но быть тупым.
Все, кто еще говорит «ИХНИЙ», будут гореть в аду!
Те мнения, которые пишутся с ошибками, не воспринимаются как умные…
Лучше иной раз тупить, но умным быть, чем постоянно умничать, но быть тупым.
Все, кто еще говорит «ИХНИЙ», будут гореть в аду!
Здравствуйте.
При загрузке ста**50016c9725ff35736f77**to concatenate field '?' (a nil value)
[/code]
в этом файле на этой строчке находится вот что:
[code]get_console():execute("g_game_difficulty "..game_difficulty_by_num[game_difficulty])[/code]
mister_cow, покажи целиком функцию, где идёт инициализация таблицы game_difficulty_by_num.
Те мнения, которые пишутся с ошибками, не воспринимаются как умные…
Лучше иной раз тупить, но умным быть, чем постоянно умничать, но быть тупым.
Все, кто еще говорит «ИХНИЙ», будут гореть в аду!
#VOva-VIP :
Киньте тутор или подскажите: как осуществить respawn через all.spawn?
Respawn NPC.
Для создания респавна NPC, понадобится два файла: all.spawn и spawn_section.ltx.
Это минимальный набор. Для полной настройки респавнера, нужны ещё character_desc_simulation.xml и npc_profile.xml.
1. В all.spawn создаём секцию респавнера:
[10000]
; cse_abstract properties
section_name = respawn
name = имя респавнера
position = координаты (x,y,z)
direction = 0,0,0
Где:
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. В файле spawn_section.ltx, создаём респавн-секции:
Где:
esc_urody_respawn_1 id респавн-секции.
sim_urody_novice и sim_urody_regular классы профайлов нпс.
novice и regular ранги нпс.
bandit группировка нпс.
3. В файле npc_profile.xml регистрируем классы sim_urody_regular и sim_urody_novice
sim_urody_regular
sim_urody_novice
4. Создаём профили, в файле character_desc_simulation.xml, с классами sim_urody_regular и sim_urody_novice и группировкой bandit. Respawn монстров.
В принципе, респавн мутантов идентичен респавну нпс. Но с одним лишь отличием, которое его значительно упрощает. Вся настройка респавна мутантов, ограничивается секцией в файле "all.spawn". Вписываем секцию респавнера, как указано в -RESPAWN NPC-. Все настройки идентичны, кроме строки respawn_section = . В ней прописываем типы мутантов, из файла "se_respawn.script". Такие как flesh_weak, flesh_normal, dog_weak, boar_strong, и т.д..
ОБЩИЕ НАСТРОЙКИ.
Обязательные условия респавна:
1. На локации обязательно должен быть хоть один гулаг для респавнящихся NPC и мутантов, так как количество NPC для респавна, ориентируется по доступным местам в гулагах.
2. Респавн производится, только если под гулагами есть доступные работы.
3. На каждой локации, респавн ограничен определёнными типами неписей. Данные ограничения установлены в файле misc\smart_terrain_presets.ltx. Чтобы сделать возможным респавн неписей, не предусмотренных на данной локации. Надо в указанном файле, в секции нужной локации, дописать требуемые типы неписей.
Для проверки созданного респавнера, можно не ждать когда сработает системный респавн, а вызвать принудительно респавн в нужной секции. Для этого, прописываем в любой логике, вызов функции %=respawner_spawn(имя респавнера)%. Где, "имя респавнера" - имя секции, созданной в файле all.spawn. Скобки обязательны.
Например, можно создать рядом с зоной респавнера, временный рестриктор. И в кастом дате рестриктора, прописать вызов функции принудительного вызова респавна, в нужном респавнере, при входе ГГ в зону рестриктора:
2. Затем, в файле game_story_id.ltx регистрируем story_id ящика. (выбираем любое свободное число).
3. Создаём респавнер в файле all.spawn. Координаты и размеры зоны респавнера, должны быть такими, чтоб инвентарный ящик поместился внутри зоны респавнера:
[10001]
; cse_abstract properties
section_name = respawn
name = имя_респавнера
position = координаты x,y,z
direction = 0,0,0
Где:
respawn_section = список вещей респавна, в виде их спавн - секций. Как и в респавнерах неписей, возможна прописка соотношений между вещами.
Например: respawn_section = wpn_pm,2, vodka,2, medkit,1, energy_drink,2, ammo_9x18_fmj,3
idle_spawn = тип спавна. Инвентарь не имеет типов спавна, поэтому ставится (-1).
parent = Story_id инвентарного ящика (из game_story_id.ltx), в котором производить респавн вещей .
item_spawn = (true\false) возможность включения и отключения респавна. Можно задавать условия, например инфопоршнем или функцией (разумеется прописанной в xr_conditions.script).
max_count = количество респав-циклов за определённый период времени. (Пока ГГ находится на локации. После перехода ГГ на другую локацию, счётчик сбрасывается).
4. Создаём вызов респавна. Обычно вызов производится из smart_terrain. В "custom_data" любого подходящего smart_terrain, под секцией [smart_terrain], вписываем вызов респавна:
[smart_terrain]
respawn = имя респавнера
И респавн будет производиться, при каждом пополнении нпс, под данным смартом.
; cse_abstract properties
section_name = physic_destroyable_object
name = esc_surprise_box_012
position = -186.322723388672,-21.6794471740723,-131.523406982422
direction = 0.0713645741343498,-0.00591489719226956,0.0827646702528
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.