Artos 99 Опубликовано 17 Сентября 2012 Поделиться Опубликовано 17 Сентября 2012 (изменено) Struck, тебе был дан ответ на твой исходный вопрос. Теперь ты о "типе хита" начал говорить ... Вопросы нужно задавать не по шагам, которые тебе в голову приходят, а в начале сформулировать цель, которую хочешь получить в результате, а уже потом о своих предполагалках. Готового рецепта для тебя нет, а "рациональный" способ, который придется самому придумывать и писать, зависит от цели (и конечно от твоих навыков). Изменено 17 Сентября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
ColR_iT 171 Опубликовано 17 Сентября 2012 Поделиться Опубликовано 17 Сентября 2012 Такой вопрос: как работает класс profile_timer? Считает ли он время выполнения посторонней функции при вызове её из измеряемого участка кода? Например: local timer = profile_timer() timer:start() -- здесь код... -- здесь вызов функции -- здесь опять код... timer:stop() Будет ли учтено время работы вызываемой функции? Ссылка на комментарий
Struck 61 Опубликовано 17 Сентября 2012 Поделиться Опубликовано 17 Сентября 2012 (изменено) Artos, я сформулировал цель - мне нужно получить точный(!) clsid оружия из которого было произведено убийство, внятного ответа/алгоритма я так и не увидел("...наличие активного предмета у него в руках. Если таковой предмет имеется - он (предмет) и имеет твой искомый клсид." - если это внятный алгоритм, то он абсолютно не годится для решения моей задачки). Изменено 17 Сентября 2012 пользователем Struck Ссылка на комментарий
Artos 99 Опубликовано 17 Сентября 2012 Поделиться Опубликовано 17 Сентября 2012 (изменено) ColR_iT, класс profile_timer создает объект который является счетчиком неких единиц времени, которые отслеживаются в самом движке. Он "считает" ровно то, что ему определено, т.е. прошедшее время с момента установкии до момента его опроса. Учитывая, что Lua - это потоковое выполнение всех действий (функций), то установив счетчик и выполнив стороннюю функцию в этом же потоке, ты можешь остановить счетчик и определить время, которое выполнялась функция. Однако(!) если твоя функция выполняется в другом потоке - то ... получишь только время между запуском счетчика и его опросом, а функция может уже десять раз выполнялась... Struck, к сожалению до тебя не дошел смысл моей реплики о том "как задавать вопрос" ... на этом тему можно считать исчерпаной, ищи подходящий тебе вариант. Маленькая реплика: Брошенную гранату, от которой может погиб твой НПС несколько натужно определять как "оружие из которого было произведено убийство"... но это уже "к слову" Если еще вспомнить, что бросив бочку и выстрелив в нее - тоже можно кого-то убить - у чего тогда клсид требуется определять? (о том, что на НПС можно наехать на БТРе иль, летая на вертушке, замочить ракеткой - вообще не поминаю). Изменено 17 Сентября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Struck 61 Опубликовано 17 Сентября 2012 Поделиться Опубликовано 17 Сентября 2012 Artos, действительно... :ny_dry: мне нужно получить точный(!) clsid оружия А не бочки, БТР'а и иже с ним...(ибо поняв как определяется одно, поймешь и остальное) И по поводу "как задавать вопрос". Я смысл данного понимаю как код+указание на место "где не получается", я вроде все доступно указал, определяем victim и who, передаем в коллбек, копипастил я функции из _g.script, разве что переделал вид ЗП на ТЧ. Ссылка на комментарий
Artos 99 Опубликовано 17 Сентября 2012 Поделиться Опубликовано 17 Сентября 2012 эх, тяжко же доходит и никак шоры снять не хочешь ... может все же прочтешь это: http://forum.sources.ru/howtoask.html и в частности Описывайте цель, а не отдельный шаг (на этом закончили) "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Malandrinus 615 Опубликовано 18 Сентября 2012 Поделиться Опубликовано 18 Сентября 2012 Struck, нужно получить точный(!) clsid оружия из которого было произведено убийство Вряд ли это реализуемо с той абсолютной точностью, как ты хочешь. Смерть в движке - это финал целой цепочки событий, по сути моделирование реальной ситуации. От события к событию передаётся не вся информация, а в скриптовую часть передаётся и того меньше. Даже в колбеке на хит движок не передаёт информации об оружии по той простой причине, что хит мог и не быть вызван оружием. А смерть в свою очередь вызывается не хитом, а его последствием, падением здоровья ниже нуля. Сам движок к моменту смерти уже точно не знает, от какого оружия погиб перс, только хранит виновника гибели. Так что ничего лучше описанного Artos-ом алгоритма с активным стволом пока нет, и скорее всего не будет. С гранатами можно попытаться приблизительно определить: вести учёт всех гранат, кидаемых всеми неписями и игроком (тоже непростая задача), по типу урона определять, что это была граната и для виновника гибели использовать в этом случае не активный ствол, который непись/актор мог уже сменить, а последнюю кинутую гранату. Уродливо, громоздко, всё равно неточно, но мне ничего другого в голову не приходит. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Struck 61 Опубликовано 18 Сентября 2012 Поделиться Опубликовано 18 Сентября 2012 (изменено) malandrinus, я так и сделал, так как тоже ничего другого на ум не пришло; покопав коды simbion'a увидел портянки кодов того, что мне в данный момент нужно, вот и решил спросить о алгоритме, возможно(думал) есть другой путь, ну раз нет, так нет . ----------------------------------------------------------------------------------------------------- Как получить факт того, что объект был поднят с земли?(parent() мне всегда 'userdata' возвращает, возможно потому, что в момент поднятия объект оказывается уже в рюкзаке) Изменено 18 Сентября 2012 пользователем Struck Ссылка на комментарий
TYOPA 0 Опубликовано 18 Сентября 2012 Поделиться Опубликовано 18 Сентября 2012 (изменено) Всем привет. Подскажите. Создал оконный класс, в нём создал статик, всё работает. но когда добовляю объект класса CUIScrollView, ничего не происходит, т.е. окно просто скидывается. Вот код скролла: self.ggRukzakScroll = CUIScrollView() self.ggRukzakScroll:SetWindowName("ggRukzakScroll") self.ggRukzakScroll:AddWindow(self.ggRukzakScroll,true) self.ggRukzakScroll:Init(10,280,250,400) self.ggRukzakScroll:SetScrollPos(50) self.ggRukzakScroll:ScrollToBegin() self.ggRukzakScroll:ScrollToEnd() self.ggRukzakScroll:SetWndRect(10,280,250,400) self:AttachChild(self.ggRukzakScroll) Изменено 18 Сентября 2012 пользователем TYOPA Ссылка на комментарий
Shredder 49 Опубликовано 18 Сентября 2012 Поделиться Опубликовано 18 Сентября 2012 (изменено) Ты что вообще от CUIScrollView хочешь? Я промолчу про кучу непонятно зачем вызываемыз методов, но вот это: self.ggRukzakScroll:AddWindow(self.ggRukzakScroll,true) - убило. Самого себя добавить к себе? Изменено 18 Сентября 2012 пользователем Shredder Ссылка на комментарий
TYOPA 0 Опубликовано 18 Сентября 2012 Поделиться Опубликовано 18 Сентября 2012 Извените, просто не знал какие методы использовать надо. В интернете очень мало информаии по этому классу. Вы можете написать минимум методов, необходимых для работы скроллбара? Ссылка на комментарий
Struck 61 Опубликовано 18 Сентября 2012 Поделиться Опубликовано 18 Сентября 2012 Предыдущий мой вопрос НЕ актуален. TYOPA, минимум? я делал через EnableScrollBar Ссылка на комментарий
Shredder 49 Опубликовано 18 Сентября 2012 Поделиться Опубликовано 18 Сентября 2012 TYOPA, CUIScrollView - это не скроллбар, это окно с вертикальной полосой прокрутки. Какие методы использовать - зависит от задачи. Ссылка на комментарий
TYOPA 0 Опубликовано 18 Сентября 2012 Поделиться Опубликовано 18 Сентября 2012 Struck, Shredder, ясно спс. Задача такая. Есть два статика: первый - это фон, второй - это изображение, которое прокручивается скролл баром. На втором статике в свою очередь находятся кнопки. Сможете помочь? Ссылка на комментарий
Shredder 49 Опубликовано 18 Сентября 2012 Поделиться Опубликовано 18 Сентября 2012 Тут всё просто. В ScrollView добавляешь статик с нужной текстурой (картинкой). Размеры этого статика должны быть такими, чтобы изображение полностью в нём уместилось. Размеры ScrollView - какие тебе нужно. Только есть одно "НО" - горизонтальной полосы прокрутки у ScrollView нет (хотя может у меня руки кривые). Т.е. размер ScrollView по ширине должен быть равен ширине картинки. Ссылка на комментарий
TYOPA 0 Опубликовано 18 Сентября 2012 Поделиться Опубликовано 18 Сентября 2012 Всё таки класс CUIScrollView использовать? и методом AddWindow() добавить статик, верно? Ссылка на комментарий
Shredder 49 Опубликовано 18 Сентября 2012 Поделиться Опубликовано 18 Сентября 2012 (изменено) Да. CUIScrollView в xml описывается так: x="-5" y="0" width="450" height="320" right_ident="0" left_ident="0" top_indent="0" bottom_indent="0" vert_interval="0" always_show_scroll="0" Изменено 18 Сентября 2012 пользователем Shredder Ссылка на комментарий
Struck 61 Опубликовано 18 Сентября 2012 Поделиться Опубликовано 18 Сентября 2012 Shredder, горизонтальной полосы прокрутки действительно нет. Ссылка на комментарий
Shredder 49 Опубликовано 18 Сентября 2012 Поделиться Опубликовано 18 Сентября 2012 В ЗП переделываю родные тайники на обычные, как в ТЧ, с целью внедрить рандомные тайники, как в АМК. Всё это дело происходит в скрипте. Пара вопросов к знатокам. 1) Как можно узнать direction у объекта, полученного как obj = alife():object(i). obj.position - позиция нормально, а obj.direction - nil 2) Где-то мне попадалась информация, что тайники хорошо бы всегда держать в online, т.к. при переходе тайников, содержащих в себе предметы наблюдаются фризы. Если это так, то что для этого нужно указать в object_flags тайника? Ссылка на комментарий
Artos 99 Опубликовано 18 Сентября 2012 Поделиться Опубликовано 18 Сентября 2012 Напоминаю вопрошающим в топике цитату из шапки: Вопросы которые будут удалятся, следовательно их задавать не нужно:-- Как сделать что-то/то-то? С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком; Прекрашаем оффтопить и выбираем для своих вопросов соответствующий топик! Shredder, объект, полученный методом alife():object(id) - называется серверным объектом и имеет соответствующие свойства/методы. direction - для серверного объекта можно прочитать только из его нет-пакета ('abstract'-параметры) или имея расширенный движек... О флагах и в частности object_flags - читаем в топике "Справочник по классам и функциям", данный вопрос уже начинает набивать оскомину. "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти