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

One specific day event + area clean

hepy

New Member
Joined
Aug 15, 2007
Messages
217
Reaction score
1
Hi
im looking for a script that creates a teleport one specific day at one specific hour, after 30min the script check a specific area, and if there is a player inside this area, he get teleported to the temple and the teleport disappears

i really dont know how to script something like that, could someone help me?
thanks:)
 
globalevents.xml
XML:
<globalevent name="event" time="18:00" event="script" value="event.lua"/>
event.lua
Lua:
local teleportCreate = {x=100, y=100, z=7}
local teleportTo = {x=100, y=100, z=7}

local area = {
	from = {x=200, y=200, z=7},
	to = {x=400, y=400, z=7}
}

local function remove()
	local v = getTileItemById(teleportCreate, 1387).uid
	if v ~= 0 then
		doRemoveItem(v)
	end
	doBroadcastMessage('Event is over.')
	for x = area.from.x, area.to.x do
		for y = area.from.y, area.to.y do
			for z = area.from.z, area.to.z do
				local v = getTopCreature({x=x, y=y, z=z}).uid
				if isPlayer(v) then
					doTeleportThing(v, getPlayerMasterPos(v))
					doSendMagicEffect(getPlayerMasterPos(v), CONST_ME_TELEPORT)
				end
			end
		end
	end
end

function onThink(interval, lastExecution, thinkInterval)
	if os.date('%A') == 'Monday' then
		doCreateTeleport(1387, teleportTo, teleportCreate)
		doBroadcastMessage('Teleport to event has been created.')
		addEvent(remove, 30 * 60 * 1000)
	end
	return true
end
 
Just change and add another line in:
function onThink(interval, lastExecution, thinkInterval)
if os.date('%A') == 'Monday' then
doCreateTeleport(1387, teleportTo, teleportCreate)
doBroadcastMessage('Teleport to event has been created.')
addEvent(remove, 30 * 60 * 1000)
end
return true
end

You have all of your request in Cykotitan post -.-"
 
i think you didnt underestand what i need, i knowi can make what i need with cykotitan scripts, but how can i make that THIS script --->
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Team Event" version="1.0" author="Damadgerz" contact="[email protected]" enabled="yes">
<description>

This is a full auto Team BattleEvent(missing part for site) :
1- Player will get the ability to talk to the npc event starter to start the event every x times(time between each event)
2- players will go to npc and say battle and then join their desired team(you adjust team names) , they also have ability to leave team
3- You have ability to set max players per each team, npc will not tp the players to arena except when both teams are full
4- Script automatically set the place of event to a pvp arena (players no lose items,levels,geet msg who killed them).Place cant be a non-pvp area.
5- if player logged out they will automatically be lifted out from event.
6- players in same team cant attack each others even with spells
7- each team will have a uniform :)
8-you choose where the first team be tped and where the second team be tped
9-when event start, you set a max time for event.So if ppl couldnt kill each other( if players in first team = players in second team when event times finish) They will automatically be sent to temple and no one will take reward and broadcast :)
10 -during event if max time didnt finish and player of team 1 killed all of those of team2 then players of team1 will be tped to temple broadcasting they won by killing all other members and will recieve a random reward taht you set
11 -Then the event will be on hold untill time between each event pass(you set that) , and when it pass a auto broadcast is made every minute to tell player that event is open.
</description>

<config name="tutorial_m"><![CDATA[

running1 = 12000 --just add a non ussed storage
running2 = 12001 --just add a non ussed storage
joined = 10000 --just add a non ussed storage
sto = 12223 --just add a non ussed storage
check = 5454 -- empty storage
redpotision = {x=1036, y=1021, z=7} --place where the red team player be teleported to
blueposition = {x=1023, y=1021, z=7} --place where the blue team player be teleported to
stoptime = 2 --in minutes
team1name = "Blue" --just put the name without <team>
team2name = "Red"
timebetween = 5 -- time between each event
arena = { frompos = {x=1022,y=1017,z=7}, topos = {x=1037,y=1025,z=7} } ----Put you event area here
conf = {
rewards_id = {2494, 2472, 2514, 2160}, -- Rewards ID
maxplayers = 1 ---maxplayers per team
}
]]></config>
<lib name="football-lib"><![CDATA[

function getBlue()
return getGlobalStorageValue(9888)
end
function removeBlue()
return setGlobalStorageValue(9888, getGlobalStorageValue(9888) - 1)
end
function addBlue()
return setGlobalStorageValue(9888, getGlobalStorageValue(9888) + 1)
end
function resetBlue()
return setGlobalStorageValue(9888,0)
end

function getRed()
return getGlobalStorageValue(9887)
end
function removeRed()
return setGlobalStorageValue(9887, getGlobalStorageValue(9887) - 1)
end
function addRed()
return setGlobalStorageValue(9887, getGlobalStorageValue(9887) + 1)
end
function resetRed()
return setGlobalStorageValue(9887,0)
end
function onStop()
if getGlobalStorageValue(running1) == 1 then
setGlobalStorageValue(running1, -1)
setGlobalStorageValue(sto,1)
end
return true
end
function onStopp()
if getGlobalStorageValue(running2) > 0 then
setGlobalStorageValue(running2,-1)
doBroadcastMessage("Event : event is started again , go talk to the Evnet's Npc.")
end
end

]]></lib>

<event type="login" name="Tutorial Login" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')
function onLogin(cid)
if getPlayerStorageValue(cid,check) > 0 then
if isInRange(getCreaturePosition(cid), arena.frompos, arena.topos) then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
setPlayerStorageValue(cid,check,-1)
else
setPlayerStorageValue(cid,check,-1)
end
end
registerCreatureEvent(cid, "Log")
registerCreatureEvent(cid, "Arena")
registerCreatureEvent(cid, "Attk")
return true
end
]]></event>
<event type="combat" name="Attk" event="script"><![CDATA[
domodlib('tutorial_m')
domodlib('football-lib')
function onCombat(cid, target)
if getPlayerStorageValue(cid, joined) == 1 and getPlayerStorageValue(target, joined) == 1 then

return false
end
if getPlayerStorageValue(cid, joined) == 2 and getPlayerStorageValue(target, joined) == 2 then

return false
end
return true
end
]]></event>
<event type="logout" name="Log" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')
function onLogout(cid)
if getPlayerStorageValue(cid,joined) == 1 then
doBroadcastMessage(""..getPlayerName(cid).." have left the War-Event")
setPlayerStorageValue(cid,joined,-1)
setPlayerStorageValue(cid,check,1)
removeBlue()
return true
end
if getPlayerStorageValue(cid,joined) == 2 then
doBroadcastMessage(""..getPlayerName(cid).." have left the War-Event")
setPlayerStorageValue(cid,check,1)
removeRed()
return true
end
return true
end

]]></event>
<event type="statschange" name="Arena" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')
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 isInRange(getCreaturePosition(cid), arena.frompos, arena.topos) 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")..".\n[War-Event kill]")
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doRemoveConditions(cid, FALSE)
doCreatureAddHealth(cid, getCreatureMaxHealth(cid) - getCreatureHealth(cid))
doCreatureAddMana(cid, getCreatureMaxMana(cid) - getCreatureMana(cid))
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You got killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item").." in the war event.")
if isPlayer(attacker) then
doPlayerSendTextMessage(attacker, MESSAGE_STATUS_CONSOLE_BLUE, "You killed "..getCreatureName(cid).." in the war event.")
end
if getPlayerStorageValue(cid,joined) == 1 then
removeBlue()
setPlayerStorageValue(cid,10000,-1)
elseif getPlayerStorageValue(cid,joined) == 2 then
removeRed()
setPlayerStorageValue(cid,10000,-1)
end
end
return true
end

]]></event>
<globalevent name="reset" type="start" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')
function onStartup()
resetBlue()
resetRed()
setGlobalStorageValue(running1,-1)
setGlobalStorageValue(running2,-1)
setGlobalStorageValue(sto,-1)

return true
end
]]></globalevent>
<globalevent name="TeamBattle" interval="7000" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')



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

local bfemale = createConditionObject(CONDITION_OUTFIT)
setConditionParam(bfemale, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(bfemale, {lookType = math.random(136,142), lookHead = 88, lookBody = 88, lookLegs = 88, lookFeet = 88, 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})

function onThink(interval, lastExecution)
local random_item = conf.rewards_id[math.random(1, #conf.rewards_id)]
if (getBlue() == conf.maxplayers and getRed() == conf.maxplayers) then
if (getGlobalStorageValue(running1) == -1 and getGlobalStorageValue(sto) == -1) then
setGlobalStorageValue(running1,1)
doBroadcastMessage("The Team Battle Event have started.And will end in "..stoptime.." minutes, unless one of the teams has killed all the oponents")
addEvent(onStop, stoptime * 60 * 1000)
for _, cid in ipairs(getPlayersOnline()) do

if getPlayerStorageValue(cid, joined) == 1 then
if getPlayerSex(cid) == 1 then
doAddCondition(cid, bmale)
elseif getPlayerSex(cid) ~= 1 then
doAddCondition(cid, bfemale)
end
doTeleportThing(cid, blueposition, FALSE)
doSendMagicEffect(blueposition, 10)
elseif getPlayerStorageValue(cid, joined) == 2 then
if getPlayerSex(cid) == 1 then
doAddCondition(cid, rmale)
elseif getPlayerSex(cid) ~= 1 then
doAddCondition(cid, rfemale)
end
doTeleportThing(cid, redpotision, FALSE)
doSendMagicEffect(redpotision, 10)
end
end
end
end
if getGlobalStorageValue(running1) == 1 then
setGlobalStorageValue(running2,1)
if (getBlue() >= 1 and getRed() < 1) then
addEvent(onStopp, timebetween * 60 * 1000)
doBroadcastMessage("The War-Event has finished as the " ..team1name.. " team has killed all players in oponnent team ,they will recieve their rewards.Event will be reopened in ".. timebetween .." minutes")
elseif (getBlue() < 1 and getRed() >= 1) then
doBroadcastMessage("The War-Event has finished as the " ..team2name.. " team has killed all players in oponnent team,they will recieve their rewards.Event will be reopened in ".. timebetween .." minutes")
addEvent(onStopp, timebetween * 60 * 1000)
end
for _, cid in ipairs(getPlayersOnline()) do
if (getBlue() >= 1 and getRed() < 1) then
if getPlayerStorageValue(cid,joined) == 1 then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doRemoveConditions(cid, FALSE)
doPlayerAddItem(cid, random_item, 1)
doRemoveConditions(cid, FALSE)
doCreatureSay(cid, "You have won a "..getItemNameById(random_item).." as a reward from war event", TALKTYPE_ORANGE_1)
setPlayerStorageValue(cid, joined,-1)
setGlobalStorageValue(running1,-1)
resetBlue()
end
end
if (getBlue() < 1 and getRed() >= 1) then
if getPlayerStorageValue(cid,joined) == 2 then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doRemoveConditions(cid, FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doRemoveConditions(cid, FALSE)
doPlayerAddItem(cid, random_item, 1)
doCreatureSay(cid, "You have won a "..getItemNameById(random_item).." as a reward from war event", TALKTYPE_ORANGE_1)
setGlobalStorageValue(running1,-1)
setPlayerStorageValue(cid, joined,-1)
resetRed()
end
end
end
end

return true
end
]]></globalevent>
<globalevent name="Team" interval="3000" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')

function onThink(interval, lastExecution)

local random_item = conf.rewards_id[math.random(1, #conf.rewards_id)]
if getGlobalStorageValue(sto) == 1 then
if (getRed() > getBlue()) then
doBroadcastMessage("The War-Event has finished as the " ..team2name.. " team has killed all players in oponnent team,they will recieve their rewards.Event will be reopened in ".. timebetween .." minutes")
for _, cid in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(cid,joined) == 2 then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doRemoveConditions(cid, FALSE)
doPlayerAddItem(cid, random_item, 1)
doRemoveConditions(cid, FALSE)
doCreatureSay(cid, "You have won a "..getItemNameById(random_item).." as a reward from war event", TALKTYPE_ORANGE_1)
setPlayerStorageValue(cid, joined,-1)
end
if getPlayerStorageValue(cid,joined) == 1 then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doPlayerSendTextMessage(cid,24, "Your team has lost in the war event war event")
setPlayerStorageValue(cid, joined,-1)
doRemoveConditions(cid, FALSE)
end
end
addEvent(onStopp, timebetween * 60 * 1000)
end
if (getRed() < getBlue()) then
doBroadcastMessage("The War-Event has finished as the " ..team1name.. " team has killed all players in oponnent team,they will recieve their rewards.Event will be reopened in ".. timebetween .." minutes")
for _, cid in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(cid,joined) == 1 then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doPlayerAddItem(cid, random_item, 1)
doRemoveConditions(cid, FALSE)
doRemoveConditions(cid, FALSE)
doCreatureSay(cid, "You have won a "..getItemNameById(random_item).." as a reward from war event", TALKTYPE_ORANGE_1)
setPlayerStorageValue(cid, joined,-1)
end
if getPlayerStorageValue(cid,joined) == 2 then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doRemoveConditions(cid, FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doPlayerSendTextMessage(cid,24, "Your team has lost in the war event war event")
setPlayerStorageValue(cid, joined,-1)
end
end
addEvent(onStopp, timebetween * 60 * 1000)
end
if (getRed() == getBlue()) then
for _, cid in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(cid,joined) == 2 or getPlayerStorageValue(cid,joined) == 1 then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doRemoveConditions(cid, FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doRemoveConditions(cid, FALSE)
setPlayerStorageValue(cid, joined,-1)
doBroadcastMessage("Event max time ended.And niether of the teams won the event.Event will be reopened in ".. timebetween .." minutes")
end
end
addEvent(onStopp, timebetween * 60 * 1000)
end
resetBlue()
resetRed()
setGlobalStorageValue(sto, -1)
end
return true
end
]]></globalevent>
<globalevent name="Broad" interval="90000" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')

function onThink(interval, lastExecution)
if getGlobalStorageValue(running2) == -1 then
doBroadcastMessage("The Battle Event is opened.Npc is gathering 2 teams to start event. There is "..getBlue().." players in blue team vs "..getRed().." players in red team.")
return true
end
return true
end
]]></globalevent>
<globalevent name="Karim" interval="40000" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')

function onThink(interval, lastExecution)
if getGlobalStorageValue(running1) > 0 then
local blue = {}
local green = {}
for _, pid in ipairs(getPlayersOnline()) do
if isInRange(getCreaturePosition(pid),arena.frompos, arena.topos) then
if getPlayerStorageValue(pid, joined) == 1 then
table.insert(blue,getCreatureName(pid))
elseif getPlayerStorageValue(pid, joined) == 2 then
table.insert(green,getCreatureName(pid))
end
end
end
local greenn = table.concat(green,', ')
local bluee = table.concat(blue,', ')
for _, tid in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(tid, joined) > 0 then
doPlayerSendTextMessage(tid,19,'<<!-- Players left --!>>\n '..team1name..' team ('..#blue..') : '..bluee..'.\n '..team2name..' team ('..#green..') : '..greenn..'.')
end
end
end
return true
end
]]></globalevent>
</mod>

executes automatically every monday and friday at 7pm for example? i know i must use what cykotitan scripted before in this thread, but where? there are 4 dfferent globalevents, which is the one which should i edit?
thanks and happy christmas!
 
Back
Top