Telegram Premium 开通(赠送)
3个月 93CNY / 6个月 123.5CNY
12个月 216CNY
第一次搞,就全部再减1.5元吧
Telegram Star 购买(赠送)
100 15CNY / 150 22CNY / 250 35CNY
350 48CNY / 500 68CNY / 750 100CNY
其他规格请私信咨询价格
支付方式仅限微信支付
需要联系 @WJiangzhi
3个月 93CNY / 6个月 123.5CNY
12个月 216CNY
第一次搞,就全部再减1.5元吧
Telegram Star 购买(赠送)
100 15CNY / 150 22CNY / 250 35CNY
350 48CNY / 500 68CNY / 750 100CNY
其他规格请私信咨询价格
支付方式仅限微信支付
需要联系 @WJiangzhi
❤1
g_LocalController = localController;
g_LocalPlayer = localPlayer;
char extras[32];
ImVec2 totalBoxSize(80, 25);
ImVec2 numberBoxSize(25, 25);
float startY = 65;
float spacing = 10;
float centerX = glWidth / 2;
float playerX = centerX - totalBoxSize.x - spacing / 2;
draw->AddRectFilled(ImVec2(playerX, startY), ImVec2(playerX + totalBoxSize.x, startY + totalBoxSize.y), IM_COL32(220, 220, 220, 255));
draw->AddRectFilled(ImVec2(playerX, startY), ImVec2(playerX + numberBoxSize.x, startY + numberBoxSize.y), IM_COL32(255, 0, 0, 255));
std::string playerNum = std::to_string(totalEnemies);
ImVec2 numTextSize = ImGui::CalcTextSize(playerNum.c_str());
draw->AddText(ImVec2(playerX + (numberBoxSize.x - numTextSize.x) / 2, startY + (numberBoxSize.y - numTextSize.y) / 2), IM_COL32(255, 255, 255, 255), playerNum.c_str());
std::string playerLabel = "Real";
ImVec2 labelSize = ImGui::CalcTextSize(playerLabel.c_str());
draw->AddText(ImVec2(playerX + numberBoxSize.x + 5, startY + (totalBoxSize.y - labelSize.y) / 2), IM_COL32(50, 50, 50, 255), playerLabel.c_str());//TG @Nova_Mod
float botX = centerX + spacing / 2;
draw->AddRectFilled(ImVec2(botX, startY),ImVec2(botX + totalBoxSize.x, startY + totalBoxSize.y), IM_COL32(220, 220, 220, 255));
draw->AddRectFilled(ImVec2(botX, startY),ImVec2(botX + numberBoxSize.x, startY + numberBoxSize.y),IM_COL32(0, 200, 0, 255));//TG @Nova_Mod
std::string botNum = std::to_string(totalBots);
numTextSize = ImGui::CalcTextSize(botNum.c_str());
draw->AddText(ImVec2(botX + (numberBoxSize.x - numTextSize.x) / 2, startY + (numberBoxSize.y - numTextSize.y) / 2), IM_COL32(255, 255, 255, 255), botNum.c_str());//TG @Nova_Mod
std::string botLabel = "Bot";
labelSize = ImGui::CalcTextSize(botLabel.c_str());
draw->AddText(ImVec2(botX + numberBoxSize.x + 5, startY + (totalBoxSize.y - labelSize.y) / 2), IM_COL32(50, 50, 50, 255), botLabel.c_str());
https://t.me/JH_Opensource/1705
Media is too big
VIEW IN TELEGRAM
简单解释:该函数首先获取游戏世界和本地玩家,然后通过将玩家的旋转转换为前向向量来检索玩家的位置和视线方向。它遍历关卡中的所有角色,检查每个角色是否是有效且重要的类型,如玩家、车辆、战利品或空投飞机。对于每个角色,它计算从玩家到该角色的方向,并使用点积来判断该角色是否在玩家前方(点积 > 0)。只有位于前方的角色才会被添加到输出列表中。通过这种早期过滤,代码减少了后续处理和绘制的角色数量,从而提升性能并帮助减少延迟。
😁1
std::vector<AActor*> out;
UWorld* GWorld = GetWorld();
if (!GWorld || !GWorld->PersistentLevel) return out;
auto localPlayer = g_LocalPlayer;
if (!localPlayer) return out;
FVector localLocation = localPlayer->K2_GetActorLocation();
FRotator localRotation = localPlayer->K2_GetActorRotation();
FVector forwardVector = localRotation.Vector();
auto Actors = *(((TArray<AActor*>* (*)(uintptr_t))(UE4 + GetActorArray_Offset))(reinterpret_cast<uintptr_t>(GWorld->PersistentLevel)));
for (int i = 0; i < Actors.Num(); i++) {
AActor* Actor = Actors[i];
if (!Actor || isObjectInvalid(Actor)) continue;
if (Actor->IsA(ASTExtraPlayerCharacter::StaticClass()) ||
Actor->IsA(ASTExtraVehicleBase::StaticClass()) ||
Actor->IsA(ASTExtraGameStateBase::StaticClass()) ||
Actor->IsA(ASTExtraGrenadeBase::StaticClass()) ||
Actor->IsA(APickUpListWrapperActor::StaticClass()) ||
Actor->IsA(APickUpWrapperActor::StaticClass()) ||
Actor->IsA(APlayerTombBox::StaticClass()) ||
Actor->IsA(ASTExtraPlayerController::StaticClass()) ||
Actor->IsA(AAirDropPlane::StaticClass())) {
FVector actorLocation = Actor->K2_GetActorLocation();
FVector directionToActor = (actorLocation - localLocation).GetSafeNormal();
float dot = FVector::DotProduct(forwardVector, directionToActor);
if (dot > 0.0f) {
out.push_back(Actor);
}
}
}
return out;
}
https://t.me/JH_Opensource/1706
Telegram
开源库
新的修复延迟问题,查看右上角的计数器
PUBGM_CoreUObject_structs.hpp
5.8 KB
将此添加到您的 CoreUObject 结构中
https://t.me/JH_Opensource/1706
https://t.me/JH_Opensource/1706