This commit is contained in:
aozhiwei 2023-03-27 16:49:12 +08:00
parent 52ec88ff22
commit cbc551ef39
11 changed files with 71 additions and 59 deletions

View File

@ -277,9 +277,7 @@ float Car::GetRadius()
float Car::GetSpeed()
{
float speed = hero_meta_->move_speed();
speed *= 1 + GetAbility()->GetAttrRate(kHAT_Speed);
return speed;
return Creature::GetSpeed();
}
void Car::OnBulletHit(IBullet* bullet)

View File

@ -3056,3 +3056,8 @@ bool Creature::IsNearGas()
float distance = GetPos().Distance2D2(p);
return distance + GetRadius() * 2 + 20 > room->GetGasData().rad_new;
}
float Creature::GetSpeed()
{
}

View File

@ -135,6 +135,7 @@ class Creature : public MoveableEntity
virtual const mt::Hero* GetHeroMeta() { return nullptr; };
virtual void FillMFObjectImage(Room* room, Human* hum, cs::MFCharacterImage* image_data) {};
virtual void SetPos(Position pos) override;
virtual float GetSpeed();
std::shared_ptr<Movement> GetMovement() { return movement_; };
bool HasBuffEffect(int buff_effect_id);
Buff* GetBuffByEffectId(int effect_id);

View File

@ -185,8 +185,7 @@ void Hero::OnBulletHit(IBullet* bullet)
float Hero::GetSpeed()
{
float speed = meta->move_speed();
return speed;
return Creature::GetSpeed();
}
void Hero::UpdateMove()

View File

@ -105,6 +105,8 @@ void Human::Initialize()
float Human::GetSpeed()
{
return Creature::GetSpeed();
#if 0
{
Buff* buff = GetBuffByEffectId(kBET_HoldShield);
if (buff) {
@ -174,11 +176,7 @@ float Human::GetSpeed()
speed *= mt::Param::s().water_move_coefficient;
}
return std::max(speed, 1.0f);
}
float Human::GetSpeed4()
{
return meta->move_speed4();
#endif
}
bool Human::IsDead(Room * room)

View File

@ -142,7 +142,6 @@ class Human : public Creature
virtual ~Human() override;
virtual void Initialize() override;
virtual float GetSpeed() override;
virtual float GetSpeed4();
virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) override;
void FillMFObjectLess(Room* room, Human* hum, cs::MFPlayerFull* full_data);
virtual void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) override;

View File

@ -16,7 +16,6 @@ class MoveableEntity : public RoomEntity
void TraverseAllLayerEntityList(std::function<void (Entity*, bool&)> func);
void TraverseAllLayerHumanList(std::function<void (Human*, bool&)> func);
virtual float GetSpeed() { return 1.0f;};
virtual void RefreshView();
virtual void OnGridListChange(std::set<GridCell*>& old_grids,
std::set<GridCell*>& inc_grids,

View File

@ -87,15 +87,26 @@ namespace mt
}
}
{
if (move_speed() >= 20) {
move_speed_ /= 20.0f;
jump_speed_ /= 20.0f;
move_speed3_ /= 20.0f;
shot_speed_ /= 20.0f;
aiming_speed_ /= 20.0f;
move_speed4_ /= 20.0f;
reload_speed_ /= 20.0f;
useitem_speed_ /= 20.0f;
if (jump_speed() < 0.0001f) {
jump_speed_ = 1.0f;
}
if (fall_speed() < 0.0001f) {
fall_speed_ = 1.0f;
}
if (aim_speed() < 0.0001f) {
aim_speed_ = 1.0f;
}
if (shoot_speed() < 0.0001f) {
shoot_speed_ = 1.0f;
}
if (reload_speed() < 0.0001f) {
reload_speed_ = 1.0f;
}
if (medicine_speed() < 0.0001f) {
medicine_speed_ = 1.0f;
}
if (swim_speed() < 0.0001f) {
swim_speed_ = 1.0f;
}
}
}

View File

@ -12,14 +12,14 @@ namespace mtb
a8::reflect::Class* GetClass() const;
int id() const { return id_; };
float radius() const { return radius_; };
int move_speed() const { return move_speed_; };
int jump_speed() const { return jump_speed_; };
int move_speed3() const { return move_speed3_; };
int shot_speed() const { return shot_speed_; };
int aiming_speed() const { return aiming_speed_; };
int move_speed4() const { return move_speed4_; };
int reload_speed() const { return reload_speed_; };
int useitem_speed() const { return useitem_speed_; };
float move_speed() const { return move_speed_; };
float jump_speed() const { return jump_speed_; };
float fall_speed() const { return fall_speed_; };
float aim_speed() const { return aim_speed_; };
float shoot_speed() const { return shoot_speed_; };
float reload_speed() const { return reload_speed_; };
float medicine_speed() const { return medicine_speed_; };
float swim_speed() const { return swim_speed_; };
const std::string volume() const { return volume_; };
int level() const { return level_; };
int race() const { return race_; };
@ -56,12 +56,12 @@ namespace mtb
bool has_radius() const { return __flags__.test(1);};
bool has_move_speed() const { return __flags__.test(2);};
bool has_jump_speed() const { return __flags__.test(3);};
bool has_move_speed3() const { return __flags__.test(4);};
bool has_shot_speed() const { return __flags__.test(5);};
bool has_aiming_speed() const { return __flags__.test(6);};
bool has_move_speed4() const { return __flags__.test(7);};
bool has_reload_speed() const { return __flags__.test(8);};
bool has_useitem_speed() const { return __flags__.test(9);};
bool has_fall_speed() const { return __flags__.test(4);};
bool has_aim_speed() const { return __flags__.test(5);};
bool has_shoot_speed() const { return __flags__.test(6);};
bool has_reload_speed() const { return __flags__.test(7);};
bool has_medicine_speed() const { return __flags__.test(8);};
bool has_swim_speed() const { return __flags__.test(9);};
bool has_volume() const { return __flags__.test(10);};
bool has_level() const { return __flags__.test(11);};
bool has_race() const { return __flags__.test(12);};
@ -98,14 +98,14 @@ namespace mtb
int id_ = 0;
float radius_ = 0.0f;
int move_speed_ = 0;
int jump_speed_ = 0;
int move_speed3_ = 0;
int shot_speed_ = 0;
int aiming_speed_ = 0;
int move_speed4_ = 0;
int reload_speed_ = 0;
int useitem_speed_ = 0;
float move_speed_ = 0.0f;
float jump_speed_ = 0.0f;
float fall_speed_ = 0.0f;
float aim_speed_ = 0.0f;
float shoot_speed_ = 0.0f;
float reload_speed_ = 0.0f;
float medicine_speed_ = 0.0f;
float swim_speed_ = 0.0f;
std::string volume_;
int level_ = 0;
int race_ = 0;

View File

@ -300,14 +300,14 @@ namespace mtb
meta_class = new a8::reflect::Class("Hero", 41, 0);
meta_class->SetSimpleField(0, "id", a8::reflect::ET_INT32, my_offsetof2(Hero, id_));
meta_class->SetSimpleField(1, "radius", a8::reflect::ET_FLOAT, my_offsetof2(Hero, radius_));
meta_class->SetSimpleField(2, "move_speed", a8::reflect::ET_INT32, my_offsetof2(Hero, move_speed_));
meta_class->SetSimpleField(3, "jump_speed", a8::reflect::ET_INT32, my_offsetof2(Hero, jump_speed_));
meta_class->SetSimpleField(4, "move_speed3", a8::reflect::ET_INT32, my_offsetof2(Hero, move_speed3_));
meta_class->SetSimpleField(5, "shot_speed", a8::reflect::ET_INT32, my_offsetof2(Hero, shot_speed_));
meta_class->SetSimpleField(6, "aiming_speed", a8::reflect::ET_INT32, my_offsetof2(Hero, aiming_speed_));
meta_class->SetSimpleField(7, "move_speed4", a8::reflect::ET_INT32, my_offsetof2(Hero, move_speed4_));
meta_class->SetSimpleField(8, "reload_speed", a8::reflect::ET_INT32, my_offsetof2(Hero, reload_speed_));
meta_class->SetSimpleField(9, "useitem_speed", a8::reflect::ET_INT32, my_offsetof2(Hero, useitem_speed_));
meta_class->SetSimpleField(2, "move_speed", a8::reflect::ET_FLOAT, my_offsetof2(Hero, move_speed_));
meta_class->SetSimpleField(3, "jump_speed", a8::reflect::ET_FLOAT, my_offsetof2(Hero, jump_speed_));
meta_class->SetSimpleField(4, "fall_speed", a8::reflect::ET_FLOAT, my_offsetof2(Hero, fall_speed_));
meta_class->SetSimpleField(5, "aim_speed", a8::reflect::ET_FLOAT, my_offsetof2(Hero, aim_speed_));
meta_class->SetSimpleField(6, "shoot_speed", a8::reflect::ET_FLOAT, my_offsetof2(Hero, shoot_speed_));
meta_class->SetSimpleField(7, "reload_speed", a8::reflect::ET_FLOAT, my_offsetof2(Hero, reload_speed_));
meta_class->SetSimpleField(8, "medicine_speed", a8::reflect::ET_FLOAT, my_offsetof2(Hero, medicine_speed_));
meta_class->SetSimpleField(9, "swim_speed", a8::reflect::ET_FLOAT, my_offsetof2(Hero, swim_speed_));
meta_class->SetSimpleField(10, "volume", a8::reflect::ET_STRING, my_offsetof2(Hero, volume_));
meta_class->SetSimpleField(11, "level", a8::reflect::ET_INT32, my_offsetof2(Hero, level_));
meta_class->SetSimpleField(12, "race", a8::reflect::ET_INT32, my_offsetof2(Hero, race_));

View File

@ -217,14 +217,16 @@ message Hero
{
optional int32 id = 1; //id
optional float radius = 2; //
optional int32 move_speed = 4; //
optional int32 jump_speed = 5; //
optional int32 move_speed3 = 6;
optional int32 shot_speed = 7;
optional int32 aiming_speed = 8;
optional int32 move_speed4 = 10; //4
optional int32 reload_speed = 9;
optional int32 useitem_speed = 49;
optional float move_speed = 4; //
optional float jump_speed = 5; //
optional float fall_speed = 6;
optional float aim_speed = 8;
optional float shoot_speed = 7;
optional float reload_speed = 9;
optional float medicine_speed = 10; //4
optional float swim_speed = 49;
optional string volume = 12; //
optional int32 level = 13;
optional int32 race = 14;