Ir para conteúdo
  • 0

Alguém ai poderia separar esse sistema para mim?


Fausto32

Pergunta

Então eu queria essa MOd separada mais não sei fazer isso :c

Alguém faz? D:

CTF


<?xml version="1.0" encoding="utf-8"?>
<mod name="CTF" version="1.0" author="Doggynub" contact="otland.net" enabled="yes">
 <config name="toto"><![CDATA[

--[[ Storage Settings]]--


Owner = 1900 -- put empty storage

FLAG2_INn = 4000 -- put empty storage

FLAG_IN = 4001 -- put empty storage

TEAM1_FLAGS = 3030 -- put empty storage

TEAM2_FLAGS = 3031 -- put empty storage

Event_Start = 3032 -- put empty storage

Event_timeend = 3033 -- put empty storage

Event_Tile_Close = 3039 -- put empty storage

joined = 2023 --put empty storage

Timer = 1010 --put empty storage

--------------------------------------


--[[ Places setting ]]--


BLUE_FLAG = {x=3536,y=3537,z=7} -- Blue flag Place

RED_FLAG = {x=3536,y=3537,z=7} --red flag Place

Tp_Place = {x=1007,y=991,z=15} -- Place where the event teleport will be created.

Wait_Place = {x=3551,y=3554,z=7} -- Positions Players will  be sent when the enter event's teleport

frompos = {x=3553, y=3559, z=7} --start sqm in the waiting room(1 floor)

topos = {x=3556,y=3566,z=7} -- end sqm in the waiting room(1 floor)

Red_Position = {x=3615,y=3602,z=7} -- Red team temple pos

Blue_Position = {x=3546,y=3536,z=7} -- Blue team temple pos



---------------------------------------


--[[Event setting ]]--


Event_WaitTime = 5 -- time for the collection of player then event will start (in minutes)

Event_MaxTime = 10 --- in minutes ( this is the max time for an event to bb running )

Players_Speed = 20000 -- put the level of base speed in event ( like if you want the speed of lvl 300 then wright 300)

 Flag_Holder_Speed = 20000 -- [Old-Styled feature] speed for the player when he hold a flag better not to increase.

TEAM2_NAME = "Red" -- team 2 name

TEAM1_NAME = "Green" -- team 1 name

FLAG_SCORE = 5 -- score when team gets he wins

Teleport_On_Score = false -- this teleport all players to their team main position when some one score a flag , make false to disable.

Players_Least_Number = 2 -- this means if there is less than 2 players joined the event will be cancelled

Min_Join_Level = 100 -- min lvl for a player to join event

rewards_random = {
					[60] = { -- Rewards of 60% , if it is then it will randomly give one of the items in the items verible if there you put more than one item there
								items = {9971,9971,9971}
							},

					[30] = { -- Rewards of 30%
								items = {9971,9971,9971}
							},


					[10] = { -- Rewards of 10%
								items = {9971,9971,9971}
							}
				}


]]></config>
 <lib name="CTF-lib"><![CDATA[
function isTeamTwo(cid)
return (isPlayer(cid) and getPlayerStorageValue(cid,5054) > -1)
end
function isTeamOne(cid)
return (isPlayer(cid) and getPlayerStorageValue(cid,5055) > -1)
end
function resetTheTeams(cid)
return (isPlayer(cid) and setPlayerStorageValue(cid,5054,-1) and setPlayerStorageValue(cid,5055,-1))
end
function setflagOwner(cid)
return setPlayerStorageValue(cid,Owner,1)
end
function flagOwner(cid)
return (isPlayer(cid) and getPlayerStorageValue(cid,Owner) > 0)
end
function releaseBF(cid)
setGlobalStorageValue(FLAG_IN,-1)
setPlayerStorageValue(cid,103, 0)
setPlayerStorageValue(cid,Owner,-1)
return true
end
function releaseRF(cid)
setGlobalStorageValue(FLAG2_INn,-1)
setPlayerStorageValue(cid,103, 0)
setPlayerStorageValue(cid,Owner,-1)
return true
end
function setFirstTeam(cid)
return setPlayerStorageValue(cid,5055,1)
end
function setSecondTeam(cid)
return setPlayerStorageValue(cid,5054,2)
end
function addToRed()
return setGlobalStorageValue(TEAM2_FLAGS,getGlobalStorageValue(TEAM2_FLAGS)+1)
end
function addToBlue()
return setGlobalStorageValue(TEAM1_FLAGS,getGlobalStorageValue(TEAM1_FLAGS)+1)
end
function getBlueScore()
return getGlobalStorageValue(TEAM1_FLAGS)
end
function getRedScore()
return getGlobalStorageValue(TEAM2_FLAGS)
end
function getTheSpeed(level)
value = (220 +(2 *(level -1)))
return value
end

function resetTheStorage()
setGlobalStorageValue(Event_Start,-1)
setGlobalStorageValue(Event_timeend,-1)
setGlobalStorageValue(TEAM1_FLAGS,0)
setGlobalStorageValue(FLAG2_INn,-1)
setGlobalStorageValue(FLAG_IN,-1)
setGlobalStorageValue(TEAM2_FLAGS,0)
return true
end
function blueStolen()
return getGlobalStorageValue(FLAG_IN)
end
function redStolen()
return getGlobalStorageValue(FLAG2_INn)
end
function giveReward(cid)
local t = math.random(1,100)
if t <= 10 then
	local rare = rewards_random[10].items[math.random(1,#rewards_random[10].items)]
	doPlayerAddItem(cid,rare,1)
	doPlayerSendTextMessage(cid,25,"Rare rate Reward : you won "..getItemNameById(rare)..".")

elseif t > 10 and t <= 40 then
	local semi = rewards_random[30].items[math.random(1,#rewards_random[30].items)]
	doPlayerAddItem(cid,semi,1)
	doPlayerSendTextMessage(cid,25,"Semi rate Reward : you won "..getItemNameById(semi)..".")


elseif t > 40 then
	local aver = rewards_random[60].items[math.random(1,#rewards_random[60].items)]
	doPlayerAddItem(cid,aver,1)
	doPlayerSendTextMessage(cid,25,"Averege rate Reward : you won "..getItemNameById(aver)..".")
end
return true
end
]]></lib>
 <event type="login" name="Tutorial Login" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')
function onLogin(cid)
if getGlobalStorageValue(Event_Start) < 1 then
	if isTeamOne(cid) or isTeamTwo(cid) then
		resetTheTeams(cid)
	end
end
registerCreatureEvent(cid, "Attk")
registerCreatureEvent(cid, "ctff")
registerCreatureEvent(cid, "prepare")
return true
end
]]></event>
 <event type="combat" name="Attk" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')

function onCombat(cid, target)
if isTeamOne(cid) and isTeamOne(target) then
	return false
end
if isTeamTwo(cid) and isTeamTwo(target) then
	return false
end
return true
end
]]></event>
 <event type="statschange" name="prepare" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')

local corpse_ids = {
	[0] = 3065, -- female
	[1] = 3058 -- male
}
function onStatsChange(cid, attacker, type, combat, value)
	if combat == COMBAT_HEALING then
		return true
	end
	if getCreatureHealth(cid) > value then
		return true
	end
	if getGlobalStorageValue(Event_Start) > 0 then
		if flagOwner(cid) then
			if isTeamOne(cid) then
				doItemSetAttribute(doCreateItem(corpse_ids[getPlayerSex(cid)], 1, getThingPos(cid)), "description", "You recognize "..getCreatureName(cid)..". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item").."[Flag Holder].")
				doTeleportThing(cid,Blue_Position,false)
				doSendMagicEffect(Blue_Position,10)
				doCreatureAddHealth(cid,getCreatureMaxHealth(cid))
				doCreatureAddMana(cid,getCreatureMaxMana(cid))
				releaseRF(cid)
						for _,cid in ipairs(getPlayersOnline()) do
							if isTeamOne(cid) or isTeamTwo(cid) then
								doPlayerSendTextMessage(cid,22,getCreatureName(cid) .. " has died with the "..TEAM2_NAME.." team flag. The flag is returned back to the "..TEAM1_NAME.." team.")
							end
						end
				return false
			elseif isTeamTwo(cid) then
				doItemSetAttribute(doCreateItem(corpse_ids[getPlayerSex(cid)], 1, getThingPos(cid)), "description", "You recognize "..getCreatureName(cid)..". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item").."[Flag Holder].")
				doTeleportThing(cid,Red_Position,false)
				doSendMagicEffect(Red_Position,10)
				doCreatureAddHealth(cid,getCreatureMaxHealth(cid))
				doCreatureAddMana(cid,getCreatureMaxMana(cid))
				releaseBF(cid)
						for _,cid in ipairs(getPlayersOnline()) do
							if isTeamOne(cid) or isTeamTwo(cid) then
								doPlayerSendTextMessage(cid,22,getCreatureName(cid) .. " has died with the "..TEAM1_NAME.." team flag. The flag is returned back to the "..TEAM1_NAME.." team.")
							end
						end
			return false
			end

		else
			if isTeamOne(cid) or isTeamTwo(cid) then
				doItemSetAttribute(doCreateItem(corpse_ids[getPlayerSex(cid)], 1, getThingPos(cid)), "description", "You recognize "..getCreatureName(cid)..". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item").."[Normal kill].")
				doTeleportThing(cid,( isTeamTwo(cid) and Red_Position or Blue_Position ),false)
				doSendMagicEffect(Red_Position,10)
				doCreatureAddHealth(cid,getCreatureMaxHealth(cid))
				doCreatureAddMana(cid,getCreatureMaxMana(cid))
				return false
			end
		end

	end
return true
end

]]></event>
 <movevent type="StepIn" actionid="6000" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')

function eventEnds()
doBroadcastMessage('CTF-Event : The '..TEAM2_NAME..' team won and reciaved their reward.')
	for _,cid in ipairs(getPlayersOnline()) do
		if isTeamTwo(cid) then
			doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
			doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
			doRemoveConditions(cid,false)
			resetTheTeams(cid)
			doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
			giveReward(cid)

		elseif isTeamOne(cid) then
			doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
			doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
			doRemoveConditions(cid,false)
			doPlayerSendTextMessage(cid,22,'Your team have lost.')
			resetTheTeams(cid)
			doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
		end
	end
addEvent(resetTheStorage,5)
end
function onStepIn(cid, item, position, fromPosition)
if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
	if isTeamTwo(cid) and redStolen() < 0 then
		if not flagOwner(cid) then
			doTeleportThing(cid, fromPosition,TRUE)
			doSendMagicEffect(getThingPos(cid),2)
			doPlayerSendTextMessage(cid, 27, "This is your team flag, you cant take it!")
		end
	elseif isTeamTwo(cid) and redStolen() > 0 and blueStolen() < 0 then
		doPlayerSendTextMessage(cid, 27, "Your team's Flag has been stolen, go get it back!")
		doTeleportThing(cid, fromPosition,TRUE)
		doSendMagicEffect(getThingPos(cid),2)
	  return true
	end
	if isTeamTwo(cid) and flagOwner(cid) and blueStolen() > 0 and redStolen() < 0 then
		if getRedScore() == FLAG_SCORE -1 then
			addEvent(eventEnds,1000)
			addToRed()
			doTeleportThing(cid, fromPosition,TRUE)
			doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid) )
			releaseBF(cid)
				for _,tid in ipairs(getPlayersOnline()) do
					if isTeamOne(tid) or isTeamTwo(tid) then
						doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " have captured the last flag and earned match win to the ".. TEAM2_NAME.." team!")
					end
				end
		else
			releaseBF(cid)
			addToRed()
			doTeleportThing(cid, fromPosition,TRUE)
			doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid) )
				for _,tid in ipairs(getPlayersOnline()) do
					if isTeamOne(tid) or isTeamTwo(tid) then
						doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " have captured the flag and earned 1 point to the ".. TEAM2_NAME.." team!")
							if Teleport_On_Score == true then
								doTeleportThing(tid,( isTeamTwo(tid) and Red_Position or Blue_Position ), false)
								doSendMagicEffect(getThingPos(tid),10)
							end
					end
				end
		end
	end
	if isTeamOne(cid) then
		if blueStolen() < 0 and redStolen() > 0 then
			if flagOwner(cid) then
				doPlayerSendTextMessage(cid, 27, "You already holding the flag!")
				doTeleportThing(cid, fromPosition,TRUE)
				doSendMagicEffect(getThingPos(cid),2)
			elseif (not flagOwner(cid)) then
				doPlayerSendTextMessage(cid, 27, "Your Team mates already stole the oponent flag, defend him!")
				doTeleportThing(cid, fromPosition,TRUE)
				doSendMagicEffect(getThingPos(cid),2)
			end
		elseif blueStolen() > 0 and redStolen() < 0 then
			doPlayerSendTextMessage(cid, 27, "Your team's flag is taken you can't capture or steel a flag!")
			doTeleportThing(cid, fromPosition,TRUE)
			doSendMagicEffect(getThingPos(cid),2)
		end
		if redStolen() < 0 and blueStolen() < 0 then
			setGlobalStorageValue(FLAG2_INn,1)
			setflagOwner(cid)
			setPlayerStorageValue(cid,103, os.time()+300)
			doTeleportThing(cid, fromPosition,TRUE)
			doChangeSpeed(cid, getTheSpeed(Flag_Holder_Speed)- getCreatureSpeed(cid) )
				for _,tid in ipairs(getPlayersOnline()) do
					if isTeamOne(tid) or isTeamTwo(tid) then
						doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " stolen the "..TEAM2_NAME.." team flag!")
					end
				end
		end
	end
end
return true
end
]]></movevent>
 <movevent type="StepIn" actionid="3435" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if getStorage(Event_Tile_Close) > 0 then
	if getPlayerLevel(cid) < Min_Join_Level then
	   doTeleportThing(cid,fromPosition,false)
		doSendMagicEffect(fromPosition,10)
		doPlayerSendTextMessage(cid,21,"Only players of level "..Min_Join_Level.." are allowed to pass.")
	else
		doTeleportThing(cid,Wait_Place,false)
		doSendMagicEffect(Wait_Place,10)
	end
else
	doTeleportThing(cid,fromPosition,false)
	doSendMagicEffect(fromPosition,10)
	doPlayerSendTextMessage(cid,21,"Come back later, event is closed now.")
end
return true
end

]]></movevent>
 <movevent type="StepIn" actionid="6001" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')

function eventEnded()
if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
	doBroadcastMessage('CTF-Event : The '.. TEAM1_NAME..' team won and reciaved their reward.')
		for _,cid in ipairs(getPlayersOnline()) do
			if isTeamOne(cid) then
				doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
				doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
				doRemoveConditions(cid,false)
				resetTheTeams(cid)
				doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
				giveReward(cid)
			elseif isTeamTwo(cid) then
				doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
				doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
				doRemoveConditions(cid,false)
				doPlayerSendTextMessage(cid,22,'Your team have lost.')
				resetTheTeams(cid)
				doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
			end
		end
end
addEvent(resetTheStorage,5)
end
function onStepIn(cid, item, position, fromPosition)
if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
	if isTeamOne(cid) and blueStolen() < 0 then
		if not flagOwner(cid) then
			doTeleportThing(cid, fromPosition,TRUE)
			doSendMagicEffect(getThingPos(cid),2)
			doPlayerSendTextMessage(cid, 27, "This is your team flag, you cant take it!")
		end
	elseif isTeamOne(cid) and blueStolen() > 0 and redStolen() < 0 then
		doPlayerSendTextMessage(cid, 27, "Your team's Flag has been stolen, go get it back!")
		doTeleportThing(cid, fromPosition,TRUE)
		doSendMagicEffect(getThingPos(cid),2)
	 return true
	end
	if isTeamOne(cid) and flagOwner(cid) and redStolen() > 0 and blueStolen() < 0 then
		if getBlueScore() == FLAG_SCORE -1 then
			addEvent(eventEnded,1000)
			addToBlue()
			doTeleportThing(cid, fromPosition,TRUE)
			doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid) )
			releaseRF(cid)
				for _,tid in ipairs(getPlayersOnline()) do
					if isTeamOne(tid) or isTeamTwo(tid) then
						doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " have captured the last flag and earned match win to the ".. TEAM1_NAME.." team!")
					end
				end
		else
			releaseRF(cid)
			addToBlue()
			doTeleportThing(cid, fromPosition,TRUE)
			doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid) )
				for _,tid in ipairs(getPlayersOnline()) do
					if isTeamOne(tid) or isTeamTwo(tid) then
						doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " have captured the flag and earned 1 point to the ".. TEAM1_NAME.." team!")
							if Teleport_On_Score == true then
								doTeleportThing(tid,( isTeamTwo(tid) and Red_Position or Blue_Position ), false)
								doSendMagicEffect(getThingPos(tid),10)
							end
					end
				end
		end
	end
	if isTeamTwo(cid) then
		if blueStolen() > 0 and redStolen() < 0 then
			if flagOwner(cid) then
				doPlayerSendTextMessage(cid, 27, "You already holding the flag!")
				doTeleportThing(cid, fromPosition,TRUE)
				doSendMagicEffect(getThingPos(cid),2)
			elseif (not flagOwner(cid)) then
				doPlayerSendTextMessage(cid, 27, "Your Team mates already stole the oponent flag, defend him!")
				doTeleportThing(cid, fromPosition,TRUE)
				doSendMagicEffect(getThingPos(cid),2)
			end
		elseif redStolen() > 0 and blueStolen() < 0 then
			doPlayerSendTextMessage(cid, 27, "Your team's flag is taken you can't capture or steel a flag!")
			doTeleportThing(cid, fromPosition,TRUE)
			doSendMagicEffect(getThingPos(cid),2)
		end
		if blueStolen() < 0 and redStolen() < 0 then
			setGlobalStorageValue(FLAG_IN,1)
			setflagOwner(cid)
			setPlayerStorageValue(cid,103, os.time()+300)
			doTeleportThing(cid, fromPosition,TRUE)
			doChangeSpeed(cid, getTheSpeed(Flag_Holder_Speed)- getCreatureSpeed(cid) )
				for _,tid in ipairs(getPlayersOnline()) do
					if isTeamOne(tid) or isTeamTwo(tid) then
						doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " stolen the "..TEAM1_NAME.." team flag!")
					end
				end
		end
	end
end
return true
end
]]></movevent>
 <globalevent name="ctf" interval="900" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')
local players = {}
local bmale = createConditionObject(CONDITION_OUTFIT)
	setConditionParam(bmale, CONDITION_PARAM_TICKS, -1)
	addOutfitCondition(bmale, {lookType = math.random(128,134), lookHead = 115, lookBody =114, lookLegs = 81, lookFeet = 81, lookTypeEx = 0, lookAddons = 3})

local bfemale = createConditionObject(CONDITION_OUTFIT)
	setConditionParam(bfemale, CONDITION_PARAM_TICKS, -1)
	addOutfitCondition(bfemale, {lookType = math.random(136,142), lookHead = 115, lookBody =114, lookLegs = 81, lookFeet = 81, lookTypeEx = 0, lookAddons = 3})

local rmale = createConditionObject(CONDITION_OUTFIT)
	setConditionParam(rmale, CONDITION_PARAM_TICKS, -1)
	addOutfitCondition(rmale, {lookType = math.random(128,134), lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = 3})

local rfemale = createConditionObject(CONDITION_OUTFIT)
	setConditionParam(rfemale, CONDITION_PARAM_TICKS, -1)
	addOutfitCondition(rfemale, {lookType = math.random(136,142),lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = 3})
local fight = createConditionObject(CONDITION_INFIGHT)
	setConditionParam(fight, CONDITION_PARAM_TICKS, -1)
function eventEnd()
if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
	if getRedScore() > getBlueScore() then
		doBroadcastMessage('CTF-Event : The '.. TEAM2_NAME..' team won and recieved their reward.')
			for _,cid in ipairs(getPlayersOnline()) do
				if isTeamTwo(cid) then
					doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
					doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
					doRemoveConditions(cid,false)
					resetTheTeams(cid)
					doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
					giveReward(cid)
				elseif isTeamOne(cid) then
					doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
					doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
					doRemoveConditions(cid,false)
					doPlayerSendTextMessage(cid,22,'Your team have lost.')
					resetTheTeams(cid)
					doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
				end
			end

	elseif getRedScore() < getBlueScore() then
		doBroadcastMessage('CTF-Event : The '.. TEAM1_NAME..' team won and recieved their reward.')
			for _,cid in ipairs(getPlayersOnline()) do
				if isTeamOne(cid) then
					doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
					doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
					doRemoveConditions(cid,false)
					resetTheTeams(cid)
					doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
					giveReward(cid)
				elseif isTeamTwo(cid) then
					doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
					doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
					doRemoveConditions(cid,false)
					doPlayerSendTextMessage(cid,22,'Your team have lost.')
					resetTheTeams(cid)
					doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
				end
			end
	elseif getRedScore() == getBlueScore() then
		doBroadcastMessage('CTF-Event : The Event ended with a draw between both teams.')
			for _,cid in ipairs(getPlayersOnline()) do
				if isTeamTwo(cid) or isTeamOne(cid) then
					doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
					doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
					doRemoveConditions(cid,false)
					doPlayerSendTextMessage(cid,22,'It was a draw between both teams.')
					resetTheTeams(cid)
					doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
				end
			end

	end
	addEvent(resetTheStorage,1000)
end
end

function eventStart()
doSetStorage(Event_Tile_Close,-1)
setGlobalStorageValue(Event_timeend,1)
setGlobalStorageValue(Timer, os.time() + Event_MaxTime*60)
addEvent(eventEnd,Event_MaxTime*60*1000)



		for v = frompos.x , topos.x do
			for k = frompos.y , topos.y do
				for i = 1, 200 do
					position = {x = v, y = k, z = 7, stackpos = i}
					pid = getThingfromPos(position).uid
						if(pid ~= nil and isPlayer(pid)) then
							table.insert(players, pid)
						end
				end
			end
		end
		if math.mod(#players, 2) ~= 0 then
			doTeleportThing(players[#players],getTownTemplePosition(getPlayerTown(players[#players])),false)
			doSendMagicEffect(getThingPosition(players[#players]),10)
			doPlayerSendTextMessage(players[#players], 19, "Sorry, you have been kicked from event to balance teams.")
			table.remove(players)
		end
		if #players < Players_Least_Number then
			doBroadcastMessage("CTF event was cancelled because less than "..Players_Least_Number.." players joined")
			resetTheStorage()
				if #players > 0 then
					for i = 1,#players do
						 doTeleportThing(players[i],getTownTemplePosition(getPlayerTown(players[i])),false)
						 doSendMagicEffect(getThingPos(players[i]), 10)
					end
				end
		else
				 doBroadcastMessage("CTF started")
					for i = 1, math.floor(#players/2) do
						setFirstTeam(players[i])
					end
					for i = math.floor(#players/2)+1 , #players do
						setSecondTeam(players[i])
					end
					for _,cid in ipairs(getPlayersOnline()) do
						if isTeamOne(cid) then
							if getPlayerSex(cid) == 1 then
								doAddCondition(cid, bmale)
							elseif getPlayerSex(cid) ~= 1 then
								doAddCondition(cid, bfemale)
							end
							doAddCondition(cid, fight)
							doTeleportThing(cid,Blue_Position,false)
							doSendMagicEffect(Blue_Position, 10)
							doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid))
						elseif  isTeamTwo(cid) then
							if getPlayerSex(cid) == 1 then
								doAddCondition(cid, rmale)
							elseif getPlayerSex(cid) ~= 1 then
								doAddCondition(cid, rfemale)
							end
							doAddCondition(cid, fight)
							doTeleportThing(cid,Red_Position,false)
							doSendMagicEffect(Red_Position, 10)
							doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid))
						end
					end
					players = {}

		end
end
function onThink(interval)
  if getGlobalStorageValue(Event_Start) < 0 then
	setGlobalStorageValue(Event_Start,1)
	doSetStorage(Event_Tile_Close,1)
	doBroadcastMessage("CTF event is opened and teleport is created. It will start in "..Event_WaitTime.." minutes.")
	players = {}
	if getTileItemById(Tp_Place, 1387).uid < 1 then
		doItemSetAttribute(doCreateItem(1387,1, Tp_Place), "aid", 3435)
	end

	f= Event_WaitTime - 1
		for i = 1,Event_WaitTime-1 do
			addEvent(doBroadcastMessage,i*60*1000,"CTF event is opened and teleport is created. It will start in "..f.." minutes.")
			f= f-1
		end
	addEvent(eventStart,Event_WaitTime*60*1000)
end
return true
end
]]></globalevent>
 <event type="think" name="ctff" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')

local bl = BLUE_FLAG
local re = RED_FLAG
function onThink(interval)
if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
	if redStolen() < 0 then
		doSendAnimatedText(re,"FLAG!",TEXTCOLOR_DARKRED)
		doSendMagicEffect(re, CONST_ME_SOUND_RED)
	end
	if blueStolen() < 0 then
		doSendAnimatedText(bl,"FLAG!",TEXTCOLOR_GREEN)
		doSendMagicEffect(bl, CONST_ME_SOUND_GREEN)
	end
	for _, cid in ipairs(getPlayersOnline()) do
		if flagOwner(cid) then
			if isTeamOne(cid) or isTeamTwo(cid) then
				if hasCondition(cid,CONDITION_HASTE) then
					doRemoveCondition(cid,CONDITION_HASTE)
				end
			end
			pl = getThingPos(cid)
				if isTeamTwo(cid) then
					if getPlayerStorageValue(cid,103) < os.time() then
						releaseBF(cid)
							for _,cid in ipairs(getPlayersOnline()) do
								if isTeamOne(cid) or isTeamTwo(cid) then
									doPlayerSendTextMessage(cid,22,getCreatureName(cid) .. " wasted 5 minutes with FLAG."..TEAM2_NAME.." flag is again on spawn!")
								end
							end
					else
						doSendAnimatedText(pl,"FLAG!",TEXTCOLOR_GREEN)
						doSendMagicEffect(pl, CONST_ME_SOUND_GREEN)
					end
				elseif isTeamOne(cid) then
					if getPlayerStorageValue(cid,103) < os.time() then
						releaseRF(cid)
							for _,cid in ipairs(getPlayersOnline()) do
								if isTeamOne(cid) or isTeamTwo(cid) then
									doPlayerSendTextMessage(cid,22,getCreatureName(cid) .. " wasted 5 minutes with FLAG."..TEAM1_NAME.." flag is again on spawn!")
								end
							end
					else
						doSendAnimatedText(pl,"FLAG!",COLOR_RED)
						doSendMagicEffect(pl, CONST_ME_SOUND_RED)
					end
				end
		end
	end
end
 return true
end
]]></event>
 <globalevent name="timer" interval="0.4" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')

function onThink(interval)
for _,cid in ipairs(getPlayersOnline()) do
	if isTeamOne(cid) or isTeamTwo(cid) then
		if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
			if getGlobalStorageValue(Timer)- os.time() >= 0 then
				doPlayerSendCancel(cid, "Time -> ".. os.date("%M:%S ",getGlobalStorageValue(Timer)- os.time()) .. "  |  ".. TEAM1_NAME.." Score : "..getBlueScore(cid).."/"..FLAG_SCORE.." captures  |  ".. TEAM2_NAME.." Score : "..getRedScore(cid).."/"..FLAG_SCORE.." captures")
			end
		end
	end
end
return true
end
]]></globalevent>
 <globalevent name="starting" type="startup" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')
function onStartup()
resetTheStorage()

return true
end
]]></globalevent>
</mod>

Vlw :D

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Como assim separada?

 

Em vez de MOD, você quer cada arquivo na sua pasta, é isso?

Exatamente!

Quero uma Talkaction pra ele e creio q separado séria mais facil alguém criar, i depois mods dão mais trabalho :x

Poderia separar para min?

Obrigado (:

 

Sé ngm pode separar, podia pelo menos arrumar a parte do hórario?

Tipo ali é assim:

<globalevent name="ctf" interval="86400000" event="script">

Algúem poderia fazer ele funcionar assim?

<globalevent name="dtk" time="23:25:20" event="script" value="defend.lua"/> -->

Obrigado.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...