• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

GlobalEvent Capture the flag :d

HamTheKratos

Member
Joined
Jan 14, 2009
Messages
243
Reaction score
8
Location
I Dunno
Hello
Here we go.
Capture The Flag
By & Credits To :Existance :p^_^:thumbup:

Map and Script Link:

Media Fire
Map & scripts.rar

/globalevents/scripts/ctf.lua add:
Lua:
local t = {
    redPos = {x = 982, y = 1022, z = 7},
    bluePos = {x = 993, y = 1033, z = 7},
    redStorage = 15000,
    blueStorage = 15001,
    fromPos = {x = 1004, y = 1023, z = 7},
    toPos = {x = 1015, y = 1032, z = 7}
}
local conditionBlue = createConditionObject(CONDITION_OUTFIT)
    setConditionParam(conditionBlue, CONDITION_PARAM_TICKS, 1800 * 1000)
    addOutfitCondition(conditionBlue, {lookType = 130, lookHead = 87, lookBody = 87, lookLegs = 87, lookFeet = 87})
local conditionRed = createConditionObject(CONDITION_OUTFIT)
    setConditionParam(conditionRed, CONDITION_PARAM_TICKS, 1800 * 1000)
    addOutfitCondition(conditionRed, {lookType = 130, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94})
local function teleportThing(minutes)
    local event = 0
    if minutes <= 0 then
        for _, cid in ipairs(getPlayersOnline()) do
            if isInRange(getThingPos(cid), t.fromPos, t.toPos) then
                if math.random(1, 3) < 3 then
                    setPlayerStorageValue(cid, t.redStorage, 1)
                    doAddCondition(cid, conditionRed)
                    doTeleportThing(cid, t.redPos, true)
                else
                    setPlayerStorageValue(cid, t.blueStorage, 1)
                    doAddCondition(cid, conditionBlue)
                    doTeleportThing(cid, t.bluePos, true)
                end
            end
        end
        return true
    end
    if minutes == 1 then
        doBroadcastMessage("Capture The Flag will begin in " .. minutes .. " minute!")
    elseif minutes <= 3 then
        doBroadcastMessage("Capture The Flag will begin in " .. minutes .. " minutes!")
    else
        doBroadcastMessage("Capture The Flag will begin in " .. minutes .. " minutes!")
    end
    event = addEvent(teleportThing, 60, minutes - 1)
    return true
end
function onThink(interval, lastExecution)
    return teleportThing(math.abs(math.ceil(1)))
end

globalevents.xml add;
Lua:
<globalevent name="ctf_event" interval="60" event="script" value="ctf.lua"/>

data/creaturescripts/scripts/ctf_target.lua add:
Lua:
local t = {
    redStorage = 15000,
    blueStorage = 15001
}
function onCombat(cid, target)
    if isPlayer(cid) and isPlayer(target) then
        if getPlayerStorageValue(cid, t.redStorage) == 1 and getPlayerStorageValue(target, t.redStorage) == 1 then
            return doPlayerSendCancel(cid, "You may not attack your team mates.") and false
        elseif getPlayerStorageValue(cid, t.blueStorage) == 1 and getPlayerStorageValue(target, t.blueStorage) == 1 then
            return doPlayerSendCancel(cid, "You may not attack your team mates.") and false
        end
    end
    return true
end

data/creaturescripts/scripts/stats_ctf.lua add:
Lua:
local t = {
    redPos = {x = 983, y = 1028, z = 7},
    bluePos = {x = 992, y = 1028, z = 7},
    redStorage = 15000,
    blueStorage = 15001,
    redFlag = 18000,
    blueFlag = 18001
}
function onStatsChange(cid, attacker, type, combat, value)
    if type == 1 then
        if getCreatureHealth(cid) <= value then
            if isPlayer(cid) and isCreature(attacker) then
                if getPlayerStorageValue(cid, t.redStorage) == 1 then
                    if getPlayerStorageValue(cid, t.blueFlag) == 1 and getGlobalStorageValue(t.blueFlag) == 1 then
                        setPlayerStorageValue(cid, t.blueFlag, -1)
                        setGlobalStorageValue(t.blueFlag, -1)
                        doBroadcastMessage(getCreatureName(cid) .. " has lost the Blue Flag!")
                        doTeleportThing(cid, t.redPos, true)
                    else
                        doTeleportThing(cid, t.redPos, true)
                    end
                    doCreatureAddHealth(cid, getCreatureMaxHealth(cid), true)
                    doCreatureAddMana(cid, getCreatureMaxMana(cid), true)
                elseif getPlayerStorageValue(cid, t.blueStorage) == 1 then
                    if getPlayerStorageValue(cid, t.redFlag) == 1 and getGlobalStorageValue(t.redFlag) == 1 then
                        setPlayerStorageValue(cid, t.redFlag, -1)
                        setGlobalStorageValue(t.redFlag, -1)
                        doTeleportThing(cid, t.bluePos, true)
                        doBroadcastMessage(getCreatureName(cid) .. " has lost the Red Flag!")
                    else
                        doTeleportThing(cid, t.bluePos, true)
                    end
                    doCreatureAddHealth(cid, getCreatureMaxHealth(cid), true)
                    doCreatureAddMana(cid, getCreatureMaxMana(cid), true)
                end
            end
            return false
        end
    end
    return true
end

creaturescripts.xml add:
Lua:
    <event type="statschange" name="stats_ctf" event="script" value="stats_ctf.lua"/>
    <event type="combat" name="ctf_target" event="script" value="ctf_target.lua"/>

login.lua add:
Lua:
    registerCreatureEvent(cid, "stats_ctf")
    registerCreatureEvent(cid, "ctf_target")

data/movements/scripts/test.lua add:
Lua:
local t = {
    redStorage = 15000,
    blueStorage = 15001,
    redFlag = 18000,
    blueFlag = 18001,
    redGoal = 19000,
    blueGoal = 19001,
    fromPos = {x = 982, y = 1022, z = 7},
    toPos = {x = 993, y = 1033, z = 7}
}
local function getPlayers()
    local thisTable = {}
    for x = t.fromPos.x, t.toPos.x do
        for y = t.fromPos.y, t.toPos.y do
            for z = t.fromPos.z, t.toPos.z do
                local myPos = {x = x, y = y, z = z}
                local player = getTopCreature(myPos).uid
                if player > 0 then table.insert(thisTable, player) else table.remove(thisTable, player) end
            end
        end
    end
    return {thisTable = thisTable}
end
local function repeatFlagOnPlayer(cid)
    local k = getThingPos(cid)
    local r = {
        {pos = {x = k.x + 2, y = k.y - 2, z = k.z}, delay = 300},
        {pos = {x = k.x + 2, y = k.y + 2, z = k.z}, delay = 300},
        {pos = {x = k.x - 2, y = k.y + 2, z = k.z}, delay = 300},
        {pos = {x = k.x - 2, y = k.y, z = k.z}, delay = 300},
        {pos = {x = k.x - 2, y = k.y - 2, z = k.z}, delay = 300},
        {pos = {x = k.x, y = k.y - 2, z = k.z}, delay = 300}
    }
    local effects = {27, 28, 29, 30}
    if isPlayer(cid) then
        if getPlayerStorageValue(cid, t.blueStorage) == 1 and getPlayerStorageValue(cid, t.redFlag) == 1 and getGlobalStorageValue(t.redFlag) == 1 then
            for i = 1, 6 do
                addEvent(doSendDistanceShoot, r[i].delay, r[i].pos, k, CONST_ME_FIREWORK_YELLOW)
            end
            for i = 1, 4 do
                addEvent(doSendMagicEffect, 1000, getThingPos(cid), effects[i])
            end
            return addEvent(repeatFlagOnPlayer, 1000, cid)
        elseif getPlayerStorageValue(cid, t.redStorage) == 1 and getPlayerStorageValue(cid, t.blueFlag) == 1 and getGlobalStorageValue(t.blueFlag) == 1 then
            for i = 1, 6 do
                addEvent(doSendDistanceShoot, r[i].delay, r[i].pos, k, CONST_ME_FIREWORK_YELLOW)
            end
            for i = 1, 4 do
                addEvent(doSendMagicEffect, 1000, getThingPos(cid), effects[i])
            end
            return addEvent(repeatFlagOnPlayer, 1000, cid)
        else
            return false
        end
    else
        return false
    end
end
function onStepIn(cid, item, position, fromPosition, toPosition, lastPosition, actor)
    if isPlayer(cid) then
        if item.actionid == 6000 then
            if getPlayerStorageValue(cid, t.redStorage) == 1 then
                if getPlayerStorageValue(cid, t.blueFlag) == -1 and getGlobalStorageValue(t.blueFlag) == -1 then
                    setPlayerStorageValue(cid, t.blueFlag, 1)
                    setGlobalStorageValue(t.blueFlag, 1)
                    repeatFlagOnPlayer(cid)
                    doBroadcastMessage(getCreatureName(cid) .. " has stolen the Blue Flag!")
                else
                    doCreatureSay(cid, "The flag is not at home.", 19)
                    doTeleportThing(cid, fromPosition, false)
                end
            else
                doCreatureSay(cid, "You may only pick up the opposite team flag.", 19)
                doTeleportThing(cid, fromPosition, false)
            end
        elseif item.actionid == 6001 then
            if getPlayerStorageValue(cid, t.blueStorage) == 1 then
                if getPlayerStorageValue(cid, t.redFlag) == -1 and getGlobalStorageValue(t.redFlag) == -1 then
                    setPlayerStorageValue(cid, t.redFlag, 1)
                    setGlobalStorageValue(t.redFlag, 1)
                    repeatFlagOnPlayer(cid)
                    doBroadcastMessage(getCreatureName(cid) .. " has stolen the Red flag!")
                else
                    doCreatureSay(cid, "The flag is not at home.", 19)
                    doTeleportThing(cid, fromPosition, false)
                end
            else
                doCreatureSay(cid, "The flag is not at home.", 19)
                doTeleportThing(cid, fromPosition, false)
            end
        end
        if item.actionid == 6002 then
            if getPlayerStorageValue(cid, t.redStorage) == 1 then
                if getPlayerStorageValue(cid, t.blueFlag) == 1 and getGlobalStorageValue(t.blueFlag) == 1 then
                    setGlobalStorageValue(t.blueFlag, -1)
                    setPlayerStorageValue(cid, t.blueFlag, -1)
                    setGlobalStorageValue(t.redGoal, getGlobalStorageValue(t.redGoal)+1)
                    doBroadcastMessage("Current CTF Game Score:\nRed Team: " .. getGlobalStorageValue(t.redGoal) .. "\nBlue Team: " .. getGlobalStorageValue(t.blueGoal) .. "\nTen Scores to win!", 20)
                    doBroadcastMessage(getCreatureName(cid) .. " has scored 1 point for the Red Team!")
                else
                    doCreatureSay(cid, "You dont have the flag.", 19)
                    doTeleportThing(cid, fromPosition, false)
                end
            elseif getPlayerStorageValue(cid, t.blueStorage) == 1 then
                if getPlayerStorageValue(cid, t.redFlag) == 1 and getGlobalStorageValue(t.redFlag) == 1 then
                    setGlobalStorageValue(t.redFlag, -1)
                    setPlayerStorageValue(cid, t.redFlag, -1)
                    setGlobalStorageValue(t.blueGoal, getGlobalStorageValue(t.blueGoal)+1)
                    doBroadcastMessage("Current CTF Game Score:\nRed Team: " .. getGlobalStorageValue(t.redGoal) .. "\nBlue Team: " .. getGlobalStorageValue(t.blueGoal) .. "\nTen Scores to win!", 20)
                    doBroadcastMessage(getCreatureName(cid) .. " has scored 1 point for the Blue Team!")
                else
                    doCreatureSay(cid, "You dont have the flag.", 19)
                    doTeleportThing(cid, fromPosition, false)
                end
            end
            if getGlobalStorageValue(t.blueGoal) == 10 and getGlobalStorageValue(t.redGoal) < 10 then
                for _, cid in ipairs(getPlayersOnline()) do
                    if getPlayerStorageValue(cid, t.blueStorage) == 1 then
                        setPlayerStorageValue(cid, t.blueStorage, -1)
                        doPlayerAddItem(cid, 9020, math.random(1, 6))
                    elseif getPlayerStorageValue(cid, t.redStorage) == 1 then
                        setPlayerStorageValue(cid, t.redStorage, -1)
                    end
                    doRemoveCondition(cid, CONDITION_OUTFIT)
                    setGlobalStorageValue(t.redGoal, 0)
                    setGlobalStorageValue(t.blueGoal, 0)
                end
                local FF = getPlayers().thisTable
                if #FF > 1 then
                    for _, hh in ipairs(FF) do
                        doTeleportThing(hh, getTownTemplePosition(getPlayerTown(hh)), true)
                    end
                end
            elseif getGlobalStorageValue(t.redGoal) == 10 and getGlobalStorageValue(t.blueGoal) < 10 then
                for _, cid in ipairs(getPlayersOnline()) do
                    if getPlayerStorageValue(cid, t.redStorage) == 1 then
                        setPlayerStorageValue(cid, t.redStorage, -1)
                        doPlayerAddItem(cid, 9020, math.random(1, 6))
                    elseif getPlayerStorageValue(cid, t.blueStorage) == 1 then
                        setPlayerStorageValue(cid, t.blueStorage, -1)
                    end
                    doRemoveCondition(cid, CONDITION_OUTFIT)
                    setGlobalStorageValue(t.redGoal, 0)
                    setGlobalStorageValue(t.blueGoal, 0)
                end
                local F = getPlayers().thisTable
                if #F > 1 then
                    for _, h in ipairs(F) do
                        doTeleportThing(h, getTownTemplePosition(getPlayerTown(h)), true)
                    end
                end
            end
        end
    else
        doRemoveCreature(cid)
    end
    return true
end

movements.xml:
Lua:
    <movevent type="StepIn" actionid="6000-6002" event="script" value="test.lua"/>

data/globalevents/scripts/start.lua add:
before return true
Lua:
setGlobalStorageValue(19000, 0)
setGlobalStorageValue(19001, 0)


positions:
Lua:
mple position = {x = 1025, y = 1028, z = 7}
waiting room pos = {x = 1009, y = 1027, z = 7},
red team = {x = 982, y = 1022, z = 7},
blue team = {x = 993, y = 1033, z = 7},
score position = {x = 987, y = 1027, z = 7},
red team flag position = {x = 987, y = 1032, z = 7},
blue team flag position = {x = 987, y = 1023, z = 7}

run this query after selecting the database;
Lua:
UPDATE `players` SET posx = 1025, posy = 1028, posz = 7

rep please :D
 

Attachments

Last edited by a moderator:
lets test then...
 
quoting my post in the donators board, cuz im not 100% sure that the scripts in the link he posted is the updated ones, i told him over VM and he doesnt seem to answer;
data/globalevents/scripts/ctf.lua add:
Code:
local t = {
	redPos = {x = 982, y = 1022, z = 7},
	bluePos = {x = 993, y = 1033, z = 7},
	redStorage = 15000,
	blueStorage = 15001,
	fromPos = {x = 1004, y = 1023, z = 7},
	toPos = {x = 1015, y = 1032, z = 7}
}
local conditionBlue = createConditionObject(CONDITION_OUTFIT)
	setConditionParam(conditionBlue, CONDITION_PARAM_TICKS, 1800 * 1000)
	addOutfitCondition(conditionBlue, {lookType = 130, lookHead = 87, lookBody = 87, lookLegs = 87, lookFeet = 87})
local conditionRed = createConditionObject(CONDITION_OUTFIT)
	setConditionParam(conditionRed, CONDITION_PARAM_TICKS, 1800 * 1000)
	addOutfitCondition(conditionRed, {lookType = 130, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94})
local function teleportThing(minutes)
	local event = 0
	if minutes <= 0 then
		for _, cid in ipairs(getPlayersOnline()) do
			if isInRange(getThingPos(cid), t.fromPos, t.toPos) then
				if math.random(1, 3) < 3 then
					setPlayerStorageValue(cid, t.redStorage, 1)
					doAddCondition(cid, conditionRed)
					doTeleportThing(cid, t.redPos, true)
				else
					setPlayerStorageValue(cid, t.blueStorage, 1)
					doAddCondition(cid, conditionBlue)
					doTeleportThing(cid, t.bluePos, true)
				end
			end
		end
		return true
	end
	if minutes == 1 then
		doBroadcastMessage("Capture The Flag will begin in " .. minutes .. " minute!")
	elseif minutes <= 3 then
		doBroadcastMessage("Capture The Flag will begin in " .. minutes .. " minutes!")
	else
		doBroadcastMessage("Capture The Flag will begin in " .. minutes .. " minutes!")
	end
	event = addEvent(teleportThing, 60, minutes - 1)
	return true
end
function onThink(interval, lastExecution)
	return teleportThing(math.abs(math.ceil(1)))
end
globalevents.xml add;
Code:
<globalevent name="ctf_event" interval="60" event="script" value="ctf.lua"/>
data/creaturescripts/scripts/ctf_target.lua add:
Code:
local t = {
	redStorage = 15000,
	blueStorage = 15001
}
function onCombat(cid, target)
	if isPlayer(cid) and isPlayer(target) then
		if getPlayerStorageValue(cid, t.redStorage) == 1 and getPlayerStorageValue(target, t.redStorage) == 1 then
			return doPlayerSendCancel(cid, "You may not attack your team mates.") and false
		elseif getPlayerStorageValue(cid, t.blueStorage) == 1 and getPlayerStorageValue(target, t.blueStorage) == 1 then
			return doPlayerSendCancel(cid, "You may not attack your team mates.") and false
		end
	end
	return true
end
data/creaturescripts/scripts/stats_ctf.lua add:
Code:
local t = {
	redPos = {x = 983, y = 1028, z = 7},
	bluePos = {x = 992, y = 1028, z = 7},
	redStorage = 15000,
	blueStorage = 15001,
	redFlag = 18000,
	blueFlag = 18001
}
function onStatsChange(cid, attacker, type, combat, value)
	if type == 1 then
		if getCreatureHealth(cid) <= value then
			if isPlayer(cid) and isCreature(attacker) then
				if getPlayerStorageValue(cid, t.redStorage) == 1 then
					if getPlayerStorageValue(cid, t.blueFlag) == 1 and getGlobalStorageValue(t.blueFlag) == 1 then
						setPlayerStorageValue(cid, t.blueFlag, -1)
						setGlobalStorageValue(t.blueFlag, -1)
						doBroadcastMessage(getCreatureName(cid) .. " has lost the Blue Flag!")
						doTeleportThing(cid, t.redPos, true)
					else
						doTeleportThing(cid, t.redPos, true)
					end
					doCreatureAddHealth(cid, getCreatureMaxHealth(cid), true)
					doCreatureAddMana(cid, getCreatureMaxMana(cid), true)
				elseif getPlayerStorageValue(cid, t.blueStorage) == 1 then
					if getPlayerStorageValue(cid, t.redFlag) == 1 and getGlobalStorageValue(t.redFlag) == 1 then
						setPlayerStorageValue(cid, t.redFlag, -1)
						setGlobalStorageValue(t.redFlag, -1)
						doTeleportThing(cid, t.bluePos, true)
						doBroadcastMessage(getCreatureName(cid) .. " has lost the Red Flag!")
					else
						doTeleportThing(cid, t.bluePos, true)
					end
					doCreatureAddHealth(cid, getCreatureMaxHealth(cid), true)
					doCreatureAddMana(cid, getCreatureMaxMana(cid), true)
				end
			end
			return false
		end
	end
	return true
end
creaturescripts.xml add:
Code:
	<event type="statschange" name="stats_ctf" event="script" value="stats_ctf.lua"/>
	<event type="combat" name="ctf_target" event="script" value="ctf_target.lua"/>
Most important part:
login.lua add:
Code:
	registerCreatureEvent(cid, "stats_ctf")
	registerCreatureEvent(cid, "ctf_target")
data/movements/scripts/test.lua add:
Code:
local t = {
	redStorage = 15000,
	blueStorage = 15001,
	redFlag = 18000,
	blueFlag = 18001,
	redGoal = 19000,
	blueGoal = 19001,
	fromPos = {x = 982, y = 1022, z = 7},
	toPos = {x = 993, y = 1033, z = 7}
}
local function getPlayers()
	local thisTable = {}
	for x = t.fromPos.x, t.toPos.x do
		for y = t.fromPos.y, t.toPos.y do
			for z = t.fromPos.z, t.toPos.z do
				local myPos = {x = x, y = y, z = z}
				local player = getTopCreature(myPos).uid
				if player > 0 then table.insert(thisTable, player) else table.remove(thisTable, player) end
			end
		end
	end
	return {thisTable = thisTable}
end
local function repeatFlagOnPlayer(cid)
	local k = getThingPos(cid)
	local r = {
		{pos = {x = k.x + 2, y = k.y - 2, z = k.z}, delay = 300},
		{pos = {x = k.x + 2, y = k.y + 2, z = k.z}, delay = 300},
		{pos = {x = k.x - 2, y = k.y + 2, z = k.z}, delay = 300},
		{pos = {x = k.x - 2, y = k.y, z = k.z}, delay = 300},
		{pos = {x = k.x - 2, y = k.y - 2, z = k.z}, delay = 300},
		{pos = {x = k.x, y = k.y - 2, z = k.z}, delay = 300}
	}
	local effects = {27, 28, 29, 30}
	if isPlayer(cid) then
		if getPlayerStorageValue(cid, t.blueStorage) == 1 and getPlayerStorageValue(cid, t.redFlag) == 1 and getGlobalStorageValue(t.redFlag) == 1 then
			for i = 1, 6 do
				addEvent(doSendDistanceShoot, r[i].delay, r[i].pos, k, CONST_ME_FIREWORK_YELLOW)
			end
			for i = 1, 4 do
				addEvent(doSendMagicEffect, 1000, getThingPos(cid), effects[i])
			end
			return addEvent(repeatFlagOnPlayer, 1000, cid)
		elseif getPlayerStorageValue(cid, t.redStorage) == 1 and getPlayerStorageValue(cid, t.blueFlag) == 1 and getGlobalStorageValue(t.blueFlag) == 1 then
			for i = 1, 6 do
				addEvent(doSendDistanceShoot, r[i].delay, r[i].pos, k, CONST_ME_FIREWORK_YELLOW)
			end
			for i = 1, 4 do
				addEvent(doSendMagicEffect, 1000, getThingPos(cid), effects[i])
			end
			return addEvent(repeatFlagOnPlayer, 1000, cid)
		else
			return false
		end
	else
		return false
	end
end
function onStepIn(cid, item, position, fromPosition, toPosition, lastPosition, actor)
	if isPlayer(cid) then
		if item.actionid == 6000 then
			if getPlayerStorageValue(cid, t.redStorage) == 1 then
				if getPlayerStorageValue(cid, t.blueFlag) == -1 and getGlobalStorageValue(t.blueFlag) == -1 then
					setPlayerStorageValue(cid, t.blueFlag, 1)
					setGlobalStorageValue(t.blueFlag, 1)
					repeatFlagOnPlayer(cid)
					doBroadcastMessage(getCreatureName(cid) .. " has stolen the Blue Flag!")
				else
					doCreatureSay(cid, "The flag is not at home.", 19)
					doTeleportThing(cid, fromPosition, false)
				end
			else
				doCreatureSay(cid, "You may only pick up the opposite team flag.", 19)
				doTeleportThing(cid, fromPosition, false)
			end
		elseif item.actionid == 6001 then
			if getPlayerStorageValue(cid, t.blueStorage) == 1 then
				if getPlayerStorageValue(cid, t.redFlag) == -1 and getGlobalStorageValue(t.redFlag) == -1 then
					setPlayerStorageValue(cid, t.redFlag, 1)
					setGlobalStorageValue(t.redFlag, 1)
					repeatFlagOnPlayer(cid)
					doBroadcastMessage(getCreatureName(cid) .. " has stolen the Red flag!")
				else
					doCreatureSay(cid, "The flag is not at home.", 19)
					doTeleportThing(cid, fromPosition, false)
				end
			else
				doCreatureSay(cid, "The flag is not at home.", 19)
				doTeleportThing(cid, fromPosition, false)
			end
		end
		if item.actionid == 6002 then
			if getPlayerStorageValue(cid, t.redStorage) == 1 then
				if getPlayerStorageValue(cid, t.blueFlag) == 1 and getGlobalStorageValue(t.blueFlag) == 1 then
					setGlobalStorageValue(t.blueFlag, -1)
					setPlayerStorageValue(cid, t.blueFlag, -1)
					setGlobalStorageValue(t.redGoal, getGlobalStorageValue(t.redGoal)+1)
					doBroadcastMessage("Current CTF Game Score:\nRed Team: " .. getGlobalStorageValue(t.redGoal) .. "\nBlue Team: " .. getGlobalStorageValue(t.blueGoal) .. "\nTen Scores to win!", 20)
					doBroadcastMessage(getCreatureName(cid) .. " has scored 1 point for the Red Team!")
				else
					doCreatureSay(cid, "You dont have the flag.", 19)
					doTeleportThing(cid, fromPosition, false)
				end
			elseif getPlayerStorageValue(cid, t.blueStorage) == 1 then
				if getPlayerStorageValue(cid, t.redFlag) == 1 and getGlobalStorageValue(t.redFlag) == 1 then
					setGlobalStorageValue(t.redFlag, -1)
					setPlayerStorageValue(cid, t.redFlag, -1)
					setGlobalStorageValue(t.blueGoal, getGlobalStorageValue(t.blueGoal)+1)
					doBroadcastMessage("Current CTF Game Score:\nRed Team: " .. getGlobalStorageValue(t.redGoal) .. "\nBlue Team: " .. getGlobalStorageValue(t.blueGoal) .. "\nTen Scores to win!", 20)
					doBroadcastMessage(getCreatureName(cid) .. " has scored 1 point for the Blue Team!")
				else
					doCreatureSay(cid, "You dont have the flag.", 19)
					doTeleportThing(cid, fromPosition, false)
				end
			end
			if getGlobalStorageValue(t.blueGoal) == 10 and getGlobalStorageValue(t.redGoal) < 10 then
				for _, cid in ipairs(getPlayersOnline()) do
					if getPlayerStorageValue(cid, t.blueStorage) == 1 then
						setPlayerStorageValue(cid, t.blueStorage, -1)
						doPlayerAddItem(cid, 9020, math.random(1, 6))
					elseif getPlayerStorageValue(cid, t.redStorage) == 1 then
						setPlayerStorageValue(cid, t.redStorage, -1)
					end
					doRemoveCondition(cid, CONDITION_OUTFIT)
					setGlobalStorageValue(t.redGoal, 0)
					setGlobalStorageValue(t.blueGoal, 0)
				end
				local FF = getPlayers().thisTable
				if #FF > 1 then
					for _, hh in ipairs(FF) do
						doTeleportThing(hh, getTownTemplePosition(getPlayerTown(hh)), true)
					end
				end
			elseif getGlobalStorageValue(t.redGoal) == 10 and getGlobalStorageValue(t.blueGoal) < 10 then
				for _, cid in ipairs(getPlayersOnline()) do
					if getPlayerStorageValue(cid, t.redStorage) == 1 then
						setPlayerStorageValue(cid, t.redStorage, -1)
						doPlayerAddItem(cid, 9020, math.random(1, 6))
					elseif getPlayerStorageValue(cid, t.blueStorage) == 1 then
						setPlayerStorageValue(cid, t.blueStorage, -1)
					end
					doRemoveCondition(cid, CONDITION_OUTFIT)
					setGlobalStorageValue(t.redGoal, 0)
					setGlobalStorageValue(t.blueGoal, 0)
				end
				local F = getPlayers().thisTable
				if #F > 1 then
					for _, h in ipairs(F) do
						doTeleportThing(h, getTownTemplePosition(getPlayerTown(h)), true)
					end
				end
			end
		end
	else
		doRemoveCreature(cid)
	end
	return true
end
movements.xml:
Code:
	<movevent type="StepIn" actionid="6000-6002" event="script" value="test.lua"/>
data/globalevents/scripts/start.lua add:
before return true
Code:
setGlobalStorageValue(19000, 0)
setGlobalStorageValue(19001, 0)
 
HamTheKratos, thanks !
You no longer need the code shown in the first post?
Only download and change the files, right?
 
Back
Top