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

AVS LOCATION MOD 1.5


panzyuza

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

Мод под четвертый патч.Может просто разрешение не подходит.Вылетов за вылетом я в процессе тестирования не видел.И такой проблемы с инвентарем не было.

На пятом и шестом патчах у меня вылетало.

Локации полностью заселены(аномалии+мутанты).Полный список ниже

L01_escape

L02_garbage

L03_agroprom

L03u_agr_underground

l04_darkvalley

l04u_LabX18

L05_bar

L06_rostok

l07_military

l08_yantar

l10_radar

l11_pripyat

l12_stancia

l12_stancia_2

l12u_control_monolith

l12u_sarcofag

l08u_brainlab

atp_for_test22

peshera

puzir

aver

av_peshera

limansk

hospital

generators

warlab

red_forest

lost_village

marsh

dead_city

zaton

jupiter

pripyat

jupiter_underground

labx8

cs_agroprom_underground

predbannik

garbage_old

yantar_old

swamp_old

 

 

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

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


Ссылка на сообщение

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

pRimEvaLHunt, это шейдеры LWR.Там,в архиве, в папке рабочие файлы, есть и другие шейдеры.Их попробуй.

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


Ссылка на сообщение

Может сохранения вылетают из за скрипта, что когда выдаються квесты, сохраняет.Попробуй удалить следующие скрипты news_manager.script, u3_utils.script.И попробовать без них.

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


Ссылка на сообщение

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

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


Ссылка на сообщение

Рад, что мод понравилься.Надеюсь, что модмейкеры сделают неплохой сюжет и помогут в исправлении вылетов.Пока основной причиной вылетов являеться Бар(Видать что-то лишее там удалил), Укрытия неписей во время выброса(точнее с координатами самих укрытий для нпс) и все.Ну и безлоговые вылеты.Пока замечен на Кордоне, на мосту у вагончика(видать какой-то рестриктор вплетен глубоко в саму игру).

Если кто-нибудь распаковывал all.spawn, как вам заселение локаций?И как новые виды мутантов(призраки и водяные, за них огромное спаcибо Amik)?

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

 

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

И есть еще небольшая проблемка.Если долго не спать, начинает двоиться в глазах и приходит сообщение о необходимости сна.Поспишь, но двоение остаеться.И так дальше.

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

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


Ссылка на сообщение

Через меню F1 я тестил добавленных мутантов.И решил оставить данную технологию.А в друг кому и нужно.Респавн можно сделать только через скрипт(ogsm_respawn), или ставь смарт для мутантов, и привязывай секцию респавна на данный смарт.

Скажу еще, что многие предметы и оружие в моде не заспавнены.Там разберетесь.

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


Ссылка на сообщение

Расположение локаций еще требует доработки.Так как при открывании пда видно, что недоделано.Я расположение позаимствовал из LWR, а сам, как ни пробовал, не могу разобраться в координатах локаций на глобальной карте.Хотя, даже по этому расположению видно, где они находяться.

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


Ссылка на сообщение

С Баром проблема почти решена.Осталось еще немного.Вернуть квесты - не для этого мод создавалься.А для полного измененения как основных, так и второстепенных квестов.А так квесты эти я не удалял.Просто удалил вызов диалогов и все.Хотя, я думаю, многим уже приелось то же самое вот уже столько лет.Не знаю, конечно.Это мое и мнения других людей.А функции вступления в группировки есть и мод такой даже есть.Просто диалогов нет.

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


Ссылка на сообщение

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

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


Ссылка на сообщение

Ну например через диалог.

<dialog id="escape_trader_join_dialog">

<has_info>tutorial_end</has_info>

<phrase_list>

<phrase id="0">

<text>escape_trader_join_dialog_0</text>

<next>1</next>

</phrase>

<phrase id="1">

<text>escape_trader_join_dialog_1</text>

<next>11</next>

<next>12</next>

<next>13</next>

<next>14</next>

<next>15</next>

<next>16</next>

<next>17</next>

<next>18</next>

</phrase>

<phrase id="11">

<text>escape_trader_join_dialog_11</text>

<next>112</next>

</phrase>

<phrase id="112">

<text>escape_trader_join_dialog_true</text>

<next>113</next>

<next>18</next>

</phrase>

<phrase id="113">

<text>escape_trader_join_dialog_true</text>

<action>dialogs.actor_set_dolg</action>

<action>dialogs.break_dialog</action>

</phrase>

<phrase id="12">

<text>escape_trader_join_dialog_12</text>

<next>122</next>

</phrase>

<phrase id="122">

<text>escape_trader_join_dialog_check</text>

<next>123</next>

<next>18</next>

</phrase>

<phrase id="123">

<text>escape_trader_join_dialog_true</text>

<action>dialogs_military.actor_set_freedom</action>

<action>dialogs.break_dialog</action>

</phrase>

<phrase id="13">

<text>escape_trader_join_dialog_13</text>

<next>132</next>

</phrase>

<phrase id="132">

<text>escape_trader_join_dialog_check</text>

<next>133</next>

<next>18</next>

</phrase>

<phrase id="133">

<text>escape_trader_join_dialog_true</text>

<action>scmd.join_bandit</action>

<action>dialogs.break_dialog</action>

</phrase>

<phrase id="14">

<text>escape_trader_join_dialog_14</text>

<next>142</next>

</phrase>

<phrase id="142">

<text>escape_trader_join_dialog_check</text>

<next>143</next>

<next>18</next>

</phrase>

<phrase id="143">

<text>escape_trader_join_dialog_true</text>

<action>scmd.join_military</action>

<action>dialogs.break_dialog</action>

</phrase>

<phrase id="15">

<text>escape_trader_join_dialog_15</text>

<next>152</next>

</phrase>

<phrase id="152">

<text>escape_trader_join_dialog_check</text>

<next>153</next>

<next>18</next>

</phrase>

<phrase id="153">

<text>escape_trader_join_dialog_true</text>

<action>scmd.join_killer</action>

<action>dialogs.break_dialog</action>

</phrase>

<phrase id="16">

<text>escape_trader_join_dialog_16</text>

<next>162</next>

</phrase>

<phrase id="162">

<text>escape_trader_join_dialog_check</text>

<next>163</next>

<next>18</next>

</phrase>

<phrase id="163">

<text>escape_trader_join_dialog_true</text>

<action>scmd.join_ecolog</action>

<action>dialogs.break_dialog</action>

</phrase>

<phrase id="17">

<text>escape_trader_join_dialog_17</text>

<next>172</next>

</phrase>

<phrase id="172">

<text>escape_trader_join_dialog_check</text>

<next>173</next>

<next>18</next>

</phrase>

<phrase id="173">

<text>escape_trader_join_dialog_true</text>

<action>scmd.join_monolith</action>

<action>dialogs.break_dialog</action>

</phrase>

<phrase id="18">

<text>escape_trader_join_dialog_false</text>

</phrase>

</phrase_list>

</dialog>

 

 

 

 

Далее перевод

 

<string id="escape_trader_join_dialog_0">

<text>Я хочу вступить в новую группировку.</text>

</string>

<string id="escape_trader_join_dialog_1">

<text>Вот как! Ну что ж, куда собираешься?</text>

</string>

<string id="escape_trader_join_dialog_11">

<text>Мне хочется вступить в Долг.</text>

</string>

<string id="escape_trader_join_dialog_12">

<text>Мне хочется вступить в Свободу.</text>

</string>

<string id="escape_trader_join_dialog_13">

<text>Мне хочется вступить в Бандиты.</text>

</string>

<string id="escape_trader_join_dialog_14">

<text>Мне хочется вступить в Армию.</text>

</string>

<string id="escape_trader_join_dialog_15">

<text>Мне хочется вступить в Наемники.</text>

</string>

<string id="escape_trader_join_dialog_16">

<text>Мне хочется вступить в Экологи.</text>

</string>

<string id="escape_trader_join_dialog_17">

<text>Мне хочется вступить в Монолит.</text>

</string>

<string id="escape_trader_join_dialog_check">

<text>Хорошо. Ты уверен в своем решении?</text>

</string>

<string id="escape_trader_join_dialog_true">

<text>Да, я уверен.</text>

</string>

<string id="escape_trader_join_dialog_false">

<text>Извини. Я пока не готов.</text>

</string>

 

 

 

 

Затем создаешь скрипт scmd.script и втсавляешь в него следующее

function join_bandit (actor, npc)

printf ("ACTOR NOW IN BANDIT COMMUNITY")

if db.actor then

db.actor:set_character_community ("bandit", 0, 0)

end

end

 

function join_military (actor, npc)

printf ("ACTOR NOW IN MILITARY COMMUNITY")

if db.actor then

db.actor:set_character_community ("military", 0, 0)

end

end

 

function join_killer (actor, npc)

printf ("ACTOR NOW IN KILLER COMMUNITY")

if db.actor then

db.actor:set_character_community ("killer", 0, 0)

end

end

 

function join_ecolog (actor, npc)

printf ("ACTOR NOW IN ECOLOG COMMUNITY")

if db.actor then

db.actor:set_character_community ("ecolog", 0, 0)

end

end

 

function join_monolith (actor, npc)

printf ("ACTOR NOW IN MONOLITH COMMUNITY")

if db.actor then

db.actor:set_character_community ("monolith", 0, 0)

end

end

 

 

 

Ну и прописываешь вызов диалога у Сидоровича

<actor_dialog>escape_trader_join_dialog</actor_dialog>

 

И дальше как сделано.

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


Ссылка на сообщение

Ну в самом скрипте задействовано только 20 кнопок.А так лучше в кнопку 9, в игре называеться аномалия, она у меня была тестовая.

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


Ссылка на сообщение

вот так правильно.Это урок

 

Спавн NPC

 

Эта часть статьи написана Arhet и создана на примере того, как в SRP Mod были созданы NPC группировки "Грех".

 

Задействуем файлы:

 

* gamedata\config\gameplay\character_desc_escape.xml

* gamedata\config\gameplay\npc_profile.ltx

* gamedata\config\creatures\spawn_sections.ltx

 

Начнем с character_desc_escape.xml. Описание что значит каждая строка писать не буду, так как все до меня уже сделано.

 

Тут создадим нового персонажа:

 

<specific_character id="esc_dark_stalker_1" team_default = "1">

<name>GENERATE_NAME_bandit</name>

<icon>ui_npc_dark_1</icon>

<map_icon x="0" y="0"></map_icon>

<bio>sim_stalker_novice_bio</bio>

 

<class>esc_dark_stalker_01</class> - вот тут наш новый класс кстати.

<community>dark_stalker</community> <terrain_sect>stalker_terrain</terrain_sect>

<money min="200" max="600" infinitive="0"></money>

 

<rank>198</rank>

<reputation>-24</reputation>

 

<visual>actors\dark_stalker\dark_stalker_1</visual>

<snd_config>characters_voice\human_01\monolith\</snd_config>

<crouch_type>-1</crouch_type>

<panic_treshold>0</panic_treshold>

<supplies>

[spawn] \n

wpn_dark_colt1911 \n

ammo_11.43x23_hydro \n

#include "gameplay\character_items.xml" \n

#include "gameplay\character_drugs.xml" \n

#include "gameplay\character_food.xml"

</supplies>

 

#include "gameplay\character_criticals_3.xml"

 

<start_dialog>dm_hello_dialog</start_dialog>

<actor_dialog>dm_cool_info_dialog</actor_dialog>

</specific_character>

 

Впишем наш код после какого-нибудь </specific_character>

 

Теперь идем в npc_profile.xml и туда вгоняем:

 

<character id="esc_dark_stalker_1">

<class>esc_dark_stalker_01</class>

<specific_character>esc_dark_stalker_1</specific_character>

</character>

 

Теперь надо заняться spawn_sections.ltx. Скрипт будет «брать NPC» как раз из этого файла. Пишем туда:

 

* [esc_dark_stalker_1]:stalker – имя секции для скрипта..

* $spawn = "respawn\esc_dark_stalker_1"

* character_profile = esc_dark_stalker_1 – ссылка на описание нашего NPC

* spec_rank = regular – спец ранг

* community = dark_stalker – группировка.

 

Теперь берем любой скрипт спавна NPC, вгоняем туда имя секции из spawn_sections.ltx и ву-а-ля.

 

Ну к примеру создаем свой файл со скриптом спавна, назовем его - spaw_new_npc.script и запишем туда вот такую функцию (взял из статьи):

 

function spaw_n_n() --тут задается сама функция которая в последующем будет активирована к примеру с помощью диалога

local a = vector() -- db.actor:position() -- тип переменной, которая будет задействована в спавне, вместо кооржинат будет писаться a

a.x = -220.21

a.y = -19.93

a.z = -158.98

alife():create("wpn_ak47",a,33447,47,65535) -- здесь сам спавн объекта, a - тип переменной которую мы указали выше

end

 

Вот и все весь скрипт! Теперь надо его активировать, ну к примеру через диалог, после диалога вставляем:

 

<action>spaw_new_npc.spaw_n_n</action>

 

распишу что значит:

 

<action>название скрипта.функция которую необходимо активировать</action>

 

Тока забыли что данному НПС будет присвоенная дефолтовая логика (т.е. тупо хожу куда сам не знаю) забыли упомянуть про (ххх - лока):

ххх gulag.script (действия НПС! Где можно: где можно присвоить статус кампера; волкера; и.д.т)

ххх gulag.ltx (дублер логики т.е. дублирует кратко действия НПС)

 

 

 

Ну а так в архиве есть папка Рабочие Материалы.Там в папке Модострой много полезных статей.

 

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

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

 

1)repair_kit = ремкомплект, чинит все сразу

2)bomba = дистанционная бомба.Взрыв очень мощный,атомный.

3)dist_pult = пульт для управления бомбой.Спавнить надо в инвентаре одну бомбу и один пульт,иначе работать не будет вместе.

4)suit_power_upgrade =наноартефакт из АВС.Выносливость

5)suit_health_upgrade = наноартефакт из АВС.Плюс здоровье.

6)suit_kev1_upgrade, suit_kev3_upgrade, suit_kev3_upgrade = наноартефакт из АВС.Пулестойкость.(+10, +20, +30)

7)bioradar = Биорадар

8)shlem1, shlem2, shlem3, shlem4, shlem = шлемы.Размещение на поясе.Плюсы ко всем параметрам

9)soldier_outfit_shlem = костюм военног со своим худом

10)в файле outfits.ltx много незаспавненых броников

11)af_dummy_heart1, af_dummy_dumbbell, af_dummy_vertyshka, af_dummy_star_monolith = артефакты.Остальные артефакты спавняться в новых аномалиях.

12)mine_1, mine_2, mine_3 = мины.

13)sceleton_bio_1, sceleton_bio_2, sceleton_bio_3, sceleton_bio_4 = зомби-скелеты

 

 

 

Также в моде не работал над торговлей(оставил для модмейкеров), со спавном неписей и их респавном.

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

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


Ссылка на сообщение

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

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


Ссылка на сообщение

Адаптаровать легко, вот только баги будут с неписями.К примеру, если выстрелить в сталкера, то он должен стрелять в ответ.А так не будет, я уже пробовал его.Если хочешь, могу дать адаптацию.Протестишь.

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

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


Ссылка на сообщение

У вышесказанного мода своя направленность, у моего - своя.В Freeplay сюжет не удален из игры, просто засчитаны все задания.И старые квесты есть.А данный мод удаляет весь сюжет+удаление сюжетных персонажей.Для полноценной разработки сюжетной модификации.Многие моддеры не умеют того, что написано в шапке темы.А сюжет сделать смогут.

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


Ссылка на сообщение

Просто сталкер с визуалом Бармена.Сам Бармен в Баре.файл его логики находиться в папке config\scripts\bar\bar_barmen.ltx

Насчет респавна.Если через смарт, то повторюсь, что в папке Рабочие Материалы есть все необходимое.И статьи тоже.

А через скрипт ogsm_respawn способом ниже

proceed_spawn("cat_weak", vector():set(275, 16, 45), 1, 44, 2, "l01_escape_cat_portion_2")

 

Вот пример.Спавн кошек на Кодоне.Секция,Координаты,геймвертекс,левелвертекс,количество,рестриктор.

Если нужны еще кошки,то пишем следующее:

proceed_spawn("cat_weak", vector():set(275, 16, 45), 1, 44, 1, "l01_escape_cat_portion_3")

То есть поставим координаты,нужное кол-во(в нашем случае одна),и в секции рестриктора пишем следующий порядковый номер.То есть последний рестриктор был 2, а наш будет 3.

 

Это для функции main().Спавн при старте на локации.

Если нужно, что бы респавн был именно у этих кошек, то ниже есть функция

-- Спавн для каждого уровня (вызывается из респавнера)

function level_spawn()

 

Вот там ищем название нужной локации,то есть в нашем случае Кордон, значит

---- Кордон ----

if level_name == "l01_escape" then

 

И вставляем по аналогии

 

proceed_spawn("cat_weak", vector():set(275, 16, 45), 1, 44, 1, level_name.."_cat_portion_3")

 

Имя локации заменяем на level_name.."

И все .Как только скриптовый респавнер определит, что есть неоходимость респавнить кошек(их убили или еще как нибудь) будет вызвана данная секция для респавна.

Только необходимо следить, что бы порядковые номера рестрикторов шли последовательно.Иначе вылетит.

 

Настройка времени респавна и кол-ва заспавненых в файле vars.script.

 

 

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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