Перейти к контенту

Рекомендуемые сообщения

Struck, тебе был дан ответ на твой исходный вопрос. Теперь ты о "типе хита" начал говорить ... Вопросы нужно задавать не по шагам, которые тебе в голову приходят, а в начале сформулировать цель, которую хочешь получить в результате, а уже потом о своих предполагалках.

Готового рецепта для тебя нет, а "рациональный" способ, который придется самому придумывать и писать, зависит от цели (и конечно от твоих навыков).

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Такой вопрос: как работает класс profile_timer? Считает ли он время выполнения посторонней функции при вызове её из измеряемого участка кода? Например:

local timer = profile_timer()
timer:start()
-- здесь код...
-- здесь вызов функции
-- здесь опять код...
timer:stop()

Будет ли учтено время работы вызываемой функции?

Ссылка на комментарий

Artos, я сформулировал цель - мне нужно получить точный(!) clsid оружия из которого было произведено убийство, внятного ответа/алгоритма я так и не увидел("...наличие активного предмета у него в руках. Если таковой предмет имеется - он (предмет) и имеет твой искомый клсид." - если это внятный алгоритм, то он абсолютно не годится для решения моей задачки).

Изменено пользователем Struck
Ссылка на комментарий

ColR_iT, класс profile_timer создает объект который является счетчиком неких единиц времени, которые отслеживаются в самом движке.

Он "считает" ровно то, что ему определено, т.е. прошедшее время с момента установкии до момента его опроса.

Учитывая, что Lua - это потоковое выполнение всех действий (функций), то установив счетчик и выполнив стороннюю функцию в этом же потоке, ты можешь остановить счетчик и определить время, которое выполнялась функция.

Однако(!) если твоя функция выполняется в другом потоке - то ... получишь только время между запуском счетчика и его опросом, а функция может уже десять раз выполнялась...

 

Struck, к сожалению до тебя не дошел смысл моей реплики о том "как задавать вопрос" ... на этом тему можно считать исчерпаной, ищи подходящий тебе вариант.

Маленькая реплика: Брошенную гранату, от которой может погиб твой НПС несколько натужно определять как "оружие из которого было произведено убийство"... но это уже "к слову" Если еще вспомнить, что бросив бочку и выстрелив в нее - тоже можно кого-то убить - у чего тогда клсид требуется определять? :crazy: (о том, что на НПС можно наехать на БТРе иль, летая на вертушке, замочить ракеткой - вообще не поминаю).

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos, действительно... :ny_dry:

 

мне нужно получить точный(!) clsid оружия

 

А не бочки, БТР'а и иже с ним...(ибо поняв как определяется одно, поймешь и остальное)

 

И по поводу "как задавать вопрос". Я смысл данного понимаю как код+указание на место "где не получается", я вроде все доступно указал, определяем victim и who, передаем в коллбек, копипастил я функции из _g.script, разве что переделал вид ЗП на ТЧ.

Ссылка на комментарий

эх, тяжко же доходит и никак шоры снять не хочешь ... может все же прочтешь это: http://forum.sources.ru/howtoask.html и в частности Описывайте цель, а не отдельный шаг

(на этом закончили)

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Struck,

нужно получить точный(!) clsid оружия из которого было произведено убийство

Вряд ли это реализуемо с той абсолютной точностью, как ты хочешь. Смерть в движке - это финал целой цепочки событий, по сути моделирование реальной ситуации. От события к событию передаётся не вся информация, а в скриптовую часть передаётся и того меньше. Даже в колбеке на хит движок не передаёт информации об оружии по той простой причине, что хит мог и не быть вызван оружием. А смерть в свою очередь вызывается не хитом, а его последствием, падением здоровья ниже нуля. Сам движок к моменту смерти уже точно не знает, от какого оружия погиб перс, только хранит виновника гибели.

 

Так что ничего лучше описанного Artos-ом алгоритма с активным стволом пока нет, и скорее всего не будет. С гранатами можно попытаться приблизительно определить: вести учёт всех гранат, кидаемых всеми неписями и игроком (тоже непростая задача), по типу урона определять, что это была граната и для виновника гибели использовать в этом случае не активный ствол, который непись/актор мог уже сменить, а последнюю кинутую гранату. Уродливо, громоздко, всё равно неточно, но мне ничего другого в голову не приходит.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

malandrinus, я так и сделал, так как тоже ничего другого на ум не пришло; покопав коды simbion'a увидел портянки кодов того, что мне в данный момент нужно, вот и решил спросить о алгоритме, возможно(думал) есть другой путь, ну раз нет, так нет :) .

-----------------------------------------------------------------------------------------------------

 

Как получить факт того, что объект был поднят с земли?(parent() мне всегда 'userdata' возвращает, возможно потому, что в момент поднятия объект оказывается уже в рюкзаке)

Изменено пользователем Struck
Ссылка на комментарий

Всем привет. Подскажите. Создал оконный класс, в нём создал статик, всё работает. но когда добовляю объект класса 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)

 

Изменено пользователем TYOPA
Ссылка на комментарий

Ты что вообще от CUIScrollView хочешь? Я промолчу про кучу непонятно зачем вызываемыз методов, но вот это:

self.ggRukzakScroll:AddWindow(self.ggRukzakScroll,true)

- убило. Самого себя добавить к себе?

Изменено пользователем Shredder
Ссылка на комментарий

Извените, просто не знал какие методы использовать надо. В интернете очень мало информаии по этому классу. Вы можете написать минимум методов, необходимых для работы скроллбара?

Ссылка на комментарий

Struck, Shredder, ясно спс. Задача такая. Есть два статика: первый - это фон, второй - это изображение, которое прокручивается скролл баром. На втором статике в свою очередь находятся кнопки. Сможете помочь?

Ссылка на комментарий

Тут всё просто. В ScrollView добавляешь статик с нужной текстурой (картинкой). Размеры этого статика должны быть такими, чтобы изображение полностью в нём уместилось.

Размеры ScrollView - какие тебе нужно. Только есть одно "НО" - горизонтальной полосы прокрутки у ScrollView нет (хотя может у меня руки кривые). Т.е. размер ScrollView по ширине должен быть равен ширине картинки.

Ссылка на комментарий

Да. 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"

 

 

Изменено пользователем Shredder
Ссылка на комментарий

В ЗП переделываю родные тайники на обычные, как в ТЧ, с целью внедрить рандомные тайники, как в АМК. Всё это дело происходит в скрипте.

Пара вопросов к знатокам.

1) Как можно узнать direction у объекта, полученного как obj = alife():object(i). obj.position - позиция нормально, а obj.direction - nil

2) Где-то мне попадалась информация, что тайники хорошо бы всегда держать в online, т.к. при переходе тайников, содержащих в себе предметы наблюдаются фризы. Если это так, то что для этого нужно указать в object_flags тайника?

Ссылка на комментарий

Напоминаю вопрошающим в топике цитату из шапки:

Вопросы которые будут удалятся, следовательно их задавать не нужно:

-- Как сделать что-то/то-то?

С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;

Прекрашаем оффтопить и выбираем для своих вопросов соответствующий топик!

 

Shredder, объект, полученный методом alife():object(id) - называется серверным объектом и имеет соответствующие свойства/методы.

direction - для серверного объекта можно прочитать только из его нет-пакета ('abstract'-параметры) или имея расширенный движек...

О флагах и в частности object_flags - читаем в топике "Справочник по классам и функциям", данный вопрос уже начинает набивать оскомину.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...