Added ore and some other items to Attack Modifiers.
This commit is contained in:
parent
e8f97ef3a5
commit
9b80c035e0
2
cheat-base/vendor/imgui
vendored
2
cheat-base/vendor/imgui
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 47fb633e73f69e1ba57cef16cd077ddc4d97f0ee
|
Subproject commit af916cdf1aa41243b493c217c8d4256c04aa8921
|
@ -183,6 +183,17 @@ namespace cheat::feature
|
|||||||
return attackerID == avatarID || IsAvatarOwner(attacker);
|
return attackerID == avatarID || IsAvatarOwner(attacker);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsValidByFilter(game::Entity* entity)
|
||||||
|
{
|
||||||
|
if (game::filters::combined::OrganicTargets.IsValid(entity) ||
|
||||||
|
game::filters::combined::Ores.IsValid(entity) ||
|
||||||
|
game::filters::puzzle::Geogranum.IsValid(entity) ||
|
||||||
|
game::filters::puzzle::LargeRockPile.IsValid(entity) ||
|
||||||
|
game::filters::puzzle::SmallRockPile.IsValid(entity))
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Raises when any entity do hit event.
|
// Raises when any entity do hit event.
|
||||||
// Just recall attack few times (regulating by combatProp)
|
// Just recall attack few times (regulating by combatProp)
|
||||||
// It's not tested well, so, I think, anticheat can detect it.
|
// It's not tested well, so, I think, anticheat can detect it.
|
||||||
@ -196,24 +207,30 @@ namespace cheat::feature
|
|||||||
|
|
||||||
auto& manager = game::EntityManager::instance();
|
auto& manager = game::EntityManager::instance();
|
||||||
auto originalTarget = manager.entity(targetID);
|
auto originalTarget = manager.entity(targetID);
|
||||||
if (!game::filters::combined::OrganicTargets.IsValid(originalTarget))
|
if (!IsValidByFilter(originalTarget))
|
||||||
return CALL_ORIGIN(LCBaseCombat_DoHitEntity_Hook, __this, targetID, attackResult, ignoreCheckCanBeHitInMP, method);
|
return CALL_ORIGIN(LCBaseCombat_DoHitEntity_Hook, __this, targetID, attackResult, ignoreCheckCanBeHitInMP, method);
|
||||||
|
|
||||||
std::vector<cheat::game::Entity*> validEntities;
|
std::vector<cheat::game::Entity*> validEntities;
|
||||||
validEntities.push_back(originalTarget);
|
validEntities.push_back(originalTarget);
|
||||||
|
|
||||||
if (rapidFire.f_MultiTarget)
|
if (rapidFire.f_MultiTarget)
|
||||||
{
|
{
|
||||||
auto filteredEntities = manager.entities(game::filters::combined::Monsters);
|
auto filteredEntities = manager.entities();
|
||||||
for (const auto& entity : filteredEntities) {
|
for (const auto& entity : filteredEntities) {
|
||||||
auto distance = originalTarget->distance(entity);
|
auto distance = originalTarget->distance(entity);
|
||||||
|
|
||||||
|
if (entity->runtimeID() == manager.avatar()->runtimeID())
|
||||||
|
continue;
|
||||||
|
|
||||||
if (entity->runtimeID() == targetID)
|
if (entity->runtimeID() == targetID)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (distance > rapidFire.f_MultiTargetRadius)
|
if (distance > rapidFire.f_MultiTargetRadius)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (!IsValidByFilter(entity))
|
||||||
|
continue;
|
||||||
|
|
||||||
validEntities.push_back(entity);
|
validEntities.push_back(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user