-
Публикаций
4 126 -
Зарегистрирован
-
Посещение
-
Победитель дней
107
Тип контента
Профили
Форумы
Блоги
Календарь
Новости
Моды
Весь контент Hardtmuth
-
X-Ray engine [1.0006, 1.5.10, 1.6.02] - GOG version В архиве папки bin (движок игр) версий: S.T.A.L.K.E.R. - Shadow of Chernobyl 1.0006 S.T.A.L.K.E.R. - Clear Sky 1.5.10 S.T.A.L.K.E.R. - Call of Pripyat 1.6.02 Особенность GOG-версии в отсутствии защиты StarForce (для проверки диска). СКАЧАТЬ: https://drive.google.com/open?id=0BxyMHV_eCaxQQi1McE52dnQ0ZU0
-
Как создать самый простой путь path_walk Автор: BadQvik Здравствуйте. По просьбе одного знакомого на форуме, решил написать «тутор» о том: Как создавать пути path_walk. Попытаюсь объяснить довольно понятно, по крайней мере на сколько это мне возможно. Итак, думаю можно приступить. Для того чтобы создать так называемые path_walk точки путей, нам понадобится: Распакованный all.spawn (что это такое даже объяснять не буду!). Когда мы смотрим на распакованный файл all.spawn мы видим довольно обширную структуру из файлов типа “ltx”. Есть файлы с аббревиатурой “alife_название локации”, а есть “way_название локации”. На данный момент нам понадобится файл way_*** (для примера я беру Болота из ЧН), то есть way_marsh. Открыв его, мы видим не знакомые буквы и числа: Как мы видим данная секция представляется из себя путь из двух точек: (р0) и (р1), сейчас попытаюсь кратко объяснить где что: Вроде с секциями разобрались, теперь можно пробовать создать путь. Для примера я создам путь из двух точек, в которых нпс будет ходить туда-сюда. То есть от 1-й ко 2-й от 2-й к 1-й. Приступим. В файле way_mars.ltx (у вас например кордон) создаем секцию: Внимание! Предварительно вам нужно снять координаты точек, например 2-х, у меня координаты не рабочие*взяты для примера! Если задать p1:links = p2(2), то нпс останется в точке 2, так что всегда будьте внимательны с это строкой. После того как пути созданы, осталось прицепить этот путь к НПС (надеюсь вы создали нового? Если нет то создайте). Делается это путем не сложной логики. В папке gamedata\configs\scripts\название вашего файла.ltx делаем так: Все, после закрываем, сохраняем и например если вы спавнили нпс через all.spawn ищите секцию с вашим неписем, находим там: custom_data = <<END пишем: [logic] cfg = scripts\название вашего файла.ltx END Все закрываем, компилируем all.spawn и идем смотреть творение. Наш непись должен ходить туда сюда до бесконечности, конечно пока его не убьют. Я преподнес вам самый простой пример того, как можно создавать пути path_walk, можно сделать очень сложный с анимацией и звуком. Но это будет в следующем уроке. Спасибо за внимание. С вами был BadQvik, статья написана BadQvik из личных источников.
-
[CoP] Показываем здоровье ГГ в процентах Автор: Akella-96© Всем добра. В данном уроке я покажу вам способ вывода на экран процентное состояние здоровья ГГ. Нам не понадобится куча текстур, используемых в качестве custom_static и не потребуется писать громадные скрипты на обработку этих статиков. Мы просто создадим новый файл в папке gamedata\scripts\ и назовем его, например, percent_health.script. В него мы добавим следующий код: function show_health_percent() local a local h a = db.actor h = a.health* 100 local hud = get_hud() local StatCS=hud:GetCustomStatic("actor_health") if StatCS == nil then hud:AddCustomStatic("actor_health",true) StatCS=hud:GetCustomStatic("actor_health") end local StatText = "" StatText = StatText.. string.format("%1.0f\\n",h) if StatCS ~= nil then StatCS:wnd():TextControl():SetText(StatText) end if db.actor:is_talking() then hud:RemoveCustomStatic("actor_health") elseif Info("inv_is_open") then hud:RemoveCustomStatic("actor_health") end if not db.actor:alive() then hud:RemoveCustomStatic("actor_health") end end Теперь разберем все по полкам: show_health_percent – название вашей функции local a – объявляем переменную «а» local h – объявляем переменную «h» a = db.actor – задаем значение переменной «а» (в данном случае «а» равняется «db.actor», то есть ГГ h = a.health* 100 - задаем значение переменной «h» (здесь «h» равняется значению health*100, то бишь, состояние здоровья ГГ, умноженное на 100 (если не умножать, здоровье будет показываться форматом 1, 0.9 и т.п.) local hud = get_hud() – задаем значение переменной hud if StatCS == nil then – (грубый «перевод») если худ StatCS пуст (отсутствует), то hud:AddCustomStatic("actor_health",true) – создаем custom_static с названием «actor_heatlh» StatCS=hud:GetCustomStatic("actor_health") – приравниваем StatCS к созданному статику end – конец проверки (не функции) local StatText = "" – объявляем переменную StatText StatText = StatText.. string.format("%1.0f\\n",h) – приравниваем созданную переменную к прописанному формату показа значения ранее объявленной переменной «h» Подробно о формате показа : %1.0f – указываем, сколько цифр будет выводиться после запятой (нам не нужны дробные значения, поэтому мы ставим 1.0) Это условия для отображения нашего статика if db.actor:is_talking() then – если ГГ разговаривает, то hud:RemoveCustomStatic("actor_health") – удаляем статик elseif Info("inv_is_open") then – если инвентарь ГГ открыт, то hud:RemoveCustomStatic("actor_health") – удаляем статик end if not db.actor:alive() then – если ГГ мертв, то hud:RemoveCustomStatic("actor_health") – удаляем статик end Дополнительно по проверке открытого инвентаря: Чтобы игра проверяла открытие инвентаря, нужно в файл actor_menu.script, (возьмите из распакованной игры) в функции «function inventory_wnd_opened()» перед «end» вставить вот этот код: db.actor:give_info_portion("inv_is_open") И в функции «function inventory_wnd_closed()» (тоже перед «end») добавить: db.actor:disable_info_portion("inv_is_open") Теперь нам надо поставить нашу функцию на вызов. Для этого в файле gamedata\scripts\bind_stalker.script, в функции «function actor_binder:update(delta)», после «object_binder.update(self, delta)», добавляем: percent_health.show_health_percent() На этом со скриптами покончено. Теперь перейдем к конфигу. Открываем файл gamedata\configs\ui\ui_custom_msgs.xml, в конец, но перед «</header>» добавляем: <actor_health x="24" y="47" width="36" height="24" complex_mode="1"> <text font="graffiti22" r="255" g="255" b="255" a="255" align="l"/> </actor_health> Здесь прописаны координаты расположения статика на экране, шрифт отображаемого текста и его цвет. В данном куске кода поставлены координаты левого верхнего угла (у меня измененный ХУД), вы можете указать свои. На этом все. Таким же способом, можно вывести в процентах любое значение параметров ГГ, например, чтобы вывести выносливость, нужно h = a.health* 100 поменять на h = a.power* 100 В общем, можно поэкспериментировать с этой функцией. Вот список остальных операторов параметров ГГ: 1. db.actor.bleeding - степень кровотечения 2. db.actor.radiation - уровень облученности 3. db.actor.radiation - сытость
-
[CoP] Выводим часы на Hud Автор: Steelrat Для этого нам понадобятся стандартные файлы: configs/ui/ui_custom_msgs.xml scripts/bind_stalker.script 1. Создаём файл ваше_название_скрипта.script в папке gamedata/scripts и пишем в него: function show_time() local hud = get_hud() local cs = hud:GetCustomStatic("hud_show_time") if cs == nil then hud:AddCustomStatic("hud_time_static", true) hud:AddCustomStatic("hud_show_time", true) cs = hud:GetCustomStatic("hud_show_time") end[/color] [color=green]local time_h = level.get_time_hours() local time_m = level.get_time_minutes() local msg if time_m >= 10 then msg = string.format(" %02d:%02d\n", time_h, time_m) else msg = string.format(" %02d:%02d\n", time_h, time_m) end if cs ~= nil then cs:wnd():SetText(msg) end end 2. Далее открываем файл ui_custom_msgs.xml в configs/ui/ и пишем туда: <hud_time_static x="852" y="17" width="156" height="52"> <text complex_mode="0" x="65" y="0" font="letterica16" r="255" g="255" b="255" a="130">Time</text> <texture>ui_hud_frame_clock</texture> </hud_time_static> <hud_show_time x="862" y="38" width="156" height="52"> <text x="0" y="0" font="graffiti19" r="255" g="255" b="255" a="140" align="c"/> </hud_show_time> 3. Открываем файл bind_stalker.script и пишем после: function actor_binder:update(delta) object_binder.update(self, delta) local time = time_global() game_stats.update (delta, self.object) следующее: ваше_название_скрипта.show_time()
-
[SoC] Снятие денег с трупов Автор статьи: RETRIX Способ создания фишки "Снятие денег с трупов" для S.T.A.L.K.E.R.-Тень Чернобыля. Находим в распакованном каталоге gamedata файл по адресу GameData/Scripts/treasure_manager.script. *Файл можно править Notepad, Wordpad, Windows OfficeWord и другими текстовыми редакторами (прост. "Блокнот") В файле treasure_manager.script находим следующую конструкцию кода: --' Юзание инициатора (возможность выдать тайник) function CTreasure:use(npc) printf("TREASURE USE") end После строки "TREASURE USE" пишем следующий код: if (npc and db.actor) then lootmoney.lootmoney(npc) end В результате проделанной работы у нас получается в файле treasure_manager.script вот такая конструкция: --' Юзание инициатора (возможность выдать тайник) function CTreasure:use(npc) printf("TREASURE USE") if (npc and db.actor) then lootmoney.lootmoney(npc) end Теперь в каталоге деректории игры по адресу gamedata/scripts создаём новый текстовый документ lootmoney.txt. Открываем файл блокнотом или другим текстовым редактором и сохраняем его как lootmoney.script c кодировкой ANSI. Можно взять готовый скрипт LUA, подчистить его и переименовать. Это значения мало имеет. В файл gamedata/scripts/lootmoney.script пишем вот такую конструкцию: function lootmoney(npc) if npc ~= nil and not string.find(npc:section(),"arena") and npc:character_community()~="arena_enemy" then local money = npc:money() if money ~= nil and money ~=0 then local deadmoney = money local npc_rank npc_rank = ranks.get_obj_rank_name(npc) if npc_rank ~= nil then if npc_rank == "novice" and deadmoney >=400 then deadmoney=math.random(25,400) elseif npc_rank == "experienced" and deadmoney >=500 then deadmoney=math.random(50,500) elseif npc_rank == "veteran" and deadmoney >=600 then deadmoney=math.random(100,600) elseif npc_rank == "master" and deadmoney >=700 then deadmoney=math.random(200,700) end end local news_texti = "\\n%c[255,255,0,0]Мёртвый сталкер: %c[default]"..npc:character_name().."\\n%c[255,255,0,0]Обнаружено денег: %c[default]"..game.translate_string(tostring(deadmoney).."руб.") db.actor:give_game_news(news_texti, "ui\\ui_iconsTotal", Frect():set(0,0,83,47), 1, 4000) db.actor:give_money(deadmoney) game_stats.money_quest_update(deadmoney) npc:give_money(-money) game_stats.money_quest_update(-money) end end end Теперь всё необходимо сохранить и закрыть файлы. Способ должен работать. При обыске трупов сталкеров будет автоматически сниматься определённая сумма денег, подобно тому, как поступает информация о тайниках и статьи в энциклопедию. Приятной игры. Структура данной фишки выдрана из LootMoney MOD.
-
Имя NPC в игровых сообщениях "Зова Припяти" Кто шарит в логике, подскажите, как тут дописать правильно, чтобы в сообщении указывалось имя NPC, а не писалось "Сообщение". [sr_idle@20] on_game_timer = 10000 | sr_idle@30 %+sad_artefuck_ready =send_tip(sad_artefact_upgr_ready:sad_atr_trader) -sad_atr_trader_go_kitchen% send_tip - понятно, что это функция в xr_effects.script Есть даже такой комментарий: --[[ send_tip(news_id:sender:sender_id) 1. news_id 2. sender* 3. sender_id* * - not necessary --]] news_id - это текст сообщения, т.е. string id. В моей логике имя sad_artefact_upgr_ready sender - это иконка в секции tips_icons news_manager.script. В моей логике имя sad_atr_trader sender_id - а это заголовок сообщения, story_id NPC. story_id моего персонажа прописан в файле по пути: gamedata\configs\creatures\spawn_sections_sad.ltx И выглядит так: [sad_atr_trader]:stalker $spawn = "respawn\sad_atr_trader" character_profile = sad_atr_trader story_id = sad_atr_trader Т.е. в логике я указал как: [sr_idle@20] on_game_timer = 10000 | sr_idle@30 %+sad_artefuck_ready =send_tip(sad_artefact_upgr_ready:sad_atr_trader:sad_atr_trader) -sad_atr_trader_go_kitchen% Дело в том, что хоть story_id и указан, заголовок все также остается как "Сообщение". Я все-таки думаю, что story_id читается, но не отображается. Потому что, если указать другое имя, не являющееся story_id - игра вылетит. Думаю, дело в функции send_tip в news_manager.script. Там не прописано отображение имени. Возможно, что-то со времен прошлых игр удалили из скриптов, т.к. я действительно не помню чтобы в ЗП игрок получал сообщения с подписанным именем NPC.
-
[COP] Новый ранг - Легенда Это адаптация урока на Тень Чернобыля для Зов Припяти. Идем в gamedata/configs/creatures/game_releations.ltx и ищем: ;реальное разделение на группы репутаций на шкалы rating = novice, 300, experienced, 600, veteran, 900, master Меняем на: ;реальное разделение на группы репутаций на шкалы rating = novice, 300, experienced, 600, veteran, 900, master, 1200, legend Ищем: ;рейтингов, репутаций и благосклонности в интерфейсе rating_names = novice, 30, experienced, 60, veteran, 90, master Меняем на: ;рейтингов, репутаций и благосклонности в интерфейсе rating_names = novice, 30, experienced, 60, veteran, 90, master, 120, legend Ищем: [rank_relations] ; novice, experienced, veteran, master ;================================================================ novice = 0, 0, 0, 0 experienced = 0, 0, 0, 0 veteran = 0, 0, 0, 0 master = 0, 0, 0, 0 Меняем на: [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 Меняем на: ;очки рейтинга, получаемые за убийство персонажа ;с определенным статусом [rank_kill_points] novice = 0 experienced = 0 veteran = 0 master = 0 legend = 0 Идем в gamedata\configs\text\rus и открываем любой файл и добавляем туда: <string id="legend"> <text>Легенда зоны</text> </string> Все, готово. Можно прописывать любому персонажу в строчку <rank>...</rank>
-
Valve выпустит новую сюжетную кампанию для Left 4 Dead 2
Hardtmuth опубликовал тема в Игровые новости
Valve выпустит новую сюжетную кампанию для Left 4 Dead 2. Об этом сообщил автор канала Valve News Network Тайлер МакВикер со ссылкой на собственные источники. Ранее он уже рассказывал, что в Left 4 Dead 2 есть приватные серверы, на которых используются недоступные в игре карты, в частности одна из локаций кампании The Last Stand из первой части серии. Источники VNN заявили, что активность в таких лобби связана с работой Valve над новым контентом. По информации МакВикера, крупное обновление для Left 4 Dead 2 выйдет до конца 2020 года. Valve использует новую кампанию, чтобы оценить заинтересованность геймеров во франшизе. Инсайдер предположил, что студия может портировать в L4D2 обновленную сюжетную линию The Last Stand или же выпустить ее продолжение. МакВикер добавил, что Valve не планирует переносить Left 4 Dead 2 на Source 2 в ближайшее время. Студия также не готовит третью частью зомби-шутера, несмотря на то, что она уже была в разработке. Источни -
[CoP] Создание излома и кошки
Hardtmuth опубликовал тема в Уроки, вопросы и советы по созданию модов
[CoP] Создание излома и кошки 1. Подготовnте файлы: Возьмите из Чистого Неба, папки creatures и файл, например кошки (m_cat.ltx). Файл (из ЗП) creatures\monsters.ltx. И возьмите модельки, текстуры из оригинала ТЧ. 1. Адаптирование конфига: Кошка: Вставляем в файл m_cat.ltx следующюю запись: vision_free_section = cat_vision_free vision_danger_section = cat_vision_danger Значения visibility_threshold ДОЛЖНЫ БЫТЬ РАВНЫ для денжера и фри, иначе возникают артефакты с потерей видимости при переходе от денжера во фри. [cat_vision_free] min_view_distance = 0.5 ; коэффициент, который множится на eye_range, в зависимости от угла max_view_distance = 1.0 ; коэффициент, который множится на eye_range, в зависимости от угла visibility_threshold = 100.0 ; значение, при достижении суммой которого объект считается видимым always_visible_distance = 0.3 time_quant = 0.001 decrease_value = 0.01 ; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам velocity_factor = 0.5 luminocity_factor = 0.5 ; фактор освещения (только для Актёра) transparency_threshold = 0.25 [cat_vision_danger] min_view_distance = 0.5 ; коэффициент, который множится на eye_range, в зависимости от угла max_view_distance = 1.0 ; коэффициент, который множится на eye_range, в зависимости от угла visibility_threshold = 100.0 ; значение, при достижении суммой которого объект считается видимым always_visible_distance = 0.3 time_quant = 0.001 decrease_value = 0.01 ; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам velocity_factor = 0.5 luminocity_factor = 0.5 ; фактор освещения (только для Актёра) transparency_threshold = 0.25 Излом: В файл "m_facture.ltx" вставляем: vision_free_section = izlom_vision_free vision_danger_section = izlom_vision_danger Значения visibility_threshold ДОЛЖНЫ БЫТЬ РАВНЫ для денжера и фри, иначе возникают артефакты с потерей видимости при переходе от денжера во фри. [izlom_vision_free] min_view_distance = 0.4 ; коэффициент, который множится на eye_range, в зависимости от угла max_view_distance = 1.0 ; коэффициент, который множится на eye_range, в зависимости от угла visibility_threshold = 100.0 ; значение, при достижении суммой которого объект считается видимым always_visible_distance = 0.3 time_quant = 0.001 decrease_value = 0.01 ; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам velocity_factor = 0.5 luminocity_factor = 0.5 ; фактор освещения (только для Актёра) transparency_threshold = 0.25 [izlom_vision_danger] min_view_distance = 0.4 ; коэффициент, который множится на eye_range, в зависимости от угла max_view_distance = 1.0 ; коэффициент, который множится на eye_range, в зависимости от угла visibility_threshold = 100.0 ; значение, при достижении суммой которого объект считается видимым always_visible_distance = 0.3 time_quant = 0.001 decrease_value = 0.01 ; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам velocity_factor = 0.5 luminocity_factor = 0.5 ; фактор освещения (только для Актёра) transparency_threshold = 0.25 2. Вписка в список читаемых файлов: В файл monsters.ltx вписываем строчку: #include "m_cat.ltx" - если добавили кошку. #include "m_fracture.ltx" - если добавили излома. Обе строчки если добавили и кошку и излома. 3. Добавление моделек и текстур: Модельки кошки поместить в meshes\monsters\cat Излома в meshes\monsters\izlom Текстуры поместить в папку textures\act 4. Создание сквады: В файл configs\misc\squad_descr.ltx вносим: Кошка: [simulation_cats_weak]:online_offline_group faction = monster_predatory_day npc_random = cat_weak npc_in_squad = 2, 4 [simulation_cats_strong]:online_offline_group faction = monster_predatory_day npc_random = cat_normal, cat_strong npc_in_squad = 5, 7 У вас получились 2 сквады кошек: simulation_cats_weak - слабая и simulation_cats_strong - сильная Их можно расставить на карте Излом: [simulation_izloms_mix]:online_offline_group faction = monster_predatory_day npc_random = fracture_weak npc_in_squad = 6, 10 [simulation_izloms_pisec]:online_offline_group faction = monster_predatory_day npc_random = fracture_weak npc_in_squad = 12, 20 Получились сквады: simulation_izloms_mix - Среднее число изломов и simulation_izloms_pisec 0 Огромное число изломов (до 20 штук) Эти сквады можно поставить на карты. Все! Можно играть. В конец файла m_facture.ltx впиши: [fracture_weak]:m_fracture_e $spawn = "monsters\fracture" ; option for Level Editor monster_type = indoor rank = 0 spec_rank = weak community = fracture Tele_Time_To_Hold = 200 А в конец m_cat.ltx это: ;--/=== weak === [cat_weak]:m_cat_e $spawn = "monsters\cat_01_weak" monster_type = indoor rank = 0 spec_rank = weak community = cat Tele_Time_To_Hold = 200 immunities_sect = cat_immunities_weak ;--Имунитеты: [cat_immunities_weak]:cat_immunities burn_immunity = 0.4 strike_immunity = 0.4 shock_immunity = 0.4 wound_immunity = 0.1 radiation_immunity = 0.01 telepatic_immunity = 1.0 chemical_burn_immunity = 1.0 explosion_immunity = 0.5 fire_wound_immunity = 0.7 ;--/=== normal === [cat_normal]:m_cat_e $spawn = "monsters\cat_02_normal" monster_type = indoor rank = 0 spec_rank = normal community = cat Tele_Time_To_Hold = 200 immunities_sect = cat_immunities_normal ;--Имунитеты: [cat_immunities_normal]:cat_immunities burn_immunity = 0.4 strike_immunity = 0.4 shock_immunity = 0.4 wound_immunity = 0.1 radiation_immunity = 0.01 telepatic_immunity = 1.0 chemical_burn_immunity = 1.0 explosion_immunity = 0.4 fire_wound_immunity = 0.6 ;--/=== strong === [cat_strong]:m_cat_e $spawn = "monsters\cat_03_strong" monster_type = indoor rank = 0 spec_rank = strong community = cat Tele_Time_To_Hold = 200 immunities_sect = cat_immunities_strong ;--Имунитеты: [cat_immunities_strong]:cat_immunities burn_immunity = 0.4 strike_immunity = 0.4 shock_immunity = 0.4 wound_immunity = 0.1 radiation_immunity = 0.0 telepatic_immunity = 1.0 chemical_burn_immunity = 1.0 explosion_immunity = 0.3 fire_wound_immunity = 0.5 Вылетов не должно быть.- 1 ответ
-
- 1
-
Прототип динамических новостей
Hardtmuth опубликовал тема в Уроки, вопросы и советы по созданию модов
Прототип динамических новостей В общем для этого нужно создать скрипт с названием типа ваше_название.script и нужно иметь чистый файл bind_stalker.script. Сделаем свой скрипт и запишем сюда нечто типо этого: -- Прототип динамичеких новостей local ant_spam ={ "Слышал что на АТП с Темной Долины зомбаки ходят. Осторожнее там.", "Тимыч: Кто флудить будет тому оторву кой-чего.", "Кто нибудь знает куда Стрелок делся?", "Военные вообще оборзели! Две тысячи рублей за проход на север кордона - это не хило!", "Завелся Чак Норрис в наших местах. Бандос это с прозвищем таким. Дебил полный.", "Комбат как-то говорил что Тополь пропал. Неизвестно куда. Разминулись в подземке Агропрома", "Долг: Блин переходите на свою волну. А то запалите Свободе планы", "Свобода: Секач опять на Кота наехал. Кого-то скоро по закону Зоны на бой вызывать будут.", "Похоже мне еще в лагере сидеть. Блин долг когда я этот Сидоровичу то отдам?!" } time_news = 0 -- переменная промежутка времени function time_update_spam() -- функция промежутка времени local time = time_global() -- переменная времени if time_news < time then time_news = time + 30000 -- время через которое будет вызываться сообщение ваше_название.update_spam() end end function update_spam() news_manager.send_tip(db.actor, (ant_spam[math.random(9)]), nil, nil, 30000) end Теперь зайдем в файл bind_stalker.script и после строки: xr_sound.update_actor() пишем ваше_название.time_update_spam() Теперь в игре будет через несколько секунд приходить новости. Чем больше время в строке time_news = time + 30000, тем дольше будет промежуток. Еще можно добавлять свои новости - после строки "Мод Antdiablon freeplay 2.0 - самый крутой" ставьте запятую и пишите свой текст на новой строке, в кавычках но в конце после кавычки ставьте запятую. а если это последний текст, то не ставьте. Потом высчитывайте сколько сообщение всего и в строчке: news_manager.send_tip(db.actor, (ant_spam[math.random(9)]), nil, nil, 30000) вместо 9 ставьте соответствующее количество. -
X-Ray engine [1.5.00-1.5.10] Дата: 15.04.2012 Собрал в архив: Earthworm-Jim В архиве папки bin (движок игры S.T.A.L.K.E.R. - Clear Sky) версий: 1.5.00, 1.5.03, 1.5.04, 1.5.05, 1.5.07, 1.5.08, 1.5.09, 1.5.10. СКАЧАТЬ: https://yadi.sk/d/59j1FfuS3CwShd
-
X-Ray engine [1.6.00-1.6.02] Дата: 15.04.2012 Собрал в архив: Earthworm-Jim В архиве папки bin (движок игры S.T.A.L.K.E.R. - Call of Pripyat) версий: 1.6.00, 1.6.01, 1.6.02. СКАЧАТЬ: https://yadi.sk/d/ZGT5KJKj3CwTFU
- 2 ответа
-
- 1
-
[SOC] Мелкие правки движка Ковыряемся в исходниках SoC. На данный момент тема ориентирована в большей степени на новичков. Здесь будут собираться готовые решения по мелкому ковырянию исходников движка SoC. Собственно приглашаю всех желающих присоединиться. P.S. обсуждение также приветствуется.
- 3 ответа
-
- 2
-
Это были самые увлекательные и запоминающиеся тысячи часов.
- 1 ответ
-
- 1
-
Интересное предложение. Нужно написать Алексею. @Wolfstalker
-
Так всё уже основное сделано. Людей для того и позвали, что основное было сделано и был смысл дозированной подачи ссылок юзерам. ну и очередь же там... ?
-
Используйте отдельное окно чата, если вам нужна ориентация конкретно на чат.
-
Добрый вечер. Думаю, они уже в восторге от того, что их ежедневно душат за дизайн и отсутствие сталкерской стилистики. "Сделайте это, тут подправьте, это не так сделано."
-
Эта функция всегда была.
-
Стандартная процедура. Если что-то нужно сохранить, можно самому себе отправить.
-
vooslich сейчас по быстрому придумаем вопрос и решение этого вопроса.
-
@vooslich давай включайся в решение вопроса.
-
Алексей сделал. Можно видео с динозавриками кидать.
-
Демонстрация открытого мира
Hardtmuth прокомментировал Hardtmuth запись блога в X-Ray Multiplayer Extension
Да, занимаются этим. -
Привет. Добро пожаловать!) ?♀️