UriZzz 1 004 Опубликовано 20 Июня 2021 Поделиться Опубликовано 20 Июня 2021 1 час назад, I am Dead сказал(а): Полнейший бред, уроки русского языка вам поучить, товарищ! В чём же там бред? Всё правильно. То что вы, мил человек, упоминали, есть не более чем сценки - логика + анимации + звуки. С точки зрения игры, диалог с неписями может вести только гг. Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
Rod_K 1 Опубликовано 24 Июня 2021 Поделиться Опубликовано 24 Июня 2021 Спасибо всем, кто помогал с предыдущим вопросом. Вы все очень помогли! Сейчас у меня возникла одна проблема, касающаяся неправильной работы логики нпс. Здесь идет логика персонажа: [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 и можно отвечать НПСу), если же начинает нпс, то диалог не показывается, хотя логика персонажа отчасти работает, поскольку при приближении к нпс что-то происходит ( блокируется движение). Добавлено Опричник, 24 Июня 2021 Для "Спасибо" в каждом сообщении справа-внизу есть кнопки. Ссылка на комментарий
naxac 2 445 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 (изменено) @Rod_K , попробуй уменьшить дистанцию с 12 до, например, 5 метров. В движке на дистанцию, с которой можно начинать диалог, ограничение стоит, не помню только, какое именно. И, да - ремарк в качестве основной схемы - это моветон. Изменено 25 Июня 2021 пользователем naxac 3 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
WinCap 316 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 (изменено) 7 часов назад, naxac сказал(а): И, да - ремарк в качестве основной схемы - это моветон. Много раз встречал подобное утверждение и до сих пор не знаю, что значит "основная/активная схема"? Объясните, пожалуйста. Изменено 25 Июня 2021 пользователем WinCap S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
Painter 3 386 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 @WinCap, под "основной схемой" подразумевается та схема, которая используется на постоянной основе для просто стоящего на месте NPC (или циклично перемещающего по определённым путям). Для этих целей используются walker и animpoint. Как правило, remark применяется исключительно для небольших сценок с последующим переходом на "основные схемы" (отыграл нужную анимацию/реплику в remark и снова перешёл в walker). Если использовать её в качестве постоянной, то NPC банально не вернётся "на своё место" после столкновения с противником (или если кто-то его случайно "отодвинет"). 1 Портфолио Ссылка на комментарий
Rod_K 1 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 @naxac К сожалению, ничего не происходит. Актор при приближении к нпс убирает оружие, бинокль и т.д. и стоит на месте. Диалоговое окно не появляется. Ссылка на комментарий
phalcor 60 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 (изменено) Очередное кострище ушло в свободное плаванье (переместилось метров на 5 вверх): При этом координаты всех элеменетов костра одинаковые и указывают правильное местоположение: Скрытый текст [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 Что это такое, и как это побороть (вернуть кострище на место!)? Изменено 25 Июня 2021 пользователем phalcor Ссылка на комментарий
Colder 12 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 Можно ли скриптово, переместить актора на другую локацию без использования спавна? Или где можно подсмотреть подобное? Ссылка на комментарий
I am Dead 912 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 @Colder В некоторых спавнерах есть возможность телепортирования на другие Локи и был ещё мод "кпк разработчика" (если правильно помню название) ,там тоже есть такая возможность. 1 Ссылка на комментарий
dsh 3 824 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 @phalcor я пришел к выводу,что это проблема физики. Могу посоветовать только переспаун. В движке я пытался это исправить, но не уверен, получилось или нет. Точнее, не стал заморачиваться с проверкой, т.к. автоматический скриптовый переспаун, который уже работал на тот момент, меня устраивал. 1 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
phalcor 60 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 (изменено) @dsh Понятно, физика, будь она неладна. Удаляется кострище без проблем, а вот как его заспавнить из скрипта? В распакованном алл-спавне нашёл его секцию, но что-то не соображу, как сделать спавн? Скрытый текст [8380] ; cse_abstract properties section_name = physic_object name = yan_campfire1 position = 53.1800003051758,-11.6300001144409,-260.140014648438 direction = 0,0,0 unknown_id = 0 script_version = 7 ; cse_alife_object properties game_vertex_id = 1480 distance = 0.300000011920929 level_vertex_id = 66633 object_flags = 0xffffff3a custom_data = <<END [collide] ignore_static END ; cse_visual properties visual_name = dynamics\koster\koster_palki ; cse_ph_skeleton properties skeleton_name = skeleton_flags = 1 ; cse_alife_object_physic properties physic_type = 0x3 mass = 10 fixed_bones = bone01 Изменено 25 Июня 2021 пользователем phalcor Ссылка на комментарий
Marafon6540 760 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 (изменено) 28 минут назад, phalcor сказал(а): fixed_bones = bone01 Тебе надо зафиксировать вот эту кость. Попробуй в свою функцию после data.position = vPos добавить что-то типа data.physic_type = 3 data.mass = 10 data.fixed_bones = "bone01" Изменено 25 Июня 2021 пользователем Marafon6540 1 Трилогия Апокалипсис. Упавшая звезда. Честь наемника. v. 1.2 УЗЧН v.1.3 + ОГСРх64 Последний сталкер v. 1.2 ПС v. 1.3 + ОГСРх64 Ссылка на комментарий
phalcor 60 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 @Marafon6540 добавил. Увы, всё также, исчезнет на секунду и снова появится на прежнем месте. Ссылка на комментарий
dsh 3 824 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 2 hours ago, Marafon6540 said: Тебе надо зафиксировать вот эту кость. Это не поможет. В том месте, где происходит эта проблема, фиксированные кости не обрабатываются. Оно там о такой штуке просто не знает. Хотя это не отменяет необходимость фиксации костей. Но против этой проблемы - это не поможет. 2 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
phalcor 60 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 @dsh 10 минут назад, dsh сказал(а): Это не поможет. Ну пока да, не помогло. Если не сложно, подскажи, как ты из скрипта делаешь переспавн? Ссылка на комментарий
dsh 3 824 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 @phalcor начать изучение этого вопроса можно вот отсюда https://github.com/dsh2dsh/op2ogse/blob/8b534ff69910d00c98ca3fcf9be5db2a95d0bac1/gamedata/scripts/ogse/ogse_campfire.script#L13 Вот, собственно говоря, сам переспаун https://github.com/dsh2dsh/op2ogse/blob/8b534ff69910d00c98ca3fcf9be5db2a95d0bac1/gamedata/scripts/ogse/ogse_campfire.script#L980 4 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Krolevarka 2 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 Решил сделать фичу, как в ОП 2. При смерти ГГ выводится сообщение о том, что он сдох. Решил сделать также, но у меня не получилось. Вписал проверку жив ли ГГ в начальную инфопорцию. (Не знаю важно ли это) info_portion id="storyline_actor_start"> <task>storyline_eliminate_gunslinger</task> <action>my.god_spawn</action> <action>my.gg_podoh</action> </info_portion> Сам скрипт: function gg_podoh() if not db.actor:alive() then db.actor:give_info_portion("gg_pomer") end function sms_otpravka() local snd = sound_object([[device\pda\pda_tip]]) local sactor = alife():actor() local cactor = level.object_by_id(sactor.id) snd:play_no_feedback(db.actor,sound_object.s2d, 5, vector():set(0, 0, 0), 0.7) cactor:give_game_news("Система:\\n%c[255,200,200,200]ГГ сдох.", "ui_iconsTotal_found_money", Frect():set(0,0,83,47), 5001, 8 000) end end Пробовал также через news_manager.send_tip. Но это не помогло. Сам поршень: <info_portion id="gg_pomer"> <action>kalecheniy_death.sms_otpravka </action> </info_portion> Скорее всего скрипт неправильно написан, или же сообщения после смерти главного героя просто не отправляются. Уже кучу раз перепробовал и всё никак не получается. Ссылка на комментарий
naxac 2 445 Опубликовано 26 Июня 2021 Поделиться Опубликовано 26 Июня 2021 @Krolevarka , а откуда вызывается твоя функция, отправляющая сообщение? Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
mole venomous 3 397 Опубликовано 26 Июня 2021 Поделиться Опубликовано 26 Июня 2021 4 часа назад, Krolevarka сказал(а): просто не отправляются Сообщения после смерти ГГ вполне себе отправляются. Разве не обращал внимания, когда актор валяется мёртвый, а рандомные смс от сталкеров продолжают поступать. Здесь могла быть ваша реклама. Ссылка на комментарий
Krolevarka 2 Опубликовано 26 Июня 2021 Поделиться Опубликовано 26 Июня 2021 @naxac Решил сделать по другому. В bind_stalker создал проверку жив ли actor. Если не жив, то выдается инфопоршень. Этот инфопоршень отправляет сообщение. Скрытый текст if not db.actor:alive() then my.portion() end Скрытый текст <info_portion id="gg_smert"> <action>my.sms_otpravka</action> </info_portion> Скрытый текст function sms_otpravka(actor, npc) news_manager.send_tip(db.actor, "%c[255,255,128,128]System:\n%c[default]You are dead.", nil, nil, 40000) end function portion() db.actor:give_info_portion("gg_smert") end В итоге сообщение отправилось успешно. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти