From 59ce0381a108f924f1a5ff6ad89c3d3e9439277e Mon Sep 17 00:00:00 2001 From: morzlee Date: Sun, 8 Jan 2023 23:48:44 +0800 Subject: [PATCH] =?UTF-8?q?2023/1/8=E6=97=A5=E6=9B=B4=E6=96=B0=EF=BC=8C?= =?UTF-8?q?=E5=B0=86=E8=83=96=E5=AD=90=E5=96=B7=E5=88=B0=E7=AC=AC=E4=B8=80?= =?UTF-8?q?=E4=BA=BA=E5=90=8E=E9=80=89=E5=8F=96=E5=96=B7=E5=90=90=E8=8C=83?= =?UTF-8?q?=E5=9B=B4=E5=86=85=E7=9B=AE=E6=A0=87=E6=8C=89=E8=B7=9D=E7=A6=BB?= =?UTF-8?q?=E5=8D=87=E5=BA=8F=E6=8E=92=E5=BA=8F=E6=9B=B4=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E6=8C=89=E7=85=A7=E8=83=96=E5=AD=90=E8=A7=86=E8=A7=92=E4=B8=8E?= =?UTF-8?q?=E5=BD=93=E5=89=8D=E7=94=9F=E8=BF=98=E6=96=B9=E5=90=91=E8=A7=92?= =?UTF-8?q?=E5=BA=A6=E5=8D=87=E5=BA=8F=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Update_log.md | 2 + .../optional/AnneHappy/ai_boomer_2.smx | Bin 16166 -> 16089 bytes .../scripting/AnneHappy/ai_boomer_2.sp | 59 ++++++++++++------ 3 files changed, 43 insertions(+), 18 deletions(-) diff --git a/Update_log.md b/Update_log.md index 9e20a31ec..58ee38c78 100644 --- a/Update_log.md +++ b/Update_log.md @@ -249,6 +249,8 @@ witchparty 和 allcharger模式在普通药役的基础上小僵尸再减少17-2 #### ai_boomer_2 - 强喷功能更新,大大降低胖子喷不到人的几率,而且让胖子转动,显得很合理(其实真合理,不过用插件改变不了胖子的喷射路径,只能用这种办法 - 有高度差计算不准确的问题也修了,站高处也能被强制喷了 +- 2023/1/8日更新,将胖子喷到第一人后选取喷吐范围内目标按距离升序排序更改为按照胖子视角与当前生还方向角度升序排序 + #### ai_jockey_2 - 继续降低高跳角度,降低高跳速度 diff --git a/addons/sourcemod/plugins/optional/AnneHappy/ai_boomer_2.smx b/addons/sourcemod/plugins/optional/AnneHappy/ai_boomer_2.smx index d29a427efa62dc206cbb636c9351f2f3cd7e0325..ca0aad5790e92760b36f97b8bd445089123d7036 100644 GIT binary patch literal 16089 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 1) { return Plugin_Continue; } // 当前 Boomer 目标集合中没有目标,开始获取目标 - if (IsBoomer(attacker) && targetList[attacker].Length < 1) + static int i; + static float eyePos[3], targetEyePos[3], dist, angle; + GetClientEyePosition(attacker, eyePos); + for (i = 1; i <= MaxClients; i++) { - float eyePos[3] = {0.0}, targetEyePos[3] = {0.0}, dist = 0.0; - GetClientEyePosition(attacker, eyePos); - for (int i = 1; i <= MaxClients; i++) + if (!IsClientInGame(i) || GetClientTeam(i) != TEAM_SURVIVOR || !IsPlayerAlive(i) || i == victim) { continue; } + GetClientEyePosition(i, targetEyePos); + dist = GetVectorDistance(eyePos, targetEyePos); + if (dist > g_hVomitRange.FloatValue) { continue; } + Handle trace = TR_TraceRayFilterEx(eyePos, targetEyePos, MASK_VISIBLE, RayType_EndPoint, TR_RayFilter, attacker); + // 按照与当前胖子眼睛视线的角度大小来定位玩家 + if (!TR_DidHit(trace) || TR_GetEntityIndex(trace) == i) { - if (i != victim && IsClientInGame(i) && GetClientTeam(i) == TEAM_SURVIVOR && IsPlayerAlive(i)) - { - GetClientEyePosition(i, targetEyePos); - dist = GetVectorDistance(eyePos, targetEyePos); - if (dist <= g_hVomitRange.FloatValue) - { - Handle trace = TR_TraceRayFilterEx(eyePos, targetEyePos, MASK_VISIBLE, RayType_EndPoint, TR_RayFilter, attacker); - if (!TR_DidHit(trace) || TR_GetEntityIndex(trace) == i) { targetList[attacker].Set(targetList[attacker].Push(dist), i, 1); } - delete trace; - } - } + angle = getSelfTargetAngle(attacker, i); + #if DEBUG_ALL + PrintToConsoleAll("[Ai-Boomer]:%N 的视角与目标 %N 的角度是:%.2f 度", attacker, i, angle); + #endif + targetList[attacker].Set(targetList[attacker].Push(angle), i, 1); + } + delete trace; + } + if (targetList[attacker].Length > 1) + { + targetList[attacker].Sort(Sort_Ascending, Sort_Float); + #if DEBUG_ALL + PrintToConsoleAll("[Ai-Boomer]:开始按顺序输出 %N 的目标", attacker); + #endif + for (i = 0; i < targetList[attacker].Length; i++) + { + #if DEBUG_ALL + PrintToConsoleAll("[Ai-Boomer]:%N 的下一个目标是:%N,角度是:%.2f 度", attacker, targetList[attacker].Get(i, 1), targetList[attacker].Get(i, 0)); + #endif } - if (targetList[attacker].Length > 1) { targetList[attacker].Sort(Sort_Ascending, Sort_Float); } } return Plugin_Continue; } @@ -489,6 +504,14 @@ void ComputeAimAngles(int client, int target, float angles[3], AimType type = Ai static bool isInAimOffset(int attacker, int target, float offset) { if (!IsBoomer(attacker) || !IsPlayerAlive(attacker) || !IsValidSurvivor(target) || !IsPlayerAlive(target)) { return false; } + static float angle; + angle = getSelfTargetAngle(attacker, target); + return angle != -1.0 && angle <= offset; +} + +static float getSelfTargetAngle(int attacker, int target) +{ + if (!IsBoomer(attacker) || !IsPlayerAlive(attacker) || !IsValidSurvivor(target) || !IsPlayerAlive(target)) { return -1.0; } static float selfEyePos[3], targetEyePos[3], resultPos[3], selfEyeVector[3]; // 和目标的方向向量,要在 NormalizeVector 前将向量 xz 方向设置为 0 GetClientEyePosition(attacker, selfEyePos); @@ -501,5 +524,5 @@ static bool isInAimOffset(int attacker, int target, float offset) selfEyePos[0] = selfEyePos[2] = 0.0; GetAngleVectors(selfEyePos, selfEyeVector, NULL_VECTOR, NULL_VECTOR); NormalizeVector(selfEyeVector, selfEyeVector); - return RadToDeg(ArcCosine(GetVectorDotProduct(selfEyeVector, resultPos))) <= offset; + return RadToDeg(ArcCosine(GetVectorDotProduct(selfEyeVector, resultPos))); } \ No newline at end of file