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

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


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

Мля я вопрос задавал а они подписи мои обсуждают. Повторю, подскажите плиз, даже подпись убрал только чтоб вы обратили внимание НА ВОПРОС!!!

Как уменьшить размер клеток в инвентаре как это сделано в NLC и Народной Солянке??? Очень нужно!

Заранее спасибо!

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

Rezonance, тебе смотреть inventory mod by Rusya и еще ОБЯЗАТЕЛЬНО обратиться к психиатору - уж больно нервный...

 

ВСЕ,А как прописать скриптом логику?Надо чтобы просто стоял на месте,но без дэнжер игнора...

Изменено пользователем Monnoroch
Ссылка на комментарий
Надо чтобы просто стоял на месте,но без дэнжер игнора...

[smart_terrains]
none = true

[no_smart] 

[logic]
active = remark

[remark]
anim = wait

но... как тока появица данжер - непись сорвется с места B)

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий

RvP, открой любой xml сталкера и увидишь.Там эти инклуды кучами разбросаны,в каждом профиле...

(разумеется,относится только к файлам сталкера)

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

[smart_terrains]

none = true

 

[no_smart]

вот изза этой хрени в гулаг как раз таки и не засосет :rolleyes:

 

А когда дэнжэр кончится он вернется?

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

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий
А в *.xml файлах существует чтото типа инклудов?

Разумеется в стандарте XML нет никаких инклюдов. Я так понимаю, что движок сначала прогоняет файлы через свой препроцессор, который собирает файлы в памяти, а только потом его парсит. Это относится и к LTX, и к XML файлам.

 

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

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

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

 

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

а ты сам попробуй и проверь :grin2: заодно и нам расскажешь

но в гулаг он полюбому не пойдет - его гулаг не примет изза наличия указанных мною секций

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

В общем попытался заставить спавниться на месте взрыва гранаты чувака из свободы. Сделал скрипт из двух выполняющихся при апдейте функций (два таймера, выполняющих набор операторов при каждом апдейте. таймер №2 и таймер №3) и одной добавки к функции. Вот добавка к функции на ловлю клавиш в main_menu:

        if dik == DIK_keys.DIK_S then
            local i, obj
            grenadeArr = {}
            numGrenade = 0
            for i=1,5 do
                obj = alife():create("grenade_f1",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
            end
            for i=1,65534 do
                obj = alife():object(i)
                if obj then
                    if obj:section_name() == "grenade_f1" then
                        if obj.parent_id == db.actor:id() then
                            numGrenade = numGrenade + 1
                            grenadeArr[numGrenade] = obj.id
                        end
                    end
                end
            end
            sTimer_2 = true
            logs ("Всего гранат "..numGrenade.." "..tostring(sTimer_2))
        end

В кратце суть:

Спавним в рюкзак актору 5 фенек. Теперь перебираем все оффлайновые гранаты и те, которые находятся в ящике у актора запоминаем их иды в таблицу. Запоминаем и число этих гранат. Включаем таймер номер два.

Вот его содержимое:

function timer_2()
if sTimer_2 == true then
    local i, obj
    for i=1,numGrenade do
        obj = alife():object(grenadeArr[i])
        if not obj then
            logs ("Граната с №"..level.object_by_id(grenadeArr[i]):id().." кинута")
            sTimer_3 = true
            condID = grenadeArr[i]
            sTimer_2 = false
            return
        end
    end
end
end

Вкратце, что делаем. Перебираем все гранаты, если какой-то не находим в рюкзаке, то значит, что актор её кинул. (здесь пока не разбирал случай, при котором актор, может быть, продал её, или выбросил) Значит запоминаем ид этой гранаты. Врубаем третий таймер, а второй выключаем.

function timer_3()
if sTimer_3 == true then
    if coord == nil then
        coord = vector()
    end
    local obj
    obj = level.object_by_id(condID)
    if obj then
        coord = obj:position()
        if up == nil then
            up = 1
        else
            up = up+1
        end
    else
--обновление списка гранат, которые имеются у актора
        local tmp = {}
        local k = numGrenade
        numGrenade = 0
        for i=1,k do
            obj = alife():object(grenadeArr[i])
            if obj then
                if obj:section_name() == "grenade_f1" then
                    if obj.parent_id == db.actor:id() then
                        numGrenade = numGrenade + 1
                        tmp[numGrenade] = obj.id
                    end
                end
            end
        end
        grenadeArr = {}
        for i=1,numGrenade do
            grenadeArr[i] = tmp[i]
        end
        logs ("Чувак заспавнен на "..coord.x.." "..coord.y.." "..coord.z)
--конец обновления
        logs ("Граната №"..condID.." взорвана. Всего апов между взрывом и киданием "..up)
        sTimer_3 = false
        sTimer_2 = true
        alife():create("sim_default_freedom_4",coord,db.actor:level_vertex_id(),db.actor:game_vertex_id())
        up = 0
    end
end
end

Здесь постоянно обновляем координаты гранаты. Делаем так, если граната кинута, то она должна перейти в онлайн. Если вдруг мы её не находим, то значит она взорвалась. Теперь обновляем таблицу с гранатами (ведь мы одну выкинули) и спавним чувака на последнем месте взрыва гранаты.

Вроде всё правильно, НО:

вы видите, что у меня есть:

        logs ("Граната №"..condID.." взорвана. Всего апов между взрывом и киданием "..up)

В игре пишет:

Граната № ... взорвана. Всего апов между взрывом и киданием 1 :( Чё делать

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

RvP,

destroy_time

 

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

all,

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

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

Братья Сталкеры! Кто может подсказать, что нужно сделать, что бы пройти контролера на Янтаре (да и не только там!). Еще к двери не подощел , а уже идет пси-удар (или просто пси-излучение), да так , что и не подойти к двери - умираешь! После смерти смотришь, контролер даже не смотрит в твою сторону.Как и где можно уменьшить урон от конторлера?

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

Vitaly,

 

По моему так:

gamedata\config\creatures\m_controller.ltx

В файле m_controller.ltx

 

Ищешь строку

 

PsyAura_Radius = 20 ;30 радиус поражения контроллера если поставить 5, то будет 5 метров.

PsyAura_Damage = 0.05 пси-урон если ставить меньше, меньше будет отнимать здоровья.

SC2dCs2.png

 

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

Приветствую всех!

Назрел один вопрос. Значится существует один класснейший аддон для АМК - "напарники". Решил я его себе поставить в свою небольшую солянку, но... Там своя схема лечения, а у меня установлен "Healing Enemies v 0.3", и не хотелось бы его затереть. Пробовал совмещать сам - вылеты, в основном без лога. Вобщем, вопрос такой: возможно ли "урезать" "напарников", убрав все, связанное с лечением, и оставив лишь возможность нанимать неписей для сопровождения (скучно одному по Зоне бродить :grin2: ) и для огневой поддержки, и как это сделать?

Заранее благодарен.

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

Garrett, возможно,но вряд ли кто-то согласиться это делать.

И кстати думаю вряд ли эти моды друг другу мешают ..При хорошем совмещении разумеется...

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

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

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

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

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

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

Войти

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

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

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