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

MoveEvent FootBall , automatic. [0.3.6 + 0.4]-Updated-

doggy plz help me, i have your mod with the positions of my server look

XML:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Foot ball" version="1.0" author="Damadger" contact="otland.net" enabled="yes">
<config name="tutorial_m"><![CDATA[
 c = {
    players = 2,  -- ****dont change this.***
 
	 pitchpos = {fromx = 992, fromy = 1199, tox = 1006, toy = 1205, z = 7},    -- here you need to put the x and y from the farest north west sqm of the pitch, to the farest west east sqm in the pitch(including goal)
 
     ballpos =  {x = 999, y = 1202, z = 7}, -- default position of ball in middle of pitch
 
     original = 60 , --match time ( it will be devided by 2 for each half)
 
     team1pos = {
                          --Position of #TEAM_1# players standing to pull the lever
                              {x = 998, y = 1207, z = 7},
                              {x = 907, y = 1207, z = 7}
                          --- Position of #TEAM_2# players standing to pull the lever
                              {x = 1000, y = 1207, z = 7}
                              {x = 1001, y = 1207, z = 7}

                            },
 
	 destination = {
	                    --- team 1 pitch side
                             {x = 992, y = 1202, z = 7},
	                     {x = 992, y = 1202, z = 7}
			    --- team 2 pitch side
                             {x = 1006, y = 1202, z = 7},
                             {x = 1006, y = 1202, z = 7} 
                      },
 
     storage = 1919,
 
	 BLUE_SCORE = 1223,
 
	 RED_SCORE = 1224,
 
 
	 rewards = true,    -- false if you want to disable rewards
	       rewards_id = {2494, 2472, 2514, 2160} --Player are rewarded randomly
	 }
 
]]></config>
 <lib name="football-lib"><![CDATA[
 
function getSpeed(cid,level)
   value = (220 +(2 *(level -1)))
  return value
end
function addTotal(cid)
	return db.executeQuery("UPDATE `players` SET `total` = `total` + " .. 1 .. " WHERE `id`= '" .. getPlayerGUID(cid) .. "' LIMIT 1;")
end
 function addGoal(cid)
    return db.executeQuery("UPDATE `players` SET `goals` = `goals` + " .. 1 .. " WHERE `id`= '" .. getPlayerGUID(cid) .. "' LIMIT 1;")
end
function addWin(cid)
   return db.executeQuery("UPDATE `players` SET `wins` = `wins` + " .. 1 .. " WHERE `id`= '" .. getPlayerGUID(cid) .. "' LIMIT 1;")
end
]]></lib>
<action actionid="2275" event="script"> <![CDATA[
		domodlib('tutorial_m')
		domodlib('football-lib')
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 onUse(cid, item, fromPosition, itemEx, toPosition)
local n = 1
    if getGlobalStorageValue(1222) > 0 then
       doPlayerSendCancel(cid,"There is a on going match right now, please come again later.")
    return true
    end
 local players = {}
	for _, position in ipairs(c.team1pos) do
		local pid = getTopCreature(position).uid
		if(pid == 0 or not isPlayer(pid)) then
			doPlayerSendCancel(cid, "You need ".. c.players * 2 .." players to start the match.")
			return true
		end
 
		table.insert(players, pid)
 
	end
 
	for i, pid in ipairs(players) do
	    setPlayerStorageValue(pid,c.storage,n)
	     n = n+1
		doTeleportThing(pid, c.destination[getPlayerStorageValue(pid,c.storage)], false)
		doSendMagicEffect(c.destination[i], CONST_ME_ENERGYAREA)
 
	end
	for i, pid in ipairs(players) do
	     addTotal(pid)
	    if getPlayerStorageValue(pid,c.storage) > 0 and getPlayerStorageValue(pid,c.storage) <= c.players then
		      doAddCondition(pid, ( getPlayerSex(cid) == 1 and bmale or bfemale) )
	    elseif getPlayerStorageValue(pid,c.storage) > c.players  then
			   doAddCondition(pid, ( getPlayerSex(cid) == 1 and rmale or rfemale) )
	     end
 
	end
 
  	for i = c.pitchpos.fromy, c.pitchpos.toy do
		for j = c.pitchpos.fromx, c.pitchpos.tox do
			local pos = {x = j, y = i, z = c.pitchpos.z}
			local ball = getTileItemById(pos,2109).uid
			if ball > 0 then
				doRemoveItem(ball)
			end
		end
	end
	if getTileItemById(c.ballpos,2109).uid < 1 then
		doCreateItem(2109,1,c.ballpos)
	end
    setGlobalStorageValue(1222,c.original)
 
	return item.itemid == 1945 and doTransformItem(item.uid,1946) or doTransformItem(item.uid,1945)
end
]]> </action>
<movevent type="AddItem" tileitem="1" fromaid="7070" toaid="7072" event="script"><![CDATA[
		domodlib('tutorial_m')
        domodlib('football-lib')
 
		function onAddItem(moveitem, tileitem, position, cid)
 
if(moveitem.itemid ~= 2109) then
	 if getItemDescriptionsById(moveitem.itemid).type == ITEM_TYPE_MAGICFIELD then
	      doRemoveItem(moveitem.uid)
	  else
	   doPlayerAddItem(cid, moveitem.itemid,1)
	   doRemoveItem(moveitem.uid)
 
  	  end
else
   if getGlobalStorageValue(1222) < 0 then
 
	     doTeleportThing(moveitem.uid,c.ballpos)
	else
	      if tileitem.actionid == 7070 then
	             if getGlobalStorageValue(1222) >= c.original/2 then -- blue goal
                      if getPlayerStorageValue(cid,c.storage) > 0 then      
	                         doTeleportThing(moveitem.uid,c.ballpos,false)
		                     addEvent(doSendAnimatedText,20,c.ballpos,getPlayerStorageValue(cid,c.storage) > c.players and "Goal!" or "Own goal!",getPlayerStorageValue(cid,c.storage) > c.players and TEXTCOLOR_LIGHTBLUE or TEXTCOLOR_RED)
				             setGlobalStorageValue( c.RED_SCORE, getGlobalStorageValue(c.RED_SCORE) +1)
                                     if getPlayerStorageValue(cid,c.storage) > c.players then
									              addGoal(cid)
									 end
		                             for _,tid in ipairs(getPlayersOnline()) do
					                      if getPlayerStorageValue(tid,c.storage) > 0 then
		                                       doTeleportThing(tid,c.destination[getPlayerStorageValue(tid,c.storage)])
                                                    for i = 1, #c.destination do
		                                                   doSendMagicEffect(c.destination[i],10)
		                                            end
		                                  end    
		                             end
                      end
	             elseif getGlobalStorageValue(1222) < c.original/2 then -- red goal
	                  if getPlayerStorageValue(cid,c.storage) > 0 then      
	                       doTeleportThing(moveitem.uid,c.ballpos,false)
		                   addEvent(doSendAnimatedText,20,c.ballpos,getPlayerStorageValue(cid,c.storage) <= c.players and "Goal!" or "Own goal!",getPlayerStorageValue(cid,c.storage) <= c.players and TEXTCOLOR_LIGHTBLUE or TEXTCOLOR_RED)
				           setGlobalStorageValue( c.BLUE_SCORE, getGlobalStorageValue(c.BLUE_SCORE) +1)
                                     if getPlayerStorageValue(cid,c.storage) <= c.players then
									              addGoal(cid)
									 end
		                             for _,tid in ipairs(getPlayersOnline()) do
 
					                      if getPlayerStorageValue(tid,c.storage) > 0 then
		                                       doTeleportThing(tid, (getPlayerStorageValue(tid,c.storage) <= c.players and c.destination[getPlayerStorageValue(tid,c.storage)+c.players] or c.destination[getPlayerStorageValue(tid,c.storage)-c.players]))
                                                    for i = 1, #c.destination do
		                                                   doSendMagicEffect(c.destination[i],10)
		                                            end
		                                  end    
		                             end
                     end
	             end
          elseif tileitem.actionid == 7071 then	
                if getGlobalStorageValue(1222) >= c.original/ 2 then --red goal
                    if getPlayerStorageValue(cid,c.storage) > 0 then      
	                      doTeleportThing(moveitem.uid,c.ballpos,false)
		                  addEvent(doSendAnimatedText,20,c.ballpos,getPlayerStorageValue(cid,c.storage) <= c.players and "Goal!" or "Own goal!",getPlayerStorageValue(cid,c.storage) <= c.players and TEXTCOLOR_LIGHTBLUE or TEXTCOLOR_RED)
				          setGlobalStorageValue( c.BLUE_SCORE, getGlobalStorageValue(c.BLUE_SCORE) +1)
                                    if getPlayerStorageValue(cid,c.storage) <= c.players then
									              addGoal(cid)
									end
		                            for _,tid in ipairs(getPlayersOnline()) do
					                     if getPlayerStorageValue(tid,c.storage) > 0 then
		                                      doTeleportThing(tid,c.destination[getPlayerStorageValue(tid,c.storage)])
                                                    for i = 1, #c.destination do
		                                                   doSendMagicEffect(c.destination[i],10)
		                                            end
		                                 end    
		                            end
                    end
	            elseif getGlobalStorageValue(1222) < c.original / 2 then --blue
	                if getPlayerStorageValue(cid,c.storage) > 0 then      
	                      doTeleportThing(moveitem.uid,c.ballpos,false)
		                  addEvent(doSendAnimatedText,20,c.ballpos,getPlayerStorageValue(cid,c.storage) > c.players and "Goal!" or "Own goal!",getPlayerStorageValue(cid,c.storage) > c.players and TEXTCOLOR_LIGHTBLUE or TEXTCOLOR_RED)
				          setGlobalStorageValue( c.RED_SCORE, getGlobalStorageValue(c.RED_SCORE) +1)
						        if getPlayerStorageValue(cid,c.storage) > c.players then
									              addGoal(cid)
							    end
								for _,tid in ipairs(getPlayersOnline()) do
					                   if getPlayerStorageValue(tid,c.storage) > 0 then
		                                      doTeleportThing(tid, (getPlayerStorageValue(tid,c.storage) <= c.players and c.destination[getPlayerStorageValue(tid,c.storage)+c.players] or c.destination[getPlayerStorageValue(tid,c.storage)-c.players]))
                                                    for i = 1, #c.destination do
		                                                   doSendMagicEffect(c.destination[i],10)
		                                            end
		                               end    
		                        end
                    end
	            end	
          end
     end		  
 
end
 
return true
end
 
]]> </movevent>
 
<movevent type="StepIn" actionid="7072" event="script">
<![CDATA[
		domodlib('tutorial_m')
		domodlib('football-lib')
		function onStepIn(cid, item, position, fromPosition)
   if(getCreatureSpeed(cid) ~= speed) then 
            doRemoveCondition(cid, CONDITION_HASTE) 
            doChangeSpeed(cid, c.speed - getCreatureSpeed(cid)) 
    end 
return true
end
 
 
]]> </movevent>
<globalevent name="timer" interval="1000" event="script"><![CDATA[
		domodlib('tutorial_m')
		domodlib('football-lib')
function onThink(cid,interval)
	local half = c.original/2
	local random_item = c.rewards_id[math.random(1, #c.rewards_id)]
	if getGlobalStorageValue(1222) >= 0 then
		setGlobalStorageValue(1222,getGlobalStorageValue(1222) - 1)
	else
		setGlobalStorageValue(c.BLUE_SCORE,0)
		setGlobalStorageValue(c.RED_SCORE,0)
	end
	for _,cid in ipairs(getPlayersOnline()) do
		if getGlobalStorageValue(1222) >= 0 and getGlobalStorageValue(1222) < half then
			if getPlayerStorageValue(cid,c.storage) > 0 then
				doPlayerSendCancel(cid, "Time per half : "..( os.date("%M : %S",half)).."   |   Second half : "..( os.date("%M : %S",getGlobalStorageValue(1222))).."   |    Red : "..getGlobalStorageValue(c.RED_SCORE).." goals  *  Blue : "..getGlobalStorageValue(c.BLUE_SCORE).." goals")
			end           
		elseif getGlobalStorageValue(1222) >= half and getGlobalStorageValue(1222) <= c.original then
			if getPlayerStorageValue(cid,c.storage) > 0 then
				doPlayerSendCancel(cid, "Time per half : "..( os.date("%M : %S", half )).."   |   First half : "..( os.date("%M : %S",getGlobalStorageValue(1222))).."   |    Red : "..getGlobalStorageValue(c.RED_SCORE).." goals  *  Blue : "..getGlobalStorageValue(c.BLUE_SCORE).." goals")
			end
		end
		if getPlayerStorageValue(cid,c.storage) > 0 then
			if getGlobalStorageValue(1222) < 0 then
				doChangeSpeed(cid, getSpeed(cid, getPlayerLevel(cid)) - getCreatureSpeed(cid))
					if c.rewards == true then
						if getGlobalStorageValue(c.RED_SCORE) > getGlobalStorageValue(c.BLUE_SCORE) then
							if getPlayerStorageValue(cid,c.storage) > c.players then
								doPlayerSendTextMessage(cid,25, "Your teams won the match. And recieved a ["..getItemNameById(random_item).."].")
								doPlayerAddItem(cid,random_item,1)
								addWin(cid)
							elseif getPlayerStorageValue(cid,c.storage) <= c.players then
								doPlayerSendTextMessage(cid,22,"You team have lost. No reward for you!")
							end
						elseif getGlobalStorageValue(c.BLUE_SCORE) > getGlobalStorageValue(c.RED_SCORE) then
							if getPlayerStorageValue(cid,c.storage) <= c.players then
								doPlayerAddItem(cid,random_item,1)
								doPlayerSendTextMessage(cid,25, "Your teams won the match. And recieved a ["..getItemNameById(random_item).."].")
								addWin(cid)
							elseif getPlayerStorageValue(cid,c.storage) > c.players then
									doPlayerSendTextMessage(cid,22,"You team have lost. No reward for you!")
							end
						else
							doPlayerSendTextMessage(cid,22,"Neither of teams won. No rewards!")
						end
					end
					doRemoveConditions(cid, FALSE)
					doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))
					doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
					setPlayerStorageValue(cid,c.storage,-1)
						for i = c.pitchpos.fromy, c.pitchpos.toy do
							for j = c.pitchpos.fromx, c.pitchpos.tox do
								local pos = {x = j, y = i, z = c.pitchpos.z}
								local ball = getTileItemById(pos,2109).uid
								if ball > 0 then
									doRemoveItem(ball)
								end
							end
						end
						if getTileItemById(c.ballpos,2109).uid < 1 then
							doCreateItem(2109,1,c.ballpos)
						end
 
			elseif getGlobalStorageValue(1222) == half then
				doTeleportThing(cid, (getPlayerStorageValue(cid,c.storage) <= c.players and c.destination[getPlayerStorageValue(cid,c.storage)+c.players] or c.destination[getPlayerStorageValue(cid,c.storage)-c.players]))
				doPlayerSendTextMessage(cid,22,"Refree : Second half begins.")
					for i = 1, #c.destination do
						doSendMagicEffect(c.destination[i],10)
					end
					for i = c.pitchpos.fromy, c.pitchpos.toy do
						for j = c.pitchpos.fromx, c.pitchpos.tox do
							local pos = {x = j, y = i, z = c.pitchpos.z}
							local ball = getTileItemById(pos,2109).uid
								if ball > 0 then
									doRemoveItem(ball)
								end
						end
					end
					if getTileItemById(c.ballpos,2109).uid < 1 then
						doCreateItem(2109,1,c.ballpos)
					end
			end
		end
    end
return true
end
]]></globalevent>
<globalevent name="tim" type="start" event="script"><![CDATA[
		domodlib('tutorial_m')
		domodlib('football-lib')
		function onStartup()
			setGlobalStorageValue(c.BLUE_SCORE,0)
			setGlobalStorageValue(c.RED_SCORE,0)
				for i = c.pitchpos.fromy, c.pitchpos.toy do
					for j = c.pitchpos.fromx, c.pitchpos.tox do
						local pos = {x = j, y = i, z = c.pitchpos.z}
						local ball = getTileItemById(pos,2109).uid
						if ball > 0 then
							doRemoveItem(ball)
						end
					end
				end
				if getTileItemById(c.ballpos,2109).uid < 1 then
					doCreateItem(2109,1,c.ballpos)
				end
			return true
		end
]]></globalevent>
</mod>

but is not working, i'm getting this 2 erros, i cant solve it :S i tried everything i know (a little)
Lua:
[16/08/2013 17:33:19] [Error - GlobalEvent Interface] 
[16/08/2013 17:33:19] buffer:onStartup
[16/08/2013 17:33:19] Description: 
[16/08/2013 17:33:19] [string "loadBuffer"]:4: attempt to index global 'c' (a nil value)
[16/08/2013 17:33:19] stack traceback:
[16/08/2013 17:33:19] 	[string "loadBuffer"]:4: in function <[string "loadBuffer"]:3>

Lua:
[16/08/2013 17:32:34] > Loading football.xml...
[16/08/2013 17:32:34] [Error - Action Interface] 
[16/08/2013 17:32:34] buffer
[16/08/2013 17:32:34] Description: 
[16/08/2013 17:32:34] [string "c = {..."]:15: '}' expected (to close '{' at line 10) near '{'

[16/08/2013 17:32:34] [Error - MoveEvents Interface] 
[16/08/2013 17:32:34] buffer
[16/08/2013 17:32:34] Description: 
[16/08/2013 17:32:34] [string "c = {..."]:15: '}' expected (to close '{' at line 10) near '{'

[16/08/2013 17:32:34] [Error - MoveEvents Interface] 
[16/08/2013 17:32:34] buffer
[16/08/2013 17:32:34] Description: 
[16/08/2013 17:32:34] [string "c = {..."]:15: '}' expected (to close '{' at line 10) near '{'

[16/08/2013 17:32:34] [Error - GlobalEvent Interface] 
[16/08/2013 17:32:34] buffer
[16/08/2013 17:32:34] Description: 
[16/08/2013 17:32:34] [string "c = {..."]:15: '}' expected (to close '{' at line 10) near '{'

[16/08/2013 17:32:34] [Error - GlobalEvent Interface] 
[16/08/2013 17:32:34] buffer
[16/08/2013 17:32:34] Description: 
[16/08/2013 17:32:34] [string "c = {..."]:15: '}' expected (to close '{' at line 10) near '{'
[16/08/2013 17:32:34]  done.

plzzz someone help with this :S
 
still waiting for the map tho ;p

- - - Updated - - -

ok, so I studied the script and this is how it should be

lever aid = 2275
Team #1 goal AID tiles = 7070
Team #2 goal AID tiles = 7071
the tiles the players should step @ before clicking the lever AID = 7072

- - - Updated - - -

ok, I tested it. it works fine expect that you can use utani hur, utani gran hur and so so u get more speed. anyway to disable that ;p?
check on my ctf you will find how to disable them as for the map I thought I uploaded it. I will do this when i get hand on my pc.

- - - Updated - - -

doggy plz help me, i have your mod with the positions of my server look

In team1pos ={ you have 4 positions, please put a comma after each of them.
 
Doggy plz help me :(

doggy plz help me, i have your mod with the positions of my server look

XML:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Foot ball" version="1.0" author="Damadger" contact="otland.net" enabled="yes">
<config name="tutorial_m"><![CDATA[
 c = {
    players = 2,  -- ****dont change this.***
 
	 pitchpos = {fromx = 992, fromy = 1199, tox = 1006, toy = 1205, z = 7},    -- here you need to put the x and y from the farest north west sqm of the pitch, to the farest west east sqm in the pitch(including goal)
 
     ballpos =  {x = 999, y = 1202, z = 7}, -- default position of ball in middle of pitch
 
     original = 60 , --match time ( it will be devided by 2 for each half)
 
     team1pos = {
                          --Position of #TEAM_1# players standing to pull the lever
                              {x = 998, y = 1207, z = 7},
                              {x = 907, y = 1207, z = 7}
                          --- Position of #TEAM_2# players standing to pull the lever
                              {x = 1000, y = 1207, z = 7}
                              {x = 1001, y = 1207, z = 7}

                            },
 
	 destination = {
	                    --- team 1 pitch side
                             {x = 992, y = 1202, z = 7},
	                     {x = 992, y = 1202, z = 7}
			    --- team 2 pitch side
                             {x = 1006, y = 1202, z = 7},
                             {x = 1006, y = 1202, z = 7} 
                      },
 
     storage = 1919,
 
	 BLUE_SCORE = 1223,
 
	 RED_SCORE = 1224,
 
 
	 rewards = true,    -- false if you want to disable rewards
	       rewards_id = {2494, 2472, 2514, 2160} --Player are rewarded randomly
	 }
 
]]></config>
 <lib name="football-lib"><![CDATA[
 
function getSpeed(cid,level)
   value = (220 +(2 *(level -1)))
  return value
end
function addTotal(cid)
	return db.executeQuery("UPDATE `players` SET `total` = `total` + " .. 1 .. " WHERE `id`= '" .. getPlayerGUID(cid) .. "' LIMIT 1;")
end
 function addGoal(cid)
    return db.executeQuery("UPDATE `players` SET `goals` = `goals` + " .. 1 .. " WHERE `id`= '" .. getPlayerGUID(cid) .. "' LIMIT 1;")
end
function addWin(cid)
   return db.executeQuery("UPDATE `players` SET `wins` = `wins` + " .. 1 .. " WHERE `id`= '" .. getPlayerGUID(cid) .. "' LIMIT 1;")
end
]]></lib>
<action actionid="2275" event="script"> <![CDATA[
		domodlib('tutorial_m')
		domodlib('football-lib')
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 onUse(cid, item, fromPosition, itemEx, toPosition)
local n = 1
    if getGlobalStorageValue(1222) > 0 then
       doPlayerSendCancel(cid,"There is a on going match right now, please come again later.")
    return true
    end
 local players = {}
	for _, position in ipairs(c.team1pos) do
		local pid = getTopCreature(position).uid
		if(pid == 0 or not isPlayer(pid)) then
			doPlayerSendCancel(cid, "You need ".. c.players * 2 .." players to start the match.")
			return true
		end
 
		table.insert(players, pid)
 
	end
 
	for i, pid in ipairs(players) do
	    setPlayerStorageValue(pid,c.storage,n)
	     n = n+1
		doTeleportThing(pid, c.destination[getPlayerStorageValue(pid,c.storage)], false)
		doSendMagicEffect(c.destination[i], CONST_ME_ENERGYAREA)
 
	end
	for i, pid in ipairs(players) do
	     addTotal(pid)
	    if getPlayerStorageValue(pid,c.storage) > 0 and getPlayerStorageValue(pid,c.storage) <= c.players then
		      doAddCondition(pid, ( getPlayerSex(cid) == 1 and bmale or bfemale) )
	    elseif getPlayerStorageValue(pid,c.storage) > c.players  then
			   doAddCondition(pid, ( getPlayerSex(cid) == 1 and rmale or rfemale) )
	     end
 
	end
 
  	for i = c.pitchpos.fromy, c.pitchpos.toy do
		for j = c.pitchpos.fromx, c.pitchpos.tox do
			local pos = {x = j, y = i, z = c.pitchpos.z}
			local ball = getTileItemById(pos,2109).uid
			if ball > 0 then
				doRemoveItem(ball)
			end
		end
	end
	if getTileItemById(c.ballpos,2109).uid < 1 then
		doCreateItem(2109,1,c.ballpos)
	end
    setGlobalStorageValue(1222,c.original)
 
	return item.itemid == 1945 and doTransformItem(item.uid,1946) or doTransformItem(item.uid,1945)
end
]]> </action>
<movevent type="AddItem" tileitem="1" fromaid="7070" toaid="7072" event="script"><![CDATA[
		domodlib('tutorial_m')
        domodlib('football-lib')
 
		function onAddItem(moveitem, tileitem, position, cid)
 
if(moveitem.itemid ~= 2109) then
	 if getItemDescriptionsById(moveitem.itemid).type == ITEM_TYPE_MAGICFIELD then
	      doRemoveItem(moveitem.uid)
	  else
	   doPlayerAddItem(cid, moveitem.itemid,1)
	   doRemoveItem(moveitem.uid)
 
  	  end
else
   if getGlobalStorageValue(1222) < 0 then
 
	     doTeleportThing(moveitem.uid,c.ballpos)
	else
	      if tileitem.actionid == 7070 then
	             if getGlobalStorageValue(1222) >= c.original/2 then -- blue goal
                      if getPlayerStorageValue(cid,c.storage) > 0 then      
	                         doTeleportThing(moveitem.uid,c.ballpos,false)
		                     addEvent(doSendAnimatedText,20,c.ballpos,getPlayerStorageValue(cid,c.storage) > c.players and "Goal!" or "Own goal!",getPlayerStorageValue(cid,c.storage) > c.players and TEXTCOLOR_LIGHTBLUE or TEXTCOLOR_RED)
				             setGlobalStorageValue( c.RED_SCORE, getGlobalStorageValue(c.RED_SCORE) +1)
                                     if getPlayerStorageValue(cid,c.storage) > c.players then
									              addGoal(cid)
									 end
		                             for _,tid in ipairs(getPlayersOnline()) do
					                      if getPlayerStorageValue(tid,c.storage) > 0 then
		                                       doTeleportThing(tid,c.destination[getPlayerStorageValue(tid,c.storage)])
                                                    for i = 1, #c.destination do
		                                                   doSendMagicEffect(c.destination[i],10)
		                                            end
		                                  end    
		                             end
                      end
	             elseif getGlobalStorageValue(1222) < c.original/2 then -- red goal
	                  if getPlayerStorageValue(cid,c.storage) > 0 then      
	                       doTeleportThing(moveitem.uid,c.ballpos,false)
		                   addEvent(doSendAnimatedText,20,c.ballpos,getPlayerStorageValue(cid,c.storage) <= c.players and "Goal!" or "Own goal!",getPlayerStorageValue(cid,c.storage) <= c.players and TEXTCOLOR_LIGHTBLUE or TEXTCOLOR_RED)
				           setGlobalStorageValue( c.BLUE_SCORE, getGlobalStorageValue(c.BLUE_SCORE) +1)
                                     if getPlayerStorageValue(cid,c.storage) <= c.players then
									              addGoal(cid)
									 end
		                             for _,tid in ipairs(getPlayersOnline()) do
 
					                      if getPlayerStorageValue(tid,c.storage) > 0 then
		                                       doTeleportThing(tid, (getPlayerStorageValue(tid,c.storage) <= c.players and c.destination[getPlayerStorageValue(tid,c.storage)+c.players] or c.destination[getPlayerStorageValue(tid,c.storage)-c.players]))
                                                    for i = 1, #c.destination do
		                                                   doSendMagicEffect(c.destination[i],10)
		                                            end
		                                  end    
		                             end
                     end
	             end
          elseif tileitem.actionid == 7071 then	
                if getGlobalStorageValue(1222) >= c.original/ 2 then --red goal
                    if getPlayerStorageValue(cid,c.storage) > 0 then      
	                      doTeleportThing(moveitem.uid,c.ballpos,false)
		                  addEvent(doSendAnimatedText,20,c.ballpos,getPlayerStorageValue(cid,c.storage) <= c.players and "Goal!" or "Own goal!",getPlayerStorageValue(cid,c.storage) <= c.players and TEXTCOLOR_LIGHTBLUE or TEXTCOLOR_RED)
				          setGlobalStorageValue( c.BLUE_SCORE, getGlobalStorageValue(c.BLUE_SCORE) +1)
                                    if getPlayerStorageValue(cid,c.storage) <= c.players then
									              addGoal(cid)
									end
		                            for _,tid in ipairs(getPlayersOnline()) do
					                     if getPlayerStorageValue(tid,c.storage) > 0 then
		                                      doTeleportThing(tid,c.destination[getPlayerStorageValue(tid,c.storage)])
                                                    for i = 1, #c.destination do
		                                                   doSendMagicEffect(c.destination[i],10)
		                                            end
		                                 end    
		                            end
                    end
	            elseif getGlobalStorageValue(1222) < c.original / 2 then --blue
	                if getPlayerStorageValue(cid,c.storage) > 0 then      
	                      doTeleportThing(moveitem.uid,c.ballpos,false)
		                  addEvent(doSendAnimatedText,20,c.ballpos,getPlayerStorageValue(cid,c.storage) > c.players and "Goal!" or "Own goal!",getPlayerStorageValue(cid,c.storage) > c.players and TEXTCOLOR_LIGHTBLUE or TEXTCOLOR_RED)
				          setGlobalStorageValue( c.RED_SCORE, getGlobalStorageValue(c.RED_SCORE) +1)
						        if getPlayerStorageValue(cid,c.storage) > c.players then
									              addGoal(cid)
							    end
								for _,tid in ipairs(getPlayersOnline()) do
					                   if getPlayerStorageValue(tid,c.storage) > 0 then
		                                      doTeleportThing(tid, (getPlayerStorageValue(tid,c.storage) <= c.players and c.destination[getPlayerStorageValue(tid,c.storage)+c.players] or c.destination[getPlayerStorageValue(tid,c.storage)-c.players]))
                                                    for i = 1, #c.destination do
		                                                   doSendMagicEffect(c.destination[i],10)
		                                            end
		                               end    
		                        end
                    end
	            end	
          end
     end		  
 
end
 
return true
end
 
]]> </movevent>
 
<movevent type="StepIn" actionid="7072" event="script">
<![CDATA[
		domodlib('tutorial_m')
		domodlib('football-lib')
		function onStepIn(cid, item, position, fromPosition)
   if(getCreatureSpeed(cid) ~= speed) then 
            doRemoveCondition(cid, CONDITION_HASTE) 
            doChangeSpeed(cid, c.speed - getCreatureSpeed(cid)) 
    end 
return true
end
 
 
]]> </movevent>
<globalevent name="timer" interval="1000" event="script"><![CDATA[
		domodlib('tutorial_m')
		domodlib('football-lib')
function onThink(cid,interval)
	local half = c.original/2
	local random_item = c.rewards_id[math.random(1, #c.rewards_id)]
	if getGlobalStorageValue(1222) >= 0 then
		setGlobalStorageValue(1222,getGlobalStorageValue(1222) - 1)
	else
		setGlobalStorageValue(c.BLUE_SCORE,0)
		setGlobalStorageValue(c.RED_SCORE,0)
	end
	for _,cid in ipairs(getPlayersOnline()) do
		if getGlobalStorageValue(1222) >= 0 and getGlobalStorageValue(1222) < half then
			if getPlayerStorageValue(cid,c.storage) > 0 then
				doPlayerSendCancel(cid, "Time per half : "..( os.date("%M : %S",half)).."   |   Second half : "..( os.date("%M : %S",getGlobalStorageValue(1222))).."   |    Red : "..getGlobalStorageValue(c.RED_SCORE).." goals  *  Blue : "..getGlobalStorageValue(c.BLUE_SCORE).." goals")
			end           
		elseif getGlobalStorageValue(1222) >= half and getGlobalStorageValue(1222) <= c.original then
			if getPlayerStorageValue(cid,c.storage) > 0 then
				doPlayerSendCancel(cid, "Time per half : "..( os.date("%M : %S", half )).."   |   First half : "..( os.date("%M : %S",getGlobalStorageValue(1222))).."   |    Red : "..getGlobalStorageValue(c.RED_SCORE).." goals  *  Blue : "..getGlobalStorageValue(c.BLUE_SCORE).." goals")
			end
		end
		if getPlayerStorageValue(cid,c.storage) > 0 then
			if getGlobalStorageValue(1222) < 0 then
				doChangeSpeed(cid, getSpeed(cid, getPlayerLevel(cid)) - getCreatureSpeed(cid))
					if c.rewards == true then
						if getGlobalStorageValue(c.RED_SCORE) > getGlobalStorageValue(c.BLUE_SCORE) then
							if getPlayerStorageValue(cid,c.storage) > c.players then
								doPlayerSendTextMessage(cid,25, "Your teams won the match. And recieved a ["..getItemNameById(random_item).."].")
								doPlayerAddItem(cid,random_item,1)
								addWin(cid)
							elseif getPlayerStorageValue(cid,c.storage) <= c.players then
								doPlayerSendTextMessage(cid,22,"You team have lost. No reward for you!")
							end
						elseif getGlobalStorageValue(c.BLUE_SCORE) > getGlobalStorageValue(c.RED_SCORE) then
							if getPlayerStorageValue(cid,c.storage) <= c.players then
								doPlayerAddItem(cid,random_item,1)
								doPlayerSendTextMessage(cid,25, "Your teams won the match. And recieved a ["..getItemNameById(random_item).."].")
								addWin(cid)
							elseif getPlayerStorageValue(cid,c.storage) > c.players then
									doPlayerSendTextMessage(cid,22,"You team have lost. No reward for you!")
							end
						else
							doPlayerSendTextMessage(cid,22,"Neither of teams won. No rewards!")
						end
					end
					doRemoveConditions(cid, FALSE)
					doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))
					doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
					setPlayerStorageValue(cid,c.storage,-1)
						for i = c.pitchpos.fromy, c.pitchpos.toy do
							for j = c.pitchpos.fromx, c.pitchpos.tox do
								local pos = {x = j, y = i, z = c.pitchpos.z}
								local ball = getTileItemById(pos,2109).uid
								if ball > 0 then
									doRemoveItem(ball)
								end
							end
						end
						if getTileItemById(c.ballpos,2109).uid < 1 then
							doCreateItem(2109,1,c.ballpos)
						end
 
			elseif getGlobalStorageValue(1222) == half then
				doTeleportThing(cid, (getPlayerStorageValue(cid,c.storage) <= c.players and c.destination[getPlayerStorageValue(cid,c.storage)+c.players] or c.destination[getPlayerStorageValue(cid,c.storage)-c.players]))
				doPlayerSendTextMessage(cid,22,"Refree : Second half begins.")
					for i = 1, #c.destination do
						doSendMagicEffect(c.destination[i],10)
					end
					for i = c.pitchpos.fromy, c.pitchpos.toy do
						for j = c.pitchpos.fromx, c.pitchpos.tox do
							local pos = {x = j, y = i, z = c.pitchpos.z}
							local ball = getTileItemById(pos,2109).uid
								if ball > 0 then
									doRemoveItem(ball)
								end
						end
					end
					if getTileItemById(c.ballpos,2109).uid < 1 then
						doCreateItem(2109,1,c.ballpos)
					end
			end
		end
    end
return true
end
]]></globalevent>
<globalevent name="tim" type="start" event="script"><![CDATA[
		domodlib('tutorial_m')
		domodlib('football-lib')
		function onStartup()
			setGlobalStorageValue(c.BLUE_SCORE,0)
			setGlobalStorageValue(c.RED_SCORE,0)
				for i = c.pitchpos.fromy, c.pitchpos.toy do
					for j = c.pitchpos.fromx, c.pitchpos.tox do
						local pos = {x = j, y = i, z = c.pitchpos.z}
						local ball = getTileItemById(pos,2109).uid
						if ball > 0 then
							doRemoveItem(ball)
						end
					end
				end
				if getTileItemById(c.ballpos,2109).uid < 1 then
					doCreateItem(2109,1,c.ballpos)
				end
			return true
		end
]]></globalevent>
</mod>

but is not working, i'm getting this 2 erros, i cant solve it :S i tried everything i know (a little)
Lua:
[16/08/2013 17:33:19] [Error - GlobalEvent Interface] 
[16/08/2013 17:33:19] buffer:onStartup
[16/08/2013 17:33:19] Description: 
[16/08/2013 17:33:19] [string "loadBuffer"]:4: attempt to index global 'c' (a nil value)
[16/08/2013 17:33:19] stack traceback:
[16/08/2013 17:33:19] 	[string "loadBuffer"]:4: in function <[string "loadBuffer"]:3>

Lua:
[16/08/2013 17:32:34] > Loading football.xml...
[16/08/2013 17:32:34] [Error - Action Interface] 
[16/08/2013 17:32:34] buffer
[16/08/2013 17:32:34] Description: 
[16/08/2013 17:32:34] [string "c = {..."]:15: '}' expected (to close '{' at line 10) near '{'

[16/08/2013 17:32:34] [Error - MoveEvents Interface] 
[16/08/2013 17:32:34] buffer
[16/08/2013 17:32:34] Description: 
[16/08/2013 17:32:34] [string "c = {..."]:15: '}' expected (to close '{' at line 10) near '{'

[16/08/2013 17:32:34] [Error - MoveEvents Interface] 
[16/08/2013 17:32:34] buffer
[16/08/2013 17:32:34] Description: 
[16/08/2013 17:32:34] [string "c = {..."]:15: '}' expected (to close '{' at line 10) near '{'

[16/08/2013 17:32:34] [Error - GlobalEvent Interface] 
[16/08/2013 17:32:34] buffer
[16/08/2013 17:32:34] Description: 
[16/08/2013 17:32:34] [string "c = {..."]:15: '}' expected (to close '{' at line 10) near '{'

[16/08/2013 17:32:34] [Error - GlobalEvent Interface] 
[16/08/2013 17:32:34] buffer
[16/08/2013 17:32:34] Description: 
[16/08/2013 17:32:34] [string "c = {..."]:15: '}' expected (to close '{' at line 10) near '{'
[16/08/2013 17:32:34]  done.

plzzz someone help with this :S
 
The script works fine but when i tested it with my partner we saw that when red team did goal the count of goals increases to other team (blue) and at half time the scores goes to red team.
 
I need the map with all its Action ID and UniqueID !! :/
or someone explain to me where they are placed, please.
 
Back
Top