I just tried the following on a local eqemu instance I keep to fart around in (compiled sometime a year ago):
Code:
select
cd.id,
cd.name,
cd.deleted_at
from
account a
join character_data cd
on a.id = cd.account_id
where
a.name = 'test_account'
;
which gave me my test characters :
Code:
id name deleted_at
12 Testcharacter NULL
13 Tiwegrapi NULL
14 Zyygraxit NULL
15 Skitid-deleted-1636227165 2021-11-06 12:32:45
then I ran this :
Code:
select @id := 15;
update
character_data
set
name = (
select
left(name, locate('-deleted-', name) - 1)
from
character_data
where
id = @id
)
where
id = @id
;
update
character_data
set
deleted_at = NULL
where
id = @id
;
which gave me this when I ran the first query again :
Code:
id name deleted_at
12 Testcharacter NULL
13 Tiwegrapi NULL
14 Zyygraxit NULL
15 Skitid NULL
I'm now able to see and use my deleted character. I don't know if anything else is necessary, but it seems to work fine (turned in a quest, memorized spells, killed a mob, gained xp). I can't imagine the schema being that different, but who knows, maybe a cron runs nightly on p1999 that purges deleted character data.
I guess what I'm trying to convey is, if they wanted to, they would have already written something like this and ran it in when requested.