1
This commit is contained in:
parent
8b122340f9
commit
5d9de283df
@ -5,6 +5,8 @@
|
|||||||
#include "human.h"
|
#include "human.h"
|
||||||
#include "team.h"
|
#include "team.h"
|
||||||
|
|
||||||
|
#include "mt/InGameVoice.h"
|
||||||
|
|
||||||
InGameVoice::InGameVoice(Room* room)
|
InGameVoice::InGameVoice(Room* room)
|
||||||
{
|
{
|
||||||
room_ = room;
|
room_ = room;
|
||||||
@ -27,7 +29,6 @@ void InGameVoice::UnInit()
|
|||||||
|
|
||||||
void InGameVoice::OnHumanBeKill(int killer_id, Human* deader)
|
void InGameVoice::OnHumanBeKill(int killer_id, Human* deader)
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
if (killer_id == deader->GetUniId()) {
|
if (killer_id == deader->GetUniId()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -35,13 +36,20 @@ void InGameVoice::OnHumanBeKill(int killer_id, Human* deader)
|
|||||||
if (!killer) {
|
if (!killer) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
personal_nodead_series_kills_.erase(killer_id);
|
personal_nodead_series_kills_.erase(deader->GetUniId());
|
||||||
IncGlobalKills();
|
IncGlobalKills();
|
||||||
IncPersonalKills(killer_id);
|
IncPersonalKills(killer_id);
|
||||||
if (global_times_ == 1) {
|
{
|
||||||
room_->SendGlobalInGameVoice(killer_id, 1, deader->GetUniId());
|
mt::InGameVoice::Traverse
|
||||||
return;
|
(
|
||||||
|
room_->IsMobaModeRoom(),
|
||||||
|
InGameVoiceEventType_e::kGlobalKills,
|
||||||
|
[this] (const mt::InGameVoice* meta) -> bool
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GetPersonalKills(killer_id) == 1) {
|
if (GetPersonalKills(killer_id) == 1) {
|
||||||
room_->SendSelfInGameVoice(killer_id, 2);
|
room_->SendSelfInGameVoice(killer_id, 2);
|
||||||
}
|
}
|
||||||
@ -62,7 +70,6 @@ void InGameVoice::OnHumanBeKill(int killer_id, Human* deader)
|
|||||||
if (!killer->dead) {
|
if (!killer->dead) {
|
||||||
IncPersonalNoDeadSeriesKills(killer_id);
|
IncPersonalNoDeadSeriesKills(killer_id);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void InGameVoice::IncGlobalKills()
|
void InGameVoice::IncGlobalKills()
|
||||||
|
@ -59,6 +59,20 @@ namespace mt
|
|||||||
if (series_kill_interval() > 0) {
|
if (series_kill_interval() > 0) {
|
||||||
s_series_kill_interval = series_kill_interval();
|
s_series_kill_interval = series_kill_interval();
|
||||||
}
|
}
|
||||||
|
_cond_val = a8::XValue(cond());
|
||||||
|
if (!cond().empty()) {
|
||||||
|
switch (cond().at(0)) {
|
||||||
|
case '>':
|
||||||
|
{
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
_cond_type = InGameVoiceCondType_e::kEq;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void InGameVoice::Init2()
|
void InGameVoice::Init2()
|
||||||
@ -105,4 +119,14 @@ namespace mt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
InGameVoiceCondType_e InGameVoice::CondType() const
|
||||||
|
{
|
||||||
|
return _cond_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
int InGameVoice::CondVal() const
|
||||||
|
{
|
||||||
|
return _cond_val;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,13 @@ A8_DECLARE_ENUM(InGameVoiceNotifyObject_e,
|
|||||||
kTeammateExcludeDead
|
kTeammateExcludeDead
|
||||||
);
|
);
|
||||||
|
|
||||||
|
A8_DECLARE_ENUM(InGameVoiceCondType_e,
|
||||||
|
kNone,
|
||||||
|
kEq,
|
||||||
|
kGT,
|
||||||
|
kGE
|
||||||
|
);
|
||||||
|
|
||||||
namespace mt
|
namespace mt
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -43,11 +50,16 @@ namespace mt
|
|||||||
void Init1();
|
void Init1();
|
||||||
void Init2();
|
void Init2();
|
||||||
InGameVoiceNotifyObject_e GetNotifyObject() const;
|
InGameVoiceNotifyObject_e GetNotifyObject() const;
|
||||||
|
InGameVoiceCondType_e CondType() const;
|
||||||
|
int CondVal() const;
|
||||||
|
|
||||||
static void Traverse(bool is_moba_room, int event_type, std::function<bool (const InGameVoice*)> cb);
|
static void Traverse(bool is_moba_room, int event_type, std::function<bool (const InGameVoice*)> cb);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
InGameVoiceNotifyObject_e _notify_object;
|
InGameVoiceNotifyObject_e _notify_object;
|
||||||
|
InGameVoiceCondType_e _cond_type = InGameVoiceCondType_e::kNone;
|
||||||
|
int _cond_val = 0;
|
||||||
|
|
||||||
static std::map<int, std::vector<const InGameVoice*>> s_type_hash_;
|
static std::map<int, std::vector<const InGameVoice*>> s_type_hash_;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -13,7 +13,7 @@ namespace mtb
|
|||||||
int event_type() const { return event_type_; };
|
int event_type() const { return event_type_; };
|
||||||
int moba_is_play() const { return moba_is_play_; };
|
int moba_is_play() const { return moba_is_play_; };
|
||||||
int sound_id() const { return sound_id_; };
|
int sound_id() const { return sound_id_; };
|
||||||
int cond() const { return cond_; };
|
const std::string cond() const { return cond_; };
|
||||||
const std::string notify_object() const { return notify_object_; };
|
const std::string notify_object() const { return notify_object_; };
|
||||||
int notify_fields() const { return notify_fields_; };
|
int notify_fields() const { return notify_fields_; };
|
||||||
int play_interval() const { return play_interval_; };
|
int play_interval() const { return play_interval_; };
|
||||||
@ -35,7 +35,7 @@ namespace mtb
|
|||||||
int event_type_ = 0;
|
int event_type_ = 0;
|
||||||
int moba_is_play_ = 0;
|
int moba_is_play_ = 0;
|
||||||
int sound_id_ = 0;
|
int sound_id_ = 0;
|
||||||
int cond_ = 0;
|
std::string cond_;
|
||||||
std::string notify_object_;
|
std::string notify_object_;
|
||||||
int notify_fields_ = 0;
|
int notify_fields_ = 0;
|
||||||
int play_interval_ = 0;
|
int play_interval_ = 0;
|
||||||
|
@ -137,7 +137,7 @@ namespace mtb
|
|||||||
meta_class->SetSimpleField(0, "event_type", a8::reflect::ET_INT32, my_offsetof2(InGameVoice, event_type_));
|
meta_class->SetSimpleField(0, "event_type", a8::reflect::ET_INT32, my_offsetof2(InGameVoice, event_type_));
|
||||||
meta_class->SetSimpleField(1, "moba_is_play", a8::reflect::ET_INT32, my_offsetof2(InGameVoice, moba_is_play_));
|
meta_class->SetSimpleField(1, "moba_is_play", a8::reflect::ET_INT32, my_offsetof2(InGameVoice, moba_is_play_));
|
||||||
meta_class->SetSimpleField(2, "sound_id", a8::reflect::ET_INT32, my_offsetof2(InGameVoice, sound_id_));
|
meta_class->SetSimpleField(2, "sound_id", a8::reflect::ET_INT32, my_offsetof2(InGameVoice, sound_id_));
|
||||||
meta_class->SetSimpleField(3, "cond", a8::reflect::ET_INT32, my_offsetof2(InGameVoice, cond_));
|
meta_class->SetSimpleField(3, "cond", a8::reflect::ET_STRING, my_offsetof2(InGameVoice, cond_));
|
||||||
meta_class->SetSimpleField(4, "notify_object", a8::reflect::ET_STRING, my_offsetof2(InGameVoice, notify_object_));
|
meta_class->SetSimpleField(4, "notify_object", a8::reflect::ET_STRING, my_offsetof2(InGameVoice, notify_object_));
|
||||||
meta_class->SetSimpleField(5, "notify_fields", a8::reflect::ET_INT32, my_offsetof2(InGameVoice, notify_fields_));
|
meta_class->SetSimpleField(5, "notify_fields", a8::reflect::ET_INT32, my_offsetof2(InGameVoice, notify_fields_));
|
||||||
meta_class->SetSimpleField(6, "play_interval", a8::reflect::ET_INT32, my_offsetof2(InGameVoice, play_interval_));
|
meta_class->SetSimpleField(6, "play_interval", a8::reflect::ET_INT32, my_offsetof2(InGameVoice, play_interval_));
|
||||||
|
@ -63,7 +63,7 @@ message InGameVoice
|
|||||||
optional int32 event_type = 1;
|
optional int32 event_type = 1;
|
||||||
optional int32 moba_is_play = 2;
|
optional int32 moba_is_play = 2;
|
||||||
optional int32 sound_id = 3;
|
optional int32 sound_id = 3;
|
||||||
optional int32 cond = 4;
|
optional string cond = 4;
|
||||||
optional string notify_object = 5;
|
optional string notify_object = 5;
|
||||||
optional int32 notify_fields = 6;
|
optional int32 notify_fields = 6;
|
||||||
optional int32 play_interval = 7;
|
optional int32 play_interval = 7;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user