Enforce hardcore retirement with level-one faction-balanced replacements

This commit is contained in:
Codex
2026-09-22 15:55:41 -04:00
parent bc50395221
commit 77f6b56c2f
10 changed files with 526 additions and 5 deletions
+13 -2
View File
@@ -85,6 +85,11 @@ local function emit(kind, payload)
AuthDBExecute(sql)
end
local function area_name(id)
local ok,name=pcall(GetAreaName,id)
return ok and name or tostring(id)
end
local function player_payload(player)
if not player then return {} end
local isBot = is_playerbot(player)
@@ -96,7 +101,7 @@ local function player_payload(player)
mapId=player:GetMapId(),
zoneId=player:GetZoneId(),
areaId=player:GetAreaId(),
zoneName=GetAreaName(player:GetZoneId()) or tostring(player:GetZoneId()),
zoneName=area_name(player:GetZoneId()),
race=player:GetRace(),
class=player:GetClass(),
raceName=player:GetRaceAsString() or tostring(player:GetRace()),
@@ -136,6 +141,12 @@ function AzerothAIEmitPlayerSnapshot(name)
return 1
end
function AzerothAIEmitPermanentDeath(player)
local payload=player_payload(player)
payload.deathId="hardcore-"..tostring(player:GetGUIDLow())
emit("player.permanent-death",payload)
end
local function mark_consumed(id)
AuthDBExecute("UPDATE azerothai_command_inbox SET consumed_at=NOW() WHERE id=" .. db_text(to_hex(id)))
end
@@ -254,7 +265,7 @@ RegisterPlayerEvent(27, function(event, player, newZone, newArea)
local payload=player_payload(player)
payload.zone=newZone
payload.area=newArea
payload.zoneName=GetAreaName(newZone) or tostring(newZone)
payload.zoneName=area_name(newZone)
emit("player.zone",payload)
end)