Все посты %s в %S - AMK Team
Перейти к контенту

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


Halford

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

Azaxul

Редактированием функций в диалогах этих неписей!!!

Жизнь следует измерять поступками, а не временем...

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


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

Разобрался я со своей проблемой, дело было в том, что в качестве секций для респавна в all.spawn, я указал секции сталкеров с уже существующей логикой:

 

[yan_stalker_1]:stalker
$spawn =  "respawn\yan_stalker_1"
character_profile = zone_novice
spec_rank = novice
community = zone
custom_data = scripts\moy_logic\yan_stalker_1.ltx - вот здесь!!!
 
Игра плодила мне этих неписей и они пытались по двое и трое выполнять одну и ту же работу.
Создал секции для респавна без custom_data
Надо учесть на будущее!!!

Жизнь следует измерять поступками, а не временем...

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


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

Добрый вечер господа!!!

Вот уже сколько времени не могу понять в чем проблема:

Сделал сценку на Кордоне между ГГ, Волком и сталкером из группировки Бандиты-зомбированные. Задание дает Волк типа поговорить с бандюками что бы не приходили в лагерь новичков. Бандюк в обмен на это предлагает ГГ принести ноутбук который находится у убиенног братка на локации!!!

Создал секцию братка в all.spawn:

[875]


; cse_abstract properties
section_name = stalker
name = stalker_bandit_esc_kvest
position = -15.0970001220703,2.72000002861023,66.9509963989258
direction = 0,0,0

; cse_alife_trader_abstract properties
money = 5000
character_profile = stalker_bandit_esc_kvest

; cse_alife_object properties
game_vertex_id = 88
distance = 9.80000019073486
level_vertex_id = 261717
object_flags = 0xffffffbf
custom_data = <<END

[spawner]
cond = {+stalker_bandit_started}

[logic]
cfg = scripts\moy_logic\esc_bandit_kvest.ltx
END
story_id = 5500

; cse_visual properties
visual_name = actors\bandit\stalker_bandit_2

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

upd:health = 1
upd:timestamp = 0x617a6b75
upd:creature_flags = 0x6b
upd:position = -15.0970001220703,2.72000002861023,66.9509963989258
upd:o_model = 0
upd:o_torso = 0.00316426996141672,0.062321275472641,0
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 5

; 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,1,1
predicate4 = 0,2,0,2

; cse_ph_skeleton properties

upd:start_dialog =

; se_stalker properties

 

А это логика братка:

[smart_terrains]
none = true

[logic]
active = walker@bandit_kvest
combat_ignore = combat_ignore@bandit_kvest
on_hit = hit@bandit_kvest
on_death = death@bandit_kvest

[walker@bandit_kvest]
path_walk = bandit_kvest_walk
path_look = bandit_kvest_look
combat_ignore_cond = {-bandit_kvest =fighting_actor}
on_actor_dist_le_nvis = 10 | remark@bandit_kvest
meet = meet@bandit_kvest

[remark@bandit_kvest]
no_move = true
target = actor
combat_ignore_cond = {-bandit_kvest =fighting_actor}
on_actor_dist_ge_nvis = 10 | walker@bandit_kvest
meet = meet@bandit_kvest

[meet@bandit_kvest]
meet_enabled = true
meet_talk_enabled = true
meet_state = 20| hello@talk_hello| 15| wait@wait| 10| ward@wait
meet_state_wpn = 30| hello@talk_hello| 20| threat@threat_weap
victim = 30| actor
victim_wpn = 30| actor
use = true
use_wpn = true


[combat_ignore@bandit_kvest]
combat_ignore_cond = {-bandit_kvest =fighting_actor}

[hit@bandit_kvest]
on_info = {=hit_by_actor} %+bandit_kvest%

[death@bandit_kvest]
on_info = {=killed_by_actor} %+bandit_kvest +stalker_bandit_esc_kvest%

 

Это логика братков-помощников в квесте:

[smart_terrains]
none = true

[spawner]
cond = {+stalker_bandit_started}

[logic]
active = walker@bandit_kvest1
combat_ignore = combat_ignore@bandit_kvest1
on_hit = hit@bandit_kvest1
on_death = death@bandit_kvest1

[walker@bandit_kvest1]
path_walk = bandit_kvest_1_walk
path_look = bandit_kvest_1_look
combat_ignore_cond = {-bandit_kvest =fighting_actor}

[combat_ignore@bandit_kvest1]
combat_ignore_cond = {-bandit_kvest =fighting_actor}

[hit@bandit_kvest1]
on_info = {=hit_by_actor} %+bandit_kvest%

[death@bandit_kvest1]
on_info = {=killed_by_actor} %+bandit_kvest%

 

В чем собственно вопрос??? Разом квест запускается, отрабатывается без проблем. При новом запуске игры главный браток может самостоятельно покинуть место спавна и пойти гулять по локации, при виде ГГ начинает в него стрелять хотя и не должен если ГГ не нанес ему или его помощникам хита... Ну и соот. диалоги с ним не активируются. Бойцы же, его помощники при этом остаются на месте и свою логику отрабатывают. В чем может быть проблема???

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

Жизнь следует измерять поступками, а не временем...

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


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

Оказалось что дело было в этом:

[smart_terrains]
none = true

 

Я прописал это в логике ltx. файла, а надо было в секции самого непися в all.spawn. 

А помощники да через скрипт спавнятся с ними проблем нет...

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

Жизнь следует измерять поступками, а не временем...

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


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

Добрый день!!!

Не подскажите названия инфопоршней выдаваемых по отключении установок в х-18, х-16 и бункере???

Жизнь следует измерять поступками, а не временем...

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


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

Подскажите пожалуйста, если я создам в all.spawn новый файл "alife..." зарегистрирую в all, можно ли будет вносить в него все новые секции которые я создам рестрикторы, сталкеров и т. д. со всех локаций или нет, необходимо использовать именно те, на локакции которых будет происходить спавн???

Спасибо!

  • Спасибо 1

Жизнь следует измерять поступками, а не временем...

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


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

 

   BFG это для систематизации, что бы все созданное мною было в одном месте как то так... пыс-ое же в родных файлах. Ну раз АСДС в любом случае распихивает по вертексам тогда смысла нет действительно...

 

Жизнь следует измерять поступками, а не временем...

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


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

Добрый день!!!

В свое время кто то с форума давал ссылочку здесь же на мини мод позволяющий выводить информацию он-лайн (во время игры) по выдаваемым инфопоршням в игре, не вспомню конечно же кто, так бы у него и спросил, не подскажите может кто знает.

Очень удобная вещь! СПАСИБО!

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

Жизнь следует измерять поступками, а не временем...

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


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

Подскажите господа как называется секция в all.spawn бочки красного цвета кот. при нанесении хита взрывается, типа с горючим???

И еще каким образом например на Радаре сделана сценка когда монолитовцы (в чистой игре) сбрасывают эти бочки на ГГ при приближении???

СПАСИБО!

Жизнь следует измерять поступками, а не временем...

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


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

Сделал бочку все получилось, прописал логику в рестрикторе типа:

 

[logic]
active = sr_idle

[sr_idle]
on_actor_inside = {-esc_propusk_done} sr_idle1 %=hit_obj(7018:barrel:0.02:1500)%

 

Бочка летит при заходе в рестриктор, но направление ее хаотично, как можно задать вектор полета (куда покатится)???

Нужно соот. в сторону ГГ.

Есть такая конструкция "hit_src=npc:position())" - правильно я понял что при прописывании сего хит будет производится из определенной точки???

Жизнь следует измерять поступками, а не временем...

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


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

Добрый вечер!!! 

Раньше никогда не делал, пришлось, создал секцию в all.spawn ящика:

 

[4571]
; cse_abstract properties
section_name = inventory_box
name = inventory_box_yan_moy
position = 110.036,1.332,-4.478
direction = 0,2.67659902572632,0

; cse_alife_object properties
game_vertex_id = 1518
distance = 0
level_vertex_id = 98361
object_flags = 0xffffff3f
custom_data = <[spawn]
medkit_army = 3
bandage = 2
antirad = 2
ammo_5.45x39_ap = 3
scientific_exoskeleton
outfit_bandit_m1
grenade_f1 = 2
af_dummy_pellicle
af_drops
af_devil_eye
wpn_abakan_m1
END
story_id = 7031

; cse_visual properties
visual_name = physics\equipment_cache\equipment_box_01_case


Фактически он невидим, если пошарить в этом месте, тогда открывается и хабар есть забрать можно, story_id работает метку в квесте повесил, на минимапе появляется, а сам ящик невидим как поправить???

Жизнь следует измерять поступками, а не временем...

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


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

сменил на этот все равно невидим, "visual_name = physics\equipment_cache\equipment_seif_01_case"

Какой поставить что бы видимый был??? Все равно в принципе сейф, ящик или рюкзак...

Жизнь следует измерять поступками, а не временем...

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


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

Добрый вечер!

Понадобилось мне НПС сделать враждебным, осуществил это нехитрым способом:

function propusk_enemy (actor, npc)
local propusk = level_object_by_sid(7000)
if propusk then
    propusk:set_relation (game_object.enemy, actor)
    end
end

Очень хорошо!!! А есть ли возможность осуществить то же самое, но по профильному имени??? Вроде бы видел когда то, но где не вспомню никак... Может в моде каком, оригинальные скрипты ответ не дали!!!

Что то типа такого:

function zadnica_minus (actor, npc)
local zadnica = ........("esc_zadnica") -- вот тут???
if zadnica then
    zadnica.health = -0.9
    end
end

В данном случае мы здоровье высасываем, я для примера привел!

Или такой возможности все таки нет? В принципе можно и по СИД-у работать, но это надо присваивать дополнительно, в то время как профили есть у всех и каждого!!!

СПАСИБО!!!

Жизнь следует измерять поступками, а не временем...

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


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

Добрый день!!!

Подскажите в каких файлах необходимо прописать задание для нового квеста, что бы оно отображалось в ПДА  "детальная информация о задании" вот в этом подразделе???

Спасибо!

Прошу не отсылать меня читать статьи, у меня прекрасно получается создавать новые квесты разной сложности, мне нужно только то о чем я спросил!!! :)

Изменено пользователем losiara
  • Сомнительно 1

Жизнь следует измерять поступками, а не временем...

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


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

Если Egor4ikModMaker делает "КВЕСТ", тогда зачем заморачиваться и ставить метки скриптом (а потом еще и удалять их)??? Можно и в самом квесте прописать на него метку...

Вот его творение:

<game_task id="kill_ses">
		<title>Убить СТАЛКЕРА</title>
		<objective>
			<icon>ui_iconsNpc_stalker_bandit_borov</icon>
			<infoportion_complete>kill_ses_done</infoportion_complete>
			<map_location_type hint="esc_andrew">blue_location</map_location_type> -- метка на карте
                        <object_story_id>esc_andrew</object_story_id> -- story id непися (при условии если правильно все сделал)
		</objective>
		<objective>
			<text>Убить Сэса</text>
			<infoportion_complete>kill_ses_done</infoportion_complete>
			<map_location_type hint="esc_andrew">blue_location</map_location_type>
                        <object_story_id>esc_andrew</object_story_id>
		</objective>
	</game_task>

"esc_andrew" - метка итак должна быть зачем ее еще вешать?

... Я конечно не ведаю сего гениального творения, у меня вопрос небольшой, а почему в обоих случаях фигурирует "esc_andrew"??? 

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

Жизнь следует измерять поступками, а не временем...

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


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

Я скачал архив откуда и взял собственно твое творение...

Здесь получается, что метка указует и в первом и во-втором абзаце на одного и того же непися  "esc_andrew", не знаю, может так и задумано это только тебе ведомо.

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

..................

<map_location_type hint="escape_trader">blue_location</map_location_type> -- метка на Сидоровича
<object_story_id>Escape_Trader</object_story_id> --story id Сидоровича

..................

.................

<map_location_type hint="esc_andrew">blue_location</map_location_type> -- метка на карте
<object_story_id>esc_andrew</object_story_id> -- story id непися 

.................

 

Должно получиться что то типа: Пришел ГГ к Сидоровичу (или любому другому персу), взял задание на убиение невинного парня - сталкера по имени "....." - квест принят - метка повесилась на НПС. (теперь и на минимапе он будет виден "помечен".) Завалил парня сталкера - метка на торговце потому что квест переключается по инфопоршню (подзадание выполнилось), сдал задание - все подтерлось, все метки исчезли с карты. Инфопоршень выдается в логике НПС например по полю on_death = +инфопоршень(твое название). В принципе вариантов масса как сделать квест, все зависит от фантазии мододела. Проще всего по уже существующим квестам подсмотрев их в соот. файлах.

[100]


; cse_abstract properties
section_name = stalker
name = esc_wolf
position = -210.632614135742,-20.050708770752,-142.461120605469
direction = 0.0445535257458687,-0.000645029998850077,0.0144814234226942

; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_wolf

; cse_alife_object properties
game_vertex_id = 61
distance = 3.5
level_vertex_id = 42599
object_flags = 0xffffffbf
custom_data = <[smart_terrains]
esc_lager = {-agroprom_military_case_have -esc_fanat_spawn}
mil_lager = {+agroprom_military_case_have}, {+esc_fanat_spawn}
END
story_id = 6

; cse_visual properties
visual_name = actors\neytral\stalker_neytral_balon_1

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

upd:health = 2
upd:timestamp = 0x6d6d695f
upd:creature_flags = 0x75
upd:position = -210.632614135742,-20.050708770752,-142.461120605469
upd:o_model = 0
upd:o_torso = -0.000645029998850077,0.0445535257458687,0
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 5

; 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,0
predicate4 = 2,2,1,2

; cse_ph_skeleton properties

upd:start_dialog =

; se_stalker properties

 

Это пример как номер присвоен Волку из оригинала. + прописать это в файле "game_story_ids.ltx" по типу:

; Escape (0-99)
000 = "Escape_blockpost_case"
001 = "Escape_trader_self"
002 = "Escape_Tutorial_Artefact"
003 = "Escape_Trader"
004 = "Escape_tutorial_wounded"
005 = "Escape_stalker_from_raid"
006 = "Escape_novice_lager_volk" ; вот он Волк с номером "6"

Либо НПС скриптовый тогда присвоить id через скрипт.

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

Жизнь следует измерять поступками, а не временем...

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


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

Здесь невозможно все объяснить почитай туторы либо здесь на сайте либо на Вики.

По логике ты намудрил конечно...)))))

Как то так можно сделать:

 

[smart_terrains]
none = true ; это обязательно прописывать или засосет непися по гулаг ненароком.

[logic]
active = walker ;активация схемы валкера
on_death = death@aes_soldier

[walker]
path_walk = aes_soldier_walk_1 ; путь где стоит или ходит НПС
path_look = aes_soldier_look ;направление взгляда НПС
danger = danger_condition ; реакция на опасность
on_actor_dist_le_nvis = 10 | remark ; переход на другую схему по приближении/удалении ГГ
meet = meet@aes_soldier1 ; возможность диалога

[remark]
;no_move = true
anim = salut_free ; анимация
target = nil ; направление взгляда НПС 
on_actor_dist_ge_nvis = 10 | walker
danger = danger_condition
meet = meet@aes_soldier1

[danger_condition]
ignore_distance = 150 ; игнорирование живой опасности в метрах
ignore_distance_corpse = 0 ; игнорирование трупиков в метрах

[meet@aes_soldier1]
meet_enabled = true
meet_talk_enabled = true
use = true
use_wpn = true

 

[death@aes_soldier]

on_info = %+info_monolit_kill% ; в случае смерт НПС выдать инфопоршень с названием info_monolit_kill

 

Это моя логика НПС, названия которые даются через @ этот знак носят произвольный характер - @aes_kakashka назови как хочешь. Для работы со схемой валкера необходимо будет снять координаты местности где будет ходить или стоять НПС. Начинать с ремарка это вообще глупо, схема ремарк служит как бы переходным моментом между другими схемами, используется в связке например от валкера к ремарку и опять к валкеру... Стоит валкер, при приближении к нему ГГ на 10 метров переходит в ремарк (отрабатывает анимки всякие там, базарит, диалоги...), затем при удалении вновь становится валкером.

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

Жизнь следует измерять поступками, а не временем...

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


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

А разве бинокль должен быть виден в инвентаре в принципе??? Его конечно можно и прописать принудительно, но если вот как в оригинале, там вроде бинокли отсутствуют у НПС???

Жизнь следует измерять поступками, а не временем...

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


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

Boyscale - конечно можно, что угодно можно добавить, главное это твое желание...))))) Но так это ведь скрипты переписать нужно.

Для того что бы помочь тебе надобно написать "новый скрипт" либо адаптировать существующий в игре. Не проще ли изменить сюжет таким образом, что бы воспользоваться уже имеющимися заготовками... 

И зачем тебе кстати ВСЕ неписи???))) Ты же все равно только на а-лайфе их отслеживать сможешь, во все другое время они будут оффлайн.

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

Жизнь следует измерять поступками, а не временем...

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


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

Нет не погибает, достаточно обработать m_stalker.ltx и НПС бессмертны. В принципе есть много путей, этот самый простой и действенный!!!

Жизнь следует измерять поступками, а не временем...

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


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

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