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

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


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

прифигел, увидев упоминание про 4356-ю строку в _g.script ... Эт сколько же туда нужно понапихать, чтобы так разрослось с исходных 870-ти? Ты весь мод туда запихнул что ли? ;-)

Да это не я напихал. Я уже просто пытаюсь проверить этот паковщик путем упаковки 100% рабочего мода. Это СГМ 2.2.

Паковал его просто в gamedat`у. И ложил эти файлы папку patches - игра запускалась, входил в меню, но запуск игры не происходил, вылетало с вышеуказанным логом. Затем брал эти же запакованные файлы, распаковывал их и уже просто кидал в папку gamedata и все нормально, игра шла без проблем.

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

 

Ладно, спасибо за подсказки и помощь.

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

Кто знает точное значение параметров in_restr и out_restr в логике персонажей? Принудительное указание зон куда низзя входить-выходить?

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

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

Ведь не зря про лог и строку в логе о 'file' упомянул ... Хорошо хоть название мода упомянул и мне не лень в него глянуть.

Твоя проблема в том, что в моде при старте игры идет попытка загрузки данных из файла "gamedata/configs/mod_parameters/save_data/save_data.sgm", а ты этот файл вероятно тоже упаковал.

К сожалению, моддмейкеры мода SCM v2.2 не позаботились о безопасном коде и не стали проверять считан ли файл с диска, и сразу пытаются читать из него данные ... вот и вылет.

В общем, как уже ранее было сказано, методом проб и анализа можно определить какие файлы/папки нельзя упаковывать и они обязаны быть "физически" на диске. Так же, иногда моддмейкеры пишут свои данные в папки (файлы), а игра без расширителей и соответствующих кодов, не может создавать сама отсутствующие папки, они заведомо должны уже присутствовать на диске.

Итого, как минимум для мода SGM2.2 требуется наличие хотя бы пустой папки gamedata/configs/mod_parameters/save_data и из-за некорректности конкретного кода - в ней обязан лежать save_data.sgm, т.к. из виртуальной папки этот файл и не видится игрою и он, как понимаю, должен быть доступен для изменений.

 

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

Clayman, ты задал бессмысленный вопрос.

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

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

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

Ссылка на комментарий
Artos, не совсем понял твой ответ. В логике часто встречается этот параметр, причем как в секции remark так и walker с указанием определенных рестрикторов, вот я и спросил на что влияет этот параметр.
Ссылка на комментарий

Clayman, если задавать вопросы сам того не понимая что спрашиваешь, то конечно понять ответ сложно ...

Прочти свой "бессмысленный" вопрос(!) в котором спрашиваешь о "точном значении параметра" (которого нет для всех в Зоне), а теперь переспрашиваешь о том, не что же влияет этот параметр. Это примерно, спросить каков точный вес у чего-то в Зоне, не уточняя у чего, и подразумевая "а на что вес влияет?" ...

Частично на твой второй вопрос ответ есть тут: #8367 (используй самостоятельно поиск по форуму!).

Ну и если названия переменных in_restrictor и out_restrictor в скриптах сопоставить с их аналогами в конфигах секций логики (несколько сокращены имена), то и получишь ответ на свой вопрос "на что же влияют" эти параметы. По-простому, значения этих параметров в активной логике прописываются в соответствующие параметры для неписей, что и определяет их поведение относительно разрешенных или запретных зон.

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

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

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

Простите за офф-топик, как сделать чтобы в ЗП переходы отображались на карте?

А также у меня при попытке заспавнить "метку на карте" (простите за мой простонародный слэнг) батник отказиваеться собирать алл спавн(

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

47.gif

LXTwrBW.png
ukgXKMe.png

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

Outlaw, привожу способ, когда-то, кем-то в этой теме описанный:

 

Делаешь скрипт,например, lev_ch.script, в него пишешь:

Код

function level_changer()

if not has_alife_info("info_new_level") then

put_spots()

db.actor:give_info_portion("info_new_level")

end

end

 

function put_spots()

for i=1,65534 do

local obj = alife():object(i)

if obj then

if obj:name() == "Название 1-го левел чэнджера" then

level.map_add_object_spot_ser(obj.id,"level_changer_up","Подпись 1")

elseif obj:name() == "Название 2-го левел чэнджера" then

level.map_add_object_spot_ser(obj.id,"level_changer_up","Подпись 2")

elseif .....

end

end

end

Название берётся из поля name level_changer'а в all.spawn;

Подпись - например, "На Кордон".

Далее, в bind_stalker.script после function actor_binder:update(delta) надо написать lev_ch.level_changer()

и в файл info_portions.xml вставить строку

<info_portion id="info_new_level"></info_portion>

 

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

Clayman, конечно это "кому-то", кто написал процитированное тобою нужно бы адресовать:"А головою кто будет думать?", но и тебе стОит более критично цитировать ...

Далее, в bind_stalker.script после function actor_binder:update(delta) надо написать lev_ch.level_changer()
Это для того, чтобы один раз в самом начале игры поставить метки дается совет ставить проверку и выдачу каждые 20ms на потяжении все игры? :wub:

Ну посмтотите тот саму функцию actor_binder:update(delta)!

Ведь все уже есть готовое:

    if self.bCheckStart then
        printf("SET DEFAULT INFOS")
        if not has_alife_info("global_dialogs") then
            self.object:give_info_portion("global_dialogs")
        end
        if not has_alife_info("level_changer_icons") then
            self.object:give_info_portion("level_changer_icons")
        end
        self.bCheckStart = false
    end

- и инфопоршень ("level_changer_icons") именно для отображения иконок переходов и именно только один раз при первом апдейте ...

Всего то нужно вставить сюда (при выдаче инфопоршня) вызов lev_ch.put_spots() или даже саму функцию.

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

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

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

Всем привет, столкнулся с проблемой xml верстки — не могу сделать сброс на новую строку в ста советах. Подскажите пожалуйста, знающие люди.

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

Здравствуйте,не могу адаптировать мод конечное количество болтов автор Charsi ,прописываю в бинд.сталкере ,в system.ltx прописал .Но при загрузке сохранения,вылет .Вот лог .

FATAL ERROR

 

[error]Expression : !m_error_code

[error]Function : raii_guard::~raii_guard

[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp

[error]Line : 748

[error]Description : ...e.r. trilogy\cop\gamedata\scripts\bolt_binder.script:36: attempt to index field 'actor' (a nil value)

 

 

stack trace:

 

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

Да еще адаптирую с ТЧ на ЗП . ;)

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

С чем может быть связан подобный вылет сборки спауна? В ACDC новые предметы прописал, на локациях заспаунил, а спаун не собирается

 

b9d21ba44df4066361fddcad59f52669.jpg

 

Выводы модмейкера:

1)Вылетает - это хорошо. Значит, работает :)

2) Если хочешь сделать что-то хорошо, делай сам!

3) Если падёшь духом, падёт и мод.

4) Он живой... :o

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

SibireaStalker, а с чего ты решал, что если в распаковку all.spawn'а ты засунешь свои "новые" предметы, то компилятор должет с ними собрать all.spawn? Ты позаботился, чтобы скрипт компилятора знал что это за предметы (их класс) и как их прописывать?

Загляни в тему "Universal ACDC и другие perl-скрипты" и почитай что к чему ...

(или ручками правь acdccop.pl и stkutils или используй универсальный, не забывая пересканировать конфиги мода)

 

 

 

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

satanian

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

2. При правке/адаптации скриптов следует в первую очередь иметь навыки работы со скриптами и думать головою, и только во вторую - работать руками.

Тебе лог говорит, о возникшей ошибке с ключом/полем 'actor' - вот и разбирайся по имеющимся у тебя скриптам, почему у тебя отсутствует.

 

 

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

Buttmammal

В окне загрузки игры (ЗП) выводятся три строки: заголовок, номер "совета" и текст "совета".

Каждая строка обрабатывается парсером игры и не допускает кроме текста никаких иных тэгов. Исключение только для шаблонов типа $$ACTION_USE$$.

Переносы строк осуществляются только по достижению строки текста размера окна для вывода.

 

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

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

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

Ссылка на комментарий
Artos, да, спасибо. Я уже пришел к пониманию сего наигрустнейшего факта — любые теги отображаются в теле совета между <text> и </text> и ничего тут не поделаешь. Придется избавлятся от абзацев и прямой речи... Всем участвовавшим еще раз спасибо.
Ссылка на комментарий

Помогите прояснить ситуацию с параметром max_population в настройке смарта. Допустим есть смарт, неважно, пусть ds_a5, max_population = 1, Т.е, принимает один сквад. Я ставлю туда один сквад с target_smart = ds_a5, потом смотрю - в него прпирается еще один, симуляционный сквад, который без target_smart. Получается, что параметр max_population определяет количество только симуляционных сквадов, которые может принять смарт при условии sim_avail = true? Я прав? Просто тогда при планировании работ для смарта это нужно учитывать и добавлять работы.

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

Clayman

Параметр max_population в конфиге смарта не задает жесткое ограничение на максимум.

При определенных ситуациях в: function se_smart_terrain:target_precondition(squad, need_to_dec_population) - происходит искусственное увеличение на единичку кол-ва допустимых сквадов.

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

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

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

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

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

Clayman, не ленись, за тебя изучать скрипты и растолковывать все подробно врядли кто-то будет.

Читая скрипты ты и навыков и знаний собственных а не "даденых" набираешься.

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

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

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

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

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

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

Спасибо за разъяснения. Просто хотелось понять этот механизм, потому как -

их всегда должно быть не меньше чем имеющихся в Зоне неписей
тоже не совсем корректно. Что толку, если я понаделаю 30 симуляционных смартов с кучей работ, а к примеру сквады идут только в один, игнорируя max_population...

 

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

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

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

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

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

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

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

Войти

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

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

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