Auto requeue + events shit

This commit is contained in:
BenCat07 2018-04-08 13:40:00 +02:00
parent 3bebe7f1a4
commit 152b766c9a
2 changed files with 27 additions and 18 deletions

View File

@ -82,6 +82,7 @@ std::stack<std::string> &hack::command_stack()
*/ */
#define red 184, 56, 59, 255 #define red 184, 56, 59, 255
#define blu 88, 133, 162, 255 #define blu 88, 133, 162, 255
static CatVar cat_event_hurt(CV_SWITCH, "cat_event_hurt", "1", "Enable OnHurt Event", "Disable if your chat gets spammed with \"blah damaged blah down to blah hp\"");
class AdvancedEventListener : public IGameEventListener class AdvancedEventListener : public IGameEventListener
{ {
public: public:
@ -89,12 +90,6 @@ public:
{ {
if (!event_log) if (!event_log)
return; return;
static ConVar *var = g_ICvar->FindVar("developer");
static ConVar *filter = g_ICvar->FindVar("con_filter_text");
static ConVar *enable = g_ICvar->FindVar("con_filter_enable");
filter->SetValue("[CAT]");
var->SetValue(1);
enable->SetValue(1);
const char *name = event->GetName(); const char *name = event->GetName();
if (!strcmp(name, "player_connect_client")) if (!strcmp(name, "player_connect_client"))
PrintChat("\x07%06X%s\x01 \x07%06X%s\x01 joining", 0xa06ba0,event->GetString("name"), 0x914e65,event->GetString("networkid")); PrintChat("\x07%06X%s\x01 \x07%06X%s\x01 joining", 0xa06ba0,event->GetString("name"), 0x914e65,event->GetString("networkid"));
@ -132,7 +127,9 @@ public:
player_info_s vinfo; player_info_s vinfo;
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(victim), &vinfo); g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(victim), &vinfo);
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(attacker), &kinfo); g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(attacker), &kinfo);
PrintChat("\x07%06X%s\x01 hurt \x07%06X%s\x01 down to \x07%06X%d\x01hp", 0x4286f4, kinfo.name, 0xc11739, vinfo.name, 0x2aaf18, health); CachedEntity* vic = ENTITY(g_IEngine->GetPlayerForUserID(victim));
CachedEntity* att = ENTITY(g_IEngine->GetPlayerForUserID(attacker));
PrintChat("\x07%06X%s\x01 hurt \x07%06X%s\x01 down to \x07%06X%d\x01hp", colors::chat::team(att->m_iTeam), kinfo.name, colors::chat::team(vic->m_iTeam), vinfo.name, 0x2aaf18, health);
} }
else if (!strcmp(name, "player_death")) { else if (!strcmp(name, "player_death")) {
int victim = event->GetInt("userid"); int victim = event->GetInt("userid");
@ -141,28 +138,33 @@ public:
player_info_s vinfo; player_info_s vinfo;
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(victim), &vinfo); g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(victim), &vinfo);
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(attacker), &kinfo); g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(attacker), &kinfo);
PrintChat("\x07%06X%s\x01 killed \x07%06X%s\x01", 0x4286f4, kinfo.name, 0xc11739, vinfo.name); CachedEntity* vic = ENTITY(g_IEngine->GetPlayerForUserID(victim));
CachedEntity* att = ENTITY(g_IEngine->GetPlayerForUserID(attacker));
PrintChat("\x07%06X%s\x01 killed \x07%06X%s\x01", colors::chat::team(att->m_iTeam), kinfo.name, colors::chat::team(vic->m_iTeam), vinfo.name);
} }
else if (!strcmp(name, "player_spawn")) { else if (!strcmp(name, "player_spawn")) {
int id = event->GetInt("userid"); int id = event->GetInt("userid");
player_info_s info; player_info_s info;
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(id), &info); g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(id), &info);
PrintChat("\x07%06X%s\x01 (re)spawned", 0xa06ba0, info.name); CachedEntity* player = ENTITY(g_IEngine->GetPlayerForUserID(id));
PrintChat("\x07%06X%s\x01 (re)spawned", colors::chat::team(player->m_iTeam), info.name);
} }
else if (!strcmp(name, "player_changeclass")) { else if (!strcmp(name, "player_changeclass")) {
int id = event->GetInt("userid"); int id = event->GetInt("userid");
player_info_s info; player_info_s info;
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(id), &info); g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(id), &info);
PrintChat("\x07%06X%s\x01 changed to \x07%06X%s\x01", 0xa06ba0, info.name, 0xa06ba0, classname(event->GetInt("class"))); CachedEntity* player = ENTITY(g_IEngine->GetPlayerForUserID(id));
} PrintChat("\x07%06X%s\x01 changed to \x07%06X%s\x01", colors::chat::team(player->m_iTeam), info.name, 0xa06ba0, classname(event->GetInt("class")));
else if (!strcmp(name, "player_builtobject")) {
int obj = event->GetInt("object");
int idx = event->GetInt("index");
CachedEntity* building = ENTITY(idx);
if (CE_GOOD(building))
logging::Info("%d, %d",building->m_iClassID, CL_CLASS(CObjectSentrygun));
logging::Info("%d, %d, %d", obj, ENTITY_BUILDING, CL_CLASS(CObjectSentrygun));
} }
else if (!strcmp(name, "vote_cast")) {
int vote_option = event->GetInt("vote_option");
int team = event->GetInt("team");
int idx = event->GetInt("entityid");
player_info_s info;
const char *team_s = teamname(team);
g_IEngine->GetPlayerInfo(idx, &info);
PrintChat("\x07%06X%s\x01 Voted \x07%06X%d\x01 on team \x07%06X%s\x01", colors::chat::team(team), info.name, colors::chat::team(team), vote_option, colors::chat::team(team), team_s);
};
} }
}; };

View File

@ -11,9 +11,11 @@ namespace votelogger
{ {
static CatVar enabled(CV_SWITCH, "votelog", "0", "Log votes"); static CatVar enabled(CV_SWITCH, "votelog", "0", "Log votes");
static CatVar requeue(CV_SWITCH, "votelog_requeue", "1", "Auto requeue on vote kick", "Auto requeue on vote kick");
void user_message(bf_read &buffer, int type) void user_message(bf_read &buffer, int type)
{ {
bool islocalplayer = false;
if (!enabled) if (!enabled)
return; return;
@ -24,6 +26,7 @@ void user_message(bf_read &buffer, int type)
break; break;
case 46: case 46:
{ {
islocalplayer = false;
unsigned char caller = buffer.ReadByte(); unsigned char caller = buffer.ReadByte();
// unknown // unknown
buffer.ReadByte(); buffer.ReadByte();
@ -41,6 +44,8 @@ void user_message(bf_read &buffer, int type)
{ {
steamID = info.friendsID; steamID = info.friendsID;
} }
if (eid == LOCAL_E->m_IDX)
islocalplayer = true;
logging::Info("Vote called to kick %s [U:1:%u] for %s", name, steamID, logging::Info("Vote called to kick %s [U:1:%u] for %s", name, steamID,
reason); reason);
@ -48,6 +53,8 @@ void user_message(bf_read &buffer, int type)
} }
case 47: case 47:
logging::Info("Vote passed"); logging::Info("Vote passed");
if (islocalplayer && requeue)
tfmm::queue_start();
break; break;
case 48: case 48:
logging::Info("Vote failed"); logging::Info("Vote failed");