Создание НПС

Материал из Mod Wiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 12:54, 12 апреля 2009 (править)
ScRiPt (Обсуждение | вклад)
(Новая: Для того, чтобы создать нового НПС нам понадобятся координаты нужного места, где и будет заспаунен на...)
← К предыдущему изменению
Версия 20:04, 11 апреля 2011 (править) (отменить)
ILdarKOrotkov (Обсуждение | вклад)

К следующему изменению →
Строка 1: Строка 1:
Для того, чтобы создать нового НПС нам понадобятся координаты нужного места, где и будет заспаунен наш NPC. Возьмём Кордон, лагерь новичков. Можете снять координаты сами, а можете взять мною уже снятые: (-218.20,-20.2,-145.63),35362,47). Для того, чтобы создать нового НПС нам понадобятся координаты нужного места, где и будет заспаунен наш NPC. Возьмём Кордон, лагерь новичков. Можете снять координаты сами, а можете взять мною уже снятые: (-218.20,-20.2,-145.63),35362,47).
Далее. Создаём файл в папке gamedata/scripts файл, скажем esc_unik_npc.script. В нём создаём функцию. Далее. Создаём файл в папке gamedata/scripts файл, скажем esc_unik_npc.script. В нём создаём функцию.
-Код:+<pre>
function esc_unik_npc () function esc_unik_npc ()
alife():create("esc_unik_npc",vector():set(-218.20,-20.2,-145.63),35362,47) alife():create("esc_unik_npc",vector():set(-218.20,-20.2,-145.63),35362,47)
end end
- +</pre>
Теперь мы в файле npc_profile.xml (в папке gameplay) добавляем нашего НПС. Теперь мы в файле npc_profile.xml (в папке gameplay) добавляем нашего НПС.
-Код:+<pre>
<!-- Escape --> <!-- Escape -->
<character id="escape_trader"> <character id="escape_trader">
Строка 18: Строка 18:
<specific_character>esc_unik_npc</specific_character> <specific_character>esc_unik_npc</specific_character>
</character> </character>
- +</pre>
Копируем или создаём по образцу только нижний блок :) Второго торговца нам ненадо. Копируем или создаём по образцу только нижний блок :) Второго торговца нам ненадо.
Теперь моздадим секцию нашего персоонажа. В файле spawn_section.ltx (gamedata/config/creatures) Теперь моздадим секцию нашего персоонажа. В файле spawn_section.ltx (gamedata/config/creatures)
-в блоке:+в блоке
 +<pre>
;--------Escape-------------- ;--------Escape--------------
;--------neutrals------------ ;--------neutrals------------
-Создаём секцию.+</pre>
-Код:+создаём секцию.
 +<pre>
[esc_unik_npc]:stalker [esc_unik_npc]:stalker
$spawn = "respawn\esc_unik_npc" $spawn = "respawn\esc_unik_npc"
Строка 31: Строка 33:
spec_rank = regular spec_rank = regular
community = dolg community = dolg
- +</pre>
В строке community можете вместо долга вписать другую группировку. В строке community можете вместо долга вписать другую группировку.
-Однако если мы хотим, чтоба наш персоонаж не гулял по Зоне, пока не наткнётся на первуюю аномалию, то пропишем чтобы он стоял на месте. Для этого под community вставляем:+Однако если мы хотим, чтоба наш персоонаж не гулял по Зоне, пока не наткнётся на первуюю аномалию, то пропишем чтобы он стоял на месте. Для этого под community вставляем
-custom_data = scripts\esc_unik_npc.ltx Далее создаём в gamedata/config папку scripts в в папке создаём файл esc_unik_npc.ltx В наш созданый файл вставляем:+<pre>
-Код:+custom_data = scripts\esc_unik_npc.ltx
 +</pre>
 +Далее создаём в ''gamedata/config'' папку ''scripts'', в ней создаём файл ''esc_unik_npc.ltx''. В наш созданый файл вставляем:
 +<pre>
[logic] [logic]
active = remark1 active = remark1
Строка 45: Строка 50:
[remark1] [remark1]
no_move = true no_move = true
- +</pre>
-Всё наш НПС будет стоять на месте своего спауна. +Всё, наш НПС будет стоять на месте своего спауна.<br>
-Едем дальше. Нам надо активировать нашего персоонажа. для этого мы должны вставить строку:+Едем дальше. Нам надо активировать нашего персоонажа; для этого мы должны вставить строку
 +<pre>
<action>esc_unik_npc.esc_unik_npc</action> <action>esc_unik_npc.esc_unik_npc</action>
-Либо в диалог, либо в какой-нибудь квест. Давайте вставим строку в файл info_portions.xml (gamedata/gameplay) под+</pre>
-Код:+либо в диалог, либо в какой-нибудь квест. Давайте вставим строку в файл ''info_portions.xml'' (''gamedata/gameplay'') под
 +<pre>
<game_information_portions> <game_information_portions>
<info_portion id="storyline_actor_start"> <info_portion id="storyline_actor_start">
<task>storyline_eliminate_gunslinger</task> <task>storyline_eliminate_gunslinger</task>
- +</pre>
-Выклядеть это будет так:+Выглядеть это будет так:
- +<pre>
-Код:+
<game_information_portions> <game_information_portions>
<info_portion id="storyline_actor_start"> <info_portion id="storyline_actor_start">
Строка 63: Строка 69:
<action>esc_unik_npc.esc_unik_npc</action> <action>esc_unik_npc.esc_unik_npc</action>
</info_portion> </info_portion>
- +</pre>
-Однако мы не прописали самого НПС, как личность :) В файле character_desc_escape.xml (gamedata/gameplay) добавляем:+Однако мы не прописали самого НПС как личность :) В файле ''character_desc_escape.xml'' (''gamedata/gameplay'') добавляем:
-Код:+<pre>
<!---------------------------------------esc_unik_npc-----------------------------------------------------> <!---------------------------------------esc_unik_npc----------------------------------------------------->
<specific_character id="esc_unik_npc" team_default = "1"> <specific_character id="esc_unik_npc" team_default = "1">
Строка 95: Строка 101:
#include "gameplay\character_dialogs.xml" #include "gameplay\character_dialogs.xml"
</specific_character> </specific_character>
- +</pre>
-Правда тут получится у нас долговец в одежде бандита и говорящего голосом монолитовца xD +Правда, тут получится у нас долговец в одежде бандита и говорящий голосом монолитовца xD<br>
-Всё сохроняем. НПС готов.+Всё сохраняем. НПС готов.
Но так же можно добавить нашему НПС диалог) Как добавлять диалоги написано в нашем факе) Но так же можно добавить нашему НПС диалог) Как добавлять диалоги написано в нашем факе)
-Если хотяте сделать нашему НПС своё имя то в файле stable_bio_name.xml (gamedata/config/text/rus) +Если хотите сделать нашему НПС своё имя, то в файле ''stable_bio_name.xml'' (''gamedata/config/text/rus'')
-добавляем:+добавляем
-Код:+<pre>
<string id="esc_unik_npc"> <string id="esc_unik_npc">
<text>Факер-мазафакер</text> <text>Факер-мазафакер</text>
</string> </string>
- +</pre>
-А в файле сharacter_desc_escape.xml (gamedata/gameplay) находим нашего уже прописаного НПС и вставляем в секцию <name></name> (у нас в ней написано GENERATE_NAME_bandit) esc_unik_npc+А в файле ''сharacter_desc_escape.xml'' (''gamedata/gameplay'') находим нашего уже прописанного НПС и вставляем в секцию ''<name></name>'' (у нас в ней написано ''GENERATE_NAME_bandit'') ''esc_unik_npc''.<br>
-Всё :) Поздравляю)+Всё :) Поздравляю)<br>
-Материал взят со СТАЛКЕР - ПОРТАЛ.ру из раздела FAQ+Материал взят со '''СТАЛКЕР-ПОРТАЛ.ру''' из раздела '''FAQ'''.

Версия 20:04, 11 апреля 2011

Для того, чтобы создать нового НПС нам понадобятся координаты нужного места, где и будет заспаунен наш 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) добавляем нашего НПС.

<!-- Escape -->
<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) добавляем:

<!---------------------------------------esc_unik_npc----------------------------------------------------->
<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
#include "gameplay\character_items.xml" \n
#include "gameplay\character_food.xml"
</supplies>

#include "gameplay\character_criticals_3.xml"

#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.
Всё :) Поздравляю)
Материал взят со СТАЛКЕР-ПОРТАЛ.ру из раздела FAQ.

Личные инструменты