dsh 3 824 Опубликовано 11 Июля 2015 (изменено) Снимаю/цепляю оптический прицел из скрипта. Сейчас делаю это, удаляя оружие и спауня новое, меняя нетпакет при спауне. Есть способы "синхронизировать" клиентский объект с серверным, что бы обойтись без удаления/спауна? Изменено 11 Июля 2015 пользователем dsh dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 11 Июля 2015 @UnLoaded, эксперименты показывают, что с x-ray extensions прицел можно нацепить визуально: wpn:set_wpn_int( 936, 1 ) Прицел на оружии появляется моментально. Вот только прицеливание осталось через мушку. В том смысле, что весь экран заполняет приближенная модель оптического прицела, вместо того, что бы смотреть через нее. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 19 Августа 2015 @UnLoaded, либо ты не все показал, либо у тебя что-то странное. Судя по использованию двух индексов, каждый элемент таблицы должен содержать таблицу, но не видно, что бы эти элементы инициализировались таблицами. Возможно lua сделает это за тебя, но кто знает, какие грабли в этом интеллекте будут. Я бы не надеялся на такой автоугадав. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 22 Августа 2015 @vampirnik77, самое первое решение, приходящее в голову: на первом апдейте поставить флажок и ничего не делать, а на втором апдейте проверить флажок, сделать что надо и сбросить его. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 29 Августа 2015 Знает кто-нибудь способ, как из скрипта определить, что моб сможет дойти с одной локации на другую, что они связаны? dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 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 Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 17 Ноября 2015 @Wlad777, ну ведь кто-то этот костер гасит. По умолчанию же он горит. Вот пусть этот кто-то и отмечает факт погашения. Или наоборот, если кто-то костер зажигает, то пусть он отмечает факт загорания. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 19 Ноября 2015 @HellRatz, т.е. у тебя собаки, имеющие один и тот-же clsid, имеют разные community? Тогда ты ничего не сделаешь, не меняя smart_terrains.script. Он расчитан на то, что один clsid будет иметь одно community. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 19 Ноября 2015 (изменено) чтобы гулаги брали на работу моих собак с новым коммунити, иначе он берет только то, что прописано в этой таблице Данный код не интересует коммунити твоих собак. Грубо говоря, если у тебя в смарте указано communities = dog и в smart_terrains.script [clsid.dog_s ] = "dog", то в этот смарт будет принят любой мутант с clsid == dog_s. По сути, смарт принимает к себе не по коммунити, которое указано в секции моба, а по clsid. Тот код, он просто для человекочитаемого вида. Я предполагаю, что ты используешь generic_lair. Иначе, ко всему этому, еще действуют правила конкретного гулага. generic_lair примет всех, кого примет смарт. Изменено 19 Ноября 2015 пользователем dsh dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 19 Ноября 2015 Вот и я так думал, а на деле оказалось иначе. Пока не прописал заместо "dog" свою community, моя новая собака не бралась в работу гулага. Конечно, ты же в смарте написал "dog_two", а в таблице "dog". Это таблица используется для перевода clsid в человекочитаемый формат, что бы значение потом сравнивать с тем, что указано в описании смарта. В твоем случае, т.к. ты хочешь более сложных правил, а именно, что бы указанный смарт принимал не всякую собаку, а только ту, у которой в секции указано "community = dog_two", нужно уже свою логику добавлять. Например вот так: function se_smart_terrain:get_obj_community( obj ) local cls = obj:clsid() if cls == clsid.script_stalker then return obj:community(), true else local comm = get_string( obj:section_name(), "community" ) if comm == "dog_two" then return comm, false else return monster_classes[ cls ], false end end end Или вообще вот так function se_smart_terrain:get_obj_community( obj ) local cls = obj:clsid() if cls == clsid.script_stalker then return obj:community(), true else return get_string( obj:section_name(), "community", monster_classes[ cls ] ), false end end Решать тебе. А может еще как-то более замороченно. Результат get_obj_community просто сравнивается со значениями из communities смарта и если совпадает с одним из этих значений, моб принимается в смарт, если другие условия тоже совпадают. Т.ч. никакой магии, возвращай из get_obj_community все, что тебе нужно и так, как тебе нужно. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 19 Ноября 2015 сделал по второму варианту, все заработало это более общий вариант, поэтому, что бы ничего работающего не сломать, убедиcь, что у всех мутантов прописано правильное community. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 28 Ноября 2015 @RayTwitty, просто мысль: может какой скрипт хит такой наносит, по факту выстрела? dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 8 Января 2016 @vampirnik77, используя x-ray extensions - можно. Вот тут https://github.com/KD87/xray-extensions/blob/master/help/%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%20%D0%B0%D1%80%D1%82%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%B0.script нужные смещения описаны. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 12 Января 2016 "freedom" атакует "dolg", но атаковать группировку "bandit" не хочет Во, как раз еще помню свое удивление, когда с этим столкнулся. В game_relations.ltx поправь отношения бандитов и свободы, а то они там нейтральны друг к другу. Если тебе именно это нужно. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 24 Февраля 2016 @kmsk, на вскидку, в качестве идеи. Отлавливаем появление патронов в инвентаре в on_take. Пробегаемся по инвентарю и ищем стволы, у которых с прошлого раза не стало патронов. Не самое оптимальное решение, но это всего лишь идея. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 18 Марта 2016 Ну и повесить на все это дело выполнение функции, если условие оружие-анимация выполнено. А какую анимацию? Если перезарядку, то что-то типа такого: local cur_wpn = {} function on_update( delta ) local wpn = db.actor:active_item() if not wpn then return end if not wpn:is_weapon() then return end if ( not cur_wpn.id ) or cur_wpn.id ~= wpn:id() then cur_wpn = { [ "ammo_n" ] = wpn:get_ammo_in_magazine(), [ "has_gl" ] = has_wpn_gl( wpn ), [ "has_silencer" ] = ( ogse_wpn_utils.get_silencer_status( wpn ) == 2 ), [ "id" ] = wpn:id(), [ "weapon_state" ] = wpn:get_hud_item_state(), [ "wpn" ] = wpn, } if cur_wpn.has_gl then cur_wpn.gl_mode = ogse_wpn_utils.get_gl_mode( wpn ) cur_wpn.gl_name = get_string( wpn:section(), "grenade_launcher_name" ) end end check_silencer( wpn ) local state = wpn:get_hud_item_state() if state == cur_wpn.weapon_state then if state == weapon_states.fire then local ammo_n = wpn:get_ammo_in_magazine() if ammo_n ~= cur_wpn.ammo_n then cur_wpn.ammo_n = ammo_n ogse_signals.get_mgr():call( "on_actor_fire", cur_wpn ) end end else cur_wpn.weapon_state = state if state == weapon_states.fire then cur_wpn.ammo_n = wpn:get_ammo_in_magazine() ogse_signals.get_mgr():call( "on_actor_fire", cur_wpn ) elseif state == weapon_states.switch then if cur_wpn.has_gl then local gl_mode = ogse_wpn_utils.get_gl_mode( wpn ) if cur_wpn.gl_mode ~= gl_mode then cur_wpn.gl_mode = gl_mode ogse_signals.get_mgr():call( "on_wpn_gl_mode", cur_wpn ) end end elseif state == weapon_states.reload then if ( db.actor:is_actor_sprinting() or db.actor:is_actor_climbing() ) and math.random() < level.get_game_difficulty() * 0.2 then db.actor:drop_item( wpn ) dsh.say_blin() end end end end Здесь обрабатывается стрельба, переключения подствольника и перезарядка. Сравнение с wpn:section() в начало уже сам добавить сможешь. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 19 Марта 2016 @AndrewMor, если я не путаю, в первую в цикле заносятся трупики, которые сейчас будут удалятся. Во вторую заносятся трупики, у которых story_id меньше 9510 и они не будут удаляться. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 20 Марта 2016 @FonSwong,если ты используешь x-ray extensions или OGSE, то там имеется колбэк, вызываемый перед обработкой хита. Вся нужная информация там имеется. Ты же, кажется, для OGSE делаешь? Найди там обработку бюрера, в скриптах. Ему из этого колбэка неуязвимость делается. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 21 Марта 2016 вообще платформа ЗП Про ЗП ничего не могу сказать. Что означает amount? Величина полученного хита. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 25 Марта 2016 @Zander_driver, речь шла не про хит колбек, а про колбек, который вызывается перед ним и из которого можно поменять свойства хита. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение