Mododel15 2 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 (изменено) Всем привет! Подскажите пожалуйста, почему у меня скрипт работает через раз? Платформа ТЧ, переделал мод худы вещей. Заранее спасибо) Вот скрипт: snd = sound_object([[interface\inv_food]]) function use_bread_oz(obj) if obj ~= nil then if obj:section() == "bread" then this.Timer_zrems_1() for i = 1, 1 do alife():create("baton_b", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end end end end local flo2 = false local Timer_zrems function Timer_zrems_1() --/ запуск таймера if not flo2 then Timer_zrems = time_global() + 1*3000 --/ взводим таймер на 6se snd:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d) flo2 = true end if flo2 and not Timer_zrems then flo2 = false end end function Timer_zrems_2() --/ вызывается из ':update' сталкер-биндера if Timer_zrems and Timer_zrems < time_global() then --/ проверка текущего значения Timer_zrems = nil --/ выключаем таймер this.del_naxren() end end function del_naxren() local oitem = db.actor:object("baton_b") if oitem then db.actor:drop_item(oitem) alife():release(alife():object(oitem:id()), true) end end Изменено 15 Ноября 2015 пользователем Kirgudu Добавлено Kirgudu, 15 Ноября 2015 Портянки прячем под спойлер! Ссылка на комментарий
mole venomous 3 433 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 (изменено) Интересует следующий вопрос: возможно ли реализовать проверку получения хита (тип fire_wound) актёром и/или НПС и деление полученого хита на коэффициент (ТЧ 1.0004, АМК-1.4.1). Необходимо для обхода damages.ltx при создании новых костюмов с разной пулестойкостью. В первую очередь возникает проблема именно в грамотном написании функции, иначе бы сам всё проверил. Изменено 15 Ноября 2015 пользователем mole venomous Здесь могла быть ваша реклама. Ссылка на комментарий
Карлан 1 049 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 @mole venomous, без движка через то самое место, в оригинале даже тип хита не передается, не говоря о пересчете хита, можно конечно пойти в обход, и в зависимости от фаз луны убавлять/прибавлять здоровье и "броню" где будет учитываться количество хита, но лучше сделай перерасчет прямо в движке (или хакни чтобы в скриптах все рассчитать и передать обратно движку). к тому же у актора нет хит-коллбека, и делать для всех костюмов не через damages это так себе затея. и еще замечу что зависит не только от damages крепость чуваков. Ссылка на комментарий
makdm 37 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 (изменено) @Mododel15, так попробуй: snd = sound_object([[interface\inv_food]]) function use_bread_oz( obj ) if obj == nil then return end if obj:section() ~= "bread" then return end local s_obj = alife():create( "baton_b", vector(), 0, 0, db.actor:id() ) snd:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d) local Timer_zrems = time_global() + 3000 local effect_start = function() if s_obj.online and Timer_zrems < time_global() then return true end end local effect_stop = function() if snd:playing () then snd:stop () end alife():release( s_obj, true ) end level.add_call( effect_start, effect_stop ) end Изменено 15 Ноября 2015 пользователем makdm Ссылка на комментарий
dsh 3 824 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 возможно ли реализовать проверку получения хита (тип fire_wound) актёром и/или НПС и деление полученого хита на коэффициентВозможно с использованием x-ray extensions. Там есть коллбэк, который вызывается перед обработкой хита и в нём можно менять параметры хита. Пример можешь найти вот в этом скрипте: https://github.com/dsh2dsh/op2ogse/blob/master/gamedata/scripts/dsh_art_degrad.script например в функции apply_outfit_protection. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
mole venomous 3 433 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 Буду разбираться с этим, спасибо за информацию. А вот что касается damages, это ведь только для НПС? И можно ли туда добавлять секции, которые будут работать. На практике пробовал и результата не увидел. Здесь могла быть ваша реклама. Ссылка на комментарий
Карлан 1 049 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 @mole venomous, как это, и для монстров это все работает, и секции можно свои добавлять. Ссылка на комментарий
mole venomous 3 433 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 Значит всё моя невнимательность... Сую голову глубоко и не вижу, что на поверхности. Здесь могла быть ваша реклама. Ссылка на комментарий
Mododel15 2 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 (изменено) так попробуй Спасибо огромное! Но функция удаления не работает Изменено 15 Ноября 2015 пользователем Mododel15 Ссылка на комментарий
makdm 37 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 Но функция удаления не работает У меня всё работает. Ищите ошибку у себя. 1 Ссылка на комментарий
Mododel15 2 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 У меня всё работает. Ищите ошибку у себя. Всё перепроверил: и bind_stalker и сам скрипт xr_baton. Получается что кушаю батон, мне спавнится сам худ батона как и раньше, но удаляться худ видимо не хочет. Из-за вылета пришлось убрать в bind_stalker строчку xr_baton.Timer_zrems_2() т.к. в скрипте эта функция отсутствует. Ссылка на комментарий
Mododel15 2 Опубликовано 16 Ноября 2015 Поделиться Опубликовано 16 Ноября 2015 У меня всё работает. Ищите ошибку у себя. Еще раз перепроверил, со скриптом всё нормально, прописал другой предмет в спавн, всё заработало, значит проблема в конфиге худа baton_b. Помогите исправить пожалуйста [baton_activation] starting = 0.5, detectors\geiger_click3, 0, 0, 0, 0, "","idle"flying = 0, detectors\geiger_click3, 0, 0, 0, 0, "","idle"idle_before_spawning = 9, detectors\bomb_timer, 0, 0, 0, 0, "","idle"spawning = 0.5, detectors\geiger_click3, 0, 0, 0, 0, "","idle"[baton_b]:identity_immunitiesGroupControlSection = spawn_group$spawn = "weapons\mine\baton_b"hud = baton_b_hudanimation_slot = 11allow_inertion = trueslot = 2attach_angle_offset = 0,0,0attach_position_offset = -0.1,-0.1,0attach_bone_name = bip01_r_handbelt = falseaf_actor_properties = offactor_properties = on$prefetch = 64cform = skeletonclass = ARTEFACTvisual = weapons\bred\bred.ogfdescription = "Корка хлеба"inv_name = "Огрызок"inv_name_short = "Огрызок"inv_weight = 0.0inv_grid_width = 1inv_grid_height = 1inv_grid_x = 11inv_grid_y = 9cost = 8jump_height = 0lights_enabled = falsesnd_draw = weapons\pm_drawsnd_holster = weapons\generic_holstersnd_shoot = weapons\t_pm_shot ;pm_shootsnd_empty = weapons\pistol_emptysnd_reload = weapons\pm_reload, 0.8snd_close = weapons\generic_closesnd_idle_sprint = weapons\generic_closesnd_hide = weapons\generic_closesnd_show = weapons\generic_closesnd_activate = weapons\generic_closesnd_idle = weapons\generic_close;скорости увеличения (уменьшения)health_restore_speed = 0.0radiation_restore_speed = 0.0satiety_restore_speed = 0.0power_restore_speed = 0.0bleeding_restore_speed = 0.0hit_absorbation_sect = baton_absorbationartefact_activation_seq = baton_activation[baton_b_hud]orientation = 0, 0, 0position = 0, 0, 0visual = huds\hleb\hleb.ogfanim_idle_sprint = hleb_eatanim_activate = hleb_eatanim_show =hleb_eatanim_hide = hleb_holsteranim_idle = hleb_eat[baton_absorbation]burn_immunity = 1.0 ;коэффициенты иммунитетаstrike_immunity = 1.0shock_immunity = 1.0wound_immunity = 1.0radiation_immunity = 1.0telepatic_immunity = 1.0chemical_burn_immunity = 1.0explosion_immunity = 1.0fire_wound_immunity = 1.0 Ссылка на комментарий
Wlad777 24 Опубликовано 17 Ноября 2015 Поделиться Опубликовано 17 Ноября 2015 А вот следующий вопрос: есть zone_flame_small, рядом стоит актор. Дистанция до этого конкретного костра получена, нужно узнать горит он или нет. Можно ли это отследить? Камрады, неужели ни у кого нет идеи и желания подсказать?Как узнать, выключена эта аномалия или включена? --------------------------------- www.amk-zone.de Ссылка на комментарий
Карлан 1 049 Опубликовано 17 Ноября 2015 Поделиться Опубликовано 17 Ноября 2015 @Wlad777, вариант 1: добавляешь класс для костров, пишешь им биндер, пишешь методы включения/отключения/проверки и сохранение горения до кучи ~ полчаса займет; вариант 2: составляешь массив всех костров в игре, на апдейте их крутишь и проверяешь что горит что нет, там партикл и лампа, ресетишь и делаешь псевдо-метод проверки активности костра ~ не знаю сколько займет, не делал, но массив не маленький будет. Ссылка на комментарий
dsh 3 824 Опубликовано 17 Ноября 2015 Поделиться Опубликовано 17 Ноября 2015 @Wlad777, ну ведь кто-то этот костер гасит. По умолчанию же он горит. Вот пусть этот кто-то и отмечает факт погашения. Или наоборот, если кто-то костер зажигает, то пусть он отмечает факт загорания. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Wlad777 24 Опубликовано 17 Ноября 2015 Поделиться Опубликовано 17 Ноября 2015 @Карлан, Очень избыточно для проверки, что рядом можно сожрать еду. @dsh, мод динамических костров от kstn. Тушит/зажигает через disable_anomaly() / enable_anomaly() Я думал, может есть способ отследить проигрываются ли партиклы огня, например. --------------------------------- www.amk-zone.de Ссылка на комментарий
Карлан 1 049 Опубликовано 17 Ноября 2015 Поделиться Опубликовано 17 Ноября 2015 @Wlad777, ты прикалываешь или что? смотри particle_object, там есть метод playing(), дальше рассказывать? только там не партиклы как делать я выше написал, и какие объекты в костре я тоже сказал, тебе надо манипулировать тремя объектами, партиклом аномалией и лампой, все, больше ничего не требуется Ссылка на комментарий
Wlad777 24 Опубликовано 17 Ноября 2015 Поделиться Опубликовано 17 Ноября 2015 Wlad777, ты прикалываешь или что? Вот на такие заходы всегда хочется взять и нагрубить в ответ. Ты считаешь, что все тут скриптеры от бога? Я вот не скриптер, что делать? Шевеление бровями на форуме уже зашкаливает, по сравнению с начальными годами. смотри particle_object, там есть метод playing(), дальше рассказывать? Да, рассказывай.Актор стоит у аномалии , её idle_particles в конфиге explosions\campfire_05Сделай мне, пожалуйста, отрывок кода, возвращающий true/false, в зависимости от того, активен ли idle_particles Добавлено Dennis_Chikin, 18 Ноября 2015 Спрашивать. Подробнее. ЕЩЕ ПОДРОБНЕЕ. Отвечающий, обычно, владеет телепатией не сильно лучше спрашивающего. Я бы даже сказал, обычно - заметно хуже. Ибо сам половины вопросов не понимаю. 3 --------------------------------- www.amk-zone.de Ссылка на комментарий
abramcumner 1 159 Опубликовано 17 Ноября 2015 Поделиться Опубликовано 17 Ноября 2015 (изменено) Актор стоит у аномалии , её idle_particles в конфиге explosions\campfire_05 Сделай мне, пожалуйста, отрывок кода, возвращающий true/false, в зависимости от того, активен ли idle_particlesНе сделаешь - проигрывание партиклов аномалией без модификация движка не отслеживается. Но вообще Карлан говорит четко по делу и про биндер и про 3 объекта Слушай его. Вот в скрипте, где у тебя включается костер, добавь установку флажка в true, где выключается - в false. А когда хочешь узнать, горит ли костер, получай значение этого флажка. С большой вероятностью этот флажок в скрипте уже есть. Шевеление бровями на форуме уже зашкаливает, по сравнению с начальными годами. А потому как раньше слушать умели, а сейчас все умничать стараются - типа "мы и сами с усами". Изменено 17 Ноября 2015 пользователем abramcumner Ссылка на комментарий
RayTwitty 506 Опубликовано 17 Ноября 2015 Поделиться Опубликовано 17 Ноября 2015 (изменено) Как узнать, выключена эта аномалия или включена?Если стоит xray-extensions, можно попробовать получить текущий стейт аномалии, он хранится в m_eZoneState класса CCustomZone. Если аномалия выключена, стейт будет равен eZoneStateDisabled. Сделай мне, пожалуйста, отрывок кода, возвращающий true/false, в зависимости от того, активен ли idle_particlesНе сделает, объект партикла не получить таким образом. Тут либо получать из движка (как написал я), либо эмуляция (по сути дублирование стейт-системы движка) через скриптовый биндер. Изменено 17 Ноября 2015 пользователем RayTwitty 1 1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти