Перейти к содержанию

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

 
 

Stalkerwild21 Берешь all.spawn мода, game.graph мода, папку config из мода, кидаешь их в папку с ACDC, также кидаешь туда же папку levels со всеми локациями мода, выбираешь исполнительный файл "acdc_split.bat", если его нет, то создаешь новый батник и пишешь туда это:

Спойлер

universal_acdc.pl -split all.spawn -use_graph -way -nofatal

pause

Если всё прошло успешно, то у тебя обновятся level.spawn уровней, закидываешь изменённые level.spawn в папку с сдк и декомпилируешь уровни заново.

Вроде описал всё, но возможно где-то ошибся, т.к давно этим занимался.

А вообще глянь ещё файл "universal_acdc_readme.txt" там более-менее описаны все команды.

Изменено пользователем Paracetamol
  • Мастер! 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Stalkervernite тогда ещё легче, если в смарте только костёр: создал точку костра, создал точку возле костра, создал рядом смарт, установил численность, группировку и условия включения/отключения самого смарта, если надо, и готово.


Внимание! Ищу любые фиксы/исправления для оригинального ТЧ.

Спойлер

Или людей, которые желают помочь с этим делом.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Paracetamol Спасибо :u1F44D.0:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Paracetamol про перемещение вещей от гг в ящик уже сказали, на огср движке по тому же принципу перемещаешь с ящика обратно гг box:iterate_inventory(функция) , в функции через  box:transfer_item(item, db.actor) переносишь. Ящик должен быть в онлайне. На оригинальном движке iterate_inventory для ящика вроде не работает, придется перебирать объекты и сравнивать parent id объекта и id ящика, потом переносить

Изменено пользователем N42
  • Лайк 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
54 минуты назад, oleg19966 сказал:

С НПС, например, точно можно.

А как такое провернуть с НПС?

А то пока только вылеты ловлю при попытки переместить вещи в гг

Спойлер

    local inv_box1_out = level_object_by_sid (706)
    
    local obj_in = db.actor
    local items_to_relocate = {    }
    
    if inv_box1_out then
    local function relocate(inv_box1_out, item)
        table.insert(items_to_relocate, item)
    end
    inv_box1_out:iterate_inventory_box    (relocate, inv_box1_out)
    for k,v in pairs(items_to_relocate) do
        inv_box1_out:transfer_item(v, obj_in)
    end
    end

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Paracetamol через диалог подойдёт? Как вариант, обычная передача итемов как например тут:

Спойлер

function give_weapon_to_actor (trader, actor)
    dialogs.relocate_item_section(trader, "wpn_pm", "in")
    dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in")
    dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in")
    dialogs.relocate_item_section(trader, "wpn_knife", "in")     
end

Не силён в скриптах, но думаю, что можно как-то сюда всунуть actor:inventory_for_each(transfer_object_item).
Типа так: 
out_object = actor
    in_object  = stalker (у НПС должен быть айдишник)
        actor:inventory_for_each(transfer_object_item)
Что бы передать все вещи сразу.

 

  • Лайк 1

Внимание! Ищу любые фиксы/исправления для оригинального ТЧ.

Спойлер

Или людей, которые желают помочь с этим делом.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Paracetamol Не получается с all spawnoм acdc вообще не чего не делает 


Дополнено 0 минут спустя

Paracetamol 


F:\acdc>universal_acdc -split all.spawn [-use_graph] [-way] [common_options]
"universal_acdc" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

F:\acdc>pause
Для продолжения нажмите любую клавишу . . .
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Stalkerwild21 А сам пёрл установлен с плагином?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Paracetamol да


Дополнено 39 минуты спустя

Paracetamol Теперь вот это бесконечно 

C:\Users\white\OneDrive\Рабочий стол\all\Allspawn>acdc_split all.spawn [-use_graph] [-way] [common_options]

C:\Users\white\OneDrive\Рабочий стол\all\Allspawn>acdc_split all.spawn [-use_graph] [-way] [common_options]

C:\Users\white\OneDrive\Рабочий стол\all\Allspawn>acdc_split all.spawn [-use_graph] [-way] [common_options]

C:\Users\white\OneDrive\Рабочий стол\all\Allspawn>acdc_split all.spawn [-use_graph] [-way] [common_options]

C:\Users\white\OneDrive\Рабочий стол\all\Allspawn>acdc_split all.spawn [-use_graph] [-way] [common_options]

C:\Users\white\OneDrive\Рабочий стол\all\Allspawn>acdc_split all.spawn [-use_graph] [-way] [common_options]

C:\Users\white\OneDrive\Рабочий стол\all\Allspawn>acdc_split all.spawn [-use_graph] [-way] [common_options]

C:\Users\white\OneDrive\Рабочий стол\all\Allspawn>acdc_split all.spawn [-use_graph] [-way] [common_options]

C:\Users\white\OneDrive\Рабочий стол\all\Allspawn>acdc_split all.spawn [-use_graph] [-way] [common_options]

C:\Users\white\OneDrive\Рабочий стол\all\Allspawn>acdc_split all.spawn [-use_graph] [-way] [common_options]

C:\Users\white\OneDrive\Рабочий стол\all\Allspawn>acdc_split all.spawn [-use_graph] [-way] [common_options]

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

N42 Попробывал провернуть такое в OGSR:

Спойлер

function transfer_from_box(box_sid)
    local box = level_object_by_sid(box_sid)
    if box then
        box:iterate_inventory(function(item) box:transfer_item(item, db.actor) end)
    end
end

Результата не было, вообще ничего не произошло

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
32 минуты назад, Paracetamol сказал:

function(item)

Вторым аргументом нужный предмет передается, не первым. Это точно работало на старых версиях, в новых не проверял

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Помогите пожалуйста ошибка в ACDC 

C:\Users\white\OneDrive\Рабочий стол\acdc>perl universal_acdc.pl -split all.spawn -use_graph -way -nofatal
log inited: console
Universal ACDC v.1.38
checking version of all.spawn...
        This is a spawn of S.T.A.L.K.E.R. Shadow Of Chernobyl (1.0001 or higher)
opening all.spawn...
reading header...
reading alife objects...
reading artefact spawn places...
reading way objects...
reading game graph...
        reading header...
        reading levels...
        reading vertices...
        reading edges...
preparing graph points...
Can't use an undefined value as a HASH reference at universal_acdc.pl line 1059, <GEN2> line 14.

C:\Users\white\OneDrive\Рабочий стол\acdc>pause
Для продолжения нажмите любую клавишу . . .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Кто-то может развернуто объяснить для чего нужны ключи "Team", "Squad" и "Group"  в смарт террейнах и самое главное как их правильно использовать. Ну или дать ссылку на подробный тутор, буду очень признателен

image.thumb.png.82a766585e4990f815a817016a3330ae.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Grizzly_RPA Squad и Groups их юзают для смартов,насколько я знаю сквад он разбивает группу,что бы не все в группе выполняли одну работу,а к примеру 2-е сидели у костра,другой там стоит,2-е еще патрулируют местность,он разбивает лагерь грубо говоря,а group это типа проверка для смарта,если в смарте ты поставил в смарте groups 3,то и они должны соотсветсвовать группе,или они не поймут к какому смарту подчиняться,то есть пишешь им логику к смарту эту,и группу приписываешь назначенную в смарте,надеюсь объяснил)

  • Мастер! 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Stalkervernite Проверил на декомпилированных Кордоне и Свалке смарты, находил всякое:

В смарте сквады и группы прописаны, у всех NPC в этом смарте сквады и группы - дефолтные нули

В смарте сквады и группы не прописаны, у всех NPC в этом смарте заданы одинаковые значения

В смарте сквады и группы не прописаны, у NPC в этом смарте заданы разные группы

В смарте заданы одни значения, у всех NPC в этом смарте заданы одинаковые значения, но отличаются от смартовых

В униварсальных лагерях не прописано, у NPC - дефолтные нули

Перелопатил все вики и ютуб, ответов ноль. закономерностей ноль. нервов -50.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Grizzly_RPA Сквад необязательно прописывать, еще можно не писать скрипт для гулага, а просто прописать схему general_lager,group обязательно писать. "В смарте сквады и группы не прописаны, у всех NPC в этом смарте заданы одинаковые значения" Так  и должно быть, потому-что, если ты задал groups оно должно быть у всех,есть у каждого будут разные groups то у кого groups из смарта тот будет подчиняться смарта, а  у кого другой groups,те не будут подчиняться смарту,я же обьяснял ты groups прописываешь как проверак для нпс,если у него не будет groups указаного в смарте он не подчиниться смарту "В смарте сквады и группы не прописаны, у NPC в этом смарте заданы разные группы" Возьми ту же деревню   новичков,у всех groups и squad одинаковые. Я сам вчера копался тратил нервы,как и ты,я могу скинуть текстовый урок,там все подробно расписано,вот группа там найдешь "Создания дефолтного смарта"Скачай,и там все подробно расписано.

Вот:

https://vk.com/doc171226002_586310680?hash=CZxvDbFSZeIarNPWHwXLzJPqI50R2wZZex5E5wRNMec&dl=rxqdITlJdEmnKkZbr8vUNuG4eIm8VJyPvsjeZumKtzP

  • Мастер! 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
14 часов назад, Grizzly_RPA сказал:

Stalkervernite Проверил на декомпилированных Кордоне и Свалке смарты, находил всякое:

В смарте сквады и группы прописаны, у всех NPC в этом смарте сквады и группы - дефолтные нули

В смарте сквады и группы не прописаны, у всех NPC в этом смарте заданы одинаковые значения

В смарте сквады и группы не прописаны, у NPC в этом смарте заданы разные группы

В смарте заданы одни значения, у всех NPC в этом смарте заданы одинаковые значения, но отличаются от смартовых

В униварсальных лагерях не прописано, у NPC - дефолтные нули

Перелопатил все вики и ютуб, ответов ноль. закономерностей ноль. нервов -50.

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


Дополнено 12 минуты спустя
В 09.07.2023 в 10:52, Paracetamol сказал:

Господа, может кто-нибудь знает, как можно перенести все предметы с инвентаря ГГ в ящик, а затем скриптом обратно положить к нему в рюкзак, либо же как-нибудь сохранить его инвентарь, потом очистить и через время выдать сохранённый шмот? И вообще возможно ли такое на ванили или хотя бы ОГСР?

В ванили осталась логика от сцены в вырезанном мертвом городе где при входе в зону scripts\cit\cit_jail_scene_zone.ltx у ГГ весь шмот убирается в ящик у наемников. Не знаю остался ли там скрипт, но думаю остался. Про обратное - из ящика в инвентарь - можно наверно

  • Мастер! 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

Спойлер

Функция с _g

function switch_offline_id (id)
    local sim = alife ()
    if tonumber(id) and sim and sim:object(id) then 
        sim:set_switch_online  (id, false)
        sim:set_switch_offline (id, true)
    end
end

Сам перевод

 local lid = alife():object("l08_yantar_konkyrs_physic_object_0013").id 
 switch_offline_id(lid)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

 


Дополнено 14 минуты спустя

Кто знает, к примеру как сделать после диалога спавнился артефакт?cond работает на арты,или только на нпс.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Stalkervernite в диалогах есть <action></action> или вроде того. лепи туда че хоч на любую удобную фразу.Paracetamol по скрипту не знаю, я переводил таким, может попробуй если интересно

function offline()
for a = 1, 65534, 1 do
    local sobj = alife():object( a )
	if sobj and sobj:alive() then
	alife():set_switch_offline(sobj.id, true)
	alife():set_switch_online(sobj.id, false)
	alife():set_interactive(sobj.id, false)
    end
  end
end

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

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

76561198152189716.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 А нельзя сделать так? в сдк

[spawner]

cond = 

Я  спрашиваю, потому-что  плохо помню эту функцию.

 

Кто знает как при подбирание предмета нужного, срабатывал инфопоршень.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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


Дополнено 4 минуты спустя

Stalkervernite Кто знает как при подбирание предмета нужного, срабатывал инфопоршень.

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


76561198152189716.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
54 минуты назад, Stalkervernite сказал:

Кто знает как при подбирание предмета нужного, срабатывал инфопоршень

on_info = {=actor_has_item(item)} %+info%

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 Неа, не помогло.

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

Stalkervernite в диалогах есть <action></action> или вроде того. лепи туда че хоч на любую удобную фразу.Paracetamol по скрипту не знаю, я переводил таким, может попробуй если интересно


function offline()
for a = 1, 65534, 1 do
    local sobj = alife():object( a )
	if sobj and sobj:alive() then
	alife():set_switch_offline(sobj.id, true)
	alife():set_switch_online(sobj.id, false)
	alife():set_interactive(sobj.id, false)
    end
  end
end

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

Вот логика НПС.

Спойлер

[spawner]
cond = {+two_rybila}

[logic]
active = walker

[walker]
path_walk = way_dolger_walk
path_look = way_dolger_look
def_state_standing = threat
combat_ignore_cond = always
on_info = {+pohle_dolgi_dalshe} walker@2

[walker@2]
path_walk = way_stoqka_dolga_walk
path_look = way_stoqka_dolga_look
def_state_standing = caution
combat_ignore_cond = always

Срабатывает только после сейв\лоад'а.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
4 минуты назад, Paracetamol сказал:

[spawner]
cond = {+two_rybila}

может, просто добавить к условию ещё инфопоршень, но с "-"?


ed1c85bd8aba2500209219c6df96c254.png |  Verge                                                                            

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   1 пользователь онлайн