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

[MOD] Rush Event / Team Battle with scores

With some fix.

Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<mod name="Rush Event" version="1.0" author="ChaitoSoft.com" contact="[email protected]" enabled="yes">
   <description>
        TUTORIAL DE COMO CONFIGURAR O EVENTO ACOMPANHE POR AQUI:
		q - mensagem que vai ser exibida quando o evento começar
		d_1 - posição do tempo vermelho ao começar evento
		d_2 - posição do tempo azul ao começar evento
		x - mensagem que vai ser exibida quando o evento não começar
		w - posição da sala de espera, onde os players vão ficar antes de começar
		lvl - level minimo para participar do evento
		v - a quantidade de frags que será necessária para o time ganhar
		mn - quantidade minima de players para começar o evento
		m - maximo de players dentro do evento
		o - mensagem exibida quando o time vermelho ganhar
		y - mensagem exibida quando o time azul ganhar
		i_1 - id do premio (agora é crystal coin = 2160)
		i_2 - quantidade do premio (agora esta 10 crystal coins)
		t - tempo para começar o evento (agora esta is 5 minutos)
		r - tempo em que os resultados da batalha serão mostrados aos players (agora esta 3 minutos)
 
	Adicione isto em 050-function.lua:
	-------------------------------------------------------------------------------------------------
	function doPlayerRemoveLethalConditions(cid)
		local tmp = {1, 2, 4, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 32768, 65536}
		for i = 1, #tmp do
			if(hasCondition(cid, tmp[i])) then doRemoveCondition(cid, tmp[i]) end
		end
		return true
	end
	-------------------------------------------------------------------------------------------------
	Adicione isto em login.lua:
	-------------------------------------------------------------------------------------------------
	registerCreatureEvent(cid, "RushCombat")
	registerCreatureEvent(cid, "RushAttack")
	registerCreatureEvent(cid, "RushDead")
	registerCreatureEvent(cid, "RushOutfit")
	-------------------------------------------------------------------------------------------------
	Agora daqui pra baixo você vai configurar de acordo com o tutorial acima, o resto se não tiver
	conhecimento não mecha em nada pois poderá bugar o evento e não daremos suporte:
   </description>
	<config name="re"><![CDATA[
		 t = {
			a = 32145,
			g = 32146,
			l = 32147,
			u = 32148,
			h = 32149,
			wv = 32150,
			c = 0,
			q = "Rush Event has been started! Enjoy and have fun!",
			f = 5447,
			f_1 = 5448,
			f_2 = 5449,
			d_1 = {x = 570, y = 316, z = 10}, -- red temple
			d_2 = {x = 627, y = 284, z = 10}, -- blue temple
			x = "Event won't start bacause too few people were willing to participate",
			w = {x = 600, y = 362, z = 10},
			lvl = 50,
			v = 4,
			mn = 2,
			m = 40,
			o = "Event was completed, RED TEAM has won Rush Event!",
			y = "Event was completed, BLUE TEAM has won Rush Event!",
			i_1 = 2160,
			i_2 = 10,
			t = 1,
			r = 3
		}
	]]></config>
<globalevent name="Recognition" interval="150000" event="script"><![CDATA[
	domodlib('re')
	function onThink(interval, lastExecution, thinkInterval)
		if(getGlobalStorageValue(t.a) == 1) then
			for _, pid in ipairs(getPlayersOnline()) do
				if getPlayerStorageValue(pid, t.f) == 1 then
					if(getPlayerStorageValue(pid, t.f_1) == 0) then
						doSendAnimatedText(getCreaturePosition(pid), "RED TEAM", TEXTCOLOR_RED)
					elseif(getPlayerStorageValue(pid, t.f_1) == 1) then
						doSendAnimatedText(getCreaturePosition(pid), "BLUE TEAM", TEXTCOLOR_LIGHTBLUE)
					end
				end
			end
			return true
		end
		return true
	end
]]></globalevent>
<talkaction words="!start" event="script"><![CDATA[
	domodlib('re')
	function onSay(cid, words, param, channel)
		if getPlayerGroupId(cid) > 3 then
			setGlobalStorageValue(t.g, 1)
			setGlobalStorageValue(t.u, 0)
			setGlobalStorageValue(t.l, 0)
			setGlobalStorageValue(t.a, 1)
			setGlobalStorageValue(t.c, 0)
			setGlobalStorageValue(t.wv, 0)
			doBroadcastMessage("Attention! Immediately register to Rush Event, event will start for ".. t.t .." minutes. All players can join to event typing this command: !rush", MESSAGE_STATUS_WARNING)
			addEvent(function()
			doBroadcastMessage("Rush event, started in 2 minutes. If you want to join, type this command: !rush", MESSAGE_STATUS_WARNING)
			end, (t.t - 2) * 1000 * 60)
			addEvent(function()
			doBroadcastMessage("Rush event, started in a minute. If you want to join, type this command: !rush", MESSAGE_STATUS_WARNING)
			end, (t.t - 1) * 1000 * 60)
			addEvent(start, t.t * 1000 * 60)
			return true
		end
		return true
	end
	function results()
		if(getGlobalStorageValue(t.a) == 1) then
			local red = getGlobalStorageValue(t.l)
			local blue = getGlobalStorageValue(t.u)			
			doBroadcastMessage("Rush Events, results:\nRed Team scored: ".. red .." frags.\nBlue Team scored: ".. blue .." frags.\nMatch is under way to ".. t.v .." frags.", MESSAGE_STATUS_WARNING)
			addEvent(results, t.r * 1000 * 60)
		end
	end
	function start()
		if(getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.c) >= t.mn) then
			doBroadcastMessage(t.q, MESSAGE_STATUS_WARNING)
			setGlobalStorageValue(t.wv, 1)
			addEvent(results, t.r * 1000 * 60)
			for _, pid in ipairs(getPlayersOnline()) do	
				local myOutfit = getCreatureOutfit(pid)
				local red = {lookType = myOutfit.lookType, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}
				local blue = {lookType = myOutfit.lookType, lookHead = 86, lookBody = 86, lookLegs = 86, lookFeet = 86, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}	
				if getPlayerStorageValue(pid, t.f) == 1 then
					doCreatureAddHealth(pid, getCreatureMaxHealth(pid))
					doCreatureAddMana(pid, getCreatureMaxMana(pid))	
					if((getPlayerStorageValue(pid, t.g) % 2) == 1) then
						doCreatureChangeOutfit(pid, red)
						setPlayerStorageValue(pid, t.h, 0)
						doTeleportThing(pid, t.d_1)
						setPlayerStorageValue(pid, t.f, 1)
						setPlayerStorageValue(pid, t.f_1, 0)
						setPlayerStorageValue(pid, t.f_2, 1)
						doSendMagicEffect(getCreaturePosition(pid), 10)
						doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "You are in RED TEAM!\nThis battle will continue up to ".. t.v .." frags!")
					else
						doCreatureChangeOutfit(pid, blue)
						doTeleportThing(pid, t.d_2)
						setPlayerStorageValue(pid, t.h, 0)
						setPlayerStorageValue(pid, t.f, 1)
						setPlayerStorageValue(pid, t.f_1, 1)
						setPlayerStorageValue(pid, t.f_2, 0)
						doSendMagicEffect(getCreaturePosition(pid), 10)
						doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "You are in BLUE TEAM!\nThis battle will continue up to ".. t.v .." frags!")
					end
				end
			end
		elseif(getGlobalStorageValue(t.c) < t.mn) then
			doBroadcastMessage(t.x, MESSAGE_STATUS_WARNING)
			setGlobalStorageValue(t.a, 0)
			for _, pid in ipairs(getPlayersOnline()) do
				if getPlayerStorageValue(pid, t.f) == 1 then
					setPlayerStorageValue(pid, t.f, -1)
					doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
					doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT)
				end
			end
		end
	end
]]></talkaction>
	<globalevent name="RushStart" time="17:34" event="script"><![CDATA[
		domodlib('re')
		function onTime(interval, lastExecution)
			setGlobalStorageValue(t.g, 1)
			setGlobalStorageValue(t.u, 0)
			setGlobalStorageValue(t.l, 0)
			setGlobalStorageValue(t.a, 1)
			setGlobalStorageValue(t.c, 0)
			setGlobalStorageValue(t.wv, 0)
			doBroadcastMessage("Attention! Immediately register to Rush Event, event will start for ".. t.t .." minutes. All players can join to event typing this command: !rush", MESSAGE_STATUS_WARNING)
			addEvent(start, t.t * 1000 * 60)
		end
		function results()
			if(getGlobalStorageValue(t.a) == 1) then
				local red = getGlobalStorageValue(t.l)
				local blue = getGlobalStorageValue(t.u)			
				doBroadcastMessage("Rush Events, results:\nRed Team scored: ".. red .." frags.\nBlue Team scored: ".. blue .." frags.\nMatch is under way to ".. t.v .." frags.", MESSAGE_STATUS_WARNING)
				addEvent(results, t.r * 1000 * 60)
			end
		end
		function start()
			if(getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.c) >= t.mn) then
				doBroadcastMessage(t.q, MESSAGE_STATUS_WARNING)
				setGlobalStorageValue(t.wv, 1)
				addEvent(results, t.r * 1000 * 60)
				for _, pid in ipairs(getPlayersOnline()) do	
					local myOutfit = getCreatureOutfit(pid)
					local red = {lookType = myOutfit.lookType, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}
					local blue = {lookType = myOutfit.lookType, lookHead = 86, lookBody = 86, lookLegs = 86, lookFeet = 86, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}	
					if getPlayerStorageValue(pid, t.f) == 1 then
						doCreatureAddHealth(pid, getCreatureMaxHealth(pid))
						doCreatureAddMana(pid, getCreatureMaxMana(pid))	
						if((getPlayerStorageValue(pid, t.g) % 2) == 1) then
							doCreatureChangeOutfit(pid, red)
							setPlayerStorageValue(pid, t.h, 0)
							doTeleportThing(pid, t.d_1)
							setPlayerStorageValue(pid, t.f, 1)
							setPlayerStorageValue(pid, t.f_1, 0)
							setPlayerStorageValue(pid, t.f_2, 1)
							doSendMagicEffect(getCreaturePosition(pid), 10)
							doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "You are in RED TEAM!\nThis battle will continue up to ".. t.v .." frags!")
						else
							doCreatureChangeOutfit(pid, blue)
							setPlayerStorageValue(pid, t.h, 0)
							doTeleportThing(pid, t.d_2)
							setPlayerStorageValue(pid, t.f, 1)
							setPlayerStorageValue(pid, t.f_1, 1)
							setPlayerStorageValue(pid, t.f_2, 0)
							doSendMagicEffect(getCreaturePosition(pid), 10)
							doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "You are in BLUE TEAM!\nThis battle will continue up to ".. t.v .." frags!")
						end
					end
				end
			elseif(getGlobalStorageValue(t.c) < t.mn) then
				doBroadcastMessage(t.x, MESSAGE_STATUS_WARNING)
				setGlobalStorageValue(t.a, 0)
				for _, pid in ipairs(getPlayersOnline()) do
					if getPlayerStorageValue(pid, t.f) == 1 then
						setPlayerStorageValue(pid, t.f, -1)
						doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
						doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT)
					end
				end
			end
		end
	]]></globalevent>
<talkaction words="!rush" event="script"><![CDATA[
	domodlib('re')
	function onSay(cid, words, param, channel)
		if getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.wv) ~= 1 then
			if getPlayerLevel(cid) >= t.lvl then
				if getPlayerStorageValue(cid, t.f) == -1 then
					if getTilePzInfo(getPlayerPosition(cid)) == true then
						if getGlobalStorageValue(t.c) < t.m then
							setGlobalStorageValue(t.c, getGlobalStorageValue(t.c)+1)
							if getGlobalStorageValue(t.c) == t.m then
								doPlayerSendCancel(cid, "Event is full [" .. getGlobalStorageValue(t.c) .. " players]!")
							else    
								doBroadcastMessage("" .. getPlayerName(cid) .. " has joined to Rush Event! Actually we have: " .. getGlobalStorageValue(t.c) .. " players!", 19)
							end
							setPlayerStorageValue(cid, t.f, 1)
							setPlayerStorageValue(cid, t.h, -1)
							doTeleportThing(cid, t.w)
							doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
							setPlayerStorageValue(cid, t.g, getGlobalStorageValue(t.g))
							setGlobalStorageValue(t.g, tonumber(getGlobalStorageValue(t.g))+1)
						else
							doPlayerSendCancel(cid, "Event is full [" .. getGlobalStorageValue(t.c) .. " players]!")
							return true
						end
					else
						doPlayerSendCancel(cid, "You must be in protection zone.")
						return true
					end
				else
					doPlayerSendCancel(cid, "You are already registered in this event.")
					return true
				end
			else
				doPlayerSendCancel(cid, "Your level is too low to participate in this event.")
				return true
			end  			
		else
			doPlayerSendCancel(cid, "At the moment there are no records for this event.")
			return true
		end
		return true
	end
]]></talkaction>
<event type="combat" name="RushCombat" event="script"><![CDATA[
	domodlib('re')
	function onCombat(cid, target)
		if(getGlobalStorageValue(t.a) == 1) then
			if isPlayer(cid) and isPlayer(target) then
				if getPlayerStorageValue(cid, t.f) == 1 and getPlayerStorageValue(target, t.f) == 1 then
					if getPlayerStorageValue(cid, t.f_1) == getPlayerStorageValue(target, t.f_1) then
						return doPlayerSendCancel(cid, "Sorry, you cannot attack your own team.") and false
					end
				end
			end
		end
		return true
	end
]]></event>
<event type="attack" name="RushAttack" event="script"><![CDATA[
	domodlib('re')
	function onAttack(cid, target)
		if(getGlobalStorageValue(t.a) == 1) then
			if isPlayer(cid) and isPlayer(target) then
				if getPlayerStorageValue(cid, t.f) == 1 and getPlayerStorageValue(target, t.f) == 1 then
					if getPlayerStorageValue(cid, t.f_1) == getPlayerStorageValue(target, t.f_1) then
						return doPlayerSendCancel(cid, "Sorry, you cannot attack your own team.") and false
					end
				end
			end
		end
		return true
	end
]]></event>
<event type="preparedeath" name="RushDead" event="script"><![CDATA[
	domodlib('re')
	function onPrepareDeath(cid, deathList)
		if(not isPlayer(cid)) then
			return true
		end
		if getGlobalStorageValue(t.a) == 1 then
			local strings = {""}
			local j, position, corpse = 1, 1, 0
			for _, pid in ipairs(deathList) do
				if isCreature(pid) == true then
					strings[position] = j == 1 and "" or strings[position] .. ", "
					strings[position] = strings[position] .. getCreatureName(pid) .. ""
					j = j + 1
				else
					strings[position] = j == 1 and "" or strings[position] .. ", "
					strings[position] = strings[position] .."a field item"
					j = j + 1
				end
			end
			for i, str in ipairs(strings) do
				if(str:sub(str:len()) ~= ",") then
					str = str .. "."
				end
				desc = "You recognize "
				desc = desc .. "" .. getCreatureName(cid) .. ". He was killed by " .. str
			end
			if(getPlayerSex(cid) == 1) then
				corpse = doCreateItem(3058, getCreaturePosition(cid))
			else
				corpse = doCreateItem(3065, getCreaturePosition(cid))
			end
			doItemSetAttribute(corpse, "description", desc)
			if((getPlayerStorageValue(cid, t.g) % 2) == 1) then
				setGlobalStorageValue(t.u, getGlobalStorageValue(t.u)+1)
			else
				setGlobalStorageValue(t.l, getGlobalStorageValue(t.l)+1)
			end
			local red = getGlobalStorageValue(t.l)
			local blue = getGlobalStorageValue(t.u)
			if blue < t.v or red < t.v then	
				if(isPlayer(cid) == false) then
					return true
				end		
				if((getPlayerStorageValue(cid, t.g) % 2) == 1) then
					doTeleportThing(cid, t.d_1)
					doSendMagicEffect(getCreaturePosition(cid), 10)
					doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
					doCreatureAddMana(cid, getCreatureMaxMana(cid))
					doPlayerRemoveLethalConditions(cid)
					if getCreatureSkullType(cid) == SKULL_WHITE then
						doCreatureSetSkullType(cid, 0)
					end
				else
					doTeleportThing(cid, t.d_2)
					doSendMagicEffect(getCreaturePosition(cid), 10)
					doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
					doCreatureAddMana(cid, getCreatureMaxMana(cid))
					doPlayerRemoveLethalConditions(cid)
					if getCreatureSkullType(cid) == SKULL_WHITE then
						doCreatureSetSkullType(cid, 0)
					end
				end	
			end
			if blue >= t.v then
				doBroadcastMessage(t.y, MESSAGE_STATUS_WARNING)
				setGlobalStorageValue(t.h, 1)
				for _, pid in ipairs(getPlayersOnline()) do
					if(getPlayerStorageValue(pid, t.f_1) == 1) then
						doPlayerAddItem(pid, t.i_1, t.i_2)
					end
				end
			elseif red >= t.v then
				doBroadcastMessage(t.o, MESSAGE_STATUS_WARNING)
				setGlobalStorageValue(t.h, 1)
				for _, pid in ipairs(getPlayersOnline()) do
					if(getPlayerStorageValue(pid, t.f_2) == 1) then
						doPlayerAddItem(pid, t.i_1, t.i_2)
					end
				end
			end
			if getGlobalStorageValue(t.h) == 1 then
				setGlobalStorageValue(t.a, 0)
				setGlobalStorageValue(t.h, 0)
				setGlobalStorageValue(t.wv, -1)
				setPlayerStorageValue(cid, t.f, -1)
				setPlayerStorageValue(cid, t.g, 0)
				setPlayerStorageValue(cid, t.l, 0)
				setPlayerStorageValue(cid, t.u, 0)
				setPlayerStorageValue(cid, t.f_1, -1)
				setPlayerStorageValue(cid, t.f_2, -1)
				setPlayerStorageValue(cid, t.h, -1)
				doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), true)
				doSendMagicEffect(getCreaturePosition(cid), 10)
				doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
				doCreatureAddMana(cid, getCreatureMaxMana(cid))
				doPlayerRemoveLethalConditions(cid)
				for _, pid in ipairs(getPlayersOnline()) do
					if(getPlayerStorageValue(pid, t.f_1) == 1 or getPlayerStorageValue(pid, t.f_2) == 1) then
						setPlayerStorageValue(pid, t.f, -1)
						doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
						doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT)
						setPlayerStorageValue(pid, t.g, 0)
						setPlayerStorageValue(pid, t.l, 0)
						setPlayerStorageValue(pid, t.u, 0)
						setPlayerStorageValue(pid, t.f_1, -1)
						setPlayerStorageValue(pid, t.f_2, -1)
						setPlayerStorageValue(pid, t.h, -1)
						doCreatureAddHealth(pid, getCreatureMaxHealth(pid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
						doCreatureAddMana(pid, getCreatureMaxMana(pid))
						doPlayerRemoveLethalConditions(pid)
					end
				end
				return false
			end
			return false
		end
		return true
	end
]]></event>
<event type="outfit" name="RushOutfit" event="script"><![CDATA[ 
	domodlib('re')
	function onOutfit(cid, old, current)
		if(getGlobalStorageValue(t.a) == 1) then
			if getPlayerGroupId(cid) > 3 then
				return true
			end
			if getPlayerStorageValue(cid, t.h) == 0 then
				if getPlayerStorageValue(cid, t.f) > -1 then
					doPlayerSendCancel(cid, "You cannot change your outfit during the event.")
					return false
				end
			end
		end
		return true
	end
]]></event>
</mod>
 
With some fix.

Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<mod name="Rush Event" version="1.0" author="ChaitoSoft.com" contact="[email protected]" enabled="yes">
   <description>
        TUTORIAL DE COMO CONFIGURAR O EVENTO ACOMPANHE POR AQUI:
		q - mensagem que vai ser exibida quando o evento começar
		d_1 - posição do tempo vermelho ao começar evento
		d_2 - posição do tempo azul ao começar evento
		x - mensagem que vai ser exibida quando o evento não começar
		w - posição da sala de espera, onde os players vão ficar antes de começar
		lvl - level minimo para participar do evento
		v - a quantidade de frags que será necessária para o time ganhar
		mn - quantidade minima de players para começar o evento
		m - maximo de players dentro do evento
		o - mensagem exibida quando o time vermelho ganhar
		y - mensagem exibida quando o time azul ganhar
		i_1 - id do premio (agora é crystal coin = 2160)
		i_2 - quantidade do premio (agora esta 10 crystal coins)
		t - tempo para começar o evento (agora esta is 5 minutos)
		r - tempo em que os resultados da batalha serão mostrados aos players (agora esta 3 minutos)
 
	Adicione isto em 050-function.lua:
	-------------------------------------------------------------------------------------------------
	function doPlayerRemoveLethalConditions(cid)
		local tmp = {1, 2, 4, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 32768, 65536}
		for i = 1, #tmp do
			if(hasCondition(cid, tmp[i])) then doRemoveCondition(cid, tmp[i]) end
		end
		return true
	end
	-------------------------------------------------------------------------------------------------
	Adicione isto em login.lua:
	-------------------------------------------------------------------------------------------------
	registerCreatureEvent(cid, "RushCombat")
	registerCreatureEvent(cid, "RushAttack")
	registerCreatureEvent(cid, "RushDead")
	registerCreatureEvent(cid, "RushOutfit")
	-------------------------------------------------------------------------------------------------
	Agora daqui pra baixo você vai configurar de acordo com o tutorial acima, o resto se não tiver
	conhecimento não mecha em nada pois poderá bugar o evento e não daremos suporte:
   </description>
	<config name="re"><=!=[=C=D=A=T=A=[
		 t = {
			a = 32145,
			g = 32146,
			l = 32147,
			u = 32148,
			h = 32149,
			wv = 32150,
			c = 0,
			q = "Rush Event has been started! Enjoy and have fun!",
			f = 5447,
			f_1 = 5448,
			f_2 = 5449,
			d_1 = {x = 570, y = 316, z = 10}, -- red temple
			d_2 = {x = 627, y = 284, z = 10}, -- blue temple
			x = "Event won't start bacause too few people were willing to participate",
			w = {x = 600, y = 362, z = 10},
			lvl = 50,
			v = 4,
			mn = 2,
			m = 40,
			o = "Event was completed, RED TEAM has won Rush Event!",
			y = "Event was completed, BLUE TEAM has won Rush Event!",
			i_1 = 2160,
			i_2 = 10,
			t = 1,
			r = 3
		}
	]=]=></config>
<globalevent name="Recognition" interval="150000" event="script"><=!=[=C=D=A=T=A=[
	domodlib('re')
	function onThink(interval, lastExecution, thinkInterval)
		if(getGlobalStorageValue(t.a) == 1) then
			for _, pid in ipairs(getPlayersOnline()) do
				if getPlayerStorageValue(pid, t.f) == 1 then
					if(getPlayerStorageValue(pid, t.f_1) == 0) then
						doSendAnimatedText(getCreaturePosition(pid), "RED TEAM", TEXTCOLOR_RED)
					elseif(getPlayerStorageValue(pid, t.f_1) == 1) then
						doSendAnimatedText(getCreaturePosition(pid), "BLUE TEAM", TEXTCOLOR_LIGHTBLUE)
					end
				end
			end
			return true
		end
		return true
	end
]=]=></globalevent>
<talkaction words="!start" event="script"><=!=[=C=D=A=T=A=[
	domodlib('re')
	function onSay(cid, words, param, channel)
		if getPlayerGroupId(cid) > 3 then
			setGlobalStorageValue(t.g, 1)
			setGlobalStorageValue(t.u, 0)
			setGlobalStorageValue(t.l, 0)
			setGlobalStorageValue(t.a, 1)
			setGlobalStorageValue(t.c, 0)
			setGlobalStorageValue(t.wv, 0)
			doBroadcastMessage("Attention! Immediately register to Rush Event, event will start for ".. t.t .." minutes. All players can join to event typing this command: !rush", MESSAGE_STATUS_WARNING)
			addEvent(function()
			doBroadcastMessage("Rush event, started in 2 minutes. If you want to join, type this command: !rush", MESSAGE_STATUS_WARNING)
			end, (t.t - 2) * 1000 * 60)
			addEvent(function()
			doBroadcastMessage("Rush event, started in a minute. If you want to join, type this command: !rush", MESSAGE_STATUS_WARNING)
			end, (t.t - 1) * 1000 * 60)
			addEvent(start, t.t * 1000 * 60)
			return true
		end
		return true
	end
	function results()
		if(getGlobalStorageValue(t.a) == 1) then
			local red = getGlobalStorageValue(t.l)
			local blue = getGlobalStorageValue(t.u)			
			doBroadcastMessage("Rush Events, results:\nRed Team scored: ".. red .." frags.\nBlue Team scored: ".. blue .." frags.\nMatch is under way to ".. t.v .." frags.", MESSAGE_STATUS_WARNING)
			addEvent(results, t.r * 1000 * 60)
		end
	end
	function start()
		if(getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.c) >= t.mn) then
			doBroadcastMessage(t.q, MESSAGE_STATUS_WARNING)
			setGlobalStorageValue(t.wv, 1)
			addEvent(results, t.r * 1000 * 60)
			for _, pid in ipairs(getPlayersOnline()) do	
				local myOutfit = getCreatureOutfit(pid)
				local red = {lookType = myOutfit.lookType, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}
				local blue = {lookType = myOutfit.lookType, lookHead = 86, lookBody = 86, lookLegs = 86, lookFeet = 86, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}	
				if getPlayerStorageValue(pid, t.f) == 1 then
					doCreatureAddHealth(pid, getCreatureMaxHealth(pid))
					doCreatureAddMana(pid, getCreatureMaxMana(pid))	
					if((getPlayerStorageValue(pid, t.g) % 2) == 1) then
						doCreatureChangeOutfit(pid, red)
						setPlayerStorageValue(pid, t.h, 0)
						doTeleportThing(pid, t.d_1)
						setPlayerStorageValue(pid, t.f, 1)
						setPlayerStorageValue(pid, t.f_1, 0)
						setPlayerStorageValue(pid, t.f_2, 1)
						doSendMagicEffect(getCreaturePosition(pid), 10)
						doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "You are in RED TEAM!\nThis battle will continue up to ".. t.v .." frags!")
					else
						doCreatureChangeOutfit(pid, blue)
						doTeleportThing(pid, t.d_2)
						setPlayerStorageValue(pid, t.h, 0)
						setPlayerStorageValue(pid, t.f, 1)
						setPlayerStorageValue(pid, t.f_1, 1)
						setPlayerStorageValue(pid, t.f_2, 0)
						doSendMagicEffect(getCreaturePosition(pid), 10)
						doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "You are in BLUE TEAM!\nThis battle will continue up to ".. t.v .." frags!")
					end
				end
			end
		elseif(getGlobalStorageValue(t.c) < t.mn) then
			doBroadcastMessage(t.x, MESSAGE_STATUS_WARNING)
			setGlobalStorageValue(t.a, 0)
			for _, pid in ipairs(getPlayersOnline()) do
				if getPlayerStorageValue(pid, t.f) == 1 then
					setPlayerStorageValue(pid, t.f, -1)
					doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
					doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT)
				end
			end
		end
	end
]=]=></talkaction>
	<globalevent name="RushStart" time="17:34" event="script"><=!=[=C=D=A=T=A=[
		domodlib('re')
		function onTime(interval, lastExecution)
			setGlobalStorageValue(t.g, 1)
			setGlobalStorageValue(t.u, 0)
			setGlobalStorageValue(t.l, 0)
			setGlobalStorageValue(t.a, 1)
			setGlobalStorageValue(t.c, 0)
			setGlobalStorageValue(t.wv, 0)
			doBroadcastMessage("Attention! Immediately register to Rush Event, event will start for ".. t.t .." minutes. All players can join to event typing this command: !rush", MESSAGE_STATUS_WARNING)
			addEvent(start, t.t * 1000 * 60)
		end
		function results()
			if(getGlobalStorageValue(t.a) == 1) then
				local red = getGlobalStorageValue(t.l)
				local blue = getGlobalStorageValue(t.u)			
				doBroadcastMessage("Rush Events, results:\nRed Team scored: ".. red .." frags.\nBlue Team scored: ".. blue .." frags.\nMatch is under way to ".. t.v .." frags.", MESSAGE_STATUS_WARNING)
				addEvent(results, t.r * 1000 * 60)
			end
		end
		function start()
			if(getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.c) >= t.mn) then
				doBroadcastMessage(t.q, MESSAGE_STATUS_WARNING)
				setGlobalStorageValue(t.wv, 1)
				addEvent(results, t.r * 1000 * 60)
				for _, pid in ipairs(getPlayersOnline()) do	
					local myOutfit = getCreatureOutfit(pid)
					local red = {lookType = myOutfit.lookType, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}
					local blue = {lookType = myOutfit.lookType, lookHead = 86, lookBody = 86, lookLegs = 86, lookFeet = 86, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}	
					if getPlayerStorageValue(pid, t.f) == 1 then
						doCreatureAddHealth(pid, getCreatureMaxHealth(pid))
						doCreatureAddMana(pid, getCreatureMaxMana(pid))	
						if((getPlayerStorageValue(pid, t.g) % 2) == 1) then
							doCreatureChangeOutfit(pid, red)
							setPlayerStorageValue(pid, t.h, 0)
							doTeleportThing(pid, t.d_1)
							setPlayerStorageValue(pid, t.f, 1)
							setPlayerStorageValue(pid, t.f_1, 0)
							setPlayerStorageValue(pid, t.f_2, 1)
							doSendMagicEffect(getCreaturePosition(pid), 10)
							doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "You are in RED TEAM!\nThis battle will continue up to ".. t.v .." frags!")
						else
							doCreatureChangeOutfit(pid, blue)
							setPlayerStorageValue(pid, t.h, 0)
							doTeleportThing(pid, t.d_2)
							setPlayerStorageValue(pid, t.f, 1)
							setPlayerStorageValue(pid, t.f_1, 1)
							setPlayerStorageValue(pid, t.f_2, 0)
							doSendMagicEffect(getCreaturePosition(pid), 10)
							doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "You are in BLUE TEAM!\nThis battle will continue up to ".. t.v .." frags!")
						end
					end
				end
			elseif(getGlobalStorageValue(t.c) < t.mn) then
				doBroadcastMessage(t.x, MESSAGE_STATUS_WARNING)
				setGlobalStorageValue(t.a, 0)
				for _, pid in ipairs(getPlayersOnline()) do
					if getPlayerStorageValue(pid, t.f) == 1 then
						setPlayerStorageValue(pid, t.f, -1)
						doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
						doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT)
					end
				end
			end
		end
	]=]=></globalevent>
<talkaction words="!rush" event="script"><=!=[=C=D=A=T=A=[
	domodlib('re')
	function onSay(cid, words, param, channel)
		if getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.wv) ~= 1 then
			if getPlayerLevel(cid) >= t.lvl then
				if getPlayerStorageValue(cid, t.f) == -1 then
					if getTilePzInfo(getPlayerPosition(cid)) == true then
						if getGlobalStorageValue(t.c) < t.m then
							setGlobalStorageValue(t.c, getGlobalStorageValue(t.c)+1)
							if getGlobalStorageValue(t.c) == t.m then
								doPlayerSendCancel(cid, "Event is full [" .. getGlobalStorageValue(t.c) .. " players]!")
							else    
								doBroadcastMessage("" .. getPlayerName(cid) .. " has joined to Rush Event! Actually we have: " .. getGlobalStorageValue(t.c) .. " players!", 19)
							end
							setPlayerStorageValue(cid, t.f, 1)
							setPlayerStorageValue(cid, t.h, -1)
							doTeleportThing(cid, t.w)
							doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
							setPlayerStorageValue(cid, t.g, getGlobalStorageValue(t.g))
							setGlobalStorageValue(t.g, tonumber(getGlobalStorageValue(t.g))+1)
						else
							doPlayerSendCancel(cid, "Event is full [" .. getGlobalStorageValue(t.c) .. " players]!")
							return true
						end
					else
						doPlayerSendCancel(cid, "You must be in protection zone.")
						return true
					end
				else
					doPlayerSendCancel(cid, "You are already registered in this event.")
					return true
				end
			else
				doPlayerSendCancel(cid, "Your level is too low to participate in this event.")
				return true
			end  			
		else
			doPlayerSendCancel(cid, "At the moment there are no records for this event.")
			return true
		end
		return true
	end
]=]=></talkaction>
<event type="combat" name="RushCombat" event="script"><=!=[=C=D=A=T=A=[
	domodlib('re')
	function onCombat(cid, target)
		if(getGlobalStorageValue(t.a) == 1) then
			if isPlayer(cid) and isPlayer(target) then
				if getPlayerStorageValue(cid, t.f) == 1 and getPlayerStorageValue(target, t.f) == 1 then
					if getPlayerStorageValue(cid, t.f_1) == getPlayerStorageValue(target, t.f_1) then
						return doPlayerSendCancel(cid, "Sorry, you cannot attack your own team.") and false
					end
				end
			end
		end
		return true
	end
]=]=></event>
<event type="attack" name="RushAttack" event="script"><=!=[=C=D=A=T=A=[
	domodlib('re')
	function onAttack(cid, target)
		if(getGlobalStorageValue(t.a) == 1) then
			if isPlayer(cid) and isPlayer(target) then
				if getPlayerStorageValue(cid, t.f) == 1 and getPlayerStorageValue(target, t.f) == 1 then
					if getPlayerStorageValue(cid, t.f_1) == getPlayerStorageValue(target, t.f_1) then
						return doPlayerSendCancel(cid, "Sorry, you cannot attack your own team.") and false
					end
				end
			end
		end
		return true
	end
]=]=></event>
<event type="preparedeath" name="RushDead" event="script"><=!=[=C=D=A=T=A=[
	domodlib('re')
	function onPrepareDeath(cid, deathList)
		if(not isPlayer(cid)) then
			return true
		end
		if getGlobalStorageValue(t.a) == 1 then
			local strings = {""}
			local j, position, corpse = 1, 1, 0
			for _, pid in ipairs(deathList) do
				if isCreature(pid) == true then
					strings[position] = j == 1 and "" or strings[position] .. ", "
					strings[position] = strings[position] .. getCreatureName(pid) .. ""
					j = j + 1
				else
					strings[position] = j == 1 and "" or strings[position] .. ", "
					strings[position] = strings[position] .."a field item"
					j = j + 1
				end
			end
			for i, str in ipairs(strings) do
				if(str:sub(str:len()) ~= ",") then
					str = str .. "."
				end
				desc = "You recognize "
				desc = desc .. "" .. getCreatureName(cid) .. ". He was killed by " .. str
			end
			if(getPlayerSex(cid) == 1) then
				corpse = doCreateItem(3058, getCreaturePosition(cid))
			else
				corpse = doCreateItem(3065, getCreaturePosition(cid))
			end
			doItemSetAttribute(corpse, "description", desc)
			if((getPlayerStorageValue(cid, t.g) % 2) == 1) then
				setGlobalStorageValue(t.u, getGlobalStorageValue(t.u)+1)
			else
				setGlobalStorageValue(t.l, getGlobalStorageValue(t.l)+1)
			end
			local red = getGlobalStorageValue(t.l)
			local blue = getGlobalStorageValue(t.u)
			if blue < t.v or red < t.v then	
				if(isPlayer(cid) == false) then
					return true
				end		
				if((getPlayerStorageValue(cid, t.g) % 2) == 1) then
					doTeleportThing(cid, t.d_1)
					doSendMagicEffect(getCreaturePosition(cid), 10)
					doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
					doCreatureAddMana(cid, getCreatureMaxMana(cid))
					doPlayerRemoveLethalConditions(cid)
					if getCreatureSkullType(cid) == SKULL_WHITE then
						doCreatureSetSkullType(cid, 0)
					end
				else
					doTeleportThing(cid, t.d_2)
					doSendMagicEffect(getCreaturePosition(cid), 10)
					doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
					doCreatureAddMana(cid, getCreatureMaxMana(cid))
					doPlayerRemoveLethalConditions(cid)
					if getCreatureSkullType(cid) == SKULL_WHITE then
						doCreatureSetSkullType(cid, 0)
					end
				end	
			end
			if blue >= t.v then
				doBroadcastMessage(t.y, MESSAGE_STATUS_WARNING)
				setGlobalStorageValue(t.h, 1)
				for _, pid in ipairs(getPlayersOnline()) do
					if(getPlayerStorageValue(pid, t.f_1) == 1) then
						doPlayerAddItem(pid, t.i_1, t.i_2)
					end
				end
			elseif red >= t.v then
				doBroadcastMessage(t.o, MESSAGE_STATUS_WARNING)
				setGlobalStorageValue(t.h, 1)
				for _, pid in ipairs(getPlayersOnline()) do
					if(getPlayerStorageValue(pid, t.f_2) == 1) then
						doPlayerAddItem(pid, t.i_1, t.i_2)
					end
				end
			end
			if getGlobalStorageValue(t.h) == 1 then
				setGlobalStorageValue(t.a, 0)
				setGlobalStorageValue(t.h, 0)
				setGlobalStorageValue(t.wv, -1)
				setPlayerStorageValue(cid, t.f, -1)
				setPlayerStorageValue(cid, t.g, 0)
				setPlayerStorageValue(cid, t.l, 0)
				setPlayerStorageValue(cid, t.u, 0)
				setPlayerStorageValue(cid, t.f_1, -1)
				setPlayerStorageValue(cid, t.f_2, -1)
				setPlayerStorageValue(cid, t.h, -1)
				doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), true)
				doSendMagicEffect(getCreaturePosition(cid), 10)
				doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
				doCreatureAddMana(cid, getCreatureMaxMana(cid))
				doPlayerRemoveLethalConditions(cid)
				for _, pid in ipairs(getPlayersOnline()) do
					if(getPlayerStorageValue(pid, t.f_1) == 1 or getPlayerStorageValue(pid, t.f_2) == 1) then
						setPlayerStorageValue(pid, t.f, -1)
						doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
						doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT)
						setPlayerStorageValue(pid, t.g, 0)
						setPlayerStorageValue(pid, t.l, 0)
						setPlayerStorageValue(pid, t.u, 0)
						setPlayerStorageValue(pid, t.f_1, -1)
						setPlayerStorageValue(pid, t.f_2, -1)
						setPlayerStorageValue(pid, t.h, -1)
						doCreatureAddHealth(pid, getCreatureMaxHealth(pid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
						doCreatureAddMana(pid, getCreatureMaxMana(pid))
						doPlayerRemoveLethalConditions(pid)
					end
				end
				return false
			end
			return false
		end
		return true
	end
]=]=></event>
<event type="outfit" name="RushOutfit" event="script"><=!=[=C=D=A=T=A=[ 
	domodlib('re')
	function onOutfit(cid, old, current)
		if(getGlobalStorageValue(t.a) == 1) then
			if getPlayerGroupId(cid) > 3 then
				return true
			end
			if getPlayerStorageValue(cid, t.h) == 0 then
				if getPlayerStorageValue(cid, t.f) > -1 then
					doPlayerSendCancel(cid, "You cannot change your outfit during the event.")
					return false
				end
			end
		end
		return true
	end
]=]=></event>
</mod>


Thanks man, repp+++
 
All players that dies in server, and are not inside event, get teleported to arena.

- - - Updated - - -

Code:
if((getPlayerStorageValue(cid, t.g) % 2) == 1) then
					doTeleportThing(cid, t.d_1)
					doSendMagicEffect(getCreaturePosition(cid), 10)
					doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
					doCreatureAddMana(cid, getCreatureMaxMana(cid))
					doPlayerRemoveLethalConditions(cid)
				else
					doTeleportThing(cid, t.d_2)
					doSendMagicEffect(getCreaturePosition(cid), 10)
					doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
					doCreatureAddMana(cid, getCreatureMaxMana(cid))
					doPlayerRemoveLethalConditions(cid)
				end	
			end
here is the error

- - - Updated - - -

There is not checking for
f - player storage who joined to event
so its teleport everyone
 
Later i post the script fixed, this is script have a lot of bugs <_<

EDIT: Script fixed! All bugs fixeds!

View attachment Team War.rar

Please follow this steps:

First: Put a empty storage on 32152, you have to search and replace, you have to work a little :p

Second: Change all variables if you want to, and change the positions!

Third: The messages now just will send if player is on the event.

Fourth: The reward now is based on chance, edit this part:

Code:
function giveReward(cid)
    	local hkz = math.random(1,100)
    	if hkz <= 30 then
    		doPlayerAddItem(cid,2160,10)
    		doPlayerSendTextMessage(cid,25,"Nunca vá em um cassino: voce ganhou 100k.")
     
    	elseif hkz > 30 and hkz <= 90 then
    		doPlayerAddItem(cid,2160,30)
    		doPlayerSendTextMessage(cid,25,"Joga na quina: voce ganhou 300k.")
      
    	elseif hkz > 90 then
    		doPlayerAddItem(cid,2640,1)
    		doPlayerSendTextMessage(cid,25,"Cagou: voce ganhou uma soft boots.")
    	end
    	return true
    end

SUBS:
Based 0 to 100;
If chance is lower than 30 the player will gain 10 crystal coins, if higher than 30 and lower than 90 the player will gain 30 crystal coins, and if is higher than 90 player will gain a soft boots.

Observations: The time is based on miliseconds (TFS 0.4)
The language is potuguese brazilian, so change all messages.

CREDITS:
ChaitoSoft
Chiitus
 
Last edited:
Mod está com problema !
Players que não estão participando do evento, ao morrerem, são jogados pro evento.
E, quando acaba evento, nenhum player ganha prêmio !
Preciso de ajuda :) Please
 
Mod está com problema !
Players que não estão participando do evento, ao morrerem, são jogados pro evento.
E, quando acaba evento, nenhum player ganha prêmio !
Preciso de ajuda :) Please

Leia o meu post lá o script está 100%.
Fiz vários testes, caso esteja dando erro pelo que eu mandei você não soube fazer alguma coisa ^_^
 
Chiitus te amo namoral <3
Chiitus é foda, arrumou bugs do script parabéns !
 
@chiitus
thanks for realising this fixed mod
but you have to fix the giveReward function :)
because its not working

15qtcer.jpg


and for that reason the players isnt get teleported back to the temple
--edit--
i fixed the event to work but without random rewards only with 1 reward
but try to fix the giveReward function
 
Last edited:
Here, the function works perfectly.
Try to put the function "givereward" in the three of function "onpreparedeath", in the first place.
It will work!
 
Back
Top