GSC|MOD-Народный портал модостроения
PDA
Гость - Гости
Дата: 20.04.2024
Непрочитанных ЛС:
Гость - Гости
В Зоне: -дней
Пропуск №: 0
Гость - Гости
День рождения:
Ваш IP: 18.220.81.106
Мини-чат
500
Партнеры сайта
Наш опрос
Как вам наше последнее обновление?
Всего ответов: 16
Статистика


Добро пожаловать на форум!
Форум
  • Spawn Actor (1)
    Последний пост: Ростян
  • S.T.A.L.K.E.R. 2 - Обсужд... (1)
    Последний пост: ФанатиК
  • S.T.A.L.K.E.R. 2 (0)
    Последний пост: Ростян
  • S.T.A.L.K.E.R.: Тень Черн... (0)
    Последний пост: Ростян
  • BIG WORLD (0)
    Последний пост: KaLiPsO
  • UNREAL (0)
    Последний пост: KaLiPsO
  • Пользователи
  • Ростян (Администраторы)
    Постов: 131 | Репутации: 300
  • sttt912 (Военный[Модератор])
    Постов: 10 | Репутации: 2
  • KaLiPsO (Чистое небо)
    Постов: 8 | Репутации: 100
  • SKORPION (Военный[Модератор])
    Постов: 6 | Репутации: 200
  • nopinmaksim1988 (Вольный сталкер)
    Постов: 3 | Репутации: 0
  • tema796 (Вольный сталкер)
    Постов: 3 | Репутации: 2
  • ФанатиК (Монолит)
    Постов: 2 | Репутации: 5
  • DiGGeR225 (Вольный сталкер)
    Постов: 2 | Репутации: 0
  • Статьи
  • "Легенда зоны" (31.07.2018)
    Просмотров: 1170 | Опубликовал: Ростян
  • Радиация (01.08.2018)
    Просмотров: 714 | Опубликовал: Ростян
  • О девушках в Зоне (01.08.2018)
    Просмотров: 968 | Опубликовал: Ростян
  • Интересненькое о Шраме (01.08.2018)
    Просмотров: 807 | Опубликовал: Ростян
  • Наемник (01.08.2018)
    Просмотров: 719 | Опубликовал: Ростян
  • Стронглав (01.08.2018)
    Просмотров: 881 | Опубликовал: Ростян
  • Рассказы у костра: Лесник (01.08.2018)
    Просмотров: 702 | Опубликовал: Ростян
  • История Кочевника (01.08.2018)
    Просмотров: 653 | Опубликовал: Ростян
  • [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    • Страница 1 из 1
    • 1
    Модератор форума: Uk  
    Форум » Модостроение » Модостроение от А до Я » All.spawn. Создание NPC
    All.spawn. Создание NPC
    РостянДата: Вторник, 19.03.2013, 22:48 | Сообщение # 1
    Руководитель команды модостроителей UM-ST-MOD Team
    Сообщений: 131
    Репутация: 300
    Статус: Offline
    Что,как,зачем
    Итак, я хочу рассказать вам как создать NPC через all.spawn.
    Метод был выявлен мною путем проб и ошибок.
    Конечно же у вас появился вопрос: « Ну а зачем же мучатся с all.spawn, если можно сделать тоже самое через скрипт?».
    Ответ: Хоть этот способ и не такой быстрый и легкий, но у него есть свои плюсы, необходимые многим, один из них - мы можем задать story id нашему NPC.(Можно прописать в секции нпс которого спауните в низу в файле spawn_sections.ltx Пример:story_id = 10000) "А что дает нам это?"
    Много чего, ну для примера - мы сможем поставить отметку на него. Я не буду объяснять такие простые вещи как декомпиляция all.spawn и остальное, но если же вы все таки не знаете как, пишите мне в лс на Гейменаторе(stalkers-life, или Идиот)
    Итак, хватит лишних слов, перейдем к работе...

    Работаем!!!С помощью ACDC декомпилируем all.spawn
    Получаем кучу файлов типа : alife_l01_escape , way_l01_escape и тд.
    Создадим нового непися на Кордоне. Открываем alife_l01_escape, и крутим в самый низ.
    Если у вас чистая игра и вы ничего не делали в Олл спавне то посленяя секция у вас будет под номером 869. Добавляем туда вот такой код(в конец):
     
    Код
    [870]; cse_abstract properties
    section_name = stalker
    name = noobikposition = -172.21215820313,-19.941787719727,-161.09272766113
    direction = 0,0,0  

    ; cse_alife_trader_abstract properties
    money = 5000
    character_profile = esc_noobik  

    ; cse_alife_object properties
    game_vertex_id = 52
    distance = 0level_vertex_id = 76655
    object_flags = 0xffffffbf
    custom_data = <<END  

    [logic]cfg = scripts\noobik_logic.ltx

       
    ; cse
    [smart_terrains]
    none = trueEND

    story_id = 10000  

    ; cse_visual properties
    visual_name = actors\soldier\soldier_beret_1  

    ; cse_alife_creature_abstract properties
    g_team = 0
    g_squad = 1
    g_group = 2
    health = 1

    dynamic_out_restrictions =
    dynamic_in_restrictions =  

    upd:health = 1
    upd:timestamp = 0
    upd:creature_flags = 0
    upd:position = -172.21215820313,-19.941787719727,-161.09272766113
    upd:o_model = 0upd:o_torso = 0.028013030067086,0,0.9996075630188
    upd:g_team = 0upd:g_squad = 1
    upd:g_group = 2  

    ; cse_alife_monster_abstract properties  

    upd:next_game_vertex_id = 65535
    upd:prev_game_vertex_id = 65535
    upd:distance_from_point = 0upd:distance_to_point = 0  

    ; cse_alife_human_abstract properties
    predicate5 = 1,2,2,1,2
    predicate4 = 0,1,1,1  

    ; cse_ph_skeleton properties  

    upd:start_dialog =  

    ; se_stalker properties
     Разъясню некоторые пункты, чтобы в след. раз не пришлось прибегать к тутору.

     
    Код
    section_name = stalker -//это для игры тут пишется к примеру если ето у тебя сталкера или бандюки то должно быть section_name = stalker
    name = noobik -//пишем что хотим
    position = -172.21215820313,-19.941787719727,-161.09272766113 -//позиция
    direction = 0,0,0 -// направление взгляда(можно писать всегда нули)  
       

    ; cse_alife_trader_abstract properties
    money = 5000 -//его бабло
    character_profile = esc_noobik -//ссылка на профиль в character_desc_локация(раз создаем в алайф эскейп значит и профиль будет искатсья в чарактер_деск_ескейп)  
       

    ; cse_alife_object properties
    game_vertex_id = 52 -// гейм вертекс
    distance = 0
    level_vertex_id = 76655 -//левел вертекс
    object_flags = 0xffffffbf
    custom_data = <<END  
       

    [logic]cfg = scripts\noobik_logic.ltx -// ссылка на логику  
       

    ; cse[smart_terrains]
    none = trueEND

    story_id = 10000 -//его стори айди
       
    ; cse_visual propertiesvisual_name = actors\soldier\soldier_beret_1 -// его визуал  
       

    upd:health = 1
    upd:timestamp = 0
    upd:creature_flags = 0
    upd:position = -172.21215820313,-19.941787719727,-161.09272766113 -//опять пишем позициюupd:o_model = 0
    upd:o_torso = 0.028013030067086,0,0.9996075630188
    upd:g_team = 0
    upd:g_squad = 1
    upd:g_group = 2  
       

    upd:next_game_vertex_id = 65535-//честно не знаю что это, я всегда пишу эти цифрыupd:prev_game_vertex_id = 65535-//не знаю, но пишем всегда это
    upd:distance_from_point = 0
    upd:distance_to_point = 0


     Компилируем, получаем файл all.spawn.new , копируем его в геймдату/спавнс и переименовываем просто в олл спавн. Это еще не все!
    теперь
    открываем файл character_desc_escape
    перед профилем волка вставляем это:
     
    Код
    <!---------------------------------------esc_noobik-----------------------------------------------------><specific_character id="esc_noobik" team_default = "1">
    <name>Нубик</name>
    <icon>ui_npc_u_stalker_neytral_balon_1</icon>
    <bio>esc_noobik</bio>  
    <class>esc_noobik</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\soldier\soldier_beret_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"
       

    </specific_character>
     у нас будет чел с визуалом военного, иконкой волка, и голосом обычного сталкера

    теперь создаем файл логики, в папке config/scripts создаем файл noobik_logic.ltx и пишем туда:

     
    Код
    [logic]active = remark1danger = danger_ignore

    [danger_ignore]ignore_distance = 5  

    [remark1]no_move = true
     все, он никуда не уйдет пока на него не нападут = )
    Теперь открываем файл game_story_ids
    и в самый низ вписываем: 10000 = "esc_noobik"
    теперь открываем файл npc_profile вставляем сие:
     
    Код
    <character id="esc_noobik">
    <class>esc_noobik</class>
    <specific_character>esc_noobik</specific_character>
    </character>
     Все, мы на финишной прямой! Открываем файл spawn_sections
    и в писываем:
     
    Код
    [esc_noobik]:stalker
    $spawn = "respawn\esc_noobik"
    character_profile = esc_noobik
    spec_rank = novice
    community = stalker
     Все, все готово! Начинаем новую игру, и видем сталкера с именем Нубик = )
    Можно сделать и так но НПС уйдет. Проще делать с логикой вместе. Заместо:
     
    Код
    [logic]cfg = scripts\noobik_logic.ltx
     Лутчше написать:
     
    Код
    [logic]active = remark
    combat_ignore = combat_ignore
    danger = danger_condition  

    [remark]anim = wait
    combat_ignore_cond = always  

    [combat_ignore]
    combat_ignore_cond = always  

    [danger_condition]
    ignore_distance = 0
    ignore_distance_corpse = 0
     И тогда НПС будет стоять на месте. =)

    --<# И стоять НПС при такой логике будет до поры до времени, теперь ясно где все новички учатся изначально делать не правильно...
    Схема remark не предназначена выступать в роли активной схемы, она была создана для мягкого перехода между основными схемами, например kamp и walker.
    Игнорирование этого момента приводит к нежелательным эффектам, как следствие возникают необоснованные обвинения в адрес X-Ray.
    Если же всё равно делаете через all.spawn, то почему бы не прописать НПС нормальную логику, при которой он действительно будет стоять на месте и даже, если в последующем его что-то отвлечёт, то он вернётся на место, а не останется стоят там, куда перебежал.
    Код
    [logic]active = walker@stay_at_position
    combat_ignore = combat_ignore
    danger = danger_condition  

    [walker@stay_at_position]
    path_walk = walker_stay_at_position_walk
    path_look = walker_stay_at_position_look  

    [combat_ignore]
    combat_ignore_cond = always  

    [danger_condition]
    ignore_distance = 0
    ignore_distance_corpse = 0
    И в файл way_имя_локации.ltx вписать две точки:
    Код
    [walker_stay_at_position_walk]points = p0
    p0:name = name00
    p0:flags = 0x1
    p0:position = ;координаты на которых стоим
    p0:game_vertex_id = ;гейм вертекс координат
    p0:level_vertex_id = ;левел вертеск координат  

    [walker_stay_at_position_look]
    points = p0
    p0:name = name00
    p0:flags = 0x1
    p0:position = ;координаты в которые смотрим
    p0:game_vertex_id = ;гейм вертекс координатp0:level_vertex_id = ;левел вертеск координат
    И никаких проблем с поведением НПС --#>

    Статью создал stalker-life С поправками Melnik Подкоректировал: Spaces Замечание касательно логики: ColR_iT


    Желаю всем удачного модостроения Ростян:-)
    Если вы хотите отправить сообщение шлите на Yandayks3003
     
    Форум » Модостроение » Модостроение от А до Я » All.spawn. Создание NPC
    • Страница 1 из 1
    • 1
    Поиск:
    Design by Ростян
    Copyright Ростян GSC-MOD
    © 2013 - 2019
    Авторское право на игру и использованные в ней материалы принадлежит GSC Game World. Любое использование материалов сайта возможно только с разрешения администрации. Все дизайнерские материалы взяты исключительно из ресурсов серии игр S.T.A.L.K.E.R. Хостинг от uCoz