|
Главная » 2010 » Май » 27 » Создание нового торговца!
22:36 Создание нового торговца! |
Болезненная тема для многих начинающих модмейкеров. Для создания нового
тороговца требуется постигать навыки работы со спавн-файлом. Для
создания торговца придётся запастись кое-какими утилитами:
acdc
от bardak скачать
ActivePerl 5.8.8 для работы программы acdc
скачать Практика Создание непися и профиля
И так. Сперва
мы создаём профиль непися. Например, в файле character_desc_escape.xml
по адресу gamedata\config\gameplay\ Можно создать отдельный файл для
наших неписей, это упрощает совмещение модов. В файле
character_desc_escape.xml, в самом низу, перед тегом </xml> пишем
профиль нового непися: <specific_character
id="esc_dark_stalker_voron" no_random = "1"> ;важно при создании
торговца, указать параметр no_random = "1"
<name>Ворон</name> <icon>ui_npc_dark_voron</icon> <map_icon
x="0" y="0"></map_icon> <bio>sim_stalker_novice_bio</bio>
<class>esc_dark_stalker_01</class>
-- настраивает респавнер на класс персонажа для спавна разных моделей. ;т.к.
мы спавним уникального непися, класс можно скопировать у любого другого
непися или написать новый, уникальный класс. <community>dark_stalker</community> <money
min="500000" max="500000" infinitive="1"></money> ;в поле
денег, надо поставить бессконечные деньги - infinitive="1" ;иначе вы
сможете продать неписю товаров исключительно на указанную сумму.
<rank>1000</rank> <reputation>-553</reputation>
<visual>actors\dark_stalker\dark_stalker_voron</visual>
;ссылка на файл-модель персонажа без окончания .ogf <snd_config>characters_voice\human_01\monolith\</snd_config> <crouch_type>-1</crouch_type> <panic_treshold>0</panic_treshold> <supplies> [spawn]
\n wpn_gauss \n ammo_gauss \n #include
"gameplay\character_items.xml" \n #include
"gameplay\character_drugs.xml" \n #include
"gameplay\character_food.xml" </supplies>
#include
"gameplay\character_criticals_3.xml"
<start_dialog>hello_dialog_dark_stalker</start_dialog> <actor_dialog>dm_cool_info_dialog</actor_dialog> <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> <actor_dialog>join_dark</actor_dialog> </specific_character>
Профиль
создан, пара стандартных диалогов, взятых у любого другого профиля,
дописать не составит труда. Я ничего не менял в своём коде. Лезем в
npc_profile.xml, который находится в той же папке. Где-нить внизу делаем
запись: <character id="esc_dark_stalker_voron"> <class>esc_dark_stalker_01</class>
-- настраивает респавнер на класс персонажа для спавна разных моделей. ;т.к.
мы спавним уникального непися, класс можно скопировать у любого другого
непися или написать новый, уникальный класс. <specific_character>esc_dark_stalker_voron</specific_character>
-- ссылка на профиль нашего непися. </character> Ввод в
симуляцию
Непись создан. Теперь надо вводить его в симуляцию.
Открываем файл gamedata\config\creatures\spawn_sections.ltx и
прописываем в конце: [esc_dark_stalker_voron]:stalker_trader -
дописать суффикс торговца... хотя у меня и без него всё работало =) $spawn
= "respawn\esc_dark_stalker_voron" - опция спавна для Левел Едитора character_profile
= esc_dark_stalker_voron - профиль непися, записанный в npc_profile.xml spec_rank
= regular community = dark_stalker - группировка Спавн торговца
через all.spawn файл
Дальше, самое нудное - спавн. Спасибо
Arhet'y за пример. Используя прогу acdc от bardak'a декомпилим
all.spawn, создав батник разбора спавна (без active perl толку от проги
бардака нуль - просто не запустится) и в понравившемся месте делаем
запись с уникальным номером. Я заспавнил на Кордоне: [8796] ;
cse_abstract properties section_name = stalker_trader -- метка, что
сталкер является торговцем name = dark_stalker_voron -- имя любое,
вроде бы; где оно используется не знаю position =
-215.67399597168,-20.403390884355,-151.03227233887 -- местоположение на
игровой карте direction =
0.0445535257458687,-0.000645029998850077,0.0144814234226942
;
cse_alife_trader_abstract properties character_profile =
esc_dark_stalker_voron
; cse_alife_object properties game_vertex_id
= 61 -- геймвертекс, без него спавнер не будет знать, на какой именно
карте и в какой её части спавнить объект distance = 3.5 level_vertex_id
= 42599 -- левелвертекс, без него спавнер не будет знать, в именно
какой части карты спавнить объект object_flags = 0xfffffffb custom_data
= <<END [logic] cfg = scripts\esc_voron.ltx -- конфиг с
логикой [smart_terrains] none = true -- смарт террейн; если
создаёте статического торговца - лучше не выставлять смарт террейн ;если
хотите бродягу - пишите по аналогии с другими неписями или создавайте
свой смарт террейн, куда и определяйте непися
[spawn] wpn_gauss
-- спавним в инвентаре всё, что хотим, в продажу оно не пойдёт END story_id
= 9958 - уникальный стори_ид для меток на карте
; cse_visual
properties visual_name = actors\dark_stalker\dark_stalker_voron --
внешний вид, указать путь к .ogf модели, без окончания формата файла!
;
cse_alife_creature_abstract properties g_team = 0 g_squad = 0 g_group
= 0 health = 2 dynamic_out_restrictions = dynamic_in_restrictions
=
upd:health = 2 upd:timestamp = 0 upd:creature_flags = 0 upd:position
= -215.67399597168,-20.403390884355,-151.03227233887 -- те же
координаты, что и в секции position 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 =
2,2,1,2,0 predicate4 = 2,2,1,2
; cse_ph_skeleton properties
upd:start_dialog
=
; se_stalker properties
Спавн файл еще рано собирать! Логика
торговца
Далее, создаём файл конфиг торговца, который указали в
спавне - gamedata\config\scripts\esc_voron.ltx и пишем в нём: [logic] active
= walker trade = misc\trade_voron.ltx -- файл торговли, создаётся по
аналогии с существующими trader_flags = 0 - флаг трейдера inv_max_weight
= 10000 -- вес инвентаря торговца on_death = death
[walker] path_walk
= esc_sin_voron_walk -- привязка вейпоинта, чтобы трейдер стоял на
месте или двигался по определённому курсу path_look =
esc_sin_voron_look -- куда будет смотреть непись meet = meet --
параметры реакции непися на встречу с актором
[meet] use =
true use_wpn = true -- перезаряжает оружие meet_talk_enabled =
true
Теперь лезем за скриптом от бардака и снимаем координаты
местоположения нашего непися. У кого нету скрипта, копируем в
gamedata/scripts/ui_main_menu.script этот скрипт: function
main_menu:OnButton_credits_clicked() local text local vid local
gvid local a = vector() local text a = db.actor:position()
vid = db.actor:level_vertex_id() gvid =
db.actor:game_vertex_id() text = "Позиция:\\nX= "..a.x.."\\nY=
"..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..vid.."\\ngame_vertex_id=
"..gvid news_manager.send_tip(db.actor, text, nil, nil, 30000) end
Заходим
в игру, ищем нужное нам место (ногами), жмём из меню кнопку CREDITS и
мы услышим звуковой сигнал, после чего выходим в игру из меню, и в
строке сообщений высветиться вся инфа. Всё - F12 или на бумажку
списываем полученные координаты. Создаём вейпоинты и лукпоинты
И
так, мы сняли координаты мест, где хотим видеть торговца и где мы
хотим, чтобы он ходил - теперь в разобранном all.spawn ищите файл
way_*левел*.ltx и туда пишем данные. Я приведу пример свой, опять таки. В
файле way_l01_escape.ltx пишем: [esc_sin_voron_look] -- имя,
которые мы записали в ''gamedata\config\scripts\esc_voron.ltx'' points
= p0,p1 p0:name = wp00 p0:flags = 0x1 p0:position =
-205.306793212891,-20.4855155944824,-150.415893554688 p0:game_vertex_id
= 46 p0:level_vertex_id = 54218
p1:name = wp01 p1:flags =
0x1 p1:position =
-207.645278930664,-20.2700958251953,-146.980590820313 p1:game_vertex_id
= 61 p1:level_vertex_id = 45276
[esc_sin_voron_walk] --
имя, которые мы записали в ''gamedata\config\scripts\esc_voron.ltx'' points
= p0 p0:name = wp00 p0:flags = 0x1 p0:position =
-215.67399597168,-20.403390884355,-151.03227233887 p0:game_vertex_id =
47 p0:level_vertex_id = 37503
Если нужно создать несколько
вейпоинтов - смотрите по аналогии с уже существующими.
После
всего этого собираем all.spawn батником (что писать в батниках для сбора
и разбора спавна - в файле help.txt в папке с программой), закидываем
новый файл спавна в gamedata/spawn и стартуем новую игру.
|
Просмотров: 905 |
Добавил: Dark_cat
| Рейтинг: 5.0/1 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
| |
| |
|
ФОРМА ВХОДА |
Здарова, сталкер! Для получения всех функций нужно зарегистрироваться или
войти под своим именем!
|
ПОИСК! | Найти это немедленно!!!
|
СТАТИСТИКА | Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|