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

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


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

@Hind ,

Скрытый текст

Залей сюда на какой-нибудь файлообменник по возможности. Что, куда, зачем менял.  "Напосмотреть" :biggrin:. Быстрее получится.

 

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

@Hind очень крутая штука - script syntax checker.

Строка 15, dmb.script

function muzika

После muzika должны стоять ()

  • Спасибо 1
  • Согласен 1
  • Полезно 1

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

Ссылка на комментарий
1 час назад, Hind сказал:

и через 5 секунд она появляется снова

Поищи, где-то тут были скриптовые модули таймеров. Ну или сам сделай таймер...

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

@Hind Если не требуется перенос через сейв/загрузку, короткую отсрочку можно сделать через level.add_call(проверка, действие).

Spoiler
local t = time_global()

local function delay()
	return time_global() > t + dt
end

level.add_call(delay, fx)

 

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
26 минут назад, Norman Eisenherz сказал:

Если не требуется перенос через сейв/загрузку, короткую отсрочку можно сделать через level.add_call(проверка, действие).

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

Сталкер - наше всё!

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

@AndrewMor "Если не требуется". Действия с короткой отсрочкой, которые после бесполезны после смерти ГГ (основная причина загрузки), вполне можно обрабатывать и так.

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

Всем привет. Есть такой скрипт, снимает координаты актёра -

Скрытый текст

---------------------------------------------------
-- script for posExtracter ver.1.2. Final
--by SmanxX1
--------------------------------------------------
class "pe" (CUIScriptWnd)

function pe:__init(owner,objid) super()
    self.owner = owner
    self:InitControls()
    self:InitCallBacks()
end

function pe:__finalize() end

function pe:InitControls()
    self:Init(300,200,550,450)
    local xml = CScriptXmlInit()
    xml:ParseFile("ui_pe.xml")
    xml:InitStatic("background", self)
    self:Register(xml:Init3tButton("caption", self),"caption")
    self:Register(xml:Init3tButton("caption2", self),"caption2")
    self:Register(xml:Init3tButton("btn_1", self),"btn_1")
    self:Register(xml:Init3tButton("btn_quit", self),"btn_quit")
    self:Register(xml:InitEditBox("edit_box",     self), "edit_box")
end

function pe:InitCallBacks()
    self:AddCallback("btn_1", ui_events.BUTTON_CLICKED, self.pe1, self)
    self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.on_quit, self)
end

function pe:OnKeyboard(dik, keyboard_action)
    CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
    if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
        if dik == DIK_keys.DIK_ESCAPE then
            self:on_quit()
        end
        if dik == DIK_keys.DIK_RETURN then
            self:pe1()
        end
    end
    return true
end

function pe:pe1()
    local edit_box=self:GetEditBox("edit_box")
    local str=edit_box:GetText()
    local qt=true
    if self:check_game() then
        if ((string.len(str)>30) or (string.len(str)==0)) then
            edit_box:SetText("Ошибка!!! Незадано назваеие либо символов больше 30!!!")
            qt=false
        else
            str=string.gsub(str, "%s", "_")
            str=string.gsub(str, "|", "/")
            local pos=db.actor:position()
            get_console():execute("pe_log>>"..str.."|"..level.name().."|_X="..pos.x.."_Y="..pos.y.."_Z="..pos.z.."_gvid="..db.actor:game_vertex_id().."_lvid="..db.actor:level_vertex_id())
            qt=true
        end
    else
        edit_box:SetText("Ошибка!!! Игра не загружена!")
        qt=false
    end
    if qt then self:on_quit() end
end

function pe:on_quit()
    local console = get_console()
    self:GetHolder():start_stop_menu (self.owner, true)
    self:GetHolder():start_stop_menu (self,true)
    self.owner:Show    (true)
    if self:check_game() then
        console:execute("main_menu off")
    end
end

function pe:check_game()
    if level.present() and (db.actor ~= nil) and db.actor:alive() then
        return true
    else
        return false
    end
end

 

 

Мне нужно ещё и direction, направление взгляда. Как сделать?

Ссылка на комментарий
9 часов назад, Norman Eisenherz сказал:

"Если не требуется". Действия с короткой отсрочкой, которые после бесполезны после смерти ГГ (основная причина загрузки), вполне можно обрабатывать и так.

В таком случае - да, согласен

Сталкер - наше всё!

Ссылка на комментарий
1 минуту назад, Colder сказал:

В каких файлах нужно ковырять

treasure_manager.script

Что бы всё не "ломать", думаю, править только осмотр трупа CTreasure:use(npc)

  • Спасибо 1
  • Согласен 1

Здесь могла быть ваша реклама.

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

Здравствуйте. Подскажите функцию:
ГГ получает инфопоршень, после чего у него опускается уровень ПСИ-здоровья до 50% и больше может подняться выше (останавливается так же по инфопоршню).

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

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

Любителям ковырять алл.спаун - мой батник на запаковку.

echo off
cls

set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
set _my_datetime=%_my_datetime:,=_%

rename all.spawn %_my_datetime%.spawn

acdc_soc.pl -c all.ltx -o ./all.spawn
pause

3 часа назад, Colder сказал:

Всем привет. Хочу убрать выдачу тайников с трупов. В каких файлах нужно ковырять? Или может у кого есть уже готовый пример?

treasure_manager.ltx

Имхо, всё, что ниже


ros_secret_0023
ros_secret_0024
ros_secret_0025

 

удалить.

Проверить не могу, локи ещё чистые. Трупов нет.

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

@Houdini_one  Я бы сделал что-то типо:

Скрытый текст

Выдаеться инфопорция ГГ. Срабатывает финкция

 

local timer1 = 0

function функция()
    if has_alife_info("инфопорция") then
    local timer2 = time_global()
        if timer1 < timer2 then
        db.actor.psy_health = - 0.05
            timer1 = timer2 + 1000
        end
    end
end

 

Удаляем инфопорцию когда нужно.

 

 

Изменено пользователем Colder
Ссылка на комментарий
18 часов назад, mole venomous сказал:

Что бы всё не "ломать", думаю, править только осмотр трупа CTreasure:use(npc)

Можно в treasure_manager.ltx прописать каждому тайнику заведомо невыполнимое условие для выдачи.

  • Полезно 1

Сталкер - наше всё!

Ссылка на комментарий
48 минут назад, AndrewMor сказал:

Можно в treasure_manager.ltx

Для классических тайников. Для случайных и редких, по типу АМК-шных, генерация содержимого, вроде, не зависит от этого кондлиста (если ручками не добавлять). :unknw: А вообще, если нужно полностью исключить возможность получать тайники с трупов, думаю, стоит сразу обрубить это в самом начале, при обыске жмурика, что бы ничего не обрабатывать зря.

Изменено пользователем mole venomous
  • Полезно 1

Здесь могла быть ваша реклама.

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

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

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

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

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

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

Войти

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

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

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