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

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

@Norman Eisenherz , там, вернее всего, аи-сетки нет. Попробуй после спавна сделать use_ai_locations(false). Типа

local obj = alife():create.....

obj = alife():object(obj.id)

obj:use_ai_locations(false)

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

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий
Поделиться на других сайтах

Подскажите, пожалуйста, как сделать так, чтобы нпс не угодил в произвольном направлении при спавне через следующий скрипт:

alife():create("...",vector():set(..., ..., ...),...,...)

Логику в spawn_section-е прописал в разделе custom_data, чтобы нпс стоял на месте, но это особо не помогает.

Изменено пользователем Rod_K
Ссылка на комментарий
Поделиться на других сайтах

@Pir@t@s В общем, у меня проблема заключается в следующем:

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

Так вот, на данном этапе мне нужно расшевелить волка, чтобы он отправился на заданную точку. Здесь и возникли проблемы, поскольку я и логику прописывал с волкером, и пытался удалить и потом заспавнить через alife заново, но не выходит ничего - так и продолжает стоять на своем изначальном месте.

P.s. платформа - ТЧ.

Ссылка на комментарий
Поделиться на других сайтах

 

3 часа назад, Rod_K сказал(а):

чтобы он, после окончания диалога с другим нпс

С каких пор неписи стали друг с другом разговаривать?

Выкладывай то, что пытался прописать НПСу в логику.

Ссылка на комментарий
Поделиться на других сайтах

Гы... С самых что ни на есть релизных:

Скрытый текст

[remark@esc_corps_wounded]
snd = esc_tolik_to_wolf
target = 006 - возможные значения SID, actor, nil
anim = guard
on_signal = sound_end| walker@to_gulag_esc_corps_wounded
danger = danger_condition@tolik
meet = no_meet
abuse = false

 

 

Ссылка на комментарий
Поделиться на других сайтах

@AndreySol Ну здрасьте, приехали, а как разговор Васильева и Сахарова в бункере учёных? Как же разговор шустрого с бандосами? Это только что первое на ум пришло, я уверен что таких ситуаций в игре более, а в модах - подавно.

Ссылка на комментарий
Поделиться на других сайтах

@I am Dead @Купер 

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

Ссылка на комментарий
Поделиться на других сайтах

@AndreySol Полнейший бред, уроки русского языка вам поучить, товарищ! Диалог это в первую очередь разговор между двумя и более лицами, что в свою очередь и имел ввиду товарищ @Rod_K

1 час назад, AndreySol сказал(а):

обыкновенный отыгрыш неписями своей логики, с анимациями и воспроизведением прописанных звуков, и с определенной синхронизацией между схем.

По твоему именно с такой трактовкой должны все задавать вопросы в этой теме?

Изменено пользователем I am Dead
Ссылка на комментарий
Поделиться на других сайтах

Оффтоп:

Скрытый текст

Да ладно, чего зря оффтопить, всё равно без предоставленной проблемной логики гадать можно до морковкиного заговенья :biggrin:

 

Ссылка на комментарий
Поделиться на других сайтах

1 час назад, I am Dead сказал(а):

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

В чём же там бред? Всё правильно. То что вы, мил человек, упоминали, есть не более чем сценки - логика + анимации + звуки. С точки зрения игры, диалог с неписями может вести только гг.

Моя нычка номер 1, Нычка номер 2

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

Ссылка на комментарий
Поделиться на других сайтах

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

Здесь идет логика персонажа:

[logic]
active = remark1
danger = danger_ignore
 
[danger_ignore]
ignore_distance = 5
 
[remark1]
no_move = true
meet = meet@self
 
[meet@self]
use = {=dist_to_actor_le(12) -kvest_vodka_started} self
meet_dialog = {-kvest_vodka_started} escape_trader_oops

Она, до поры до времени, работала, но как только я начал дальше разрабатывать модификацию, начались баги. Теперь, при приближении актора к нпс, полностью пропадает возможность сдвинуться с места, а также диалоговое окно не появляется на экране. Прошу заметить, что раньше все отменно работало без нареканий, но теперь диалог не работает. Хотя, если актор сам начинает диалог (пишу вместо <start_dialog>escape_trader_oops</start_dialog> ---> <actor_dialog>escape_trader_oops</actor_dialog>, то диалог появляется и квест работает (нажимаю F и можно отвечать НПСу), если же начинает нпс, то диалог не показывается, хотя логика персонажа отчасти работает, поскольку при приближении к нпс что-то происходит ( блокируется движение).

Добавлено  Опричник,

Для "Спасибо" в каждом сообщении справа-внизу есть кнопки.

Ссылка на комментарий
Поделиться на других сайтах

@Rod_K , попробуй уменьшить дистанцию с 12 до, например, 5 метров. В движке на дистанцию, с которой можно начинать диалог, ограничение стоит, не помню только, какое именно. И, да - ремарк в качестве основной схемы - это моветон.

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

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий
Поделиться на других сайтах

7 часов назад, naxac сказал(а):

И, да - ремарк в качестве основной схемы - это моветон.

Много раз встречал подобное утверждение и до сих пор не знаю, что значит "основная/активная схема"? Объясните, пожалуйста.

Изменено пользователем WinCap
Ссылка на комментарий
Поделиться на других сайтах

@WinCap, под "основной схемой" подразумевается та схема, которая используется на постоянной основе для просто стоящего на месте NPC (или циклично перемещающего по определённым путям). Для этих целей используются walker и animpoint.

 

Как правило, remark применяется исключительно для небольших сценок с последующим переходом на "основные схемы" (отыграл нужную анимацию/реплику в remark и снова перешёл в walker). Если использовать её в качестве постоянной, то NPC банально не вернётся "на своё место" после столкновения с противником (или если кто-то его случайно "отодвинет").

Ссылка на комментарий
Поделиться на других сайтах

@naxac К сожалению, ничего не происходит. Актор при приближении к нпс убирает оружие, бинокль и т.д. и стоит на месте. Диалоговое окно не появляется.

Ссылка на комментарий
Поделиться на других сайтах

Очередное кострище ушло в свободное плаванье (переместилось метров на 5 вверх):

2375746ebbe3t.jpg

При этом координаты всех элеменетов костра одинаковые и указывают правильное местоположение:

Скрытый текст


[25.06.21 12:02:44.041] 1. smart_terrain -- bar_ecolog_kamp x=53.180000305176 y=-11.630000114441 z=-260.14001464844; id=15023; story_id=-1
[25.06.21 12:02:44.041] 2. space_restrictor -- yan_campfire1_restr x=53.180000305176 y=-11.630000114441 z=-260.14001464844; id=15026; story_id=-1
[25.06.21 12:02:44.042] 3. physic_object -- yan_campfire1 x=53.180000305176 y=-11.630000114441 z=-260.14001464844; id=15027; story_id=-1
[25.06.21 12:02:44.108] 4. zone_flame_small -- yan_campfire1_flame x=53.180000305176 y=-11.630000114441 z=-260.14001464844; id=60440; story_id=804729
[25.06.21 12:02:44.109] 5. lights_hanging_lamp -- yan_campfire1_light x=53.180000305176 y=-11.630000114441 z=-260.14001464844; id=60441; story_id=804730

 

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

Скрытый текст

function test25062021()
    for i = 1, 65534 do    
        local obj = alife():object(i)
        if obj and obj:name()== "yan_campfire1" then
            --перемещение        
            local xpos=obj.position.x
            local ypos=obj.position.y
            local zpos=obj.position.z
            ypos=ypos+5    --на 5 метров вверх!
            local vPos = vector():set(xpos,ypos,zpos)
            local pk = m_netpk.net_cse_abstract(obj)
            if pk:isOk() then
                log("!ОК!")
                local status = pk:setCallback( function(data)
                    data.position  = vPos --/ change property 'position' in 'cse_abstract'
                end )
            end            
        end
    end
end

 

Что это такое, и как это побороть (вернуть кострище на место!)?

Изменено пользователем phalcor
Ссылка на комментарий
Поделиться на других сайтах

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

Ссылка на комментарий
Поделиться на других сайтах

@Colder В некоторых спавнерах есть возможность телепортирования на другие Локи и был ещё мод "кпк разработчика" (если правильно помню название) ,там тоже есть такая возможность.

Ссылка на комментарий
Поделиться на других сайтах

@phalcor я пришел к выводу,что это проблема физики. Могу посоветовать только переспаун. В движке я пытался это исправить, но не уверен, получилось или нет. Точнее, не стал заморачиваться с проверкой, т.к. автоматический скриптовый переспаун, который уже работал на тот момент, меня устраивал.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

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

AMK-Team.ru

×
×
  • Создать...