Случайная подборка модов
Clear Sky: MYSTERY v2.0
4.0
Новый Арсенал 5.0
3.6
Absolute Nature 3
4.1
Новое Время. Научный Подход
3.8
Холодная кровь: Факты.Часть первая
1.9
World of War - Mod 0.2
3.5
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  Wolfstalker
Среда, 24.02.2016, 00:25 | Сообщение # 1
Статус:
Легенда:
Сообщений: 2258
Награды: 15
Регистрация: 05.04.2010

В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга


• Не флудить
• Предварительно просматривайте раздел, ведь ответ на ваш вопрос может быть там
• В своем вопросе указывайте платформу моддинга — Тень Чернобыля, Чистое небо или Зов Припяти




F.A.Q

  Злобная реклама
Среда, 24.02.2016, 00:25
Статус:
Сообщений: 666
Регистрация: 05.04.2010
Украина  _S_k_i_F_
Пятница, 25.11.2016, 20:12 | Сообщение # 4666
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

И снова проблема с ГУИ... Взял абсолютно рабочее ГУИ, в скрипте поменял только действия при нажатии на кнопки, в конфиге текстуру и координаты - итог - новое ГУИ не работает - кнопки не реагируют на клики. В чем может быть проблема???
Рабочее ГУИ


А вот нерабочее


Может кто-то знает, в чем может быть проблема? Зараннее спасибо!

Добавлено (25.11.2016, 20:12)
---------------------------------------------
Еще такой вопрос: написал скрипт
Код
--//    Медикаменты       \\--
function get_medicine()
local item_medicine = nil
local rnd = math.random(100)
local rnd2 = math.random(3)
local rnd3 = math.random(100)
local medkits = {"medkit","medkit_army","medkit_scientic", "antirad", "bandage"}
local boosters = {"drug_coagulant","drug_booster","drug_psy_blockade","drug_antidot","drug_radioprotector"}
local anabiotic = {"drug_anabiotic"}
    if rnd <= 85 then
  if rnd2 == 1 then
   item_medicine = medkits[math.random(#medkits)]
  elseif rnd2 == 2 then
   item_medicine = boosters[math.random(#boosters)]
  elseif rnd2 == 3 then
   if rnd3 > 90 then
    item_medicine = anabiotic    
   end    
  end    
    end
    
if item_medicine ~= nil then
    return item_medicine    
end    

end

--// Оружие и боеприпасы  \\--
function get_weap_and_ammo()
local ammo_weap = nil
local item_weap = nil
local rnd = math.random(100)
local rnd2 = math.random(100)
local rnd3 = math.random(3)
local rnd4 = math.random(100)
local pistols1 = {"wpn_pm","wpn_pb","wpn_fort"}
local pistols2 = {"wpn_hpsa","wpn_beretta","wpn_walther","wpn_mp5"}
local pistols3 = {"wpn_sig220","wpn_colt1911","wpn_usp","wpn_desert_eagle"}
local shootgun = {"wpn_bm16","wpn_toz34","wpn_wincheaster1300","wpn_spas12"}
local automatic1 = {"wpn_ak74u","wpn_ak74","wpn_abakan"}
local automatic2 = {"wpn_l85","wpn_lr300","wpn_sig550"}
local grenades = {"grenade_f1","grenade_rgd5"}
    if rnd > 50 then
  if rnd2 > 75 then
   if rnd3 == 1 then
    item_weap = pistols1[math.random(#pistols1)]
    if rnd4 < 75 then    
     ammo_weap = {"ammo_9x18_fmj"}
    else
     ammo_weap = {"ammo_9x18_pmm"}    
    end    
   elseif rnd3 == 2 then
    item_weap = pistols2[math.random(#pistols2)]
    if rnd4 < 75 then    
     ammo_weap = {"ammo_9x19_fmj"}
    else
     ammo_weap = {"ammo_9x19_pbp"}    
    end    
   elseif rnd3 == 3 then
    item_weap = pistols3[math.random(#pistols3)]
    if rnd4 < 75 then    
     ammo_weap = {"ammo_11.43x23_fmj"}
    else
     ammo_weap = {"ammo_11.43x23_hydro"}    
    end    
   end
  else
   if rnd3 == 1 then
    item_weap = shootgun[math.random(#shootgun)]
    if rnd4 < 50 then    
     ammo_weap = {"ammo_12x70_buck"}
    else
     ammo_weap = {"ammo_12x76_zhekan"}    
    end    
   elseif rnd3 == 2 then
    item_weap = automatic1[math.random(#automatic1)]
    if rnd4 < 75 then    
     ammo_weap = {"ammo_5.45x39_fmj"}
    else
     ammo_weap = {"ammo_5.45x39_ap"}    
    end    
   elseif rnd3 == 3 then
    item_weap = automatic2[math.random(#automatic2)]
    if rnd4 < 75 then    
     ammo_weap = {"ammo_5.56x45_ss190"}
    else
     ammo_weap = {"ammo_5.56x45_ap"}    
    end    
   end
  end
    end
    
if ammo_weap ~= nil and item_weap ~= nil then
    return ammo_weap and item_weap
end
    
end

--//       Броники        \\--

--//      Артефакты       \\--

--//         Еда          \\--

--//       Деньги         \\--

function fill()
get_medicine()
get_weap_and_ammo()
local cnt = 3
for i=1,cnt do
local box = "jup_treasure_"..i
    if get_medicine().item_medicine ~= nil then
  local med_item = get_medicine().item_medicine
  xr_effects.spawn_object_in(nil, nil, {med_item,box})
    end    
    if get_weap_and_ammo().ammo_weap ~= nil and get_weap_and_ammo().item_weap ~= nil then
  local ammo_item = get_weap_and_ammo().ammo_weap
  local weap_item = get_weap_and_ammo().item_weap
  xr_effects.spawn_object_in(nil, nil, {ammo_item ,box})
  xr_effects.spawn_object_in(nil, nil, {weap_item ,box})
    end    
end
end

В чем суть - в первых двух функциях надо получить рандомно предмет. Во второй, если он существует - заспавнить его в ящик. Но при запуске скрипта вылетает
Код
...- Зов Припяти\gamedata\scripts\fill_treasures.script:118: attempt to index a nil value

вот строка 118
Код
if get_medicine().item_medicine ~= nil then

Где ошибся? Зараннее спасибо!
Сообщение отредактировал _S_k_i_F_ - Суббота, 26.11.2016, 01:39
  Злобная реклама
Пятница, 25.11.2016, 20:12
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  denis2000
Пятница, 25.11.2016, 21:46 | Сообщение # 4667
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Shdow_Runner,
Сообщение отредактировал denis2000 - Пятница, 25.11.2016, 21:52
  Злобная реклама
Пятница, 25.11.2016, 21:46
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  Neptun
Суббота, 26.11.2016, 06:02 | Сообщение # 4668
Связной
Статус:
Бывалый:
Сообщений: 672
Награды: 9
Регистрация: 25.03.2012

_S_k_i_F_, я всё ещё настаиваю, что нельзя телепортировать ГГ через гуи:
xr_effects.teleport_actor(nil, nil, {"jup_pr_final_in_tonnel_walk","jup_pr_final_in_tonnel_look"})
И ещё, попробуй выдавать инфопорцию таким образом: db.actor:give_info_portion("jup_pr_final_in_tonnel")
  Злобная реклама
Суббота, 26.11.2016, 06:02
Статус:
Сообщений: 666
Регистрация: 25.03.2012
Российская Федерация  Overfirst
Суббота, 26.11.2016, 07:48 | Сообщение # 4669
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

Цитата mmihaill ()
я всё ещё настаиваю, что нельзя телепортировать ГГ через гуи
Тогда попробуй выдать инфо после нажатия на кнопку, а с помощью рестриктора проверяй наличие этого инфо, потом телепортируй.
Цитата mmihaill ()
попробуй выдавать инфопорцию таким образом: db.actor:give_info_portion("jup_pr_final_in_tonnel")

Разница?
Код
function give_info (info)
    db.actor:give_info_portion(info)
end
  Злобная реклама
Суббота, 26.11.2016, 07:48
Статус:
Сообщений: 666
Регистрация: 11.06.2015
Российская Федерация  ins33
Суббота, 26.11.2016, 09:59 | Сообщение # 4670
Dream Reader Mod
Статус:
Опытный:
Сообщений: 2269
Награды: 1
Регистрация: 17.01.2012

_S_k_i_F_, В нерабочем варианте поршень выдаётся? Тогда добавь вызов ф-ии из поршня
Код
<info_portion id="jup_pr_final_in_tonnel"><actiion>name_script.name_function</action></info_portion>
Ну и в скрипт добавь ф-ию:
Код
function name_function()
xr_effects.teleport_actor(nil, nil, {"jup_pr_final_inside_tonnel_walk","jup_pr_final_inside_tonnel_look"})
end
На всякий случай выдавай поршень после закрытия ГУИ-шки.
И попробуй вызвать ф-ию телепортации после закрытия ГУИ:
Код
self:HideDialog()
xr_effects.teleport_actor(nil, nil, {"jup_pr_final_in_tonnel_walk","jup_pr_final_in_tonnel_look"})


BoBaH_671, Задержки запуска ф-ии через поршень будет достаточно. Да и лишний рестриктор для это точно не стоит ставить.

Добавлено (26.11.2016, 09:59)
---------------------------------------------

Цитата _S_k_i_F_ ()
Где ошибся? Зараннее спасибо!
get_medicine().item_medicine
  Злобная реклама
Суббота, 26.11.2016, 09:59
Статус:
Сообщений: 666
Регистрация: 17.01.2012
Украина  _S_k_i_F_
Суббота, 26.11.2016, 13:20 | Сообщение # 4671
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

mmihaill, я пробовал убрать все действия кроме закрытия гуи из кнопок - ноль эффекта.
ins33, не совсем понял. Вот как сейчас выглядит скрипт
Код
--//    Медикаменты       \\--
function get_medicine()
local item_medicine = nil
local rnd = math.random(100)
local rnd2 = math.random(3)
local rnd3 = math.random(100)
local medkits = {"medkit","medkit_army","medkit_scientic", "antirad", "bandage"}
local boosters = {"drug_coagulant","drug_booster","drug_psy_blockade","drug_antidot","drug_radioprotector"}
local anabiotic = {"drug_anabiotic"}
    if rnd <= 85 then
  if rnd2 == 1 then
   item_medicine = medkits[math.random(#medkits)]
  elseif rnd2 == 2 then
   item_medicine = boosters[math.random(#boosters)]
  elseif rnd2 == 3 then
   if rnd3 > 90 then
    item_medicine = anabiotic    
   end    
  end    
    end
    
--if item_medicine ~= nil then
    return item_medicine    
--end    

end

--// Оружие и боеприпасы  \\--
function get_weap_and_ammo()
local ammo_weap = nil
local item_weap = nil
local rnd = math.random(100)
local rnd2 = math.random(100)
local rnd3 = math.random(3)
local rnd4 = math.random(100)
local pistols1 = {"wpn_pm","wpn_pb","wpn_fort"}
local pistols2 = {"wpn_hpsa","wpn_beretta","wpn_walther","wpn_mp5"}
local pistols3 = {"wpn_sig220","wpn_colt1911","wpn_usp","wpn_desert_eagle"}
local shootgun = {"wpn_bm16","wpn_toz34","wpn_wincheaster1300","wpn_spas12"}
local automatic1 = {"wpn_ak74u","wpn_ak74","wpn_abakan"}
local automatic2 = {"wpn_l85","wpn_lr300","wpn_sig550"}
local grenades = {"grenade_f1","grenade_rgd5"}
    if rnd > 50 then
  if rnd2 > 75 then
   if rnd3 == 1 then
    item_weap = pistols1[math.random(#pistols1)]
    if rnd4 < 75 then    
     ammo_weap = {"ammo_9x18_fmj"}
    else
     ammo_weap = {"ammo_9x18_pmm"}    
    end    
   elseif rnd3 == 2 then
    item_weap = pistols2[math.random(#pistols2)]
    if rnd4 < 75 then    
     ammo_weap = {"ammo_9x19_fmj"}
    else
     ammo_weap = {"ammo_9x19_pbp"}    
    end    
   elseif rnd3 == 3 then
    item_weap = pistols3[math.random(#pistols3)]
    if rnd4 < 75 then    
     ammo_weap = {"ammo_11.43x23_fmj"}
    else
     ammo_weap = {"ammo_11.43x23_hydro"}    
    end    
   end
  else
   if rnd3 == 1 then
    item_weap = shootgun[math.random(#shootgun)]
    if rnd4 < 50 then    
     ammo_weap = {"ammo_12x70_buck"}
    else
     ammo_weap = {"ammo_12x76_zhekan"}    
    end    
   elseif rnd3 == 2 then
    item_weap = automatic1[math.random(#automatic1)]
    if rnd4 < 75 then    
     ammo_weap = {"ammo_5.45x39_fmj"}
    else
     ammo_weap = {"ammo_5.45x39_ap"}    
    end    
   elseif rnd3 == 3 then
    item_weap = automatic2[math.random(#automatic2)]
    if rnd4 < 75 then    
     ammo_weap = {"ammo_5.56x45_ss190"}
    else
     ammo_weap = {"ammo_5.56x45_ap"}    
    end    
   end
  end
    end
    
--if ammo_weap ~= nil and item_weap ~= nil then
    return ammo_weap and item_weap
--end
    
end

--//       Броники        \\--

--//      Артефакты       \\--

--//         Еда          \\--

--//       Деньги         \\--

function fill()
local cnt = 3
for i=1,cnt do
get_medicine()
get_weap_and_ammo()
local box = "jup_treasure_"..i
    if get_medicine().item_medicine ~= nil then
  local med_item = get_medicine().item_medicine
  xr_effects.spawn_object_in(nil, nil, {med_item,box})
    end    
    if get_weap_and_ammo().ammo_weap ~= nil then
  local ammo_item = get_weap_and_ammo().ammo_weap
  local weap_item = get_weap_and_ammo().item_weap
  xr_effects.spawn_object_in(nil, nil, {ammo_item ,box})
  xr_effects.spawn_object_in(nil, nil, {weap_item ,box})
    end    
end
end
  Злобная реклама
Суббота, 26.11.2016, 13:20
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  Neptun
Суббота, 26.11.2016, 14:24 | Сообщение # 4672
Связной
Статус:
Бывалый:
Сообщений: 672
Награды: 9
Регистрация: 25.03.2012

Добро. ЗП.
В оригинале есть такая логика sr_psy_antenna, но как ей пользоваться? Если просто логику рестриктора перевести на [sr_psy_antenna] - игра вылетает.
  Злобная реклама
Суббота, 26.11.2016, 14:24
Статус:
Сообщений: 666
Регистрация: 25.03.2012
Российская Федерация  Overfirst
Суббота, 26.11.2016, 14:28 | Сообщение # 4673
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

Цитата mmihaill ()
sr_psy_antenna

Почитай статейку.
  Злобная реклама
Суббота, 26.11.2016, 14:28
Статус:
Сообщений: 666
Регистрация: 11.06.2015
Российская Федерация  makdm
Суббота, 26.11.2016, 15:52 | Сообщение # 4674
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

_S_k_i_F_, в каждой функции были ошибки.
Вот исправил тебе их, пробуй:

Код
-//    Медикаменты       \\--
function get_medicine()
local item_medicine = nil
local rnd2 = math.random(3)
local medkits = {"medkit","medkit_army","medkit_scientic", "antirad", "bandage"}
local boosters = {"drug_coagulant","drug_booster","drug_psy_blockade","drug_antidot","drug_radioprotector"}

  if math.random(100) <= 85 then
    if rnd2 == 1 then
  item_medicine = medkits[math.random(#medkits)]
    elseif rnd2 == 2 then
  item_medicine = boosters[math.random(#boosters)]
    else
  if math.random(100) > 90 then
   item_medicine = "drug_anabiotic"    
  end    
    end    
  end
    return item_medicine
end

--// Оружие и боеприпасы  \\--
function get_weap_and_ammo()

local ammo_weap = nil
local item_weap = nil

if math.random(100) <= 50 then
    return ammo_weap, item_weap
end

local rnd3 = math.random(3)
local rnd4 = math.random(100)
local pistols1 = {"wpn_pm","wpn_pb","wpn_fort"}
local pistols2 = {"wpn_hpsa","wpn_beretta","wpn_walther","wpn_mp5"}
local pistols3 = {"wpn_sig220","wpn_colt1911","wpn_usp","wpn_desert_eagle"}
local shootgun = {"wpn_bm16","wpn_toz34","wpn_wincheaster1300","wpn_spas12"}
local automatic1 = {"wpn_ak74u","wpn_ak74","wpn_abakan"}
local automatic2 = {"wpn_l85","wpn_lr300","wpn_sig550"}
local grenades = {"grenade_f1","grenade_rgd5"}

   if math.random(100) > 75 then
   
    if rnd3 == 1 then
     item_weap = pistols1[math.random(#pistols1)]
      if rnd4 < 75 then    
       ammo_weap = "ammo_9x18_fmj"
      else
       ammo_weap = "ammo_9x18_pmm"
      end    
    elseif rnd3 == 2 then
     item_weap = pistols2[math.random(#pistols2)]
      if rnd4 < 75 then    
       ammo_weap = "ammo_9x19_fmj"
      else
       ammo_weap = "ammo_9x19_pbp"    
      end    
    elseif rnd3 == 3 then
     item_weap = pistols3[math.random(#pistols3)]
     if rnd4 < 75 then    
      ammo_weap = "ammo_11.43x23_fmj"
     else
      ammo_weap = "ammo_11.43x23_hydro"    
     end    
    end
    
   else
   
    if rnd3 == 1 then
     item_weap = shootgun[math.random(#shootgun)]
     if rnd4 < 50 then    
      ammo_weap = "ammo_12x70_buck"
     else
      ammo_weap = "ammo_12x76_zhekan"    
     end    
    elseif rnd3 == 2 then
     item_weap = automatic1[math.random(#automatic1)]
     if rnd4 < 75 then    
      ammo_weap = "ammo_5.45x39_fmj"
     else
      ammo_weap = "ammo_5.45x39_ap"   
     end    
    elseif rnd3 == 3 then
     item_weap = automatic2[math.random(#automatic2)]
     if rnd4 < 75 then    
      ammo_weap = "ammo_5.56x45_ss190"
     else
      ammo_weap = "ammo_5.56x45_ap"    
     end    
    end
    
   end

    
    return ammo_weap, item_weap
  
end

--//       Броники        \\--

--//      Артефакты       \\--

--//         Еда          \\--

--//       Деньги         \\--

function fill()
    for i = 1,3 do
  local story_id = "jup_treasure_"..tostring(i)
  local inv_box = alife() <img src="/.s/sm/23/surprised.gif" border="0" align="absmiddle" alt="surprised" /> bject( get_story_object_id( story_id ) )
  if inv_box then
   local item_medicine = get_medicine()
   local ammo_weap, item_weap = get_weap_and_ammo()
   if item_medicine then
    alife():create( item_medicine,    vector(), 0, 0, inv_box.id )
   end    
   if ammo_weap then
    alife():create( ammo_weap,    vector(), 0, 0, inv_box.id )
   end
   if item_weap then
    alife():create( item_weap,    vector(), 0, 0, inv_box.id )
   end
  end
    end
end
  Злобная реклама
Суббота, 26.11.2016, 15:52
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Беларусь  Delphian
Суббота, 26.11.2016, 16:16 | Сообщение # 4675
Статус:
Зевака:
Сообщений: 16
Награды: 1
Регистрация: 25.11.2016

Как отключить тревогу на Скадовске, чтобы двери не закрывались?
  Злобная реклама
Суббота, 26.11.2016, 16:16
Статус:
Сообщений: 666
Регистрация: 25.11.2016
Российская Федерация  Major
Суббота, 26.11.2016, 17:32 | Сообщение # 4676
Статус:
Отмычка:
Сообщений: 83
Награды: 1
Регистрация: 28.10.2016

Сталкер ЗП. При отображении сталкерского материала на модели в 3ds max 2011, - он вылетает. В чем проблема?
  Злобная реклама
Суббота, 26.11.2016, 17:32
Статус:
Сообщений: 666
Регистрация: 28.10.2016
Российская Федерация  denis2000
Суббота, 26.11.2016, 17:59 | Сообщение # 4677
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Цитата Delphian ()
Как отключить тревогу на Скадовске, чтобы двери не закрывались?

Ищите в логике НПС, двери, рестрикторов проверку на нахождение смарта в опасности (check_smart_alarm_status) и правьте на свое усмотрение.
  Злобная реклама
Суббота, 26.11.2016, 17:59
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Беларусь  av661194
Воскресенье, 27.11.2016, 17:14 | Сообщение # 4678
Статус:
Опытный:
Сообщений: 2500
Награды: 12
Регистрация: 16.05.2015

Подскажите, как в ЗП проверить, есть ли на поясе у актора определённый артефакт. Как правильно записать условие : "Если на поясе есть артефакт "Пузырь", то..." ?
  Злобная реклама
Воскресенье, 27.11.2016, 17:14
Статус:
Сообщений: 666
Регистрация: 16.05.2015
Украина  NewValveCom
Воскресенье, 27.11.2016, 17:47 | Сообщение # 4679
Статус:
Отмычка:
Сообщений: 102
Награды: 3
Регистрация: 07.08.2016

Всем здравствуйте, хочу спросить, какой файл в configs/ui отвечает за загрузочный экран? Нужно просто переместить картинку локации на другое место и убрать widepanels, спасибо заранее!
  Злобная реклама
Воскресенье, 27.11.2016, 17:47
Статус:
Сообщений: 666
Регистрация: 07.08.2016
Российская Федерация  61dimon161
Воскресенье, 27.11.2016, 18:03 | Сообщение # 4680
Модификация "На болотах"
Статус:
Новичок:
Сообщений: 200
Награды: 2
Регистрация: 19.01.2014

Взял стандартную локацию (Рыжий Лес), немного изменил её в СДК 0,7
Закомпилил и при загрузке игры вот такой лог (с другими локациями такого не было)

  Злобная реклама
Воскресенье, 27.11.2016, 18:03
Статус:
Сообщений: 666
Регистрация: 19.01.2014
Поиск: