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

[SoC] Ковыряемся в файлах


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

@Fan fan, можно сделать, к примеру, ассоциативный массив типа

['секция_предмета'] = функция_спавна
Или

['секция'] = {
  ['предмет_для_спавна'] = количество,
  ['ещё_один_предмет'] = количество
}
И в функции на юзание проверять поле и делать то, что нужно. Для первого примера:

function OnUseObject(obj)
  local f = название_массива[obj:section()]
  if f then f() end
end
Или для второго:

function OnUseObject(obj)
  local t = название_массива[obj:section()]
  if t then
    for k,v in pairs(t) do
      for i=1,v do amk.spawn_item_in_inv(k) end
    end
  end
end
Изменено пользователем naxac

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

ВЫРУЧАЙТЕ!!! Дикая территория - первая встреча с Кругловым)) сейв бьётся сразу

Expression    : I != levels().end()

Function      : GameGraph::CHeader::level
File          : e:\stalker\patch_1_0004\xr_3da\xrgame\game_graph_inline.h
Line          : 171
Description   : there is no specified level in the game graph : 47

Maximum Carnage,

уменьшай switch_distance, пройди глючный участок и возвращай обратно значение... Попадание объекта в какой-то вертекс (47), которого нет на карте.

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

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

@naxac, ага, понятно. У меня вот такое получилось

function OnUseObject(obj, who)
    if obj then 
           if obj:section() =="ryk_item1" then
                amk.spawn_item_in_inv("arc_art_box_basic")
                amk.spawn_item_in_inv("arc_art_box_basic")     
           elseif obj:section() =="ryk_item2" then
                amk.spawn_item_in_inv("art_detector")
	   elseif obj:section() =="ryk_item3" then
         	amk.spawn_item_in_inv("wpn_val")
	        amk.spawn_ammo_in_inv("ammo_9x39_pab9",200,npc)           
           elseif obj:section() =="ryk_item4" then
         	amk.spawn_item_in_inv("stalker_outfit")
           end
 end
end

вроде работает)

vlyu3.gif

Fan%20fan.gif

Всем привет. Решил перенести правозатворные модели из ООП. Начал с АК-74. И словил вылет по анимациям.

FATAL ERROR

[error]Expression : !lst.empty()
[error]Function : CHudItem::animGet
[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\HudItem.cpp
[error]Line : 295
[error]Description : draw_wo_gl


stack trace:

 

Поиск через Total Commander выдал единственное место-конфиг АК-74. Подскажите, где данные анимации могут быть и можно ли их просто перенести(или нужно через доппрограммы)? Спасибо.

P.S. Попытка ввести пистолет ГШ-18 привела к вылету.

FATAL ERROR

[error]Expression : fatal error
[error]Function : CModelPool::Instance_Load
[error]File : E:\stalker\patch_1_0004\xr_3da\xrRender\ModelPool.cpp
[error]Line : 111
[error]Description :
[error]Arguments : Can't find model file 'weapons/wpn_gsh18_sk1.ogf'.


stack trace:

 

Хотя ogf-модель на месте. Текстуры, конфиги, пропись торгашам-все сделано.

 

@ed_rez, то есть, чтобы их вытащить и применить,  нужно ogf-модель расковырять, вынуть анимации, перенести и упаковать обратно? 

Игровые архивы распакованы. Все файлы в паке gamedata. 

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

Gorodetskij,

под секцией твоего нового АК-74 существуют, к примеру, уникальные секции, у которых прописаны анимации старого...

По ГШ-18 смотри приоритеты папок и игровых архивов, нужна НИ.


 

 

 нужно ogf-модель расковырять, вынуть анимации, перенести и упаковать обратно?

Нет, я про другое.

Приоритеты папок и игровых архивов:

Самая приоритетная- это папка mods с игровыми архивами, затем обычная папка gamedata и последние уже идут игровые архивы gamedata.dbX.

С моделями ничего делать не нужно, нужно внимательно просмотреть все связанные с новым "стволом" файлы конфигураций, чтобы везде были прописаны новые анимации.

  • Спасибо 1

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Total Commander выдал единственное место-конфиг АК-74

Как оружие переносил? Конфиг целиком? Чую, что нет. Посмотри в конфиге калаша ООП, а конкретнее в его секции худа ([wpn_name_hud]) есть список анимаций: anim_holster, anim_idle и т.д. перенеси весь список в свой конфиг (С заменой старого списка). А вообще лучше перетащи конфиг целиком, а не только модель.

 

Попытка ввести пистолет ГШ-18 привела к вылету.

Вылет банален как дважды два - нет мировой модели пистолета. Как уже сказали - смотри подсекции в конфиге пистолета. Возможно там помимо обычного ГШ-18, хранятся профили каких-нибудь "уникальных" ГШ. Ну или в крайнем случае перепроверь куда положил модель, может, папкой ошибся. Или, что возможно, ты взял не ту модель пистолета (sk1 намекает, что ствол из Арсенал Мода, а там несколько видов одного оружия, только разные текстуры). Посмотри какая модель прописана в "visual = путь до модели" его конфига.

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

@HellRatz, Спасибо за помощь, разобрался, что к чему.

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

Ребята, подскажите класс для итема, чтобы его нельзя было использовать. То есть при нажатии на пкм в меню взаимодействия можно только выкинуть предмет. Помню в каком то моде Видел.

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

@HellRatz, квестовые предметы изучи, (флешки, ПДА, декодеры), там класс также II_ATTCH, как и у еды, но убраны параметры attach_angle_offset, attach_position_offset, bone_name, hud, параметры от eatable item и ещё ряд параметров, связанных с использованием. Если их убрать, то с предметом ничего нельзя будет сделать.

 

Изменено пользователем Ghost-2142
  • Нравится 1

Изображение погибло, снес. Ссылка на канал остается пока в виде >>>ссылки<<<. HellRatz

Всем доброго времени суток,хочу добавить через all.spawn в SOC БТР около блокпоста военных вот

[2947]

; cse_abstract properties
section_name = m_car
name = esc_btr
position = -174.12693786621,-30.749616622925,-339.87475585938
direction = 0,0,0.075573988258839
id = 65535
version = 118
script_version = 6
spawn_id = 2947

; cse_alife_object properties
game_vertex_id = 34
level_vertex_id = 75756
object_flags = 0xffffffba
custom_data = <
[logic]
active = ph_car@idle
on_hit = hit

[hit]
on_info = %+esc_blockpost_alarm%

[ph_car@idle]
target = actor
fire_range = 80
fire_repeat = 50
auto_fire = true
track_target = true

[ph_car@eliminate]
target = actor
fire_range = 120
fire_repeat = 50
auto_fire = true
track_target = true
on_info = {+esc_blockpost_normal} ph_car@idle

 

 

при компиляции ACDC ссылается на файл ini,в чем может быть проблема?

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

Доброго времени суток, подскажите пожалуйста, как прописать звуки использования предметам в С.Т.А.Л.К.Е.Р. ТЧ 1.0006?

@editor46, @editor46,  ну мало того, что ты не показал на самом деле, что у тебя пишет ас-дс. У тебя и секция спавна неполная и логика кривовата...

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 

Таки смог перенести партиклы из Время Перемен 3 в ТЧ. Аномалии прекрасно изменились и работают, а вот костерки косячат. Вокруг костра образовалась оранжевая аура-апельсинка. И мигает еще. Ладно аура...но мигает то чего (в самом ВП все норм)? Не все перетащил чтоли? Какие будут идеи, как убрать эту ауру (только не говорите, сноси партиклы. Слишком няшные. Да и аномалии то в порядке.)? Может подправить чего-то? 

 

 

44b39009ab8a0c21be332499a9636712.jpg

850554768c3afef4953915a22617fbc0.jpg

 

Работы butcher_512. Все ссылки пропали, поэтому ложу свои сюда, чтобы никогда не потерять:

Customization Pack 0.83 [Beta4] - SoC - Тема модификации.

Customization Pack CoP [Beta]   - CoP - Тема модификации.

Всем привет. Есть один вопрос, нпс почему-то не видит ГГ, если тот стоит с боку от нпс(а). Суть проблемы: нпс дойдя до нужной точки, должен сказать речь и замолчать! Обязательным условием является - то что звук должен исходить именно из нпс(а). Собрав определенную логику, я столкнулся с такой проблемой, если ГГ бродит перед глазами нпс(а) то логика работает исправно, а если вдруг гг стоял где-то с боку от пришедшего непися,  то звук не отыгрывается, а следовательно не будет перехода на другой валькер! Ни как не могу заставить непися увидеть  гг стоящего с боку, чтобы логика отработала.

[walker@tut]
path_walk = byk9b_walk
path_look = byk9b_look 
on_info = {+info1 +info2 +info3 +info4 +info5 +info6 +info7}walker@560 %= werto_dialog.romeo%  
danger = danger_condition
combat_ignore_cond = always   
meet = meet
 
[walker@560]
path_look = byk9b_look560
path_walk = byk9b_walk560
on_signal = doshel|%+top_top% 
on_info = {+top_top}walker@560b    
danger = danger_condition
combat_ignore_cond = always
meet = no_meet

 

[walker@560b]

path_look = byk9b_look560b
path_walk = byk9b_walk560b
on_timer = 5000|walker@560v
danger = danger_condition
combat_ignore_cond = always
meet = meet@main

[walker@560v]
path_look = byk9b_look560v
path_walk = byk9b_walk560v
on_timer = 200|%+pora_boltat%
on_info = {+pora_topat}walker@561e
danger = danger_condition
combat_ignore_cond = always
meet = no_meet


[walker@561e]
path_walk = byk9b_walk561e
on_timer = 4000|walker@561
danger = danger_condition
combat_ignore_cond = always
meet = no_meet


[walker@561]
path_walk = byk9b_walk561
danger = danger_condition
combat_ignore_cond = always
meet = no_meet

[combat_ignore]
combat_ignore_cond = always

[danger_condition]
ignore_distance = 1

[meet@main]
meet_state_wpn = 30|ward@mil_collect_phrase6
meet_state = 30|ward@mil_collect_phrase6

victim =30|actor  
victim_wpn = 30|actor  
use = true  
use_wpn = true

[meet]
victim = 3|actor
victim_wpn = 3|actor
use = true

 

После отыгрывания звук.файла включается логика другого непися, тот в свою очередь тоже говорящий, и если логика первого нпс  не отработает, то получается каламбур... Подскажите можно как то это поправить... p.s   ТЧ - 04 чистый

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

Для WERTOix

Может дело в простейшем ?
Посмотрите - какой угол обзора ( eye_fov ) прописан у всех НПС в файле m_stalker.ltx

  • Нравится 1

Никто не подскажет, что нужно прописать БТР*у в "target"? Чтобы он реагировал не только на актора?

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

 

Expression : fatal error


Function : CScriptEngine::lua_error
File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line : 73
Description :
Arguments : LUA error: ...w of chernobyl\gamedata\scripts\smart_terrain.script:893: attempt to index a function value

 

 

-- Спецназ на болотe
if type == "mar_specnaz" then
t = { section = "logic@mar_specnaz_sleep",
idle = 0,
prior = 10, state = {0},
in_rest = "", out_rest = ""
}
table.insert(sj, t)
t = { section = "logic@mar_specnaz_sit",
idle = 0,
prior = 10, state = {0},
in_rest = "", out_rest = ""
}
table.insert(sj, t)
end

 

if type == "mar_specnaz" then
return function (gulag)
return 0
end
end
 
if gulag_type == "mar_specnaz" then
return npc_community == "military"
end

 

 

 

 

[logic@mar_specnaz_sleep]
active = walker@mar_specnaz_sleep

[walker@mar_specnaz_sleep]
path_walk = walk_spec_sleep
path_look = look_spec_sleep

[logic@mar_specnaz_sit]
active = walker@mar_specnaz_sit

[walker@mar_specnaz_sit]
path_walk = walk_spec1
path_look = look_spec1

 

 

Все точки walk и look так же есть и 100 раз проверены. Там уж точно ошибки нет. В smart_terrain_presets тоже прописал нужное (доступ военным на болота). В чем беда может быть?

Работы butcher_512. Все ссылки пропали, поэтому ложу свои сюда, чтобы никогда не потерять:

Customization Pack 0.83 [Beta4] - SoC - Тема модификации.

Customization Pack CoP [Beta]   - CoP - Тема модификации.

@editor46, надо схему ph_car править (скрипт ph_car). А так, в target, кроме актера, можно указать только story_id объекта, в который нужно стрелять.

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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