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

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


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

@Карлан, нет-нет :)  По коордам он спавнится в том же домике, только в другой комнате, но после спавна начинает бежать на точку, где он спавнится и стоит по уроку.

RafMadMan.gif

@RafMadMan, твой непись спавнится по координатам. По ним же он и стоять должен. Точка всего одна. Куда он там у тебя бежит?

 

У тебя координаты точки спавна и вейпойнта совпадают.


@NL-Vincenz, смотри распакованный all.spawn, файл way_l05_bar.ltx. Там есть название искомой анимки.

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

@AndrewMor, а бежит он в другую комнату, и становится именно на той точке, на который он спавнится и стоит по уроку. А насчёт координат - не соглашусь ибо полностью идентичные. Отличается от других только точка look-a (Но он даже не на неё бежит :)).

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

RafMadMan.gif

Как нанести хит заспавненному НПС?

local obj = alife():create("bar_bandit", ....) -- спавним НПС

local h = hit() -- создаем объект хита
h.direction = vector():set( 1, 0, 0 )
h.impulse = 0
h.draftsman = db.actor
h.power = 1 -- сила хита 1
h.type = hit.telepatic
obj:hit(h)

Происходит вылет с логом "attempt to call method 'hit' (a nil value)". Видимо, из-за того, что obj - серверный объект, а у него нет метода hit. Вопрос - как получить клиентский объект НПС, чтобы хитануть его?

Имеется стандартный скелет диалога:

......
<phrase_list>
            <phrase id="0">
                <text />
                <next>1</next>
                <next>2</next>
                <next>3</next>
                <next>4</next>
                <next>5</next>
            </phrase>
<phrase id="1">......

Сам язык XML мне не знаком от слова "вообще", но статьи на вики-сталкере по диалогам я прочитал.

Всё там расписано, кроме вот этой странной конструкции, которая встречается в файлах диалогов Сталкера.

<text />

Хотелось бы услышать мнение специалистов :

1. что сие означает ?

2. имеет ли эта конструкция, какой то расово-тёплый, ламповый сакральный смысл ? Или это происки Монолита в мозгах создателей ?

3. могу ли я это просто удалить ?

4. как эта штука выглядит на экране, когда я разговариваю с НПСом ?

 

p.s. проверял орфографию xml в браузере Хром, тот воспринял без ругани, значит как то он эту штуку понимает.

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

"Кругом зомби.....у меня кончаются патроны...."

@BFG, для начала советовал бы причаститься на сайтах, где описывается парсинг XML. Там теоретическая часть хорошо расписана, особенно про тэги.

 

То что помещается внутри <text> это текст, отображаемый в окне диалога с НПС. Он может быть прямым (например, "Привет, как дела", а может быть локализуемым.

 

У тебя тэг text не содержит ничего и записан как самозакрытый. Правильнее было написать так:

 

<text>текст фразы</text>
Удалить можешь, но скорее всего, в окошке диалога фраза не отобразится. Тогда на твою реплику НПС ответит пустой строкой и холодными печальными глазами... А может быть и вылет с руганью :)

 

-----

 

BFG, эта конструкция придумана, чтобы быстро писать пустые тэги. Записи

 

<text />
и

<text></text>

это одно и тоже - пустой тэг. Говорю же, не ленись, прочитай матчасть, особенно про спецификации и тэги.

Изменено пользователем Tpukcmep
  • Спасибо 1
  • Нравится 1

 

 

Как нанести хит заспавненному НПС?

Так попробуй

local s_obj = alife():create("bar_bandit", ....) -- спавним НПС
      level.add_call(
                     function()
                     if s_obj.online then 
                      return true
                     end
                     end,
                     function()
                       local h = hit()
                       h.direction = vector():set( 1, 0, 0 )
                       h.impulse = 0
                       h.draftsman = db.actor
                       h.power = 1
                       h.type = hit.telepatic
                       level.object_by_id( s_obj.id ):hit(h)
                      end
                     )
  • Спасибо 1

 

 

а бежит он в другую комнату, и становится именно на той точке, на который он спавнится и стоит по уроку. А насчёт координат - не соглашусь ибо полностью идентичные. Отличается от других только точка look-a (Но он даже не на неё бежит ).

Он и не побежит на нее, эта точка, куда непись смотрит, лукпойнт это. Точка walk - где стоит, точка look - куда смотрит. Если точек walk несколько - непись будет перемещаться по этим точкам в порядке, который ты сам укажешь.


 


1. что сие означает ?

2. имеет ли эта конструкция, какой то расово-тёплый, ламповый сакральный смысл ? Или это происки Монолита в мозгах создателей ?

3. могу ли я это просто удалить ?

4. как эта штука выглядит на экране, когда я разговариваю с НПСом ?

 

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

2. Имеет, строчка должна быть или такая, или с прописанным текстом.

3. Нет.

4. Никак, вся конструкция на экране не отображается. Показываются варианты выбора в диалоге, в зависимости от предусловий, наличия/отсутствия нужных инфопорций.


Опять я со своим АК-12. Нужный мне автомат под калибр 5,45 есть в Шокер-моде, но для платформы ЗП. Просто перенести в ТЧ не получится, ругается вроде на анимацию. Вопрос знающим: как всю эту байду портировать под ТЧ? Может, кто ссыль на туторок какой выложит?

  • Спасибо 1

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

Опять я со своим АК-12. Нужный мне автомат под калибр 5,45 есть в Шокер-моде, но для платформы ЗП. Просто перенести в ТЧ не получится, ругается вроде на анимацию. Вопрос знающим: как всю эту байду портировать под ТЧ? Может, кто ссыль на туторок какой выложит?

Это не сложно, почти что копипастинг.

У тебя может отсутствовать анимация в ogf/omf модельке, либо прописана не туда. Приведи лог.

Изменено пользователем Tpukcmep
Как нанести хит заспавненному НПС?

Установить кэллбэк на выход объекта в он-лайн, в ф-ции кэллбэка наносить этот самый хит. А все пляски с попыткой хитануть клиентский объект в теле ф-ции, в которой спавнится этот объект - бессмыслица, т.к. в этот момент клиент еще не существует. Пример использования кэллбэка:

---------- кэллбэк на выход объекта в он-лайн ----
obj_spawn = level.client_spawn_manager()
function obj_spawn_callback(set_param, id, obj)
.......заполняем параметры хита........
obj:hit(h) -- хитуем
end

---------- где-то, где создаете объект ---------
local ser_obj = alife():create(..........)
----- уст. кэллбэк на выход в он-лайн -----
obj_spawn:add(ser_obj.id, -1, obj_spawn_callback, параметр_передаваемый_в_ф-цию_кэллбэка)
В качестве передаваемого параметра можно оформить табличку с основными параметрами хита, которую распарсивать в ф-ции кэллбэка, и из нее заполнять значения для хита. Будет типа универсальной ф-ции.

 

BFG

Пустой тэг <text /> обычно используется для пропуска отображения фразы в окне диалога. Т.е. фраза в окне диалога не отобразится, но все остальные тэги фразы будут обработаны. Раз видел это в исходниках, протестируй в натуре, как отображаются фразы относительно того, как прописаны в теле диалога. Поймешь как это работает. Штука очень полезная.

 

 

Опять я со своим АК-12

Если уж так принципиально сделать отличия, то проще будет, наверное, вместо ковыряния модели попробовать изменить текстуру(это вроде проще будет) - к примеру для 7.62 цвет магазина\ствольной коробки изменить. А ширина магазина - кто там будет присматриваться ?! Ну и с этим вопросом лучше видимо в соседние темы, типа "Моделирование".

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

Штука очень полезная.

Только разрабы как всегда :facepalm: .

 

@makdm, слишком изощренно.

слишком изощренно.

Зато очень прагматично. Не нужно никакие параметры передавать в функции. Всё в одном пространстве.

Часто это использую. И пока доволен. Реально полезная штука.

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

 

 

движок vs костыль.

А как по другому?

Не забил свой "костыль" - считай, что серьёзно модингом - то и не занимался. ;)

@AndrewMor:nono:  Не ну я тебе про одно - ты про другое. Ты не понял: единственные координаты, которые не совпадают  со всеми остальными это look. Все остальные индентичны и нпц должен стоять на месте, а бежит туда, где он спавнится по уроку  :) . Вот этого я и не могу понять.

RafMadMan.gif

@RafMadMan, должен стоять на точке, да. Только куда и зачем он бежит - неясно. Из того, что ты выложил под спойлерами, видно, что твой непись должен стоять на точке walk, а смотреть в точку look. И почему он у тебя вообще куда-то бежит, если есть своя точка walk?

 

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

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

@RafMadMan

Новые пути, что ты прописал в way-файле - а ты затем all.spawn скомпилил по новому, чтоб они в игре появились ?

 

 

RafMadMan Новые пути, что ты прописал в way-файле - а ты затем all.spawn скомпилил по новому, чтоб они в игре появились ?

Да, присоединяюсь, ты свои координаты когда внес, спавн перекомпилил? НИ начинал?

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

@AndrewMor, скомпилил alife_*** и way_*** с новыми коордами, НИ начинал.

RafMadMan.gif

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

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

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

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

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

Войти

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

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

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