diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 04994a5a..991f7a45 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -1450,61 +1450,51 @@ void Human::DeadDrop() { Skin* old_skin = GetSkinByIdx(kSkinSlot_HAT); if (old_skin && old_skin->skin_id != 0 && SkinCanDrop(old_skin)) { - a8::Vec2 dir = a8::Vec2::UP; - dir.Rotate(a8::RandAngle()); - // 999 - #if 1 - #else - room->CreateLoot(old_skin->skin_id, GetPos() + dir * (40 + rand() % 50), 1, 1); - #endif + glm::vec3 dir = GlmHelper::UP; + GlmHelper::RotateY(dir, a8::RandAngle()); + Position drop_pos = GetPos(); + drop_pos.AddGlmVec3(dir * (40.0f + rand() % 50)); + room->CreateLoot(old_skin->skin_id, drop_pos, 1, 1); *old_skin = Skin(); } } { Skin* old_skin = GetSkinByIdx(kSkinSlot_CLOTH); if (old_skin && old_skin->skin_id != 0 && SkinCanDrop(old_skin)) { - a8::Vec2 dir = a8::Vec2::UP; - dir.Rotate(a8::RandAngle()); - // 999 - #if 1 - #else - room->CreateLoot(old_skin->skin_id, GetPos() + dir * (40 + rand() % 50), 1, 1); - #endif + glm::vec3 dir = GlmHelper::UP; + GlmHelper::RotateY(dir, a8::RandAngle()); + Position drop_pos = GetPos(); + drop_pos.AddGlmVec3(dir * (40.0f + rand() % 50)); + room->CreateLoot(old_skin->skin_id, drop_pos, 1, 1); *old_skin = Skin(); } } { //头盔 if (helmet != 0) { - a8::Vec2 dir = a8::Vec2::UP; - dir.Rotate(a8::RandAngle()); - // 999 - #if 1 - #else - room->CreateLoot(helmet, GetPos() + dir * (40 + rand() % 50), 1, 1); - #endif + glm::vec3 dir = GlmHelper::UP; + GlmHelper::RotateY(dir, a8::RandAngle()); + Position drop_pos = GetPos(); + drop_pos.AddGlmVec3(dir * (40.0f + rand() % 50)); + room->CreateLoot(helmet, drop_pos, 1, 1); helmet = 0; } //衣服 if (chest != 0) { - a8::Vec2 dir = a8::Vec2::UP; - dir.Rotate(a8::RandAngle()); - // 999 - #if 1 - #else - room->CreateLoot(chest, GetPos() + dir * (40 + rand() % 50), 1, 1); - #endif + glm::vec3 dir = GlmHelper::UP; + GlmHelper::RotateY(dir, a8::RandAngle()); + Position drop_pos = GetPos(); + drop_pos.AddGlmVec3(dir * (40.0f + rand() % 50)); + room->CreateLoot(chest, drop_pos, 1, 1); chest = 0; } //背包 if (backpack != 0) { - a8::Vec2 dir = a8::Vec2::UP; - dir.Rotate(a8::RandAngle()); - // 999 - #if 1 - #else - room->CreateLoot(backpack, GetPos() + dir * (40 + rand() % 50), 1, 1); - #endif + glm::vec3 dir = GlmHelper::UP; + GlmHelper::RotateY(dir, a8::RandAngle()); + Position drop_pos = GetPos(); + drop_pos.AddGlmVec3(dir * (40.0f + rand() % 50)); + room->CreateLoot(backpack, drop_pos, 1, 1); backpack = 0; } } @@ -1558,10 +1548,8 @@ void Human::DeadDrop() break; } } else { - #if 0 - a8::Vec2 drop_pos = GetPos(); + Position drop_pos = GetPos(); room->DropItem(drop_pos, equip_meta->id(), GetInventory(slot), 1); - #endif } } }