This commit is contained in:
aozhiwei 2024-03-05 19:38:15 +08:00
parent 3155c9edaf
commit 2eb1c62333
3 changed files with 43 additions and 28 deletions

View File

@ -1554,7 +1554,8 @@ void CallFuncBuff::BatchRandomPosSummonObstacle()
glm::vec3 center = glm::vec3(x, y, z);
for (int i = 0; i < num; ++i) {
glm::vec3 out_point = center;
owner->room->map_instance->RandPoint(center, range, out_point);
bool ret = owner->room->map_instance->RandPoint(center, range, out_point);
if (ret) {
Obstacle* ob = owner->SummonObstacle(this,
id,
out_point,
@ -1578,3 +1579,4 @@ void CallFuncBuff::BatchRandomPosSummonObstacle()
}
}
}
}

View File

@ -972,16 +972,19 @@ void Creature::DoSkill(int skill_id,
if (skill->GetMinorType()) {
auto old_context_dir = context_dir;
auto old_context_pos = context_pos;
context_dir = skill_dir_;
context_dir = skill_dir;
context_pos = GetPos();
context_pos.AddGlmVec3(skill_dir_ * skill_distance);
context_pos.AddGlmVec3(skill_dir * skill_distance);
#ifdef MYDEBUG
a8::XPrintf("skill_dir:%f %f %f skill_distance:%f\n",
a8::XPrintf("skill_dir:%f %f %f skill_distance:%f skill_target_pos:%f %f %f\n",
{
skill_dir_.x,
skill_dir_.y,
skill_dir_.z,
skill_distance
skill_dir.x,
skill_dir.y,
skill_dir.z,
skill_distance,
context_pos.GetX(),
context_pos.GetY(),
context_pos.GetZ(),
});
#endif
SetAttackDir(skill_dir);

View File

@ -369,10 +369,20 @@ bool MapInstance::RandPoint(const glm::vec3& center, float range, glm::vec3& out
glm::vec3 start = center;
glm::vec3 dir = GlmHelper::UP;
GlmHelper::RotateY(dir, (10 + rand() % 360)/ 180.0f);
GlmHelper::RotateY(dir, glm::radians(1.0f + (float)(rand() % 360)));
GlmHelper::Normalize(dir);
glm::vec3 end = center + dir * range;
glm::vec3 end = center + dir * (float)(rand() % (int)std::max(1.0f, range));
out_point = center;
#ifdef MYDEBUG
a8::XPrintf("MapInstance::RandPoint:%f %f %f\n",
{
out_point.x,
out_point.y,
out_point.z,
});
#endif
return true;
Scale(start);
Scale(end);
if (Raycast