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

[CoP] Ковыряемся в файлах


Halford

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

Мне надо сделать так, чтобы НПС стрелял из одного оружия, а после смерти из него выпадало другое оружие. Кто может помочь с этим?

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


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

Новая проблема: я заспавнил НПС через all.spawn, в игре убил его, и в труп не могу положить вещи. Забрать из него могу, положить - нет.  Народ, помогите, кто знает...

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


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

[10001]
; cse_abstract properties
section_name = stalker
name = test_nps_new
position = 256.240051269531,19.8124237060547,550.824279785156
direction = 0,0,0

; cse_alife_trader_abstract properties
character_profile = test_nps_new

; cse_alife_object properties
game_vertex_id = 316
distance = 0
level_vertex_id = 1158851
object_flags = 0xfffffffb
custom_data = <<END
[logic]
cfg = scripts\logic.ltx
none = true
END


; cse_visual properties
visual_name = actors\novice\green_stalker_2

; 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 = 256.240051269531,19.8124237060547,550.824279785156
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

 

Всё остальное в полном порядке. Именно в этого НПС в труп нельзя положить вещи.
 

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

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


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

Указанный здесь logic.ltx отсутствует в папке config/scripts. Этого файла просто нет, понимаете да?

 

Профиль:

 

<specific_character id="test_nps_new" team_default = "1">
    <name>noname</name>
    <icon>ui_inGame2_neutral_3</icon>
    <map_icon x="1" y="0"></map_icon>
    <bio>Опытный сталкер. Детальная информация отсутствует.</bio>
    <class>nps</class>
    <community>freedom</community>
 <terrain_sect>stalker_terrain</terrain_sect>
    <snd_config>characters_voice\human_02\military\</snd_config>
    <rank>1700</rank>
    <money min="2500" max="2500" infinitive="0"/>
    <reputation>10</reputation>
    <visual>actors\stalker_neutral\stalker_neutral_3</visual>
    <supplies>


      [spawn] \n
    
    wpn_pm = 1 \n
    ammo_9x18_fmj = 1 \n
    

    #include "gameplay\character_drugs_2.xml"
    #include "gameplay\character_items.xml"
    #include "gameplay\character_food.xml"


    </supplies>
<start_dialog>hello_dialog</start_dialog>
<actor_dialog>about_quests_dialog_stalkers</actor_dialog>
<actor_dialog>actor_break_dialog</actor_dialog>

    </specific_character>

 

Кто бы заспавнил у себя такого чела, чисто проверить что будет с трупом. Чел появляется в начале игры сразу возле ГГ.
 

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


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

Что там в логике заложено, хрен его проссышь...

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

 

Я уже потерял интерес к жизни с этим багом. Это вообще борода. Вот люди как-то спавнят, руководства пишут, моды делают и всё норм у них.

 

 

Проблема решается легко, если спавнить скриптом. Мораль истории: не использовать all.spawn для создания боевых персонажей.

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

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


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

Гражданин Serafim12 выложил статью по редактированию меню

http://www.amk-team.ru/forum/index.php?s=98190f5856c1fbf32f8a874439c5019e&showtopic=8013&page=8#entry596730




ui\video_voroni_crop - ВИДЕО С ВОРОНАМИ)


ui\video_water_crop - ВИДЕО С ВОДОЙ)


ui_inGame2_background - ФОН


ui_save_load_back - ФОН ОКНА







- ОСНОВНАЯ ОБЛАСТЬ
ui_inGame2_main_window_small - ТЕКСТУРА ОКОШКА

ui_mm_load_game - "ЗАГРУЗИТЬ ИГРУ" надпись

- МИНИАТЮРНЫЙ СКРИНШОТ (ПРИ ОТСУТСТВИИ ИСПОЛЬЗУЕТСЯ СИКВЕНЦИЯ "ПОМЕХИ")
ui\ui_noise


ui_inGame2_picture_window







- РАМКА СПИСКА
ui_inGame2_servers_list_frame

- СПИСОК


- КНОПКА "ЗАГРУЗИТЬ"
ui_inGame2_Mp_bigbuttone
ui_mm_load

- КНОПКА "УДАЛИТЬ"
ui_inGame2_Mp_bigbuttone
ui_mm_delete

- КНОПКА "ОТМЕНА"
ui_inGame2_Mp_bigbuttone
ui_mm_cancel



 

Возникает вопрос, а где искать все эти текстуры кнопок, окошек, фонов?

ui_inGame2_main_window_small - ТЕКСТУРА ОКОШКА

вот где она? в папке ui её нет...

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


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

Спасибо, разбираюсь понемногу. Но у меня теперь новая задача. Надо вырезать видео костра из заставки в опциях. Различные попытки править .xml файлы приводят к вылетам вроде таких

 

Expression    : xml_doc.NavigateToNode(path,index)
Function      : CUIXmlInit::InitStatic
File          : D:\prog_repository\sources\trunk\xrGame\ui\UIXmlInit.cpp
Line          : 156
Description   : XML node not found
Argument 0    : video_adv:cap_r4_tessellation
Argument 1    : ui\ui_mm_opt_16.xml

 

Я поставил свою текстуру в опциях, а видео никак выключить не могу...


Вообще простое копирование ui_mm_opt_16.xml из распакованной папки в геймдату приводит к вылету при нажатии на 'опции' в главном меню. Если в геймдате нет этого файла то всё работает.


Я использую распаковщик Universal Extractor. Если распакованную папку UEgamedata переименовать в gamedata то всё работает. Но если скопировать один лишь ui_mm_opt_16.xml то будет вылет с жалобой на него.


Для того, чтобы решить проблему, нужно ещё добавить в папку gamedata/scripts

ui_mm_opt_main

ui_mm_opt_video

ui_mm_opt_video_adv

Вот эти три файла, как минимум. Странно всё это.


Ещё одно добавление по поводу костра. Для того чтобы убрать видео костра надо

1. Исправить альфа-канал в текстуре ui_actor_options_background.dds Конкретно: залить белым участки.

2. В папке gamedata\configs\ui открыть ui_mm_opt_16.xml, там найти и вырезать эти строчки:


<auto_static x="253" y="250" width="269" height="176" stretch="1">
        <texture x="1" y="1" width="335" height="174">ui\video_window</texture>
      </auto_static>

 

3. Вероятно будет лучше сделать то же самое и в ui_mm_opt.xml В нём эти строчки выглядят

 <auto_static x="190" y="250" width="336" height="176">
      <texture width="336" height="176">ui\video_window</texture>
    </auto_static>

 

 

 

Вот и всё. Оказалось совсем нетрудное дело.

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


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

Тогда будет проблема. Вот я завалил группу сталкеров, при обыске у них может оказаться два вида брони. Одна будет там из-за скрипта, другая от разработчиков. В модах кстати нередко бывает так, что в трупах сразу по два комплекта брони. Как этого избежать?

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


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

 

С этого момента поподробнее про разработчиков. И в каком это моменте игры в чистом ЗП выпадает броня с трупов?

У НПС нет брони. Всё что вы видите в игре - это визуал НПС. И броне просто неоткуда выпасть.

Похоже Вы правы. Я тут не разобрался, да, с них броня не валится.

 

Но мне важно сделать случайный спавн брони в трупах. Чтоб иногда она спавнилась, а иногда - нет. Как такую фишку реализовать?

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


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

Я настроил для конкретного визуала. Благодарю.

 

В скрипте xr_death сразу после строк


function action_process_death:death_callback(victim, who)
if who ~= nil then
printf("[%s] killed by [%s]", victim:name(), who:name() )
db.storage[victim:id()].death.killer = who:id()
else
printf("[%s] killed by [unknown]", victim:name())
db.storage[victim:id()].death.killer = -1
end

написано

if math.random(1,100) <= 50 then
m_outfit.on_kill(victim)
end

в m_outfit.script от Шокера добавлено следующее

local visuals = {
stalker_neutral_3 = {"stalker_outfit"},
}

 

 

Теперь, думаю, всё будет работать как надо...


Мда, как бы ещё этой броне состояние убить хотя бы наполовину?


Нашел решение.

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


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

Мне надо узнать lvertex gvertex и координаты в конуре у Сыча. Запрыгнуть туда нельзя. Что тогда делать?

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


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

вопрос был на самом деле о том, чтобы смотреть координаты в любых недоступных местах...

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


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

Если спавнишь скриптом, то как задать направление взгляда НПС?

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


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

Заспавнил НПС через смарт террейн. По учебнику

http://www.stalkerin.gameru.net/wiki/index.php?title=CoP:_%D0%A1%D0%BF%D0%B0%D0%B2%D0%BD_%D0%9D%D0%9F%D0%A1_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_smart_terrain

[smart_terrain]


max_population = 1

[exclusive]
zat_test_nps = zaton\chainik.ltx

 

[logic@zat_test_nps]
suitable = {=check_npc_name(Чайкин)}
active = walker@stay_at_position
danger = danger_ignore
combat_ignore = combat_ignore

[danger_ignore]
ignore_distance = 0
ignore_distance_corpse = 0

[combat_ignore]
combat_ignore_cond = always

[walker@stay_at_position]
path_walk = walker_stay_at_position_walk
path_look = walker_stay_at_position_look
anim = wait

 

[chainik_smart_walker_stay_at_position_walk]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position = 109.900001525879,-3.9300000667572,188.309997558594
p0:game_vertex_id = 316
p0:level_vertex_id = 1155274

[chainik_smart_walker_stay_at_position_look]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position = 0,0,0
p0:game_vertex_id = 316
p0:level_vertex_id = 1155274

 

Тем не менее, этот НПС упорно не хочет торчать на Скадовске. Вечно убегает куда то с корабля и там стоит на свежем воздухе. Как мне исправить его поведение?

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


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

 

1. Имя смарта, в вашем случае, должно быть chainik_smart

Так и указано в all.spawn

 

2. Вот это suitable = {=check_npc_name(Чайкин)} выдаст false.

Должно быть явно указано: suitable = {=check_npc_name(Чайкин)}  true

3. danger = danger_ignore и combat_ignore = combat_ignore  - это чудо из ТЧ

В ЗП необходимо указывать не в секции логики, а в секции схемы

 

[walker@stay_at_position]

path_walk = walker_stay_at_position_walk

path_look = walker_stay_at_position_look

danger = danger

combat_ignore_cond = true

 

[danger]

ignore_distance = 0

ignore_distance_corpse = 0

 

4. anim = wait 

Это вообще нонсенс в схеме walker

Привел в соответствие требованиям. Толку-то? Персонаж серавно бежит со Скадовска.

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


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

Чайкин - имя персонажа

 

Вообще, есть понимание, как работает функция check_npc_name ?

ну нет же


 

У Вас в секции НПС есть набор символов Чайкин ?

Набор символов Чайкин есть в character_desc_general

выглядит

<specific_character id="test_nps_new" team_default = "1">
    <name>Чайкин</name>
Собственно он и спавнится, с нужным визуалом, группировкой и проч. Только бежит со Скадовска почему-то...

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

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


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

Как мы видим ид секции это test_nps_new

если его прописать там, то нпс не спавнится вообще

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


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

 

Как мы видим ид секции это test_nps_new

если его прописать там, то нпс не спавнится вообще

Сори, это было по другим причинам. Именно, нужно ставить ид секции, спасибо за помощь. Теперь он стоит там где положено. Благодарю ещё раз.

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


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

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