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

[CoP] Ковыряемся в файлах


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

andref, я никогда не видел, чтобы пысы спавнили НПС скриптом, они все делали через СДК, разве что скорее всего логику меняли вручную.

YouTube Shoker Team

ShWM 2.1

РикошеТ aka LanceW

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

andref, самый простой способ спавна уникального НПСа (на мой взгляд):

В алл.спавне создаем секцию

[5895]

; cse_abstract properties

section_name = stalker

name = jup_a12_stalker_prisoner ;имя сталкера

position = 132.294921875,-4.74485778808594,20.3684597015381;координаты места спавна

direction = 0,0,0;поворот НПСа

 

; cse_alife_trader_abstract properties

money = 5000

character_profile = jup_a12_stalker_prisoner ; секция сталкера из character_desc_....ltx

 

; cse_alife_object properties

game_vertex_id = 2721;гейм вертекс

distance = 12.5999994277954

level_vertex_id = 36323;левел вертекс

object_flags = 0xffffffff

custom_data = <<END

[logic]

cfg = scripts\l05_bar\bar_barman.ltx;путь к файлу логики

[game_info]

END

 

; cse_visual properties

visual_name = amk\mar_yej;путь к визуалу НПСа

 

; cse_alife_creature_abstract properties

g_team = 0

g_squad = 0

g_group = 0

health = 0

dynamic_out_restrictions =

dynamic_in_restrictions =

 

upd:health = 1

upd:timestamp = 0

upd:creature_flags = 0

upd:position = 132.294921875,-4.74485778808594,20.3684597015381;координаты места спавна

upd:o_model = 0

upd:o_torso = 0,0,0;поворот НПСа

upd:g_team = 0

upd:g_squad = 0

upd:g_group = 0

 

; cse_alife_monster_abstract properties

 

upd:next_game_vertex_id = 65535

upd:prev_game_vertex_id = 65535

upd:distance_from_point = 0

upd:distance_to_point = 0

 

; cse_alife_human_abstract properties

predicate5 = 0,0,1,1,2

predicate4 = 0,0,2,0

 

; cse_ph_skeleton properties

 

upd:start_dialog =

 

; se_stalker properties

 

 

Дальше сам НПСу напишешь логику.

 

 

malandrinus, да, в алл.спавне сталкер так создастся. Да, там ни одного живого существа, но есть смарт терейны, в которые все НПСы в ЗП прописываются через сквады.

Изменено пользователем PavelSnork
Жду ли я Сталкер 2? Хм...
Ссылка на комментарий
Я извиняюсь, если это уже обсуждалось, но тут один вопрос возник - как в ЗП осуществляется спавн NPC? Просто в all.spawn нет ни одной секции сталкеров.
я никогда не видел, чтобы пысы спавнили НПС скриптом, они все делали через СДК, разве что скорее всего логику меняли вручную.

С одной стороны, в движке существенных изменений нет. Все базовые функции, конфиги и т.д. остались по большей части без изменений. Т.е. скорее всего ничего не мешает добавить в all.spawn сталкера и скорее всего он создастся. С другой стороны, сейчас там на самом деле нет ни одного живого существа (кроме актора=). Все сталкеры, в том числе и квестовые, прописаны в сквадах. Сквадов в all.spawn в свою очередь тоже нет. Похоже, что создание сквадов теперь завязано на скриптовую логику. Но я в этом не большой спец, так что с уверенностью сказать этого не могу.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

Вот интересно... почему неписи избегают некоторых смарт_каверов?

У меня в одном смарт _террейне создано 5 смарт_каверов и спавнится 3 симулянта.

+ из другого смарта туда движется сквад из 4 -х НПС Так вот,из симулянтов двое остаются,а третий уходит(несмотря на 3 свободных кавера)

Потом из сквада 1 НПС теряется по дороге(тупо разворачивается и идёт куда глаза глядят), двое занимают смарты, а последний тупо садится рядом и принимает позу "безработного"(т.е. один смарт_кавер остаётся не занятым)

Ладно бы что-то со смарт_кавером было не то,но из нескольких десятков запуска игры раза два-три НПС там "застревали" т.е. всё ок.

Изменено пользователем Larry76
Правильно заданный вопрос- уже половина ответа!
Ссылка на комментарий

Тоже баловался с добавлением сидящих анимаций sit, sit_ass и sit_knee. Сравнил с наработками nikula - почти всё сходится. Единственное, что хочется добавить - необходимо взять секцию гитары из ЧН и добавить в items.ltx ЗП, переименовав её в guitar_b, например. Ну и прошерстить геймдату при помощи тотал командера и добавить новую гитару везде, где имеется guitar_a (торговля, death_manager, в профили неписей - character_items, ну и в m_stalker, в attachable_items=). А так же, в xr_animpoint_predicates.script добавить проверку наличия её у неписи в инвентаре. Ну и естественно прописать в аттач-детач в скрипт анимаций. Дело в том, что неписи в ЗП гитару держат под другим углом и смотрится мягко говоря не очень. В ЧН же угол держания гитары неписями, как раз подходит для вышеуказанных добавляемых анимаций. С едой и напитками ничего делать не надо.

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

SanekKZNПро гитару это верно... А можно поподробней как это сделать?

И ещё,с добавлением аннимации "sit, sit_ass и sit_knee" всё ок,только непися разворачивает на 180 градусов,приходится дирекшн опять методом тыка подбирать.

Кстати как полегче подобрать? Я пытаюсь понять логику,но до меня никак не доходит. Вроде бы только среднее значение 0 +\- 3.0 но что то не совсем соответствует.

Изменено пользователем Larry76
Правильно заданный вопрос- уже половина ответа!
Ссылка на комментарий
С другой стороны, сейчас там на самом деле нет ни одного живого существа (кроме актора=). Все сталкеры, в том числе и квестовые, прописаны в сквадах. Сквадов в all.spawn в свою очередь тоже нет. Похоже, что создание сквадов теперь завязано на скриптовую логику. Но я в этом не большой спец, так что с уверенностью сказать этого не могу.

А сквады в свою очередь приписаны к смарт-террейнам :) И спавн прописывается в их конфигах.

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

Larry76, подробнее конечно можно.

Архив со всеми тремя сидячими на земле анимациями и добавленным конфигом гитары: http://slil.ru/29273596

А вот почему их развернуло на 180 градусов, даже не представляю себе. Может кто из знающих подскажет, где копать?

Самое интересное, что в том анимпойнте, где direction = 0,0,0 (на север), всё нормально.

5e6b69661e68cbcc2f98b67c44dfe65f.jpg09879d102448d14d23188d2fd2e7b3ac.jpg

Вот тот, который на первом скрине с гитарой, сидит в анимпойнте с dsirection = 0,0,0. У двух других 0,-0.8,0 и 0,0.8,0 - соответственно (ну это так, на глаз подгонял). При использовании стандартного sit_low - все трое сидели мордами лица к костру, всё было правильно. А сейчас вот такая картина...

Изменено пользователем SanekKZN
Ссылка на комментарий

nuklia,

Правда подключаю

локации в СДК и не приходистя пересчитывать гейм-вертексы, как при

использовании проги от АМК.

Интересно узнать, каким СДК ты подключаешь напрямую локации к ЗП?

Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет!

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

Kostya V СДК для ТЧ, третий патч, набор утилит Бардака от 10сентября 2008,

Все описано на первых страницах темы "Перенос и создание карт"

 

SanekKZN направление зависит от самих наборов анимаций, находящихся в

файлах ....._animations.omg с которых в скриптах собираются сценки.

Дирекшн смарт-кавера подгоняйте от нулевых добавлением к средней координате

+-3,14 - соответствует 180 градусов.

Изменено пользователем nuklia
Ссылка на комментарий

SanekKZN У меня с твоими добавленными анимациями и конфигом гитары вылетает... :(

Вроде пофайлам пробежался,перед тем как ставить,ничего подозрительного не увидел <_<

Loading objects...

 

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CInifile::r_section

[error]File : D:\prog_repository\sources\trunk\xrCore\Xr_ini.cpp

[error]Line : 502

[error]Description : <no expression>

[error]Arguments : Can't open section 'amk_metka'. Please attach [*.ini_log] file to your bug report

 

 

stack trace:

 

 

 

У меня ЗП с добавленными болотами и кордоном.

Изменено пользователем Larry76
Правильно заданный вопрос- уже половина ответа!
Ссылка на комментарий

А это всё, что я скидывал для чистой 1.6.02 и никаких модификаций у меня не было. Подключены все локи из ЧН, но здесь они никак не затронуты. Могу предположить, что где-то затёрлась моими конфигами amk_metka (скорее всего, в items.ltx).

nikula, то есть, если 3.14 - это 180 градусов, то 1.57 в данном случае будет 90 градусов? Или я неправильно понял?

А, всё, спасибо большое, разобрался. Действительно всё так.

Изменено пользователем SanekKZN
Ссылка на комментарий

подскажите,как добавить метку на НПС?

напрмер,я создал спейс_рестриктор,при заходе в который появляется сообщение "поговорить с командиром блокпоста" Как на командира после этого повесить квестовую метку?

Правильно заданный вопрос- уже половина ответа!
Ссылка на комментарий
Larry76, оформи в виде квеста. Создай квест, в поле target укажи story_id командира блокпоста. При взятии квеста (по заходу в рестриктор у тебя, судя по всему) на него установится метка.
Ссылка на комментарий

KD87 Я в теории это представляю... что-то подобное читал. Но мне на примере объяснил бы кто.

А то я "очень хорошо" ЛУА знаю... :D (что-нибудь типа урока... -_- )

Можно даже вообще как при начале игры-Сообщение: "осмотреть вертолёты" и раз, метка появилась. Только не на объекте,а на НПС.(это если без рестриктора)

Изменено пользователем Larry76
Правильно заданный вопрос- уже половина ответа!
Ссылка на комментарий

Larry76, НУ вот тебе пример:

 

[esc_trader_job]

icon = ui_iconsTotal_esc_trader_job ; иконка

prior = 0 ;приоритет

storyline = true ;сюжетный ли

title = esc_trader_job ;название

descr = esc_trader_job_text ;описание

target = escape_trader ; тут пишется сид твоего коммандера

condlist_0 = {+agroprom_military_case_done} complete ;условие завершения

 

[logic]

active = sr_idle

[sr_idle]

on_actor_inside = {-esc_trader_job_start} sr_idle@nil %+esc_trader_job_start =give_task(esc_trader_job)%

[sr_idle@nil]

 

 

 

Larry76, однако :). А если внимательно присмотреться, можно увидеть, как в рестрикторе, если нет поршеня esc_trader_job_start (означающий начало квеста), выдается задание esc_trader_job. А в нем как раз и прописана цель квеста - мужик.

Пример поправил, сделал попроще.

 

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

Изменено пользователем KD87
Ссылка на комментарий

KD87Извини конечно... но "мая тупой"... давай по полочкам?Если не трудно.

ГГ спавнится у ворот дальнего блокпоста(где спавнился Прибой Слипченко в "Прибой стори") Начинает движение в сторону блокпоста,попадает в рестриктор

По твоей логике он получает инфопоршен ,а где команда на то,что на командира блокпоста повешена метка?? Или при получении этого инфопоршня сработает скрипт квеста,где прописано

target = escape_trader

И метка появится?

 

P/S Решил сначала сделать квест,а уж потом с метками разобраться. Сделал как тут- http://www.amk-team.ru/forum/index.php?showtopic=8806

Но ловлю вылет.

FATAL ERROR

 

[error]Expression : no_assert

[error]Function : CXML_IdToIndex<class CPhraseDialog>::GetById

[error]File : D:\prog_repository\sources\trunk\xrServerEntities\xml_str_id_loader.h

[error]Line : 112

[error]Description : item not found, id

[error]Arguments : vodka_quest_dialog

 

 

stack trace:

 

 

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

Изменено пользователем Larry76
Правильно заданный вопрос- уже половина ответа!
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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