Kolmogor 5 Опубликовано 26 Августа 2009 Вообще по идее должно затягивать, но для надежности можешь вызвать после спавна: obj:brain():update() local smart_terrain_id = obj:smart_terrain_id() if smart_terrain_id ~= 65535 then --затянуло в гулаг else --не затянуло end Так сделано в респавнерах(se_respawn.script) Поделиться этим сообщением Ссылка на сообщение
Kolmogor 5 Опубликовано 31 Января 2010 не просто перебрать все предметы, а учесть неполные пачки патронов и навешанные на оружие глушители, прицелы и прочее Все реально, но кода получается много :ny_rolleyes: Поделиться этим сообщением Ссылка на сообщение
Kolmogor 5 Опубликовано 31 Января 2010 (изменено) вывод на экран можно сделать через get_hud():GetCustomStatic get_hud():AddCustomStatic посмотри как эти функции используются в оригинальных скриптах и в АМК ну а подсчет веса вести для начала так же, как в АМК считают объем: ставить коллбеки на поднятие/выбрасывание предмета Изменено 31 Января 2010 пользователем Kolmogor Поделиться этим сообщением Ссылка на сообщение
Kolmogor 5 Опубликовано 2 Февраля 2010 (изменено) ZeeK, В ЗП так <action>spawn_test.spawn_muzhik1</action> инфопоршни уже не работают. Теперь ручками в actor_binder:info_callback ставить проверку на свой инфопоршень и вызывать функцию Изменено 2 Февраля 2010 пользователем Kolmogor Поделиться этим сообщением Ссылка на сообщение
Kolmogor 5 Опубликовано 10 Марта 2010 TREWKO, при отбегании от него дальше 5 метров Тогда бы так и написал if z:position():distance_to(db.actor:position()) > 5 then Поделиться этим сообщением Ссылка на сообщение
Kolmogor 5 Опубликовано 24 Апреля 2010 (изменено) Такой вариант не катит. То что написал ты, используется по-другому local xml = CUIScriptWnd() --... --здесь нужно создать и зарегистрировать MessageBox под именем "TECT" --... -- здесь ты получаешь ранее созданный MessageBox local message_box = xml:GetMessageBox("ТЕСТ") -- и здесь можешь с ним что-нибудь сделать, например, показать Почему бы не посмотреть, как уже сделано в оригинале. MesssageBox`ы, например, выводятся в главном меню. Вот как сделано в ЗП(файл ui_main_menu.script): local message_box = CUIMessageBoxEx() message_box:InitMessageBox("message_box_quit_windows") message_box:ShowDialog(true) Можно найти пример и в ТЧ Изменено 24 Апреля 2010 пользователем Kolmogor Поделиться этим сообщением Ссылка на сообщение
Kolmogor 5 Опубликовано 8 Июня 2010 Возможно такое(Если ГГ видит Долговца, то...)?: if db.actor:see("dolg_regular") then ГГ никого не видит, то есть функция db.actor:see всегда возвращает false. Наоборот проверить можно И возможна ли проверка попадения какого либо объекта в зону(аномалию, спейс рестриктор)? Что то типа: local obj = "wpn_pm" local am = "zone_flame" if obj попал в am then проверка будет выглядеть так: if am:inside(obj:position()) then Поделиться этим сообщением Ссылка на сообщение
Kolmogor 5 Опубликовано 9 Июня 2010 Влад local wpn_sec = actor:item_in_slot(slot):section() Зря section() вызвал - у тебя wpn_sec присвоилась строка с названием секции оружия. У ней понятное дело никакого метода clsid() нет Попробуй написать просто local wpn_sec = actor:item_in_slot(slot) Поделиться этим сообщением Ссылка на сообщение
Kolmogor 5 Опубликовано 9 Июня 2010 Unnamed Black Wolf, Через точку это если серверный объект, а там был клиентский Поделиться этим сообщением Ссылка на сообщение
Kolmogor 5 Опубликовано 12 Июля 2010 Darien, нет, позиция записи не может быть меньше позиции чтения Посмотри внимательней на код в симбионе и асдс - там должны использоваться 2 пакета: один получается из STATE_Write, другой из UPDATE_Write По идее параметры, начинающиеся на upd_, должны вычитываться из пакета, полученного UPDATE_Write Поделиться этим сообщением Ссылка на сообщение
Kolmogor 5 Опубликовано 12 Июля 2010 Darien, Не понимаю. Почему не используешь ту функцию, которая не читает upd_ и не использует UPDATE_Write? Поделиться этим сообщением Ссылка на сообщение
Kolmogor 5 Опубликовано 2 Сентября 2010 (изменено) antreg, В шапке даны ссылки на цикл статей. Собственно ответы на твои вопросы там есть. 1) Вопрос №1: В конечной точке пути [lesnik_walk] (wp6 которая) прописана анимка |a=run. Возможно, это не совсем корректно. Что должно быть там? И ещё: в некоторых примерах путей "волкеров" в конечной точке прописаны такие анимки: wp06|sig=final или wp06|sig=return или wp06|arrive Что это за анимки и как они работают на финальной точке и на что влияют? Просто разницы большой не наблюдается. Это не анимки, а сигналы. По ним можно переключать логику. Подробней здесь 2) Вопрос №2: Точек walk 7 штук, а точек look три. Эти три точки look флажками привязаны к трём точкам walk, которые не друг за другом идут. Надо ли в этом случае "связывать" точки look друг с другом линком, так же, как связаны точки walk? Точки path_look связывать не надо - связи в этих путях игнорируются. 3) Вопрос №3: в точках walk флажки стоят только у тех точек, которые привязаны к точкам look, в которых отыгрывается анимация или в которой остановка и направление взгляда задаётся. У остальных точек walk pх:flags = не проставлены. Это правильно? Или же всё-таки надо проставлять флажки (с последовательными номерами) у всех точек walk? Информации по таким тонкостям в сети практически нет, поэтому, думаю многим такая схема движения может быть интересна. Этими флажками связываются точки path_walk и path_look, то есть в точке path_walk c заданным флажом НПЦ посмотрит в точку из path_look с таким же флажком. Цитат из доки по ссылке: В точках path_walk, которым соответствуют точки пути path_look (стоят одинаковые флажки) персонаж останавливается и смотрит в определенную точку, при этом отыгрывая (или не отыгрывая) определенную анимацию. Byurrer, возможно ошибка в function checkStalker(npc_community, gulag_type, npc_rank, se_obj) if gulag_type == "esc_bandits_smart_terrain" then return npc_community == "dolg" end ... Здесь написано что твоему смарт-террейну подходят только долговцы, а у тебя насколько я понял из алл.спавна там сталкеры. Напиши так: function checkStalker(npc_community, gulag_type, npc_rank, se_obj) if gulag_type == "esc_bandits_smart_terrain" then return npc_community == "stalker" end ... Изменено 2 Сентября 2010 пользователем Kolmogor Поделиться этим сообщением Ссылка на сообщение
Kolmogor 5 Опубликовано 10 Сентября 2010 Министр, ) жестоко себя ведешь SDR-team, попробуй так: function buhaem() local item = db.actor:object("vodka") if item then db.actor:eat(item) end end надеюсь у тебя хоть скрипт, где эта функция лежит, называется pal.script? Поделиться этим сообщением Ссылка на сообщение
Kolmogor 5 Опубликовано 23 Октября 2010 SkyLoader, попробуй разобраться, как сделано у xStream`а. Самому тебе придется написать тоже самое. Ну и malandrinus тебе правильно все проблемы расписал. В теории алгоритм для ТЧ простой: - говоришь НПЦ уйти в онлайн - дожидаешься его ухода - перепаковываешь на новый визуал - возвращаешь обратно. На практике все сложнее. Поделиться этим сообщением Ссылка на сообщение
Kolmogor 5 Опубликовано 28 Октября 2010 Другой вопрос - как красиво поймать атаку монстра на актора ? можно попробовать в апдейте монстра получать best_enemy и текущую анимацию. когда best_enemy актор и анимация атакующая - вот она и атака на монстра. Но не очень красиво Поделиться этим сообщением Ссылка на сообщение
Kolmogor 5 Опубликовано 6 Ноября 2010 ZeeK, Потому что не скопировал функцию isAnomaly. Проверь _g.script Если имя функции пишется без имени модуля впереди, то она лежит в _g.script Поделиться этим сообщением Ссылка на сообщение