This commit is contained in:
aozhiwei 2021-06-09 18:39:18 +08:00
parent db7ec3edef
commit 6139504fb2
7 changed files with 29 additions and 8 deletions

View File

@ -39,6 +39,7 @@ void Android::Initialize()
RandSkin();
GiveEquip();
RecalcBaseAttr();
SetInfiniteBulletMode();
}
void Android::Update(int delta_time)

View File

@ -115,14 +115,6 @@ Creature::Creature():MoveableEntity()
weak_ptr_chunk_.Set(this);
inventory_[IS_1XSCOPE].num = 1;
if (MetaMgr::Instance()->fighting_mode) {
inventory_[IS_9MM].num = FIGHTING_MODE_BULLET_NUM;
inventory_[IS_556MM].num = FIGHTING_MODE_BULLET_NUM;
inventory_[IS_762MM].num = FIGHTING_MODE_BULLET_NUM;
inventory_[IS_12GAUGE].num = FIGHTING_MODE_BULLET_NUM;
inventory_[IS_RPG].num = FIGHTING_MODE_BULLET_NUM;
}
}
Creature::~Creature()
@ -1844,3 +1836,12 @@ bool Creature::TryMove(const a8::Vec2& target_pos, a8::Vec2& out_pos)
}
return move_ok;
}
void Creature::SetInfiniteBulletMode()
{
inventory_[IS_9MM].num = FIGHTING_MODE_BULLET_NUM;
inventory_[IS_556MM].num = FIGHTING_MODE_BULLET_NUM;
inventory_[IS_762MM].num = FIGHTING_MODE_BULLET_NUM;
inventory_[IS_12GAUGE].num = FIGHTING_MODE_BULLET_NUM;
inventory_[IS_RPG].num = FIGHTING_MODE_BULLET_NUM;
}

View File

@ -177,6 +177,7 @@ class Creature : public MoveableEntity
float GetMaxHP();
void GetHitEnemys(std::set<Creature*>& enemys);
bool TryMove(const a8::Vec2& target_pos, a8::Vec2& out_pos);
void SetInfiniteBulletMode();
private:

View File

@ -43,6 +43,7 @@ void Hero::Initialize()
weapons[GUN_SLOT1].Recalc();
SetCurrWeapon(&weapons[GUN_SLOT1]);
}
SetInfiniteBulletMode();
}
void Hero::FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data)

View File

@ -38,6 +38,9 @@ void Player::Initialize()
Human::Initialize();
max_energy_shield = energy_shield;
RecalcBaseAttr();
if (room->IsInfiniteBulletMode()) {
SetInfiniteBulletMode();
}
}
void Player::Update(int delta_time)
@ -1160,6 +1163,8 @@ void Player::_CMExecCommand(f8::MsgHdr& hdr, const cs::CMExecCommand& msg)
int item_id = a8::XValue(cmds[1]);
int item_num = a8::XValue(cmds[2]);
GMAddItem(item_id, item_num);
} else if (cmd == "infinite_bullet_mode") {
room->SetInfiniteBulletMode();
} else if (cmd == "shuaguai" && cmds.size() >= 3) {
int hero_id = a8::XValue(cmds[1]);
int hero_num = a8::XValue(cmds[2]);

View File

@ -3872,3 +3872,11 @@ void Room::GetPartObjectWatchList(Entity* entity, std::vector<Human*>& watch_lis
return true;
});
}
void Room::SetInfiniteBulletMode()
{
infinite_bullet_mode_ = true;
for (auto& pair : accountid_hash_) {
pair.second->SetInfiniteBulletMode();
}
}

View File

@ -182,6 +182,8 @@ public:
Incubator* GetIncubator() { return incubator_;};
void ShuaMon(const a8::Vec2& center, std::vector<int>& airdrop_mon_list, float radius);
void GetPartObjectWatchList(Entity* entity, std::vector<Human*>& watch_list);
void SetInfiniteBulletMode();
bool IsInfiniteBulletMode() { return infinite_bullet_mode_; };
private:
void ShuaAndroid();
@ -336,6 +338,8 @@ private:
Incubator* incubator_ = nullptr;
bool infinite_bullet_mode_ = false;
friend class Incubator;
friend class Team;
};