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

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


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

Кто знает, в Народной Солянке Панорамик Мод какой версии и полностью он там, ну весь мод включили в Солянку или только какую то частиь..?

Там своя уникальная погода. На основе Панорамика вроде.


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

Новых, добавленных монстров нужно где-то дополнительно регистрировать/прописывать, кроме как прописать секцию этого монстра в папке creatures, в соответсвующем файле? Просто добавил 2 новых монстров в Солянку, в конфиге сослался на секции уже существующих в моде монстров (лишь иммунитеты "покрепче" сделал, ну и иконка своя). При спавне этого нового монстра в консоли краснота - Cannot build game path (["название секции монстра", координаты спавна] Вроде как жалуется на некорректный спавн. Вылета нет. Спавню по этим координатам 2ого нового монстра, ситуация такая же - Cannot build game path.... Но стОит заспавнить по этим самым же координатам "родного" монстра (любого) как красноты в консоли нет - все ОКей.

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

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

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

S.T.A.L.K.E.R 1.004, Народная..Солянка от 19.04.10, дополнение 14.08.10, патч 3.09.10, DMX 1.3.5, Saruman addon 1.1

Vkontakte

Добавление нового транспорта в сталкер

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

Лучше спросить глупость, чем её совершить.

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

решил разделить ui_npc_unique.dds на две части, новую текстуру прописал в textute.ltx создал новый xml файл дописал туда иконки из нового файла со старыми идентификаторами, но почему то не находит игра иконки с этими идентификаторами, что я неправильно делаю?

S.T.A.L.K.E.R 1.004, Народная..Солянка от 19.04.10, дополнение 14.08.10, патч 3.09.10, DMX 1.3.5, Saruman addon 1.1

Vkontakte

Добавление нового транспорта в сталкер

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

saruman_ten, в system.ltx нужно этот xml файл дописать в секцию texture_desc. Там написано

files = ui_mp_icon_rank, ui_icons_map, ... , ui_buy_menu, ui_asus_intro

Вот после азуса пишешь запятую и имя своего файла без расширения (т.е. без .xml).

ТЧ 1.0004. SAP и Trans mod

github

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

Desertir, по второму тоже вылет

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CScriptEngine::lua_error

[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp

[error]Line : 73

[error]Description : <no expression>

[error]Arguments : LUA error: ...s\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:192: attempt to index global 'main_sleep' (a nil value)

 

 

stack trace:

 

 

Как я понял ошибка в main_sleep.script, но где именно до меня не доходит, если можешь подскажи

function sleep(obj)
   if obj ~= nil then
      if obj:section() == "sleep_bag" then
       local hud = sleep_ui(get_hud())
         level.start_stop_menu(hud, true)
    end
    end
end


class "sleep_ui" (CUIScriptWnd)

function sleep_ui:__init(owner) super()
    self.owner = owner
    self:InitControls()
    self:InitCallBacks()
end

function sleep_ui:__finalize() end

function sleep_ui:InitControls()
    self:Init(50,50,550,450)

    local xml = CScriptXmlInit()
    xml:ParseFile("ui_sleep.xml")

    xml:InitStatic("back_video", self)

    xml:InitStatic("background", self)

    self:Register(xml:Init3tButton("caption", self),"caption")
    self:Register(xml:Init3tButton("btn_1", self),"btn_1")
    self:Register(xml:Init3tButton("btn_2", self),"btn_2")
    self:Register(xml:Init3tButton("btn_3", self),"btn_3")
    if db.actor.health < 0.9 then
    self:Register(xml:Init3tButton("btn_4", self),"btn_4")
    end
    self:Register(xml:Init3tButton("btn_quit", self),"btn_quit")
end

function sleep_ui:InitCallBacks()
    self:AddCallback("btn_1", ui_events.BUTTON_CLICKED, self.sleep_ui1, self)
    self:AddCallback("btn_2", ui_events.BUTTON_CLICKED, self.sleep_ui2, self)
    self:AddCallback("btn_3", ui_events.BUTTON_CLICKED, self.sleep_ui3, self)
    if db.actor.health < 0.9 then
    self:AddCallback("btn_4", ui_events.BUTTON_CLICKED, self.sleep_ui4, self)
    end
    self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.on_quit, self)
end

function sleep_ui: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_NUMPAD1 then
            self:sleep_ui1()
        end
        if dik == DIK_keys.DIK_NUMPAD2 then
            self:sleep_ui2()
        end
        if dik == DIK_keys.DIK_NUMPAD3 then
            self:sleep_ui3()
        end
        if dik == DIK_keys.DIK_NUMPAD4 then
            self:sleep_ui4()
        end
    end
    return true
end

function sleep_ui:sleep_ui1()
        main_sleep.sleep_one_hour()
        self:on_quit()
end
function sleep_ui:sleep_ui2()
        main_sleep.sleep_three_hours()
        self:on_quit()
end
function sleep_ui:sleep_ui3()
        main_sleep.sleep_nine_hours()
        self:on_quit()
end
function sleep_ui:sleep_ui4()
        main_sleep.sleep_health(scale)
        self:on_quit()
end

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

function sleep_ui:on_quit()
    self:GetHolder():start_stop_menu(self, true)
    alife():create("sleep_bag", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end

function sleep_one_hour()
    main_sleep.main(1)
end

function sleep_three_hours()
    main_sleep.main(3)
end

function sleep_nine_hours() сон девять часов
    main_sleep.main(9)
end

function sleep_health(scale)
    local sleep_time = (1 - db.actor.health)*5.00
    main_sleep.main(sleep_time)
end

function main(scale)
    basic_time_factor = level.get_time_factor()
    db.actor:stop_talk()
    db.actor:hide_weapon()
    level.disable_input()    
    main_sleep.starter(scale)
end

function starter(scale)
    local factor = scale * 2650
    game.start_tutorial("time_scaling")
    level.set_time_factor(factor)
end

function dreamer()
    level.set_time_factor(basic_time_factor)
    local dream = dream.sleep_video_name_callback()
    if dream ~= "" then 
        game.start_tutorial(dream)
   else 
        game.start_tutorial("without_dream") 
   end
end

function stopper()
    level.add_cam_effector("camera_effects\\dream.anm", 1, false, "")
    db.actor:restore_weapon()
    level.enable_input()
    level.add_pp_effector("yantar_underground_psi.ppe", 222, false, "")
    if db.actor.health <= 0.60 then
    main_sleep.eat_food()
    end
end

function eat_food()
if db.actor:eat(db.actor:object("conserva")) ~= nil or
   db.actor:eat(db.actor:object("bread")) ~= nil or
   db.actor:eat(db.actor:object("kolbasa")) ~= nil then
   end
end

 

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

Лучше спросить глупость, чем её совершить.

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

лнкс,

Способ проверки написанных скриптов на синтаксис.

1. Создаём файл

*.script, или *.lua, в корневой папке игры (рядом с папкой gamedata). Хотя расширение не имеет значения. Хоть *.txt, или *.blabla. Назавём его для примера new_test.script

 

2. Создаём функции, в удобном для вас файле. Например в вновь созданом _proxy.script:

function func_test()
    local res, err = pcall(_proxy.start_chunk_from_file)
    get_console():execute(res and "GOOD!!!" or string.gsub(err, " ", "_"))
end

function start_chunk_from_file()
    local chunk, err = dofile("..\\new_test.script")
    if err then
        get_console():execute("err="..tostring(string.gsub(err, " ", "_")))
    end
end

 

3. Прописываем вызов функции func_test() из любого удобного для вас места. Я поставил её вызов на использование бинта, с его респавном. Удобно тем, что вызов можно производить в любой ситуации, нажатием соответствующей клавиши (по умолчанию "}").

 

4. Берём код скрипта, который нужно протестить, и пихаем его в наш файл new_test.script

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

Если отобразится "GOOD!!!", значит синтаксис в порядке. Иначе выведет строку, в которой была произведена синтаксическая ошибка и код с её описанием.

 

6. Для проверки на работоспособность кода, в конце тела файла new_test.script, прописать вызов нужной функции из данного файла.

 

 

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

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

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

Опаа-а!!! Ливер вылез!

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

еще замечу ,что мододелы иногда ленятся и пишут текст непосредственно в файлах диалогов или тасков,так что файлы все равно смотреть придется

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

помогите, как сделать чтобы ГГ на крыше появлялся, включался пролет камеры и над крышей летал вертолет, стреляя в ГГ?

(не умею делать логику вертолета и пролет)

777T15074.png
Ссылка на комментарий

Мой вопрос не совсем по теме, но нигде и ничего по этому поводу не нашёл.

На версии Сталкера 1.0004(в частности и на AMK моде), при попытке узнать у НПС'а "Что можешь рассказать интересного" вылетает с логом

FATAL ERROR

[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ...s.t.a.l.k.e.r\gamedata\scripts\dialog_manager.script:287: attempt to index local 'tbl' (a nil value)


stack trace:

Так же происходит вылет при загрузке любого сохранения кроме аутосейвов и самого первого сохранения "all"

FATAL ERROR

[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ...s.t.a.l.k.e.r\gamedata\scripts\dialog_manager.script:393: attempt to compare number with nil


stack trace:

На остальных версиях всё работает нормально.

 

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

Черный воин

Прошу вас не писать всякий бред. У него не может быть проблема в диалог_менеджере, т.к. он его не правил

MaximusTQ

А можешь выложить 283-287 строку диалог_менеджера?

Freedom

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

_Призрак_, Немногим ранее я уже писал в этой теме, у меня тот же вылет был на чистом 1.0004. Многие пытались но разобраться так и не получилось.

MaximusTQ, Мне помогла переустановка игры и загрузка с ранних сейвов. А на какой локации вылет ?

Ссылка на комментарий
strchi, можно сделать что-то вроде вертолета с моделью шарика, и привязать к тому обьекту партиклы. И чтоб он перемещался вместе с актором... Изменено пользователем PavelSnork
Жду ли я Сталкер 2? Хм...
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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