azerothcore / mod-anticheat

Port of PassiveAnticheat to Azerothcore
http://azerothcore.org/
MIT License
32 stars 50 forks source link

Feature: Add a judge when who is pulled out of prison by others and directly re-imprisoned. #100

Open kissingers opened 1 year ago

kissingers commented 1 year ago

Describe your feature request or suggestion in detail

I do this by lua, register a map change even, who still be jailed(by who have the aura 71041 with time 0) will direct teleport back to prison. I think if this is functions that come with the module , and can config in .conf file, will more good for server mgmt.

local function PlayerUpdateMap(event,player) if player:HasAura(71041) then
if player:Teleport(1,16227.80,16403.01,-64.38,3.51117) then player:SendBroadcastMessage("go back to prison...") end end end RegisterPlayerEvent(27,PlayerUpdateMap)

Describe a possible solution to your feature or suggestion in detail

No response

Additional context

No response

kissingers commented 1 year ago

Because I can't judge who ever be imprison, so I update the lua, those have aura 71041 by other way will not send to prison by mistake. I think the anticheat mod know who is in prison, so it will easy to judge who will back to prison if he change the map.

print(">>Script: Reprison system loading...OK")
local EverToPrison = {}

local function PrisonMapJudge(event,player)
    local pGUID = player:GetGUIDLow()
    if player:HasAura(71041) then
        if player:GetAreaId() == 876 then
            EverToPrison[pGUID] = 1
        elseif EverToPrison[pGUID] then
            if player:Teleport(1,16227.80,16403.01,-64.38,3.51117) then
                player:SendBroadcastMessage("go back to prison...")
            end
        end
    end
end

--PLAYER_EVENT_ON_ChangeMap
RegisterPlayerEvent(27,PrisonMapJudge)