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

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


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

Dennis_Chikin, за особую работоспособность не в ответе.. На скорую руку накидал, и не проверял работоспособность.... На первый взгляд должно работать.

local wpn_pri, common = ((wpn_data[obj:section_name()][p_obj:community()] ~= nil) and (wpn_data[obj:section_name()][p_obj:community()]) or (true and wpn_data[obj:section_name()].common))
get_console():execute("load ~DC~:"..tostring((common and ("add_item to:"..wpn..", common\10wpn_pri2: "..(wpn_pri or "nil value")) or ("wpn_pri1"..(wpn_pri or "nil value").."\10add_item to:"..p_obj:name()..", "..p_obj:community()))))

Если будут проблемы, обращайся в лс по коду.

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

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

Изменено пользователем Z.I.R.D.

Наёмники - лучшие убивцы в Зоне!

По заказам обращаться на сайт www.vsehporeshimzadengi.org

Ссылка на комментарий
Z.I.R.D., в actor_binder:on_item_drop (obj),проверяешь если obj:section()=="секция использованного предмета",то стартуешь таймер на 0.1 секунду с параметром id использованного предмета.По окончании работы таймера проверяешь, есть ли объект alife():object(id).Если его нет,спавнишь что нужно в инвентарь. Изменено пользователем Charsi
Ссылка на комментарий

Исправил и удалил некоторые ссылки в шапке, также добавил новые.

 

Z.I.R.D., Charsi, как сделать "коллбэк" на использование предмета уже говорилось и не раз. >.<

 

Stalk15, причем тут эта тема и варез? :huh:

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

Ребят, можно как-нибудь текст ужать по ширине, чтобы, например, длина предложения была не 10см, а 8см?

lexer125, нет, мне нужно именно ужатие текста по ширине, или может уменьшение интервала между словами...

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

Помогите пожалуйста.

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

Expression : fatal error

Function : CScriptEngine::lua_error

File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp

Line : 73

Description : <no expression>

Arguments : LUA error: ...hing\s.t.a.l.k.e.r\gamedata\scripts\xrs_utils.script:887: bad argument #1 to 'find' (string expected, got nil)

Странно то , что при продаже сидоровичу вылета не происходит.

Замедляю полураспад души стержнями музыки

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

Ну и смотри что в xrs_utils.script и как оно связано с продажей.

 

 

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

ах да аи пак от стрима убери и все норм

 

 

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

я изменился. пью, курю, употребляя наркотические средства.

Жизнь-говно. Бабы -консервы.

Забьюсь под стол, чтоб никто не трогал.

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

А причем здесь аи пак?Сотни модов содержат аи пак и новые предметы , однако вылета нет.Поэтому я и задаю вопрос - в чем причина моего вылета?Может где то прописать надо эту вещь еще?

Замедляю полураспад души стержнями музыки

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

Так у тебя стоит аи пак от стрима?

 

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

дай тот скрипт что в логе.

я изменился. пью, курю, употребляя наркотические средства.

Жизнь-говно. Бабы -консервы.

Забьюсь под стол, чтоб никто не трогал.

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

Ребят, небольшая проблемка с генератором имён: вобщем создал я новую группу для генерации (ну там есть генератор бандитов, военных, и т.д.). Всё нормально пашет, но я хотел сделать, чтоб в этой группе имён у сталкеров не было. Если в Sysem значение name_cnt ставлю 0 - вылет. Если в stable_generate_fnames в значении имени ничего не пишу - тоже вылет, причём без лога. Может кто знает, есть ли способ генерировать имены сталкеров без stable_generate_fnames?

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

Хемуль04,

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

Я может не понял твой вопрос, но с какой стати в группе имён для бандитов будут имена для сталкеров?

 

Может кто знает, есть ли способ генерировать имены сталкеров без stable_generate_fnames?

Всё, что есть по генерации имен было описано здесь. Другого нет.

 

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

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

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

 

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

U:\Program Files\S.T.A.L.K.E.R.\gamedata\configs\misc

В этой папке файл артефыктс, там в самом начале прописано в какой аномалии какие арты и с каким процентом появляются в них

я изменился. пью, курю, употребляя наркотические средства.

Жизнь-говно. Бабы -консервы.

Забьюсь под стол, чтоб никто не трогал.

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

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

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

max_max_08

как отследить что гг выстрелил из оружия
.

Вариантов два (как минимум):

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

 

local cht = 1   

function OnClickLButton(section,size)  -- аргументы - секция ствола и размер магазина
local activ_item = db.actor:active_item()
    if activ_item and activ_item:section() ==section then
        local AmmoInMagazine = activ_item:get_ammo_in_magazine()
        if (AmmoInMagazine  == 0 or AmmoInMagazine ==size) then
        cht=1
        end
       return  size - AmmoInMagazine ==cht
    end 
end

 

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

 cht= cht+1

 

Другой вариант реализован в гравипушке malandrinus'a и kirag'a (там и смотри пример)- там размер магазина пушки изначально задан =1 и просто проверяется, что если число патронов в стволе меньше единицы(или размера магазина), то значит было нажатие ЛКМ - то есть ГГ выстрелил.

Лично я себе так сделал: (для пушки на один заряд)

function OnClickLButton(section,size)
local activ_item = db.actor:active_item()
    if activ_item and activ_item:section() ==section then
        local AmmoInMagazine = activ_item:get_ammo_in_magazine()
        return  size> AmmoInMagazine
    end
end

и в коде, где идет вызов функции, патрон после выстрела спавнится обратно в магазин 
db.actor:active_item():set_ammo_elapsed(1)  -- возвращаем патрон в магазин

Функции разумеется должны апдейтится.

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

max_max_08,

Намного проще отследить по тому месту, куда ГГ выстрелил. А если он ещё и выстрелил по живому то делов на 5 секунд.

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

Еще 10 лет таких цен, зарплат и пенсий, и вместо переписи населения будет перекличка

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

Arhara,

а как? Колбек на хит? Память хитов? Так это же только если попал?

 

 

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

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

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

 

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

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

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

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

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

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

Войти

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

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

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