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

[SoC] Вопросы по SDK


faniloko

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

Domosed Сделай себе S.T.A.L.K.E.R. Inside Wiki главной страницей...без шуток ;)

Вылет при убийстве

 

Это знаменитая ошибка:

Arguments : LUA error: e:\stalker\gamedata\scripts\_g.script:20 ........

Самое просто и неправильное решение - закоментировать 20-ю строку скрипта _g.script, вылет исчезнет, но ошибка никуда не денется. Я не могу сказать с уверенностью, к чему игнорирование этого факта может привести, так как исправлял причину, а не следствие.

Путем нехитрых логических размышлений решение было найдено. Вернее тупым перебором всего, что относилось к делу, криками на форумах, битьем головой о стенку... Потом пришло озарение, вместе с сакраментальным вопросом "что происходит после смерти?" А происходит добавление в статистику убитого объекта (монстра, нпс-а). Поэтому лезем в скрипт xr_statistic.script. В самом начале видим объявление переменной

local killCountProps = {...}

в которой кошек нет. Поэтому добавляем их туда (например, в конец), для начисления очков опыта:

cat_weak = 1, cat_normal = 2, cat_strong = 3,

Хотя мы сделали только cat_weak, но на будущее добавим и остальных. Затем идет перечисление используемых классов монстров:

monster_classes = {

кошек нет и здесь, добавляем:

[clsid.cat_s] = "cat",

Смотрим дальше, видим функцию addKillCount(npc), которая определяет сообщество (community) убитого. Функция вызывает getNpcType(npc), которая находится в этом же скрипте. А там идет обращение к функции IsStalker(npc), и возвращает сообщество и ранг убиенного.

Но тут про мостров ни слова, а значит идем дальше. Функция IsStalker(npc) обнаруживается в скрипте _g.script. Просматривая его обнаруживаем следующие интересующие нас функции:

is_object_monster(obj)

кошек нет, добавляем рядом с собаками:

otype == clsid.cat or

IsMonster (object, class_id)

кошки есть, ничего не трогаем.

Для страховки проверим еще одни файл, class_registrator.script. Находим в нем строку

cs_register (object_factory, "CCat", "se_monster.se_monster", "SM_CAT_S", "cat_s")

и успокаиваемся на этом. Запускаем, убиваем, подходим, пытаемся обыскать - вылетаем. Потому что случился

[править] Вылет при обыске

 

Ну тут уже проще. Вспоминаем, что у нас показывается в инвентаре убитого? Иконка растерзанного трупа. Проверяем m_cat.ltx - действительно, параметр icon отсутствует. Тут появляется два пути.

Первый - нарисовать новую иконку, вставить ее в файл ui_npc_monster.dds, определить координаты и добавить их в xml-описатель ui_npc_monster.xml. И так для каждого нового монстра.

Второй - использовать общую иконку для всех монстров, у которых отсутствует этот параметр. Мы им и воспользуемся, так как для тестовых целей сойдет, а для серьезного применения все равно необходимо иметь хоть какие-то художественные навыки (если кто видел мой тестовый мод "15 кошек", то помнят тот ужас вместо иконки кошки :) )

Для этого отредактируем файл defines.ltx , так как именно в нём содержится секция monster_base, общая для всех монстров. Открываем, ищем секцию, и вставляем

icon = ui_frame_error_sign_red

Это будет такой красный крест в круге. Запускаем, убиваем, обыскиваем и не вылетаем.

Итак, свежедобавленный монстр бегает, живет, нападает. Однако та же кошка по умолчанию невероятно сильна, убивает с одного удара, поэтому для нормальной жизни необходимо подредактировать секцию атаки.

 

Нет новичкам невозможно)) Костя V делал пак колаций для амк...короче тебе много еще подчитать стоит...

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

Мой архив

Сталкером не занимаюсь.

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

amik

S.T.A.L.K.E.R. Inside Wiki-FAQ & SDK у меня и так на экспресс-панели на видном месте...без шуток :) . Статью эту я читал, каюсь, не очень внимательно (дело было ночью), но, блин, похоже без писанины мне всё же не обойтись. Учение- свет!

Лень - двигатель прогресса!

 

Domosed.gif

 

Ссылка на комментарий
напомните как сделать нормальным цвет террейна, постоянно он зелено-радужный какой-то

dimos, правишь текстурку levels\название_локи\terrain\terrain_название_локи.dds

А можно чуть поподробнее, или где почитать?

Понятно, что как-то её править нужно. Яркость/контрастность и прозрачность, или кисточкой всё перерисовать?

Просто сделав чуть потемнее, менее яркой, удалось чуть приблизить к требуемому, но не настолько, как это нужно. Конкретно проблема - в ярко-зелёных / -жёлтых / -голубых пятнах местами на террейне. Причём, как-то выборочно и с непонятной логикой расположения.

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

Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64

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

Извиняюсь за назойливость, но всё же : почему созданый мною уровень нормально работает в чистом STALKER, а при установке АМК вылетает без лога. Хотя бы ссылку на статью с решением.

amik где читать-то???

Лень - двигатель прогресса!

 

Domosed.gif

 

Ссылка на комментарий
Оставляете только те локации, что мы объединяем. Меняем параметр gvid0 на начальный геймвертекс вашей локации. Узнать эти вертексы просто - в папке с acdc должна быть тулза ggtool.pl. Берете получившийся при работе аивраппера game.graph (из папки level_editor\gamedata) и кидаете его в папку с ggtool.pl. После чего создаем и запускаем такой батник:

ggtool.pl game.graph >svyazi.txt

 

Вот делаю по этой инструкции, в командной сторке идёт ругань на 21-ю строку в файле data_packet.pm из папки stkutils и ничего не происходит. ACDC у меня из xray_re-tools-10sep2008.

А вот собственно сам файл

# FIXME: this is very SLOW!!!

package stkutils::data_packet;
use strict;

sub new {
    my $class = shift;
    my $data = shift;
    my $self = {};
    $self->{data} = ($data or '');
    $self->{init_length} = CORE::length($self->{data});
    bless($self, $class);
    return $self;
}
sub unpack {
    my $self = shift;
    my $template = shift;
die if !(defined $self);
die if !(defined $self->{data});
die if !(defined $template);
die if CORE::length($self->{data}) == 0;
    my @values = CORE::unpack($template.'a*', $self->{data});
die if $#values == -1;
    $self->{data} = splice(@values, -1);
die if !(defined $self->{data});
    return @values;
}
sub pack {
    my $self = shift;
    my $template = shift;
die if !(defined($template));
die if !(defined(@_));
die unless defined $_[0];
    $self->{data} .= CORE::pack($template, @_);
}
use constant template_for_scalar => {
    h32    => 'V',
    h16    => 'v',
    h8    => 'C',
    u32    => 'V',
    u16    => 'v',
    u8    => 'C',
    q8    => 'C',
    s32    => 'l',
    s16    => 'v',
    s8    => 'C',
    sz    => 'Z*',
    f32    => 'f',
};
use constant template_for_vector => {
    l8u8v    => 'C/C',
    l32u8v    => 'V/C',
    l32u16v    => 'V/v',
    l32szv    => 'V/(Z*)',
    guid    => 'C16',
    u8v8    => 'C8',
    u8v4    => 'C4',
    f32v3    => 'f3',
    f32v4    => 'f4',
    s32v3    => 'l3',
    s32v4    => 'l4',
};
sub unpack_properties {
    my $self = shift;
    my $container = shift;

    foreach my $p (@_) {
        if ($p->{type} eq 'shape') {
            my ($count) = $self->unpack('C');
            while ($count--) {
                my %shape;
                ($shape{type}) = $self->unpack('C');
                if ($shape{type} == 0) {
                    @{$shape{sphere}} = $self->unpack('f4');
                } elsif ($shape{type} == 1) {
                    @{$shape{box}} = $self->unpack('f12');
                } else {
                    die;
                }
                push @{$container->{$p->{name}}}, \%shape;
            }
        } else {
            my $template = template_for_scalar->{$p->{type}};
            if (defined $template) {
                ($container->{$p->{name}}) = $self->unpack($template);
                if ($p->{type} eq 'sz') {
                    chomp $container->{$p->{name}};
                    $container->{$p->{name}} =~ s/\r//g;
                }
            } elsif ($p->{type} eq 'u24') {
                ($container->{$p->{name}}) = CORE::unpack('V', CORE::pack('CCCC', $self->unpack('C3'), 0));
            } else {
                @{$container->{$p->{name}}} = $self->unpack(template_for_vector->{$p->{type}});
            }
        }
    }
}
sub pack_properties {
    my $self = shift;
    my $container = shift;

    foreach my $p (@_) {
        my $template = template_for_scalar->{$p->{type}};
        if (defined $template) {
            $self->pack($template, $container->{$p->{name}});
        } elsif ($p->{type} eq 'shape') {
            $self->pack('C', $#{$container->{$p->{name}}} + 1);
            foreach my $shape (@{$container->{$p->{name}}}) {
                $self->pack('C', $$shape{type});
                if ($$shape{type} == 0) {
                    $self->pack('f4', @{$$shape{sphere}});
                } elsif ($$shape{type} == 1) {
                    $self->pack('f12', @{$$shape{box}});
                }
            }
        } else {
            my $n = $#{$container->{$p->{name}}} + 1;
            if ($p->{type} eq 'l32u16v') {
                $self->pack("Vv$n", $n, @{$container->{$p->{name}}});
            } elsif ($p->{type} eq 'l32u8v') {
                $self->pack("VC$n", $n, @{$container->{$p->{name}}});
            } elsif ($p->{type} eq 'l32szv') {
                $self->pack("V(Z*)$n", $n, @{$container->{$p->{name}}});
            } elsif ($p->{type} eq 'l8u8v') {
                $self->pack("CC$n", $n, @{$container->{$p->{name}}});
            } elsif ($p->{type} eq 'u8v8' or $p->{type} eq 'u8v4' or $p->{type} eq 'guid') {
                $self->pack("C$n", @{$container->{$p->{name}}});
            } elsif ($p->{type} eq 'f32v3') {
                $self->pack('f3', @{$container->{$p->{name}}});
            } elsif ($p->{type} eq 'f32v4') {
                $self->pack('f4', @{$container->{$p->{name}}});
            } elsif ($p->{type} eq 's32v3') {
                $self->pack('l3', @{$container->{$p->{name}}});
            } elsif ($p->{type} eq 's32v4') {
                $self->pack('l4', @{$container->{$p->{name}}});
            } elsif ($p->{type} eq 'q8v') {
                $self->pack("C$n", @{$container->{$p->{name}}});
            } else {
                die;
            }
        }
    }
}
sub length {
    return CORE::length($_[0]->{data});
}
sub r_tell {
    return $_[0]->{init_length} - CORE::length($_[0]->{data});
}
sub w_tell {
    return CORE::length($_[0]->{data});
}
sub data {
    return $_[0]->{data};
}

1;

 

Ссылка на комментарий
parsek123, скажи, а как связаны ACDC и ggtool? Когда у тебя ругань, где у тебя ругань, зачем data_packet сюда сунул? - ничего не понятно. Ты подробней опиши, что делаешь.
Ссылка на комментарий

Добавил к оригиналу ТЧ две локации МГ и Промзону от Бандероса. Собрал геймграф и алспавн. Пытался настроить ACDC. В инструкции написно, что надо узнать вертексы новых локаций (в инструкции по настройке ACDC в шапке темы). Написал батник, запустил. Командная строка ссылается на файл data_packet.pm и на 21 первую строку в нём, и я не могу узнать вертексы новых локаций.

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

parsek123, у Бандероса уже есть готовый батник для того, чтобы узнать вертексы... Сюда глянь \deadcity&promzone (banderos_version)\acdc_promzone&deadcity\, кинь свой game.graph и запусти батник узнать_вертексы.bat.

И вообще, команда ggtool.pl game.graph

pause выводит вертексы для acdc...

Изменено пользователем dimos
Цензура ограничивает творчество © by me
Ссылка на комментарий

KD87, положил в папу все необходимые файла и батфайл написал такой же, но вертексов так и не смог узнать.

 

dimos, да и всамом деле всё лежит, но похоже не работает только с моим графом, с другими нармально вертексы показывает.

 

Меня ещё одна вещь беспокоит. Во время пересборки графа и алспавна выскакивали сообщения о том, что процедура мол не может найти точку входа(или что-то вроде этого) и ссылалось на xrCore.dll, я нажимал OK и процесс всёравно запускался. Пользуюсь я инструментами от Бардака. Да и ещё, во время работы aiwrapper-а новые файлы сохраняются в папке 2215 в ltvel_edidor, вот от туда я и брал свою новую геймдату.

Вот последний лог работы aiwrapper-a

'xrCore' build 2215, Apr 25 2005

! Cannot find library xrEPropsB.dll
* loading script class_registrator.script
* loading script smart_terrain.script
* loading script se_switcher.script
* loading script se_stalker.script
* loading script se_artefact.script
* loading script se_car.script
* loading script se_monster.script
* loading script game_registrator.script
"LevelBuilder v4.1" beta build
Compilation date: Apr 25 2005

Startup time: 17:27:26
! There is no ai-map for the level monster_tests! (level is not included into the game graph)
! There is no ai-map for the level jim_agro! (level is not included into the game graph)
! There is no ai-map for the level stohe_selo! (level is not included into the game graph)
! There is no ai-map for the level ai_test! (level is not included into the game graph)
! There is no ai-map for the level ai_test2! (level is not included into the game graph)
! There is no ai-map for the level jim_dark! (level is not included into the game graph)
! There is no ai-map for the level chugai_test! (level is not included into the game graph)
! There is no ai-map for the level $debug$\y_selo! (level is not included into the game graph)
! There is no ai-map for the level slipch_al_test! (level is not included into the game graph)
! There is no ai-map for the level slipch_al_test2! (level is not included into the game graph)
! There is no ai-map for the level krondor_selo! (level is not included into the game graph)
! There is no ai-map for the level zmey_selo2! (level is not included into the game graph)
! There is no ai-map for the level zmey_test2! (level is not included into the game graph)
! There is no ai-map for the level slipch_lab! (level is not included into the game graph)
! There is no ai-map for the level slipch_selo! (level is not included into the game graph)
! There is no ai-map for the level chugai_ai_test! (level is not included into the game graph)
! There is no ai-map for the level ivan_test! (level is not included into the game graph)
! There is no ai-map for the level l01_escape_ph_test! (level is not included into the game graph)
! There is no ai-map for the level l02_garbage_ai! (level is not included into the game graph)
! There is no ai-map for the level l03u_agroprom_ai! (level is not included into the game graph)
! There is no ai-map for the level l04u_labx18_proba! (level is not included into the game graph)
! There is no ai-map for the level l07_military_proba! (level is not included into the game graph)
! There is no ai-map for the level l17_radar_underground_ai! (level is not included into the game graph)
! There is no ai-map for the level l12_stancia_2ch_proba! (level is not included into the game graph)
! There is no ai-map for the level l12_stancia_1ch_proba! (level is not included into the game graph)
! There is no ai-map for the level l18_pripyat_ai! (level is not included into the game graph)
! There is no ai-map for the level selo2! (level is not included into the game graph)
! There is no ai-map for the level vovan_test! (level is not included into the game graph)
! There is no ai-map for the level l04u_labx18_oles! (level is not included into the game graph)
! There is no ai-map for the level l04u_labx18_test! (level is not included into the game graph)
! There is no ai-map for the level k01_darkscape_ct! (level is not included into the game graph)
! There is no ai-map for the level l24_sarcofag_mental! (level is not included into the game graph)
! There is no ai-map for the level chugai_test1! (level is not included into the game graph)
! There is no ai-map for the level chugai_test2! (level is not included into the game graph)
! There is no ai-map for the level selo3! (level is not included into the game graph)
! There is no ai-map for the level wik_selo! (level is not included into the game graph)
! There is no ai-map for the level l08u_brainlab_ai! (level is not included into the game graph)
! There is no ai-map for the level l04_darkvalley_ai! (level is not included into the game graph)
! There is no ai-map for the level agro_under! (level is not included into the game graph)
! There is no ai-map for the level l23_soznanie_ai! (level is not included into the game graph)
! There is no ai-map for the level doc_test! (level is not included into the game graph)
! There is no ai-map for the level plecha_selo! (level is not included into the game graph)
! There is no ai-map for the level l04_darkvalley_ct! (level is not included into the game graph)
! There is no ai-map for the level ai_test_new! (level is not included into the game graph)
! There is no ai-map for the level stason_test! (level is not included into the game graph)
! There is no ai-map for the level bar_arena! (level is not included into the game graph)
! There is no ai-map for the level koan_test! (level is not included into the game graph)
! There is no ai-map for the level l07_military_test! (level is not included into the game graph)
! There is no ai-map for the level haron_selo_towers! (level is not included into the game graph)
! There is no ai-map for the level l17_radar_underground_r! (level is not included into the game graph)
! There is no ai-map for the level l06_rostok_demo! (level is not included into the game graph)
! There is no ai-map for the level l05_bar_hw! (level is not included into the game graph)
! There is no ai-map for the level l03_agroprom_hw! (level is not included into the game graph)
! There is no ai-map for the level l03u_agr_underground_hw! (level is not included into the game graph)
    level  1 l01_escape
    level  2 l02_garbage
    level  3 l03_agroprom
    level  4 l03u_agr_underground
    level  5 l04_darkvalley
    level  6 l04u_labx18
    level  7 l05_bar
    level  8 l06_rostok
    level  9 l08_yantar
    level 10 l08u_brainlab
    level 11 l07_military
    level 13 l10_radar
    level 14 l11_pripyat
    level 15 l12_stancia
    level 16 l12u_sarcofag
    level 17 l12u_control_monolith
    level 19 l12_stancia_2
    level 20 l10u_bunker
    level 22 promzone
    level 23 deadcity
* Navigation info : 595499 nodes, 10057 sectors, 39650 edges
    |    | [][smart_terrain][esc_respawn_inventory_box_0000] : position changed from [-212.228470][-19.857691][-141.877960] -> [-211.399994][-20.020472][-142.100006]
    |    | [][smart_terrain][esc_respawn_inventory_box_0001] : position changed from [-118.984505][-29.900000][-390.841705] -> [-118.300003][-30.047827][-390.600006]
    |    | [][smart_terrain][esc_respawn_inventory_box_0003] : position changed from [60.924278][-0.339917][155.849762] -> [60.199993][-0.315673][156.099991]
* Navigation info : 382663 nodes, 9003 sectors, 34817 edges
    |    | [][smart_terrain][gar_respawn_inventory_box_0000] : position changed from [-67.750679][2.002249][9.492465] -> [-67.200005][0.967287][8.399994]
    |    | [][smart_terrain][gar_respawn_inventory_box_0001] : position changed from [-63.832542][-2.351707][-215.421677] -> [-63.000004][-2.522032][-215.600006]
    |    | [][smart_terrain][gar_respawn_inventory_box_0002] : position changed from [-226.252792][-7.645792][-132.164246] -> [-225.399994][-8.353933][-132.300003]
    |    | [][smart_terrain][gar_respawn_inventory_box_0003] : position changed from [48.168457][1.418473][241.416245] -> [48.299995][0.447324][240.099991]
* Navigation info : 437421 nodes, 7191 sectors, 28975 edges
    |    | [][smart_terrain][agr_respawn_inventory_0001] : position changed from [13.237453][4.975006][2.268669] -> [11.899999][-0.006900][2.800000]
    |    | [][smart_terrain][agr2_bandit_st] : position changed from [-76.819603][1.981936][12.621646] -> [-75.599998][2.235468][12.600000]
* Navigation info : 4932 nodes, 565 sectors, 1635 edges
* Navigation info : 390125 nodes, 9256 sectors, 35008 edges
    |    | [
][smart_terrain][val_respawn_inventory_box_0000] : position changed from [140.709854][0.860874][-235.167755] -> [141.399994][0.222766][-235.199966]
    |    | [
][smart_terrain][val_respawn_inventory_box_0001] : position changed from [35.771923][4.876759][-84.523895] -> [36.400002][4.535289][-84.699974]
* Navigation info : 7581 nodes, 421 sectors, 1209 edges
    |    | [][stalker][dar_stalker0000_0000] : position changed from [24.412210][-14.627719][77.047318] -> [19.599998][-16.345886][75.599998]
* Navigation info : 99539 nodes, 4206 sectors, 14848 edges
    |    | [][smart_terrain][bar_visitors] : position changed from [141.743118][0.149969][68.549957] -> [140.700012][-0.012026][69.300011]
    |    | [][smart_terrain][bar_respawn_inventory_box_0000] : position changed from [225.941925][-4.188015][133.040527] -> [224.700012][-5.260128][132.300003]
    |    | [][smart_terrain][bar_respawn_inventory_box_0001] : position changed from [193.826767][1.471730][119.042221] -> [194.600006][-0.006561][120.400009]
* Navigation info : 67713 nodes, 3634 sectors, 12346 edges
    |    | [][stalker][bar_spy_killer_2] : position changed from [-203.589172][0.150000][63.707283] -> [-204.400009][0.076345][65.099998]
    |    | [][smart_terrain][ros_respawn_inventory_box_0000] : position changed from [-239.434219][9.513714][55.475903] -> [-238.699997][9.359112][55.299999]
    |    | [][smart_terrain][ros_respawn_inventory_box_0001] : position changed from [-252.158325][0.651978][16.685566] -> [-251.300003][1.222804][16.100000]
    |    | [][smart_terrain][ros_respawn_inventory_box_0002] : position changed from [-231.278625][0.346174][146.033249] -> [-231.000000][0.098665][147.000000]
* Navigation info : 141471 nodes, 6046 sectors, 22250 edges
* Navigation info : 8008 nodes, 575 sectors, 1653 edges
* Navigation info : 418268 nodes, 7320 sectors, 27923 edges
    |    | [][smart_terrain][mil_inventory_respawn_000] : position changed from [-57.542564][-10.665318][32.296124] -> [-57.399994][-10.714224][31.500002]
    |    | [][smart_terrain][mil_inventory_respawn_001] : position changed from [-92.477203][-19.510096][222.807190] -> [-92.399994][-20.564356][221.899994]
    |    | [][smart_terrain][mil_inventory_respawn_002] : position changed from [-192.664261][-15.406441][372.279694] -> [-191.799988][-16.035957][371.699982]
    |    | [][smart_terrain][mil_inventory_respawn_003] : position changed from [101.657318][0.291262][302.244171] -> [100.800003][-0.189106][303.100006]
    |    | [][smart_terrain][mil_inventory_respawn_004] : position changed from [-233.224655][-12.523403][56.115078] -> [-233.099991][-12.663299][55.299999]
* Navigation info : 227189 nodes, 9583 sectors, 35129 edges
* Navigation info : 261219 nodes, 8215 sectors, 28050 edges
* Navigation info : 477923 nodes, 6686 sectors, 25988 edges
* Navigation info : 10672 nodes, 724 sectors, 2245 edges
* Navigation info : 3982 nodes, 283 sectors, 792 edges
* Navigation info : 264577 nodes, 4854 sectors, 17142 edges
    |    | [][stalker][aes2_monolit_stalker_0010] : position changed from [17.898825][28.349998][292.288544] -> [18.200001][28.191013][291.899994]
* Navigation info : 8821 nodes, 569 sectors, 1619 edges
* Navigation info : 519682 nodes, 10001 sectors, 38531 edges
    |    | [][grenade_rgd5][promz_grenade_rgd5] : position changed from [-104.352989][0.345480][276.510803] -> [-102.900009][-0.540700][276.500000]
    |    | [][wpn_pm][promz_wpn_desert_eagle] : position changed from [5.273658][14.183826][268.471558] -> [5.599993][13.995332][268.100006]
    |    | [][wpn_bm16][promz_wpn_bm16] : position changed from [10.493829][24.894447][-385.900452] -> [13.299993][17.524826][-387.099976]
    |    | [][ammo_9x18_fmj][promz_ammo_12x70_buck_0000] : position changed from [10.391419][24.858448][-385.841003] -> [13.299993][17.524826][-387.099976]
    |    | [][ammo_9x18_fmj][promz_ammo_11.43x23_hydro_0000] : position changed from [-104.415421][0.421038][276.792786] -> [-102.900009][-0.288593][277.200012]
    |    | [][ammo_9x18_fmj][promz_ammo_11.43x23_fmj_0000] : position changed from [-104.127380][0.433616][276.839722] -> [-102.900009][-0.288593][277.200012]
    |    | [][ammo_9x18_fmj][promz_ammo_11.43x23_hydro_0001] : position changed from [-104.259590][0.378403][276.633667] -> [-102.900009][-0.540700][276.500000]
* Navigation info : 389616 nodes, 7683 sectors, 26854 edges
    |    | Graph point start_actor_banderos_01 not found (level changer exit_to_bar_banderos_01)
List of the level changers which are invalid for some reasons
exit_to_bar_banderos_01
promz_level_changer_to_hospital
promz_level_changer
Actor is on the level l01_escape
* loading script utils.script

 

Ссылка на комментарий
parsek123, брал из теневого дерева? поэтому и не распаковывается ничего. Как известно, аивраппер работает с xrAI от билда 2215, который делает файлы в формате билда 2215 :). Аивраппер же после окончания работы xrAI правит game.graph и all.spawn для приведения их в формат ТЧ. Так вот, обновленные аивраппером файлы находятся в основной геймдате (level_editor/gamedata), вместо старых файлов. В папке 2215 - теневое дерево, файлы в формате билда 2215. Не бери ничего из теневого дерева, если, конечно, моддишь ТЧ. Изменено пользователем KD87
Ссылка на комментарий

KD87 спасибо за разъяснение, взял файлы из level_editor/gamedata и игра даже запускается, локации на в пда отображаются. Но вот проблема с ACDC. Вертексы своих новых лок я выяснил, в acdc.pl прописал

use constant levels_info => (
    { gvid0 => 3500, },
    { gvid0 => 3154,    name => 'deadcity' },
    { gvid0 => 2792,    name => 'promzone' },
    { gvid0 => 2661,    name => 'l10u_bunker' },
    { gvid0 => 2517,    name => 'l12_stancia_2' },
    { gvid0 => 2467,    name => 'l12u_control_monolith' },
    { gvid0 => 2402,    name => 'l12u_sarcofag' },
    { gvid0 => 2273,    name => 'l12_stancia' },
    { gvid0 => 2117,    name => 'l11_pripyat' },
    { gvid0 => 1862,    name => 'l10_radar' },
    { gvid0 => 1545,    name => 'l07_military' },
    { gvid0 => 1529,    name => 'l08u_brainlab' },
    { gvid0 => 1438,    name => 'l08_yantar' },
    { gvid0 => 1308,    name => 'l06_rostok' },
    { gvid0 => 1168,    name => 'l05_bar' },
    { gvid0 => 1109,    name => 'l04u_labx18' },
    { gvid0 => 811,        name => 'l04_darkvalley' },
    { gvid0 => 703,        name => 'l03u_agr_underground' },
    { gvid0 => 416,        name => 'l03_agroprom' },
    { gvid0 => 252,        name => 'l02_garbage' },
    { gvid0 => 0,        name => 'l01_escape' },

 

 

 

Но при распаковке алспавна всёравно ошибка

C:\Games\S.T.A.L.K.E.R. - MOD\gamedata\spawns\acdc_promzone&deadcity>perl acdc.p
l -d all.spawn
update data left in explosive_barrel at acdc.pl line 2280.

C:\Games\S.T.A.L.K.E.R. - MOD\gamedata\spawns\acdc_promzone&deadcity>pause
Для продолжения нажмите любую клавишу . . .

 

 

Нашол я там этот баррель, прописан он вот так - explosive_barrel => 'cse_alife_item_explosive',

И дальше ничего понять не могу.

Ссылка на комментарий
parsek123, хэш section_to_class (где ты нашел explosive_barrel) ни при чем. В одной из секций explosive_barrel есть избыточные параметры апдейт-пакета. А может acdc не для того патча используешь. В общем, залей куда-нибудь спавн, я гляну, что там и как. Ну и уточни - какая у тебя версия ТЧ.
Ссылка на комментарий

KD87 версия 1.0004, а залить сечас не получится, интернет слишком медленный, а к брату ехать долго. ACDC брал из xray_re-tools-10sep2008 от Бардака.

 

Добавлено через 73 мин.:

По поводу проблемы при декомпиляции алспавна с логом update data left in explosive_barrel at acdc.pl line 2280. Поюзал поиск и нашол пару сообщений с похожей проблемой, в одном из них автор решил закоментировать строку, ну и я тоже попробовал (закоментировал строку 2280), вот она

#$packet->length() == 0 or die "update data left in $self->{cse_object}->{name}";
                }
                $cf->r_chunk_close();
            }
        }
        $cf->r_chunk_close();
    }
}

 

 

Затем снова ругань, только уже на 1825-ю строку die unless $_[1]->length() == 0;, её тоже "пустил в расход", и после этого алспавн разобрался. А после компиляции "похудел" на 35 килобайт.

Эти действия не приведут в последствии к каким-нибуть критическим проблемам?

Изменено пользователем parsek123
Ссылка на комментарий
parsek123, может, приведет, может, нет. На всякий случай советую все параметры upd:num_items в распакованном спавне выставить в 0. После этого не должно быть проблем.
Ссылка на комментарий

При переходе на присоединённую локацию вылет

Expression    : cross_table().header().game_guid() == game_graph().header().guid()
Function      : CAI_Space::load
File          : E:\stalker\patch_1_0004\xr_3da\xrGame\ai_space.cpp
Line          : 121
Description   : graph doesn't correspond to the cross table

 

 

Сдесь какой-то граф не соответствует чемуто, незнаю чему. Думаю что это координаты точки появления на новой локации не соответствуют реальным значениям.

Как узнать правильные координаты на локации если ты там ещё не был, и нет возможности пробежаться до нужной точки и снять координаты скриптом? Пробовал через GraphViewer посмотреть, прописал в alife_l01_escape точку перехода. На кордоне переход появляется, при заходе в него начинает грузиться уровень но вылет тот-же.

Ссылка на комментарий
parsek123, поставь точку появления актора на присоединённую локацию. Можно взять координаты какого-нибудь рестриктора или смарт-террейна. Изменено пользователем Шип
Ссылка на комментарий

Шип, да я уже пробовал и от рестрикторов и от террейнов, даже от точек путей координаты брать, всёравно вылет повторяется.

 

Добавлено через 43 мин.:

Приношу всем свои извинения за потраченное время. Во всех своих ошибках виноват я сам (рассеянность и невнимательность). Теперь всё исправил и всё работает.

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

parsek123

Расскажи, в чём был косяк, и как ты его исправил...(я сам сталкивался с такого рода проблемами)...

Лень - двигатель прогресса!

 

Domosed.gif

 

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

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

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

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

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

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

Войти

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

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

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