Ir para conteúdo

Featured Replies

Postado

Alguem Sabe o porque de não estar funcionando esse npc?? E se possivel,alguem poderia me ajudar nesse sistema,só consigo fazer a partida uma vez,na segunda buga e nao da para andar!

Arquivo do npc

 

 

 

 

https://tibiaking.com/forums/topic/10346-sistema-futebol-com-torcida-e-juiz/

 

 

Sem título.png

juiz.luaFetching info...

Postado
  • Autor

-- Configurações Gerais

local config = {

-- Posição que o jogadores devem estar na hora de puxar a alavanca

posJogador1 = {x=233,y=85,z=7, stackpos=1},

posJogador2 = {x=233,y=86,z=7, stackpos=1},


-- Posição inicial dos jogadores na partida

posTeleporte1 = {x=234,y=96,z=7, stackpos=1},

posTeleporte2 = {x=242,y=96,z=7, stackpos=1},


posBola = {x=238,y=96,z=7, stackpos=1}, -- Posição inicial da bola


nomeNpc = "Juiz", -- Lembrando que o npc deve existir

posNpc = {x=238,y=91,z=7, stackpos=1}, -- Posição inicial do npc


gols = 5, -- Quantidade de gols para ganhar o jogo


tempoPrePartida = 2, -- Tempo de espera para começar a partida (segundos)


quantidadeTorcedores = 7, -- Para cada equipe


-- Posição inicial em que o script irá começar preencher com os torcedores

posTorcida1 = {x=230,y=101,z=7, stackpos=1},

posTorcida2 = {x=239,y=101,z=7, stackpos=1},


-- Posição dos gols

posGol1 = {

{x=230,y=95,z=7, stackpos=1},

{x=230,y=96,z=7, stackpos=1},

{x=230,y=97,z=7, stackpos=1},

{x=230,y=98,z=7, stackpos=1}

},

posGol2 = {

{x=246,y=95,z=7, stackpos=1},

{x=246,y=96,z=7, stackpos=1},

{x=246,y=97,z=7, stackpos=1},

{x=246,y=98,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,2000, 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, "Parabéns! Você ganhou a partida.")

doPlayerSendTextMessage(jogador1, MESSAGE_INFO_DESCR, "Lamento, mas você 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 troféu 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=76,y=165,z=7, stackpos=1}

config.posTorcida2 = {x=84,y=165,z=7, 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 é "..nome1..": "..placar[1].." e "..nome2..": "..placar[2].."."

addEvent(delayMsg,1000, msg)


msg = "A próxima rodada irá começar em cerca de "..config.tempoPrePartida.." segundos. Concentrem-se!"

addEvent(delayMsg,2000, msg)


addEvent(inicioJogo,3000+(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, "Parabéns! Você ganhou a partida.")

doPlayerSendTextMessage(jogador2, MESSAGE_INFO_DESCR, "Lamento, mas você 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 troféu 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=76,y=165,z=7, stackpos=1}

config.posTorcida2 = {x=84,y=165,z=7, 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 é "..nome1..": "..placar[1].." e "..nome2..": "..placar[2].."."

addEvent(delayMsg,1000, msg)


msg = "A próxima rodada irá começar em cerca de "..config.tempoPrePartida.." segundos. Concentrem-se!"

addEvent(delayMsg,2000, msg)


addEvent(inicioJogo,3000+(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 está 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 você precisa de outro player para começar 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 = "Saudações "..nome1.." e "..nome2..". Serei o juiz desta partida. Ganhará o primeiro a fazer "..config.gols.." gols."

addEvent(delayMsg,1000, msg)


msg = "A partida irá começar em cerca de "..config.tempoPrePartida.." segundos. Concentrem-se!"

addEvent(delayMsg,2000, 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 = 128,

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 = 128,

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,2000+(config.tempoPrePartida*1000))

eventoTorcida = addEvent(torcida,2000+(config.tempoPrePartida*1000), nome1, nome2)

eventoGol =  addEvent(testeGol,2000+(config.tempoPrePartida*1000), nome1, nome2)


local teste = string.explode(listaTorcedores1,",")


end


return true

end

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo