Welcome to Ac-Web AC-Web

Join us now to get access to all our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, and so, so much more. It's also quick and totally free, so what are you waiting for?

Ask a Question

Ask Questions and Get Answers from Our Community

Ac-Web Official Repacks !

Here you will find all our official repacks

Contact Us

Contact a Staff member if needed

Lua K.o.t.h Event

WiFiHaxR

Veteran
Veteran
joined: Oct 29, 2013
messages: 732
Reaction score: 19
Points: 30
Credits: 140
In this event, players will have to fight their way to the top of a designated hill or area and hold their position against other players. The player who manages to hold their position for the longest time wins.



Code:
local KING_OF_THE_HILL_NPC_ENTRY = 60000
local KING_OF_THE_HILL_ZONE_ID = 0
local KING_OF_THE_HILL_AREA_ID = 0
local KING_OF_THE_HILL_DURATION = 300
local KING_OF_THE_HILL_REWARD_ITEM = 0

local kingOfTheHillActive = false
local kingOfTheHillPlayer = nil
local kingOfTheHillTimer = 0

local function KingOfTheHillUpdate()
    if kingOfTheHillActive and kingOfTheHillPlayer then
        kingOfTheHillTimer = kingOfTheHillTimer - 1

        if kingOfTheHillTimer <= 0 then
            kingOfTheHillPlayer:AddItem(KING_OF_THE_HILL_REWARD_ITEM, 1)
            kingOfTheHillPlayer:SendBroadcastMessage("Congratulations! You have won the King of the Hill event!")
            kingOfTheHillActive = false
            kingOfTheHillPlayer = nil
        end
    end
end

local function KingOfTheHillOnAreaChange(event, player, newArea, newZone)
    if not kingOfTheHillActive then return end

    if newZone == KING_OF_THE_HILL_ZONE_ID and newArea == KING_OF_THE_HILL_AREA_ID then
        if not kingOfTheHillPlayer or kingOfTheHillPlayer:GetGUIDLow() ~= player:GetGUIDLow() then
            kingOfTheHillPlayer = player
            kingOfTheHillTimer = KING_OF_THE_HILL_DURATION
            player:SendBroadcastMessage("You are now the King of the Hill! Hold your position to win the event!")
        end
    end
end

local function KingOfTheHillOnGossipHello(event, player, creature)
    if kingOfTheHillActive then
        player:SendBroadcastMessage("The King of the Hill event is already in progress!")
    else
        kingOfTheHillActive = true
        player:SendBroadcastMessage("The King of the Hill event has started! Get to the designated area and hold your position!")
    end
    player:GossipComplete()
end

RegisterCreatureGossipEvent(KING_OF_THE_HILL_NPC_ENTRY, 1, KingOfTheHillOnGossipHello)
RegisterPlayerEvent(27, KingOfTheHillOnAreaChange)

local function KingOfTheHillOnUpdate(event, delay)
    KingOfTheHillUpdate()
end

RegisterServerEvent(0, KingOfTheHillOnUpdate)
 
Back
Top