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

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

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

Как удалить из игры всех авторских персонажей ? Я Создавал своих солдат, вооруженных и одетых так как я хочу. Они заполонили всю зону, бьются ошибки. Желательно по id в characters_simulation, или по параметру в spawn_section

 

пример:
[rex_stalker_respawn_1]:stalker
character_profile    = sim_stalker_rex
spec_rank = veteran
community = stalker

Ссылка на комментарий
57 minutes ago, BFG said:

@Pug-Lover, а не проще через смарты перегонять ?

@oggycoc, опять же. Смарты. Дольше, но зато надёжнее.

@yousoup22, поиском по фразе в оригитен, текстовка и вызов диаога убра ибрыт

не понял.

Добавлено  Опричник,

Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/

Устное предупреждение.

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

@yousoup22, смотри начало логики Сидоровича: gamedata\config\scripts\esc_trader.ltx:

[mob_trader@new_start_wait] - [mob_trader@new_start_intro4] / [mob_trader@new_idle1]

 

@aromatizer, видишь ли в чём дело: помимо всяческого "красивого" и скриптового, присутствует ещё и донельзя родная движковая боёвка. Беда только в том, что реальное состояние кода дел порой очень сильно отличается от мощных и аргументированных комментариев, оставленных GSC в конфигах. Оставленного и выполняющего декоративную роль "билдомусора" (особенно в ТЧ) столько, что проще действительно сначала попробовать поинтересоваться - а работает ли оно вообще?

  • Согласен 2
  • Полезно 1
Ссылка на комментарий
10 часов назад, Купер сказал:

видишь ли в чём дело

Вижу: на всякого мудреца довольно простоты.)

Что ты имеешь сказать по поводу holder_range_modifier, holder_fov_modifier и ef_main_weapon_type, ef_weapon_type ?

Полагаю, мы тут общаемся с целью сделать игру лучше, а не померяться длиной, толщиной и красотой короны.

  • Не нравится 1

Отношения между людьми- главная ценность в человеческом обществе.
Любая полученная информация- это только повод для размышлений, а не побуждение к действию.
Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAE
Накопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt

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

Вот нашёл на одном форуме  функцию, которая позволяет удалять всех нпс со всех локаций нажатием кнопки по имени в spawn_section
 

Spoiler

function del_tele_dva()
for a=10,65634,1 do
local obj=alife():object(a)
if obj and string.find(obj:name(),"yan_ecolog_respawn_1") then          ---имя секции обьекта
alife():release(obj,true)
end
end
end

 

 

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

@oggycoc, Насчет ВСЕХ НПС - это ты погорячился. В приведенном тобой коде речь идет только об НПС с секцией yan_ecolog_respawn_1. Больше никто и нигде удаляться не будет.

 

ИМХО, правильнее будет использовать функцию IsStalker(obj) вместо проверки string.find(obj:name(),"yan_ecolog_respawn_1")

 

Если неправ, пусть гуру моддинга поправят.

  • Согласен 3

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

Ссылка на комментарий
2 минуты назад, СЕРА сказал:

зависает

А в логе никаких подозрительных надписей нет?

  • Согласен 1

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

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

@mole venomous, Я бы даж подумал - они должны быть. Лог в студию - самый правильный вариант.

Мужики, нужна помощь. Мне задали вопрос, а я не знаю, как ответить. Суть такова:

 

Можно ли как-то увеличить скорость движения ГГ в режиме прицеливания?

 

Есть у кого идеи на этот счет?.

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

Ссылка на комментарий
13 hours ago, AndrewMor said:

@oggycoc, Насчет ВСЕХ НПС - это ты погорячился.

Имелось ввиду все НПС этого профиля  когда-либо мной заспавненные в мире, на данном сейве

Изменено пользователем oggycoc
Ссылка на комментарий
6 часов назад, oggycoc сказал:

Имелось ввиду все НПС этого профиля  когда-либо мной заспавненные в мире, на данном сейве

А вот это другое дело.

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

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

 

Дорогие и уважаемые сталкеры, мододелы и разбирающиеся в скриптах! Помогите, пожалуйста, если
знаете! Как правильно написать скрипт-цикл, чтобы с каждой итерации этого цикла использовались
числа по заданной очереди, например, сначала маленькие, потом большое? И так до бесконечности
зацикленно менялись бы? И чтобы новая перезагрузка сохранения не влияла бы на их смену, а
чередовались по порядку.

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

 

Да это я в bind_stalker.script, Сталкер ТЧ, ОП 2  (хотя работает и в модах COP) добавляю респаун, самый легкий, простой и удобный, чтобы врагов
было побольше..получается только с одним числом периодичности, но вот как задать несколько любых
заданных чисел, меняющихся по порядку? После вот этих строк в bind_stalker.script добавляю -

  -- обновление постпроцессов
  if post_process ~= 0 then
    if post_process:update () == true then
       post_process = 0
    end
  end

  -- обновление пси-антенны
  if sr_psy_antenna.psy_antenna then
    sr_psy_antenna.psy_antenna:update(delta)
  end

  --Для итерации спауна например этих врагов неподалеку от актора (конечно, я их делаю куда
больше), добавляю вот этот скрипт-код -

    if post_time2 < time then 
        post_time2 = time + 484000 --Вот это число передышки респауна, как задать
зацикленную поcледовательность чисел, чередующихся по порядку, бесконечно? Чтобы с большим числом
передохнуть от маленьких чисел -нескольких раз частого респауна, можно было. 

      local ap = db.actor:position()
    local lv = db.actor:level_vertex_id()
    local gv = db.actor:game_vertex_id()
alife():create("mil_monolit_rush_respawn_1", vector():set(ap.x+math.random(200,210), ap.y+0,
ap.z+math.random(-13,-12)), lv, gv)
alife():create("burer_normal", vector():set(ap.x+math.random(100,200), ap.y+0, ap.z+math.random
(-13,-12)), lv, gv)

end
--Пробовал по-разному, и так
    if post_time < time then
            ai1 = 10000  --Пробовал и так - ai[1,4] =[10000,10000,10000,500000] , и перепробовал
многие варианты, вылетает или не используется
            ai2 = 10000
            ai3 = 10000
            ai4 = 500000
        for 1, 4 do
             post_time = time + ai[1,..,4] --Что-то не так делаю, не работает.

Помогите, дорогие люди и уважаемые мододелы, если можете! Не говорите на словах, а пожалуйста,
напишите сам код или функцию, которая перебирает заданные числа последовательно, там немного
строчек должно быть. Зараннее спасибо огромное! Пожалуйста, простите, если глупость спросил, или
не по адресу, или не по правилам форума! Зарегистрировался специально, потому что ответа на это
сам не нашел, ткните, если он есть где-то. Умоляю, помогите! Если только знаете. И извините,
пожалуйста, за длинное cообщение, хотел, чтобы поняли мой вопрос. Извините, если что! Спасибо!

 


 

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

@mole venomous, вот логика

[smart_terrains]
none = true

[logic]
active = walker1
trade = misc\trade_bolota.ltx 
trader_flags = 0 
inv_max_weight = 10000 
meet = meet


[sleeper]
path_main = lvl8_swamp_smart_terrain_bolota_1_sleep
wakeable = false
on_info = {+i_14} walker1
danger = danger_ignore
combat_ignore = combat_ignore
meet = meet

[walker1]
path_walk = way_svat_walk_1
path_look = way_svat_look_1
def_state_standing = sit_ass
danger = danger_ignore
combat_ignore = combat_ignore
meet = meet

[meet]
meet_state = 30|hello@hail|20|wait@wait
meet_state_wpn = 60|backoff@threat_weap
victim = 30|actor
victim_wpn = 60|actor
use = true
use_wpn = false
syndata = hello@hail|backoff@threat_weap


[combat_ignore]

[danger_ignore]
ignore_distance = 1

 

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

использовались
числа

Что это означает... загадка.

1 час назад, mifares сказал:

за длинное cообщение, хотел, чтобы поняли мой вопрос.

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

Попробуйте объяснить короче и понятнее, без загадок.

  • Согласен 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

Zander_driver!
Какие числа? -Количество миллисекунд, маленькое -это, например, 30000 =30 секунд, большое в
понимании моего вопроса -900000 =900 секунд. Да и какая, простите,- интересно, для Вас разница,
их величина, если их настраивать в цикле можно и нужно? 

Что же хочется сделать автору этого вопроса, мне то есть? -так это чтобы вместо одного
применяемого скриптом числа, можно было задать несколько, например - 30000, 30000, 30000, 900000.
Вот например, есть функция math.random(30000,900000), но она будет выдавать случайно числа от
30000 до 900000. Может, есть такая функция, которая будет выдавать последовательно 30000, 30000,
30000, 900000? Или только как-то циклом это надо сделать? Вот бы кто код этого написал, вот бы
кто помог...

 

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

Я не спрашивал "какие числа"...

Впрочем, что вы хотите я понял. Это делается НЕ циклом. И "в пару строк" это не укладывается.

Потому что

24 минуты назад, mifares сказал:

Может, есть такая функция, которая будет выдавать последовательно 30000, 30000,
30000, 900000?

Такой функции нету. А чтобы ее написать, нужно где-то сохранять предыдущее число. Иначе откуда функция узнает, какое оно было?

Ну и, тут все же не стол заказов. Сохранять кучей способов можно - pstor актора, нетпакет актора, модуль se_stor Артоса (самый правильный вариант, пожалуй), правленые движки наконец... Но вам в любом случае, нужен какой-то механизм сохранения прошлого значения. А не цикл. И чтобы "кто-то" вам "помог" и "написал" - этот "кто-то" должен знать, какие механизмы сохранения можно применять в вашем моде. Нетпакет актора в некоторых модах бывает забит под завязку, и пихать туда что-то уже нельзя. se_stor - есть он там? нету? я например не знаю.

  • Согласен 2

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

@Zander_driver, ну речь вроде идёт об ОП, так что думаю есть.

1 час назад, mifares сказал:

последовательно 30000, 30000,
30000, 900000?

Всё что на ум приходит это таймеры.

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

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

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

Ребят, как заспавнить костюм на трупе нпс? Прописала комбез наемников информатору в аль спавне и в профиле, а он все равно не появляется.

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

как заспавнить

Вот функция, удобно спаунить на ходу, тремя способами (по координатам, по имени профиля и ID

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

function AddItems(items,recipient)
    local count = 0
    local pos, lvid, gvid, id, obj 
    local function Compare(id)
    obj = alife():object(id)
        return obj and obj.profile_name and obj:profile_name() == recipient
    end 
    for k, v in pairs(items) do
        if type(recipient)=='table' then
            for k, v in pairs (items[k]) do
            count = k
                for i=1, count do
                 alife():create(v,vector():set(recipient['x'],
                  recipient['y'],recipient['z']),
                   recipient['lv'],recipient['gv'])
                end
            end 
        elseif type(recipient)=='string' then
    if recipient =="actor" then
        obj = alife():actor()
        else
        for i=1, 65534 do
            local predicate = Compare(i)
            if predicate then
            break
           end
        end
    end 
    if obj == nil then return end
        for k, v in pairs (items[k]) do
            count = k
                 for i=1, count do
                 alife():create(v, obj.position, obj.m_level_vertex_id, obj.m_game_vertex_id, obj.id)
            end
        end 
    elseif type(recipient)=='number' then
        obj = level_object_by_sid(recipient)
            if obj ~= nil then
             id, pos, lvid, gvid= obj:id(), obj:position(), obj:level_vertex_id(), obj:game_vertex_id()
             elseif obj == nil then
             obj = alife():story_object(recipient)
             id, pos, lvid, gvid = obj.id, obj.position, obj.m_level_vertex_id, obj.m_game_vertex_id
                for k, v in pairs (items[k]) do
                    count = k
                   for i=1, count do
                   alife():create(v, pos, lvid, gvid, id)
                   end
               end
            end
        end
    end
end

function AddItemsByName()
    local items = {
    {[1]="item_1"}, -- итемы и их кол-во
    {[2]="item_2"},
    {[5]="item_3"}
    }
    local recipient = "profile_name" -- имя из профиля
    AddItems(items,recipient)
end

function AddItemsByID()
    local items = {
    {[1]="item_1"}, -- итемы и их кол-во
    {[2]="item_2"},
    {[5]="item_3"}
    }
    local recipient = 515 -- sid NPCа или кейса
    AddItems(items,recipient)
end

function AddItemsByPlace()
    local items = {
    {[1]="item_1"}, -- итемы и их кол-во
    {[2]="item_2"},
    {[5]="item_3"}
    }
    local recipient = {x=124.25,y=-7.69,z=-11.66,lv=427496,gv=133} -- координаты и вертексы
    AddItems(items,recipient)
end

 

  • Спасибо 1

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

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

@mole venomous, спасибо, только вот есть одна проблемка: я не разбираюсь в скриптах. Можешь хотя бы подсказать куда это нужно вставить? Дальше наверно разберусь раз там все подписано.

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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