Transformar
Reverter
local config = {
-- Posicão que o jogadores devem estar na hora de puxar a alavanca
posJogador1 = {x=710,y=1039,z=6, stackpos=1},
posJogador2 = {x=712,y=1039,z=6, stackpos=1},
-- Posicão inicial dos jogadores na partida
posTeleporte1 = {x=713,y=1053,z=7, stackpos=1},
posTeleporte2 = {x=709,y=1053,z=7, stackpos=1},
posBola = {x=711,y=1053,z=7, stackpos=1}, -- Posicão inicial da bola
nomeNpc = "Juiz", -- Lembrando que o npc deve existir
posNpc = {x=711,y=1041,z=6, stackpos=1}, -- Posicão inicial do npc
gols = 5, -- Quantidade de gols para ganhar o jogo
tempoPrePartida = 5, -- Tempo de espera para comecar a partida (segundos)
quantidadeTorcedores = 7, -- Para cada equipe
-- Posicão inicial em que o script ira comecar preencher com os torcedores
posTorcida1 = {x=697,y=1065,z=6, stackpos=1},
posTorcida2 = {x=713,y=1065,z=6, stackpos=1},
-- Posicão dos gols
posGol1 = {
{x=689,y=1052,z=7, stackpos=1},
{x=689,y=1053,z=7, stackpos=1},
{x=689,y=1054,z=7, stackpos=1},
},
posGol2 = {
{x=725,y=1052,z=7, stackpos=1},
{x=725,y=1053,z=7, stackpos=1},
{x=725,y=1054,z=7, stackpos=1},
}
}
local jogador1 = nil
local jogador2 = nil
local listaTorcedores1 = ""
local listaTorcedores2 = ""
local npcUid = nil
local placar = { 0,0 }
local eventoTorcida = nil
local eventoGol = nil
local function inicioJogo()
doCreatureSay(npcUid, "Valendo!", TALKTYPE_YELL)
doSendMagicEffect(config.posTeleporte1, 12)
doSendMagicEffect(config.posTeleporte2, 12)
doCreatureSetNoMove(jogador1, false)
doCreatureSetNoMove(jogador2, false)
end
local function torcida(nome1, nome2)
local chanceTorcida1 = math.random(1,2)
local chanceTorcida2 = math.random(1,2)
if(chanceTorcida1>1)then
local uids = string.explode(listaTorcedores1, ",")
local torcedor = uids[math.random(1,#uids)]
doCreatureSay(torcedor, "Vai "..nome1.."!", TALKTYPE_YELL)
end
if(chanceTorcida2>1)then
local uids = string.explode(listaTorcedores2, ",")
local torcedor = uids[math.random(1,#uids)]
doCreatureSay(torcedor, "Vai "..nome2.."!", TALKTYPE_YELL)
end
eventoTorcida = addEvent(torcida,4000, nome1, nome2)
end
local function delayMsg(msg)
doCreatureSay(npcUid, msg, TALKTYPE_YELL)
end
local function testeGol(nome1,nome2)
for i=1,#config.posGol1 do
for j=1,10 do
local testPos = {x=config.posGol1.x, y=config.posGol1.y, z=config.posGol1.z, stackpos=j}
local thing = getThingFromPos(testPos)
if(thing.itemid==2109)then
if(placar[2]==config.gols-1)then
doPlayerSendTextMessage(jogador2, MESSAGE_INFO_DESCR, "Parabens! Voce ganhou a partida.")
doPlayerSendTextMessage(jogador1, MESSAGE_INFO_DESCR, "Lamento, mas voce perdeu o jogo.")
doTeleportThing(jogador1, config.posJogador1)
doTeleportThing(jogador2, config.posJogador2)
doSendMagicEffect(config.posJogador1, 12)
doSendMagicEffect(config.posJogador2, 12)
local item = doPlayerAddItem(jogador2, 5805)
doItemSetAttribute(item, "description", nome2.." conquistou este trofeu apos derrotar "..nome1.." em uma partida de futebol.")
doRemoveCreature(npcUid)
stopEvent(eventoTorcida)
stopEvent(eventoGol)
local uids1 = string.explode(listaTorcedores1, ",")
local uids2 = string.explode(listaTorcedores2, ",")
for k = 1, #uids1 do
doRemoveCreature(uids1[k])
doRemoveCreature(uids2[k])
end
jogador1 = nil
jogador2 = nil
listaTorcedores1 = ""
listaTorcedores2 = ""
config.posTorcida1 = {x=697,y=1065,z=6, stackpos=1},
config.posTorcida2 = {x=713,y=1065,z=6, stackpos=1},
npcUid = nil
placar = { 0,0 }
else
doTeleportThing(jogador1, config.posTeleporte1)
doTeleportThing(jogador2, config.posTeleporte2)
doSendMagicEffect(config.posTeleporte1, 10)
doSendMagicEffect(config.posTeleporte2, 10)
doCreatureSetNoMove(jogador1, true)
doCreatureSetNoMove(jogador2, true)
doCreatureSetLookDirection(jogador1, 1)
doCreatureSetLookDirection(jogador2, 3)
doCreateItem(2109, 1, config.posBola)
doSendMagicEffect(config.posBola, 13)
local uids = string.explode(listaTorcedores2, ",")
for k = 1, #uids do
doCreatureSay(uids[k], "GOOOOL!", TALKTYPE_YELL)
end
placar[2] = placar[2]+1
local msg = "Gol do "..nome2.."! O placar atual e "..nome1..": "..placar[1].." e "..nome2..": "..placar[2].."."
addEvent(delayMsg,1000, msg)
msg = "A proxima rodada ira comecar em cerca de "..config.tempoPrePartida.." segundos. Concentrem-se!"
addEvent(delayMsg,6000, msg)
addEvent(inicioJogo,7000+(config.tempoPrePartida*1000))
end
doRemoveItem(thing.uid)
end
end
end
for i=1,#config.posGol2 do
for j=1,10 do
local testPos = {x=config.posGol2.x, y=config.posGol2.y, z=config.posGol2.z, stackpos=j}
local thing = getThingFromPos(testPos)
if(thing.itemid==2109)then
if(placar[1]==config.gols-1)then
doPlayerSendTextMessage(jogador1, MESSAGE_INFO_DESCR, "Parabens! Voce ganhou a partida.")
doPlayerSendTextMessage(jogador2, MESSAGE_INFO_DESCR, "Lamento, mas voce perdeu o jogo.")
doTeleportThing(jogador1, config.posJogador1)
doTeleportThing(jogador2, config.posJogador2)
doSendMagicEffect(config.posJogador1, 12)
doSendMagicEffect(config.posJogador2, 12)
local item = doPlayerAddItem(jogador1, 5805)
doItemSetAttribute(item, "description", nome1.." conquistou este trofeu apos derrotar "..nome2.." em uma partida de futebol.")
doRemoveCreature(npcUid)
stopEvent(eventoTorcida)
stopEvent(eventoGol)
local uids1 = string.explode(listaTorcedores1, ",")
local uids2 = string.explode(listaTorcedores2, ",")
for k = 1, #uids1 do
doRemoveCreature(uids1[k])
doRemoveCreature(uids2[k])
end
jogador1 = nil
jogador2 = nil
listaTorcedores1 = ""
listaTorcedores2 = ""
config.posTorcida1 = {x=697,y=1065,z=6, stackpos=1},
config.posTorcida2 = {x=713,y=1065,z=6, stackpos=1},
npcUid = nil
placar = { 0,0 }
else
doTeleportThing(jogador1, config.posTeleporte1)
doTeleportThing(jogador2, config.posTeleporte2)
doSendMagicEffect(config.posTeleporte1, 10)
doSendMagicEffect(config.posTeleporte2, 10)
doCreatureSetNoMove(jogador1, true)
doCreatureSetNoMove(jogador2, true)
doCreatureSetLookDirection(jogador1, 1)
doCreatureSetLookDirection(jogador2, 3)
doCreateItem(2109, 1, config.posBola)
doSendMagicEffect(config.posBola, 13)
local uids = string.explode(listaTorcedores1, ",")
for k = 1, #uids do
doCreatureSay(uids[k], "GOOOOL!", TALKTYPE_YELL)
end
placar[1] = placar[1]+1
local msg = "Gol do "..nome1.."! O placar atual e "..nome1..": "..placar[1].." e "..nome2..": "..placar[2].."."
addEvent(delayMsg,1000, msg)
msg = "A proxima rodada ira comecar em cerca de "..config.tempoPrePartida.." segundos. Concentrem-se!"
addEvent(delayMsg,7000, msg)
addEvent(inicioJogo,8000+(config.tempoPrePartida*1000))
end
doRemoveItem(thing.uid)
end
end
end
eventoGol = addEvent(testeGol,100,nome1,nome2)
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
if (isPlayer(jogador1) == true and isPlayer(jogador2) == true)then
doPlayerSendCancel(cid, "Lamento, mas o campo ja esta em uso.")
doSendMagicEffect(fromPosition, 2)
return false
end
local coisa1 = getThingFromPos(config.posJogador1).uid
local coisa2 = getThingFromPos(config.posJogador2).uid
if(isPlayer(coisa1))then
jogador1 = coisa1
end
if(isPlayer(coisa2))then
jogador2 = coisa2
end
if(jogador1==nil or jogador2==nil)then
doPlayerSendCancel(cid, "Desculpe, mas voce precisa de outro player para comecar um jogo.")
doSendMagicEffect(fromPosition, 2)
return false
else
doTeleportThing(jogador1, config.posTeleporte1)
doTeleportThing(jogador2, config.posTeleporte2)
doSendMagicEffect(config.posTeleporte1, 10)
doSendMagicEffect(config.posTeleporte2, 10)
doCreatureSetNoMove(jogador1, true)
doCreatureSetNoMove(jogador2, true)
doCreatureSetLookDirection(jogador1, 1)
doCreatureSetLookDirection(jogador2, 3)
doCreateItem(2109, 1, config.posBola)
doSendMagicEffect(config.posBola, 13)
npcUid = doCreateNpc(config.nomeNpc, config.posNpc)
doCreatureSetLookDirection(npcUid, 2)
doSendMagicEffect(config.posNpc, 10)
doCreatureSetNoMove(npcUid, true)
local nome1 = getCreatureName(jogador1)
local nome2 = getCreatureName(jogador2)
local msg = "Saudacoes "..nome1.." e "..nome2..". Serei o juiz desta partida. Ganhara o primeiro a fazer "..config.gols.." gols."
addEvent(delayMsg,1000, msg)
msg = "A partida ira comecar em cerca de "..config.tempoPrePartida.." segundos. Concentrem-se!"
addEvent(delayMsg,9000, msg)
local uidMonstro
local randomOutfit
for i=1,config.quantidadeTorcedores do
uidMonstro = doCreateMonster("Torcedor",config.posTorcida1)
doCreatureSetLookDirection(uidMonstro, 0)
doSendMagicEffect(config.posTorcida1, 10)
doCreatureSetNoMove(uidMonstro, true)
config.posTorcida1.x = config.posTorcida1.x + 1
randomOutfit = {
lookType = 363,
lookHead = math.random(1,66),
lookAddons = math.random(0,2),
lookLegs = math.random(1,66),
lookFeet = math.random(1,66)
}
doCreatureChangeOutfit(uidMonstro, randomOutfit)
if(listaTorcedores1=="")then
listaTorcedores1 = uidMonstro
else
listaTorcedores1 = listaTorcedores1..","..uidMonstro
end
end
for i=1,config.quantidadeTorcedores do
uidMonstro = doCreateMonster("Torcedor",config.posTorcida2)
doCreatureSetLookDirection(uidMonstro, 0)
doSendMagicEffect(config.posTorcida2, 10)
doCreatureSetNoMove(uidMonstro, true)
config.posTorcida2.x = config.posTorcida2.x + 1
randomOutfit = {
lookType = 368,
lookHead = math.random(67,132),
lookAddons = math.random(0,2),
lookLegs = math.random(67,132),
lookFeet = math.random(67,132)
}
doCreatureChangeOutfit(uidMonstro, randomOutfit)
if(listaTorcedores2=="")then
listaTorcedores2 = uidMonstro
else
listaTorcedores2 = listaTorcedores2..","..uidMonstro
end
end
addEvent(inicioJogo,10000+(config.tempoPrePartida*1000))
eventoTorcida = addEvent(torcida,10000+(config.tempoPrePartida*1000), nome1, nome2)
eventoGol = addEvent(testeGol,10000+(config.tempoPrePartida*1000), nome1, nome2)
local teste = string.explode(listaTorcedores1,",")
end
return true
end