Shel submitted a new resource:
Buttons Manager - Simple CmdStart wrapper for hook (un-) press buttons.
Read more about this resource...
Buttons Manager - Simple CmdStart wrapper for hook (un-) press buttons.
Read more about this resource...
IN_USE
. Если ты об RegisterPressed/RegisterUnpressed - не знаю, пока не вижу смысла в этом, последний аргумент и так передает информацию о том была ли зажата/отжата кнопка. Если ты о последнем и это действительно нужно - реализую, только напиши.Xelson, ну может я чего-то не понимаю но тогда зачем данный модуль, когда в той же фейкмите естьFM_CmdStart/FM_CmdEnd
?
Вот, а в случае с фуллпаком нельзя сэкономить на вызовах. Если очень смело и раскованно сказать, что обработчики кнопок — это подмножество пресинка, то подмножеств фуллпака для управления самим фуллпаком нет :) Если странно объяснил: попробуй представить себе реализацию API для такого более экономного управления фуллпаком. А ведь так нельзя: там каждый вызов информативен и нужен для полноты обработки. Фильтровать там просто нечего. Устанавливать контстантный дескриптор для игрока — зачем? Дескриптор на 90% управляется pev полями и другими свойствами. Тут единственный вариант это ограничить вызов как игрок-игрок, а не игрок-игрок или игрок-ентити, но у меня сомнения.
Вот так понятно, спасибо.попробуй представить себе реализацию API для такого более экономного управления фуллпаком. А ведь так нельзя: там каждый вызов информативен и нужен для полноты обработки. Фильтровать там просто нечего.
Keys.insert(Keys.end(),p);
if (!g_pFunctionTable->pfnCmdStart)
Keys.at(i)
Keys.erase(Keys.begin()+i)
std::vector<int> vec;
std::vector<int>::iterator it = vec.begin();
std::vector<int>::iterator end = vec.end();
while (it != end) {
if (/*condition*/) {
it = vec.erase(it);
continue;
}
++it;
}
if (!Keys.size())
Лучше нинада!реализую, только напиши
#include <chrono>
#include <iostream>
#include <vector>
#define INSERT
int main()
{
std::vector<int> vec;
const auto start = std::chrono::steady_clock::now();
#ifdef INSERT
for (int i = 0; i < 100500; i++)
vec.insert(vec.end(), i);
#else
for (int i = 0; i < 100500; i++)
vec.push_back(i);
#endif
const auto finish = std::chrono::steady_clock::now();
const auto elapsed = std::chrono::duration_cast<std::chrono::nanoseconds>(finish - start).count();
std::cout << "Time: " << elapsed;
}
пишиисчомне нравится такой подход, он быстрее