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

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

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

Здравствуй мой родимый портал,есть вопрос,касающийся логики.

Какими способами можно перейти от логики walker в логику remark.

Ремарковые линии перехода типо sound_end или anim_end не канают.Также игра не читает {on_info = {=check_precond_timer(1000) =dist_to_actor_le(4)}

 

Что делать,как перейти?

Изменено пользователем Juny Knife
Ссылка на комментарий

Juny Knife, уважайте людей, к которым решили обратиться за советом. Покажите всю логику персонажа.

 

Изменено пользователем Jurok
Ссылка на комментарий

Кубанец

1. Просьба без причины НЕ задавать адресных вопросов ... Когда вопрос адресован 'толпе' или конкретному человеку - многие не считают нужным/возможным на него отвечать.

2. Не нужны ни кому пояснялки отчего ты чего-то не понял иль не сделал. Тем более такие, что с себя косвенно перекладываешь "вину" на авторов туторов/уроков, мол это они недостаточно разжевали для чайников ...

Урок - это всего лишь материал для ДУМАТЬ и применять его в зависимости от ситуации, а не тупо копипастя во все (не)подходящие места, удивляться что что-то не так ...

Загвоздка изначально в том, что:

а) многие уроки написаны 'по следам' ТЧ. Например в ЗП, как можно заметить, в all.spawn'е не спавнятся НПС, что налагает порой некоторые нюансы на таких 'чуждо-заспавненых'.

б) разработчики писали скрипты/коды в расчете на их случаи, а не на все похотелки от модмейкеров ...

В профиле твоего НПС отсутствуют какие-либо намеки на диалоги, которые доступны этому НПС. Звуковая схема (sound_theme.script) похоже и ругается на то, что нет доступных для твоего непися озвучек для диалогов.

Ну а то, что скрипт вылетает в твоей нештатной ситуации - тут только или делать по шаблону разработчиков или выводить в лог технологические сообщения и искать 'гнилые' места в кодах, не расчитанные навольности модмейкера, и ставить туда заплатки ...

Более конктретно чего-либо добавить пока не могу.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Вот вылет:

Expression : !object->used_ai_locations() || ai().level_graph().valid_vertex_id(object->m_tNodeID)
Function : CALifeSwitchManager::add_online
File : D:\prog_repository\sources\trunk\xrGame\alife_switch_manager.cpp
Line : 64
Description : Invalid vertex for object
Arguments : sim_default_stalker_500257

 

 

 

Как быть!? В спавне не было и нет такого и в помине! :(

Заранее спасибо.

P.S.: пробовал это вписать в bind_stalker.script:

перед этой строчкой:

 

function actor_binder:update(delta)

 

вписал это:

 

local se_obj = alife():object("sim_default_stalker_500257")
if se_obj then
alife():release(se_obj, true)
end

 

 

 

Не помогло. Вылет:

Привожу кусочек лога:

 

* [Loading IB] 1048575 indices, 2047 Kb
* [Loading IB] 1048572 indices, 2047 Kb
* [Loading IB] 1048575 indices, 2047 Kb
* [Loading IB] 1048566 indices, 2047 Kb
* [Loading IB] 351276 indices, 686 Kb
* phase time: 1945 ms
* phase cmem: 321332 K
* phase time: 215 ms
* phase cmem: 324806 K
* phase time: 15 ms
* phase cmem: 324806 K
     WARNING: Occlusion map 'd:\Рабочий Стол(Диск d)\program files\s.t.a.l.k.e.r. - Зов Припяти\gamedata\levels\l03_agroprom\level.hom' not found.
* phase time: 14 ms
* phase cmem: 324806 K
* phase time: 37 ms
* phase cmem: 324806 K
* phase time: 29 ms
* phase cmem: 324806 K
! Can't find texture 'crete\crete_walls_old_03'
! Can't find texture 'veh\veh_avtobus'
* t-report - base: 1171, 471899 K
* t-report - lmap: 2, 2048 K
* WARNING: player not logged in
! Can't find texture 'map\map_escape_build'
! Can't find texture 'map\map_l03_agroprom'
* phase time: 8019 ms
* phase cmem: 326926 K
* phase time: 51 ms
* phase cmem: 326926 K
* [win32]: free[651812 K], reserved[148896 K], committed[1296380 K]
* [ D3D ]: textures[502986 K]
* [x-ray]: crt heap[326926 K], process heap[10820 K], game lua[6048 K], render[254 K]
* [x-ray]: economy: strings[10818 K], smem[10487 K]
stack trace:

001B:0299B7ED lua.JIT.1.1.4.dll, lua_yield()

 

 

Версия игры(на всякий случай):Зов Припяти, 1.6.02

Ссылка на комментарий

zoidberg123456789, "перед этой строчкой"? Караул, парень :) Да и такого метода у alife_simulator в ЗП нет.

Это ж ЗП, с чего ты взял, что обязательно в спавне? Легко может спавниться откуда-нибудь из конфига смарта.

Изменено пользователем KD87
Ссылка на комментарий

zoidberg123456789, огорчу:

Твой лог говорит о том, что в игре некоему сталкеру некуда на локации встать, т.е. после своего спавна для него нет доступного вертекса на AI-сетке.

1. То, что "в спавне не было и нет такого и в помине" - говорит только о том, что ты не понимаешь ни что такое спавн ни что за объекты в игре и откуда они беруться.

'sim_default_stalker_N' - секция спавна в игре различных сталкеров из симуляции. Т.е. это те сталкеры, которые наполняют локации по мере игры, т.е. периодически респавнятся.

sim_default_stalker_500257 - в конце его игровой идентификатор (ID=257), выдаваемый рандомно при его спавне, и в имени объекта 'пристыковываемый' к имени секции.

2. То, что пробуешь его удалить - глупо по трем причинам:

- вылет (вероятно) происходит в момент появления непися в онлайне (net_spawn), и удалять его в методе апдейта (хотя и актора) уже позно ...

- как указал выше, игровой идентификатор выдается рандомно, т.е. при следующем запуске игры твой НПС будет иметь скорее всего совершенно иное имя (окончание).

- метод se_obj = alife():object("obj_name") в ЗП не работает (удален разрабами), и для получения серверного объекта потребно использовать число в качестве аргумента (игровой идентификатр ID или spawn_id).

Так что, разбирайся с причиной недоступности вертексов для различных респавнящихся неписей.

Строка в твоем логе:

WARNING: Occlusion map 'd:\Рабочий Стол(Диск d)\program files\s.t.a.l.k.e.r. - Зов Припяти\gamedata\levels\l03_agroprom\level.hom' not found.

- настораживает. Игра запущена не из папки на диске, а из папки на рабочем столе, да еще и отсутствует level.hom для некой нештатной для игры локации (l03_agroprom). Похоже в своих ковыряниях в игре ты чересчур уж заковырялся ...

 

И напомню, топик предназначен для 'ковыряния' в файлах на базе оригинальной игры, а не в куче 'всего и вся', что взбрело модмейкеру/игроку навставлять в коды ...

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos, KD87, извините, но level.hom нет на уровне вообще. Я попробую создать.

И ещё. Как Вы думаете в чём может быть проблема?

Ещё я скажу Вам точно: на уровне один граф поинт.

Вроде признался во всём. Спасибо, что растолковали мне что к чему :)

Буду эксперементировать.

 

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

--/Artos

Изменено пользователем Artos
Ссылка на комментарий

Всем привет!

У меня такой вопрос создаю камп зону

[93]
; cse_abstract properties
section_name = camp_zone
name = marsh_knyaz_kamp_zone
position = 206.441101074219,-0.439770996570587,9.98206996917725
direction = -0.503396987915039,0,0.864054977893829

; cse_alife_object properties
game_vertex_id = 2547
distance = 0
level_vertex_id = 51095
object_flags = 0xffffff3e
custom_data = <<END
[camp]
cfg = scripts\camp.ltx
END

; cse_shape properties
shapes = shape0
shape0:type = box
shape0:axis_x = 10.8262023925781,0,0
shape0:axis_y = 0,12.457799911499,0
shape0:axis_z = 0,0,4.30079650878906
shape0:offset = 0,0,0

; cse_alife_space_restrictor properties
restrictor_type = 3


и анимпоинт

[94]
; cse_abstract properties
section_name = smart_cover
name = mar_kalash
position = 207.782135009766,-1.11932003498077,8.49439144134521
direction = -0.270146995782852,0,0.96281898021698

; cse_alife_object properties
game_vertex_id = 2547
distance = 7
level_vertex_id = 51507
object_flags = 0xffffffbf

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 0.999199986457825

; cse_smart_cover properties
cse_smart_cover__unk1_sz = animpoint_sit_ass
cse_smart_cover__unk2_f32 = 0
enter_min_enemy_distance = 15
exit_min_enemy_distance = 10

; se_smart_cover properties
last_description = animpoint_sit_ass
loopholes = animpoint_sit_ass,1

и логику для анимпоинта

[logic@mar_kalash]
suitable = {=check_npc_name(mar_kalash)}
prior = 200
active = animpoint@mar_kalash
can_select_weapon = false

[animpoint@mar_kalash]
cover_name = mar_kalash      ;секция smart_cover из алл.спавн
use_camp = true              ;для того, чтоб использовал кэмп зону из алл.спавна 
meet = meet
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false

[meet]
close_snd_hello = zat_a2_stalker_barmen_greeting
close_snd_bye = zat_a2_stalker_barmen_farewell
close_anim = nil
close_victim = nil
far_anim = nil
far_victim = nil
close_distance = 0
far_distance = 0
close_snd_distance = 3
abuse = false
use = {=actor_enemy} false, true
allow_break = false
meet_on_talking = false


всё работает непись садится на ж и травит байки но стоит мне сделать второй анимпоинт

по анологии

[101]
; cse_abstract properties
section_name = smart_cover
name = ds_5_camp
position = 204.88540649414,-1.1555587053299,9.1331253051758
direction = 0.841709,0.000000,0.539931

; cse_alife_object properties
game_vertex_id = 2547
distance = 7
level_vertex_id = 50715
object_flags = 0xffffffbf

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 0.999199986457825

; cse_smart_cover properties
cse_smart_cover__unk1_sz = animpoint_sit_ass
cse_smart_cover__unk2_f32 = 0
enter_min_enemy_distance = 15
exit_min_enemy_distance = 10

; se_smart_cover properties
last_description = animpoint_sit_ass
loopholes = animpoint_sit_ass

с логикой

[logic@ds_5_camp]
suitable = true
prior = 130
post_combat_time = 0, 0
active = animpoint@ds_5_camp

[animpoint@ds_5_camp]
cover_name = ds_5_camp
use_camp = true 
meet = meet 
combat_ignore_cond = false
combat_ignore_keep_when_attacked = false
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false

игра запускается,но неписи упорно его не видят подскажите где я накасячил буду очень признателен. :rolleyes:

Используй, плз, тэги спойлера и кодов. --/Artos

Изменено пользователем Artos
Ссылка на комментарий

Sektor1986, помойму имена анимпоинтов пишутся так:

имя_смарта_animpoint_1, имя_смарта_animpoint_2 и так далее.

Ссылка на комментарий

Ой!Всё разобрался я просто в смарт не писал вот так:

 

[exclusive];

mar_kalash = ds\ds_5_logic.ltx

mar_kalash_2 = ds\ds_5_logic.ltx

mar_kalash_3 = ds\ds_5_logic.ltx

mar_kalash_4 = ds\ds_5_logic.ltx

 

вот поэтому неписи их не видил,и как я мог забыть :fool:

Ссылка на комментарий

ВСЕМ ПРИВЕТ!У меня такой вопрос создаю кемп зону

[102]
; cse_abstract properties
section_name = camp_zone
name = marsh_knyaz_kamp_zone_3
position = 190.38562011719,-0.80762147903442,17.361408233643
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 2553
distance = 0
level_vertex_id = 47296
object_flags = 0xffffff3e
custom_data = <<END
[camp]
cfg = scripts\camp.ltx
END

; cse_shape properties
shapes = shape0
shape0:type = box
shape0:axis_x = 10.8262023925781,0,0
shape0:axis_y = 0,12.457799911499,0
shape0:axis_z = 0,0,4.30079650878906
shape0:offset = 0,0,0

; cse_alife_space_restrictor properties
restrictor_type = 3

 

и анимпоинт

[103]
; cse_abstract properties
section_name = smart_cover
name = mar_kalash_9
position = 192.01747131348,-1.4503893852234,15.909231185913
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 2553
distance = 7
level_vertex_id = 47564
object_flags = 0xffffffbf

; cse_shape properties
shapes = shape0
shape0:type = box
shape0:offset = 0,0,0
shape0:radius = 2

; cse_smart_cover properties
cse_smart_cover__unk1_sz = animpoint_sit_ass
cse_smart_cover__unk2_f32 = 0
enter_min_enemy_distance = 15
exit_min_enemy_distance = 10

; se_smart_cover properties
last_description = animpoint_sit_ass
loopholes = animpoint_sit_ass,1

 

всё работает и всё прекрасно,но сталкеры сидят не кружком,а вот так

 

как бы квадратом

 

первый сталкер лицом к костру напротив сталкер спиной к костру

 

и ещё два боком что мне делать помогите народ очень прошу я уже бьюсь головой об стенку

 

Выше тебя уже просили использовать теги спойлер и код. Поправил. Также, настоятельно рекомендую проставлять пунктуацию. Cyclone

Ссылка на комментарий

Куда будет смотреть НПС в анимпоинте = direction = 0,(от 0 до 3 разворот на 360),0

Имя камп зоны (name = marsh_knyaz_kamp_zone_3) желательно "имя смарт терейна_camp"

И ещё касательно кампа: shape0:type = box(ставь шейп если костёр диаметром не меньше 5 м)

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

Genior.gif

button.png

Ссылка на комментарий

спасибо большое

 

и ещё создаю анимпоинт

 

[98]

; cse_abstract properties

section_name = smart_cover

name = mar_kalash_7

position = 208.494750976563,-0.695241987705231,-0.952223002910614

direction = -0.836310029029846,0,0.548256993293762

 

; cse_alife_object properties

game_vertex_id = 2552

distance = 7

level_vertex_id = 51504

object_flags = 0xffffffbf

 

; cse_shape properties

shapes = shape0

shape0:type = sphere

shape0:offset = 0,0,0

shape0:radius = 2

 

; cse_smart_cover properties

cse_smart_cover__unk1_sz = animpoint_sit_normal

cse_smart_cover__unk2_f32 = 0

enter_min_enemy_distance = 15

exit_min_enemy_distance = 10

 

; se_smart_cover properties

last_description = animpoint_sit_normal

loopholes = animpoint_sit_normal,1

 

с такой логикой

 

[logic@ds_5_animpoint_1]

suitable = {=npc_community(csky)} true

prior = 100

post_combat_time = 0, 0

active = animpoint@ds_5_animpoint_1

 

[animpoint@ds_5_animpoint_1]

cover_name = ds_5_animpoint_1

use_camp = true

 

 

но непись его не занимает

 

подскажите что у меня не так и извините если туплю я анипоинты недавно начал познавать :unsure:

Ссылка на комментарий

Самое важное для анимпоинтов!-они должны попадать строго на AI сетке,иначе он пойдёт гулять :ny_ph34r_1:

Genior.gif

button.png

Ссылка на комментарий

Уважаемые камрады, я уверен, что этот вопрос уже поднимался, но листать столько страниц вельма напряжно. Как действует алгоритм срабатывания наличия у ГГ костюма с замкнутым циклом дыхания (файлы и строки)?

 

 

Изменено пользователем sava.5

Железо: AMD Phenom 9550, nVidia GTS 450 1024 Мб, 4 Gb ОЗУ.

Две системы: Windows 7х64 и Windows 8х64

dx11, дрова на все свежайшие (автообновление).

Монитор LG W2052TQ, 1680x1050

Ссылка на комментарий

Не могу понять в чём причина? На прошлой неделе помпилировал ЧН карты в формат СДК, всё было гладко. Сегодня все карты (кроме подземки вроде) компилятся без спауна, вылетает в самом конце при сохранении сцены, в логе как таковых ошибок нет, настройки конвектора не трогал, всё удалять и переустанавливать не хочется.

Ссылка на комментарий
Artmys, если под "компилятся" подразумевается "декомпилируются", то это известная проблема. В чем дело - неясно, бывает не у всех и не всегда, подозреваю, дело может быть в винде.
Ссылка на комментарий

Переустановил СДК, запуск конвектора поставил в режим совместимости с ХР-3SP, дело пошло, видимо дело действительно в винде.

Ссылка на комментарий

Здравствуйте, уважаемые! У меня имеется лока, она соединина переходами с др. моими локами. Если локу компилить одну, то все чики-пуки, все счастливы, работает. Но ежели скомпилить и запустить в сборке, то

FATAL ERROR

[error]Expression    : cross_table().header().level_guid() == level_graph().header().guid()
[error]Function      : CAI_Space::load
[error]File          : D:\prog_repository\sources\trunk\xrGame\ai_space.cpp
[error]Line          : 113
[error]Description   : cross_table doesn't correspond to the AI-map


stack trace:

Поскажите, что с этим делать?

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

×
×
  • Создать...