1
This commit is contained in:
@@ -1,6 +1,83 @@
|
||||
#include "events.h"
|
||||
|
||||
namespace events {
|
||||
auto OnPlayerHurtEvent(IGameEvent* event) -> void {
|
||||
/*
|
||||
auto luaCall_onPlayerHurt(int userid, int attacker, int health, int armor,
|
||||
const char* weapon, int dmg_health, int dmg_armor,
|
||||
int hitgroup) -> void
|
||||
*/
|
||||
UnkGameEventStruct_t userIdNameParams{ "userid" };
|
||||
UnkGameEventStruct_t attackerNameParams{ "attacker" };
|
||||
UnkGameEventStruct_t healthNameParams{0};
|
||||
UnkGameEventStruct_t armorNameParams{0};
|
||||
UnkGameEventStruct_t weaponNameParams{0};
|
||||
UnkGameEventStruct_t dmg_healthNameParams{0};
|
||||
UnkGameEventStruct_t dmg_armorNameParams{0};
|
||||
UnkGameEventStruct_t hitgroupNameParams{0};
|
||||
|
||||
static const auto healthStr = "health";
|
||||
static const auto armorStr = "armor";
|
||||
static const auto weaponStr = "weapon";
|
||||
static const auto dmg_healthStr = "dmg_health";
|
||||
static const auto dmg_armorStr = "dmg_armor";
|
||||
static const auto hitgroupStr = "hitgroup";
|
||||
|
||||
|
||||
healthNameParams.m_Unk = Offset::FnServerHashFunction(
|
||||
healthStr, sizeof healthStr, SERVER_HASH_FUCNTION_KEY);
|
||||
healthNameParams.m_Key = healthStr;
|
||||
|
||||
armorNameParams.m_Unk = Offset::FnServerHashFunction(
|
||||
armorStr, sizeof armorStr, SERVER_HASH_FUCNTION_KEY);
|
||||
armorNameParams.m_Key = armorStr;
|
||||
|
||||
weaponNameParams.m_Unk = Offset::FnServerHashFunction(
|
||||
weaponStr, sizeof weaponStr, SERVER_HASH_FUCNTION_KEY);
|
||||
|
||||
weaponNameParams.m_Key = weaponStr;
|
||||
|
||||
dmg_healthNameParams.m_Unk = Offset::FnServerHashFunction(
|
||||
dmg_healthStr, sizeof dmg_healthStr, SERVER_HASH_FUCNTION_KEY);
|
||||
dmg_healthNameParams.m_Key = dmg_healthStr;
|
||||
|
||||
dmg_armorNameParams.m_Unk = Offset::FnServerHashFunction(
|
||||
dmg_armorStr, sizeof dmg_armorStr, SERVER_HASH_FUCNTION_KEY);
|
||||
dmg_armorNameParams.m_Key = dmg_armorStr;
|
||||
|
||||
hitgroupNameParams.m_Unk = Offset::FnServerHashFunction(
|
||||
hitgroupStr, sizeof hitgroupStr, SERVER_HASH_FUCNTION_KEY);
|
||||
hitgroupNameParams.m_Key = hitgroupStr;
|
||||
|
||||
const auto victimPawn = reinterpret_cast<CCSPlayerPawn*>(
|
||||
event->GetPlayerPawn(&userIdNameParams));
|
||||
const auto attackerPawn = reinterpret_cast<CCSPlayerPawn*>(
|
||||
event->GetPlayerPawn(&attackerNameParams));
|
||||
if (victimPawn == nullptr || attackerPawn == nullptr) {
|
||||
return;
|
||||
}
|
||||
if (victimPawn->IsBasePlayerController() == false ||
|
||||
attackerPawn->IsBasePlayerController() == false) {
|
||||
return;
|
||||
}
|
||||
const auto victim = victimPawn->GetPlayerController();
|
||||
const auto attacker = attackerPawn->GetPlayerController();
|
||||
if (victim == nullptr || attacker == nullptr) {
|
||||
return;
|
||||
}
|
||||
const auto victimIndex = victim->GetRefEHandle().GetEntryIndex();
|
||||
const auto attackerIndex = attacker->GetRefEHandle().GetEntryIndex();
|
||||
|
||||
auto health = event->GetInt(&healthNameParams);
|
||||
auto armor = event->GetInt(&armorNameParams);
|
||||
auto weapon = event->GetString(&weaponNameParams);
|
||||
auto dmg_health = event->GetInt(&dmg_healthNameParams);
|
||||
auto dmg_armor = event->GetInt(&dmg_armorNameParams);
|
||||
auto hitgroup = event->GetInt(&hitgroupNameParams);
|
||||
ScriptCallBacks::luaCall_onPlayerHurt(victimIndex, attackerIndex, health, armor,
|
||||
weapon, dmg_health, dmg_armor,
|
||||
hitgroup);
|
||||
}
|
||||
auto OnRoundEndEvent(IGameEvent* event) -> void {
|
||||
/*
|
||||
"winner" "byte" // winner team/user i
|
||||
|
||||
Reference in New Issue
Block a user