Перейти к содержанию

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

 
 

del

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Я давал ссылочку на  вики, там можно найти всё, что угодно. Но как пример.....

Аллспавн алайф_локация:

Спойлер

 

[14]
; cse_abstract properties
section_name = smart_terrain
name = sv_st_smart_terrain
position = 217.50959777832,-1.94939196109772,176.110565185547
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 378
distance = 24.5
level_vertex_id = 354113
object_flags = 0xffffff3e
custom_data = <<END
[smart_terrain]
type = sv_st_smart_terrain
capacity = 3
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 3.71439838409424

; cse_alife_space_restrictor properties
restrictor_type = 3

; se_smart_terrain properties


[15]
; cse_abstract properties
section_name = stalker
name = sv_st_smart_terrain00
position = 218.50959777832,-1.94939196109772,177.110565185547
direction = -0.327957004308701,0,0.944693028926849

; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_stalker_novice

; cse_alife_object properties
game_vertex_id = 378
distance = 4.19999980926514
level_vertex_id = 354113
object_flags = 0xffffffbf
custom_data = <<END
[smart_terrains]
sv_st_smart_terrain = true 
END

; cse_visual properties
visual_name = actors\novice\green_stalker_2

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

upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = 218.50959777832,-1.94939196109772,177.110565185547
upd:o_model = 0
upd:o_torso = 0.533530831336975,-0.000744261255022138,0
upd:g_team = 0
upd:g_squad = 0
upd:g_group = 0

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 1,0,0,2,1
predicate4 = 1,1,0,1

; cse_ph_skeleton properties

upd:start_dialog = 

; se_stalker properties


[16]
; cse_abstract properties
section_name = stalker
name = sv_st_smart_terrain01
position = 219.50959777832,-1.94939196109772,178.110565185547
direction = -0.327957004308701,0,0.944693028926849

; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_stalker_novice

; cse_alife_object properties
game_vertex_id = 378
distance = 4.19999980926514
level_vertex_id = 354113
object_flags = 0xffffffbf
custom_data = <<END
[smart_terrains]
sv_st_smart_terrain = true 
END

; cse_visual properties
visual_name = actors\novice\green_stalker_2

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

upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = 219.50959777832,-1.94939196109772,178.110565185547
upd:o_model = 0
upd:o_torso = 0.533530831336975,-0.000744261255022138,0
upd:g_team = 0
upd:g_squad = 0
upd:g_group = 0

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 1,0,0,2,1
predicate4 = 1,1,0,1

; cse_ph_skeleton properties

upd:start_dialog = 

; se_stalker properties


[17]
; cse_abstract properties
section_name = stalker
name = sv_st_smart_terrain02
position = 220.50959777832,-1.94939196109772,179.110565185547
direction = -0.327957004308701,0,0.944693028926849

; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_stalker_novice

; cse_alife_object properties
game_vertex_id = 378
distance = 4.19999980926514
level_vertex_id = 354113
object_flags = 0xffffffbf
custom_data = <<END
[smart_terrains]
sv_st_smart_terrain = true 
END

; cse_visual properties
visual_name = actors\novice\green_stalker_2

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

upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = 220.50959777832,-1.94939196109772,179.110565185547
upd:o_model = 0
upd:o_torso = 0.533530831336975,-0.000744261255022138,0
upd:g_team = 0
upd:g_squad = 0
upd:g_group = 0

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 1,0,0,2,1
predicate4 = 1,1,0,1

; cse_ph_skeleton properties

upd:start_dialog = 

; se_stalker properties

 

Аллспавн вай_локация:

Спойлер

 

[sv_st_smart_terrain_dva_walk]
points = p0,p1
p0:name = wp00
p0:position = 220.283889770508,-2.02869510650635,175.384140014648
p0:game_vertex_id = 378
p0:level_vertex_id = 355513
p0:links = p1(1)

p1:name = wp01
p1:position = 232.254119873047,-1.04941594600677,167.089828491211
p1:game_vertex_id = 381
p1:level_vertex_id = 368817
p1:links = p0(1)


[sv_st_smart_terrain_moy_sleep]
points = p0,p1
p0:name = wp00
p0:position = 214.50959777832,-1.94939196109772,173.110565185547
p0:game_vertex_id = 378
p0:level_vertex_id = 354113

p1:name = wp01
p1:position = 214.50959777832,-1.94939196109772,172.110565185547
p1:game_vertex_id = 378
p1:level_vertex_id = 354113
p1:links = p0(1)


[sv_st_smart_terrain_odin_walk]
points = p0,p1,p2
p0:name = wp00
p0:position = 216.906387329102,-1.92757797241211,175.720275878906
p0:game_vertex_id = 378
p0:level_vertex_id = 353756
p0:links = p1(1)

p1:name = wp01
p1:position = 203.708618164063,-1.05473899841309,171.603408813477
p1:game_vertex_id = 378
p1:level_vertex_id = 345806
p1:links = p2(1)

p2:name = wp02
p2:position = 204.927429199219,-2.01750707626343,180.354019165039
p2:game_vertex_id = 378
p2:level_vertex_id = 346710
p2:links = p0(1)


[sv_st_smart_terrain_pole_kamp]
points = p0
p0:name = wp00|s=state
p0:position = 216.50959777832,-1.94939196109772,175.110565185547
p0:game_vertex_id = 378
p0:level_vertex_id = 354113

 


 

gulag_локация.script:

Спойлер

 

local t = {}

function load_job(sj, gname, type, squad, groups)
--'--------------------------------------------------------------------------    
--' GARBAGE
--'--------------------------------------------------------------------------    

-----первый---------
 if type == "sv_st_smart_terrain" then
t = { section = "logic@sv_st_smart_terrain_walker1",
idle = 0,
prior = 5, state = {0}, ---работа днем первого нпс--------
online = true,
in_rest = "", out_rest = "",
}
table.insert(sj, t)
end

if type == "sv_st_smart_terrain" then
t = { section = "logic@sv_st_smart_terrain_kamp1",
idle = 0,
prior = 5, state = {1},     ---работа ночью первого нпс---
online = true,
in_rest = "", out_rest = "",
}
table.insert(sj, t)
end

----------второй-----------

if type == "sv_st_smart_terrain" then
t = { section = "logic@sv_st_smart_terrain_walker2",
idle = 0,
prior = 5, state = {0},  ----работа днем второго нпс----
online = true,
in_rest = "", out_rest = "",
}
table.insert(sj, t)
end

if type == "sv_st_smart_terrain" then
t = { section = "logic@sv_st_smart_terrain_kamp2",
idle = 0,
prior = 5, state = {1},   ----работа ночью второго нпс -----
online = true,
in_rest = "", out_rest = "",
}
table.insert(sj, t)
end

------третий-------------

if type == "sv_st_smart_terrain" then
t = { section = "logic@sv_st_smart_terrain_walker3",
idle = 0,
prior = 5, state = {0},        --- работа  днем третьего нпс----
online = true,
in_rest = "", out_rest = "",
}
table.insert(sj, t)
end

if type == "sv_st_smart_terrain" then
t = { section = "logic@sv_st_smart_terrain_sleeper",
idle = 0,
prior = 5, state = {1},  ---работа ночью третьего нпс---
online = true,
in_rest = "", out_rest = "",
}
table.insert(sj, t)
end
    
    
end


function load_states(gname, type)
    
    
    -----
    
if type == "sv_st_smart_terrain" then
return function(gulag)
if db.actor ~= nil then
if ( level.get_time_hours() >= 5 and level.get_time_hours() <= 22 ) then
return 0 -- день
else
return 1 -- ночь
end
else
return gulag.state
end
end
end
    
    
end

--------------------------------------------------------------------------
-- Dynamic ltx
--------------------------------------------------------------------------
function load_ltx(gname, type)
    return nil
end

function checkStalker(npc_community, gulag_type, npc_rank, se_obj)
    
    
    ------------
    
    if gulag_type == "sv_st_smart_terrain" then
return npc_community == "stalker"
end

    
    return false
end

 

gulag_локация.ltx в config/misc

Спойлер

 

;-- сталкер1 walker первый -> состояние 0, днем)
[logic@sv_st_smart_terrain_walker1]
active = walker@odin_hodit
on_hit = hit_w 

[hit_w]
on_info = %=zasada_spawn%

 
[walker@odin_hodit]
path_walk         = odin_walk
danger            = danger_condition
def_state_moving1 = patrol
def_state_moving2 = patrol
def_state_moving3 = patrol
meet = meet
 
;-- сталкер1 kamp первый -> состояние 1, ночью)
[logic@sv_st_smart_terrain_kamp1]
active = kamp@odin_sidit
on_hit = hit_k 

[hit_k]
on_info = %=zasada_spawn%
 
[kamp@odin_sidit]
center_point = pole_kamp
meet = no_meet
 ----------------------------------------------------------------
;-- сталкер2 walker второй -> состояние 0, днем)
[logic@sv_st_smart_terrain_walker2]
active = walker@dva_hodit
 
[walker@dva_hodit]
path_walk         = dva_walk
danger            = danger_condition
def_state_moving1 = patrol
def_state_moving2 = patrol
def_state_moving3 = patrol
meet = meet
 
;-- сталкер2 kamp второй -> состояние 1, ночью)
[logic@sv_st_smart_terrain_kamp2]
active = kamp@dva_sidit
 
[kamp@dva_sidit]
center_point = pole_kamp
meet = no_meet
 ----------------------------------------------------------------------------
 ;-- сталкер3 walker третий -> состояние 0, днем)
[logic@sv_st_smart_terrain_walker3]
active = kamp@tri_sidit
 
[kamp@tri_sidit]
center_point = pole_kamp
meet              = meet 
 
 
;-- сталкер3 sleeper третий -> состояние 1, ночью)
[logic@sv_st_smart_terrain_sleeper]
active = sleeper@tri_slip
 
[sleeper@tri_slip]
path_main = moy_sleep
wakeable  = false
meet = no_meet

 

В принципе всё. Соответственно либо создать своих новых нпс, либо использовать имеющихся. 

Настойчиво повторяю просьбу - изучить материалы на сталкер-вики, там всё достаточно подробно расписано, а вот если что-то не получается, то можно и спросить, а не требовать всё готовое)

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


Ссылка на сообщение
Поделиться на другие сайты
 

Спасибо,та хочу быстро,поэтому,прошу)

  • Пост еще тот... 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Зависание биндера (Shaduler try to update object) при попытке добавить зомбям строчки on_actor_dist_ge = 60 | [mob_fake_death@esc_zombie_ХХ
Затем заставить их встать а потом отбежать на расстояние.
Добавил чтобы они ложились опять при уходе игрока. Где ошибка? В остальном нормально работает

 

[logic@esc_zombie_1_fd]
active = mob_fake_death@esc_zombie_1_fd
on_hit = hit@zombie

[mob_fake_death@esc_zombie_1_fd]
on_info = {+esc_zombie_rise2} mob_home@esc_zombie_1_fd
path_home = home_point_1

[mob_home@esc_zombie_1_fd]
path_home = home_point
home_min_radius = 20
home_max_radius = 35
on_actor_dist_ge = 60 | [mob_fake_death@esc_zombie_1_fd

[hit@zombie]
on_info = %+esc_zombie_rise2%


[logic@esc_zombie_2_fd]
active = mob_fake_death@esc_zombie_2_fd
on_hit = hit@zombie

[mob_fake_death@esc_zombie_2_fd]
on_info = {+esc_zombie_rise2} mob_home@esc_zombie_2_fd
path_home = home_point_2

[mob_home@esc_zombie_2_fd]
path_home = home_point
home_min_radius = 20
home_max_radius = 35
on_actor_dist_ge = 60 | [mob_fake_death@esc_zombie_2_fd


[logic@esc_zombie_3_fd]
active = mob_fake_death@esc_zombie_3_fd
on_hit = hit@zombie

[mob_fake_death@esc_zombie_3_fd]
on_info = {+esc_zombie_rise2} mob_home@esc_zombie_3_fd
path_home = home_point_3

[mob_home@esc_zombie_3_fd]
path_home = home_point
home_min_radius = 20
home_max_radius = 35
on_actor_dist_ge = 60 | [mob_fake_death@esc_zombie_3_fd


[logic@esc_zombie_4_fd]
active = mob_fake_death@esc_zombie_4_fd
on_hit = hit@zombie

[mob_fake_death@esc_zombie_4_fd]
on_info = {+esc_zombie_rise2} mob_home@esc_zombie_4_fd
path_home = home_point_4

[mob_home@esc_zombie_4_fd]
path_home = home_point
home_min_radius = 20
home_max_radius = 35
on_actor_dist_ge = 60 | [mob_fake_death@esc_zombie_4_fd


[logic@esc_zombie_5_fd]
active = mob_fake_death@esc_zombie_5_fd
on_hit = hit@zombie

[mob_fake_death@esc_zombie_5_fd]
on_info = {+esc_zombie_rise2} mob_home@esc_zombie_5_fd
path_home = home_point_5

[mob_home@esc_zombie_5_fd]
path_home = home_point
home_min_radius = 20
home_max_radius = 35
on_actor_dist_ge = 60 | [mob_fake_death@esc_zombie_5_fd


[logic@esc_zombie_6_fd]
active = mob_fake_death@esc_zombie_6_fd
on_hit = hit@zombie

[mob_fake_death@esc_zombie_6_fd]
on_info = {+esc_zombie_rise2} mob_home@esc_zombie_6_fd
path_home = home_point_6

[mob_home@esc_zombie_6_fd]
path_home = home_point
home_min_radius = 20
home_max_radius = 35
on_actor_dist_ge = 60 | [mob_fake_death@esc_zombie_6_fd
	if type == "esc_zombie_1" then
		t = { section = "logic@esc_zombie_1_fd",
			idle = 0,
			prior = 5, state = {1},
			online = true,
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
		t = { section = "logic@esc_zombie_2_fd",
			idle = 0,
			prior = 5, state = {1},
			online = true,
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
		t = { section = "logic@esc_zombie_3_fd",
			idle = 0,
			prior = 5, state = {1},
			online = true,
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
		t = { section = "logic@esc_zombie_4_fd",
			idle = 0,
			prior = 5, state = {1},
			online = true,
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
		t = { section = "logic@esc_zombie_5_fd",
			idle = 0,
			prior = 5, state = {1},
			online = true,
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
		t = { section = "logic@esc_zombie_6_fd",
			idle = 0,
			prior = 5, state = {1},
			online = true,
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
		t = { section = "logic@esc_zombie_1_fd",
			idle = 0,
			prior = 5, state = {0},
			online = false,
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
		t = { section = "logic@esc_zombie_2_fd",
			idle = 0,
			prior = 5, state = {0},
			online = false,
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
		t = { section = "logic@esc_zombie_3_fd",
			idle = 0,
			prior = 5, state = {0},
			online = false,
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
		t = { section = "logic@esc_zombie_4_fd",
			idle = 0,
			prior = 5, state = {0},
			online = false,
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
		t = { section = "logic@esc_zombie_5_fd",
			idle = 0,
			prior = 5, state = {0},
			online = false,
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
		t = { section = "logic@esc_zombie_6_fd",
			idle = 0,
			prior = 5, state = {0},
			online = false,
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
	end

	if type == "esc_zombie_1" then
		return function(gulag)
			if has_alife_info("agroprom_military_case_have") then
				return 0
			else
				return 1
			end
		end
	end

 

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


Ссылка на сообщение
Поделиться на другие сайты
 

Здарова камрады!
Такой вопросец у меня, хочу сделать чтобы тайники в тч были наполнены по умолчанию. Что мне нужно сделать?

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


Ссылка на сообщение
Поделиться на другие сайты
 

Здраствуйте, помогите пожалуйста, при создание квеста, вот такой вылет 

Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ...e.r Тень Чернобылья\gamedata\scripts\new_life.script:2: attempt to index global 'amk' (a nil value)

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


Ссылка на сообщение
Поделиться на другие сайты
 

del

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Stalkervernite 

function spawn_ak74u()
    amk.spawn_item("wpn_ak74u",vector():set(-78.85,-1.29,154.74),163,189935)
end

function escape_bandoss_ak74u_have()
    return sak.have_item_namber("wpn_ak74u",1) ~= false
end

function give_bandoss_ak74u(first_speaker, second_speaker)
    sak.out_item_namber("wpn_ak74u", 1)
end

function complete_bandoss_quest(first_speaker, second_speaker)
    dialogs.relocate_money(second_speaker, 1500, "in")
end

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


Ссылка на сообщение
Поделиться на другие сайты
 

serzhant в смысле открыть все тайники?


76561198152189716.png

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


Ссылка на сообщение
Поделиться на другие сайты
 
4 часа назад, РСФСР сказал:

on_actor_dist_ge = 60 | [mob_fake_death@esc_zombie_5_fd

Опечатка [

  • Жму руку 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

del

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

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


Ссылка на сообщение
Поделиться на другие сайты
   

del

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
3 часа назад, Stalkerwild21 сказал:

Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ...e.r Тень Чернобылья\gamedata\scripts\new_life.script:2: attempt to index global 'amk' (a nil value)

У тебя вообще существует файл "amk.script"?


ed1c85bd8aba2500209219c6df96c254.png

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


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, ian98 сказал:

serzhant в смысле открыть все тайники?

НЕ, В НЕКОТОРЫХ МОДАХ ТАЙНИКИ ЗАПОЛНЕНЫ С САМОГО НАЧАЛА, ДАЖЕ ЕСЛИ МЕТНИ НЕТ НА НЕГО, ТОЖ ТАК ХОЧУ СДЕЛАТЬ

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


Ссылка на сообщение
Поделиться на другие сайты
 

serzhant нужен скрипт или прописывать лут через спавн или сдк. При этом оригинальные тайники сверху также останутся. Лутецкого будет на всю трилогию. Если скрипт, то я примерно представляю как он должен выглядеть. Надо перебрать все объекты в игре по клсиду, отфильтровать ящики в лагерях, а то лута ещё больше будет, чем дофигище, ну и по полученным тайникам распихать предметы. Раедомно. Если в каждый определенные предметы совать, то тоже можно скриптом, но возни побольше будет. 


76561198152189716.png

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


Ссылка на сообщение
Поделиться на другие сайты
 

ScR1pt Да он есть 


Дополнено 0 минут спустя

Stalkervernite Да брал с сайта 

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


Ссылка на сообщение
Поделиться на другие сайты
 

serzhant посмотри пример в моде Время Перемен 2.5.

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Stalkerwild21 del

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

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


Ссылка на сообщение
Поделиться на другие сайты
   

Господа, может кто-нибудь знает, как можно перенести все предметы с инвентаря ГГ в ящик, а затем скриптом обратно положить к нему в рюкзак, либо же как-нибудь сохранить его инвентарь, потом очистить и через время выдать сохранённый шмот? И вообще возможно ли такое на ванили или хотя бы ОГСР?

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


Ссылка на сообщение
Поделиться на другие сайты
 

Paracetamol Ну,я не скриптер,ну это как минимум тяжело,ты через сдк работаешь?

upd:Покопайся по сайтам в большинствах если "шпаргалки ковырялки",там все про скриптинг,может попадется нужная информация.


Дополнено 49 минуты спустя

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

Изменено пользователем Stalkervernite
  • Лайк 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

del

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Помогите как в SDK 0.4 открыть свой all.spawn? А то грузит пустую локацию 

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


Ссылка на сообщение
Поделиться на другие сайты
 

Paracetamol привет. Что-то похожее есть в оригинальном ТЧ: если ГГ участвует в боях на Арене, то его шмот складывается в ящик возле Арни. Вот только забирать его потом надо вручную. Возможно, я не уверен, скрипт можно переделать что бы вещи были не out, а in. То есть не забирались, а давались. Вот только не знаю, можно ли это провернуть с неживим предметом, как ящик. С НПС, например, точно можно.

2 часа назад, Stalkervernite сказал:

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

Привет. Думал даже статью как-то на вики написать...

Там всё запредельно просто.

Спойлер

Можно сделать как на 1-го НПС, так и для 20-х например (но если честно, я больше чем на 8 не создавал).
1.Снимаешь координаты и делаешь через АС/ДС либо СДК смарт террейн с пометкой type = general_lager.
2.Даешь ему имя, например, esc_novice_village (название вообще любое можно, но лучше делать в стиле ПЫС).
3.Далее, делаешь работы для смарта. Если нужны только сидящие у костра, то снимаешь координаты центра костра, потом любой точки, за 2-3 м от костра (что-бы нпс не горели в кострах), и прописываешь в СДК или АСДС.
Если в АСДС то прописывать в файл путей, например, если это кордон, то в файл way_l01_escape.ltx (хотя если прописать в другой файл, то 99% что тоже будет работать), далее называем работу ТОЛЬКО ПО ИМЕНИ САМОГО СМАРТА - ЭТО ВАЖНО. Например, у нас смарт называется esc_novice_village, значит место для посиделок у костра будет называться esc_novice_village_kamp. Последнее слово - это название схемы. Также, делаем вторую точку, что бы НПС не жарились, которая за 2-3м, и называем её esc_novice_village_kamp_task. Соответственно, можно сделать walker, sleeper, camp и тд. Только для каждой схемы, надо свой набор путей. Пояснюю: для костровиков достаточно 2-х точек - сам костёр и task, для walker можно сделать вообще только 1 точку, тогда он тупо будет стоять, а можно 35 точек - и он будет ходить по них в заданной последовательности. Также, для walkera очень желательно сделать к каждой точке "хождения" одну точку "направления взгляда". Там ещё можно кучу всего интересного с ним придумать) Далее, sleeper - спит лёжа либо сидя. 2 точки - в первую смотрит на второй лежит (вроде бы так, если не ошибаюсь). Camp - сидит в засаде, как, например, монолитовцы на крышах в Припяти. Минимум 2 точки - позиция и взгляд. Если задать 2 точки взгляда, он будет между ними переключаться, либо сканировать если указать тип кемпера sniper... remark - не трогайте эту схему, она не нужна в смартах.
Вроде как всё)
Будут вопросы - можете писать.

upd: забыл упомянуть что у костра больше 5-6 челов лучше не садить.
Также, в секции смарта, надо указывать capacity - вместимость (нельзя делать больше чем есть), и группировку НПС, например community = stalker, dolg (можно и две группировки).

 

Изменено пользователем oleg19966
  • Лайк 2

Внимание! Ищу любые фиксы/исправления для оригинального ТЧ.

Спойлер

Или людей, которые желают помочь с этим делом.

 

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу