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

Скриптование


Svoboда

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

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


Прошу прошения забыл указать платформу  SoC 1.0004

Pir%40t%40s.gif

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


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

Добавил спальный мешок в Тень Чернобыля 1.0004 ( добавлял так, как написано в этой статье). но теперь ГГ сам по себе время от времени засыпает. Иногда даже во время боя. Как это исправить, подскажите пожалуйста. 

 

SoC. Спальный мешок.txt

Pir%40t%40s.gif

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


Ссылка на сообщение
9 часов назад, naxac сказал:

@CRAZY_STALKER666 ,

 

  Показать

 

 

 

 

 

 

 

 


  local can_leave = {

    wpn_knife = true,

    wpn_binoc = true,

    device_pda = true

  }

  local sim, obj = alife(), nil

  db.actor:iterate_inventory(

    function (dummy, item)

      obj = sim:object(item:id())

      if obj and can_leave[item:section()] == nil then

        sim:release(obj, true)

      end

    end,

  nil )
 

 

куда это нужно приписывать что бы активировать?

Pir%40t%40s.gif

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


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

Подскажите, пожалуйста, как отловить момент выстрела из РПГ через скрипт?

Суть вопроса: У меня РПГ - 22 (одноразовый), выстрел, и у нас в место РПГ остается пустой контейнер. Платформа: ТЧ  1.0004

Ссылка на РПГ -22 https://yadi.sk/d/h0V8gPx83LN9aU

Pir%40t%40s.gif

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


Ссылка на сообщение
(изменено)

@BossBoroda Попробуй через таймер запустить:

====================================

 function action_timer()
      .... ваш код по истечению таймера ....
   end
   function start_timer()
      -- взводим таймер на 10 секунд
      local iTimer = time_global() + 10000
      -- функция ожидания истечения таймера
      local function check_timer()
         return time_global() > iTimer
      end
      -- ставим её на апдейт
      level.add_call(check_timer, action_timer)
   end

-------------------------------------------------------------------------------------

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

Pir%40t%40s.gif

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


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

@BossBoroda Ты сообщения как запускаешь, через поршень или диалог? Если через поршень, то это будет примерно так:

<info_portion id="твой поршень">                           
<action>твой скрипт.go</action>                        
<action>my_timers.start_timer</action>
</info_portion>

А в скрипте пишешь:

function start_timer()
      -- взводим таймер на 60 секунд
      local iTimer = time_global() + 60000
      -- функция ожидания истечения таймера
      local function check_timer()
         return time_global() > iTimer
      end
      -- ставим её на апдейт
      level.add_call(check_timer, action_timer)
   end

function action_timer()
 твой скрипт. go2()    
   end

скрипт с сообщениями:

 funtion go()

news_manager.send_tip(db.actor, "st_test1", 2, "default", 6000)

end

funtion go2()

 news_manager.send_tip(db.actor, st_test2, 8, "default", 6000) 

end

Pir%40t%40s.gif

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


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

Всем добра! У меня вопрос: Недавно в одном моде увидел такую функцию в bind_stalker.script

Скрытый текст

---------------------------------------------------------------------------
function actor_binder:net_spawn(data)

-- Случайный спавн мутантов при заходе на локацию:
    spawn_sluchainji.random_spawn()

    printf("actor net spawn")        

    level.show_indicators()

    self.bCheckStart = true
    self.weapon_hide = false--     спрятано или нет оружие при разговоре.
    weapon_hide = false--     устанавливаем глобальный дефолтовый флаг.

    if object_binder.net_spawn(self,data) == false then
        return false
    end

    db.add_actor(self.object)
    
    if self.st.disable_input_time == nil then
        level.enable_input()
    end

    self.weather_manager:reset()
--    game_stats.initialize ()

    if(actor_stats.add_to_ranking~=nil)then
        actor_stats.add_to_ranking(self.object:id())
    end

    --' Загружаем настройки дропа
    death_manager.init_drop_settings()
    ogsm_funcs.on_game_load()
--==================================================================
    if level.name() == "l03u_agr_underground" then
get_console():execute("start_my_script_level_name_=_"..level.name())
spawn_sluchainji.podz_agro_rats()
end
    if level.name() == "l10u_bunker" then
get_console():execute("start_my_script_level_name_=_"..level.name())
spawn_sluchainji.podz_vjzhigatelya_rats()
end
--===============================================================
              return true
end
-----------------------------------------------------------------------

Подскажите возможно ли вынести эту функцию в отдельный скрипт или она должна быть именно здесь? Если это возможно, то как это делать что бы не поймать вылет? Платформа ТЧ 1.004. Заранее большое спасибо за ответ

Pir%40t%40s.gif

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


Ссылка на сообщение
13 минут назад, BFG сказал:

Она у тебя уже вынесена в отдельный скрипт, вроде как. Смотри в скрипте spawn_sluchainji.script функцию random_spawn()

Вы совершенно правы, так и есть. Просто,я хотел при помощи этой функции аномалии на локациях заспавнить.

Потому что, у меня получается так.

Скрытый текст

Если я спавню аномалию через скрипт на болоте, то при переходе к примеру на кордон эта аномалия появляется так же на кордоне. А по планам, хотелось бы заспавнить конкретные аномалии на конкретных локациях. К примеру "Туман" только на болотах и янтаре, а не по всей зоне.

 

Pir%40t%40s.gif

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


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

Всем привет! Подскажите пожалуйста есть ли функция для SoC позволяющая поссорить между собой 2 нейтральные группировки через скрипт?

Я нашел что то подобное в интернете, но только для Зова Припяти. 

Скрытый текст

источник : http://st-md.ru/viewtopic.php?id=317
-------------------------------------------------
Николай ввёл несколько новых группировок в дополнение к имеющимся:
bandit_alies - бандиты из группы Чапая 
killer_alies - Юпитерские наймы 
rasvet - Рассвет 
monolith_alies - Монолит в кинотеатре на Припяти 
alfa_force - Альфа
Старые группировки:
actor - единственный член группировки - ГГ 
dolg - Долг 
freedom - Свобода 
bandit - бандиты 
killer - наймы 
stalker - сталкеры 
monolith - Монолит
Кроме того Николай прописал функцию изменения взаимоотношений между группировками.
set_faction_to_faction_relation(from_faction,to_faction,type_relation) 
где from_faction - наименование группировки, которая будет менять отношение 
to_faction - наименование группировки, к которой будет изменяться отношение 
type_relation - отношение. Можно задавать следующие значения: 
"e" - установить вражеские отношения 
"n" - установить нейтральные отношения 
"f" - установить дружеские отношения
Тут возникает широкое поле деятельности. Например, геймерам, истомлённым Альфой поссорить её с бандитами. Рисуем:
set_faction_to_faction_relation("bandit","alfa_force","e")
После выполнения функции, при встрече бандитов с Альфой "Кушай лимончик, падла!" - гарантирую. 
Но мы о краснухе. 
Краснуха возникает при отстреле члена группировки, заступе на территорию группы без разрешения и глючков игры. Вот этот последний случай и попробуем лечить. Рисуем лечение отношений между Чапаевцами и ГГ:
set_faction_to_faction_relation("bandit_alies","actor","n")
После выполнения функции Чапа и его команда станут жёлто-равнодушными к ГГ. 
Всё? Неа...А куда вписать эту функцию и как её запустить? Не буду изобретать паровоз: в файл меню, забиндив её на F6. 
Открываем \scripts\ui_main_menu.script 
Ищем
elseif db.actor~=nil and dik==DIK_keys.DIK_F5 then 
self:mod_options()
Ниже вставляем
elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then 
set_faction_to_faction_relation("bandit_alies","actor","n")
Сохраняем, закрываем, запускаем игру.
В игре Esc-F6-Esc
Что мы сделали? Теперь все вновь рождённые бандиты на Лесничестве (неудачный пример: эти не спавнятся) будут нейтральны к ГГ. А эти, уже рождённые? Будут красными. А их надо примирять с ГГ персонально. Надо перебрать все объекты на уровне, отфильтровать сталкеров с нужной группировкой и каждого примирить с ГГ. Постреляем, к примеру в Долговцев - они стали красными. Лечим. Находим в томже файле меню:
elseif db.actor~=nil and dik == DIK_keys.DIK_F5 then 
self:mod_options()
--после вставляем фрагмент:
elseif db.actor~=nil and dik == DIK_keys.DIK_F6 then 
local id, obj, kto 
for id=0, 65535 do 
obj = level.object_by_id(id) 
if obj and IsStalker(obj) then 
kto = obj:character_community() 
if (kto == "dolg") then 
obj:force_set_goodwill(0, db.actor) --0 - нейтрал, 5000 - друг, -5000 - враг 
end 
end 
end
Видим красных долговцев - жмём Esc-F6-Esc 
Можно перекрашивать и другие кланы, заменив "dolg" на, например "bandit" 
Всё!

 

Pir%40t%40s.gif

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


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

Всем привет! Скажите,возможно ли поссорить две нейтральных клана с помощью этого:

function limansk(community1, community2)
relation_registry.set_community_goodwill ("bandit", "killer", -500)
end

Или это работает только относительно актера?

Pir%40t%40s.gif

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


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

Всем привет. Играю в SoC -1.004, добавил Dynamic News+ Blowout Mod. А теперь вопрос: Как отключить показ новостей во время выброса? Зарание спасибо.

Pir%40t%40s.gif

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


Ссылка на сообщение
3 часа назад, BossBoroda сказал:

на "главном экране"?

В смысле на "главном экране"? Может тебе на  худе нужно отображение патронов убрать? Но это не в скриптах делается, нужно править вот тут: gamedata\config\ui\maingame.xml. Если я не прав, то пусть меня поправят "старшие товарищи"

Pir%40t%40s.gif

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


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

Всем привет. Подскажите пожалуйста как при помощи скрипта отключить кнопки использования ПДА. Суть вопроса:

Скрытый текст

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

 

Pir%40t%40s.gif

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


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

Добрый день! У меня вопрос по поводу некоторых функций в SoC 1.004.

Скрытый текст

Вот функция проверки находится ГГ на Кордоне или нет:

function go_to_marsh_complete()
    if level_name == "l01escape" then 
        return true
    else
        return false
    end
end

-------------------------------------------------------

А как нужно написать проверку, что бы при заходе ГГ на Кордон выполнялось какое либо действие? И в каком скрипте ее прописывать, что бы подключить к игре. Заранее большое спасибо за ответ.

 

Pir%40t%40s.gif

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


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

@Rod_K Если нпс уходит гулять после спавна сам по себе, это ошибка в логике.

 

  • Согласен 1

Pir%40t%40s.gif

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


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

День добрый товарищи. У меня вопрос, вот какого плана: Как установить метку на предмет, если использовать «Рандомный спавн объектов» от тов. Singapur22?

Пример функции:

function my_spawn()
local tbl = {
{129.204,-6.337,-12.101,427496,133},
{101.002,-7.632,-4.966,398683,116},
{106.678,-7.494,8.702,406288,118}
}
local items = {
'af_medusa',
'af_vyvert',
'af_blood'
}       
xr_effects.uni_random_spawn(items, tbl, kol)
end

 

Pir%40t%40s.gif

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


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

День добрый. Подскажите пожалуйста: Как сделать проверку на состояние предметов в слотах (слот 1,слот 2, слот 6)?

Версия игры : SoC 1.0006

Pir%40t%40s.gif

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


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

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

AMK-Team.ru

×
×
  • Создать...