-
Публикаций
4 395 -
Зарегистрирован
-
Посещение
-
Победитель дней
113
Тип контента
Профили
Форумы
Блоги
Календарь
Новости
Моды
Весь контент Hardtmuth
-
Создание полоски здоровья, меняющей цвет Для этого нам понадобятся стандартные файлы: config/ui/maingame.xml config/ui/ui_custom_msgs.xml scripts/bind_stalker.script 1. Создаём файл new_hud_health.script в папке gamedata/scripts и пишем в него: 2. Создаём файл new_hud_health.ltx в папке gamedata/config/scripts и пишем в него: 3. В файле ui_custom_msgs.xml прописываем: 4. Открываем файл maingame.xml и находим строчки: 5. Открываем файл bind_stalker.script и пишем после:
- 4 ответа
-
- 1
-
-
Эффект критического ранения Автор: XMK 1. Создаем файл effect_blood.script и записываем туда следующее: lite_treshold = 0.05 -- насколько должно уменьшиться здоровье с предыдущего обновления чтоб экран окрасился в красный crit_treshold = 0.30 -- насколько должно уменьшиться здоровье с предыдущего обновления чтоб ГГ начало шатать drop_item_on_crit_prob = 0.20 -- вероятность того что ГГ выронит оружие effector_power_coeff = 0.7 prev_health = -1 chk_h_t = 0 function wounded_pp_update() if (chk_h_t or 0) < time_global() then chk_h_t = time_global()+1000 if prev_health > (db.actor.health + lite_treshold) then level.add_pp_effector("fire_hit.ppe", 2011, false) local effector_power = (prev_health - db.actor.health)*100*effector_power_coeff level.set_pp_effector_factor(2011, effector_power) if prev_health > db.actor.health + crit_treshold then level.add_cam_effector("camera_effects\\fusker.anm", 999, false, "") local snd_obj = xr_sound.get_safe_sound_object([[actor\pain_3]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) if math.random() < drop_item_on_crit_prob then local active_item = db.actor:active_item() if active_item and active_item:section() ~= "bolt" and active_item:section()~= "wpn_knife" then db.actor:drop_item(active_item) end end end end prev_health = db.actor.health end end 2. Далее открываем bind_stalker.script и после строчек: function actor_binder:update(delta) object_binder.update(self, delta) local time = time_global() game_stats.update (delta, self.object) пишем: effect_blood.wounded_pp_update()
- 3 ответа
-
- 2
-
-
-
[CoP] Создание новых достижений
Hardtmuth опубликовал тема в Уроки, вопросы и советы по созданию модов
[CoP] Создание новых достижений Автор: Zeka1996Korneev Нам понадобятся файлы: configs\gameplay\info_zaton.xml configs\misc\achievements.ltx configs\text\rus\st_achievement.xml configs\ui\textures_descr\ui_actor_achivments.xml scripts\xr_statistic.script scripts\xr_conditions.script textures\ui\ui_actor_achivments.dds Чтобы их найти, нужен распаковщик ресурсов игры. 1. Открываем файл achievements.ltx и добавляем в конец секцию нашего ачивмента: [sucker] icon = ui_inGame2_lopuh hint = st_sp_achievement_22_hint name = st_sp_achievement_22_name desc = st_sp_achievement_22_descr functor = xr_statistic.sucker_functor Подробно: [sucker] <----- В рамке любое название icon = ui_inGame2_lopuh <------ Иконка hint = st_sp_achievement_22_hint <------ Описание в ПДА при наведении на ачивку. name = st_sp_achievement_22_name <---- Название desc = st_sp_achievement_22_descr <----- Описание functor = xr_statistic.sucker_functor <----- Функция получения 2. Открываем st_achievement.xml и пишем: <string id="st_sp_achievement_22_hint"> <text>Вы постараетесь больше не попадать впросак. :)</text> </string> <string id="st_sp_achievement_22_descr"> <text>Вы отдали артефакт мошеннику.</text> </string> <string id="st_sp_achievement_22_name"> <text>Лопух</text> </string> 3. Открываем xr_statistic.script и пишем рядом с функциями других ачивментов: function sucker_functor() <--- Название if not has_alife_info("sucker_achievement_gained") then <--- Проверка, получили ли вы уже этот ачивмент ранее. if has_alife_info("zat_b14_give_item_stalker") <---- Инфопоршень получения ачивмента then xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"stalker", 200}) <----- Прибавление репутации по отношению сталкеров к ГГ. Если написать -200 то репа будет отрицательной. xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"freedom", 200}) <---- Прибавление репутации по отношению свободы к ГГ. xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"dolg", 200}) <--- Прибавление репутации по отношению долга к ГГ. xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"bandit", 200}) <---- Прибавление репутации по отношению бандосов к ГГ. news_manager.send_tip(db.actor, "st_ach_diplomat", nil, "diplomat", nil, nil) <--- Сообщить о получении ачивмента на ПДА db.actor:give_info_portion("sucker_achievement_gained") <--- Выдать ачивмент end end return has_alife_info("sucker_achievement_gained") end 4. Открываем xr_conditions.script и ищем: sucker_functor = xr_statistic.sucker_functor добавляем ниже: friend_of_stalkers_functor = xr_statistic.friend_of_stalkers_functor 5. В ui_actor_achivments.dds рисуем нашу иконку. 6. В ui_actor_achivments.xml пишем координаты текстуры.- 1 ответ
-
- 3
-
-
[CoP] Разбираемся в секторах character_desc_general Автор: Gramatik Сегодня я расскажу вам о character_desc_general игры Зов Припять. Сам файл находится по пути gamedata\configs\gameplay. Открывая файл мы видим секцию ГГ: <!-- Actor --> <!-- --> <specific_character id="actor" no_random = "1"> <name>st_actor_name</name> <icon>ui_inGame2_Hero</icon> <map_icon x="2" y="5"></map_icon> <team>Actor</team> <supplies> [spawn] \n device_torch \n wpn_binoc \n wpn_knife \n detector_simple \n helm_respirator \n stalker_outfit \n grenade_rgd5 = 2 \n wpn_pm_actor \n ammo_9x18_fmj = 3 \n wpn_ak74u \n ammo_5.45x39_fmj = 3 \n bandage = 2 \n antirad = 1 \n medkit = 4 \n bread = 1 \n kolbasa = 1 \n conserva = 2 \n </supplies> <money min="2500" max="2500" infinitive="0"/> <class>actor</class> <community>actor</community> <rank>0</rank> <reputation>0</reputation> <visual>actors\stalker_hero\stalker_hero_1</visual> </specific_character> В этой секции мы можем изминить имя ГГ, всё что будет у него в инвентаре по началу игры, количество денег и прочее. Дальше идут секции группировок: Разбираем эти секции. Каждая секция начинается с названия группировки. К примеру: Stalker, Zombied. Далее идут секции <!-- Группировка novice --><!-- Группировка expirienced --><!-- Группировка expirienced 2 --><!-- Группировка veteran --><!-- Группировка master --> Подробнее расcмотрим секции: Каждая секция начинается с Профиля НПС. Ид Нпс "sim_default_Группировка_*1_default_*2" Где *1 является номером секции. novice = 0 expirienced = 1. А *2 является номером НПС. Ид НПС в этих секциях отвечает за спавн их в сквадах. Замечу что при добавлении новых секций НПС нельзя чтобы количество НПС в секции было больше 9. Т.е. id="sim_default_Группировка_*_default_9" будет идом последнего НПС в секции. Иначе будет вылет с логом: Expression : false Function : CXml::Load File : D:\prog_repository\sources\trunk\xrXMLParser\xrXMLParser.cpp Line : 87 Description : XML file:gameplay\character_desc_general.xml value: errDescr:Error reading Attributes. Эта статья может понадобится для добавления типовых НПС в сквады!
-
Уроки и полезные функции от Panzyuza Автор: Panzyuza Есть простые функции, которые помогут в моддинге. Для начала вот кое-что. Многие сталкивались с необходимостью получения поршня при обыске трупа нпс или мутанта с уникальным именем. Те, кто работает со all.spawn просто используют стандарт игры, добавляя в логическую схему в спавне: [know_info] инфопоршень Но почему только инфопоршень? Зачем писать ещё коды для отлова инфопоршней при обыске? Есть простой и надёжный способ. Нужно открыть блокнотом скрипт xr_motivator.script, найти там следующий код: function motivator_binder:use_callback(obj, who) if self.object:alive() then xr_use.notify_on_use(obj, who) if self.st.active_section then xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "use_callback", obj, who) end else --//выдача дефолтных тайников treasure_manager.get_treasure_manager():use(self.object) end end И после строки treasure_manager.get_treasure_manager():use(self.object) вставляем название_скрипта.dead_use(victim, who). Должно получиться примерно так: function motivator_binder:use_callback(obj, who) if self.object:alive() then xr_use.notify_on_use(obj, who) if self.st.active_section then xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "use_callback", obj, who) end else --//выдача дефолтных тайников treasure_manager.get_treasure_manager():use(self.object) mod.dead_use(victim, who) end end Таким образом в случае юзания игроком нпс после смерти помимо выдачи тайника будет вызываться свой скрипт. Создаём скрипт и вставляем следующее: ---------------------------------------------------------------------------------------------------- -- Функция юзания трупов нпс -- В мотиватор, use коллбек вставить название_скрипта.dead_use(obj, who) ---------------------------------------------------------------------------------------------------- function dead_use(victim, who) if not (victim and who) then return end --/>фикс local name = victim:name() if victim and who and who:id() == db.actor:id() then if string.find(name, "bandit_resp_veteran_dead_bor") then --имя нпс db.actor:give_info_portion("ПОРШЕНЬ") --или вызов скриптовых функций elseif string.find(name, "esc_lager_volk") then --перебор db.actor:give_info_portion("ПОРШЕНЬ") return false --повторной выдачи не будет else return true end end end Нужно только знать имя нпс, которое задаёться ему при спавне. Пример. Если вы создали нпс, прописали ему секцию в spawn_sections, значит его имя будет название секции, которое задаёте при спавне. С мутантами можно также. Но сложнее. Нужно в биндере мутантов добавить use_callback и аналогично с биндером нпс.
-
Создание более сложных диалогов
Hardtmuth опубликовал тема в Уроки, вопросы и советы по созданию модов
Создание более сложных диалогов Автор: R.I.C.K.(KAIL) -
Cоздание кат-сцены в начале игры
Hardtmuth опубликовал тема в Уроки, вопросы и советы по созданию модов
Cоздание кат-сцены в начале игры Автор: tema796 и genior В этом уроке мы научимся создавать кат-сцену в начале игры. Для работы нужно: X-Ray CoP SDK Прямые руки Во первых надо создать сам путь по которой будет двигаться камера: Как создавать путь можно увидеть в этом уроке: Облёт камеры,создание летающей. Сам файл мы помешаем в camera_effects которая находиться в папке anims. Во вторых мы создадим спейс регистор и пути: [41] - номер секций ; cse_abstract properties section_name = space_restrictor name = agr_space_restrictor position = -119.177703857422,0,-162.076232910156 - кординаты direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 0 -гейм вертекст distance = 0 level_vertex_id = 64794 -левл вертекст object_flags = 0xffffff3e custom_data = <<END [logic] cfg = scripts\start.ltx - путь до логики END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 1.91259896755219 ; cse_alife_space_restrictor properties restrictor_type = 3 Создаем путь: [agr_look] points = p0 p0:name = wp00 p0:position = -119.5,0,-159.600006103516 p0:game_vertex_id = 28 p0:level_vertex_id = 63455 [agr_walk] points = p0 p0:name = wp00 p0:position = -119.200004577637,0,-161.699996948242 p0:game_vertex_id = 28 p0:level_vertex_id = 63894 В третьих напишем логику для спей регистора. Создаем файл start.ltx в папке scripts которая находиться configs и пишем это: [logic] active = sr_idle [sr_idle] on_info = {=actor_on_level(agroprom)} sr_cutscene@agr если актер находиться на Агропроме то включаеться секция sr_cutscene@agr [sr_cutscene@agr] point = agr_walk - точка в который стоит актер после сцены look = agr_look - куда он смотрит cam_effector = agr_start сам путь который мы создавали global_cameffect = true enable_ui_on_end = true on_signal = cameff_end | %=stop_sr_cutscene% отключение кат-сцены -
Создание профиля персонажа Автор: Болотный Доктор Для создания персонажа необходимо создать его профиль, описание и спаун-секцию. Чтобы создать профиль персонажа, необходимо в файл «gamedata\configs\gameplay\npc_profile.xml» добавить строки: <character id="<идентификатор_профиля>"> <class><идентификатор_класса></class> </character> Идентификатор профиля конструируется как <префикс_уровня>_<идентификатор_сцены>_<группировка_персонажа>_<описательное_название>, например, zat_b7_stalker_raider_leader. Во избежание путаницы, класс персонажа указывается такой же, как идентификатор профиля. Класс персонажа используется для связи профиля и описания персонажа. 1) Создание описания персонажа: С одним профилем персонажа может быть ассоциировано несколько описаний персонажей. Это позволяет, добавив в игру несколько персонажей с одним и тем же профилем, получить в результате персонажей с различным набором вещей, разным внешним видом (visual), и т.д. Для того чтобы создать описание персонажа, необходимо в файл «gamedata\configs\gameplay\character_desc_<имя_уровня>.xml» добавить следующую конструкцию: <specific_character id="<идентификатор_описания>" team_default = "1"> <name><идентификатор_строки_имени></name> <icon><идентификатор_текстуры_иконки></icon> <map_icon x="1" y="0"></map_icon> <bio><идентификатор_строки_биографии></bio> <class><идентификатор_класса></class> <community><группировка_персонажа></community> <terrain_sect>stalker_terrain</terrain_sect> <rank><ранг></rank> <reputation><репутация></reputation> <money min="<минимум_денег>" max="<максимум_денег>" infinitive="<восполняемость>"/> <visual><внешний_вид></visual> <snd_config><папка_озвучки></snd_config> <supplies> [spawn] \n <предмет>\n <предмет>\n #include "gameplay\character_items.xml" #include "gameplay\character_food.xml" #include "gameplay\character_drugs.xml" </supplies> #include "gameplay\character_criticals_4.xml" <start_dialog><идентификатор_стартового_диалога></start_dialog> <actor_dialog><идентификатор_диалога_актёра></actor_dialog> <actor_dialog><идентификатор_диалога_актёра></actor_dialog> #include "gameplay\character_dialogs.xml" </specific_character> 2) Описание элементов конструкции:
-
[SoC] Добавляем новый ранг - Легенда Автор: Fireman3000 Для начала зайдем в gamedata/config/creatures/game_releations.ltx и там изменим: ;реальное разделение на группы репутаций на шкалы rating = novice, 300, experienced, 600, veteran, 900, master, 1200, legend И затем строчку с наименованием рангов: ;шкалы для вывода названий вместо чисел ;рейтингов, репутаций и благосклонности в интерфейсе rating_names = novice, 300, experienced, 600, veteran, 900, master, 1200, legend Затем там же ищем эту строчку и изменяем ее: [rank_relations] ; novice, experienced, veteran, master, legend ;=================================================================== novice = 0, 0, 0, 0, 0 experienced = 0, 0, 0, 0, 0 veteran = 0, 0, 0, 0, 0 master = 0, 0, 0, 0, 0 legend = 0, 0, 0, 0, 0 Затем там же изменяем одну строчку. Не уверен в ее работоспособности, но лучше не рисковать: ;очки рейтинга, получаемые за убийство персонажа ;с определенным статусом [rank_kill_points] novice = 0 experienced = 0 veteran = 0 master = 0 legend = 0 С конфигами вроде разобрались. Лезем в скрипты gamedata/scripts/_g.script: function set_actor_rank(rank) if rank == "novice" then db.actor:set_character_rank(0) elseif rank == "stalker" then db.actor:set_character_rank(300) elseif rank == "veteran" then db.actor:set_character_rank(600) elseif rank == "master" then db.actor:set_character_rank(900) elseif rank == "legend" then db.actor:set_character_rank(1200) end end Вместо 1200 можете поставить любое свое значение. Этот скрипт отвечает либо за то, когда ранг получается у actor`a, либо, если меняешь через скрипт ранг у последнего, то очки его ранга ровны тому, что мы только что подставили (то бишь 1200)... Затем меняем gamedata/scripts/xr_info.script: local info_by_rank = { novice = { "encyclopedy_zone_artifact_af-medusa", "encyclopedy_zone_artifact_af-cristall-flower", "encyclopedy_zone_artifact_af-vyvert", "encyclop edy_zone_artifact_af-gravi", "encyclopedy_zone_artifact_af-blood", "encyclopedy_zone_artifact_af-soul", "encyclopedy_zone_zone-story_stor y-2006", "encyclopedy_zone_anomalies_bald", " encyclopedy_zone_anomalies_gravi", "encyclopedy_zone_anomalies_meat", "encyclopedy_zone_anomalies_electra", "encyclopedy_z one_anomalies_radioactive", "encyclopedy_zone_locations_escape", "encyclopedy_zone_locations_garbage", "encyclopedy_mutant _crow_general", "encyclopedy_mutant_rat_general", "encyclopedy_mutant_flesh_general", "encyclopedy_mutant_blind_general", " encyclopedy_mutant_boar_general", "encyclopedy_social_military_army", "encyclopedy_social_stalker-clans_duty", "encycloped y_social_stalker-clans_bandits" }, stalker = { "encyclopedy_zone_artifact_af-medusa", "encyclopedy_zone_artifact_af-cristall-flower", "encyclopedy_zone_artifact_af-night-sta r", "encyclopedy_zone_artifact_af-vyvert", "encyclopedy_zone_artifact_af-gravi", "encyclopedy_zone_artifact_af-gold-fish", "encyclopedy_ zone_artifact_af-blood", "encyclopedy_zone_artifact_af-mincer-meat", "encyclopedy_zone_artifact_af-soul", " encyclopedy_zone_zone-story_story-2008", "encyclopedy_zone_anomalies_fuzz", "encyclopedy_zone_anomalies_radioactive", "enc yclopedy_zone_anomalies_electra", "encyclopedy_zone_anomalies_ameba", "encyclopedy_zone_locations_escape", "encyclopedy_zo ne_locations_garbage", "encyclopedy_zone_locations_agroprom", "encyclopedy_zone_locations_darkdolina", "encyclopedy_zone_l ocations_bar", "encyclopedy_zone_locations_rostok", "encyclopedy_mutant_tushkano", "encyclopedy_mutant_pseudodog_general", "encyclopedy_ mutant_bloodsucker_general", "encyclopedy_mutant_burer_general", "encyclopedy_mutant_snork_general", " encyclopedy_mutant_flesh_general", "encyclopedy_mutant_blind_general", "encyclopedy_mutant_boar_general", "encyclopedy_soc ial_stalker-clans_freedom", "encyclopedy_social_stalker-clans_monolith", "encyclopedy_social_stalker-clans_killers", "ency clopedy_social_stalker-clans_zomstalkers", "encyclopedy_social_scientists_mobile-labs", "encyclopedy_social_military_army", " encyclopedy_social_stalker-clans_duty", "encyclopedy_social_stalker-clans_bandits", "stalker_story_2", "stalker_story_3", " stalker_story_7", "stalker_story_11", "stalker_story_12", "stalker_story_16", "stalker_story_17", "stalker_sto ry_18", "stalker_story_19", "stalker_story_20" }, veteran = { "encyclopedy_zone_artifact_af-electra-sparkler", "encyclopedy_zone_artifact_af-electra-flash", "encyclopedy_zone_artifact_af-r usty-thorn", "encyclopedy_zone_artifact_af-rusty-kristall", "encyclopedy_zone_artifact_af-gravi", "encyclopedy_zone_artifa ct_af-gold-fish", "encyclopedy_zone_artifact_af-blood", "encyclopedy_zone_artifact_af-mincer-meat", "encyclopedy_zone_arti fact_af-soul", "encyclopedy_zone_artifact_af-electra-sparkler", "encyclopedy_zone_artifact_af-electra-flash", "encyclopedy _zone_artifact_af-electra-moonlight", "encyclopedy_zone_artifact_af-ameba-slime", "encyclopedy_zone_artifact_af-ameba-slug", " encyclopedy_zone_zone-story_story-2010", "encyclopedy_zone_zone-story_story-raid", "encyclopedy_zone_anomalies_fuzz", "enc yclopedy_zone_anomalies_radioactive", "encyclopedy_zone_anomalies_electra", "encyclopedy_zone_anomalies_ameba", "encyclope dy_zone_locations_agroprom", "encyclopedy_zone_locations_darkdolina", "encyclopedy_zone_locations_bar", "encyclopedy_zone_ locations_rostok", "encyclopedy_zone_locations_military-loc", "encyclopedy_zone_locations_yantar", "encyclopedy_zone_locat ions_radar", "encyclopedy_mutant_pseudogiant_general", "encyclopedy_mutant_poltergeist_general", "encyclopedy_mutant_contr oller_general", "encyclopedy_mutant_bloodsucker_general", "encyclopedy_mutant_burer_general", "encyclopedy_mutant_snork_ge neral", "encyclopedy_social_stalker-clans_loners", "encyclopedy_social_military_milstalkers", "encyclopedy_social_stalker- clans_freedom", "encyclopedy_social_stalker-clans_monolith", "encyclopedy_social_stalker-clans_killers", "encyclopedy_soci al_stalker-clans_zomstalkers", "encyclopedy_social_scientists_mobile-labs", "stalker_story_2", "stalker_story_3", "s talker_story_7", "stalker_story_10", "stalker_story_11", "stalker_story_12", "stalker_story_13", "stalker_stor y_14", "stalker_story_16", "stalker_story_17", "stalker_story_18", "stalker_story_19", "stalker_story_20" } , master = { "encyclopedy_zone_artifact_af-electra-sparkler", "encyclopedy_zone_artifact_af-electra-flash", "encyclopedy_zone_artifact_af-e lectra-moonlight", "encyclopedy_zone_artifact_af-rusty-thorn", "encyclopedy_zone_artifact_af-rusty-kristall", "encyclopedy _zone_artifact_af-rusty-sea-urchin", "encyclopedy_zone_artifact_af-drops", "encyclopedy_zone_artifact_af-fireball", "encyc lopedy_zone_artifact_af-cristall", "encyclopedy_zone_zone-story_story-raid", "encyclopedy_zone_anomalies_fuzz", "encyclope dy_zone_anomalies_radioactive", "encyclopedy_zone_anomalies_electra", "encyclopedy_zone_anomalies_ameba", "encyclopedy_zon e_locations_yantar", "encyclopedy_zone_locations_radar", "encyclopedy_zone_locations_pripiat", "encyclopedy_zone_locations _stancia", "encyclopedy_mutant_pseudogiant_general", "encyclopedy_mutant_poltergeist_general", "encyclopedy_mutant_control ler_general", "encyclopedy_social_stalker-clans_loners", "encyclopedy_social_military_milstalkers", "stalker_story_6", " stalker_story_9", "stalker_story_10", "stalker_story_13", "stalker_story_14", "stalker_story_16", "stalker_sto ry_17", "stalker_story_18", "stalker_story_19", "stalker_story_20" }, legend = { "encyclopedy_zone_artifact_af-electra-sparkler", "encyclopedy_zone_artifact_af-electra-flash", "encyclopedy_zone_artifact_af-e lectra-moonlight", "encyclopedy_zone_artifact_af-rusty-thorn", "encyclopedy_zone_artifact_af-rusty-kristall", "encyclopedy _zone_artifact_af-rusty-sea-urchin", "encyclopedy_zone_artifact_af-drops", "encyclopedy_zone_artifact_af-fireball", "encyc lopedy_zone_artifact_af-cristall", "encyclopedy_zone_zone-story_story-raid", "encyclopedy_zone_anomalies_fuzz", "encyclope dy_zone_anomalies_radioactive", "encyclopedy_zone_anomalies_electra", "encyclopedy_zone_anomalies_ameba", "encyclopedy_zon e_locations_yantar", "encyclopedy_zone_locations_radar", "encyclopedy_zone_locations_pripiat", "encyclopedy_zone_locations _stancia", "encyclopedy_mutant_pseudogiant_general", "encyclopedy_mutant_poltergeist_general", "encyclopedy_mutant_control ler_general", "encyclopedy_social_stalker-clans_loners", "encyclopedy_social_military_milstalkers", "stalker_story_6", " stalker_story_9", "stalker_story_10", "stalker_story_13", "stalker_story_14", "stalker_story_16", "stalker_sto ry_17", "stalker_story_18", "stalker_story_19", "stalker_story_20" } } Этот скрипт отвечает за истории, услышанные от сталкеров (которые остаются в дневнике). Затем лезем в gamedata/scripts/xr_statistic.script: local killCountProps = { neutral_novice = 1, neutral_experienced = 2, neutral_veteran = 3, neutral_master = 4, neutral_legend = 5, monolith_novice = 1, monolith_experienced = 2, monolith_veteran = 3, monolith_master = 4, monolith_legend = 5, military_novice = 1, military_experienced = 2, military_veteran = 3, military_master = 4, military_legend = 5, killer_novice = 1, killer_experienced = 2, killer_veteran = 3, killer_master = 4, killer_legend = 5, ecolog_novice = 1, ecolog_experienced = 2, ecolog_veteran = 3, ecolog_master = 4, ecolog_legend = 5, dolg_novice = 1, dolg_experienced = 2, dolg_veteran = 3, dolg_master = 4, dolg_legend = 5, freedom_novice = 1, freedom_experienced = 2, freedom_veteran = 3, freedom_master = 4, freedom_legend = 5, bandit_novice = 1, bandit_experienced = 2, bandit_veteran = 3, bandit_master = 4, bandit_legend = 5, zombied_novice = 1, zombied_experienced = 2, zombied_veteran = 3, zombied_master = 4, zombied_legend = 5, Вместо 5 можно подставить любое число. Это сколько капает в ранг очков когда убиваешь людей с рангом легенда... Лезем далее в gamedata/scripts/se_respawn.script: -- Таблица ограничений на спаун: всего в симуляции не должно быть больше, чем указано. local simMaxCount = { stalker_novice = 43, stalker_regular = 48, stalker_veteran = 43, stalker_master = 20, stalker_legend = 5, monolith_novice = 0, monolith_regular = 30, monolith_veteran = 35, monolith_master = 30, monolith_legend = 10, military_novice = 0, military_regular = 32, military_veteran = 22, military_master = 5, military_legend = 2, killer_novice = 0, killer_regular = 18, killer_veteran = 17, killer_master = 10, killer_legend = 2, ecolog_novice = 1, ecolog_regular = 1, ecolog_veteran = 1, ecolog_master = 1, ecolog_legend = 0, dolg_novice = 0, dolg_regular = 33, dolg_veteran = 36, dolg_master = 17, dolg_legend = 13, freedom_novice = 50, freedom_regular = 20, freedom_veteran = 26, freedom_master = 21, freedom_legend = 13, bandit_novice = 40, bandit_regular = 50, bandit_veteran = 18, bandit_master = 10, bandit_legend = 2, zombied_novice = 20, zombied_regular = 15, zombied_veteran = 10, zombied_master = 10, zombied_legend = 10, Ну, тут, я думаю, понятно. Остался последний штрих, отображение ранга в текстовом значении. То бишь залезаем в config\text\rus и открываем любой файл, например ui_st_mm.xml и добавляем туда: <string id="legend"> <text>Легенда</text> </string> Чтобы протестировать, лезем в config\gameplay\character_desc_general.xml и меняем ранг у актора. Поставим, например, 1201: <specific_character id="actor" no_random = "1"> <name>actor_name</name> <icon>ui_npc_u_actor</icon> <map_icon x="2" y="5"></map_icon> <team>Actor</team> <supplies> [spawn] \n device_torch \n </supplies> <class>actor</class> <community>actor</community> <rank>1201</rank> <reputation>0</reputation> <visual>actors\hero\stalker_novice</visual> </specific_character> Заходим в игру и проверяем. И да! У ГГ теперь ранг Легенда!
-
[CoP] Добавление отметок в ПДА на карту подключенный локации Автор: Nuklia Итак, приступим! Мы подключили локацию к Зов Припяти, расположили карту в пда, начали обустройство. И тут возникает вопрос - как добавить отметки в пда (в ЗП например Аномалия Битум, Коготь и т.д.)? Вот об этом я и расскажу. Например: я сделал аномалию Свалка на подключенной Припяти (на стадионе). В alife_l11_pripyat.ltx: [137] ; cse_abstract properties section_name = space_restrictor name = zero_b1_spot----любое уникальное имя position = 5.76249980926514,2.64950323104858,341.929992675781---центр окружности, при наведении на которую появиться надпись direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 934-------гейм вертекс уровня distance = 0 level_vertex_id = 214948-----левел вертекс уровня object_flags = 0xffffff3e custom_data = <<END [story_object] story_id = zero_b1_spot END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 1 ; cse_alife_space_restrictor properties restrictor_type = 3 Далее собираем all.spawn (Его еще на место надо положить будет) и идем в папку скрипт, а именно открываем файл pda.script. Находим строку: {target="jup_a9_spot", hint="st_jup_a9_name"}, И после неё вставляем: {target="zero_b1_spot", hint="st_zero_b1_name"}, Закрываем и сохраняем изменения. Далее в папку text/rus/любой файл и там: <string id=" st_zero_b1_name "> <text>Пишем то что хотим видеть при наведении</text> </string>
-
[CoP] Создание места сна Автор: Nuklia - Эх, что-то спасть захотелось. Сказал Дягтярёв и пошёл спать в один из Домиков на кородоне. Нет это не начало рассказа, а то что мы сейчас сделаем, да Вы правы, мы сделаем койкоместо. И так начнём. Разместим секцию спейс-рестриктора в олл.спавне привязка имени к определенному смарт-террейну (esc_b1) не обязательна но желательна для ясности. [15001] ; cse_abstract properties section_name = space_restrictor name = esc_b1_sr_sleep position = -16.1344470977783,0.959998846054077,259.680816650391 direction = 0,0,0 version = 0x7c script_version = 8 ; cse_alife_object properties game_vertex_id = 934 distance = 0 level_vertex_id = 3366 object_flags = 0xffffff3e custom_data = <<END [story_object] story_id = esc_b1_sr_sleep_id [logic] cfg = scripts\sr_sleep.ltx END ; cse_shape properties shapes = shape0 shape0:type = box shape0:axis_x = 5.02119588851929,0,0 shape0:axis_y = 0,5.0482006072998,0 shape0:axis_z = 0,0,2.23479747772217 shape0:offset = 0,0,0 ; cse_alife_space_restrictor properties restrictor_type = 3 Регистрируем наше койкоместо в скриптах. В PDA.script: ;стр.-288 local sleep_zones_tbl = { {target = "zat_a2_sr_sleep_id", hint = "st_ui_pda_sleep_place"}, {target = "jup_a6_sr_sleep_id", hint = "st_ui_pda_sleep_place"}, {target = "pri_a16_sr_sleep_id", hint = "st_ui_pda_sleep_place"}, {target = "esc_b1_sr_sleep_id", hint = "st_ui_pda_sleep_place"}, } Теперь в "xr_effects.script": ;стр.-2846 function sleep(actor, npc) local sleep_zones = { "zat_a2_sr_sleep", "jup_a6_sr_sleep", "pri_a16_sr_sleep", "esc_b1_sr_sleep", "actor_surge_hide_2" } Вот и всё! Теперь бежим на то место и спим!
- 4 ответа
-
- 1
-
-
Название: Sigerous Mod | Версия: 1.7 Платформа: Зов Припяти | Патч: 1.6.00, 1.6.01 или 1.6.02 Разработчик: Болотов Николай (GeJorge или Nick_Mondyfic) Дата выхода: 26 августа, 2010 г. Sigerous Mod 1.7 - сюжетный мод разработанный для Сталкер Зов Припяти. В SGM 1.7 полностью переписан оригинальный сюжет игры, добавлены новые ключевые персонажи, новая квестовая линия, изменяющая и расширяющая возможности оригинальной версии игры. Этот глобальный мод зарекомендовал себя как очень стабильный в отличии от других творений модостроителей.
-
Название: Sins of the past. Пролог Платформа: Зов Припяти | Патч: 1.6.02 Разработчик: ANOTHER Team Дата выхода: 26.01.2019 Модификация расскажет вам о последних действиях Грифа, перед уходом из Зоны еще в 2016 году. Гриф, будучи профессиональным наёмником, работавшим под началом самого Шакала, решается на уход из Зоны. Он довольно долго размышлял над этим, но последней крупицей, которая перевесила чашу весов, стал заказ на убийство довольно большой группы сталкеров.
-
Создание перемещающихся аномалий
Hardtmuth опубликовал тема в Уроки, вопросы и советы по созданию модов
Создание перемещающихся аномалий Автор: Xarvius- 3 ответа
-
- 3
-
-
-
Автор: Macron Что такое Sound Environment в STALKERе? Это принудительное изменение привычных звуков в определенных зонах. Например, логично, если зайдя в подвал/пещеру/под мост мы начнем слышать эхо от выстрелов/перезарядки/своих шагов и т.п. Сами зоны ставятся вручную в SDK и в дальнейшем добавляются в папку уровня в виде файла level.snd_env (или как level.sound_environment для старых билдов). Все билды от 18xx до Тень Чернобыля / Чистое Небо поддерживают Sound Environment. Из движка Тень Чернобыля его никто не вырезал.
-
Автор: Detron Сегодня мы разберем создание OGM во всех деталях в Sony Vegas. В качестве примера выступит создание OGM для меню. Для этого нам понадобятся: - Sony Vegas Pro 12.0 (на других версия не пробовал, но должна подойти любая). - K-Lite Codec Pack: Mega (ссылка: codecguide.com/download_k-lite_codec_pack_mega.htm). - Заранее настроенный мной конвертер OGM (ссылка: https://yadi.sk/d/UDzeGHZChIl1CA).
- 2 ответа
-
- 4
-
-
Эффект "противогаза" в речи | Урок по Audacity Автор: KACTET Что-то в каждом моде в противогазе говорят так же как и без него. Мой мозг видя картинку и слыша звук не может воспринять это как настоящие . Вообщем, мой урок как сделать так, что бы голос принял эффект противогаза или скафандра. До этого способа я додумался сам, ну не суть... Нам нужна программа Audaсity, она полностью бесплатная и в набор входит много языков, в том числе и русский, ссылка на скачивание будет ниже: Скачать Audacity: audacityteam.org/download
-
Как корректно вставить свою музыку в игру используя X-Ray SDK Любым музыкальным редактором, например можно использовать Sound Forge 8.0, подготавливаем наши звуковые файлы – они должны быть сохранены в следующем виде: качество сохраняемых файлов: WAV (standard) 44100Гц, Моно, 16 бит. После сохранения выбранных треков в виде WAV (standard) 44100Гц, Моно, 16 бит, их необходимо перевести в формат, поддерживаемый игрой. Для этого нам понадобится X-Ray SDK – официальный пакет разработчика для игры S.T.A.L.K.E.R. NB: Вы спросите, почему сразу не сохранять треки в формате OGG 44100Hz, Mono? Ответ прост – в комментах OGG-файла должны прописываться параметры распространения звука по игровому миру. Именно по этой причине собственные звуки в игре практически не слышно на определенных расстояниях, именно поэтому в консоль выводятся сообщения о ! Invalid ogg-comment version, file: и т.п.
- 2 ответа
-
- 3
-
-
-
Описание: Небольшая подборка шрифтов. Подходит для любой версии. Добавлено: ― Courier New 20 ― Segoe Script 37 ― S.T.A.L.K.E.R. 2 32 [Отсутствует нижний регистр и часть букв/символов] Ссылки: От 28.09.2018: скачать с Yandex Disk Какие шрифты Вы бы хотели видеть в сталкере?
-
Печальная ситуация. У меня 12 лет интернет 1 МБ (при этом скачивание файлов 300-400 КБ, а загрузка их куда нибудь на хостинг - 100-120.) Хорошо, что эта проблема вообще решается перезагрузкой страницы.
-
Да, только вот проблема это у нас двоих с Настей, и у нас двоих плохой интернет, который мы до края грузим. Она загружает скриншоты на хостинг с мобильного интернета. А я онлайн радио включаю. У меня и так скорость загрузки 300-400 КБ, при этом я слушаю радио, включен дискорд и еще вкладки в браузере. Вероятнее всего, поэтому я и ловлю часто эту проблему. Нужно конкретней изучать эту проблему. Но повод грешить на интернет - есть. Хотя, можно предположить, что проблема может возникнуть и у обладателей хороших интернетов, но когда он загружен в максимум.
-
Что там видеть? Мы уже нашли причину, из-за которой происходит эта проблема.
-
А вот мы отловили, причём почти разу. Интернет нужно нормальный выбирать. Хорошо, займёмся этим. Да вы и сами можете сделать это, если есть желание. Мы будем рады помощи со стороны.
-
Название: ZONE of DARKNESS v.1 Разработчики: Dik_lu (Zone of Darkness) и Dangeros Платформа: ТЧ 1.0004/05 Описание мода: Ссылки на загрузку: Скриншоты:
-
Автор: mortaLheavEn Данная модификация заменяет худ в игре. Все худы адаптированы под разрешения от 1280х720 до 1920х1080. Чтобы увидеть всю красоту худа желательно иметь монитор с разрешением 1920х1080. Любой из худов можно ставить почти на любой мод без адаптации. Но есть такие моды, которые использует специфически настроенные худы и для них придется адаптировать вручную (Один из таких модов - Lost World: Trops of Doom). В архиве присутствует "F.A.Q" - там я постарался ответить на все вопросы , если с таковыми вы столкнетесь. Ссылки на загрузку: Скриншоты: