[CoP] Ковыряемся в файлах - Страница 192 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

[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

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

 

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

 

[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:

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

 

 

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

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

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 пользователей

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