Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá galera do TK,

 

Provavelmente maioria aqui não me conhece, meu nome é Raphael ( Fael ), e minha área preferida é o mapa porém estou com um conteúdo aqui que muitos buscam separado mas não encontram.

O bom evento Run Event.

 

É um evento de corrida em um mapa com muitos obstáculos.

Todos os players possuem a mesma velocidade.

Objetivo muito simples, o primeiro que chegar no final vence :)

Para entrar no evento é preciso dizer "!run" a mensagem será anunciada na hora que preciso.

Tem que estar em área pz pra executa-lo.

 

Bom vamos ao MOD:

 

OTserver/Mod/... Adiciona um RunEvent.xml

 

 

Script:

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Run_Event" version="3.0" author="CollocorpuseK" contact="otland.net" enabled="yes">

	<config name="config_run_event">
		<![CDATA[
			configRunEvent = {
				storages = {
					player = 'runEventPlayer', -- set free storage
					joining = 'runEventJoining', -- set free storage
					group = 'runEventGroup', -- set free storage
					exhaust = 'runEventExhaust', -- set free storage
					countEvent = 'runEventCountEvent' -- set free storage
				},

				position = {x=885, y=1002, z=7}, -- Posicao que vai ser teleportado os players
				
				rewards = {9931, 7697, 2346, 8880}, -- Itens pro vencedor ( Sera sortido)
				players = {
					max = 45, -- Maximo de player
					min = 5, -- Minimo de player
					minLevel = 100, -- Level minimo pra entrar no evento
					speed = 200 -- Velocidade que todos ficaram
				},
				
				days = {
					['Monday'] = {'16:00:20'},
					['Tuesday'] = {'16:00:20'},
					['Wednesday'] = {'16:00:20'},
					['Thursday'] = {'16:00:20'},
					['Friday'] = {'16:00:20'},
					['Saturday'] = {'16:00:20'},
					['Sunday'] = {'16:00:20'}
				},

				delayTime = 5.0, -- Tempo pros players dizer o comando [minutos]
				startEvent = 2, -- Tempo pra começar o evento quando todos players tiverem no local [ segundos ]
				text = 'Vai comecar o Run Evento, se preparem'
			}
		]]>
	</config>

	<lib name="lib_run_event">
		<![CDATA[
			function doStartEventRun()
				if configRunEvent.players.min <= doCountPlayersRunEvent() then
					for _, cid in ipairs(getPlayersOnline()) do
						if getCreatureStorage(cid, configRunEvent.storages.player) > 0 then
							doRemoveCondition(cid, CONDITION_INFIGHT) -- fight
							doTeleportThing(cid, configRunEvent.position)	-- teleport pos
							doChangeSpeed(cid, configRunEvent.players.speed - getCreatureBaseSpeed(cid)) -- predkosc
							doCreatureSetStorage(cid, configRunEvent.storages.group, getPlayerGroupId(cid)) -- storage
							doPlayerSetGroupId(cid, 7) -- grupa
							addEvent(doCreatureSetNoMove, configRunEvent.startEvent * 1000, cid, false)
							doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Get ready. Run Event start in '..configRunEvent.startEvent..' seconds.')
						end
					end

					addEvent(doCheckSpeedRunEvent, configRunEvent.startEvent * 1000)
					doBroadcastMessage('Run Event has started. LET\'S GO!')
				else
					for _, cid in ipairs(getPlayersOnline()) do
						if getCreatureStorage(cid, configRunEvent.storages.player) > 0 then
							doCreatureSetStorage(cid, configRunEvent.storages.player, -1)
							doCreatureSetNoMove(cid, false)
							doRemoveCondition(cid, CONDITION_INFIGHT)
						end
					end

					doBroadcastMessage('Run Event hasn\'t started beacuse there were not enough players.')
				end

				doSetStorage(configRunEvent.storages.joining, -1)
			end

			function doCountPlayersRunEvent()
				local x = 0
				for _, cid in ipairs(getPlayersOnline()) do
					if getCreatureStorage(cid, configRunEvent.storages.player) > 0 then
						x = x + 1
					end
				end
				return x
			end
			
			function doStartCountingRunEvent(x)
				if configRunEvent.delayTime-x > 0 then
					doBroadcastMessage('Run Event is going to start in '..configRunEvent.delayTime-x..' minutes. You can join to the event by saying "!run join".')
					addEvent(doStartCountingRunEvent, 60*1000, x+1)
				end
			end

			function doCheckSpeedRunEvent()
				if doCountPlayersRunEvent() > 0 then
					addEvent(doCheckSpeedRunEvent, 1000)
				end

				for _, cid in ipairs(getPlayersOnline()) do
					if getCreatureStorage(cid, configRunEvent.storages.player) > 0 then
						if getCreatureSpeed(cid) ~= configRunEvent.players.speed then
							doChangeSpeed(cid, (getCreatureSpeed(cid) < configRunEvent.players.speed and configRunEvent.players.speed - getCreatureSpeed(cid) or getCreatureSpeed(cid) > configRunEvent.players.speed and - (getCreatureSpeed(cid) - configRunEvent.players.speed)))
						end
					end
				end
			end
		]]>
	</lib>

	<talkaction words="!run" event="script">
		<![CDATA[
			domodlib("config_run_event")

			function onSay(cid, words, param)
				if getStorage(configRunEvent.storages.joining) ~= 1 then
					return doPlayerSendCancel(cid, 'The Run Event hasn\'t started yet.')
				elseif param == '' then
					return doPlayerSendCancel(cid, 'Command param required (say: "!run join" or "!run leave.").')
				elseif getPlayerLevel(cid) < configRunEvent.players.minLevel then
					return doPlayerSendCancel(cid, 'You can\'t join to the event if you don\'t have a require '..configRunEvent.players.minLevel..' level.')
				elseif getTileInfo(getThingPos(cid)).protection ~= true then
					return doPlayerSendCancel(cid, 'You can\'t join to the event if you aren\'t in protection zone.')
				elseif exhaustion.check(cid, configRunEvent.storages.exhaust) ~= false then
					return doPlayerSendCancel(cid, 'You must wait '..exhaustion.get(cid, configRunEvent.storages.exhaust)..' seconds to use this command again.')
				end

				if param == 'join' then
					if getCreatureStorage(cid, configRunEvent.storages.player) > 0 then
						return doPlayerSendCancel(cid, 'You have arleady joined to event. Wait patiently for start.')
					elseif doCountPlayersRunEvent() == configRunEvent.players.max then
						return doPlayerSendCancel(cid, 'Max players in the event have been reached.')
					end

					doCreatureSetNoMove(cid, true)
					doPlayerPopupFYI(cid, configRunEvent.text)
					doCreatureSetStorage(cid, configRunEvent.storages.player, 1)
					doAddCondition(cid, createConditionObject(CONDITION_INFIGHT, -1))
					doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You have joined to Run Event. You can\'t move until event don\'t start. Wait patiently for the event start.')
					doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, 'You have joined to Run Event.')					
				elseif param == 'leave' then
					if getCreatureStorage(cid, configRunEvent.storages.player) <= 0 then
						return doPlayerSendCancel(cid, 'You can\'t leave from the event if you don\'t join.')
					end

					doCreatureSetNoMove(cid, false)
					doCreatureSetStorage(cid, configRunEvent.storages.player, -1)
					doRemoveCondition(cid, CONDITION_INFIGHT)
					doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, 'You have left from the Run Event.')
				end

				exhaustion.set(cid, configRunEvent.storages.exhaust, 5)
				return true
			end
		]]>
	</talkaction>

	<talkaction words="!startrun" access="5" event="script">
		<![CDATA[
			domodlib("config_run_event")
			domodlib("lib_run_event")

			function onSay(cid, words, param)
				doSetStorage(configRunEvent.storages.joining, 1)
				addEvent(doStartEventRun, configRunEvent.delayTime * 60 * 1000)
				doStartCountingRunEvent(0)

				for _, pid in ipairs(getPlayersOnline()) do
					if getCreatureStorage(pid, configRunEvent.storages.player) > 0 then
						doCreatureSetStorage(pid, configRunEvent.storages.player, -1)

						doPlayerSetGroupId(pid, getCreatureStorage(pid, configRunEvent.storages.group))
						doChangeSpeed(pid, getCreatureBaseSpeed(pid) - configRunEvent.players.speed)
						doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)
					end
				end
				return true
			end
		]]>
	</talkaction>

	<movement type="StepIn" actionid="5467" event="script">
		<![CDATA[
			domodlib("config_run_event")

			function onStepIn(cid, item, position)
				if getCreatureStorage(cid, configRunEvent.storages.player) > 0 then
					local prize = math.random(#configRunEvent.rewards)

					doCreatureSetStorage(cid, configRunEvent.storages.player, -1)
					doPlayerAddItem(cid, configRunEvent.rewards[prize], 1)
					doChangeSpeed(cid, getCreatureBaseSpeed(cid) - configRunEvent.players.speed)
					doPlayerSetGroupId(cid, math.max(1, getCreatureStorage(cid, configRunEvent.storages.group)))
					doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), true)
					doBroadcastMessage('Run Event has finished. The winner is '..getCreatureName(cid)..'.')
					doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You are winner. You have won '..getItemNameById(configRunEvent.rewards[prize])..'.')
					db.query("INSERT INTO `events` (`event_name`, `winner_name`, `won_item`, `time_win`) VALUES (\"Run\", \"" .. getCreatureName(cid) .. "\", \"" .. getItemNameById(configRunEvent.rewards[prize]) .. "\", " .. getStorage(configRunEvent.storages.countEvent) ..");")

					doSetStorage(configRunEvent.storages.countEvent, getStorage(configRunEvent.storages.countEvent) + 1)

					for _, pid in ipairs(getPlayersOnline()) do
						if getCreatureStorage(pid, configRunEvent.storages.player) > 0 then
							doCreatureSetStorage(pid, configRunEvent.storages.player, -1)
							
							doPlayerSetGroupId(pid, math.max(1, getCreatureStorage(pid, configRunEvent.storages.group)))
							doChangeSpeed(pid, getCreatureBaseSpeed(pid) - configRunEvent.players.speed)
							doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)
							doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, 'You loss.')
						end
					end
				end
				return true
			end
		]]>
	</movement>

	<globalevent name="Run_Event_Days" interval="1000" event="script">
		<![CDATA[
			domodlib("config_run_event")
			domodlib("lib_run_event")

			local daysOpen = {}
			for k, v in pairs(configRunEvent.days) do
				table.insert(daysOpen, k)
			end

			function onThink(interval)
				if isInArray(daysOpen, os.date("%A")) then
					if isInArray(configRunEvent.days[os.date("%A")], os.date("%X", os.time())) then
						if getStorage(configRunEvent.storages.joining) ~= 1 then
							doSetStorage(configRunEvent.storages.joining, 1)
							addEvent(doStartEventRun, configRunEvent.delayTime * 60 * 1000)
							doStartCountingRunEvent(0)

							for _, pid in ipairs(getPlayersOnline()) do
								if getCreatureStorage(pid, configRunEvent.storages.player) > 0 then
									doCreatureSetStorage(pid, configRunEvent.storages.player, -1)

									doPlayerSetGroupId(pid, math.max(1, getCreatureStorage(pid, configRunEvent.storages.group)))
									doChangeSpeed(pid, getCreatureBaseSpeed(pid) - configRunEvent.players.speed)
									doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)
								end
							end
						end
					end
				end
				return true
			end
		]]>
	</globalevent>

	<event type="login" name="Run_Event_Login" event="script">
		<![CDATA[
			domodlib("config_run_event")

			function onLogin(cid)
				if getCreatureStorage(cid, configRunEvent.storages.player) > 0 then
					doCreatureSetStorage(cid, configRunEvent.storages.player, -1)
					doPlayerSetGroupId(cid, math.max(1, getCreatureStorage(cid, configRunEvent.storages.group)))
					doCreatureSetNoMove(cid, false)
					doRemoveCondition(cid, CONDITION_INFIGHT)
					doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), true)
				end
				return true
			end
		]]>
	</event>
	
	<globalevent name="Run_Event_Start" type="startup" event="script">
		<![CDATA[
			domodlib("config_run_event")

			function onStartup()
				doSetStorage(configRunEvent.storages.joining, -1)
				return true
			end
		]]>
	</globalevent>
</mod>

Executem essa QUERY na sua DataBase


  1. CREATE TABLE `events` (   `event_name` varchar(255) NOT NULL,   `winner_name` varchar(255) NOT NULL,   `won_item` varchar(255) NOT NULL,   `time_win` varchar(256) NOT NULL,   PRIMARY KEY  (`event_name`) );

 

No final do mapa para marcar o vencedor você marque um ActionID - 5467 no piso final.

 

Não dou suporte !

 

 

 

Mapa Link

Editado por Faelzdanil (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Não tem o Mapa pra Download ?

VENHAM JOGAR O MELHOR BAIAK JÁ CRIADO DE 2022!!

 

CRIE SUA CONTA AGORA MESMO!

 

www.baiakudo.com

Link para o post
Compartilhar em outros sites

No final do mapa para marcar o vencedor você marque um ActionID - 5467 no piso final.

 

Link do mapa adicionado.

Editado por Faelzdanil (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Muito obrigado pela contribuição.. significa muito pro Tibia King.
 

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Ai esta dando erro no evento
quanto abro o tfs e uso a versao 0.4

 

> Loading RunEvent.xml...[Error - ScriptingManager::loadFromXml] Cannot load mod mods/RunEvent.xml
[27/05/2014 23:47:11] Line: 35, Info: Input is not proper UTF-8, indicate encoding !
[27/05/2014 23:47:11] Bytes: 0xE7 0x61 0x72 0x20

VENHAM JOGAR O MELHOR BAIAK JÁ CRIADO DE 2022!!

 

CRIE SUA CONTA AGORA MESMO!

 

www.baiakudo.com

Link para o post
Compartilhar em outros sites

 

Ai esta dando erro no evento

quanto abro o tfs e uso a versao 0.4

 

> Loading RunEvent.xml...[Error - ScriptingManager::loadFromXml] Cannot load mod mods/RunEvent.xml
[27/05/2014 23:47:11] Line: 35, Info: Input is not proper UTF-8, indicate encoding !
[27/05/2014 23:47:11] Bytes: 0xE7 0x61 0x72 0x20

 

eu tb to com esse erro .......

A mais uma dica faz uma instalação tirando print de como seria colocando no mapa  ai fica melhor .

Link para o post
Compartilhar em outros sites

Mesmo erro

 

> Loading RunEvent.xml...[Error - ScriptingManager::loadFromXml] Cannot load mod mods/RunEvent.xml
[28/05/2014 13:09:44] Line: 36, Info: Input is not proper UTF-8, indicate encoding !
[28/05/2014 13:09:44] Bytes: 0xE7 0x61 0x72 0x20
 
e executei as query que voce mando =s

VENHAM JOGAR O MELHOR BAIAK JÁ CRIADO DE 2022!!

 

CRIE SUA CONTA AGORA MESMO!

 

www.baiakudo.com

Link para o post
Compartilhar em outros sites

Vocês devem ter copiado errado os spoilers.. vou testar aqui e atualizo..

Editado por kelvin.shirazi (veja o histórico de edições)

Ajudei? dá um REP +               ↑↑

 

 

Projetos:

Mapa próprio 8.70.

Link para o post
Compartilhar em outros sites

Alguem Testou ?

VENHAM JOGAR O MELHOR BAIAK JÁ CRIADO DE 2022!!

 

CRIE SUA CONTA AGORA MESMO!

 

www.baiakudo.com

Link para o post
Compartilhar em outros sites

estou com um erro kai 

 

 

mods/RunEvent.xml:1: parser error : xmlParsePI : no target name
<? xml version = "1.0" encoding = "UTF-8" ?>
  ^
mods/RunEvent.xml:1: parser error : Start tag expected, '<' not found
<? xml version = "1.0" encoding = "UTF-8" ?>
   ^
[15:57:12.250] > Loading RunEvent.xml...[Error - ScriptManager::loadFromXml] Can
not load mod mods/RunEvent.xml
[15:57:12.251] Line: 1, Info: Start tag expected, '<' not found

Link para o post
Compartilhar em outros sites

Estou com Este Erro no Distro 0.4

> Loading RunEvent.xml...[Error - ScriptingManager::loadFromXml] Cannot load mod mods/RunEvent.xml
[28/05/2014 13:09:44] Line: 36, Info: Input is not proper UTF-8, indicate encoding !
[28/05/2014 13:09:44] Bytes: 0xE7 0x61 0x72 0x20
Alguem me ajuda ?





configRunEvent = {
storages = {
player = 'runEventPlayer', -- set free storage
joining = 'runEventJoining', -- set free storage
group = 'runEventGroup', -- set free storage
exhaust = 'runEventExhaust', -- set free storage
countEvent = 'runEventCountEvent' -- set free storage
},

position = {x=885, y=1002, z=7}, -- Posicao que vai ser teleportado os players

rewards = {9931, 7697, 2346, 8880}, -- Itens pro vencedor ( Sera sortido)
players = {
max = 45, -- Maximo de player
min = 5, -- Minimo de player
minLevel = 100, -- Level minimo pra entrar no evento
speed = 200 -- Velocidade que todos ficaram
},

days = {
['Monday'] = {'16:00:20'},
['Tuesday'] = {'16:00:20'},
['Wednesday'] = {'16:00:20'},
['Thursday'] = {'16:00:20'},
['Friday'] = {'16:00:20'},
['Saturday'] = {'16:00:20'},
['Sunday'] = {'16:00:20'}
},

delayTime = 5.0, -- Tempo pros players dizer o comando [minutos]
startEvent = 2, -- Tempo pra começar o evento quando todos players tiverem no local [ segundos ]
text = 'Vai comecar o Run Evento, se preparem'
}
]]>



function doStartEventRun()
if configRunEvent.players.min <= doCountPlayersRunEvent() then
for _, cid in ipairs(getPlayersOnline()) do
if getCreatureStorage(cid, configRunEvent.storages.player) > 0 then
doRemoveCondition(cid, CONDITION_INFIGHT) -- fight
doTeleportThing(cid, configRunEvent.position) -- teleport pos
doChangeSpeed(cid, configRunEvent.players.speed - getCreatureBaseSpeed(cid)) -- predkosc
doCreatureSetStorage(cid, configRunEvent.storages.group, getPlayerGroupId(cid)) -- storage
doPlayerSetGroupId(cid, 7) -- grupa
addEvent(doCreatureSetNoMove, configRunEvent.startEvent * 1000, cid, false)
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Get ready. Run Event start in '..configRunEvent.startEvent..' seconds.')
end
end

addEvent(doCheckSpeedRunEvent, configRunEvent.startEvent * 1000)
doBroadcastMessage('Run Event has started. LET\'S GO!')
else
for _, cid in ipairs(getPlayersOnline()) do
if getCreatureStorage(cid, configRunEvent.storages.player) > 0 then
doCreatureSetStorage(cid, configRunEvent.storages.player, -1)
doCreatureSetNoMove(cid, false)
doRemoveCondition(cid, CONDITION_INFIGHT)
end
end

doBroadcastMessage('Run Event hasn\'t started beacuse there were not enough players.')
end

doSetStorage(configRunEvent.storages.joining, -1)
end

function doCountPlayersRunEvent()
local x = 0
for _, cid in ipairs(getPlayersOnline()) do
if getCreatureStorage(cid, configRunEvent.storages.player) > 0 then
x = x + 1
end
end
return x
end

function doStartCountingRunEvent(x)
if configRunEvent.delayTime-x > 0 then
doBroadcastMessage('Run Event is going to start in '..configRunEvent.delayTime-x..' minutes. You can join to the event by saying "!run join".')
addEvent(doStartCountingRunEvent, 60*1000, x+1)
end
end

function doCheckSpeedRunEvent()
if doCountPlayersRunEvent() > 0 then
addEvent(doCheckSpeedRunEvent, 1000)
end

for _, cid in ipairs(getPlayersOnline()) do
if getCreatureStorage(cid, configRunEvent.storages.player) > 0 then
if getCreatureSpeed(cid) ~= configRunEvent.players.speed then
doChangeSpeed(cid, (getCreatureSpeed(cid) < configRunEvent.players.speed and configRunEvent.players.speed - getCreatureSpeed(cid) or getCreatureSpeed(cid) > configRunEvent.players.speed and - (getCreatureSpeed(cid) - configRunEvent.players.speed)))
end
end
end
end
]]>



domodlib("config_run_event")

function onSay(cid, words, param)
if getStorage(configRunEvent.storages.joining) ~= 1 then
return doPlayerSendCancel(cid, 'The Run Event hasn\'t started yet.')
elseif param == '' then
return doPlayerSendCancel(cid, 'Command param required (say: "!run join" or "!run leave.").')
elseif getPlayerLevel(cid) < configRunEvent.players.minLevel then
return doPlayerSendCancel(cid, 'You can\'t join to the event if you don\'t have a require '..configRunEvent.players.minLevel..' level.')
elseif getTileInfo(getThingPos(cid)).protection ~= true then
return doPlayerSendCancel(cid, 'You can\'t join to the event if you aren\'t in protection zone.')
elseif exhaustion.check(cid, configRunEvent.storages.exhaust) ~= false then
return doPlayerSendCancel(cid, 'You must wait '..exhaustion.get(cid, configRunEvent.storages.exhaust)..' seconds to use this command again.')
end

if param == 'join' then
if getCreatureStorage(cid, configRunEvent.storages.player) > 0 then
return doPlayerSendCancel(cid, 'You have arleady joined to event. Wait patiently for start.')
elseif doCountPlayersRunEvent() == configRunEvent.players.max then
return doPlayerSendCancel(cid, 'Max players in the event have been reached.')
end

doCreatureSetNoMove(cid, true)
doPlayerPopupFYI(cid, configRunEvent.text)
doCreatureSetStorage(cid, configRunEvent.storages.player, 1)
doAddCondition(cid, createConditionObject(CONDITION_INFIGHT, -1))
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You have joined to Run Event. You can\'t move until event don\'t start. Wait patiently for the event start.')
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, 'You have joined to Run Event.')
elseif param == 'leave' then
if getCreatureStorage(cid, configRunEvent.storages.player) <= 0 then
return doPlayerSendCancel(cid, 'You can\'t leave from the event if you don\'t join.')
end

doCreatureSetNoMove(cid, false)
doCreatureSetStorage(cid, configRunEvent.storages.player, -1)
doRemoveCondition(cid, CONDITION_INFIGHT)
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, 'You have left from the Run Event.')
end

exhaustion.set(cid, configRunEvent.storages.exhaust, 5)
return true
end
]]>



domodlib("config_run_event")
domodlib("lib_run_event")

function onSay(cid, words, param)
doSetStorage(configRunEvent.storages.joining, 1)
addEvent(doStartEventRun, configRunEvent.delayTime * 60 * 1000)
doStartCountingRunEvent(0)

for _, pid in ipairs(getPlayersOnline()) do
if getCreatureStorage(pid, configRunEvent.storages.player) > 0 then
doCreatureSetStorage(pid, configRunEvent.storages.player, -1)

doPlayerSetGroupId(pid, getCreatureStorage(pid, configRunEvent.storages.group))
doChangeSpeed(pid, getCreatureBaseSpeed(pid) - configRunEvent.players.speed)
doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)
end
end
return true
end
]]>



domodlib("config_run_event")

function onStepIn(cid, item, position)
if getCreatureStorage(cid, configRunEvent.storages.player) > 0 then
local prize = math.random(#configRunEvent.rewards)

doCreatureSetStorage(cid, configRunEvent.storages.player, -1)
doPlayerAddItem(cid, configRunEvent.rewards[prize], 1)
doChangeSpeed(cid, getCreatureBaseSpeed(cid) - configRunEvent.players.speed)
doPlayerSetGroupId(cid, math.max(1, getCreatureStorage(cid, configRunEvent.storages.group)))
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), true)
doBroadcastMessage('Run Event has finished. The winner is '..getCreatureName(cid)..'.')
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You are winner. You have won '..getItemNameById(configRunEvent.rewards[prize])..'.')
db.query("INSERT INTO `events` (`event_name`, `winner_name`, `won_item`, `time_win`) VALUES (\"Run\", \"" .. getCreatureName(cid) .. "\", \"" .. getItemNameById(configRunEvent.rewards[prize]) .. "\", " .. getStorage(configRunEvent.storages.countEvent) ..");")

doSetStorage(configRunEvent.storages.countEvent, getStorage(configRunEvent.storages.countEvent) + 1)

for _, pid in ipairs(getPlayersOnline()) do
if getCreatureStorage(pid, configRunEvent.storages.player) > 0 then
doCreatureSetStorage(pid, configRunEvent.storages.player, -1)

doPlayerSetGroupId(pid, math.max(1, getCreatureStorage(pid, configRunEvent.storages.group)))
doChangeSpeed(pid, getCreatureBaseSpeed(pid) - configRunEvent.players.speed)
doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)
doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, 'You loss.')
end
end
end
return true
end
]]>



domodlib("config_run_event")
domodlib("lib_run_event")

local daysOpen = {}
for k, v in pairs(configRunEvent.days) do
table.insert(daysOpen, k)
end

function onThink(interval)
if isInArray(daysOpen, os.date("%A")) then
if isInArray(configRunEvent.days[os.date("%A")], os.date("%X", os.time())) then
if getStorage(configRunEvent.storages.joining) ~= 1 then
doSetStorage(configRunEvent.storages.joining, 1)
addEvent(doStartEventRun, configRunEvent.delayTime * 60 * 1000)
doStartCountingRunEvent(0)

for _, pid in ipairs(getPlayersOnline()) do
if getCreatureStorage(pid, configRunEvent.storages.player) > 0 then
doCreatureSetStorage(pid, configRunEvent.storages.player, -1)

doPlayerSetGroupId(pid, math.max(1, getCreatureStorage(pid, configRunEvent.storages.group)))
doChangeSpeed(pid, getCreatureBaseSpeed(pid) - configRunEvent.players.speed)
doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)
end
end
end
end
end
return true
end
]]>



domodlib("config_run_event")

function onLogin(cid)
if getCreatureStorage(cid, configRunEvent.storages.player) > 0 then
doCreatureSetStorage(cid, configRunEvent.storages.player, -1)
doPlayerSetGroupId(cid, math.max(1, getCreatureStorage(cid, configRunEvent.storages.group)))
doCreatureSetNoMove(cid, false)
doRemoveCondition(cid, CONDITION_INFIGHT)
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), true)
end
return true
end
]]>



domodlib("config_run_event")

function onStartup()
doSetStorage(configRunEvent.storages.joining, -1)
return true
end
]]>

Editado por DeathRocks (veja o histórico de edições)

VENHAM JOGAR O MELHOR BAIAK JÁ CRIADO DE 2022!!

 

CRIE SUA CONTA AGORA MESMO!

 

www.baiakudo.com

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo