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

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


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

Сделать можно все. Но кто это будет делать, и зачем ? То, что делаю я - выложил.

 

Факт то, что ни в одном случае запихнуть без изменений произвольный скрипт в произвольный мод - работать не будет.

А если в скрипте OGSE заменить чтение из конфига на константу, оторвать вызов из скрипта смарттеррейнов и добавить амк-респавнеры - будет скрит солянки.

Ссылка на комментарий

Привет всем! Подскажите как правильно убить левого нпс по сиду.

Видел где-то, не помню где: при спасении шустрого бандюки начинали его мочить. Как это сделать у себя?

Есть нпс-заложник, стреляю в одного из охранников, другой должен мочить нпс-а заложника а не ГГ в первую очередь.

Добавлял всем нпс охранникам вот такое условие в активную логику:

on_info = {=actor_enemy} %=set_enemies(611)%

Где 611 сид нпс-заложника, и нечего, пока все начинают искать ГГ - заложник смывается невредимым.

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

Мой архив

Сталкером не занимаюсь.

Ссылка на комментарий

 

 

%=set_enemies(611)%

А если заменить на kill

Вроде не так давно обсуждали это, если не путаю чего  :blink:

AMD Ryzen 5 2600 \ ASRock B450 PRO 4 \ RTX 2070 Super \ RAM DDR4 16Gb (3400MHz) \ 2 SSD Crucial MX500 (250Gb и 500Gb) \ Windows 10 (2004) x64-bit

%DF%20-%20%C2%F1%EF%FB%F8%EA%E0%20%21.gi

 

Ссылка на комментарий

По перемещению Крота на Свалку. Вроде все сделал, как советовали. Но на Свалку Крот идти не хочет, ошивается в комплексе. Почему?

 

Секция спавна Крота:

; cse_abstract properties


section_name = stalker
name = agr_krot
position = 36.3475799560547, 2.50003337860107, -14.4879312515259
direction = -3.63589037988277e-007, 0, 0
id = 65535
version = 118
script_version = 6

; cse_alife_trader_abstract properties
money = 5000
character_profile = agr_krot

; cse_alife_object properties
game_vertex_id = 663
distance = 9.0999994
level_vertex_id = 274908
object_flags = 0xfffffeff
custom_data = <<END
;[spawner]
;cond = {-agr_find_gunslinger_cache_found}

[logic]
cfg = scripts\agr\agr_krot.ltx

[smart_terrains]
none = {-freeplay}
gar_ost = {+freeplay}

[known_info]
agr_krot_secret_info
END
story_id = 302

; cse_visual properties
visual_name = actors\neytral\stalker_neytral_rukzak_4

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

; cse_alife_monster_abstract properties
equipment_preferences = 0, 1, 0, 2, 2
main_weapon_preferences = 2, 2, 0, 1

; cse_ph_skeleton properties

; se_stalker properties
upd:health = 2
upd:timestamp = 0
upd:creature_flags = 0
upd:position = 36.3475799560547, 2.50003337860107, -14.4879312515259
upd:g_squad = 3
upd:g_group = 1

; cse_alife_human_stalker properties
upd:start_dialog =


 

 

Его логика из чистой игры:

[logic]
active = walker@hold
combat_ignore = combat_ignore
on_death = death

[walker@hold]
path_walk = agr_krot_hold_fake_walk
path_look = agr_krot_hold_fake_look
combat_ignore_cond = {!actor_enemy !fighting_actor}
meet = meet@hold
on_info = {!actor_enemy +agr_krot_skirmish_start} walker@combat
on_info2 = {!actor_enemy +agr_help_stalkers_done} walker@hold2
danger = danger_condition

[walker@hold2]
path_walk = agr_krot_hold_fake_walk
path_look = agr_krot_hold_fake_look
combat_ignore_cond = {!actor_enemy !fighting_actor}
meet = meet@hold
on_info = {!actor_enemy +agr_krot_skirmish_start} walker@combat
on_timer = 30000 |{!actor_enemy} %+agr_krot_skirmish_start%
danger = danger_condition

[meet@hold]
meet_state = 0 | hide_na@speech1
meet_state_wpn = 0 | hide_na@speech1
victim = actor
victim_wpn = actor
use = true
use_wpn = true
meet_dialog = agr_krot_help

[walker@combat]
path_walk = agr_krot_hold_fake_walk
path_look = agr_krot_hold_fake_look
on_info = {!actor_enemy =agr_factory_hold_inactive} %+agr_help_krot_done% walker@wait_after_hold
;on_info = {+agr_help_krot_done +agr_help_stalkers_done} walker@wait_after_hold, {+agr_help_krot_done +agr_help_stalkers_assault_dead} walker@wait_after_hold
meet = meet@no_use
;danger = {+agr_help_krot_done +agr_help_stalkers_assault_dead} danger_condition@combat
danger = danger_condition
combat_ignore_cond = {!actor_enemy !fighting_actor}
on_actor_dist_le = 8 | {!actor_enemy} remark@hold2

[remark@hold2]
anim = guard
snd = agr_krot_fear
target = actor
on_info = {=actor_enemy} walker@combat_2
on_signal = sound_end | walker@combat_2
combat_ignore_cond = {!actor_enemy !fighting_actor}
danger = danger_condition

[walker@combat_2]
path_walk = agr_krot_hold_fake_walk
path_look = agr_krot_hold_fake_look_2
on_info = {=agr_factory_hold_inactive !actor_enemy} %+agr_help_krot_done% walker@wait_after_hold
meet = meet@no_use
danger = danger_condition
combat_ignore_cond = {!actor_enemy !fighting_actor}

[walker@wait_after_hold]
path_walk = agr_krot_hold_walk
path_look = agr_krot_hold_look
meet = no_meet
combat_ignore_cond = {!actor_enemy !fighting_actor}
on_actor_dist_le_nvis = 5 |{!actor_enemy} %+agr_krot_met% remark@thank
on_info = {=actor_enemy -agr_factory_spawn_spetsnaz} %+agr_factory_spawn_spetsnaz%
danger = danger_condition

[meet@wait_after_hold]
meet_state = 10 | hello_wpn@talk_hello
meet_state_wpn = 10 | hello_wpn@talk_hello
victim = 10 | actor
victim_wpn = 10 | actor
use = false
use_wpn = false

[remark@thank]
snd = speech
on_signal = sound_end | %+agr_krot_go_to_well +agr_factory_spawn_spetsnaz% walker@go_to_well
anim = guard
combat_ignore_cond = {!actor_enemy !fighting_actor}
target = actor
danger = danger_condition
on_info = {=actor_enemy} walker@wait_after_hold
meet = no_meet

[walker@go_to_well]
path_walk = agr_krot_to_well_walk
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
on_signal = well | {!actor_enemy} walker@well
danger = danger_condition
combat_ignore_cond = {!actor_enemy !fighting_actor}
meet = no_meet

[walker@well]
path_walk = agr_krot_well_walk
path_look = agr_krot_well_look
meet = no_meet
on_actor_dist_le = 5 |{!actor_enemy} remark@thanks_2 ;%+agr_find_gunslinger_cache_start%
combat_ignore_cond = {!actor_enemy !fighting_actor}
danger = danger_condition

[remark@thanks_2]
anim = guard
snd = agr_krot_thanks_2
target = actor
on_signal = sound_end | walker@well2
danger = danger_condition
meet = no_meet
combat_ignore_cond = always
on_info = {=actor_enemy} walker@wait_after_hold

[walker@well2]
path_walk = agr_krot_well_walk
path_look = agr_krot_well_look
meet = meet@well
on_info = {!actor_enemy +agr_find_gunslinger_cache_start} walker@well3
combat_ignore_cond = {!actor_enemy !fighting_actor}
danger = danger_condition

[walker@well3]
path_walk = agr_krot_well_walk
path_look = agr_krot_well_look
meet = meet@well2
combat_ignore_cond = {!actor_enemy !fighting_actor}
danger = danger_condition

[meet@well]
meet_state = 30|hello@wait|15|wait@wait|5|wait
meet_state_wpn = 30|hello@wait|15|wait@wait|5|wait
victim = 30 | actor
victim_wpn = 30 | actor
use = true
use_wpn = true
meet_dialog = agr_factory_krot_start

[meet@well2]
meet_state = 30|hello@wait|15|wait@wait|5|wait
meet_state_wpn = 30|hello@wait|15|wait@wait|5|wait
victim = 30 | actor
victim_wpn = 30 | actor
use = true
use_wpn = true

[meet@no_use]
use = false
use_wpn = false
abuse = false

[death]
on_info = %+agr_krot_dead +sar2_death_19%

[known_info]
agr_krot_secret_info

[danger_condition]
ignore_distance = 0

[danger_condition@combat]
danger_expiration_time = 9000
danger_inertion_time = 9000
ignore_distance_corpse = 0

 

 


Новый смарт на Свалке:

; cse_abstract properties
section_name = smart_terrain
name = gar_ost
position = 18.255748748779,0.4110446870327,-16.711252212524
direction = 0, 0, 0
id = 65535
version = 118
script_version = 6

; cse_alife_object properties
game_vertex_id = 293
level_vertex_id = 191002
object_flags = 0xffffff3e
custom_data = <<END
[smart_terrain]
type = gar_ost
capacity = 1
cond = {+freeplay}
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 = 3

; se_smart_terrain properties


 

 

Секции в gulag_garbage.script:

if type == "gar_ost" then

t = { section = "logic@gar_ost_post1",
idle = 0,
prior = 10, state = {0},
in_rest = "", out_rest = "",
predicate = function(obj_info)
return obj_info.profile_name == "agr_krot"
end
}
table.insert(sj, t)
end

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

if gulag_type == "gar_ost" then
return npc_community == "stalker"
end

 

 


Секции в gulag_garbage.ltx:

[logic@gar_ost_post1]
active = walker@gar_ost_post1

[walker@gar_ost_post1]
path_walk = post1_walk
path_look = post1_look

 

 

waypoint'ы в way_l02_garbage.ltx:

[gar_ost_post1_walk]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = 18.255748748779,0.4110446870327,-16.711252212524
p0:game_vertex_id = 293
p0:level_vertex_id = 191002

[gar_ost_post1_look]
points = p0
p0:name = wp00|a=sit_ass
p0:flags = 0x1
p0:position = 11.646841049194,0.29557731747627,-12.039144515991
p0:game_vertex_id = 293
p0:level_vertex_id = 185183

 

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

Ссылка на комментарий

[smart_terrain]

type = gar_ost

capacity = 1

cond = {+freeplay}

 

Ну и где этот самый freeplay выдается ?

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

Вот рабочий вид. Зелёным текстом выделено что я хочу ещё вставить в квест, но оно отказывается работать.


[wolf_find_item_1]

type = find_item

community = actor

text = wolf_find_item_1_text

description = wolf_find_item_1_descr

parent = wolf

target = novice_outfit, wpn_aksu, novice_outfit, wpn_aksu

;reward_money = 8000

reward_reputation = 10

reward_rank = 4

reward_item = af_medusa 

time = 86400


Можно ли вставлять так нужные предметы через запятую? Или в ТЧ вообще невозможно создать квест на поиск нескольких предметов?

Ссылка на комментарий

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

 

@AndrewMor, путь напиши, и проверь существующие. И еще, мне не понятно нафига cond для уникального смарта на одного человека задавать, ну да ладно.

Ссылка на комментарий

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

[meet@zoneguard1]
meet_state = 7|{-gar_free_passa} threat@gar_dolg_blokpost, guard@talk_hello
meet_state_wpn = 7|{-gar_free_passa} threat@gar_dolg_blokpost, guard@talk_hello
victim = 7|actor
victim_wpn = 7|actor
use	= true
use_wpn = true
zone = gar_dolg_blokpost_zone_warn|{-gar_free_passa}backoff@{-gar_free_passa}gar_dolg_blokpost|gar_dolg_blokpost_zone_guard|{-gar_free_passa}true@{-gar_free_passa}gar_dolg_blokpost
meet_dialog = gar_dolg_blokpost

вот родной код.

Вместо  meet_dialog = gar_dolg_blokpost пишу свой диалог называю просто meet_dialog = gar_dolg_blokpost_new, и ничего. Если пустить диалог от имена актора, все нормально. Не пойму почему не работает от имени Прапора.

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

Ссылка на комментарий

 

 

почему не работает от имени Прапора

В смысле? Чтобы прапор начинал диалог?

А ты прописал свой диалог в профиле прапора кстати?

Ссылка на комментарий

@_Val_, ну конечно. Поэтому и спросил. Сделал от актора, но причину бы понять. Оригинал работает, пишу новый, начинаю НИ, не пашет.

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

Ссылка на комментарий

Проблема такая: добавил я в свой мод призрачную химеру как в дмх моде, так вот, а у неё текстура другая почему-то, кто играл в дмх мод видели, извиняюсь не могу выложить скрины из-за плохой скорости, постараюсь на пальцах объяснить, в моём моде у неё текстура как у обычной химеры только беловатого оттенка, теперь сам вопрос: что мне надо сделать чтобы её текстура была как в дмх?

Ссылка на комментарий

Хемуль36рус Если гадать дальше то возможно в профиле нпс:

<actor_dialog>ххх</actor_dialog>

А должно быть:

<start_dialog>ххх</start_dialog>

Ximera_1999 Возьми текстуру из дмх мода :)

Мой архив

Сталкером не занимаюсь.

Ссылка на комментарий

@Хемуль36рус, ну вообще в случае, когда непись сам должен начать говорить с ГГ, ну то бишь первая фраза его(ибо кнопочку эФ то он нажать не может))) я вообще удаляю этот диалог из профиля.

Чтобы не быть голословным...

Логика

[meet@yan_nastya_mesto_exit_2]
meet_state = 20|guard|15| wait
victim = 20|actor
victim_wpn = 20|actor
use_wpn = false
use = true
meet_dialog = izolda_dialog_3 

Профиль

        <start_dialog>hello_dialog</start_dialog> 
        <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog>
        <actor_dialog>izolda_dialog_0</actor_dialog>
        <actor_dialog>izolda_dialog_1</actor_dialog>
        <actor_dialog>izolda_dialog_2</actor_dialog>
#include "gameplay\character_criticals_4.xml"
</specific_character>

Как видишь - искомого диалога в профиле нет. Но он отлично работает)))

 

 


 

 

Возьми текстуру из дмх мода

Как-бы все химеры после этого призрачными не стали))

Нужно взять текстуру, переименовать и через Нотепад++ прописать в модель...Ну и про количество знаков не забываем.

Изменено пользователем _Val_
Ссылка на комментарий

@_Val_, @amik, бесполезно, не хочет новый диалог читаться, и всё. Не пойму в чем дело. Может предусловие какое где. Всё перерыл, у других НПС которым менял, все нормально.

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

Ссылка на комментарий

Ну так предусловия все в родном диалоге должны быть...

Кстати, а зачем ты новый пишешь? Замени текст в старом.

Ссылка на комментарий
use = true

use_wpn = true

попробуй вместо true поставить self

При установке значения self NPC сам юзнет игрока, как только сможет дотянуться

это с stalkerin.gameru.net из статьи "Настройка логики".

 

Вопрос по логике.

К примеру есть такая работа в гулаге:

[logic@gar_angar_drug3]
active = walker@gar_angar_drug3

[walker@gar_angar_drug3]
path_walk = drug3_walk
path_look = drug3_look
on_info = {+gar_breakthrough_rush} walker@gar_angar_rush_drug3
on_info2 = {+gar_breakthrough_complete} kamp@gar_angar_drug3
on_info3 = {+gar_breakthrough_on_point} walker@gar_angar_point_drug3

[и т.д...]

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

 

 

"local job_position_threshold = 120 --'50  -- расстояние до места работы при котором персонаж в онлайне считается достигшим места работы" - xr_gulag.script, внезапно. В офлайне - по вертексам. dc

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

@_Val_, можно конечно. Только вот почему всё-таки диалог не работает, вот что странно.

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

Ссылка на комментарий
попробуй вместо true поставить self

 

Ну совершенно по причине того, что как раз тусовался в тех местах(ну и проверки ради), сделал так тому персонажу, логику и профиль которого приводил выше. Диалог как ветром сдуло)))

Саня...Ты экспериментируй по разному, что тут еще скажешь. Например действительно удали свой диалог из профиля.

Изменено пользователем _Val_
Ссылка на комментарий

 

 

чтоб он сразу переключался в следующую секцию, не перемещаясь в начало path_walk ?

Что бы логика переключалась сразу, нужно в активации логики прописать, при каких условиях, с какой секции начинать работу. Приблизительно вот так.

[logic@gar_angar_drug3]
active = {+gar_breakthrough_on_point} walker@gar_angar_point_drug3, {+gar_breakthrough_complete} kamp@gar_angar_drug3, {+gar_breakthrough_rush} walker@gar_angar_rush_drug3, walker@gar_angar_drug3
 

  • Согласен 1

Вообще-то я белая и пушистая...

Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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