• Страница 2 из 2
  • «
  • 1
  • 2
Форум » Форум IP » Теория модостроения » Создание НПС через скрипт и их редактирование (Учебник от IP Team # 2)
Создание НПС через скрипт и их редактирование
MillerДата: Пт, 16.12.2011, 09:41 | Сообщение # 1
Администратор
Группа: Администратор
Сообщений: 199
Репутация: 1029
Статус: Offline
Здесь вы научитесь создавать нового НПС через скрипт, создавать новые секции для НПС и создавать характеры, или редактировать старые.

Автор: Vova Miller [IP Team]

1. Для начала создадим секцию нашего нового НПС.
В файле config\creatures\spawn_sections.ltx создаем секцию. Вот пример:
Code
[test_stalker_1]:stalker
character_profile    = test_stalker_1_xapaktep

test_stalker_1 - имя секции (не должно повторяться)
stalker - сравнивается с уже существующей секцией stalker, чтобы не писать лишнего.
character_profile - направление к классу характера.
test_stalker_1_xapaktep - ID класса характера.

2. Создадим секцию класса в config\gameplay\npc_profile.xml. Пример:
Code
    <character id="test_stalker_1_xapaktep">
      <class>test_stalker_1_xapaktep</class>
     </character>

test_stalker_1_xapaktep - сверху ID, а снизу название самого класса.
Для чайников: Код нужно вводить между <xml> и </xml>
Иногда ниже <class></class> прописывается:
Code
  <specific_character>ID_профиля</specific_character>

Но в таком случае нельзя будет создать несколько "характеров" для одного класса. Я честно говоря не знаю зачем эта штука, но когда происходил вылет я приписывал это и всё решалось.

3. Теперь создадим сам характер. Пропишем его, скажем, в config\gameplay\character_desc_escape.xml
Вот пример:
Code
    <specific_character id="test_stalker_1_xapaktep_1" team_default = "1">
      <name>esc_wolf_name</name>
      <icon>ui_npc_u_stalker_neytral_balon_1</icon>
      <bio>esc_wolf_bio</bio>

      <class>test_stalker_1_xapaktep</class>
      <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
          
      <rank>434</rank>
      <reputation>5</reputation>
      <money min="600" max="2000" infinitive="0"/>
          
      <snd_config>characters_voice\human_01\stalker\</snd_config>
      <crouch_type>-1</crouch_type>
         
      <visual>actors\neytral\stalker_neytral_balon_1</visual>
      <supplies>
       [spawn] \n
       wpn_pm \n
       ammo_9x18_fmj = 1 \n
       wpn_ak74u \n
       ammo_5.45x39_fmj \n
      </supplies>
          
#include "gameplay\character_criticals_4.xml"
#include "gameplay\character_dialogs.xml"     
     </specific_character>

Для чайников: Профиль нужно ставить между <xml> и </xml>.

<name>esc_wolf_name</name> - Имя НПС (прописать можно сразу на русском языке)
<icon>ui_npc_u_stalker_neytral_balon_1</icon> - Иконка НПС. Берётся из config\ui\ui_npc_unique.xml
<bio>esc_wolf_bio</bio> - История НПС. (В игре не используется)
<class>test_stalker_1_xapaktep</class> - наш класс.
<community>stalker</community> - группировка НПС.
<terrain_sect>stalker_terrain</terrain_sect> - terrain НПС. Берётся из config\creatures\m_stalker.ltx
<rank>434</rank> - Ранг НПС.
<reputation>5</reputation> - репутация НПС.
<money min="600" max="2000" infinitive="0"/> - Минимальное (600) и максимальное (2000) кол-во денег. (Если вместо 0 поставить 1, то у НПС будет неограниченное кол-во денег.)
<snd_config>characters_voice\human_01\stalker\</snd_config> - звуки НПС.
<visual>actors\neytral\stalker_neytral_balon_1</visual> - форма НПС.
Между <supplies> и </supplies> - Инвентарь НПС, а конкретно: патроны, оружие и другие предметы, типа рации.

4. Теперь наконец "заспавним" нашего НПС через скрипт.
Создайте свой скрипт в папке gamedata\scripts\ и пропишите в него:
Code
function my_func_1 ()
     alife():create("test_stalker_1",vector():set( -49.19, -10.03, -61.49 ),230520,77)
end

my_func_1 - название функции (пригодится для выполнения)
test_stalker_1 - спавним нашего нового Сталкера с данной секцией.
49.19, -10.03, -61.49 - координаты X Y Z
230520 - level_vetrex_id
77 - game_vetrex_id
Данные координаты, это Кордон, в туннеле под дорогой, рядом с раненным Толиком.
Напоминаю, что свои координаты можно снять через Position Informer.

5. Всё сделано, помимо одной вещи: Не выполняется функция спанва. Её выполнение можно прописать в диалог, или в инфопоршень.
Пропишем, для примера, в инфопоршень, который выполняется с самого начала игры, то есть наш НПС тоже будет появляться с самого начала игры.
Откройте config\gameplay\info_portions.xml и ниже: <task>storyline_eliminate_gunslinger</task> добавьте это: <action>имя_вашего_скрипта.my_func_1</action>.
То есть весь инфопоршень storyline_actor_start будет выглядеть так:
Code
  <info_portion id="storyline_actor_start">
      <task>storyline_eliminate_gunslinger</task>
      <action>имя_вашего_скрипта.my_func_1</action>
    </info_portion>


6. Запускаем игру, и если вы всё сделали правильно, то ваш НПС обязательно появится.
Примечание: Начальный инфопоршень storyline_actor_start выполняется тогда, когда ГГ находится на Кордоне. Так что не пугайтесь, если вы таким образом заспавните НПС на Свалке и сами начнёте игру со неё и НПС не появится.
Можно без проблем сделать отдельный инфопоршень, который выдаётся где бы ни был ГГ, и туда прописывать функции спавна.


 
StelsДата: Вт, 03.01.2012, 17:51 | Сообщение # 16
Охотник
Группа: Сталкер
Сообщений: 17
Репутация: 25
Статус: Offline
Quote (Miller)
Stels, а где у тебя файл test_stalker_1 лежит?


он лежит в в gamedata\scripts\ отдельным файлом с названием test_stalker_1
 
STEFANДата: Вт, 10.04.2012, 18:30 | Сообщение # 17
Прибывший
Группа: Сталкер
Сообщений: 1
Репутация: 0
Статус: Offline
а вот этот пример он на какой мод?

Добавлено (10/Апр/2012, 18:30)
---------------------------------------------
к какому моду этот учебник?

 
MillerДата: Ср, 11.04.2012, 18:35 | Сообщение # 18
Администратор
Группа: Администратор
Сообщений: 199
Репутация: 1029
Статус: Offline
STEFAN, какая разница на какой мод.
Данный учебник был сделан для любых модификаций Тень Чернобыля и оригинала ТЧ. Как дела в ЧН и ЗП не знаю, быть может и там всё так же делается полностью.


 
Форум » Форум IP » Теория модостроения » Создание НПС через скрипт и их редактирование (Учебник от IP Team # 2)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Истинный путь Team © 2024