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

Создание нового НПС


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

(изменено)
Всё наш НПС будет стоять на месте своего спауна. Едем дальше. Нам надо активировать нашего персоонажа. для этого мы должны вставить строку:

<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>

как я понял storyline_eliminate_gunslinger это в ТЧ. А каким квестом активировать в ЧН? чтоб в любой момент он уже соспавнился.

P.S. основные квесты на кордоне я прошёл (это те которые связаны с вояками и хабаром Сидора)

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

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


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

Здравствуйте великие умы форума АМК! Можете сделать урок по созданию НПС в ЧН. Я пробовал а ничего не получается.

Объясните всё по крупиночкам языком ламеров :) что из себя представляет конфиг НПС в игре. (какие файлы за это отвечают + ещё подробная теория)

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


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

pastor, необязательно если его нет и не вылетела правильно. Допустим ты в пути к визуалу допустил ошибку или впихнул ему такой предмет, которого нет в игре, либо допустил ошибку в его логике. Игра не вылетет, но в момент его спавна (экшеном из диалога например) игра вылетет

проверено на собственном опыте! ;)

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


Ссылка на сообщение
(изменено)

Моя инструкция по спавну NPC через скрипт в ЧН

(опишу всё довольно понятно)

Чтож приступим :)

для начала берём файл:

gamedata\configs\gameplay\character_desc_***.xml (*** - имя локации, но это не важно т.к. например прописали мы нашего нпс в character_desc_escape.xml, его спокойно можно будет спавнить через скрипт скажем на болотах.)

в этот файл в самом конце есть тэг <xml> и теперь ПЕРЕД НИМ вставляем "основу":

<specific_character id="esc_nash_npc" team_default = "1">
<name>esc_nash</name>
<icon>ui_npc_vlad</icon>
<map_icon x="1" y="0"></map_icon>
<bio>Новичок.</bio> 
<class>esc_nash_npc</class> 
<community>freedom</community>  
<terrain_sect>stalker_terrain</terrain_sect> 
<snd_config>characters_voice\human_02\freedom\</snd_config>
<rank>50</rank>
<reputation>13</reputation>
<money min="0" max="1400" infinitive="0"/>
<visual>actors\stalker_monolith\stalker_monolith_2</visual>

<supplies>
[spawn] \n
device_torch \n
wpn_pb \n
ammo_9x18_fmj = 2 \n
</supplies>
</specific_character>

 

<specific_character id="esc_nash_npc" team_default = "1">

<name>esc_nash</name> - имя можно указать GENERATE_NAME_stalker, GENERATE_NAME_bandit... тогда будет генериться случайное имя, но у нас есть определённое имя - esc_nash. куда с ним дальше объясню позднее

<icon>ui_npc_vlad</icon> иконка нашего при обыске и шмоне трупа (объясню позднее)

<map_icon x="1" y="0"></map_icon> - хз что такое, по походу иконка на карте

<bio>Новичок.</bio> - абсолютно нигде не учавствует (в билде 1935 это можно было читать по ПДА)

<class>esc_nash_npc</class> - класс (объясню и создадим позднее)

<community>freedom</community> - группировка к которой принадлежит наш НПС (можно указать stalker, freedom, monolith ect.)

<terrain_sect>stalker_terrain</terrain_sect> - smart-terrain (так и указывать stalker_terrain)

<snd_config>characters_voice\human_02\freedom\</snd_config> (голосовой конфиг. распакуйте файл Localization\xrussian.db. ВНИМАНИЕ!!! если указать конфиг вояк и наш НПС будет другом, то будут вылеты - у вояк какогото там звука нету)

<rank>50</rank> - ранг (от 0 до 1000) вроде распределяется как новичок, опытный, мастер, ветеран,...

<reputation>13</reputation> - репутация (от 0 до 1000) репутация как на форуме АМК - у кого больше тот главнее (шутка). От неё зависит ВРОДЕ за сколько мы будем сдавать ему хабар и он нам.(т.е. если у него выше, то мы ему дёшево будем, а он нам дорого)

<money min="0" max="1400" infinitive="0"/> - шальные наличные. min="0" самый минимум который может у него быть, max="1400" и так понятно. поставив infinitive="1" у него будут бесконечные (например у торговцев ---)

<visual>actors\stalker_monolith\stalker_monolith_2</visual> - путь до модели "визуала" - любой файл в папке GAMEDATA\meshes\actors ну и соотв в подпапках.

<supplies> - открывает "снабжение"

[spawn] \n - это не трогаем

device_torch \n \\\\ сюда можно добавлять свое к примеру чтоб выдать НПС АК74, пишем ему строку wpn_ak74 \n

wpn_pb \n

ammo_9x18_fmj = 2 \n

</supplies> - закрывает"снабжение"

</specific_character>

 

 

Далее:

открываем gamedata\configs\creatures\spawn_sections_***.ltx (*** - имя локи. как и в предидущем случае неважно)

добавляем:

;наш персонаж
[esc_nash_npc]:stalker; Здесь esc_nash_npc - что вместо этого напишем, то и пропишем для спавна. или это сам класс нпс (в профиле его <class>esc_nash_npc</class>)
$spawn = "respawn\esc_nash_npc"
character_profile = esc_nash_npc; то,  что мы прописали в character_desc_*** (<specific_character id="esc_nash_npc"...)
spec_rank = veteran;ранг. на этот раз не цыфрами а словами (master, veteran...)
community = freedom;опять группировка. хотя если вы в профиле указали скажем freedom, а тут stalker, то вылета не будет
custom_data = scripts\escape\esc_nash_npc.ltx; custom data (в будующем кастомдата) путь до ltx - файла логики

 

Логика!

создаём файл esc_nash_npc.ltx (или как там у вас) в папке gamedata\configs\scripts\escape (имя локации опять чтобы не путаться)

пишем туда стандартную логику - стой на месте, нифига не делай:

[logic] 
active = walker@stay_at_position 
danger = danger_ignore

[danger_ignore] 
ignore_distance = 5

[walker@stay_at_position] 
path_walk = walker_stay_at_position_walk
path_look = walker_stay_at_position_look

Точки пути прописываем в файле way_имя_локации.ltx декомпилированного all.spawn. Новую игру начинать не нужно.

 

вот по логике чуток:

http://stalkerin.gameru.net/wiki/index.php...1%D1%82%D1%8C_1

 

Едем далее:

Имя:

в файле

gamedata\configs\text\rus\st_characters.xml в самый конец ПЕРЕД ТЭГОМ </string_table> добавляем:

<string id="esc_nash">
    <text>Индюк "Опаленный"</text>
</string>

Иконка:

стандартные в файле:

gamedata\configs\ui\textures_descr\ui_npc_unique.xml

структура файла:

<file name="ui\ui_npc_unique"> - файл из которого брать иконки
<texture id="ui_npc_u_nebo_2_face_1" x="0" y="0" width="165" height="108" /> иконка с именем ui_npc_u_nebo_2_face_1 размером 165 х 108 от начала координат (0,0)
ui_npc_u_nebo_2_face_1 - то что в профиле вставляется в тэг icon

 

Далее создаём скрипт ваше_название.script в папке gamedata\scripts. в него пишем

function esc_spawn_nash_nepic () 
    alife():create("esc_nash_npc",vector():set(-233.62,-20.04,-152.72),23680,570)
end

esc_nash_npc - Имя из spawn_cections_***

(-233.62,-20.04,-152.72),23680,570) позиция (x, y, z, gw, lw,) (-233.62,-20.04,-152.72),23680,570) - это в 1ом доме от сидорыча на кордоне

теперь добавляем строку <action>ваше_название.esc_spawn_nash_nepic</action> в любой диалог

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

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


Ссылка на сообщение
(изменено)

Помогите. сделал персонажа. когда тыкаю на диалог чтоб он заспавнится, вылетает

 

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CInifile::Load

[error]File : E:\priquel\sources\engine\xrCore\Xr_ini.cpp

[error]Line : 332

[error]Description : <no expression>

[error]Arguments : Duplicate section 'game_info' found.

что означает?

 

Всё, разобрался - в логике не то написал

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

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


Ссылка на сообщение
(изменено)

Killer-44, Не сочтите за оверквотинг:

[spoiler=Цитаты из темы "Создание NPC "привязанного к точке" без редактирования all.spawn"]

Как бессмертным сделать NPC?
поставить ему базовый клас сахарова
RvP, это в character_desc_*** персонажу прописать <class>yan_stalker_sakharov</class> ?
Pihan13, почти. название класа другое
RvP, какое? :) я про ЧН
Pihan13, за ЧН не знаю,но в ТЧ стоит yan_general_ecolog

 

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

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


Ссылка на сообщение
Writer, если ты пользуешься notepad++, то найти ошибку просто. Редактор подсвечивает xml - синтаксис. тыкай на тэги. если какойто не выделился фиолетовым, значит он не закрыт.

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


Ссылка на сообщение
(изменено)

Чужий,

может добавить в логику:

meet = no_meet

 

А что собсно у тебя получилось?

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

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


Ссылка на сообщение
(изменено)

alexwew, ц-ц-ц не написал секцию [logic] а также активацию из неё нужной схемы, поэтому все ниже стоящие секции логики - Филькина грамота.

[logic]
active = walker
trade = misc\trade\trade_zat_a2_barmen.ltx
prior = 200
can_select_weapon = false
level_spot = trader
inv_max_weight = 10000

[walker]
path_walk = trader_ross_walk
path_look = trader_ross_look
meet = meet
combat_ignore = combat_ignore

[meet]
use = true
use_wpn = true
meet_talk_enabled = true

[combat_ignore]

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

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


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

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

AMK-Team.ru

×
×
  • Создать...