Пользователей: 0
Гостей: 1172
Всего: 1172

» Подробно
» Сегодня

Привет, гость!









Автор Сообщение
vitok96
    
Посты: 131
Откуда: Сумы
Возраст: 28
30-11-2011 15:48 GMT3 час. #1548607   
товарищи сталкеры подскажите что и в каком файле отвечает за то, какое оружие предпочитает непись?я ввел сталкеру автоматический пистолет и автомат, теперь он всегда ходит с пистолетом а автомат носит в портфеле.
Можно ли как нибудь сделать чтоб если близко подберешся к противнику с СВД, он доставал пистолет?


Маленький оружейный мод на ТЧ с более реалистичными по ТТХ оригиналльными стволами
новые визуалы долговцев
и целая бригада бандюков
в моём журнале
Монарх
    
Посты: 42
Откуда:
Возраст:
30-11-2011 18:01 GMT3 час. #1548644   
Эй, люди! У вас в ФАКе описано создание НПС. Но я так понял, что он будет только стоять. Как сделать так, чтобы он сидел (как другие сталкеры у костра)?
И подскажите где можно почитать про создание собственных группировок?


Сталкер - это не куча стволов и костюмов... Сталкер - это душа...
dromundus
    
Посты: 143
Откуда: moscow
Возраст:
30-11-2011 19:07 GMT3 час. #1548657   
vitok96

в конфигах пистолета должна стоять 5
а у тебя наверное 2 и 6 как у автомата вот нпс и выбирает лучший автомат так как понимает пистолет как автомат.
1 5 постолет
2 6 автомат assault weapon
4 9 гранатомёт heavy weapon
3 8 sniper rifle
1 7 Гладкоствольное оружие

min_radius
max_radius

радиус основного использования оружия в метрах
по умолчанию постолет 0-50
гладкоствол 0-30
автомат 30-100
а дальше не всё так посто как хотелось бы ибо ещё учитывается износ оружия, его ранг (чем выше тем приоритетней) тактические характеристики (кучность скорострельность) наличие у нпс необходимого калибра ьоеприпасов и что то ешё сам не пойму бьюсь с этим давно.
Пример
мой снайпер вооружён
нож от 0-2.5 м
Веретта 93R gold compact 2 - 10м
MP5 k 5- 15м
скорострельная SVD CAMO 8-100м
огнемёт навесно огня 3-8 м
и что то 50 калибра M82 compact 50-150м
или M82 m3 80-220м
мой снайпер в отличие от обычных нпс вступающих в бой на расстоянии 15м
начинает молотить со 100 и выше.
Далее вроде понятно что долно происходить по метрам котгда и что но

всё равно он использует MP5 K до тридцати метров а там уже это оружие не столь эффективно пули под ноги ниже обьекта прицеливания ложаться
Либо с барретом идёт в ближний бой а это уже слишком.С такай то "дурой""
огнемёт выбирает в основном по монстрам в ближнем бою но это ладно
пистолетом вааще не пользуется добивает раненых из mp5 k очень редко тыранёт кого нибудь ножом если зажмут кровососы например.

в результате я понял что метраж в конфигах оружия не является приоритетным хотя и учитывается..
ещё пример вооружил пулемётчика пулемётом 50 калибра для дальних дистанций и пулемётом обычным 7.62 вместо автомата а этод гад всё равно подбирает первый попавшийся калаш с трупа.
Не понимаю его патриотизма ибо убойность скорострельность и прочие характеристики у пулемёта выше чем у ак74у может из за веса. лечится обычно полным изьятимем у бойца боеприпасов данного типа. У нпс правда остаётся в запасе 3 рожка и нужно ждать пока он их отстреляет. Хотя скорее к тому времени подберёт что то ещё.
Иногда вооружённые пистолетом бандиты стреляют свыше 50 м ( хотя ПМ имеет ограничение макс 50м
и дальность полёта пули 50)
поэтому стреляют из того что есть.
И ещё важно. необходимо расчитать и сбалансировать оружие у бойца иначе находясь на границе смены оружия он будет делать шаг вперёд убирает свд достёт пистолет шаг назад убирает пистолет достаёт свд.Все воюют а этот всё не может решить из чего стрелять.В ближнем бою где неписи маневрируют и меняют позиции это перебор. Поэтому переключение из дальнего боя в близкий должно происходить чуть раньше.15-20 метров.
У меня подозрение что создатели игры так и не смогли решить эту проблему и поэтому только оптимизировали её до более менее удобоваримого состояния. Хотя возможно я и ошибаюсь.... Если в своих экспериментах добьёшся хоршего результата поделись ....
в ЛС удачи!

добавлено спустя 12 минут


dimak
насчёт гулагов
мне не нужно чтобы проводник с болот шёл на aver.
мне нужно сделать тоже самое на aver что и на болотах
как я понял мало создать гулаг надо ещё заспавнить туда непися чтобы тот сел в его центр
capacity=1
Я полностью скопировал гулаги из солянки hunter_aver
гулаг нпсов даже респаунер
естественно изменил script, misc ,all spawn
создал новых персов в character_desc
те же яйца вид сбоку

Expression : no_assert
Function : CXML_IdToIndex::GetById
File : e:\stalker\patch_1_0004\xr_3da\xrgame\xml_str_id_loader.h
Line : 112
Description : item not found, id
Arguments :


может SUP Launcher глючит......и новые нпс некорректно создаются.....


ps Кстати от заполняемости гулага не зависит переход напарников. как только прописал переход сразу на болота ппёрлись все кому не лень и напарники и не напарники....Сразу стало оживлённее..

добавлено спустя 22 минут

Монарх
обычно это зависит от гулага в котором находится нпс например у костра
если тебе попроще то можно так
в спокойном состоянии если нпс ничего не угрожает и ты к нему близко не подходишь то по дефолту он будет сидеть по прописаной логике.
для этого нужно
в config\creatures\ spawn_sections
найти нужного тебе персонажа
(если создал нового с помощью SUP проги то он туда тоже прописывается)

[dedushka]:stalker

$spawn = "respawn\dedushka"

character_profile = dedushka

spec_rank = master

community = stranger

и добавляешь ему логику строчкой

custom_data = scripts\sitass.ltx

это путь к логике с анимацией

соответственно в папке config\scripts создаёшь этот файл
лучше скопируй любой из имеющихся и очисть внутри так как часто при создании с нуля таких файлов строчки сбиваются и игра ругается.короче..
внутрь вставь
[logic]
active = remark1
danger = danger_ignore

[danger_ignore]
ignore_distance = 60
ignore_distance_corpse = 0

[remark1]
no_move = true
anim = sit_ass
combat_ignore_cond = always
meet = meet
ignore_distance = 1
;on_signal = remark2
formation = back
center_point = self.object:position()
return true
end
end
radius = 6


[meet]
use = true
use_wpn = true
meet_talk_enabled = true
ignore_distance = 1
anim = guard
anim_reset = false
on_info = {+tutorial_wounded_give_info} sleeper4@esc_lager
formation = back
center_point = camp_point
move = true
radius = 10
no_move = false


обзови файл sitass.ltx
и всё.....
как только объёкт заспаунится то по умолчанию он запустит заскриптованую анимацию anim = sit_ass
захочешь другую анимацию - выбирай из списка

помни при разговоре или атаке нпс переходит в идловое состояние встаёт и уже не садится.Наверняка можно как то его вернуть в исходное состояние но как пока не знаю.
Можно перезагрузиться и он опять сядет.

Короче типа так....

отредактировал(а) dromundus: 30-11-2011 19:45 GMT3 час.

Крути "Башней"....
losiara
    
Посты: 549
Откуда: Откуда то оттуда...
Возраст: 51
30-11-2011 22:08 GMT3 час. #1548690   
Монарх
Для того что бы непись сидел, пропиши ему соот. анимацию... из файла state lib. scripts, сидячие состояния...
Если же ты хочешь вокруг костра, то схему camp, через гулаг тогда он будет около точки находиться...

отредактировал(а) losiara: 30-11-2011 23:26 GMT3 час.

Внатуре пацаны, гаси их...
Как сделать НПС бессмертным...
Логика в ТЧ!
Здесь нарисована цифра четыре "8", если вы видите восемь, то вам нужно к нам...
врач-психиатр, дерматолого-терапевто-окулист!!!
qwerqwer
    
Посты: 7
Откуда:
Возраст:
01-12-2011 09:19 GMT3 час. #1548723   
Люди может кто подсказать-как узнать максимальные значения level_vertex_id и game_vertex_id на уровне?
Адаптирую выброс из ОГСМ для новой локации и упёрся в это.


- Дайте мне пулемет и цинк с патронами - и мир станет лучше!
- Цинка тебе не хватит.
- Так я и не сказал, что мир станет ИДЕАЛЬНЫМ!
Монарх
    
Посты: 42
Откуда:
Возраст:
01-12-2011 11:03 GMT3 час. #1548735   
Вопрос еще лучше:
Как сделать так, чтобы НПС бродил туду сюда (часовой)?
Как сделать так, чтобы после взятия определенного квеста НПС вместе со своими уникальными товарищами побежал выносить других? (Что-то вроде долговцев на Милитари)
Как открыть all.spawn?
Где взять Position Informer?

И еще: я снял координаты через rs_stats 1, но когда я загрузился нового НПС не было на месте. У меня отобразились только координаты camera_position, где взять остальные?

отредактировал(а) Монарх: 01-12-2011 11:17 GMT3 час.

Сталкер - это не куча стволов и костюмов... Сталкер - это душа...
DmBorn
    
Посты: 2007
Откуда: Москва
Возраст: 28
01-12-2011 11:23 GMT3 час. #1548738   

Как сделать так, чтобы НПС бродил туду сюда (часовой)?

Сделать ему логику

Как открыть all.spawn?

С помощью ACDC

Где взять Position Informer?

 http://rghost.ru/32775521


Монарх
    
Посты: 42
Откуда:
Возраст:
01-12-2011 11:46 GMT3 час. #1548742   
Вопрос о долговцах остался.
Что надо нажимать в этом информере? rs_stats 1?


Сталкер - это не куча стволов и костюмов... Сталкер - это душа...
dimak
    
Посты: 1493
Откуда: Архангельск
Возраст: 52
01-12-2011 12:04 GMT3 час. #1548747   

# Монарх :
Вопрос еще лучше:
Как сделать так, чтобы НПС бродил туду сюда (часовой)?
Как сделать так, чтобы после взятия определенного квеста НПС вместе со своими уникальными товарищами побежал выносить других? (Что-то вроде долговцев на Милитари)
Как открыть all.spawn?
Где взять Position Informer?

И еще: я снял координаты через rs_stats 1, но когда я загрузился нового НПС не было на месте. У меня отобразились только координаты camera_position, где взять остальные?



rs_stats обычно снимаешь координаты, если уровень известен. Этого не достатчно для спавна нпс, либо создания гулагов, т.к. координаты x z нужно выдавать с гейм вертексом и левел вертексом. Вот пример для создания точных координат. Берём скрипт ui_main_menu.script и в самом низу дописываем это

function main_menu:OnButton_credits_clicked()

local text
local vid
local gvid
local a = vector()
local text

a = db.actor:position()
vid = db.actor:level_vertex_id()
gvid = db.actor:game_vertex_id()
text = "Позиция:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..vid.."\\ngame_vertex_id= "..gvid
news_manager.send_tip(db.actor, text, nil, nil, 30000)
end


Сохраняем. Далее загружаем игру, доходим до нужного места, жмём ESC, чтобы попасть в главное меню и кликаем на меню credit (Титры) Получаем звуковой сигнал, и возвращаемся в игру. Координаты с вертексами на экране в нижнем левом углу. Либо переписываем на листочек, но удобней сделать скрин и далее вносить.

отредактировал(а) dimak: 01-12-2011 13:20 GMT3 час.

Как здорово быть тёртым сталкером! Не бояться каждого шороха, оружия не носить с собой много!
Монарх
    
Посты: 42
Откуда:
Возраст:
01-12-2011 12:17 GMT3 час. #1548748   
Во! Вот это помощь! Но с подобием долговцев я так и не разобрался&P&P

отредактировал(а) Монарх: 01-12-2011 12:44 GMT3 час.

Сталкер - это не куча стволов и костюмов... Сталкер - это душа...
dimak
    
Посты: 1493
Откуда: Архангельск
Возраст: 52
01-12-2011 13:19 GMT3 час. #1548758   

# Монарх :
Вопрос еще лучше:
Как сделать так, чтобы НПС бродил туду сюда (часовой)?


Расскажу как я переделал гулаг в Нар.С, (Дьяк и ЧН) в лагерь наёмников-нацистов на болотах.(Первый хутор) Гулаг обновлённый состоит их 2-х костров, где сидит 6 чел. по 3-е. 1 стоячий и один часовой, который ходит по кругу вокруг хаты, лишь останавливаясь на пару секунд и дальше. В уцелом 8 чел

1)В скрипте для гулагов в самом верху после function load_job(sj, gname, type, squad, groups) сделал так

if type == "marsh_exit_nebo" then

t = { section = "logic@ex_nebo_ata1_sit",
idle = 0,
prior = 10, state = {0},
-- online = true,
in_rest = "", out_rest = "",
position_threshold = 400
}
table.insert(sj, t)
t = { section = "logic@ex_nebo_ata2_sit",
idle = 0,
prior = 10, state = {0},
-- online = true,
in_rest = "", out_rest = "",
position_threshold = 400
}
table.insert(sj, t)
t = { section = "logic@ex_nebo_ata3_sit",
idle = 0,
prior = 10, state = {0},
-- online = true,
in_rest = "", out_rest = "",
position_threshold = 400
}
table.insert(sj, t)
t = { section = "logic@ex_nebo_ata4_sit",
idle = 0,
prior = 10, state = {0},
-- online = true,
in_rest = "", out_rest = "",
position_threshold = 400
}
table.insert(sj, t)
t = { section = "logic@ex_nebo_ata5_sit",
idle = 0,
prior = 10, state = {0},
-- online = true,
in_rest = "", out_rest = "",
position_threshold = 400
}
table.insert(sj, t)
t = { section = "logic@ex_nebo_ata6_sit",
idle = 0,
prior = 10, state = {0},
-- online = true,
in_rest = "", out_rest = "",
position_threshold = 400
}
table.insert(sj, t)
t = { section = "logic@ex_nebo_ata7_sit",
idle = 0,
prior = 10, state = {0},
-- online = true,
in_rest = "", out_rest = "",
position_threshold = 400
}
table.insert(sj, t)
t = { section = "logic@ex_nebo_ata8_sit",
idle = 0,
prior = 10, state = {0},
-- online = true,
in_rest = "", out_rest = "",
position_threshold = 400
}
table.insert(sj, t)

end


Далее после function load_states(gname, type)

if type == "marsh_exit_nebo" then
return function(gulag)
return 0
end
end


Далее после function load_ltx(gname, type)
return nil
end

function checkStalker(npc_community, gulag_type, npc_rank, se_obj)


if gulag_type == "marsh_exit_nebo" then
return npc_community == "killer"-- гулаг наймов
end


2)В misc конфиг для данного гулага

------------------------------------ФРИЦЫ НА БОЛОТАХ-----------------------------------
[logic@ex_nebo_ata1_sit]
active = kamp@ex_nebo_ata1_sit -- активна схема сидячего

[kamp@ex_nebo_ata1_sit]
center_point = to_camp_center -- центр Второго костра
path_walk = to_camp_center_task
danger = danger_condition@esc_saha -- Первый фриц у второго костра

[logic@ex_nebo_ata2_sit]
active = kamp@ex_nebo_ata2_sit

[kamp@ex_nebo_ata2_sit]
center_point = to_camp_center
path_walk = to_camp_center_task
danger = danger_condition@esc_saha -- Второй фриц у второго костра

[logic@ex_nebo_ata3_sit]
active = kamp@ex_nebo_ata3_sit

[kamp@ex_nebo_ata3_sit]
center_point = camp_center -- центр первого костра
path_walk = camp_center_task
danger = danger_condition@esc_saha -- Третий фриц у первого костра

[logic@ex_nebo_ata4_sit]
active = kamp@ex_nebo_ata4_sit

[kamp@ex_nebo_ata4_sit]
center_point = camp_center
path_walk = camp_center_task
danger = danger_condition@esc_saha -- 4-й фриц у первого костра

[logic@ex_nebo_ata5_sit]
active = walker@ex_nebo_ata5_sit

[walker@ex_nebo_ata5_sit]
path_walk = nats_walk --где стоит
path_look = nats_look -- куда смотрит
danger = danger_condition@esc_saha --5-й стоячий у стены

[logic@ex_nebo_ata6_sit]
active = walker@ex_nebo_ata6_sit

[walker@ex_nebo_ata6_sit]
path_walk = nats_walk1
path_look = nats_look1
danger = danger_condition@esc_saha --6-й ходячий вокруг хаты

[logic@ex_nebo_ata7_sit]
active = kamp@ex_nebo_ata7_sit

[kamp@ex_nebo_ata7_sit]
center_point = to_camp_center
path_walk = to_camp_center_task
danger = danger_condition@esc_saha -- 7-й фриц у второго костра

[logic@ex_nebo_ata8_sit]
active = kamp@ex_nebo_ata8_sit

[kamp@ex_nebo_ata8_sit]
center_point = camp_center
path_walk = camp_center_task
danger = danger_condition@esc_saha -- 8-й фриц у первого костра

[danger_condition@esc_saha]
ignore_distance = 0


Далее, если не понятно то, что один стоит, а другой бродит вокруг хаты, а пути почти одинаковые, то поясняю.

path_walk = nats_walk
path_look = nats_look ---- этот бродит вокруг хаты

path_walk = nats_walk1
path_look = nats_look1 --- этот стоит на месте и смотрит в бинокль

В all.spawn way_ путь первого, который стоит. Путь в смартах отличается от обычных путей, т.е. должен вначале указываться смарт, и следом путь. Если наш смарт называется marsh_exit_nebo, а путь стоячего nats_walk1, то пишется так:

[marsh_exit_nebo_nats_look1]
points = p0
p0:name = wp00|a=binocular --смотрит в бинокль
p0:flags = 0x1
p0:position = 502.689740966797,3.0603508605957,-169.993349365234
p0:game_vertex_id = 3563
p0:level_vertex_id = 481813


[marsh_exit_nebo_nats_walk1]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = 502.417740966797,3.1363508605957,-169.967349365234
p0:game_vertex_id = 3563
p0:level_vertex_id = 481813


Далее патрульный который бродит вокруг хаты

[marsh_exit_nebo_nats_look]
points = p0,p1,p2
p0:name = wp00|t=7000---время задержки в данной точке и сдедует дальше
p0:flags = 0x1
p0:position = 509.380817871094,2.1504147644043,-166.465968017578
p0:game_vertex_id = 3563
p0:level_vertex_id = 486673

p1:name = wp01
p1:flags = 0x1
p1:position = 485.994863769531,2.5796993255615,-182.09411340332
p1:game_vertex_id = 3561
p1:level_vertex_id = 468420
p1:links = p2(1)

p2:name = wp02
p2:flags = 0x1
p2:position = 509.375817871094,2.1504147644043,-165.865968017578
p2:game_vertex_id = 3563
p2:level_vertex_id = 486674
p2:links = p0(1)

[marsh_exit_nebo_nats_walk]
points = p0,p1,p2,p3,p4
p0:name = wp00
p0:flags = 0x1
p0:position = 509.375817871094,2.1504147644043,-165.865968017578
p0:game_vertex_id = 3563
p0:level_vertex_id = 486674
p0:links = p1(1)

p1:name = wp01|a=patrol
p1:position = 508.637756591797,2.5238724060059,-183.325256347656
p1:game_vertex_id = 3563
p1:level_vertex_id = 486141
p1:links = p0(1),p2(1)

p2:name = wp02|a=patrol
p2:position = 485.994863769531,2.5796993255615,-182.09411340332
p2:game_vertex_id = 3561
p2:level_vertex_id = 468420
p2:links = p1(1),p3(1)

p3:name = wp03|a=patrol
p3:position = 492.256863769531,2.8796993255615,-161.78711340332
p3:game_vertex_id = 3561
p3:level_vertex_id = 473666
p3:links = p2(1),p4(1)

p4:name = wp04|a=patrol
p4:flags = 0x1
p4:position = 509.375817871094,2.1504147644043,-165.865968017578
p4:game_vertex_id = 3563
p4:level_vertex_id = 486674
p4:links = p3(1)


Центр первого костра

[marsh_exit_nebo_camp_center]
points = p0
p0:name = wp00
p0:position = 506.758569824219,2.967969786643982,-174.2910276489258
p0:game_vertex_id = 3563
p0:level_vertex_id = 485172


[marsh_exit_nebo_camp_center_task]
points = p0
p0:name = wp00
p0:position = 506.858569824219,2.967969786643982,-174.2910276489258
p0:game_vertex_id = 3563
p0:level_vertex_id = 485172


Центр второго костра

[marsh_exit_nebo_to_camp_center]
points = p0
p0:name = wp00
p0:position = 507.265569824219,2.545969786643982,-187.1270276489258
p0:game_vertex_id = 3563
p0:level_vertex_id = 485154

[marsh_exit_nebo_to_camp_center_task]
points = p0
p0:name = wp00
p0:position = 507.665569824219,2.545969786643982,-187.1270276489258
p0:game_vertex_id = 3563
p0:level_vertex_id = 485154


3) Сам смарт в all.spaw alife_

[9482]
; cse_abstract properties
section_name = smart_terrain
name = marsh_exit_nebo
position = 508.512145996094,2.16904640197754,-169.006378173828
direction = -0.15990361571312,0,-0.987132608890533

; cse_alife_object properties
game_vertex_id = 3563
distance = 3
level_vertex_id = 485668
object_flags = 0xffffff3e
custom_data = < [smart_terrain]
type = marsh_exit_nebo
capacity = 8 ---вместимость 8 чел
communities = killer -- группировка наёмники
groups = 2
END

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

; cse_alife_space_restrictor properties
restrictor_type = 3

; se_smart_terrain properties


Далее создал точку респавна.

[9483]
; cse_abstract properties
section_name = respawn
name = marsh_nats_respawn
position = 508.977958496094,2.514858271598816,-179.626536376953
direction = -0.999905347824097,0,-0.0137587459757924

; cse_alife_object properties
game_vertex_id = 3563
distance = 7
level_vertex_id = 485652
object_flags = 0xffffff3e
custom_data = < [respawn]
respawn_section = marsh_nats_respawn_1, marsh_nats_respawn_2 , marsh_nats_respawn_3, marsh_nats_respawn_4
;max_count = 17
;min_count = 3
max_spawn = 8
idle_spawn = medium
END

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

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_respawn properties


Обязательно должны быть прописаны в creatures/spawn_sections marsh_nats_respawn_1 и т.д.

Напоследок приведу пример спавна одного нациста с начала игры в alife_

[9484]
; cse_abstract properties
section_name = stalker
name = marsh_nats1
position = 502.417740966797,3.1363508605957,-169.967349365234
direction = 0.328299105167389,0,-0.944573819637299

; cse_alife_trader_abstract properties
money = 5000
character_profile = nats

; cse_alife_object properties
game_vertex_id = 3563
distance = 9.80000019073486
level_vertex_id = 481813
object_flags = 0xfffffff3
custom_data = < [smart_terrains]
marsh_exit_nebo = true

END

; cse_visual properties

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 5
g_group = 0
health = 3
dynamic_out_restrictions =
dynamic_in_restrictions =

upd:health = 3
upd:timestamp = 0
upd:creature_flags = 0
upd:position = 502.417740966797,3.1363508605957,-169.967349365234
upd:o_model = 0
upd:o_torso = 0.328299105167389,0,-0.944573819637299
upd:g_team = 0
upd:g_squad = 5
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,2,0,0,0
predicate4 = 0,1,1,1

; cse_ph_skeleton properties

upd:start_dialog =

; se_stalker properties


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

dromundus По твоему вылету: Если ты скопировал респавн с соли, то посмотри, записал ли с респавна неписей в creatures/spawn_sections? Гласит об отсутствии характера, либо класса.

добавлено спустя 44 минут


Как сделать так, чтобы после взятия определенного квеста НПС вместе со своими уникальными товарищами побежал выносить других? (Что-то вроде долговцев на Милитари)


Сейчас расскажу как я сделал вроде напарника, с которым побежал с кордона на свалку. (Сын в поисках отца)

1) Создаём своего сталкера на кордоне, который сидит у костра. В all.spawn в alife_l01_escape.ltx
создали секцию сталкера Димона

[1929]
; cse_abstract properties
section_name = stalker
name = esc_dima
position = -185.057876586914,-20.2140598297119,-163.737228393555
direction = 0,0,0

; cse_alife_trader_abstract properties
money = 3456
character_profile = esc_dima -нпс профиль и характер айди должны быть вписаны в соотв. файлах

; cse_alife_object properties
game_vertex_id = 52
distance = 10.3000001907349
level_vertex_id = 66219
object_flags = 0xffffffff
custom_data = <
[smart_terrains]
none = true ----смарт_террейн отсутствует и ниже идёт логика его.

[logic]
cfg = scripts\dimak\esc\esc_dima.ltx

END
story_id = 15063

; cse_visual properties
visual_name = actors\monolit\stalker_mo_elite

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

upd:health = 2
upd:timestamp = 0xffffffff
upd:creature_flags = 0xff
upd:position = -185.057876586914,-20.2140598297119,-163.737228393555
upd:o_model = 0
upd:o_torso = 0,0,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 = 2,2,0,2,2
predicate4 = 1,0,1,0

; cse_ph_skeleton properties

upd:start_dialog =

; se_stalker properties


Логику его вывели по данному пути и создали файл ltx Это нужно для того, чтобы можно было редактировать его логику без НИ. Если же логика зашита в all.spawn, то редактирование без НИ не возможно.

2) В файле ltx сделал такую логику


[logic]
active = kamp -- активное сидячее сост.
danger = danger_ignore

[kamp]
center_point = rebyta_smertniki_camp_center
path_walk = rebyta_smertniki_camp_center_task -- центр этого костра, который я унаследовал ещё с соли, там где собирается группа Тирекса.
meet = meet -- диалог с ГГ будет
radius = 2.2
on_info = {+esc_zamery_poshli} walker после выдачи инфопоршня в диалоге он побежал в путь, который на выходе на свалку.


[walker]
path_walk = esc_dima_walk
path_look = esc_dima_look-----путь, перед выходом
def_state_moving = run
meet = no_meet -------бежит и диалога не будет, чтобы не морозился
team = followers
radius = 1
on_info = {+esc_dima_mesto} remark --после того как прибежал, выдается инфопоршень и переходит в схему ремарк анимация

[remark]
anim = probe_2 --анимация, когда Круглов или семёнов бежит делать замеры.

no_move = true
target = nil ------смотрит в ту сторону, где указан look
meet = no_meet
radius = 2.2
on_info = {+lost_marsh_info}walker1 -- после выдачи инфопоршня проходит чуть вперёд

[walker1]
path_walk = esc_dima_walk
path_look = esc_dima_look
radius = 1

[meet]
use = true
use_wpn = true
meet_talk_enabled = true

[danger_ignore]
ignore_distance = 0


Теперь спросите: Как выдались инфопоршни без диалога? on_info = {+esc_dima_mesto}
lost_marsh_info

Первый инфопоршень выдался спейс рестриктором, который вызвал скриптовым методом у него же в диалоге перед уходом с деревни. "НПС в зоне" В диалоге я запустил сразу два рестриктора

1-й рестриктор НПС в зоне выдал инфопоршн esc_dima_mesto, а у второго рестриктора условие, т.е. он начинает действовать после выдачи данного инфопоршня.

Логика второго рестриктора.

[logic]
active = sr_idle

[sr_idle]
on_info = {+esc_dima_mesto} sr_idle@time
single = true

[sr_idle@time]
on_timer = 12000 | sr_idle@time1 %=braad_test.start_yes=abc.free_playwish=lesnik_dialog.na_gar_sms1%
single = true

[sr_idle@time1]
on_timer = 12000 | sr_idle@time2 %+lost_marsh_info=braad_test.gar_dima_mesto_restr=lesnik_dialog.na_gar_sms2%
single = true

[sr_idle@time2]
on_timer = 15000 | sr_idle@nil %+hos_rad_info=braad_test.gar_per_restr=lesnik_dialog.na_gar_sms3=lesnik_dialog.del_esc_dima%
single = true

[sr_idle@nil]


В данной логике выполняется по таймеру куча функций - это постпроцессы, функции сообщений, и два инфопоршня на скриптовые переходы, т.к. стандартные я удалил. В целом Димон добегает до места, достает прибор, показывает рукой, появляется переход, проходит вперёд и удаляется в переходе с выведенными сообщениями.

Ещё за условие в логике рестрикторов.

on_info = {+esc_dima_mesto} sr_idle@time -- значит рестриктор сработает сразу после выдачи инфопоршня на данной локе, где появися ГГ.

on_actor_inside = {+esc_dima_mesto} sr_idle@time -- рестриктор сработает после выдачи инфопоршня тогда, когда ГГ попадёт в его зону.

отредактировал(а) dimak: 01-12-2011 14:14 GMT3 час.

Как здорово быть тёртым сталкером! Не бояться каждого шороха, оружия не носить с собой много!
dimak
    
Посты: 1493
Откуда: Архангельск
Возраст: 52
01-12-2011 16:14 GMT3 час. #1548801   
Dark Scripter Это мы знаем. Я лишь предложил более простой способ, а без проверки АИ сетки думаю на основных локах должны знать, где кончается АИ сетка. За ограждения не следует ползать и прописывать там пути. Если прописал, то действительно непись туда не пойдёт. Так же кусты и тем более деревья.

Если к примеру взять в ДН первый домик, что с дороги налево, то там АИ сетка на пол-дома, т.к. новички спят в нём. В остальных взяты края, веранды. К примеру спальня Шустрого.

отредактировал(а) dimak: 01-12-2011 16:50 GMT3 час.

Как здорово быть тёртым сталкером! Не бояться каждого шороха, оружия не носить с собой много!
losiara
    
Посты: 549
Откуда: Откуда то оттуда...
Возраст: 51
01-12-2011 19:22 GMT3 час. #1548850   
Dark Scripter, dimak
Привет господа!
Зачем вы спорите, самая лучшая программа для снятия координат это - 34_Position + Sdata, + мобильный телепортер, очень удобно, кроме того можно и свои точки добавлять для телепортации...:-)
Устанавливается опять же как gamedata уже готовая!!!

Относительно знаний современных жителей портала какой то там "АИ сетки..." под БОЛЬШИМ вопросом, dimak почитай их посты, те кот. с ответами, а не вопросами... там понятно по знаниям. :-)


Да кстати, 34_Position + Sdata проверяет и валидность true\false, для снятия координат!


Внатуре пацаны, гаси их...
Как сделать НПС бессмертным...
Логика в ТЧ!
Здесь нарисована цифра четыре "8", если вы видите восемь, то вам нужно к нам...
врач-психиатр, дерматолого-терапевто-окулист!!!
strelokOG78
    
Посты: 412
Откуда: Калуга
Возраст: 25
01-12-2011 19:30 GMT3 час. #1548853   
Как менять иконки вещей?
И можно сделать ,чтобы кожаная куртка когда одеваешь выглядела как экзоскелет?


Автоваз непобедим! Склеим,скрутим,полетим!
Strchi
    
Посты: 2581
Откуда: Уфа-Челябинск-Фритаун
Возраст:
01-12-2011 19:55 GMT3 час. #1548862   
strelokOG78 иконки в textures\ui\ui_equipment.dds визуалы курток от третьего лица в конфиге в Visual (config\misc\outfit.ltx) а для НПС в профилях То есть config\gameplay\character_desc_название локи где будешь менять


Монарх
    
Посты: 42
Откуда:
Возраст:
01-12-2011 21:02 GMT3 час. #1548883   
Что это такое и как это исправить?
001B:4FE0C886 d3d9.dll
001B:4FDF7D0C d3d9.dll
001B:0048F4B2 XR_3DA.exe, SimulatorStates::record()
001B:4FDAFA00 d3d9.dl

Есть предположение, что это связано с новым НПС.


Сталкер - это не куча стволов и костюмов... Сталкер - это душа...
Strchi
    
Посты: 2581
Откуда: Уфа-Челябинск-Фритаун
Возраст:
01-12-2011 21:06 GMT3 час. #1548885   
Монарх О_о это что то с экзещником)) или с dll в игре))) пробни перестановить directX и еще ты ставил NoCd\NoDvD или патч перед ошибкой? заменял или трогал вобще чтонить в папке бин?


Монарх
    
Посты: 42
Откуда:
Возраст:
01-12-2011 21:14 GMT3 час. #1548889   
В бине я ниче не трогал. Только создал нпс.

добавлено спустя 38 секунд

Я поставил позишен информер
Это произошло после того как я записал нпс новые координаты.

добавлено спустя 3 минут

Предыдущий баг исправил, но теперь вот это:
FATAL ERROR

[error]Expression : fatal error
[error]Function : CScriptEngine::lua_error
[error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line : 73
[error]Description :
[error]Arguments : LUA error: ...g\s.t.a.l.k.e.r\gamedata\scripts\xr_motivator.script:489: attempt to concatenate field 'watchdog' (a nil value)


stack trace:

отредактировал(а) Монарх: 01-12-2011 21:19 GMT3 час.

Сталкер - это не куча стволов и костюмов... Сталкер - это душа...
dimak
    
Посты: 1493
Откуда: Архангельск
Возраст: 52
01-12-2011 22:47 GMT3 час. #1548904   
Монарх У тебя походу основа мода АМК так я понял если верить логу.


Как здорово быть тёртым сталкером! Не бояться каждого шороха, оружия не носить с собой много!
Монарх
    
Посты: 42
Откуда:
Возраст:
01-12-2011 22:54 GMT3 час. #1548909   
Неа. Lost World Requital. Я собираюсь аддон к нему сделать.

Скажите в каком порядке координаты НПСу записывать. Ну там в ФАКе в скобках что сначала в одной скобке и что за скобкой? Я имею ввиду х,у,z или z,x,y, вот так


Сталкер - это не куча стволов и костюмов... Сталкер - это душа...
losiara
    
Посты: 549
Откуда: Откуда то оттуда...
Возраст: 51
01-12-2011 23:05 GMT3 час. #1548913   
Dark Scripter
Я думаю, что такие тонкости програмирования и разбор лога вылета Монарх не нужны, он хочет узнать откуда его ошибка???
И получить ответ например: из - за ошибки в скрипте с названием "watchdog", ну там или отсутствием локальной переменной с таким именем и т. д.
На самом деле кто его знает...:-) Особенно если коды пишет кто то другой...
Монарх если ошибка в скриптах, то первое что ты сможешь сделать, а может даже и исправить, это проверить свой скрипт программой: "script Syntax Checker" можно найти в Яндексе или Гугле. Правда в моем например варианте, он проверяет только синтаксис хотя GUN12 и обещал его доработать, но такой версии я не встречал пока... Однако все же хорошо!!!

добавлено спустя 1 минуту

Dark Scripter
Ты зачем меня с nil сравнил, хотя бы с 0 уже не так обидно:-(
:lol)

отредактировал(а) losiara: 01-12-2011 23:08 GMT3 час.

Внатуре пацаны, гаси их...
Как сделать НПС бессмертным...
Логика в ТЧ!
Здесь нарисована цифра четыре "8", если вы видите восемь, то вам нужно к нам...
врач-психиатр, дерматолого-терапевто-окулист!!!
losiara
    
Посты: 549
Откуда: Откуда то оттуда...
Возраст: 51
01-12-2011 23:30 GMT3 час. #1548917   
Dark Scripter
Относительно 2 абзаца в ТОЧКУ!!! И к сожалению не только на этом портале! Везде одно и тоже, artos постоянно возмущался на этот счет. Да и "копать\обсуждать" ведь тоже не абы с кем можно, человек должен разбираться в програмировании ну и любить Сталкер разумеется...

Ну а по 1 абзацу кто же спорит, Сталкер на lua и писан, хотя и кастрированном...:-)


Внатуре пацаны, гаси их...
Как сделать НПС бессмертным...
Логика в ТЧ!
Здесь нарисована цифра четыре "8", если вы видите восемь, то вам нужно к нам...
врач-психиатр, дерматолого-терапевто-окулист!!!
Монарх
    
Посты: 42
Откуда:
Возраст:
01-12-2011 23:51 GMT3 час. #1548922   
Именно. Спасибо всем!


Сталкер - это не куча стволов и костюмов... Сталкер - это душа...
Монарх
    
Посты: 42
Откуда:
Возраст:
03-12-2011 00:42 GMT3 час. #1549113   
Ааааа!!!! Да чтоб его! НПС сведет меня в могилу! Вот че ему не нравится, а?



FATAL ERROR

[error]Expression : fatal error
[error]Function : CInifile::Load
[error]File : E:\stalker\sources\trunk\xrCore\Xr_ini.cpp
[error]Line : 175
[error]Description :
[error]Arguments : Duplicate section 'arena_enemy' found.


stack trace:


Сталкер - это не куча стволов и костюмов... Сталкер - это душа...
мирмерек
    
Посты: 18
Откуда:
Возраст:
03-12-2011 02:03 GMT3 час. #1549123   
Подскажите как сделать разные текстуры для обычного и уникального оружия. Скажем, чтобы Гроза обычная была с деревянной рукояткой, , а Гроза 5.45 с пластиковой ?

Как сделать лимит на скушанную еду? Типа ГГ схавал три банки тушенки а потом у него начался понос и стало уменьшаться здоровье? И больше есть ниче не хочет.


Буйный Философ.
TheDoktor
    
Посты: 3814
Откуда: Керчь
Возраст: 37
03-12-2011 02:58 GMT3 час. #1549129   
мирмерек берёшь модель нужного ствола, копируешь её, меняешь в ней название текстуры и название самой модели, создаёшь новую текстуру, дублируешь ствол по параметрам, что бы просто отличался названием модели, по принципу уников... Как то так. ;-)


Я – хозяин своей судьбы, но только судьба знает, где закончится мой путь.

REKSID1
    
Посты: 177
Откуда: воронеж
Возраст:
03-12-2011 10:19 GMT3 час. #1549158   
пацаны помогите вот у меня есть 1 мод и я делаю ещё свой!! ВОТ где загрузочный экран а за ним есть картинка как мне её заменить????? откуд вытащить из того мода и куда вставить в мой?


Priboj37
    
Посты: 458
Откуда: Симферополь
Возраст:
03-12-2011 10:24 GMT3 час. #1549161   
мирмерек Конфиг aктор и тушeнки смотри.

добавлено спустя 7 минут

REKSID1 B тeкстурaх. ---- ps. Bы хоть нa вики были, моды они дeлaют!!!

отредактировал(а) Priboj37: 03-12-2011 10:32 GMT3 час.

"Стaрый в дeлe"
REKSID1
    
Посты: 177
Откуда: воронеж
Возраст:
03-12-2011 10:34 GMT3 час. #1549166   
Bы хоть нa вики были?
я не совсем понял щас про что вы

добавлено спустя 1 минуту

в какой папке в текстурах

добавлено спустя 4 минут

и как называется файл

отредактировал(а) REKSID1: 03-12-2011 10:40 GMT3 час.

DmBorn
    
Посты: 2007
Откуда: Москва
Возраст: 28
03-12-2011 11:22 GMT3 час. #1549179   
REKSID1
В папке ui
Называется ui_load примерно




Форумы Архив » Свалка Вопросы и ответы (старое, по 12.01.2012)


Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2025 «Stalker-Portal.ru»