Перейти к содержанию

[C++] Динамическая расстановка приоритетов выполнения кода


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

Всю ночь гуглил и что-то так и не нашел, как можно задать приоритет выполнения участков кода?
Задача такая, есть аимбот, проверка видимости по костям, регистратор попаданий, допустим если видна голова и туловище,надо увеличить приоритет участку кода который работает с прицеливанием в голову,
если не попадает в голову с нескольких выстрелов, то изменить приоритет и стрелять в туловище. Набросал пока такой код ,думаю как лучше сделать, первое что приходит в голову использовать нейросеть. Может, можно это сделать без неё, и если да, то как лучше? Мой черновой вариант, вроде как рабочий, но мне не нравится, не могу сказать что:D.

 

Скрытый текст

class CWeapon
{
 public:
	int CurrentAmmo();
	int HitReg();
      	int iShotNum();
};


class CLogic : CWeapon
{
public:
	int Priority();
	int Shot() const;
	int SetPriority(DWORD PlayerID, DWORD Bone, int Priority);
	int SetVisibleBone(DWORD CPlayer);
	int SetNextVisibleBone(DWORD CPlayer);
	int iPriority = 0;
};

int CLogic::Priority()
{
	if (this->iShotNum() >= 2 && this->HitReg() < 1 && this->iPriority < 0 ? this->iPriority = 0 : this->iPriority = this->iPriority || this->iPriority > 10 ? this->iPriority = 10 : this->iPriority = this->iPriority);
	{
		return this->SetPriority(this->PlayerID, this->SetVisibleBone(CPlayer), this->iPriority -= 1);
	}
	return this->SetPriority(this->PlayerID, this->SetNextVisibleBone(CPlayer), this->iPriority += 1);
}

int CLogic::Shot() const
{
	if(this->iPriority <= 1)
	{
		//...Расчет вектора на голову
	}
	if(this->iPriority >= 2)
	{
		//...Расчет вектора на следующую видимую кость
	}
	return 0;
}

 

 

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, b15q95 сказал:

 

Хуки на оффсеты сначала надо сделать

 

Что-то не понимаю, зачем хукать смещения(впервые слышу о таком)? Объясни, пожалуйста.

А вообще не в смещениях дело, мне надо сам код оптимизировать для автоматического изменения приоритета противника т.е по ком в первую очередь стрелять и куда лучше, а не просто по головам бить.

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

В 17.04.2017в16:36, b15q95 сказал:

Хуки на оффсеты сначала надо сделать, чтобы писать подобные функции.

Там ещё вроде рефрактор на поток байтов нужен ?

Ссылка на комментарий
Поделиться на другие сайты

Блин, приоритет - это круто. Можно для начала сделать тупо - ты же знаешь, что у тебя видно, а что нет, вот и сделай так, что в первую очередь приоритет выставляется тем хитбоксам, которые видны в момент проверки. Далее, если их несколько (которые видны), то можно отрандомить и не париться. Можно умнее - сделать коэффициент, типа у головы 100%, у тушки - 80%, у пяток - 20%, бла-бла-бла. Самое смешное, что нейронка тут прям отлично должна зайти, как инструмент решения, но надо над этим подумать.

Ссылка на комментарий
Поделиться на другие сайты

53 минуты назад, keng сказал:

Самое смешное, что нейронка тут прям отлично должна зайти, как инструмент решения, но надо над этим подумать.


Никогда просто не работал с нейросетями, читал про них, так что реального профита не знаю, но раз зайдет значит, буду сеть писать.

Просто если так подумать, есть доступ ко всей информации, так зачем стрелять в голову, если у противника 15 хп к примеру или урон у оружия меньше, чем максимальное здоровье 1 выстрел в голову 1 в грудь.

Самообучаемый аимбот - лол.
 

 

59 минут назад, keng сказал:

Можно для начала сделать тупо - ты же знаешь, что у тебя видно, а что нет, вот и сделай так, что в первую очередь приоритет выставляется тем хитбоксам, которые видны в момент проверки. Далее, если их несколько (которые видны), то можно отрандомить и не париться.


Отличная мысль, не подумал даже про это.

Ссылка на комментарий
Поделиться на другие сайты

14 minutes ago, partoftheworlD said:

зачем стрелять в голову, если у противника 15 хп к примеру или урон у оружия меньше, чем максимальное здоровье 1 выстрел в голову 1 в грудь.

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

 

PS: Была тут новость недавно, что валве свой античит теперь нейронкой обучают. :)

Ссылка на комментарий
Поделиться на другие сайты

  • Xipho закрыл тема
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.