l1qvidat0r
Тебе уровень открыть в СДК или сам СДК запустить?
Запуск СДК осуществляется через LE (level editor)
Если открыть уровень:
Скачай xray_re-tools-10sep2008 там присутствует converter, настраиваешь его и декомпилишь левел(описание глянешь, там все написано)
Ждешь когда успешно завершиться декомпиляция, открываешь LE > file > open и выбираешь карту... Ждешь когда загрузиться. Вот и все.
Где-то видел конвертер получше, но не помню где и какое у него название. В нем можно указать к какому СДК\Игре карта декомпилируется. Этот исправляет вылет при загрузке карты в СДК: Stack owerflow
Вопрос есть. Подскажите, какие файлы отвечают за ограничение веса у ГГ, я имею ввиду не конфиги, а скрипты. Хочется перенести из ЧН в ТЧ возможность увеличение переносимого веса за счет артефактов.
Mehanik Yar, Я не в курсе. Но могу посоветовать вот такой батник:
Код:
findstr "текст, который ищем не содержащий ковычек, переноса текста" *.script > _findstr_log.txt
Использование:
Кидаешь батник в папку scripts
Вписываешь текст ,не трогая ковычки.
Сохраняешь.
Пример.
findstr "target_dot" *.xml > _findstr_log.txt
Кстати расширение можно менять после *.
Запускаешь и ждешь, как окошко исчезнет в файле _findstr_log.txt ,будет показано, где было найдено совпадение и вся строчка с совпадением.
Я при помощи этого батника нашел много чего полезного... Может и тебе поможет.
Сообщение было успешно отредактировано Addept (06-07-2012 16:13 GMT3 часа, назад)
ColR_iT, значит у меня причина вылета другая была.
st-al-ke-rs-ha, честно говоря, не знаю. Никогда не пробовал использовать эту схему.
_____________
Решил проверить схему follower. В моём случае НПС идёт после разговора за actor (т.е. за мной). После выполнения инфопоршня ros_help_to_women_quest_done_1 НПС действительно следует за мной, но когда до меня доходит, происходит безлоговый вылет. С чем это связано?
Вот логика:
VOva-VIP, я почему спросил? В качестве параметра leader указывается story_id лидера, за которым нужно идти. У тебя стоит 5499, у актора же нет story_id вовсе.
st-al-ke-rs-ha , помнишь я тебе говорил о той функции _g.script ?
На мой взгляд помогает со всеми вылетами... по крайней мере я не встречал еще чтобы не помогло:
Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line : 73
Description : <no expression>
Arguments : LUA error: d:\gs\s.t.a.l.k.e.r. hsm\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)
Не говоря даже о без логовом...
Вот допустим вылет по вине логики происходит именно с логом указанном выше.
А когда беру эту функцию... в папке с logs\xray_user.log или xray_admin.log вписывается последнее действие сделанное игрой.
Что происходит без функции. (... - это что там еще написано не столь важное)
...
* Log file has been saved successfully!
! Unknown command: DEBUG:_add_to_binder:_scheme='sr_sound',_section='sr_sound'
* Log file has been saved successfully!
! Unknown command: ERROR:_object_'val_dolg_saviours2_restr':_section_'sr_sound':_field_'on_signal':_syntax_error_in_switch_condition
* Log file has been saved successfully!
Желтым отметил error, судя по нему объект val_dolg_saviours2_restr в секции sr_sound в поле\строке on_signal допущена синтаксическая ошибка(_syntax_error_in_switch_condition)
Ищем этот объект, открываем логику.
[sr_tip]
name = biwap_e
type = tips
sender = dolg
single = true
Загружаю игру и вижу нет никакого вылета.))
Думаю и с безлоговым поможет...
Да и хз, бармен может под гулагом ходит... Или заскриптован...
добавлено спустя 10 минут
Dmitriy_Dark_Stalker можно, берешь aiwrapper.
Убрираешь не нужные локи из game_levels.ltx,game_maps_single.ltx(здесь обязательно не нужны секции level_music_tracks,global_map),game_graphs.ltx(вроде,не обязательно редактировать) и убрать лишние локации из папки levels, дальше собираешь сея дело. Документация по установке приложена и как собирать тоже должно быть в проге.
Если ты собираешься родную карту(имею в виду если это для тч, тч припять) в игру пихать, то достаточно будет обновить level.spawn и начать склейку ИИ-графов карт в глобальный игровой граф(проще говоря в game.graph).
На выходе game.graph и all.spawn под game.graph, а то будет вылет ... "rebuild spawn!" или что-то в том духе.
Я лично знаю только такой способ. Может быть, где-нибудь есть способ легче.
Сообщение было успешно отредактировано Addept (06-07-2012 20:58 GMT3 часа, назад)
st-al-ke-rs-ha
Судя по логу. У Бармена путь barmen_stoit_walk имеет 1вейпоинт но не имеет флаг, попробуй вставить после p0:name = wp00, или как у тебя он называется в barmen_stoit_walk флаг p0:flags = 0x1
Например, как вот здесь. Думаю должно заработать.
st-al-ke-rs-ha
Ты обратно _g.script меняла?
Может чего лишнего закоментировала? Или использовала тот скрипт "лучше этого"?
добавлено спустя 3 минут
Нет все таки не в этом дело, сейчас закоментил все кроме function и end. Все так же пишет... зашел в меню вышел из игры
добавлено спустя 3 минут
Щас полазил в мануале, так в нем написано
ЦитатаВ точках путей можно задавать флаги, изменяющие поведение персонажа. Флаги задаются прямо в имени waypoint-а, например, для точки с именем "wp00":
wp00|flag1|flag2
(настройка логики. часть 1.)
Может эти флаги имелись в виду? Только при чем тут они и вылет?!
Сообщение было успешно отредактировано Addept (06-07-2012 23:26 GMT3 часа, назад)
Addept, где ты нашёл этот нерадивый совет про то, что если протсходит вылет с руганью на 20 строчку _g.script, нужно комментировать ту функцию. st-al-ke-rs-ha, вот тебе совет в поиске решения:
Открываешь файл _g.script, ищешь в нём две функции, первая это:
Код:
function printf(fmt,...)
log(string.format(fmt,...))
end
, она в начале и практически в конце вторую функцию:
Код:
function abort(fmt, ...)
local reason = string.format(fmt, ...)
assert("ERROR: " .. reason)
printf("ERROR: " .. reason)
printf("%s")
end
И УДАЛЯЕШЬ. Но вместо них в начало файла вставляешь, вот этот код:
Код:
--#------------------------------------------------------------------
--# Functions for Print-Log by Artos
--#------------------------------------------------------------------
--# конвертер вывода строки лога
function fFormatToString(fmt,...)
--# локальная функция: перевод аргумента в стринг
local to_str = function(val,typ)
if typ == 'string' then
return val
elseif typ == 'number' then
return tostring(val)
elseif typ == 'boolean' then
return tostring(val)
elseif typ == 'table' or typ == 'userdata' then
if tonumber(val.x) and tonumber(val.y) and tonumber(val.z) then
if typ == 'table' then
return string.format('tbl{x=%.3f:y=%.3f:z=%.3f}',val.x,val.y,val.z)
end
return string.format('vec(x=%.3f:y=%.3f:z=%.3f)',val.x,val.y,val.z)
end
end
return "<"..typ..">"
end
--# основное тело функции: парсинг исходной строки
if type(fmt) == 'string' then
if fmt:match('%\%[s|d]') then --# есть патерн(ы)
if next({...}) then --# есть аргумент(ы)?
local arg,val,typ,i = {...},nil,nil,nil
for i=1,#arg do
val = arg[i] --# значение текущего аргумента
typ = type(val) --# тип текущего аргумента
if typ == 'string' then
fmt = fmt:gsub('%\%s',val,1)
elseif typ == 'number' then
if fmt:match('%\%d') then
fmt = fmt:gsub('%\%d',val,1)
else
fmt = fmt:gsub('%\%s',val,1)
end
else
fmt = fmt:gsub('%\%s',to_str(val,typ),1)
end
end
end
fmt = fmt:gsub('%\%[s|d]',"<NOT_arg!>") --# заглушка от отсутствия аргументов
end
else
fmt = to_str(fmt,type(fmt))
end
--# с заменой обычных пробелов (sym_space='\032') на печатные ('\160')
return fmt:gsub('%s','\160')
end
--#------------------------------------------------------------------
--# printf (функция вывода информации в лог игры)
--#------------------------------------------------------------------
local console = get_console()
function printf(fmt, ...)
if not console then console = get_console() end
console:execute("*INFO:"..string.sub(fFormatToString(fmt,...),1,250)) --# +префикс строки лога (STCS|SCoP: "load ~:")
--# console:execute("flush") --# команда записи буфера лога в файл (в игре можно закомментиировать!)
end
--#------------------------------------------------------------------
--# Abort (функция принудительного прерывания игры)
--#------------------------------------------------------------------
function abort(fmt, ...)
printf("ВНИМАНИЕ! Ошибка! Информация по ошибке в строках ниже !")
printf(string.gsub("ERROR!: "..string.sub(fFormatToString(fmt,...),1,250),'%s','\160'))
assert(false,"ВНИМАНИЕ! Игра прервана! Информация в строках выше.") --# прерываем с выводом строки на консоль
exit() --# прерываем игру при фатальных ошибках
end
--#------------------------------------------------------------------
Подом заходишь в игру, получаешь вылет и в логе видишь из-за чего конкретно он произошёл.
Как всё сделаешь, выложи лог сюда, плюс последние 6 строчек перед fatal error.
Dmitriy_Dark_Stalker Я не знаю даже чего тебе посоветовать... Можно попробовать закинуть в СДК текстуры из игры(только родную папку textures в SDK переименуй), а потом открой карту в SDK, полетай по ней... Вообщем в логе красным недостающие текстуры будут отображены. Ну а тут уже вручную выбирать их.
Или вот:
Программа Texture Copier
Описание к ней:
Программа делалалсь для упрощения переноса текстур из ТЧ в ЧН\ЗП.
В частности в ЗП\ЧН отсутствуют многие текстуры из билдов, и приходится их
вручную искать по логу и переносить в игру. Эта программа призвана автоматизировать
этот процесс, достаточно лишь вписать список нужных текстур и указать папки
откуда их брать и куда их кидать.
Ну и благодаря гибкости программы, её можно использовать и не только для сталкера. ;)
А чтобы быстро получить нужный список текстур - загрузите нужный уровень в игре,
и в консоле (логе) где то в начале будет список отсутствующих текстур, can't finde ...
Надо в блокноте лишь обработать этот список через замену, и вставить его в программу.
Попробуй через эту прогу, она inside есть. Или этим способом что описано в описании...
добавлено спустя 1 час
st-al-ke-rs-ha пользуясь твоими данными, не использяя _g.script и др скрипты, на чистую игру.
[error]Expression : vertex || show_restrictions(m_object)
[error]Function : CPatrolPathManager::select_point
[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\patrol_path_manager.cpp
[error]Line : 155
[error]Description : any vertex in patrol path [barmen_go_walk] in inaccessible for object [bar_barman]
Похоже со скриптами, что я тебе посоветовал что-то изменили не так или добавили не так.
Расписать как изменять _g.script? Как это я делаю... Из-за такой недоговоренности, наверно мы напартачили... аж лог не пашет. Мне даже интересно в чем же проблема?
добавлено спустя 18 минут
st-al-ke-rs-ha . на диване сетки нет... из-за этого и вылет.
Например вот так можно сделать. Проверил работает. Будет стоять у дивана и повернятьс в barmen_go_look
Addept, да, я действительно тебя не понял, совет действительно дельный, но пользы порою не много. Попробуй способ, что я посоветовал для st-al-ke-rs-ha, ты будешь приятно удивлён информативности лога после вылета.
Да и кстати:
ОБЪЯВЛЕНИЕ ДЛЯ ВСЕХ
Если у Вас стоит ТЧ с патчем 1.0006, то установите себе вот этот фикс: >>Click Me<<, с ним вылеты без лога должны прекратиться.
И ещё, кому интересно, то зайдите и почитайте вот эту тему: Институт модмейкера.
ColR_iT Я использую патч 1.0004 т.к. он самый стабильный.
P.S. Да нет, мы всё правильно делаем, просто сама игра корявая. Вспомните какая она была без патчей? У меня она иногда зависает и дело доходит до ресета. Вот почему они её 10 лет делали
добавлено спустя 4 минут
Можно ещё спросить, что за ужасная программа - Mobile Manager v1.1.004.04a?
добавлено спустя 3 минут
У меня все вылеты из-за неё. А как удалил, так всё получилось.
Сообщение было успешно отредактировано st-al-ke-rs-ha (07-07-2012 13:50 GMT3 часа, назад)
st-al-ke-rs-ha, самый стабильный? Это же от куда такие ума заключения?
ЕЩЁ РАЗ ОБЪЯВЛЕНИЕ
Вот здесь: Институт модмейкера, ведётся набор людей на лекции, через конференцию в Skype по темам: "Основы скриптов" (начало сегодня в 20:00 по МСК), а также "Логика игровых объектов" (начало завтра в 20:00 по МСК).
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.