Kirag 41 Опубликовано 4 Января 2011 Disord Если ищет, значит где-то прописано. Поищи поиском по геймдате, в последних файлах, где ты что-то менял. Проверь, кстати, новости+сон сами по себе, на чистой игре (или для чего они там) Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 17 Мая 2011 Ulman В amk.script в 303-й строке пытается добавить к строке переменную params oau_reason=name.." "..params , которая является таблицей. Добавлять можно либо строку, либо число (оно само переведется в строку). При добавлении логических значений и nil - надо переводить их в строку: tostring(значение), таблицу, как таковую, не сожрет в принципе. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 2 Июня 2011 Disord Возможно, это происходит из-за того, что уровень еще не загрузился - из предположения, что в пространство имен level функцию запихнули не просто так, и уровень таки нужен. Попробуй поменять на объявление: game_time_factor = nil обновление - оно ж на актора завязано в конечном итоге, если спавним его, значит, уже есть куда. if not game_time_factor then game_time_factor = level.get_time_factor() end Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 3 Июня 2011 Igor88.89 Добавлю, что условие на не_видимость НПС актором вполне осмысленное - смена визуала требует переписывания нет-пакета. Пока объект - в данном случае НПС - в онлайне, это делать бесполезно. Надо переводить сталкера в оффлайн, менять нет-пакет и возвращать в онлайн, но во время пребывания в оффлайне НПС станет невидим, и это пропадание и появление будет прекрасно заметно в игре. Но если актор смотрит в другую сторону = не видит НПС, это пройдет незамеченным игроком. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 4 Июня 2011 Да и класс у сталкера не вполне кровососовский. Это как бы не в движке с экскаватором копаться придется, чтоб смену моделей поддерживал... Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 5 Июня 2011 TRAMP14 НПС в оффлайне будет существовать весьма формально, как все объекты на других уровнях. В том смысле, что он, конечно существует, можно отследить его положение и инвентарь - но это только перебором всех объектов в игре. Вот только из оффлайна он не сможет взаимодействовать с объектами на уровнях - участвовать в бою, например, или находиться под какой-то схемой. Фактически, для геймплея его не существует. Так что сделать на оффлайне духов Зоны врядли получится. Невидимого НПС больше смысла делать на прозрачной модели - так он хотя бы в игре нормально участвовать будет. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 5 Июня 2011 TRAMP14 Насколько я понимаю, хит можно нанести просто с направления - в xr_effects, вроде, была такая функция. А если указывать draftsman-а, то нужен онлайн объект. Записать id в таблицу, ты конечно сможешь, а вот что с этим id делать - совсем другая история... Со спавном дряни на месте оффлайнового НПС - вообще непонятно. Он и так никуда не денется, пока его alife():release-ом не убрать. В общем, несколько непонятен смысл того, что ты хочешь сделать. Если нужен удар из ниоткуда, без возможности дать сдачи - так и НПС не нужен. Если нужна возможность дать сдачи, то на оффлайне ты ее не вдруг построишь, разве что скриптовую. Онлайновый НПС оффлайнового как врага все равно не воспримет. Да и вообще никак не воспримет. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 5 Июня 2011 Igor88.89 А то мы не о сталкере говорим Наверняка очередная недоделка/недорезка. Возможно, в каком-то из билдов такая функция преодевания и была. Но в релизе нет даже функции получения визуала - приходится через нет-пакеты читать, молчу уже про его смену (для кровососов - персонально функция про невидимость, но то для класса кровососа, и на вполне конкретный визуал). Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 6 Июня 2011 Возникла такая задача: Дано: id непися, онлайн-объект прилагается. В схемы лезть нельзя. Нужно: Заставить НПС смотреть туда и только туда, куда надо, плевать, под какой он схемой. Особенно по вертикали. Перемещение не важно, может хоть на месте стоять. Критично, чтобы смотрел на воздушную цель и сопровождал ее. Пробовал так: state_mgr.set_state( npc, "threat_fire", nil, nil, {look_position = target_pos}, nil, nil, {yaw_delta=10} ) Если ставить на апдейт - дергается. Пытается уйти (видимо, из схемы) и снова посмотреть - приказ из апдейта. Если запихнуть в fastcall - стоит и смотрит. По горизонтали - более-менее. По вертикали - куда попало, либо горизонтально, либо вообще носом в землю, а нужно наверх. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 11 Июня 2011 (изменено) dragunof if db.actor:active_slot() == 5 then --значит, 5-й слот активен end P.S. Не прокатит с 0 (ножевым) слотом - db.actor:active_slot() выдает 0 и при активном ноже, и при убранном оружии (в ТЧ, по крайней мере) Изменено 11 Июня 2011 пользователем Kirag Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 13 Июня 2011 TRAMP14 Можно через нет-пакеты. Читаешь стандартный нет-пакет оружия (функцией из АМК, например), и смотришь параметр addon_flags. Он будет иметь значение от 0 до 7 (111 в двоичной системе): Аддоны: 0 = 000 = ничего 1 = 001 = пр 2 = 010 = пг 3 = 011 = пр + пг 4 = 100 = гл 5 = 101 = пр + гл 6 = 110 = пг + гл 7 = 111 = пр + пг + гл Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 14 Июня 2011 Ulman В play_at_pos, насколько я понимаю, первый аргумент - от чьего имени играется звук, второй - позиция относительно уровня, а не относительно "автора" звука. Третий аргумент не помню зачем, как бы не громкость, в любом случае он не обязателен, как и четвертый. Так, как написано, у тебя играется звук от имени актора, но в начале координат уровня, само собой, ты его просто не слышишь, даже если я не прав насчет громкости. Попробуй так: snd:play_at_pos(db.actor, device().cam_pos) P.S. Всю функцию на апдейт актора, само собой. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 16 Июня 2011 (изменено) Такое чувство, что звук у тебя запускается каждый апдейт, независимо от того, доиграл он предыдущий цикл или нет... Попробуй сохранять время запуска звука в переменной, и запускать снова только если прошло времени больше, чем длина звука. Изменено 16 Июня 2011 пользователем Kirag Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 21 Июня 2011 speczadanie По поводу таблицы, у тебя фактически таблица такая: table = {1 = a, 2 = b, 3 = c} тут только перебирать всю таблицу и сравнивать значения, что долго и нудно. Если сам вид таблицы не сильно принципиален, лучше переписать ее так: table = {a = true, b = true, c = true} (если a,b,c - строки, то в квадратных скобках: ["значение_а"] = true и т.д.) Тогда процесс проверки упрощается до if table[X] then ... end т.е. делаем что-то, если существует элемент таблицы с индексом X, а он существует только тогда, когда X = (a или b или c). Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 23 Июня 2011 speczadanie Что-то не сходится вот это: Вылетает при попытке клика по BTN_1 с логом типа "нулевое значение 'btn_1'" вот с этим: Выпадает без лога Если без лога, откуда тогда инфа про нулевое (а скорее, nil-овое) значение? По делу: У тебя несколько раз вызывается self:Register(...), но метода ms:Register(...) в файле нет - наводит на подозрения Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 25 Июня 2011 Knyaz В переводе на русский - "ни одна вершина пути ... не доступна объекту ..." Проверь у этого объекта in и out рестрикторы, и не попутал ли ты in с out-ом. Также возможно, что единственный узкий проход к точке назначения перекрыт динамической аномалией (которая добавляет рестриктор) - в этом случае после выброса или ухода-захода с уровня (просто сейв/лоад не поможет, вроде бы) расположение динамических аномалий должно поменяться и проблема по идее исчезнет (до следующего раза) Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 5 Июля 2011 PavelSnork Попробуй по косвенным признакам - как раз по прицеливанию с оптикой - по db.actor:accuracy(), и для проверки наличия оптики вроде какая-то функция в ЗП появилась - и всяким окнам - диалог, инвентарь и т.д. - они по идее все сводятся к (level.main_input_reciever() ~= nil) - значит, что-то включено. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 7 Июля 2011 Хм... На первый взгляд все безобидно... Из этой функции в основном вызываются все остальные. Чтобы прописывать в нее, а не в bind_stalker, скорее всего. На первый взгляд, ничего критичного, НО! Из этой функции много чего вызывается, возможно, дело в одной из тех функций. Просто так комментить - часть функций АМК не запустится или запустится с левыми параметрами, результат непредсказуемый. 4) Что за объекты: (2972) и (2975), которые присутствуют в самом начале этой функции? Я так понимаю, это объекты, когда-то вызывавшие вопросы у разработчиков. Собственно, кроме вывода в лог инфы, что это за объекты, если они есть, ничего с ними больше не делается. В общем, что могу посоветовать - продолжить поиски по Методу Научного Тыка, но уже комментируя отдельные блоки кода в этой функции. Точнее, сначала закомментировав все, раскомментировать их по очереди. Предполагаю, проблемы начнутся после раскомментирования одного из вызовов функций, с той функцией и надо разбираться... Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 7 Июля 2011 antreg Но вот непонятно, это нормально, что два раза одно и тоже условие присутствует в функции? Имеется ввиду: if amk.load_variable("amk_13",0)==0 Это не нормально, но и не критично. После того, как отработает первое по скрипту условие, второе не выполнится уже никогда и конфликта не будет. Что бросилось в глаза, что в обеих функциях упоминается конструкция alife():create(N), N - номер в алл.спавне. Но эти номера меняются при пересборке алл.спавна, тем более, что перебрали вы его серьезно. Вероятно, при попытке заспавнить что-то (но уже не то, что задумано) происходит конфликт... Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение
Kirag 41 Опубликовано 7 Июля 2011 antreg Ну, вот например, из 2-й функции: --спавним аномалии --initial_spawn() local obj = alife():story_object(6000) if not obj then alife():create(2) obj = alife():story_object(6000) end Функция проверяет наличие объекта со стори ИД = 6000, если не находит - создает из алл.спавна. Что там получилось в алл.спавне за номером 2 после перекомпиляции - кто ж его знает. Но врядли это остался тот самый объект, у которого 6000-й СИД. И таких моментов несколько... Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Поделиться этим сообщением Ссылка на сообщение