Combreal icon

AntiVehicleCamp2.lua

Combreal | PRO | 01/29/14 04:16:12 PM UTC | 0 ⭐ | 1265 👁️ | Never ⏰ | []
Lua |

2.85 KB

|

None

|

0 👍

/

0 👎

-- For vehicle collision off - inspired from Eliteprime, Wizard, Shaft and Bugs's works --
                        -- With the great help of A§H»Wizard --
 
playerRunoverCounter = {}
playerIsHit = {}
survives = 3  -- Number of times +1 the player will die before surviving by runovers
eject = {}
 
function GetRequiredVersion()
    return 200
end
 
 
function OnScriptLoad(processid, game, persistent)
    first_timer  = registertimer(20, "IsEjectVehi")
end
 
function OnDamageLookup(receiving, causing, mapId, tagdata)
    if causing and receiving then
        local c_player = objectidtoplayer(causing)
        local r_player = objectidtoplayer(receiving)
        if c_player and r_player and isinvehicle(c_player) then
            if not isinvehicle(r_player) then
                local dmg = gettaginfo(mapId)
                if dmg == "globals\\vehicle_collision" then
                    if not playerIsHit[r_player] then
                        if not playerRunoverCounter[r_player] then playerRunoverCounter[r_player] = 0 end
                        playerRunoverCounter[r_player] = playerRunoverCounter[r_player] + 1
                        if playerRunoverCounter[r_player] >= survives then
                            return false
                        else
                            playerIsHit[r_player] = true
                            second_timer = registertimer(1000, "Alrdycrashed", r_player)
                        end
                    end
                end
            end
        end
    end
    return true
end
 
function OnServerCommand(player, command)
    local t = tokenizecmdstring(command)
    local count = #t
    if count > 0 then
        if t[1] == "sv_ejectvehi" and count == 2 then
            local player = t[2]
            player = rresolveplayer(player)
            if getplayer(player) then
                EjectVehi(player)
                return false
            end
        end
    end
end
 
function OnPlayerJoin(player)
    eject[gethash(player)] = false
end
 
function OnPlayerLeave(player)
    eject[gethash(player)] = false
end
 
function IsEjectVehi(id, count)
    for player = 0, 15 do
        if getplayer(player) then
            if eject[gethash(player)] == true then
                if player and isinvehicle(player) then
                    exitvehicle(player)
                    eject[gethash(player)] = false
                end
            end
        end
    end
    return true
end
 
function EjectVehi(player)
    if eject[gethash(player)] ~= nil then
        if eject[gethash(player)] ~= true then
            eject[gethash(player)] = true
            sendconsoletext(player, "You have been ejected from your vehicle, stop camping!")
        end
    end
end
 
function OnGameEnd(stage)
    if stage == 1 then
        if first_timer then
            removetimer(first_timer)
        end
        if second_timer then
            removetimer(second_timer)
        end
        for player = 0, 15 do
            if getplayer(player) then
                eject[gethash(player)] = false
                playerIsHit[player] = false
                playerRunoverCounter[player] = false
            end
        end
    end
end
 
function getplayervehicleid(player)
    local m_objectId = getplayerobjectid(player)
    if m_objectId then return readdword(getobject(m_objectId) + 0x11C) end
end
 
 
function Alrdycrashed(id, count, player)
    playerIsHit[player] = nil
    return false
end

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎