From 7b8ecf7e3923e429697eb99127b48274c8563f81 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 18 Mar 2019 15:14:37 +0800 Subject: [PATCH] add other object --- server/gameserver/android.ai.cc | 3 ++- server/gameserver/building.cc | 0 server/gameserver/building.h | 0 server/gameserver/deadbody.cc | 0 server/gameserver/deadbody.h | 0 server/gameserver/decal.cc | 0 server/gameserver/decal.h | 0 server/gameserver/human.cc | 19 +++++++++++++++++++ server/gameserver/human.h | 1 + server/gameserver/loot.cc | 0 server/gameserver/loot.h | 0 server/gameserver/lootspawner.cc | 0 server/gameserver/lootspawner.h | 0 server/gameserver/obstacle.cc | 0 server/gameserver/obstacle.h | 0 server/gameserver/projectile.cc | 0 server/gameserver/projectile.h | 0 server/gameserver/smoke.cc | 0 server/gameserver/smoke.h | 0 server/gameserver/types.cc | 3 ++- server/gameserver/types.h | 2 +- server/tools/protobuild/cs_proto.proto | 2 +- 22 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 server/gameserver/building.cc create mode 100644 server/gameserver/building.h create mode 100644 server/gameserver/deadbody.cc create mode 100644 server/gameserver/deadbody.h create mode 100644 server/gameserver/decal.cc create mode 100644 server/gameserver/decal.h create mode 100644 server/gameserver/loot.cc create mode 100644 server/gameserver/loot.h create mode 100644 server/gameserver/lootspawner.cc create mode 100644 server/gameserver/lootspawner.h create mode 100644 server/gameserver/obstacle.cc create mode 100644 server/gameserver/obstacle.h create mode 100644 server/gameserver/projectile.cc create mode 100644 server/gameserver/projectile.h create mode 100644 server/gameserver/smoke.cc create mode 100644 server/gameserver/smoke.h diff --git a/server/gameserver/android.ai.cc b/server/gameserver/android.ai.cc index daf0df9..d6c6e12 100644 --- a/server/gameserver/android.ai.cc +++ b/server/gameserver/android.ai.cc @@ -98,7 +98,8 @@ void AndroidAI::DoAttack() if (owner->updated_times % 2 == 0) { Human* enemy = owner->room->SearchEnemy((Human*)owner); if (enemy) { - + Human* sender = (Human*)owner; + sender->Shot(enemy->pos, 10.0); } } } diff --git a/server/gameserver/building.cc b/server/gameserver/building.cc new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/building.h b/server/gameserver/building.h new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/deadbody.cc b/server/gameserver/deadbody.cc new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/deadbody.h b/server/gameserver/deadbody.h new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/decal.cc b/server/gameserver/decal.cc new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/decal.h b/server/gameserver/decal.h new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index e782d75..e6921ab 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -54,3 +54,22 @@ void Human::FillMFObjectFull(cs::MFObjectFull* full_data) p->set_vip(vip); p->set_sdmg(sdmg); } + +void Human::Shot(Vector2D& target_point, float speed) +{ + { + cs::MFShot* shot = frame_data.shots.Add(); + shot->set_player_id(entity_uniid); + shot->set_weapon_id(10001); + shot->set_offhand(true); + shot->set_bullskin(10001); + } + { + cs::MFBullet* bullet = frame_data.bullets.Add(); + bullet->set_player_id(entity_uniid); + bullet->set_bullet_id(10001); + target_point.ToPB(bullet->mutable_pos()); + (pos - target_point).Normalize().ToPB(bullet->mutable_dir()); + bullet->set_bulletskin(10001); + } +} diff --git a/server/gameserver/human.h b/server/gameserver/human.h index d1b0567..b9197f0 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -51,5 +51,6 @@ class Human : public Entity virtual float GetSpeed() override; virtual void FillMFObjectPart(cs::MFObjectPart* part_data) override; virtual void FillMFObjectFull(cs::MFObjectFull* full_data) override; + void Shot(Vector2D& target_point, float speed); }; diff --git a/server/gameserver/loot.cc b/server/gameserver/loot.cc new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/loot.h b/server/gameserver/loot.h new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/lootspawner.cc b/server/gameserver/lootspawner.cc new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/lootspawner.h b/server/gameserver/lootspawner.h new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/obstacle.cc b/server/gameserver/obstacle.cc new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/obstacle.h b/server/gameserver/obstacle.h new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/projectile.cc b/server/gameserver/projectile.cc new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/projectile.h b/server/gameserver/projectile.h new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/smoke.cc b/server/gameserver/smoke.cc new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/smoke.h b/server/gameserver/smoke.h new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/types.cc b/server/gameserver/types.cc index 75b4a99..b4bcd04 100644 --- a/server/gameserver/types.cc +++ b/server/gameserver/types.cc @@ -11,12 +11,13 @@ void Vector2D::ToPB(cs::MFVector2D* pb_obj) pb_obj->set_y(y); } -void Vector2D::Normalize() +Vector2D& Vector2D::Normalize() { Eigen::Vector2f v(x, y); v.normalize(); x = v[0]; y = v[1]; + return *this; } bool Vector2D::operator == (const Vector2D& b) diff --git a/server/gameserver/types.h b/server/gameserver/types.h index 7905345..8d259b3 100755 --- a/server/gameserver/types.h +++ b/server/gameserver/types.h @@ -22,7 +22,7 @@ struct Vector2D Vector2D(float _x = 0.0f, float _y = 0.0f):x(_x), y(_y) {}; void ToPB(cs::MFVector2D* pb_obj); - void Normalize(); + Vector2D& Normalize(); bool operator == (const Vector2D& b); Vector2D operator + (const Vector2D& b); diff --git a/server/tools/protobuild/cs_proto.proto b/server/tools/protobuild/cs_proto.proto index cd5cf1c..a2a7800 100755 --- a/server/tools/protobuild/cs_proto.proto +++ b/server/tools/protobuild/cs_proto.proto @@ -392,7 +392,7 @@ message MFBullet optional MFVector2D pos = 3; optional MFVector2D dir = 4; optional float variance_t = 5; - optional int32 bullskin = 6; + optional int32 bulletskin = 6; optional bool crit = 7; optional int32 reflect_count = 8; optional int32 reflect_objid = 9;