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

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


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

Всем доброго времени суток.

 

Как безболезненно убрать оригинальный сюжет в ТЧ чтоб потом сделать свой?

И как сделать, чтоб можно было разговаривать со сталкерами любой группировки, и возможность дать им аптечку? Пробовал каждому прописать

#include "gameplay\character_dialogs.xml" не помогает.

 

 

 

Ссылка на комментарий
Как безболезненно убрать оригинальный сюжет в ТЧ чтоб потом сделать свой?

Работа будет аццкая: убирать инфопоршни, убирать логику спейс_рестрикторов и некоторых неписей, убирать диалоги у квестовых неписей, и т.д. кароче гемор огромный

И как сделать, чтоб можно было разговаривать со сталкерами любой группировки, и возможность дать им аптечку?

в скрипте xr_wounded.script

найди такой кусок:

    if self.object:relation(db.actor) == game_object.enemy then
        self.object:disable_talk()
    else
        self.object:enable_talk()
    end

замени на:

self.object:enable_talk()

 

 

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

При начале игры в оригинале, есть дохлые неписи которые не убираются со временем:

сталкер возле туннеля с электрами на кордоне, парочка сталков в лаборатории в ТД (один из них валяется в комнате с огненным полтергейстом). Смотрел их параметры в декомпиленном аллспавне, пытаясь понять, что же не дает их релизить. Ничего особенного не нашол, их параметры ничем не отличаются от живых сталков, разве что хэлсом :D.

а теперь у мну вопрос: что нуно изменить в сталкере заспавленном через alife:create(... и тут же убитом через нет_пакет, чтобы его труп тоже не исчез со временем :dash2:

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий

kirag - чисто любопытствую - через какую схему ты сделал управление ракетой? (и в каком плане управление - вправо_влево, вверх-вниз?

Я тут тоже с партиклами вожусь - но у меня проще - просто бомба с дистанционным управлением - (знаю что здесь на АМК сайте - уже кто-то сделал что то подобное - но у меня свой скрипт)

Вот ты в качестве позиции для отыгрыша партикла использовал self.object:position()) у меня же particles_object("explosions\\explosion_01"):play_at_pos(pos)

где local pos = bomb_obj:position() а bomb_obj = level.object_by_id(obj_id) - айди объекта получаю при его спавне перед ГГ после удаления из инвентаря - получается фишка с закладкой бомбы через меню дистанционного пульта (ну дальше врубаем таймер через пульт и вали подальше :-))

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

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

 

В общем ладно: вопрос то у меня другой:

столкнулся с проблемой телепортации эктора без указания точных координат точки перемещения:

мне нужно было перемещение на заданную дистанцию, а не в конкретную точку.

использовал в качестве позиции точки перемещения - позишен ГГ со смещением по радиусу от ГГ и позишен ГГ со смещение по вектору z - но оба метода портируют эктора под карту. (при спавне объектов оба метода отлично работают)

попробовал накидать вот такую функцию с использованеим метода level.vertex_in_direction

 

function set_pos()

local ang = 0.5

local dir = vector_rotate_y(db.actor:direction(), ang)

local pos = db.actor:position()

local dist = 50

local lvid = level.vertex_in_direction(db.actor:level_vertex_id(),dir, dist)

local gvid = db.actor:game_vertex_id()

db.actor:set_actor_position(pos, lvid, gvid)

end

 

но это вообще никак не работает - нет ни вылета, ни действия (если функция в корне неправильная - подскажите где)

Есть рабочая метода портирования эктора на заданную дистанцию?

Изменено пользователем Garry_Galler
Ссылка на комментарий
теперь у мну вопрос: что нуно изменить в сталкере заспавленном через alife:create(... и тут же убитом через нет_пакет, чтобы его труп тоже не исчез со временем

ответ найден, если кому интересно - достаточно перепаковать сталка сразу же после alife:create до перехода в онлайн добавив ему стори_ид :grin2:

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий

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

 

Что же касается вопроса про телепорт, то ошибка в методе set_actor_position: у него единственный аргумент - вектор позиции, гейм и левел вертексы в данном случае не нужны. Далее, в качестве точки назначения ты передаешь pos = db.actor:position(), т.е. текущую позицию актора. Если и сработает - не заметишь. Нужно передавать координаты назначения, например, pos1. Ну, как рассчитать pos1 - разберешься.

Т.е. сам перенос будет выглядеть вот так:

 

db.actor:set_actor_position(pos1)

 

 

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

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

Kirag

интересно будет увидеть твою работу в действии. :good:

 

Телепорт - насчет метода db.actor:set_actor_position я понял, что вертексы туда вообще не передаются, а значит метод level.vertex_in_direction

вообще не в тему.

 

но альтернатива в виде

function set_teleport()

local radius = 100

local ang = 0.5

local dir = vector_rotate_y(db.actor:direction(),ang)

local a = db.actor:position():add(dir:mul(radius))

db.actor:set_actor_position(a)

end

 

и этого

function set_tele()

local pos, z_offset

z_offset = 50

pos = db.actor:position()

pos.z = pos.z + z_offset

db.actor:set_actor_position(pos)

end

 

портирует строго под карту. То что туда обычно передаются точные координаты по векторам - я знаю. Но мне ведь надо другое - перемещение эктора на заданную дистанцию.

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

 

короче поэкспериментировал сразу со всем векторами - задал по x и z по 50 и 5 по y (50 оказалось много - получались прыжки в длину и высоту одновременно) - для страховки на случай если точка перемещения окажется выше начальной позиции - прогресс есть, но из 10 портаций - две-три все равно под карту. И есть уклон перемещения от прямой линии. Может по x не задавать смещение?

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

Kirag, Garry_Galler, Gonarh

Эх ребята ! Разобрались бы Вы вместе с этими телепортами.

Глядишь и здесь бы дело с места сдвинулось:- http://www.amk-team.ru/forum/index.php?showtopic=7881

Ведь об одном и том же говорите, только вразнобой, на мой (не програмистский) взгляд.

 

ЗОНА ДОЛЖНА БЫТЬ НЕПРЕДСКАЗУЕМОЙ !!! НЕТ ТАМ ЛОГИКИ И НЕ НУЖНА ОНА ТАМ !!!
Ссылка на комментарий

Garry_Galler,

function teleport()
    local dist = 20
    local want_pos = device().cam_pos:add(device().cam_dir:mul(dist))
    local lvid = level.vertex_id(want_pos)
    local lpos = level.vertex_position(lvid)
    if want_pos:distance_to(lpos) < dist/2 then
        db.actor:set_actor_position(lpos)
        return
    end
    lvid = level.vertex_in_direction(db.actor:level_vertex_id(),db.actor:direction(),dist)
    lpos = level.vertex_position(lvid)
    db.actor:set_actor_position(lpos)
end

телепортирует только туда, где есть лэвэл вертексы.

Работает на ЧН и ЗП.

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

Bak

Огромное спасибо. Отличная формула - то что она работает тока на ЧН и ЗП не совсем точно:

я ее слегка поправил (строчку local lvid = level.vertex_id(want_pos) - на которую игра ругалась) и она заработала и на ТЧ.

Никаких казусов под карту - отлично перемещает. Жаль что сквозь стены не получается - эктор упирается в объект в случае если на пути телепортации таковой встретится.

 

Теперь наконец то добавил кнопку телепортация в свой ручной пульт, на который вешаю разные полезные функции. :ok5:

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

Gonarh

 

Работа будет аццкая: убирать инфопоршни, убирать логику спейс_рестрикторов и некоторых неписей, убирать диалоги у квестовых неписей, и т.д. кароче гемор огромный

 

Спасибо за ответ. Процесс пошел))

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

Теперь наконец то добавил кнопку телепортация в свой ручной пульт, на который вешаю разные полезные функции.

 

А можно об этом попдробнее?

ЗОНА ДОЛЖНА БЫТЬ НЕПРЕДСКАЗУЕМОЙ !!! НЕТ ТАМ ЛОГИКИ И НЕ НУЖНА ОНА ТАМ !!!
Ссылка на комментарий

strong

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

Теперь для быстрого перемещения по карте есть и кнопочка телепортация.

На любую доп. кнопочку могу подвесить активацию нужного скрипта.

Очень удобно - а то раньше все новые функции для через дроп вещи запускал.

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

Gonarh

а также все кому нужно.

Чит-меню (открывается через использование ноутбука - итемс продается у сидора) для вступления в группировки, телепортации и активации любых скриптов.

вот ссылка _http://ifolder.ru/14360707

 

добавил две свободные кнопки для доп. скриптов - (они чуть вышли за рамку меню - но это не имеет значения, так как все кнопки работают)

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

Помогите. Перечитал несколько статей по созданию иконок к оружию, но нигде не встретил, как конкретно выщетать положение аддона. Подскажите, как это сделать

Мои работы ТЫЦ

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

Storyteller,

Есть замечательная программа - SIE - за авторством камрада malandrinus.

Ссылка на программу в подписи malandrinus. С этой программой можно забыть о проблемах с иконками. Она всё сделает быстро и качественно, в том числе и координаты аддонов высчитывает.

вот ссылка на тему

 

Writer

Не совсем понял вопрос...

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

 

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

Я может не в тему, но очень интересно(если не в тему, пожалуйста не баньте)):

Кто автор этого чуда:

39d1942a2b77t.jpg

Я ВЕРНУСЬ И НАДЕРУ ВСЕМ ЗАДНИЦЫ (С) УИЛЛИС

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

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

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

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

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

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

Войти

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

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

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