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

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


Halford

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

Здравсвуйте, я создавал npc по эому уроку

Создание НПС

 

Для того, чтобы создать нового НПС нам понадобятся координаты нужного места, где и будет заспаунен наш NPC. Возьмём Кордон, лагерь новичков. Можете снять координаты сами, а можете взять мною уже снятые: (-218.20,-20.2,-145.63),35362,47). Далее. Создаём файл в папке gamedata/scripts файл, скажем esc_unik_npc.script. В нём создаём функцию. Код: function esc_unik_npc () alife():create("esc_unik_npc",vector():set(-218.20,-20.2,-145.63),35362,47) end

 

Теперь мы в файле npc_profile.xml (в папке gameplay) добавляем нашего НПС. Код: <character id="escape_trader"> <class>Trader</class> <specific_character>escape_trader</specific_character> </character>

 

<character id="esc_unik_npc"> <class>esc_unik_npc</class> <specific_character>esc_unik_npc</specific_character> </character>

 

Копируем или создаём по образцу только нижний блок Второго торговца нам ненадо. Теперь моздадим секцию нашего персоонажа. В файле spawn_section.ltx (gamedata/config/creatures) в блоке:

 

--------Escape--------------

--------neutrals------------

 

Создаём секцию. Код: [esc_unik_npc]:stalker $spawn = "respawn\esc_unik_npc" character_profile = esc_unik_npc spec_rank = regular community = dolg

 

В строке community можете вместо долга вписать другую группировку. Однако если мы хотим, чтоба наш персоонаж не гулял по Зоне, пока не наткнётся на первуюю аномалию, то пропишем чтобы он стоял на месте. Для этого под community вставляем: custom_data = scripts\esc_unik_npc.ltx Далее создаём в gamedata/config папку scripts в в папке создаём файл esc_unik_npc.ltx В наш созданый файл вставляем: Код: [logic] active = remark1 danger = danger_ignore

 

[danger_ignore] ignore_distance = 5

 

[remark1] no_move = true

 

Всё наш НПС будет стоять на месте своего спауна. Едем дальше. Нам надо активировать нашего персоонажа. для этого мы должны вставить строку: <action>esc_unik_npc.esc_unik_npc</action> Либо в диалог, либо в какой-нибудь квест. Давайте вставим строку в файл info_portions.xml (gamedata/gameplay) под Код: <game_information_portions>

 

<info_portion id="storyline_actor_start">

<task>storyline_eliminate_gunslinger</task>

 

Выклядеть это будет так:

 

Код: <game_information_portions>

 

<info_portion id="storyline_actor_start">

<task>storyline_eliminate_gunslinger</task>

<action>esc_unik_npc.esc_unik_npc</action>

</info_portion>

 

Однако мы не прописали самого НПС, как личность В файле character_desc_escape.xml (gamedata/gameplay) добавляем: Код: <specific_character id="esc_unik_npc" team_default = "1"> <name>GENERATE_NAME_bandit</name> <icon>ui_npc_u_stalker_bandit_3</icon> <bio>esc_wolf_bio</bio>

 

<class>esc_otbrosi_1</class> <community>dolg</community> <terrain_sect>stalker_terrain</terrain_sect>

 

<rank>367</rank> <reputation>-60</reputation> <money min="600" max="2000" infinitive="1"/>

 

<snd_config>characters_voice\human_01\monolith\</snd_config> <crouch_type>-1</crouch_type>

 

<visual>actors\bandit\stalker_bandit_3</visual> <supplies> [spawn] \n

 

wpn_groza \n

 

ammo_9x39_pab9 \n

 

1. include "gameplay\character_items.xml" \n

2. include "gameplay\character_food.xml"

 

</supplies>

 

1. include "gameplay\character_criticals_3.xml"

 

1. include "gameplay\character_dialogs.xml"

 

</specific_character>

 

Правда тут получится у нас долговец в одежде бандита и говорящего голосом монолитовца xD Всё сохроняем. НПС готов.

 

Но так же можно добавить нашему НПС диалог) Как добавлять диалоги написано в нашем факе) Если хотяте сделать нашему НПС своё имя то в файле stable_bio_name.xml (gamedata/config/text/rus) добавляем: Код: <string id="esc_unik_npc"> <text>Факер-мазафакер</text> </string>

 

А в файле сharacter_desc_escape.xml (gamedata/gameplay) находим нашего уже прописаного НПС и вставляем в секцию <name></name> (у нас в ней написано GENERATE_NAME_bandit) esc_unik_npc Всё Поздравляю)

 

 

 

но постоянно происходит вылет

***FATAL***: Too many lmap-textures (limit: 8 textures or 32M).

Reduce pixel density (worse) or use more vertex lighting (better).

* phase time: 454 ms

* phase cmem: 259219 K

Клиент: Синхронизация...

* phase time: 17 ms

* phase cmem: 259219 K

* [win32]: free[1382328 K], reserved[47640 K], committed[667120 K]

* [ D3D ]: textures[58105 K]

* [x-ray]: crt heap[259219 K], process heap[6939 K], game lua[25905 K], engine lua[250 K], render[0 K]

* [x-ray]: economy: strings[3717 K], smem[28221 K]

 

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CInifile::r_section

[error]File : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp

[error]Line : 342

[error]Description : <no expression>

[error]Arguments : Can't open section 'esc_unik_npc'

 

 

stack trace:

 

 

 

подскажите, что я делаю не так?

Поделиться этим сообщением


Ссылка на сообщение

Здравствуйте. Знаете в каморке у Сидоровича стоит синий сундук? Обычно он пустой, но мне нужно сделать его квестовым тайником. Унего существует своя секция в treasure_manager.ltx, если нет то как её туда прописать, чтобы тайником стал именно этот ящик?.

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

Поделиться этим сообщением


Ссылка на сообщение

Добрый день. Долго думал куда с этим вопросом податься, решил сюда. Очень мне понравилась погода из мода Исполнитель желаний (ABC). Как я понял она там динамическая и управляется скриптом. Кто-нибуть знает какие скрипты отвечают там за смену погодных эффектов?

Поделиться этим сообщением


Ссылка на сообщение

Меня не сам мод интересует, а принцип действия, чтобы иметь возможность редактирования.

Поделиться этим сообщением


Ссылка на сообщение
Kirag, по поводу погоды. Всё что смог понять из скрипта абц - это то, что они использовали рандом, от двух до четырёх вариантов, которые прописаны в конфигах отдельными файлами (weather_default, weather_default1, weather_default3 и так далее). Ты не мог бы помочь мне и написать функцию смены погоды, чтобы я мог пользоваться ею как образцом?

Поделиться этим сообщением


Ссылка на сообщение
Biler, ты не прав, координаты в инвентаре как раз таки не причём. Проверяй координаты из файла где ГГ в полный рост стоит, а картинка в инвентаре уже подстраиваится сама под размер ячеек которые ты забил в inventory_new (параметр <dragdrop_outfit).

Поделиться этим сообщением


Ссылка на сообщение
Biler, я наверное не в ту сторону выразился, в общем так, если у тебя картинка неровно отображается (обрезана) проверяй координаты из ui_icons_npc.xml, инвентарь тут не причём, ты просто координату неровно с текстурки снял.

Поделиться этим сообщением


Ссылка на сообщение

Viper, если ты про выброс от АМК, то тебе сюда => \gamedata\config\blowout.ltx

параметр time время между выбросами в игровых минутах.

 

Текстура хитмарка - gamedata\textures\ui\ui_hud_hit_mark.dds, можно нарисовать какой угодно.

Кстати в оригинале их аж 18 штук, и все разные, там, что каждый хитмарк соответствует определённому типу урона?

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

Поделиться этим сообщением


Ссылка на сообщение

Desertir, а используется только одна текстура? (остальные закоментированы)

 

Интересно, а если например сделать файл ui_hud_hit_mark.seq и в нём прописать текстуры различных хитмарков (ui_hud_hit_mark_01, ui_hud_hit_mark_02 и т.д.) будет работать? А вместо "стрелочек" можно например брызги крови нарисовать, ну это уже не потеме.

Поделиться этим сообщением


Ссылка на сообщение

Поделиться этим сообщением


Ссылка на сообщение
Dennis_Chikin, это вам с логикой надо работать, прописать две схемы: 1-я непись занимается своими делами (любыми), 2-я включается по инфопоршню в определённый момент, как этот инфопоршень выдать зависит от вашей фантазии (будь то диалог, либо взятие\сдача квеста или ещё как). И ещё попробуйте обратиться в тему "Логика нпц".

Поделиться этим сообщением


Ссылка на сообщение

Layer321, Полтергейст, зачем человека путаете? Там же всё просто как 2х2.

Leshik, посмотри в секции ГГ (в аллспавне) должна быть строчка [spawn], и после неё записаны предметы, которые спавнятся у ГГ при старте игры. Никаких запретов там нет! Если нужно добавить какой либо предмет при старте игры, нужно: переходиш на следущую строку и дописываеш название предмета (название как он, предмет, прописан в конфигах!). Всё, собираеш аллспавн и начинаеш новую игру.

 

Поделиться этим сообщением


Ссылка на сообщение

FANAT,

И ещё, где и как можно сделать в ПДА, в пункте Справка/ новую вкладку типа Аномалии или Артефакты ?

 

почитай

Поделиться этим сообщением


Ссылка на сообщение

FANAT, всё понял, в общем ничего сложного, создаёшь свой файл, например gamedata\config\gameplay\encyclopedia_fanat.xml, заполняешь его по аналогии с другими файлами энциклопедии (думаю разберёшся, не сложнее чем с диалогами). И ещё надо в system.ltx прописать свой новый файл в секции [encyclopedia] через запятую.

 

Русские тексты можно наверное тоже в отдельный йфайл записать string_table_enc_***.xml и зарегестрировать в localization.ltx

 

 

Вообще где прописат новый group

 

Вроде как тоже прописывается тег из encyclopedia_***.xml в string_table_enc_***.xml, т.е. group="Artifacts" - это

<string id="Artifacts">

<text>Артефакты</text>

</string>

 

А если тебе в "Журнал" надо статьи добавить, то надо в солянке посмотреть или в нлс, думаю принцип тот же.

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

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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