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

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


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

Как вариант по нападению гулага на гулаг:

 

Есть, к примеру гулаг на АТП, фракция у него "бандиты". Копируем, но фракцией ставим "сталкеры".

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

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

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

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

Помечу-то SChecker ругается на amk_offline_alife, выдаёт "invalid floating point operation". Если убрать из скрипта сравнение с числом 4294967296, то ошибка уходит. Что это значит?

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

Kirag

 

Есть, к примеру гулаг на АТП, фракция у него "бандиты". Копируем, но фракцией ставим "сталкеры".

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

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

 

С чего из деревни должны (л блин клинит) ломануться?(или у них гулаг отключен?)

 

Копируем, но фракцией ставим "сталкеры".

И что ? Получиться ?

 

А Eси есть........... Стоп флуд...

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

AKKK1

Именно. "Родной" гулаг на время рейда отключить, "целевой" включить. Оставшись без гулага, народ из деревни должен будет куда-то деться. Скорее всего, в ближайший гулаг - свежевключенный АТП-сталкер - их и затянет. Где они и подерутся с бандитами. С нейтральным "Долгом", скажем, ужились бы.

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

Я бы что-то такое попробовал реализовать.

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

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

Kirag

Я бы что-то такое попробовал реализовать

С удовольствием посмотрел бы реализацию.

 

Оставшись без гулага, народ из деревни должен будет куда-то деться. Скорее всего, в ближайший гулаг - свежевключенный АТП-сталкер - их и затянет.

 

Не факт если есть пустые работы(кто то помер а респаун еще не сработал) с более высоким приоритетом чем в АТП-сталкер сталкеры попрутся именно на эти работы.(решаемо)

 

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

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

 

народу по одному пути может ходить тоже много

Только если народ под своей собственной логикой т.к в логике работ гулага для путей используется префикс(имя смарта).

Пробовал тупо для работы лагеря прописать логику работы гопника с атп вылет.

Требуется переименование нужных путей

 

Или добавить возможность нахождения в гулаге АТП сталкеров прописать им копии работ бандитов но только при определенном состоянии гулага

допустим работы бандитов активны в состоянии гулага 1 и 2

а работы сталкеров только в состоянии 2

 

состояние 2 Родной гулаг на время рейда отключить, целевой включить.

 

С Уважением

Изменено пользователем AKKK1
Ссылка на комментарий
Именно. "Родной" гулаг на время рейда отключить, "целевой" включить. Оставшись без гулага, народ из деревни должен будет куда-то деться. Скорее всего, в ближайший гулаг - свежевключенный АТП-сталкер - их и затянет. Где они и подерутся с бандитами. С нейтральным "Долгом", скажем, ужились бы.

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

Я бы что-то такое попробовал реализовать.

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

Изменено пользователем Сяк
Ссылка на комментарий
Т.о. единственным рабочим вариантом остается только переключение логики существующего гулага (перенаправление неписей на путь, ведущий в нужном направлении).

Такой вариант действительно рабочий. По одному пути я переправлял всех написей с АТП в лагерь.

Но обнаружилась некрасивая вещь.

Если во время движения неписей (скажем на пол пути), ГГ выйдет за радиус алайфа и вернётся обратно,

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

Так что нужно либо не выходить за этот радиус (что тоже некрасиво), либо разделить путь на несколько условных секций

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

По сути сгладить переходы он\оффлайн относитель пути.

 

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

Здравсвуйте, я создавал npc по эому уроку

Создание НПС

 

Для того, чтобы создать нового НПС нам понадобятся координаты нужного места, где и будет заспаунен наш NPC. Возьмём Кордон, лагерь новичков. Можете снять координаты сами, а можете взять мною уже снятые: (-218.20,-20.2,-145.63),35362,47). Далее. Создаём файл в папке gamedata/scripts файл, скажем esc_unik_npc.script. В нём создаём функцию. Код: function esc_unik_npc () alife():create("esc_unik_npc",vector():set(-218.20,-20.2,-145.63),35362,47) end

 

Теперь мы в файле npc_profile.xml (в папке gameplay) добавляем нашего НПС. Код: <character id="escape_trader"> <class>Trader</class> <specific_character>escape_trader</specific_character> </character>

 

<character id="esc_unik_npc"> <class>esc_unik_npc</class> <specific_character>esc_unik_npc</specific_character> </character>

 

Копируем или создаём по образцу только нижний блок Второго торговца нам ненадо. Теперь моздадим секцию нашего персоонажа. В файле spawn_section.ltx (gamedata/config/creatures) в блоке:

 

--------Escape--------------

--------neutrals------------

 

Создаём секцию. Код: [esc_unik_npc]:stalker $spawn = "respawn\esc_unik_npc" character_profile = esc_unik_npc spec_rank = regular community = dolg

 

В строке community можете вместо долга вписать другую группировку. Однако если мы хотим, чтоба наш персоонаж не гулял по Зоне, пока не наткнётся на первуюю аномалию, то пропишем чтобы он стоял на месте. Для этого под community вставляем: custom_data = scripts\esc_unik_npc.ltx Далее создаём в gamedata/config папку scripts в в папке создаём файл esc_unik_npc.ltx В наш созданый файл вставляем: Код: [logic] active = remark1 danger = danger_ignore

 

[danger_ignore] ignore_distance = 5

 

[remark1] no_move = true

 

Всё наш НПС будет стоять на месте своего спауна. Едем дальше. Нам надо активировать нашего персоонажа. для этого мы должны вставить строку: <action>esc_unik_npc.esc_unik_npc</action> Либо в диалог, либо в какой-нибудь квест. Давайте вставим строку в файл info_portions.xml (gamedata/gameplay) под Код: <game_information_portions>

 

<info_portion id="storyline_actor_start">

<task>storyline_eliminate_gunslinger</task>

 

Выклядеть это будет так:

 

Код: <game_information_portions>

 

<info_portion id="storyline_actor_start">

<task>storyline_eliminate_gunslinger</task>

<action>esc_unik_npc.esc_unik_npc</action>

</info_portion>

 

Однако мы не прописали самого НПС, как личность В файле character_desc_escape.xml (gamedata/gameplay) добавляем: Код: <specific_character id="esc_unik_npc" team_default = "1"> <name>GENERATE_NAME_bandit</name> <icon>ui_npc_u_stalker_bandit_3</icon> <bio>esc_wolf_bio</bio>

 

<class>esc_otbrosi_1</class> <community>dolg</community> <terrain_sect>stalker_terrain</terrain_sect>

 

<rank>367</rank> <reputation>-60</reputation> <money min="600" max="2000" infinitive="1"/>

 

<snd_config>characters_voice\human_01\monolith\</snd_config> <crouch_type>-1</crouch_type>

 

<visual>actors\bandit\stalker_bandit_3</visual> <supplies> [spawn] \n

 

wpn_groza \n

 

ammo_9x39_pab9 \n

 

1. include "gameplay\character_items.xml" \n

2. include "gameplay\character_food.xml"

 

</supplies>

 

1. include "gameplay\character_criticals_3.xml"

 

1. include "gameplay\character_dialogs.xml"

 

</specific_character>

 

Правда тут получится у нас долговец в одежде бандита и говорящего голосом монолитовца xD Всё сохроняем. НПС готов.

 

Но так же можно добавить нашему НПС диалог) Как добавлять диалоги написано в нашем факе) Если хотяте сделать нашему НПС своё имя то в файле stable_bio_name.xml (gamedata/config/text/rus) добавляем: Код: <string id="esc_unik_npc"> <text>Факер-мазафакер</text> </string>

 

А в файле сharacter_desc_escape.xml (gamedata/gameplay) находим нашего уже прописаного НПС и вставляем в секцию <name></name> (у нас в ней написано GENERATE_NAME_bandit) esc_unik_npc Всё Поздравляю)

 

 

 

но постоянно происходит вылет

***FATAL***: Too many lmap-textures (limit: 8 textures or 32M).

Reduce pixel density (worse) or use more vertex lighting (better).

* phase time: 454 ms

* phase cmem: 259219 K

Клиент: Синхронизация...

* phase time: 17 ms

* phase cmem: 259219 K

* [win32]: free[1382328 K], reserved[47640 K], committed[667120 K]

* [ D3D ]: textures[58105 K]

* [x-ray]: crt heap[259219 K], process heap[6939 K], game lua[25905 K], engine lua[250 K], render[0 K]

* [x-ray]: economy: strings[3717 K], smem[28221 K]

 

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CInifile::r_section

[error]File : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp

[error]Line : 342

[error]Description : <no expression>

[error]Arguments : Can't open section 'esc_unik_npc'

 

 

stack trace:

 

 

 

подскажите, что я делаю не так?

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

Gun12,Сяк

 

Да проблема есть например в приведенном выше примере нпс уходят из лагеря но

я не уверен что на работы атп

потому как топают они туда через опу

 

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

как и говорит Сяк

 

 

Надо попробовать увеличить он лайн радиус ...

отпишусь

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

Люди может кто объяснить (ну или ссыль на статью кинуть) попроще как работать с game.graph?

Мне грубо говоря надо подключить две локации каждая со своим game.graph.

Prefiero morir de pie, que vivir siempre arrodillado.
 

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

Ребят, такой вопрос.

phrase id в диалогах - вроде как число. Меня интересует какие значения может принимать. Я поначалу всунул буквенную комбинацию перед цифрами (вроде <phrase id="sf1">) - буквы проигнорировались. Как обстоит дело с нулями? - id="0001". Вообще есть какие ограничения..? Заранее спс

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

_zero_cool_, :D Угу, но все ж с буквами удобней ориентироваться;) Когда много разветвлений в диалогах.

Ограничение сверху какое есть? Я имею ввиду скока цифр или максимальный id

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

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

P.S. Как в билде 1935.

Жить – значит делать вещи, а не приобретать их.

 

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

ну вот и посмотри в билде логику этого вертолета

[logic]

active = heli_move@idle_start

 

[heli_move@idle_start]

path_move = agr_heli1_idle_start

engine_sound = false

combat_ignore = true

on_info = {+agr_factory_heli_start} heli_move@descent

 

[heli_move@descent]

path_move = agr_factory_heli1_move

on_signal = path_end | heli_move@idle

combat_ignore = true

 

[heli_move@idle]

path_move = agr_heli1_idle_move

engine_sound = false

combat_ignore = true

on_info = {+agr_factory_spawn_spetsnaz} heli_move@idle2

 

[heli_move@idle2]

path_move = agr_heli1_idle_move

engine_sound = false

combat_ignore = true

on_timer = 60000 | heli_move@patrol

 

[heli_move@patrol]

path_move = agr_factory_heli1_move1

combat_use_rocket = false

on_actor_in_zone = agr_factory_heli_zone | %=heli_set_enemy_actor%

on_game_timer = 3000000 | heli_move@idle3

 

[heli_move@idle3]

path_move = agr_heli1_idle_move

engine_sound = false

combat_ignore = true

 

 

 

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

Подскажите, как переделать amk_anoms.script, чтобы статус аномалии сохранялся не в customdata, а в специальном поле серверного объекта? А то у меня ерунда какая-то получается...

Вчера переделал. Сделал поле status для se_zones.se_zone_anom, поставил в сохранение/загрузку, но при ковырянии amk_anoms наделал ошибок. Первая ошибка - хотел перенести проверку на состояние del вместе с удалением объекта на обновление binder'а и благополучно забыл. В результате аномалии появлялись, но не удалались (кстати, играть от этого стало трудно, но интересно

:) ). Сегодня поправил, но обнаружил ещё один досадный баг непонятной причины: в функции net_spawn(sobj) почему-то нельзя запросить поле sobj.status, пишет, что оно равно nil, хотя это не так. Пришлось переносить всё это дело в серверный объект. Успешно перенёс, но теперь почему-то всем аномалиям присваивается статус del и они удаляются. В чём тут дело - никак не пойму.

 

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

_zero_cool_

а через прогу от амк не катит уже? сначала к игре одну локу подшиваешь, а потом вторую

Так она-же для ЗП, а мне к ТЧ подключить надо.

Prefiero morir de pie, que vivir siempre arrodillado.
 

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

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

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

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

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

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

Войти

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

Войти
×
×
  • Создать...