[SoC] Ковыряемся в файлах - Страница 298 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

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


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

Куфзук, там у Чепепа с командой сделана логика валкера в точку смарта свободовцев. Такая же ситуация с атакой бандитов на кладбище техники.
SkyLoader, тогда почему тебе этот вариант не подходит, вполне достойно выглядит?
Привет всем. Кто подскажет, как заставить один гулаг напасть на другой?

Очень просто - в customdata всех нападающих неписей прописать:

 

[smart_terrains]
имя смарта, в котором отряд до нападения = {-инфопоршень - сигнал к атаке}
имя смарта, на который надо напасть = {+инфопоршень - сигнал к атаке}

Кстати, кто-нибудь знает, какой скрипт читает секцию smart_terrains и разбирает всё это дело? А то я что-то кроме xr_wounded ничего не нашёл...

 

P.S. этот метод не пойдёт, если нужен любой состав смарта (т.е. если в нём любые неписи, а не только те, которым всё это дело прописано). Можно сделать и это, но если ответ на вопрос (который чуть выше) не будет найден, то придётся возиться с net_packet().

 

P.P.S. Кто знает, уменьшатся ли проблемы со стеком, если снизить настройки графики?

 

так и называется: smart_terrain.script. Куфзук

Изменено пользователем Куфзук

Куфзук, дело в том, что я хочу, чтобы это было димамично для каждого смарта.

Полтергейст, дело в том, что неписи считают этот гулаг своим и не бегут с оружием на изготовку на этот гулаг. И то, если гулаг заполнен, то это не прокатит - неписи пойдут гулять.

 

 

Подскажите мне пожалуйста, как сделать, чтобы после взрыва гранаты на ее месте что-то спавнилось? (например кусок колбасы =) ).

Точка ЛЦУ у вас на лбу это тоже чья-то точка зрения.

SkyLoader,

Фэйк гранаты движковой. Его отследить никак нельзя.

Почему нельзя, можно. Если прицепить к гранате биндер, то видно, что после броска граната из инвентаря удаляется, а заместо неё спавнится другая с тем же биндером (секцию не помню, та-же или нет), но без серверного объекта. Она и летит дальше. Так что можно отследить.

 

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

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

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

 

Люди, может кто подсказать что может означать такой лог?

* MEMORY USAGE: 268209 K

[16-9] get_xml_name for[maingame_pda_msg.xml] returns [maingame_pda_msg.xml]

! Missing ogg-comment, file: e:\games\stalker\gamedata\sounds\monsters\cat\idle.ogg

! Missing ogg-comment, file: e:\games\stalker\gamedata\sounds\monsters\cat\attack_hit.ogg

! Missing ogg-comment, file: e:\games\stalker\gamedata\sounds\monsters\cat\take_damage.ogg

! Missing ogg-comment, file: e:\games\stalker\gamedata\sounds\monsters\cat\die.ogg

[16-9] get_xml_name for[maingame_pda_msg.xml] returns [maingame_pda_msg.xml]

[16-9] get_xml_name for[maingame_pda_msg.xml] returns [maingame_pda_msg.xml]

[16-9] get_xml_name for[maingame_pda_msg.xml] returns [maingame_pda_msg.xml]

[16-9] get_xml_name for[maingame_pda_msg.xml] returns [maingame_pda_msg.xml]

[16-9] get_xml_name for[maingame_pda_msg.xml] returns [maingame_pda_msg.xml]

[16-9] get_xml_name for[maingame_pda_msg.xml] returns [maingame_pda_msg.xml]

! Cannot find saved game ~~~ nil self.object in motivator_binder

* Log file has been saved successfully!

 

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: e:\games\stalker\gamedata\scripts\_g.script:1121: bad argument #2 to 'format' (string expected, got no value)

 

stack trace:

 

 

Не верный формат аргумента. В контексте чего такой вылет, логику правишь? Куфзук

Изменено пользователем Куфзук

Prefiero morir de pie, que vivir siempre arrodillado.
 

Появилось много вопросов:

1) Действует ли на акторе :get_enemy()? (враги ГГ)

Должен. Министр.

2) Например, есть есть бочка. Если непись смотрит в сторону бочки, то он будет ее видеть? (для непися :see() бочку)

Должен. Министр.

3) Как можно заспавнить турель (не в амк), если место спавна будет онлайн? Просто у меня идет спавн турели, только если она будет далеко от ГГ. А если вблизи, то она появляется на пол секунды и исчезает.

Изменено пользователем Министр

Друзья, дайте пожалуйста совет. Очень часто во время боя происходит вылет -

 

[error]Expression : fatal error

[error]Function : CScriptEngine::lua_error

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

[error]Line : 73

[error]Description : <no expression>

[error]Arguments : LUA error: ...hing\s.t.a.l.k.e.r\gamedata\scripts\state_mgr.script:194: C stack overflow

 

[error]Expression : fatal error

[error]Function : CScriptEngine::lua_error

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

[error]Line : 73

[error]Description : <no expression>

[error]Arguments : LUA error: ...hing\s.t.a.l.k.e.r\gamedata\scripts\rx_wmgr.script:579: C stack overflow

 

 

Я так понимаю эти два вылета по сути одна проблема...

Куфзук стоит АМК+Аддон IMM плюс свои правки (думаю они и виноваты) и различные мелкие дополнения. Случился во время отбивания атаки бандитов на свалке на кладбище техники. Саму сцену не трогал, да и на Свалке ничего не делал кроме пары новых аномалий не менял.

 

Тогда, нам сложно будет тебе помочь, мы же не знаем, что именно ты делаешь.

У меня лично такой вылет был, когда я на экран пытался вывести сообщение, а в функцию передал не тот параметр, который был нужен. Куфзук

Изменено пользователем Куфзук

Prefiero morir de pie, que vivir siempre arrodillado.
 

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

Тогда без ковыряния smart_terrain.script тут никак не обойтись. Я делал как-то, чтобы неписи не прописывались во враждебном гулаге, это не сложно. Но здесь вопрос поставлен немного по-другому - сделать, чтобы они наплевали на счётчик свободного места в смарте и шли всё равно. Надо будет доделать это как-нибудь, вряд ли есть другие способы.

 

Чтобы шли "с оружеем на изготовку", надо, чтобы они заранее заметили врага. Иначе приётся ковырять многострадальный state_mgr.script, чтобы непись всегда был в состоянии "danger", пока не займёт смарт.

 

gamedata\scripts\state_mgr.script:194: C stack overflow

Скрипт этот перегружает стек. Не знаю как и почему, там дофига evaluator'ов и в связи с этим разбираться с ними нелегко. Бывает, что вылетает без лога.

Если перенести state_mgr из ЗП, то вылет пропадает, но полностью перенести его пока не получилось, для этого нужен кто-то, кто хорошо разбирается в evaluator'ах.

 

@"StreloK"

~~~ nil self.object in motivator_binder

 

Замените функцию xr_motivator.AddToMotivator(npc) на такую:

function AddToMotivator(npc)

if alife() and npc ~= nil then

npc:bind_object(this.motivator_binder(npc))

end

end

Если не поможет - сносите свои правки, я как-то тоже доправился, что командир военных на кордоне и двое спецназовцев были фактически без биндера (вернее, без self.object'а для него) и глючили.

Изменено пользователем Полтергейст

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

 

ПС-а за что эта функция отвечает? Ну так для справки.

Изменено пользователем @"StreloK"

Prefiero morir de pie, que vivir siempre arrodillado.
 

Эта функция отвечает за добавление биндера к неписю. Я просто поставил проверку на npc == nil, чтобы биндер не создался по ошибке "сам по себе". Но вряд ли это поможет, у меня такое было с военными на кордоне. Проблему решил удалением трёх глючных неписей из all.spawn - всё заработало. После этого несколько раз изменял свои правки, попробовал этих неписей вернуть - вернулись без проблем, таких глюков нет.

 

P.S. вычислить глючащего npc можно так: начать новую игру (или перейти на тот уровень, где глючит), сохраниться и попробовать загрузить это сохранение. Если будет ошибка ""SAVE FILE IS CORRUPT", то это хорошо. Далее, в xr_motivator, в функции загрузки, надо найти

  if reader:r_eof() then
    abort("SAVE FILE IS CORRUPT")
  end

и заменить на

  if reader:r_eof() then
    abort("SAVE FILE IS CORRUPT! NPC: %s", self.object:name())
  end

 

При чтении self.object ещё не обнулился и можно отследить имя глючащего.

Изменено пользователем Полтергейст

SkyLoader

Привет всем. Кто подскажет, как заставить один гулаг напасть на другой?

 

Способ есть но он не совсем прост (может есть и проше).

Гулаг имеет состояния функция function load_states(gname, type) в файле

загрузки работ гулага для каждого состояния может быть свой набор работ с соответствуюшей логикой.

состояния определяются вышеприведенной функцией пример

 

    if type == "esc_bridge" then
        return function(gulag)
            if db.actor ~= nil then
                if ( level.get_time_hours() >= 5 and level.get_time_hours() <= 22 ) then
                    return 0  -- день
                else
                    return 1  -- ночь
                end
            else
                return gulag.state
            end
        end    
              end

 

так вот для каждого состояния можно создать набор работ с соответствующими путями и логикой

копирующую допустим логику бандитов с атп ,и при переключении в это состояние сталкеры из лагеря

пойдут отбивать свои работы у гопников :ny_ph34r_1:

 

Черновой вариант в 6 часов утра сталкеры из лагеря(не все) идут на атп а в 22 должны вернутся.

http://narod.ru/disk/6764780001/gamedata.rar.html

Версия 1.0004 чистая новая игра обязательна

 

c111c6c6d4084b853a32dab059291998.jpg

617b187d63ef2ff61ff2605bdba60489.jpg

cc368b1b2df360f3b70ecdcb28cc4c8d.jpg

20a84d30a72a5b4605bfd9c8df131d81.jpg

 

Измененны gulag_escape.script

gulag_escape.ltx

way_01_escape.ltx

 

 

 

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

 

 

Фаил

gulag_escape.script функция и состояния работ а также сылки на логику для работ

типа esc_lager_defend

 

if type == "esc_lager" then
                return function(gulag)
            if db.actor ~= nil then
                if ( level.get_time_hours() >= 6 and level.get_time_hours() <= 22 ) then
                    return 0  -- день
                else
                    return 1  -- ночь
                end
            else
                return gulag.state
            end
        end
    end

 

в фаил way_01_escape.ltx

в пути работ esc_lager_defend поставленны координаты от путей работ

типа

 

[esc_fabrika_bandit_day_look4]

points = p0,p1

p0:name = wp00|a=sit

p0:flags = 0x1

p0:position = 117.269721984863,-7.4942798614502,7.90426397323608

p0:game_vertex_id = 118

p0:level_vertex_id = 420418

p0:links = p1(1)

 

p1:name = name00|a=sit

p1:flags = 0x1

p1:position = 115.921424865723,-7.13775825500488,9.20606803894043

p1:game_vertex_id = 118

p1:level_vertex_id = 418794

 

 

[esc_fabrika_bandit_day_walk4]

points = p0

p0:name = wp00

p0:flags = 0x1

p0:position = 114.109931945801,-7.49428033828735,7.85036134719849

p0:game_vertex_id = 118

p0:level_vertex_id = 416373

 

файл gulag_escape.ltx

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

[logic@esc_lager_defend1]

 

 

 

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

Министр, Полтергейст, спс.

AKKK1, спс. Да, я насчет этого уже думал. Если посылать весь гулаг нападать, то можно гулагу дать состояние return 3 (в бою).

Подскажите пожалуйста, какие файлы отвечают за выдачу стволов на арене? А то че то перекопал все файлы и не нашел.

 

В файле xr_effect.script, функция bar_arena_teleport. Куфзук

Изменено пользователем Куфзук
アレクセイ 高い
Arekusei takai

SkyLoader

 

Состояний может быть достаточно много

0,1,2,3,5,6,7,8 и.т.д

важно для каждого состояния создать работу с соответствуюшей логикой

причем координаты работы могут находится в любом месте на любой локации

Т.е допустим имеем 10 сталкеров (население гулага) и 8 состояний

требуется создать функцию переключения состояний в зависимости от определенных условий(любых)

например от числа месяца

 

1,8,3,4,15 return 1 сидим в лагере

.............. return 2 сидим в лагере в других местах

.............. return 3 нападаем на блок пост

.............. return 4 нападаем на атп

.............. return 5 ну и т.д

.............. return 6

............. return 7

.............. return 8

 

для каждого состояния требуется 10 работ с соответствуюшей логикой и путями

 

итого получаем 10*8= 80 работ для 10 сталкеров с разными путями и логикой :ny_z_2: тот сталкер

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

Изменено пользователем AKKK1
AKKK1, да мне нужно только 2-3 состояния (день, ночь, нападение на определенный гулаг). Ну я тебя понял)

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

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

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

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

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

Войти

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

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

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