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

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


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

Для чистого АМК(новичкам и не только)

Я думаю, многие заметили, что после поднятия с земли оружия (которое было у НПС), оно разряжено (с калаша НПС выстрелил раза три, а рожок пустой), что очень сильно портило впечатление от игры, да и реализм страдал. Полазив в файлах, я нашёл решение проблемы - в файле death_manager.script найти строки (их две (для первого и второго слотов)) item:unload_magazine() и удалить их или закомментировать (поставить перед ними два тире).

 

Для того чтобы изменить стартовое количество денег, многие советуют править all.spawn или сделать это скриптом. Но есть способ намного легче - в файл character_desc_general.xml в секцию actor после строки <reputation>0</reputation> добавить -

<money min="1000"max="1000" infinitive="0"/>. min минимальное значения, max максимальное,

infinitive бесконечные ли деньги (если 1 бесконечные, 0 нет). Если указать min = max(как я сделал), то появится 1000 рублей, а если min="100"max="1000" то появится от 100 до 1000 рублей.

 

Также мне не нравилось появление заданий типа «Работы на торговца/бармена» - это квестовые задания. Нашёл способ их убрать:

Файл - info_l01escape.xml удалить строку: <task> esc_trader_job</task>.

Файл - info_l07rostok.xml удалить строки:

<task>bar_barman_job_1</task>

<task>bar_barman_job_2</task>

<task>bar_barman_job_3</task>.

Надо начинать новую игру.

Ссылка на комментарий
...Для того чтобы изменить стартовое количество денег, многие советуют править all.spawn или сделать это скриптом. Но есть способ намного легче - в файл character_desc_general.xml в секцию actor после строки <reputation>0</reputation> добавить -

<money min="1000"max="1000" infinitive="0"/>. min минимальное значения, max нное,

Тут ты не совсем прав. Если в all_spawn не удалить стартовые 40 р., то игра возьмет настройки именно из all_spawn, а на изменение money_min/max ей будет глубоко наплевать.
Ссылка на комментарий

Gun12 игра сначала берет значение из all.spawn, потом из character_desc_....xml, т.е если в xml не будет этого параметра то игра возьмет его из алл.спавна

 

так же можно изменять в character_desc_...xml визуал сталкера, он возьмет его оттуда

 

как бэ получаеться в all.spawn задаються базовые параметры а в xml их можно потом менять

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

Сделал плагин для распаковки игровых архивов для Total Commander-а. Живёт здесь. Протестируйте пожалуйста.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

Как поставить метку на тайник, во время того,как актор выкладывает в него определенный предмет?

Я пробовал в on_item_drop коллбэк ставить, а саму метку как в treasure_manager ставил:

level.map_add_object_spot_ser(box.id, "treasure", text)

или

level.map_add_object_spot(box.id, "treasure", text)

 

Результат один: метка на акторе ставится...

Ссылка на комментарий
Как поставить метку на тайник, во время того,как актор выкладывает в него определенный предмет?

Я пробовал в on_item_drop коллбэк ставить, а саму метку как в treasure_manager ставил:

level.map_add_object_spot_ser(box.id, "treasure", text)

или

level.map_add_object_spot(box.id, "treasure", text)

 

Результат один: метка на акторе ставится...

А откуда у тебя в этом коллбеке box взялся? Ну да ладно. Я попробовал это сделать в колбеке on_item_drop. Вышло что-то в этом роде:

 

function actor_binder:on_item_drop(obj)
    ...
    local sobj = alife():object(obj:id()) -- получаем серверный объект
    level.map_add_object_spot_ser(sobj.parent_id, "treasure", "test test test")
end

Обращаю внимание, что если попытаться получит здесь id родительского объекта через клиентский объект obj:parent():id(), то мы получим всегда 0. т.е. id актора.

 

Если предмет съеден или просто выброшен на землю, то его родитель будет 65535. Вроде бы map_add_object_spot_ser в этом случае не сбивается, но вероятно надо бы проверять это и не делать лишнего. Ну а проверить, что выложили именно в ящик - дело техники. У меня же начали ставиться метки на всё подряд =)

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

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

malandrinus, у меня из скрипта (кажется колмогора):

function add(item)
if item:section() == "test_item" then
	local box = item:parent()
	if box ~= nil then 
                       table.insert(table, box:story_id())
	end
end
end

Коллбэк из он итем дроп.

 

И если вместо table.insert ставить level.map_add_object_spot_ser(box:story_id(), "treasure", "test")

 

Получается метка на акторе...

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

Monnoroch, а, интересно, почему у item обязательно должен быть sid?

 

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

Где есть callback'и на партиклы и что каждый из них в отдельности представляет?

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

Уважаемые, подскажите как вы снимаете координаты для спавна предметов и т.п. в "трудных местах"? Скажем предмет на полке или на шкафу.

 

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

 

Буду благодарен, если кто-то подскажет из знающих.

---------------------------------

www.amk-zone.de

Ссылка на комментарий
И если вместо table.insert ставить level.map_add_object_spot_ser(box:story_id(), "treasure", "test")

 

Получается метка на акторе...

...

видимо у всех коробок в игре есть сид...

Как раз не обязательно у каждой, sid - это дополнительный необязательный идентификатор, что-то вроде специальной метки.

Я проверил и выяснил, что для всех объектов, у которых sid не установлен, и sobj.m_story_id, и cobj:story_id() выдают значение 4294967296. Если посмотреть на шестнадцатеричное представление этого числа, то увидим 0x100000000. Т.е. вообще говоря число выходит за пределы 32-х разрядов, однако младшие 32 разряда равны нулю. Ну вот скорее всего и выходит, что передаёшь ты в функцию почти всегда 0.

 

Только при чём здесь sid? Тебе нужен id коробки, а не sid.

 

А как я ранее предложил, чем не устраивает? У меня работает. Метки ставятся на всё, в чём оставишь предмет: на ящики, на живых сталкеров (после продажи им), на тушки. Осталось только проверить, что id принадлежит коробке, и твоя задача решена.

 

Где есть callback'и на партиклы и что каждый из них в отдельности представляет?

 

Партиклы - это визуальные эффекты такие. Что это такое можно почитать здесь. А как их создавать именно в сталкере написано здесь

 

Вообще говоря в списке коллбеков есть и action_particle (т.е. имеется константа callback.action_particle). Вот только не знаю, куда этот коллбек вешать. Примеров нет, надо экспериментировать.

 

Уважаемые, подскажите как вы снимаете координаты для спавна предметов и т.п. в "трудных местах"? Скажем предмет на полке или на шкафу.

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

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

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

Wlad777,

Есть программа "Position Informer". С помощью этой программы можно точно снимать координаты. Чтобы снять координаты с труднодоступного места необходимо подойти, как можно ближе к этому месту и снять координаты. Затем в консоли набрать rs_stats on (чтобы выключить этот режим надо будет набрать rs_stats off). Высветятся цифры разные. Внизу будут показаны координаты местоположения камеры ГГ. Потом входишь в режим Демо Рекорд (в консоли demo_record 1). И потом подлетаешь к нужному месту и берешь координаты, которые показаны на экране. Затем к этим координатам дописываешь геймвертекс и левелвертекс, которые получил, подойдя как можно ближе к месту сбора координат.

Вот таким извращенным способом можно снимать координаты достаточно точно в любых местах.

 

В СДК координаты не снимешь. Их там нет просто. Координаты появляются только после компиляции.

Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет!

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

подпись тебя оправдует

В СДК координаты не снимешь.

уверен?

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

стоит декомпилировать уровень и в Level Editor всё разложить "по полочкам"

В СДК координаты не снимешь. Их там нет просто. Координаты появляются только после компиляции.

Kostya V

координаты есть всегда, разница в том, что в 3D редакторе они визуализированы

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

Ссылка на комментарий
Партиклы - это визуальные эффекты такие. Что это такое можно почитать здесь. А как их создавать именно в сталкере написано здесь

 

Это уже мне знакомо с прошлого года, что такое партиклы мне известно. А вот есть такой скрипт sr_particle.script. Вроде бы там класс. Надо покопать. :)

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

@ Kostya V: Я пользуюсь функцией позиций Cheat Spawner'a или dbTools dez0wave'a , в зависимости от ситуации. Для спавна неписей или предметов на земле и записи даже сложных путей для вполне хватает.

 

А через demo_record - это конечно изврат. Но раз по другому никак - буду так.

 

 

подпись тебя оправдует

Вас что-то не устраивает?

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

---------------------------------

www.amk-zone.de

Ссылка на комментарий
В СДК координаты не снимешь. Их там нет просто. Координаты появляются только после компиляции.

Сетки нет, возможно? Координаты есть. Ну или я что-то не понимаю. Вот на скринах левел едитора отчётливо видны всякие координаты=)

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

Координаты в игре состоят из X, Y, Z. А также из геймвертексов и левелвертексов. Вот геймвертексы и левелвертексы можно получить только после компиляции уровня. По-другому их не получишь. А то что вы видете в редакторе никак не подойдет для игры.

Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет!

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

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

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

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

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

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

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

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

Войти

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

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

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