• 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!

Lua Capture the flag not end

raell5

Premium User
Joined
Aug 23, 2010
Messages
82
Reaction score
9
Location
Deaths Of Tentacles Planet
Look !!
The Capture The So It Ends When The Time That She wanted Ends Ends In 8 Points


Lua:
local configWar = {

MessageType = MESSAGE_INFO_DESCR,
wallPos = {x=512,y=846,z=5,stackpos=1},
wallPos1 = {x=513,y=846,z=5,stackpos=1},
wallPos2 = {x=513,y=847,z=5,stackpos=1},
wallPos3 = {x=513,y=848,z=5,stackpos=1},
wallPos4 = {x=513,y=849,z=5,stackpos=1},
wallPos5 = {x=512,y=849,z=5,stackpos=1},
AccessMessage = "Only Gods and Gamemasters can execute an event!",

FirstMessage = "Event Notice!",
SecondMessage = "War Arena has been opened to join go through the portal on the top floor of depot.",
ThirdMessage = "War Arena will begin in 5 minutes!",
FourthMessage = "War Arena will begin in 3 minutes!",
ClosingMessage = "War Arena will close and begin in 1 minute!",
CloseMessage = "War Arena portal has closed and the event has begun!"

}
local configCTF = {

MessageType = MESSAGE_INFO_DESCR,
wallPos = {x=512,y=840,z=5,stackpos=1},
wallPos1 = {x=513,y=840,z=5,stackpos=1},
wallPos2 = {x=513,y=841,z=5,stackpos=1},
wallPos3 = {x=513,y=842,z=5,stackpos=1},
wallPos4 = {x=513,y=843,z=5,stackpos=1},
wallPos5 = {x=512,y=843,z=5,stackpos=1},
AccessMessage = "Only Gods and Gamemasters can execute an event!",

FirstMessage = "Event Notice!",
SecondMessage = "Capture The Flag has been opened to join go through the portal on the top floor of depot.",
ThirdMessage = "Capture The Flag will begin in 5 minutes!",
FourthMessage = "Capture The Flag will begin in 3 minutes!",
ClosingMessage = "Capture The Flag will close and begin in 1 minute!",
CloseMessage = "Capture The Flag portal has closed and the event has begun!\n Gametime: 25 minutes",
timeLimitMessage = "25 minutes has elapsed and ",
timeLimitTieMessage = ""

}

local waitingRoomFrompos = {x=617, y=625, z=7, stackpos=253}
local waitingRoomTopos = {x=652, y=654, z=7, stackpos=253}

local CTF = {
fromPos = {x=660, y=495, z=7, stackpos=253},
toPos = {x=765, y=550, z=7, stackpos=253},
deTile = {x=720,y=626,z=7,stackpos=1}}
function TeleportWinners()
	for _, pid in ipairs(getPlayersOnline()) do
		if isInArea(getPlayerPosition(pid), CTF.fromPos, CTF.toPos) then
			doTeleportThing(pid, CTF.deTile, false)
		end
	end
end

function endCtf(cid)
	if getGlobalStorageValue(2010) ~= 4 then
		redStorage = getGlobalStorageValue(2001)
		blueStorage = getGlobalStorageValue(2002)
		if redStorage < blueStorage then
			doBroadcastMessage("25 minutes has elapsed, red team wins!",configCTF.MessageType)
			setGlobalStorageValue(2010, 1)
			TeleportWinners()
		elseif blueStorage < redStorage then
			doBroadcastMessage("25 minutes has elapsed, blue team wins!",configCTF.MessageType)
			setGlobalStorageValue(2010, 2)
			TeleportWinners()
		elseif redStorage == blueStorage then
			doBroadcastMessage("25 minutes has elapsed and the scores are tied, next score wins!",configCTF.MessageType)
			setGlobalStorageValue(2010, 3)
		end
	end
end

--Functions for war.
function EventNotice11(cid)
	addEvent(EventNotice21,5000,cid)
	doBroadcastMessage(configWar.FirstMessage,configWar.MessageType)
end

function EventNotice21(cid)
	addEvent(EventNotice31,10*1000,cid)
	doBroadcastMessage(configWar.SecondMessage,configWar.MessageType)
end

function EventNotice31(cid)
	addEvent(EventNotice41,120*1000,cid)
	doBroadcastMessage(configWar.ThirdMessage,configWar.MessageType)
end

function EventNotice41(cid)
	addEvent(EventNotice51,120*1000,cid)
	doBroadcastMessage(configWar.FourthMessage,configWar.MessageType)
end

function EventNotice51(cid)
	addEvent(EventNotice61,60*1000,cid)
	doBroadcastMessage(configWar.ClosingMessage,configWar.MessageType)
end

function EventNotice61(cid)
	doCreateItem(1600,1,configWar.wallPos)
	doCreateItem(1595,1,configWar.wallPos1)
	doCreateItem(1596,1,configWar.wallPos2)
	doCreateItem(1596,1,configWar.wallPos3)
	doCreateItem(1601,1,configWar.wallPos4)
	doCreateItem(1600,1,configWar.wallPos5)
	doBroadcastMessage(configWar.CloseMessage,configWar.MessageType)
	addEvent(BeginWAR,5*1000,cid)
end

--Functions for CTF.
function EventNotice1(cid)
	addEvent(EventNotice2,5000,cid)
	doBroadcastMessage(configCTF.FirstMessage,configCTF.MessageType)
end

function EventNotice2(cid)
	addEvent(EventNotice3,10*1000,cid)
	doBroadcastMessage(configCTF.SecondMessage,configCTF.MessageType)
end

function EventNotice3(cid)
	addEvent(EventNotice4,120*1000,cid)
	doBroadcastMessage(configCTF.ThirdMessage,configCTF.MessageType)
end

function EventNotice4(cid)
	addEvent(EventNotice5,120*1000,cid)
	doBroadcastMessage(configCTF.FourthMessage,configCTF.MessageType)
end

function EventNotice5(cid)
	addEvent(EventNotice6,60*1000,cid)
	doBroadcastMessage(configCTF.ClosingMessage,configCTF.MessageType)
end

function EventNotice6(cid)
	doCreateItem(1600,1,configCTF.wallPos)
	doCreateItem(1595,1,configCTF.wallPos1)
	doCreateItem(1596,1,configCTF.wallPos2)
	doCreateItem(1596,1,configCTF.wallPos3)
	doCreateItem(1601,1,configCTF.wallPos4)
	doCreateItem(1600,1,configCTF.wallPos5)
	doBroadcastMessage(configCTF.CloseMessage,configCTF.MessageType)
	addEvent(BeginCTF,5*1000,cid)
end

--Start for War Event
function BeginWAR(cid)
	for _, pid in ipairs(getPlayersOnline()) do
		if isInArea(getPlayerPosition(pid), waitingRoomFrompos, waitingRoomTopos) then
			doTeleportThing(pid, {x=635,y=614,z=7,stackpos=1}, false)
		end
	end
end

--Start for CTF Event
function BeginCTF(cid)
	for _, pid in ipairs(getPlayersOnline()) do
		if isInArea(getPlayerPosition(pid), waitingRoomFrompos, waitingRoomTopos) then
			doTeleportThing(pid, {x=720,y=629,z=7,stackpos=1}, false)
		end
	end
end

function SetEventWAR(cid)
	setGlobalStorageValue(1005, 0)--WAR
end

function SetEventCTF(cid)
	doRemoveItem(getThingFromPos(configCTF.wallPos).uid,1)
	doRemoveItem(getThingFromPos(configCTF.wallPos1).uid,1)
	doRemoveItem(getThingFromPos(configCTF.wallPos2).uid,1)
	doRemoveItem(getThingFromPos(configCTF.wallPos3).uid,1)
	doRemoveItem(getThingFromPos(configCTF.wallPos4).uid,1)
	doRemoveItem(getThingFromPos(configCTF.wallPos5).uid,1)
	setGlobalStorageValue(1005, 0)
	setGlobalStorageValue(2001, 0)
	setGlobalStorageValue(2002, 0)
	setGlobalStorageValue(2010, 0)
	blueFlagPos = {x=698, y=607, z=7}
	redFlagPos = {x=742, y=607, z=7}
	blueFlagPlate = getThingFromPos(blueFlagPos)
	redFlagPlate = getThingFromPos(redFlagPos)
	doSetItemActionId(blueFlagPlate.uid,100)
	doSetItemActionId(redFlagPlate.uid,100)
	addEvent(EventNotice1,2000,cid)
	addEvent(endCtf,1800000,cid) --30 minutes, 5 in lobby 25 in CTF
	setGlobalStorageValue(28001, os.time(t))
end

local WAR = 0
local CTF = 1
local eventType = getGlobalStorageValue(1005)

function onThink(cid, item, fromPosition, toPosition)
	if getGlobalStorageValue(1005) <= WAR then
		doRemoveItem(getThingFromPos(configWar.wallPos).uid,1)
		doRemoveItem(getThingFromPos(configWar.wallPos1).uid,1)
		doRemoveItem(getThingFromPos(configWar.wallPos2).uid,1)
		doRemoveItem(getThingFromPos(configWar.wallPos3).uid,1)
		doRemoveItem(getThingFromPos(configWar.wallPos4).uid,1)
		doRemoveItem(getThingFromPos(configWar.wallPos5).uid,1)
		setGlobalStorageValue(1005, 1)
		setGlobalStorageValue(2001, 0)
		setGlobalStorageValue(2002, 0)
		addEvent(EventNotice11,2000,cid)
		addEvent(SetEventCTF,7200*1000,cid)
		setGlobalStorageValue(28000, os.time(t))
	else
		doBroadcastMessage('Event System:\nEvent System Error, Please notify staff.')
	end
	return 1
end

Lua:
function onStepIn(cid, item, position, fromPosition)
	local config = {
	redTeam = 3,
	blueTeam = 4,
	depot = {x=517,y=840,z=7,stackpos=1},
	rewardRoom = {x=636,y=662,z=7,stackpos=1}
	}

local Team = getPlayerStorageValue(cid,1000)
local redStorage = getGlobalStorageValue(2001)
local blueStorage = getGlobalStorageValue(2002)
local currentWins = getPlayerStorageValue(cid,65533)
local currentPlays = getPlayerStorageValue(cid,65534)
local CHANNEL_BLUE, CHANNEL_RED = 12, 11

--If Red Team Wins
	if redStorage < blueStorage or getGlobalStorageValue(2000) == 1 then
		if Team == config.redTeam then
		if currentWins < 1 then
			setPlayerStorageValue(cid,65533,1)
			else
			setPlayerStorageValue(cid,65533,currentWins+1)
		end
		if currentPlays < 1 then
			setPlayerStorageValue(cid,65534,1)
			else
			setPlayerStorageValue(cid,65534,currentPlays+1)
		end
			doRemoveCondition(cid,CONDITION_INFIGHT)
			doRemoveCondition(cid, CONDITION_OUTFIT)	
			doTeleportThing(cid,config.rewardRoom,false)
			doPlayerCloseChannel(cid, CHANNEL_RED)
			setPlayerStorageValue(cid, 1000, 0)
			setPlayerStorageValue(cid, 2000, 0)
			setGlobalStorageValue(2000, 4)
			doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Congratulations, your team won the event!")
		else
		if currentPlays < 1 then
			setPlayerStorageValue(cid,65534,1)
			else
			setPlayerStorageValue(cid,65534,currentPlays+1)
		end
			doTeleportThing(cid,config.depot,false)
			doPlayerCloseChannel(cid, CHANNEL_BLUE)
			doRemoveCondition(cid,CONDITION_INFIGHT)
			doRemoveCondition(cid, CONDITION_OUTFIT)
			setPlayerStorageValue(cid, 1000, 0)
			setPlayerStorageValue(cid, 2000, 0)
			setGlobalStorageValue(2000, 4)
		end
	end
--If Blue Team Wins	
	if redStorage > blueStorage or getGlobalStorageValue(2000) == 2 then
		if Team == config.blueTeam then
		if currentWins < 1 then
			setPlayerStorageValue(cid,65533,1)
			else
			setPlayerStorageValue(cid,65533,currentWins+1)
		end
		if currentPlays < 1 then
			setPlayerStorageValue(cid,65534,1)
			else
			setPlayerStorageValue(cid,65534,currentPlays+1)
		end
			doRemoveCondition(cid,CONDITION_INFIGHT)
			doRemoveCondition(cid, CONDITION_OUTFIT)	
			doTeleportThing(cid,config.rewardRoom,false)
			doPlayerCloseChannel(cid, CHANNEL_BLUE)
			setPlayerStorageValue(cid, 1000, 0)
			setPlayerStorageValue(cid, 2000, 0)
			setGlobalStorageValue(2000, 4)
			doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Congratulations, your team won the event!")
			else
		if currentPlays < 1 then
			setPlayerStorageValue(cid,65534,1)
			else
			setPlayerStorageValue(cid,65534,currentPlays+1)
		end
			doTeleportThing(cid,config.depot,false)
			doPlayerCloseChannel(cid, CHANNEL_RED)
			doRemoveCondition(cid,CONDITION_INFIGHT)
			doRemoveCondition(cid, CONDITION_OUTFIT)
			setPlayerStorageValue(cid, 1000, 0)
			setPlayerStorageValue(cid, 2000, 0)
			setGlobalStorageValue(2000, 4)
		end
	end
	return true
end
 
Last edited by a moderator:
Hi, please use the correct tags next time. I have edited your post to use the correct tags. I also hope you submit tabbed code as well (I've tabbed the first half for you).
Good luck finding full support for your code though.

Red
 
Back
Top