Случайная подборка модов
Ночь Перед Рождеством 2
3.5
Реборн: Двойники - «Исток»
3.1
Мод Змеелов v.2.17 Final
3.8
Ночь Перед Рождеством 3
4.4
Зона поражения
4.1
Сталкер "Диана"
2.0
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  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_
Вторник, 05.07.2016, 11:45 | Сообщение # 2356
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

Скажите, можно ли в ПДА добавить новую кнопку, по аналогии в первыми тремя (карта, статистика, истори)? И в каком файл содержится скрипт ГУИ ПДА? Зараннее спасибо!
  Злобная реклама
Вторник, 05.07.2016, 11:45
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  denis2000
Вторник, 05.07.2016, 12:01 | Сообщение # 2357
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

_S_k_i_F_, Кнопку добавить можно, но нажиматься она не будет (точнее реагировать на нее движек не будет). Для того чтобы реагировал есть движковые правки, самая первая правка просто выдает инфопорцию по имени кнопки, и отловив эту инфу вы скриптом должны перехватить управление и рисовать все необходимое поверх движкового ПДА.
  Злобная реклама
Вторник, 05.07.2016, 12:01
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  SanyaSuicide
Вторник, 05.07.2016, 12:02 | Сообщение # 2358
Статус:
Отмычка:
Сообщений: 115
Награды: 0
Регистрация: 10.08.2015

Цитата denis2000 ()
Каким образом вычисляется отношение сквада к ГГ для вывода той или иной метки на карте?


Sim squad scripted



Game relations

function get_squad_goodwill_to_actor_by_id(squad_id)


function get_squad_relation_to_actor_by_id(squad_id)
Сообщение отредактировал SanyaSuicide - Вторник, 05.07.2016, 12:04
  Злобная реклама
Вторник, 05.07.2016, 12:02
Статус:
Сообщений: 666
Регистрация: 10.08.2015
Российская Федерация  denis2000
Вторник, 05.07.2016, 12:31 | Сообщение # 2359
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

SanyaSuicide, Спасибо у меня этот код тоже есть, что он означает?
  Злобная реклама
Вторник, 05.07.2016, 12:31
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  SanyaSuicide
Вторник, 05.07.2016, 13:03 | Сообщение # 2360
Статус:
Отмычка:
Сообщений: 115
Награды: 0
Регистрация: 10.08.2015

Цитата denis2000 ()
Спасибо у меня этот код тоже есть, что он означает?


Сообщение отредактировал SanyaSuicide - Вторник, 05.07.2016, 17:45
  Злобная реклама
Вторник, 05.07.2016, 13:03
Статус:
Сообщений: 666
Регистрация: 10.08.2015
Российская Федерация  makdm
Вторник, 05.07.2016, 14:15 | Сообщение # 2361
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

SanyaSuicide, возьмите готовый файл из мода Припять.Точка Отсчёта.
Я там дописывал методы для правильного отражения сквадов на карте.
  Злобная реклама
Вторник, 05.07.2016, 14:15
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Украина  _S_k_i_F_
Вторник, 05.07.2016, 15:44 | Сообщение # 2362
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

Такая ерунда: ставлю в СДК групповой объект light_sharnir_1_6m, собираю спавн - а в игре ни самой модели ни света нет. Вроде не статическая модель (пробовал к сектору добавить - не добавляется). В чем проблема? Зараннее спасибо!

Добавлено (05.07.2016, 15:44)
---------------------------------------------
И еще такая маленькая проблемка: написал схему, которая отлавливает индексы костей в которые попал ГГ, если голова\живот, то убиваем НПС ф-цией kill(obj), но тогда убийство не добавлялось в статистику. После кое-каких манипуляций в статистику добавляются и убитые НПС с помощью kill(obj) и убитые правильно. Но во время боя с НПС заметил баг - заспавнил 15 НПС, а в статистике убито 17-20. Где накосячил? Вот hit_callback и death_callback из xr_motivatorа.

Код
function motivator_binder:hit_callback(obj, amount, local_direction, who, bone_index)
    -- FIXME: коллбеки неплохо было бы регистрировать в общем storage, а не посхемно...
    -- просто всегда ставить их при включении схемы и снимать при отключении.
    if(who:id()==db.actor:id()) then
  xr_statistic.set_best_weapon(amount)

--[[
  local se_obj = alife():object(obj:id())
  if se_obj and se_obj.m_smart_terrain_id ~= 65535 and amount > 0 then
   local smart_obj = alife():object(se_obj.m_smart_terrain_id)
   smart_obj:set_alarm()

   if smart_obj.base_on_actor_control ~= nil then
    smart_obj.base_on_actor_control:actor_attack()
   end
  end
]]
  -- Ищем смарты по расстоянию
  if amount > 0 then
   for k,v in pairs(sim_board.get_sim_board().smarts) do
    local smart = v.smrt
    if smart.base_on_actor_control ~= nil then
     local level_id = game_graph():vertex(smart.m_game_vertex_id):level_id()
     local actor_level_id = game_graph():vertex(alife():actor().m_game_vertex_id):level_id()
     if level_id == actor_level_id and db.actor:position():distance_to_sqr(smart.position) <= 6400 then
      if self.object:relation(db.actor) ~= game_object.enemy then
       smart.base_on_actor_control:actor_attack()
      end
     end    
    end
   end
  end
    end
    if self.st.active_section then
  xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "hit_callback", obj, amount, local_direction, who, bone_index)
    end
    if self.st.combat_ignore then
  xr_logic.issue_event(self.object, self.st.combat_ignore, "hit_callback", obj, amount, local_direction, who, bone_index)
    end
    if self.st.combat then
  xr_logic.issue_event(self.object, self.st.combat, "hit_callback", obj, amount, local_direction, who, bone_index)
    end
    if self.st.hit then
  xr_logic.issue_event(self.object, self.st.hit, "hit_callback", obj, amount, local_direction, who, bone_index)
    end

    -- Если пришел смертельный хит, с некоторой вероятностью делаем чувака раненым.
    if bone_index ~= 15 and amount > self.object.health*100 then
  --printf("DEADLY HIT %s %s", amount, self.object.health*100)
  self.object.health = 0.15
    end

    if amount > 0 then
  printf("HIT_CALLBACK: %s amount=%s bone=%s", obj:name(), amount, tostring(bone_index))
--  self.need_relation_update = who:id() == db.actor:id()
  xr_wounded.hit_callback(obj:id())
    end
------------------------ Расчет попаданий по НПС --------------------------------------
    if amount > 0 and who:id() == db.actor:id() then
    ------------------------ если ранен в голову или грудь - убиваем --------------------------------------

  if bone_index == 3 or bone_index == 12 or bone_index == 13 or bone_index == 14 or bone_index == 15 or bone_index == 16 or bone_index == 17 or bone_index == 18 or bone_index == 19 or bone_index == 20 or bone_index == 21 or bone_index == 34 then
   self.kill_enemy = true
   else
                            --elseif bone_index ~= "from_death_callback" then
  --elseif bone_index == 1 or bone_index == 2 or bone_index == 4 or bone_index == 5 or bone_index == 6 or bone_index == 7 or bone_index == 8 or bone_index == 9 or bone_index == 10 or bone_index == 11 or bone_index == 22 or bone_index == 23 or bone_index == 24 or bone_index == 25 or bone_index == 26 or bone_index == 27 or bone_index == 28 or bone_index == 29 or bone_index == 30 or bone_index == 31 or bone_index == 32 or bone_index == 33 or bone_index == 35 or bone_index == 36 or bone_index == 37 or bone_index == 38 or bone_index == 39 or bone_index == 40 or bone_index == 41 or bone_index == 42 or bone_index == 43 or bone_index == 44 or bone_index == 45 or bone_index == 46 or bone_index == 47 then
   self.kill_enemy = false
  end
    ------------------------------------------------------------------------------------------------------------------------
    ------------------------- хедшот -----------------------------------------------------------------------------------------
  if bone_index == 15 or bone_index == 16 or bone_index == 17 or bone_index == 18 or bone_index == 19 then
  self.head_shoot = true
    elseif bone_index ~= "from_death_callback" then
   self.head_shoot = false
  end
    ----------------------------------------------------------------
    ------------------------- в глаз -----------------------------------------------------------------------------------------
  if bone_index == 16 or bone_index == 17 then
  self.eye_shoot = true
    elseif bone_index ~= "from_death_callback" then
   self.eye_shoot = false
  end
  ----------------------------------------------------------------
    end
    local npc = self.object
if self.kill_enemy == true and who:id() == db.actor:id() then
npc:kill(npc)
xr_statistic.inc_killed_stalkers_counter()
xr_effects.inc_statistic_rank_counter()
end
------------------------------------------------------------------------------------
end

function motivator_binder:death_callback(victim, who)
    self:hit_callback(victim, 1, vector():set(0,0,0), who, "from_death_callback")

    xrs_dyn_music.npc_table[self.object:id()] = nil
    xr_combat_ignore.fighting_with_actor_npcs[self.object:id()] = nil
--    xrs_dyn_music.stop_combat(self.object:id())
    --' Если игрок был с квестом от механика - фейлить его
    local st = db.storage[self.object:id()]
    local npc = self.object
    stalker_generic.remove_level_spot(npc, st)
    --' end  --
    if who:id() == db.actor:id() then
  xr_statistic.set_best_monster(npc)
  xr_statistic.inc_killed_stalkers_counter()
     xr_effects.inc_statistic_rank_counter()
    end
    --------------------------------------------------------------------------
    ------------------------------------------ добавление хедшота в статистику -----
    if self.head_shoot == true then
    xr_statistic.inc_head_shoot_counter()
    xr_effects.inc_statistic_rank_counter()
    end
    --------------------------------------------------------------------------
    ------------------------------------------ добавление попаданий в глаз в статистику -----
    if self.eye_shoot == true then
    xr_statistic.inc_eye_shoot_counter()
    end
    --------------------------------------------------------------------------
    ------------------------------------------ добавление убийств ножом в статистику -----
    if db.actor:active_slot() == 1 then
    xr_statistic.inc_knife_killed_counter()
    xr_effects.inc_statistic_rank_counter()
    end
    --------------------------------------------------------------------------
    ------------------------------------------ добавление убийств гранатами в статистику -----
    if db.actor:active_slot() == 4 then
    xr_statistic.inc_grenade_killed_counter()
    end
    --------------------------------------------------------------------------
-------------------------------------- Если ГГ убил НПС гранатой или РПГ... то вызываем партикл взрыва и удаляем труп (имитация разрыва тел)-----------------------------------------------------------------------------
if db.actor:alive() then
local act_slot = db.actor:active_slot()
local act_item = db.actor:active_item()
local weapon = act_item:section()
local particle = particles_object("anomaly2\\body_tear_01")
local npos = npc:position()
local x = npos.x
local y = npos.y + 2
local z = npos.z
if act_slot and act_item then
if weapon == "wpn_rpg7" or weapon == "wpn_rg-6" or weapon == "wpn_m79"  or act_slot == 4 then
alife():release(alife():object(npc:id()), true)
particle:play_at_pos(vector():set(x,y,z))
end    
end
end
-----------------------------------------------------------------------------------------------------------------------    

    --' Загрузка историй для лагеря.
    local known_info = utils.cfg_get_string(st.ini,st.section_logic , "known_info", self.object, false, "", nil)
    printf("xr_info from death loaded!!!")
    xr_info.loadInfo(self.object, st.ini, known_info)

    --' Принудительно обнуляем анимейшн менеджер чтобы отдетачились приатаченные объекты
    if self.st.state_mgr ~= nil then
  self.st.state_mgr.animation:set_state(nil, true)
    end
    
    if self.st.reach_task then
  xr_logic.issue_event(self.object, self.st.reach_task, "death_callback", victim, who)
    end
    if self.st.death then
  xr_logic.issue_event(self.object, self.st.death, "death_callback", victim, who)
    end
    if self.st.active_section then
  xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "death_callback", victim, who)
    end

    sr_light.check_light(self.object)
    death_manager.drop_manager(self.object):create_release_item()
    db.delete_enemy( self.e_index )

    self:clear_callbacks()
    --' Наносим небольшой импульс вперед.
    if(actor_stats.remove_from_ranking~=nil)then
  local community = character_community(self.object)
  if community == "zombied" or
    community == "monolith"
  then
  else
   actor_stats.remove_from_ranking(self.object:id())
  end

    end
    release_body_manager.get_release_body_manager():moving_dead_body(self.object)
end

Зараннее спасибо!
  Злобная реклама
Вторник, 05.07.2016, 15:44
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  SanyaSuicide
Вторник, 05.07.2016, 17:45 | Сообщение # 2363
Статус:
Отмычка:
Сообщений: 115
Награды: 0
Регистрация: 10.08.2015

из за чего может быть вылет?
Can't find variable ef_creature_type in [army_sim_squad_advanced]
ef_creature_type прописан в m stalker
  Злобная реклама
Вторник, 05.07.2016, 17:45
Статус:
Сообщений: 666
Регистрация: 10.08.2015
Российская Федерация  Overfirst
Вторник, 05.07.2016, 18:04 | Сообщение # 2364
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

SanyaSuicide, зато он не прописан в [army_sim_squad_advanced]!
  Злобная реклама
Вторник, 05.07.2016, 18:04
Статус:
Сообщений: 666
Регистрация: 11.06.2015
Российская Федерация  SanyaSuicide
Вторник, 05.07.2016, 18:23 | Сообщение # 2365
Статус:
Отмычка:
Сообщений: 115
Награды: 0
Регистрация: 10.08.2015

Цитата BoBaH_671 ()
зато он не прописан в [army_sim_squad_advanced]!


Где его прописать?
simulation_objects_props.ltx?
Сообщение отредактировал SanyaSuicide - Вторник, 05.07.2016, 18:23
  Злобная реклама
Вторник, 05.07.2016, 18:23
Статус:
Сообщений: 666
Регистрация: 10.08.2015
Российская Федерация  13Шустрый13
Вторник, 05.07.2016, 18:23 | Сообщение # 2366
Статус:
Отмычка:
Сообщений: 121
Награды: 2
Регистрация: 04.05.2016

Как увеличить шейп в LE?

Вопрос снят.
Сообщение отредактировал 13Шустрый13 - Вторник, 05.07.2016, 18:37
  Злобная реклама
Вторник, 05.07.2016, 18:23
Статус:
Сообщений: 666
Регистрация: 04.05.2016
Российская Федерация  denis2000
Вторник, 05.07.2016, 19:08 | Сообщение # 2367
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

SanyaSuicide, Ну вот посмеялись вы biggrin , а голову включать отказываетесь принципиально?
Тогда объяснять придется мне:



Цитата _S_k_i_F_ ()
Такая ерунда: ставлю в СДК групповой объект light_sharnir_1_6m, собираю спавн - а в игре ни самой модели ни света нет. Вроде не статическая модель (пробовал к сектору добавить - не добавляется). В чем проблема?

Групповой объект на то и групповой, что может содержать в себе объекты из разных классов, статические, спавн, источники света, статические партиклы и даже звуки.
А при сборке спавна в него попали только спавн объекты из всего списка. В любом случае напротив всех составляющих частей группового объекта должны стоять галки.
Сообщение отредактировал denis2000 - Вторник, 05.07.2016, 19:15
  Злобная реклама
Вторник, 05.07.2016, 19:08
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  SanyaSuicide
Вторник, 05.07.2016, 19:09 | Сообщение # 2368
Статус:
Отмычка:
Сообщений: 115
Награды: 0
Регистрация: 10.08.2015

Цитата denis2000 ()
Ну вот посмеялись вы , а голову включать отказываетесь принципиально?
Тогда объяснять придется мне:

Так будет работать , прямо в sim_squad?
Почемуто я когда подкючаю эту функцию , то получаю вылет
Can't find variable ef_creature_type in [army_sim_squad_advanced]
ef_creature_type прописан в m stalker

Функция


Вызов



Я просто полохо шарю в скриптах сталкера , занимался только скриптами армы , там попроще будет)
Сообщение отредактировал SanyaSuicide - Вторник, 05.07.2016, 19:20
  Злобная реклама
Вторник, 05.07.2016, 19:09
Статус:
Сообщений: 666
Регистрация: 10.08.2015
Российская Федерация  denis2000
Вторник, 05.07.2016, 19:26 | Сообщение # 2369
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Цитата SanyaSuicide ()
Can't find variable ef_creature_type in [army_sim_squad_advanced]

Это потому что у вас army_sim_squad_advanced - это НПС, а не сквад.

А приведенная функция практически идентична по своей работе приведенной мной.
Сообщение отредактировал denis2000 - Вторник, 05.07.2016, 19:29
  Злобная реклама
Вторник, 05.07.2016, 19:26
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  SanyaSuicide
Вторник, 05.07.2016, 19:33 | Сообщение # 2370
Статус:
Отмычка:
Сообщений: 115
Награды: 0
Регистрация: 10.08.2015

Цитата denis2000 ()
Это потому что у вас army_sim_squad_advanced - это НПС, а не сквад.

я уже намучался с этим , где это поправить можно?
У меня он находится в

simulation_object_props
[army_sim_squad_advanced]:default_squad
sim_avail = true

squad_descr
[army_sim_squad_advanced]:online_offline_group
faction = army
npc = sim_default_military_2, sim_default_military_2, sim_default_military_3
npc_in_squad = 1, 3

simulation
army_sim_squad_advanced = mar_smart_terrain_10_5

mar_smart_terrain_10_5
spawn_squads = army_sim_squad_veteran, army_sim_squad_advanced
Сообщение отредактировал SanyaSuicide - Вторник, 05.07.2016, 19:59
  Злобная реклама
Вторник, 05.07.2016, 19:33
Статус:
Сообщений: 666
Регистрация: 10.08.2015
Поиск: