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

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


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

Видимо я не совсем точно сформулировал вопрос. Пробую исправиться: в плане передвижения ГГ в разных брониках меня интересовала не потеря выносливости\скорости, а именно сам тип движения - если налегке, то ровно и быстро, а если в тяжелой\сковывающей броне - то шатко\валко. Имеется в виду с раскачкой вправо\влево. Ну и если возможно - чуток вверх\вниз...

Ребят, помогите нубу! Как в логике персонажа сделать так, чтобы при подходе actor'а на x метров NPC становился врагом?

@Fireball.Stalker, лучше я думаю тебе помочь поиск по теме освоить, вот я минуту поискал:

 

http://www.amk-team.ru/forum/index.php?showtopic=5525&p=887638

Так полно ж примеров в оригинале. В логике непися что-то типа 10|что_делать, 20|что_делать и т.д.

Ну вот наверно нагляднее всего будет так, как я исправил для сцены с Юриком на свалке: если актор попадает в заданный интервал - он там разговоры разговаривают, если подходит или отходит - 3 нейтрала переквалифицируются в бандиты, и начинают, естественно, стрелять.

Но для более простого случая просто combat_ignore врагу прописываем, и тот или стреляет, или нет.

 

[walker10@gar_dram_novice]
path_walk = novice_walk
path_look = novice_look
on_info = %=gar_dm_bandit_demand% walker1@gar_dram_novice
meet = no_meet
;combat_ignore_cond = { -gar_dm_fight_start }

[walker1@gar_dram_novice]
path_walk = novice_walk
path_look = novice_look
on_actor_dist_le_nvis = 15 | remark1@gar_dram_novice
on_info = {+gar_dm_newbie_no_money} remark@no_money_gar_dram_novice %-gar_dm_newbie_no_money%
on_info2 = {+gar_dm_bandit1_dead +gar_dm_bandit2_dead +gar_dm_bandit3_dead} remark@after_fight_gar_dram_novice
on_info3 = {+gar_dm_end} %=gar_dm_bandits_fight%
;reactions = ignore
danger = danger_condition@gar_dram_novice
meet = no_meet
combat_ignore_cond = { -gar_dm_fight_start }

[remark@no_money_gar_dram_novice]
target = 102
snd = gar_dm_newbie_no_money
anim = refuse
on_signal = action_end | walker1@gar_dram_novice %=gar_dm_bandit_demand%
on_info2 = {+gar_dm_bandit1_dead +gar_dm_bandit2_dead +gar_dm_bandit3_dead} remark@after_fight_gar_dram_novice
on_info3 = {+gar_dm_end} %=gar_dm_bandits_fight%
on_actor_dist_le_nvis = 15 | remark1@gar_dram_novice
;reactions = ignore
danger = danger_condition@gar_dram_novice
meet = no_meet
combat_ignore_cond = { -gar_dm_fight_start }

[remark1@gar_dram_novice]
anim = hello
snd = gar_dm_newbie_help_me
target = actor
on_signal = sound_end | remark2@gar_dram_novice %+gar_dm_novice_asked_for_help =gar_dm_bandits_bandits%
on_info2 = {+gar_dm_bandit1_dead +gar_dm_bandit2_dead +gar_dm_bandit3_dead} remark@after_fight_gar_dram_novice
on_info3 = {+gar_dm_end} %=gar_dm_bandits_fight%
;reactions = ignore
danger = danger_condition@gar_dram_novice
meet = no_meet
combat_ignore_cond = { -gar_dm_fight_start }

[remark2@gar_dram_novice]
target = actor
anim = wait
on_actor_dist_le_nvis = 10 | remark3@gar_dram_novice
on_actor_dist_ge_nvis = 25 | %=gar_dm_bandits_fight%
on_info2 = {+gar_dm_bandit1_dead +gar_dm_bandit2_dead +gar_dm_bandit3_dead} remark@after_fight_gar_dram_novice
on_info3 = {+gar_dm_end} %=gar_dm_bandits_fight%
on_timer = 20000 | %=gar_dm_bandits_fight%
;reactions = ignore
danger = danger_condition@gar_dram_novice
meet = no_meet
combat_ignore_cond = { -gar_dm_fight_start }

[remark3@gar_dram_novice]
target = actor
anim = wait
snd = help
arrival_timeout = 1500
on_signal = move_end | remark@after_fight_gar_dram_novice %=gar_dm_bandits_fight%
on_info2 = {+gar_dm_bandit1_dead +gar_dm_bandit2_dead +gar_dm_bandit3_dead} remark@after_fight_gar_dram_novice
on_timer = 5000 | %=gar_dm_bandits_fight%
;reactions = ignore
danger = danger_condition@gar_dram_novice
meet = no_meet
combat_ignore_cond = { -gar_dm_fight_start }

[remark@after_fight_gar_dram_novice]
anim = guard
target = actor
snd = gar_dm_newbie_thank_you
on_timer = 30000 | walker2@gar_dram_novice %=actor_friend%
danger = danger_condition@gar_dram_novice
meet = meet@gar_dram_novice

[walker2@gar_dram_novice]
path_walk = gar_dm_novice_walk
meet = meet@gar_dram_novice
on_signal = new_gulag| %+gar_dm_novice_change_st%

[meet@gar_dram_novice]
meet_state = 3|guard@wait
meet_state_wpn = 3|guard@wait
victim = 3|actor
victim_wpn = 3|actor
use = true
use_wpn = true

[danger_condition@gar_dram_novice]
ignore_distance = 1

 

Всем привет. Подскажите, как сделать, чтобы при каждом заходе на локацию спавнились неписи? На патче 1.0004. Спасибо.

Один уже освоил, блин. 8(

 

Вопрос несколько расплывчат.

ну вот например так:

 

function on_level_change()    -- Переход между локациями
    log("info", "on_level_change, current: %s, last: %s", lname, lv_last)
    if lname == "l04_darkvalley" then    -- изменить отношения с кем надо при входе
        if lv_last == "l02_garbage" then gulag_dark_valley.dolg_start = true    -- Монгол может появляться в Темной долине
        elseif lv_last == "l01_escape" then
            actor:set_actor_position( vector():set( -44.38, 0.43, -541.47 ) )
        end
        xl_relations.dark_valley_in( true )

    else ...

 

- где lv_last сохраняется хоть во все том же pstor, а dark_valley_in() что-то делает, например - спавнит.

Или можно через инфо, просто я их не захотел из-за количества.

Или рестриктор в определенном месте, а из него опять же info или свою функцию.

 

Как-то так.

 

P.S. Да, а вообще тут последнее время пошли какие-то явно вредительские вопросы, и, главное, на них ведь отвечают. Ох ужо придет к нам Роскомнадзор...

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

Здравствуйте, приношу извинения, что не по теме пишу просто не знаю в какую тему мне с таким вопросом обратиться, если что направьте куда надо, так вот: создаю свой мод, стараюсь внести в него как можно больше разнообразия, и первым делом я начал с мутантов, многих добавлял в свой мод все получалось и спавнились они, а тут недавно дошел я до библиотекаря, все сделал как обычно добавил текстуры, звуки, модель, конфиг, написал скриптовую функцию спавна, активировал ее через диалог, прихожу на место спавна а он не спавнится, за основу мода взял АМК, подскажите в чем причина, может нужно ещё какие-то файлы перетащить в свой мод, файлы позаимствовал из ДМХ мода 1.3.4

 

 

прихожу на место спавна а он не спавнится

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

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 

Ребят, поставил  логике непися фразу, которую он должен произносить при анимации:

[remark1]


anim = choose
snd = max_to_player



Но почему-то анимацию непись выполняет, но при этом молчит. В чём моя ошибка?

@Fireball.Stalker, так - вылета нет, значит в sound_theme.script ты этот звук прописал.

А в \config\misc\script_sound.ltx ?

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

Для проверки звука пропиши переход в другую секцию

on_signal = sound_end | ля-ля

И посмотри, переходит ли непись в неё... 

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 

 

 

Для проверки звука пропиши переход в другую секцию

Для проверки новой логики можно прописать какой-то стандартный звук.

И тогда покажет кто "виноват" - звук или логика.

  • Согласен 2

 

 

стандартный звук

Да..И желательно проверенный в оригинале. 

Точно не помню - как-то нарвался с дуру на заглушку)))

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 
как-то нарвался с дуру на заглушку)))

Всяко бывает :). У самого не раз казусы бывали. Так что ты прав. Лучше сформулировать так -  использовать тот, что 100% воспроизводится каким-то слышимым звуком в других схемах..

 

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

Изменено пользователем Nazgool
  • Согласен 3

cam_inert регулирует раскачку камеры вправо\влево. А за что отвечает cam_slide_inert ? Менял значение, но при движении вроде все остается без изменений.

И еще - регулировки раскачки вверх\вниз похоже нет, может это есть в правках движка ?

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

Всем здоровья. Ибо у меня сейчас похоже кончится.

Кто нибудь в курсе, может ли непись перепутать точки, прописанные ему в олл_спавне для разных секций логики?

Подробненько...Сам непись.

8c5f888bf97608ecafc114db055364e5d5578119

Спокойно стоит у крыльца. Значит как-бы в волкере(то бишь не сидит и бренчит на гитаре...) Но при этом у него на башке надпись kamp@patrul_1, то есть он находится именно в той секции, в которую и должен перейти. Точка по координатам полностью соответствует точке, прописанной для волкера.

Кусочек логики, относящийся к этому переходу.

[walker@patrul_1]
path_walk = agro_patrul_1_walk
path_look = agro_patrul_1_look
.................
on_info2 = {=hour_in_interval(23:7)}kamp@patrul_1 ;ночью переходим к костру


[kamp@patrul_1]
center_point = agro_stalk_center
path_walk = agro_stalk_near
radius = 2.2

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 

Народ может кто подскажет. Есть логика гулага, она работает нормально у меня в моде. Переношу ее в другой мод, никак не хочет работать. Если выношу в отдельный скрипт, не работает, если вписываю в оригинал, вылетает без лога. Может быть дело в том, что я секции спавна из алспавна одного мода перекинул в другой? Просо alife_marsh из одного спавна перекинул в другой, алспавн собирается и разбирается нормально. Может так нельзя, просто не охота было по одной секции копировать.

И еще почему-то никак не хочет спавнится аномалия "Амёба", другие аномалии спамятся, а эти - ни звезда ни хваталка ни в какую, вообще не пойму что происходит.

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

@Хемуль36рус, для амёбы надо задавать свойства idle_animation и attack_animation.

Например, если спавнишь скриптом и используешь модуль нетпакетов Артоса (я выкладывал недавно ссылку на модуль с исправлением найденных ошибок в Скриптовании), это может выглядеть так:

local sobj = alife():create('zone_ameba', pos, lvid, gvid)
local pk = get_netpk(sobj,1)
if pk:isOk() then
  local data = pk:get()
  data.shapes:addSphere(5, vector():set(0,0,0))
  data.idle_animation = 'idle'
  data.attack_animation = 'blast'
  pk:set(data)
end
Изменено пользователем Kirgudu

Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD

Полезное: модули Артоса, XML парсер

 @Kirgudu, в том то и дело, все есть

; cse_abstract properties
section_name = zone_ameba1
name = esc_zone_piz1
position = -245.018005371094,-14.1840000152588,-15.2170000076294
direction = 0,0,0
version = 118
script_version = 6

; cse_alife_object properties
game_vertex_id = 67
distance = 5.59999990463257
level_vertex_id = 12580
object_flags = 0xffffff3e

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

; cse_alife_space_restrictor properties
restrictor_type = 0

; cse_alife_custom_zone properties
max_power = 90

; cse_alife_anomalous_zone properties
offline_interactive_radius = 30
artefact_spawn_count = 32
artefact_position_offset = 0xb350

; cse_visual properties
visual_name = physics\anomaly\anomaly_hvatalka

; cse_alife_zone_visual properties
idle_animation = idle
attack_animation = blast

а аномалии нет. Говорят это глюк такой. Хотя я эти же локации использую  в своем моде, и все нормально, такое первый раз вижу. Сейчас используется база АМК, там аномалии динамические, может её куда закидывает. Я когда заспамил, был вылет , звук забыл, но после загрузки и новой игры, аномалии  не было. И так она там и не появилась, не на Кордоне, не на Болотах. Бред какой-то.

Изменено пользователем Хемуль36рус

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

@Kirgudu, второй аргумент addSphere в данном случае можно опустить. Скоро постараюсь собрать хелперы+таймеры+нет-пакеты+ивенты+правленный _g. 

Согласен, добавил исключительно для полноты картины. :) Kirgudu

Изменено пользователем Dennis_Chikin
  • Полезно 1

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

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

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

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

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

Войти

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

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

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