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

Внимание. На форуме проводятся технические работы с боковым меню.

_Val_ _Val_

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


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

Всем привет. Извиняюсь,если не корректно поставил вопрос. Как мне прописать разные состояния для смарт - террейна? Мне надо,чтобы,например,1 НПС днем патрулировал,а ночью спал, второй днем уходил по своим делам, а ночью возвращался влагерь и т.д. В инете нашел пару туторов, но толком ничего и не понял, как правильно это реализовать на ТЧ.

Во имя Материнки, Винта и Святого интернета. Админ!

Melo, наверное никто тебе не ответит, потому что муссировалось уже не раз, вот здесь посмотри: 

 

http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BC%D0%B0%D1%80%D1%82%D0%B5%D1%80%D1%80%D0%B5%D0%B9%D0%BD%D1%8B_%D0%B8_%D0%B3%D1%83%D0%BB%D0%B0%D0%B3%D0%B8

 

Вот кусок кода, человек как раз поясняет где и что находится.

 

if type == "esc_bandits_smart_terrain" then


t = {}
;-- "соеденительная секция" для логики, определяем ltx фаилом
t.section = "logic@esc_bandits_smart_terrain_bandit1_walker"
;-- no idea, probably describes after what time
;-- npc will use this job again (?)
t.idle = 0
;-- no idea but i guess it's optional
t.timeout = 0
;-- пріоритет
t.prior = 100
;-- нпс будет использовать эту логику,
;-- если ST переключится в это состояние
;-- в этом случае - состояние 0 (день)
t.state = {0}
;-- Какой squad и group назначится персонажу принявшему эту работу.
t.squad = squad
t.group = groups[1]
;-- no idea what means position_threshold
t.position_threshold = 100
;-- описывает нпс в этом состоянии: онлайн или офлайн
;-- онлайн = истина по дефолту
t.online = true
;-- описывает рестрикторы (куда нпс могут/не могут пойти)
t.in_rest = ""
t.out_rest = ""
;-- ввиду особого способа присвоения работ в
;-- smart_terrain.script вы никогда не знаете, какая работа
;-- будет использоваться каждым нпсом; если вы хотите быть уверенным
;-- что конкретный нпс взял конкретную работу, тогда
;-- вам нужно заюзать предикатную функцию; в этом слуае
;-- мы хотим чтобы эта работа присвоилась мастеру бандиту
t.predicate = function(obj_info) return obj_info.rank >= 900 end
table.insert(sj, t)

 

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

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

Будьте добры объясните  почему происходит вот такой вылет, спавню химеру. все что не хватало дописал, теперь вот эта бяка

FATAL ERROR



[error]Expression : index != BI_NONE
[error]Function : CParticlesPlayer::LoadParticles
[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\ParticlesPlayer.cpp
[error]Line : 87
[error]Description : Particles bone not found
[error]Arguments : bone


stack trace:

я вроде понимаю что это значит, но не могу понять почему оно вылезло, все партиклы на месте.

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

@Хемуль36рус, очевидно в модели нет кости, на которую ссылается конфиг модели (тот, что в папке capture).

  • Нравится 1

поставил один из зимних модов, и понял что аномалий на белом фоне не видно совсем, как можно сделать аномалии более заметнее?

Грамматические ошибки в посте.
Устное предупреждение.
ColR_iT

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

Привет всем!

Собрал стволы В.О.В. как дополнение к ОП+К+МА и прописал их Бандитам в Т.Д., как говорил " Ворон",что они там раскопали склад с трафеями, в каком фаиле дополнить обмен этих стволов у него, на арты? :blink:

XP Professionalx32 2048Mb 2ядра видюха NVIDIA GEFORCE 8600Gt 512 Mb

Еще вопрос возник: Можно ли как-то отследить, что гг погиб именно от аномалии? Неважно какой, просто от аномалии? Я вижу пока только вариант проверки по расстоянию до ближайшей аномалии, но он чреват ложнгыми срабатываниями, когда гг застрелили рядом с аномалией) Есть ли какой надежный способ определить это в ТЧ?

@proper70,в оригинале нельзя, поставь x-ray extensions, там сделали коллбек отслежки того, кто хитовал ГГ, дальше дело техники. Без него нормально сделать никак не выйдет. Т.к. даже что-бы отследить тип хита нужен хит коллбек, ну а если он будет, то проще по клсиду, ну или еще как - дело вкуса. 

Можно ли как-то отследить, что гг погиб именно от аномалии?

В чистом ТЧ можно при помощи методов db.actor:who_hit_name() или db.actor:who_hit_section_name().

Поставь это на скриптовый хит-колбек и смотри какой объект атаковал ГГ в последний раз (и сколько отнял здоровья). После чего, по имени получай гейм-объект и сканируй его на принадлежность к классу аномалий.

 

З.Ы. впрочем, тут даже можно обойтись без колбека на хит - просто проверяй, что ГГ не живой (через db.actor:alive()) и смотри кто нанес последний хит.

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

Telegram-канал RayTwitty Space

Всем привет! Возник вопрос: заспавнил двух сталкеров: торговца и бармена. Они спавнятся, торгуют, говорят, все чин чинарем. Решил поменять им визуал. Вытащил модели из ЧН, скопировал текстуры, все запустилось, визуалы сменились, но почему-то с ними нельзя поговорить: надпись "Говорить (F)" не появляется. В чем может быть причина?



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

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

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

Воспользуйся этим уроком. http://stalkerin.gameru.net/wiki/index.php?title=MilkShape_3D._%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9_%D0%9D%D0%9F%D0%A1_%D0%B8%D0%B7_%D0%A7%D0%9D/%D0%97%D0%9F_%D0%B2_%D0%A2%D0%A7_%D0%B8_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%BE

La'Rento, да я пользовался другим уроком. Спасибо за ответ и ссылку, все заработало, как надо.

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

Товарищи...возник вопрос. Как реализовать динамические ответы НПСов? По поиску не нашел...пробовал делать 2 тега(на продолжение диалога и на альтернативное продолжение), но всегда выбирается только первый тег. Как иначе можно реализовать?

@Dniwe, что ты вкладываешь в понятие "динамические"? Формулируй вопрос яснее. Если тебе нужен диалог типа "Что интересного?", то тебе в dialog_manager.script, а если тебе нужна рандомная фраза, то нужно просто вызвать перед ветвлением функцию, которая рандомно выберет твои фразы, можешь поглядеть Megadeath Mod, там по моему это было.
 
Продублирую свой вопрос из соседнего топика, там мне отвечать не хотят.

 

Как получить стори айди собеседника?

Так не выходит:

function test(s1,s2)
if s1:id() == (db.actor or db.actor:id()) then
return s2:story_id()
end
return s1:story_id() --/> номер из game_story_ids
end

Пробовал и сразу вот так:

function test(s1,s2)
if s1:id() == (db.actor or db.actor:id()) then
return alife():story_object(s2:story_id())
end
return alife():story_object(s1:story_id()) --/> объект по sid
end

 

 

Вот интересно стало:  в паке локаций от Кости (вроде) есть лока Болота. Так вот, костры там не горят, а тлеют. Можно ли их сделать, как в чистой ТЧ?

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

@AndrewMor, Наверное, ты не закинул спавн, либо в нём просто нету костров.

Для его создания понадобится создать 3 спавн-секции.

1. lights_hanging_lamp

2. zone_flame_small
3. space_restrictor


Для примера, в alife_l01_escape.ltx посмотри секции под номерами [846], [847], [848]. Первая отвечает за свечение, вторая- аномальная зона, обжигает НПС и ГГ, а рестриктор нужен как дополнительная зона, зачем - сам не знаю, но нужен.

Изменено пользователем La'Rento

вопрос: как изменить (замедлить) скорость падения капель дождя?  приписывание пятого значения как у скорости неба ничего не меняет. сталкер тч

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

@Dniwe, что ты вкладываешь в понятие "динамические"? Формулируй вопрос яснее. Если тебе нужен диалог типа "Что интересного?", то тебе в dialog_manager.script, а если тебе нужна рандомная фраза, то нужно просто вызвать перед ветвлением функцию, которая рандомно выберет твои фразы, можешь поглядеть Megadeath Mod, там по моему это было.

 

Я уже разобрался сам. Спасибо. имел ввиду несколько вариантов ответов у НПС.

 

 

Продублирую свой вопрос из соседнего топика, там мне отвечать не хотят. Как получить стори айди собеседника?

Нужно правильно ставить условия. Ну как можно сравнивать: if s1:id() == (db.actor or ... - т.е. тип данных 'number' с 'userdata'?!

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

@Artos, действительно, поправил, по прежнему никакого результата.

 

ТЧ 1.0006
 

 

 

function sendtip(text) --/ текст
return news_manager.send_tip(db.actor, text, 0, "default", 10000)
end

function test_sid(s1,s2)
if s1:id() == db.actor:id() then
sendtip("S2 sid~~: "..tostring(s2:story_id()))
return s2:story_id()
end
return s1:story_id() --/> номер из game_story_ids
sendtip("S1 sid~~: "..tostring(s1:story_id()))
end
...           
            <phrase id="13">
                <text>carlan_mod_sidor_13</text>
                <action>my_mod.test_sid</action>
            </phrase>
...

 

 

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

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

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

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

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

Войти

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

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

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