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

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


Halford

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

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

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

Прежде чем копать, попробуй просто сменить свою броню или снять её вовсе.

BFG

Сталкер - наше всё!

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


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

Кто подскажет, уважаемые:

В моде на базе ОГСМ для ТЧ создал новую группировку по тутору из сети. Вроде все прописал, как надо, но при выходе из игры получаю вылет:

 

Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line : 73
Description :
Arguments : LUA error: ...publishing\s.t.a.l.k.e.r\gamedata\scripts\amk.script:110: attempt to index field 'pstor' (a nil value)

 

 

-- Старт таймера в игровом времени
function g_start_timer(name,delay_d,delay_h,delay_m,action)
local time = level.get_time_days()*60*24+level.get_time_hours()*60+level.get_time_minutes() --time in game minutes
if delay_d==nil or delay_h==nil or delay_m==nil then
return false
end

if action==nil then
action = ""
end

local a=1
while db.storage[db.actor:id()].pstor["gt"..a] do
a=a+1
if a>100 then
return false
end
end

save_variable("gt"..a, name)
save_variable("gt"..a.."d", time+delay_d*60*24+delay_h*60+delay_m)
save_variable("gt"..a.."p", action)

return true
end

 

 

 

Красным выделена 110 строка.

 

Что сие означает и как с этим бороться?

 



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

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

Сталкер - наше всё!

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


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

Люди, посоветуйте грамотный туторов по респавну. А то одну статейку читал, вроде делал, как написано, а респавн все равно не происходит...

 

RESPAWN NPC-----------------------------------------------------------------------------

Для создания респавна, понадобится два файла, all.spawn и spawn_section.ltx.
Это минимальный набор. Для полной настройки респавнера, нужны ещё character_desc_simulation.xml и npc_profile.xml.
--------------------------------------------------------------------------------
1. В gamedata\spawns\all.spawn создаём секцию респавнера
 

[10000]
 

; cse_abstract properties
section_name = respawn
name = имя респавнера, например, pred_respawn_military_blockpost
position = координаты (x,y,z)
direction = 0,0,0
id = 65535
version = 118
script_version = 6

; cse_alife_object properties
game_vertex_id = гейм-вертекс
distance = 10
level_vertex_id = левел-вертекс
object_flags = 0xffffff3e
custom_data = <
[respawn]
respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9 (pred_military_respawn_1)
;max_count = 8
;min_count = 4
max_spawn = 2 (5)
idle_spawn = medium
conditions = 100
END

; cse_shape properties
shapes = 1
shape_0:type = sphere
shape_0:offset = 0,0,0
shape_0:radius = 1

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_respawn properties Если используется программа XrSpawner,
; то копируем любую секцию respawn; меняем имя объекта,
; координаты, и в окошке скрипт прописываем
spawned_obj =

[respawn]
respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9
max_count = 8
min_count = 4
max_spawn = 2
idle_spawn = medium
conditions = 100

;Где respawn_section = id респавн-секций из файла spawn_section.ltx.
;Цифры после запятой, означают отношение одной секции к другой.
;Если планируется одинаковое количество респавна из каждой секции,
;то цифры ставить не требуется. max_count = количество респавн-запросов
;за период времени, пока ГГ находится на уровне. При переходе на другой уровень
;счётчик max_count сбрасывается. (ставить не обязательно)
;min_count = минимальное количество нпс, для экстренного респавна.
;(ставить не обязательно)
;max_spawn = количество нпс за один цикл респавна.
;idle_spawn = тип спавна. Известно три типа: medium, often, seldom.
;Обычно используется тип medium.
;conditions = Условие респавна. Можно установить проверку условий (инфопоршень),
;где респавн будет происходить только при выполнении условия. Номер означает
;общий процент выполнения респавна. Например так conditions = {+инфо} 100, 0
;где респавн будет происходить со стопроцентной вероятностью, только при наличии
;установленного инфопоршна.

--------------------------------------------------------------------------------
2. В файле gamedata\config\creatures\spawn_section.ltx создаём респавн-секции

[esc_urody_respawn_1]:stalker
$spawn = "respawn\esc_urody_respawn_1"
character_profile = sim_urody_novice (sim_military_regular)
spec_rank = novice (regular)
community = bandit (military)

[esc_urody_respawn_2]:stalker
$spawn = "respawn\esc_urody_respawn_2"
character_profile = sim_urody_regular
spec_rank = regular
community = bandit

;Где esc_urody_respawn_1 - id респавн-секции.
;sim_urody_novice и sim_urody_regular - классы профайлов нпс.
;novice и regular - ранги нпс.
;bandit - группировка нпс.

--------------------------------------------------------------------------------
3. В файле gamedata\config\gameplay\npc_profile.xml регистрируем классы sim_urody_regular и sim_urody_novice


 

<character id="sim_urody_regular>"
<class>sim_urody_regular</class>
</character>

 

<character id="sim_urody_novice">
<class>sim_urody_novice</class>
</character>

--------------------------------------------------------------------------------
4. Создаём профили, в файле character_desc_simulation.xml, с классами sim_urody_regular и sim_urody_novice и группировкой bandit.

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

RESPAWN MUTANTOV-------------------------------------------------------------------------------
В принципе, респавн мутантов идентичен респавну нпс. Но с одним лишь отличием, которое его
значительно упрощает. Вся настройка респавна мутантов, ограничивается секцией в файле all.spawn.
Вписываем секцию респавнера, как указано в -RESPAWN NPC-. Все настройки идентичны, кроме строки
respawn_section = . В ней прописываем типы мутантов, из файла se_respawn.script.
Такие как flesh_weak, flesh_normal, dog_weak, boar_strong, и т.д..

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

ОБЩИЕ НАСТРОЙКИ--------------------------------------------------------------------------------
Обязательные условия респавна
 

1. На уровне обязательно должен быть хоть один гулаг для респавнящихся нпс и мутантов.
Так как количество неписей для респавна ориентируется по доступным местам в гулагах.

2. Респавн производится, только если под гулагами есть доступные работы.

3. На каждом уровне респавн ограничен определёнными типами неписей. Данные ограничения
установлены в файле miscsmart_terrain_presets.ltx. Чтобы сделать возможным респавн
неписей, не предусмотренных на данном уровне, надо в секции нужного уровня дописать требуемые типы неписей.

--------------------------------------------------------------------------------
Для проверки созданного респавнера можно не ждать когда сработает системный респавн,
а вызвать принудительно респавн в нужной секции. Для этого прописываем в любой логике
вызов функции %=respawner_spawn(имя респавнера)%. Где имя респавнера - имя секции,
созданой в файле all.spawn. Скобки обязательны.

Например, можно создать рядом с зоной респавнера, временный рестриктор. И в кастом дате
рестриктора прописать вызов функции принудительного вызова респавна в нужном респавнере
при входе ГГ в зону рестриктора

[logic]
active = sr_idle@in

[sr_idle@in]
on_actor_inside = %=respawner_spawn(имя респавнера)% sr_idle@out

[sr_idle@out]
on_actor_outside = sr_idle@in Функция принудительного вызова респавна, находится в файле xr_effects.script.

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

RESPAWN ITEMS-------------------------------------------------------------------------------
Респавн инвентаря в инвентарных ящиках, несколько отличается от способа респавна неписей.

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

1. Первое, что нам нужно сделать, это создать инвентарный ящик в файле all.spawn

[10000]
; cse_abstract properties
section_name = inventory_box
name = имя ящика
position = координаты x,y,z
direction = 0,0,0
id = 65535
version = 118
script_version = 6

; cse_alife_object properties
game_vertex_id = гейм-вертекс
distance = 0
level_vertex_id = левел-вертекс
object_flags = 0xffffffba

story_id = ай-ди ящика

; cse_visual properties
visual_name = equipmentsitem_box_01
--------------------------------------------------------------------------------

2. Затем, в файле game_story_id.ltx регистрируем id ящика. (выбираем любое свободное число).

--------------------------------------------------------------------------------
3. Создаём респавнер в файле all.spawn. Координаты и размеры зоны респавнера должны
быть такими, чтоб инвентарный ящик поместился внутри зоны респавнера

[10001]
; cse_abstract properties
section_name = respawn
name = имя респавнера
position = координаты x,y,z
direction = 0,0,0
id = 65535
version = 118
script_version = 6

; cse_alife_object properties
game_vertex_id = гейм-вертекс
distance = 2
level_vertex_id = левел-вертекс
object_flags = 0xffffff3e
custom_data = END
[respawn]
respawn_section = список вещей респавна
idle_spawn = -1
parent = ай-ди ящика
item_spawn = true
max_count = 7
END

; cse_shape properties
shapes = 1
shape_0:type = box
shape_0:axis_x = 0.5,0,0 (ширина зоны респавнера по X)
shape_0:axis_y = 0,0.5,0 (высота зоны респавнера по Y)
shape_0:axis_z = 0,0,1 (ширина зоны респавнера по Z)
shape_0:offset = 0,0,0

; cse_alife_space_restrictor properties
restrictor_type = 3

; se_respawn properties

Где respawn_section = список вещей респавна. Как и в респавнерах неписей, возможна прописка соотношений между вещами. Например

respawn_section = wpn_pm,2, vodka,2, medkit,1, energy_drink,2, ammo_9x18_fmj,3
idle_spawn = тип спавна. Инвентарь не имеет типов спавна, поэтому ставится (-1).
parent = ай-ди инвентарного ящика, в котором производить респавн вещей.
item_spawn = (true/false) - возможность включения и отключения респавна.
 

Можно задавать условия.

max_count = количество респав-циклов за определённый период времени.
(Пока ГГ находится на уровне. После перехода ГГ на другой уровень счётчик сбрасывается).

--------------------------------------------------------------------------------
4. Создаём вызов респавна. Обычно вызов производится из smart_terrain. В custom_data
любого подходящего smart_terrain, под секцией [smart_terrain], вписываем вызов респавна

[smart_terrain]
respawn = имя респавнера И респавн будет производиться при каждом пополнении нпс под данным смартом.

 


Сталкер - наше всё!

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


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

Главным условием, чтобы ты в игре увидел своих заспавненных неписей является или независимость твоих неписей от гулагов ("smart_terrains = none")

Что-то я не совсем понял.

У меня заспавнены неписи через all.spawn, приписаны к своему смарту. Вот и надо мне, чтобы при их смерти происходил респавн. А как понять - smart_terrains = none?

 

Попробую объяснить, что я сдедал:

1. заспавнил НПС через all.spawn.

2. приписал их к смарту.

3. прописал им логику.

4. вписал их в character_desc_имя локи и сделал свой профиль.

 

И вот чтобы при их смерти спавнились новые (другие), сделать-то нужно что?

1. респавнер.

2. прописать их в character_desc_simulation.

3. вписать в spawn_section.

4. создать профиль.

 

Это все или я не совсем правильно понимаю и нужно сделать что-то еще?

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

Сталкер - наше всё!

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


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

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



И да, забыл написать, что при наведении прицела на этих сталкеров не появляется даже их имен.

Сталкер - наше всё!

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


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

La'Rento, да я пользовался другим уроком. Спасибо за ответ и ссылку, все заработало, как надо.

Сталкер - наше всё!

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


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

Вот интересно стало:  в паке локаций от Кости (вроде) есть лока Болота. Так вот, костры там не горят, а тлеют. Можно ли их сделать, как в чистой ТЧ?

Сталкер - наше всё!

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


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

La'Rento,     

да, действительно, в алайфе на заспавнены костры: нет ни lights_hanging_lamp, ни zone_flame_small, ни space_restrictor. Буду спавнитьь сам, огромное спасибо.

Сталкер - наше всё!

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


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

Доброй ночи всем, словил вылет

Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line : 73
Description :
Arguments : LUA error: ...s.t.a.l.k.e.r\gamedata\scripts\dialog_manager.script:283: attempt to perform arithmetic on field 'phrase' (a string value)

 

 

 

 

Предыстория: есть сталкер-трейдер, соответственно, конфиг торговли. Самое интересное, что при покупке чего-либо ассортимент не обновляется (save\load ничего не дают), а самое главное, если сохранится после покупки и поговорить - вышеописанный вылет. А диалог один единственный - стандартный hello_dialog.

 

Собственно, вопрос один: что это за вылет, с чем связан.

 

Сталкер - наше всё!

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


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

В оригинальной ТЧ, в квесте на Кордоне по зачистке АТП, группа Петрухи: сам Петруха обычный, на мини-карте отображается желтой точкой, а два его напарника - на мини-карте не отображаются. Подскажите, что у них и где прописано, что их на мини-карте не видно ?

В файле логики Кордона ищи строчку show_spot = false. Закомеентируй или удали ее совсем. И будет тебе счастье.

Попутно тоже спрошу. Есть мод на базе ОГСМ для ТЧ с добавленными локациями. Но фишка в том, что на этих локах нет укрытий от выброса. А при попытке спавна получаю вылет.

 

function first_run()

 

local ind

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

-- Укрытия в Предбаннике --

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

-- Подвал справа от тоннеля

spawn_restrictor("predbannik", vector():set(2.51,13.23,57.36), 947350, 3996, "stalker", 3)

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

-- Укрытия на Кордоне --

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

-- Бункер Сидора

spawn_restrictor("l01_escape", vector():set(-249.9,-24.8,-134.4), 10136, 7, "fake_", 3)

-- Лагерь новичков

spawn_restrictor("l01_escape", vector():set(-206.5,-22.53,-128.1), 46582, 58, "stalker", 3)

spawn_restrictor("l01_escape", vector():set(-211.4,-23.17,-129.5), 41963, 59, "stalker", 3)

 

 

Добавлена строка, где написано "predbannik"

 

Expression : fatal error

Function : CInifile::r_section

File : E:\stalker\sources\trunk\xrCore\Xr_ini.cpp

Line : 342

Description :

Arguments : Can't open section 'predbannik_hide_restrictor'

 

 

 

function spawn_restrictor(p_level, p_vector, p_lv, p_gv, p_type, p_radius)

 

local p_name

 

if p_type == "pp" then

p_name = p_level.."_psy_restrictor"

else

p_name = p_level.."_hide_restrictor"

end

 

local obj = alife():create(p_name, p_vector, p_lv, p_gv)

 

local hide_name

if string.find(p_type, "_") then hide_name = "ogsm_common_hide"

else hide_name = "ogsm_"..p_type.."_hide" end

 

local mapspot

if p_radius < 4 then mapspot = "ogsm_hide_spot_min"

elseif p_radius < 11 then mapspot = "ogsm_hide_spot_mdl"

else mapspot = "ogsm_hide_spot_max" end

 

local packet = net_packet()

 

obj:STATE_Write(packet)

 

-- свойства cse_alife_object

local game_vertex_id = packet:r_u16()

local cse_alife_object__unk1_f32 = packet:r_float()

local cse_alife_object__unk2_u32 = packet:r_s32()

local level_vertex_id = packet:r_s32()

local object_flags = packet:r_s32()

local custom_data = packet:r_stringZ()

local story_id = packet:r_s32()

local cse_alife_object__unk3_u32 = packet:r_s32()

 

-- свойства cse_shape

local shape_count = packet:r_u8()

local shape_type

local center

local radius

 

if shape_count == 0 then

shape_type = 0

center = vector():set(0,0,0)

radius = 10.0

shape_count = 1

else

for i=1,shape_count do

local shape_type = packet:r_u8()

if shape_type == 0 then

local center = packet:r_vec3()

local radius = packet:r_float()

else

local v1 = packet:r_vec3()

local v2 = packet:r_vec3()

local v3 = packet:r_vec3()

local v4 = packet:r_vec3()

end

end

end

 

-- свойства cse_alife_space_restrictor

local restrictor_type = packet:r_u8()

 

-- свойства cse_alife_object

packet:w_u16(game_vertex_id)

packet:w_float(cse_alife_object__unk1_f32)

packet:w_s32(cse_alife_object__unk2_u32)

packet:w_s32(level_vertex_id)

packet:w_s32(object_flags)

 

if p_type == "pp" then

custom_data = "[logic] \nactive = ogsm_effector \n[ogsm_effector]"

else

custom_data = "[logic] \nactive = sr_mapspot \n[sr_mapspot] \nhint = "..hide_name.." \nlocation = "..mapspot

end

 

local cd = parse_custom_data(custom_data)

if not cd then cd={} end

if not cd.parameters then cd.parameters = {} end

cd.parameters.community = p_type

cd.parameters.radius = p_radius

custom_data = gen_custom_data(cd)

 

packet:w_stringZ(custom_data)

packet:w_s32(story_id)

packet:w_s32(cse_alife_object__unk3_u32)

 

-- свойства cse_shape

packet:w_u8(shape_count)

 

for i=1,shape_count do

packet:w_u8(shape_type)

if shape_type == 0 then

packet:w_vec3(center)

packet:w_float(p_radius)

else

packet:w_vec3(v1)

packet:w_vec3(v2)

packet:w_vec3(v3)

packet:w_vec3(v4)

end

end

 

-- свойства cse_alife_space_restrictor

packet:w_u8(restrictor_type)

 

obj:STATE_Read(packet, packet:w_tell()-packet:r_tell())

 

return obj

end

 

 

 

Собственно, где копать, может подскажете? Я правильно понимаю, что скрипт не видит новых локаций, или что другое не так прописано?

 

AndrewSol, файл логики Кордона называется gulag_escape.ltx. Лежит в gamedata\config\misc

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

Сталкер - наше всё!

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


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

У тебя в логе же чётко указанно что игра не может найти в конфигах секцию [predbannik_hide_restrictor] В функции спавна рестриктора ты передаёшь имя уровня, а в скрипте к нему потом дописывается _hide_restrictor Найди в конфигах по аналогии например l01_escape_hide_restrictor и глянь что туда писать надо.

 

Я понимаю, что невозможно открыть такую секцию. Но откуда она читается (или берется) - не понимаю. В самом начале скрипта написано restrictor_list={}. Думаю, что это список рестрикторов, он и заполняется.

 

Я выше привел полностью функцию spawn_restictor. На всякий случай привожу функцию, где этот самый локация_hide_restrictor формируется:

 

function get_level_mobs()

for i=1,65535 do

local obj = alife():object(i)

if obj then

if string.find(get_monster_portion(obj.id), level.name()) then

list_mob_ids[obj.id] = obj.id

end

if string.find(obj:name(), level.name().."_hide_restrictor") then

table.insert(restrictor_list, obj)

end

if string.find(obj:name(), level.name().."_psy_restrictor") then

table.insert(psy_list, obj)

end

end

end

end

 

 

Shoker, я в натуре дико протупил. Он же в system.ltx прописан :(

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

Сталкер - наше всё!

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


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

Подскажите, кто знает, из-за чего может быть такой вылет (вылет в Х-18: после убийства огненного плтера не было сна и вылет)

 

FATAL ERROR

[error]Expression : fatal error
[error]Function : CPostprocessAnimator::Load
[error]File : E:\stalker\sources\trunk\xr_3da\xrGame\PostprocessAnimator.cpp
[error]Line : 76
[error]Description :
[error]Arguments : Can't find motion file 'amp_1_task'.

 

Сталкер - наше всё!

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


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

Всем привет, возникла проблема.

 

Мод на базе ТЧ с восстановленными монстрами. Хотел заспавнить бюрера через all.spawn, но не нашел подходящей секции. Попробовал заспавнить по секции полтергейста, изменив ссылку на визуал, спавн скомпилился, но при старте игры вылет:

 

Expression : count != 0
Function : CControlAnimationBase::UpdateAnimCount
File : E:\stalker\sources\trunk\xr_3da\xrGame\ai\Monsters\control_animation_base.cpp
Line : 426
Description : Error! No animation: stand_eat_ for monster garold_burer1

 

Понятно, что нет анимации, но как же тогда спавнить бюрера? Брать другую секцию, или менять только section_name на другую? И на какую конкретно?



По спавну бюреров все получилось. В all.spawn в секции на базе полтергейста надо написать section_name = burer_normal.

И в m_burer.ltx добавить секцию [burer_normal], скопировав секцию [burer_weak]. Именно так сделано в Солянке.

Сталкер - наше всё!

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


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

Всем привет, возникла проблема.

Потребовалось заспавнить в моде на основе ТЧ кота через all.spawn. Ни одной секции с котом в ТЧ нету, но котов можно заспавнить и скриптом. написал свою секцию в all.spawn и получил вылет при сборке

 

; cse_abstract properties


section_name = cat_normal
name = swa_cat01
position = 133.11943054199, 8.5584344863892, -14.657176971436
direction = 0, 0, 0
id = 65535
version = 118
script_version = 6
spawn_id = 2236

; cse_alife_object properties
game_vertex_id = 4019
distance = 0
level_vertex_id = 1152766
object_flags = 0xffffffff
custom_data = < END
[smart_terrains]
none = true
END

; cse_visual properties
visual_name = monsters\cat\cat

 

 

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 1
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =

; cse_alife_monster_abstract properties
 

; cse_ph_skeleton properties

; cse_alife_monster_base properties

; se_monster properties
upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = 133.11943054199, 8.5584344863892, -14.657176971436
upd:g_squad = 1
upd:g_group = 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

 

лог вылета

FATAL ERROR:
Function: stkutils::scan::get_class
Line: 1919
Description: cannot find clsid for class cat_normal at stkutils/debug.pm line 58

 

 

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

ACDC ругается на недопустимое имя секции в строке section_name - cat_normal отпадает. Пробовал подобрать другое имя - то же самое. Не подскажет кто, какое имя секции нужно писать? Или где посмотреть эти самые классы или как их там, чтобы не тыкаться подбором, а найти нужное?

 


Сталкер - наше всё!

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


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

@Korpus, Насчет странных id'ов и прочего - таки как раз и скопирована секция обычной зверюги. "level_vertex_id = 1152766" - тоже ничего странного, локация добавлена билдовская, а координаты и вертексы вытащить - пара пустяков, тем более что обычные зверюги спавнятся с таким id'ом и вертексом на ура.

Кошек уже добавили до меня, и это не чистый ТЧ, а мод на основе ОГСМ и ФАЕ. И те же кошки скриптом спавнятся на ура.

 

Впрочем, решение я уже нашел, спасибо за ответ.



, Ага, спасибо, буду иметь в виду.

Сталкер - наше всё!

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


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

 

 


mil_freedom = {-aes_arrive_to}

В alife_l07_military.ltx прогони весь файл на {-aes_arrive_to} и везде его убери, после знака равентсва напиши true, и будет тебе счастье. Все сталкеры, у кого в логике был этот поршень, останутся на своих местах. Это база Свободы и ребята с барьера.
 



А не подскажет кто, где находятся иконки частей зверюг? Все перерыл и не нашел.

Сталкер - наше всё!

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


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

@SneakyFoxes, в этом файле описание самих запчастей. Где именно находится та строка, которая отвечает за вывод конкретной иконки?

 

Поясню: добавляю хвост кошки. Всю секцию хвоста (как раз из того файла) скопировал к себе, модель добавил. Хвост спавнится, но в инвентори вместо хвоста - какая-то мура. Описание присутствует. Я тут нашел файл ui_icon_equipment.dds, там части нарисованы, но в НС этот файл другой, там больше иконок. И где ссылка на конкретную иконку?

Сталкер - наше всё!

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


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

@SneakyFoxes, это я уже понял. Но в моем ui_icon_equipment этих иконок нет. И как их добавить из НС - я не знаю. Я правильно понимаю, что иконки частей монстров автоматически берутся из ui_icon_equipment? И из другого файла игра их не увидит?



И посоветуйте урок, как дорисовать/перенести иконку из другого файла в свой.

Сталкер - наше всё!

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


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

, если рисовать - то да. А скопировать иконку из другого файла и вставить в свой - Stalker Icon Editor и вперед. И все так просто оказалось. Спасибо всем за ответы.

Сталкер - наше всё!

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


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

Пытаюсь поставить метку на перса, почему-то не работает. 
level.map_add_object_spot(54512, "blue_location", "Скупой") 
Мож чего не так делаю?

Может. Первый аргумент в функции это у тебя что?
ColR_iT

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

Сталкер - наше всё!

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


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

AMK-Team.ru

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