Ir para conteúdo
  • Cadastre-se

(Resolvido)Adicionar mais horarios nesse evento


Ir para solução Resolvido por zipter98,

Posts Recomendados

Tudo bem galera espero que sim . Então coloquei ese systema de torneio no meo servidor deo tudo certinho só que eo queria adicionar mais horarios pq só tem 1 horario para o evento acontecer .

 

se alguem poder me ajudar agradeço des de jah  e do 2 REEP ++

 

O Link do Systema que to usando \/

 

http://www.tibiaking.com/forum/topic/42722-pokemon-torneio-system/

Link para o post
Compartilhar em outros sites

O tópico foi movido para a área correta, preste mais atenção da próxima vez!

Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680

Este tópico foi movido:

De: "OTServSuporte OTServSuporte de Scripts"

Para: "OTServSuporte OTServSuporte de Servidores Derivados"

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
  • Solução

Muda a lib do sistema pra essa:

torneio = {
    awardTournament = 2160,---- Premio
    awardAmount = 10,---- quantia do Premio
    playerTemple = {x = 1096, y = 1009, z = 7}, ---- posiçao do Templo
    tournamentFight = {x = 909, y = 978, z = 7}, ----- Area (Mapa) do torneio
    area = {fromx = 899, fromy = 968, fromz = 7, tox = 919, toy = 989, toz= 7},---- fromx = 899, fromy = 968, fromz = 7 : posiçao superior a esquerda do Mapa do torneio /// tox = 919, toy = 989, toz= 7 : Posiçao inferior direito do Mapa do Torneio
    waitPlace = {x = 992, y = 998, z = 7}, ---- Sala de Espera (Coloque No-logout na area)
    waitArea = {fromx = 987, fromy = 993, fromz = 7, tox = 997, toy = 1003, toz= 7}, ---- fromx = 899, fromy = 968, fromz = 7 : posiçao superior a esquerda do Mapa Sala de espera /// tox = 919, toy = 989, toz= 7 : Posiçao inferior direito do Mapa sala de espera
    horarios = {{"11:30:00", "11:35:00"}, {"horario_que_começa_inscrições", "horário_que_começa_batalha"}, {"horario_que_começa_inscrições", "horário_que_começa_batalha"}},
    price = 10000, ------ Custo para se inscrever no torneio
}
 
function getPlayersInArea(area)
    local players = {}
    for x = area.fromx,area.tox do
        for y = area.fromy,area.toy do
            for z = area.fromz,area.toz do
                local m = getTopCreature({x=x, y=y, z=z}).uid
                if m ~= 0 and isPlayer(m) then
                    table.insert(players, m)
                end
            end
        end
    end
    return players
end
Muda a tag do globalevent pra essa:
<globalevent name="TournamentStart" time="11:35" event="script" value="Torneio.lua"/>
<globalevent name="TournamentStart2" time="horário_que_começa_batalha" event="script" value="Torneio.lua"/>
<globalevent name="TournamentStart3" time="horário_que_começa_batalha" event="script" value="Torneio.lua"/>

E assim vai.

Muda o script do NPC pra esse:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
    if(not npcHandler:isFocused(cid)) then
        return false
    end
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
    if msgcontains(msg, 'torneio') or msgcontains(msg, 'enter') then
        selfSay('Você quer participar do torneio por ['..torneio.price..'] dollars? [Sim/Yes]', cid)
        talkState[talkUser] = 2
    elseif talkState[talkUser] == 2 then
        if msgcontains(msg, 'yes') or msgcontains(msg, 'sim') then
            for i = 1, #torneio.horarios do    
                if os.date("%X") > torneio.horarios[i][1] and os.date("%X") < torneio.horarios[i][2] then    
                    if doPlayerRemoveMoney(cid, torneio.price) then
                        doTeleportThing(cid, torneio.waitPlace)
                        setPlayerStorageValue(cid,130130,1)
                        doPlayerSendTextMessage(cid, 21, "Bem-vindo, esta é a sala de espera, você espera aqui enquanto o torneio não começa. hora de início: {"..torneio.horarios[i][2].."}.")
                        talkState[talkUser] = 0
                        return true
                    else
                        selfSay('Voce nao Tem Dinheiro ('..torneio.price..').', cid)
                        talkState[talkUser] = 0
                        return true
                    end
                end
            end
            selfSay('As inscrições para o torneio terminaram. Espere até o próximo.', cid)
            talkState[talkUser] = 0
            return true
        else
            selfSay('Voce nao quer participar do Torneio? OK, quando quiser, venha até mim!', cid)
            talkState[talkUser] = 0
            return true
        end
    end
    return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Se não tiver entendido como adiciona novos horários, só avisar que eu te explico.
Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Zipter EO fiz oque vc falo mais deo ese Erro no distro 

 

 
[12/01/2015 18:18:24] data/actions/scripts/evolution.lua:4: table index is nil
[12/01/2015 18:18:24] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/evolution.lua)
[12/01/2015 18:18:24] data/lib/Torneio.lua:10: '}' expected (to close '{' at line 1) near 'price'
[12/01/2015 18:18:24] [Error - LuaScriptInterface::loadFile] data/lib/Torneio.lua:10: '}' expected (to close '{' at line 1) near 'price'
[12/01/2015 18:18:24] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[12/01/2015 18:18:24] [Error - LuaScriptInterface::loadFile] data/lib/Torneio.lua:10: '}' expected (to close '{' at line 1) near 'price'
[12/01/2015 18:18:24] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[12/01/2015 18:18:25] [Error - LuaScriptInterface::loadFile] data/lib/Torneio.lua:10: '}' expected (to close '{' at line 1) near 'price'
[12/01/2015 18:18:25] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[12/01/2015 18:18:25] [Error - LuaScriptInterface::loadFile] data/lib/Torneio.lua:10: '}' expected (to close '{' at line 1) near 'price'
[12/01/2015 18:18:25] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
 
Link para o post
Compartilhar em outros sites

troca essa linha aki :

horarios = {{"11:30:00", "11:35:00"}, {"horario_que_começa_inscrições", "horário_que_começa_batalha"}, {"horario_que_começa_inscrições", "horário_que_começa_batalha"}}, 


 

 

Link para o post
Compartilhar em outros sites

Ops, falta de atenção minha, hehe. Já editei meu comentário anterior com a correção. Só trocar sua lib pela nova.

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

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Zipter Como prometido te dei os 2 rep , só que configurei as cordenadas tudo certinho e talls e vi que os player vai pra sala de espera e dela não vai pra arena para começar a batalhar , configurei o horario para começar mais o horario passa e eles fica na sala de espera


function onTimer()
 
if #getPlayersInArea(torneio.area) > 1 then
doBroadcastMessage("[Torneio] O torneio desta vez não teve vencedor, tentar na próxima vez!") return true end
 
for _, pid in ipairs(getPlayersInArea(torneio.waitArea)) do  
doTeleportThing(pid, torneio.tournamentFight)
 
doPlayerSendTextMessage(pid, 21, "[Torneio] O torneio começou, e que vença o melhor ! HEHEHEHE.")
end
return true
end
 
GLOBALEVENTS /\
Editado por allanzinh (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Ao invés de colocar todos os horários em uma única tag, tente colocar cada um em uma tag diferente. Por exemplo:

<globalevent name="TournamentStart" time="11:35" event="script" value="Torneio.lua"/>
<globalevent name="TournamentStart2" time="horário_que_começa_batalha" event="script" value="Torneio.lua"/>
<globalevent name="TournamentStart3" time="horário_que_começa_batalha" event="script" value="Torneio.lua"/>

E assim vai.

edit: definitivamente, é desse jeito que vai funcionar. tinha esquecido que em globalevent só pode configurar um horário por tag :P

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

não respondo pms solicitando suporte em programação/scripting

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.

  • Conteúdo Similar

    • Por Etherious
      INFORMAÇÕES:
       TFS : 0.4
       
      Olá galera, venho aqui na esperança de encontrar alguém que possa desenvolver esse sistema de torneio um pouco complexo pra min, creio que irá ajudar a muitos outros também, irei explicar detalhe por detalhe:     LEVEL PARA ENTRAR NO TORNEIO :   O torneio será dividido em leveis, tais como:   100 ao 199, 200 ao 399, 400 ao 599, 600 ao 800.   Exemplos: (Torneio 1x1 de level 100 ao 199 irá começar 17:00) (Torneio 1x1 de level 200 ao 399 irá começar 17:30) (Torneio 1x1 de level 400 ao 599 irá começar 18:00) (Torneio 1x1 de level 600 ao 801 irá começar 18:30)   Mínimo de participantes: 10 Máximo de participantes: 50   COMANDOS : O torneio poderá ser aberto com o comando :  /torneio open  Fechado com o comando:  /torneio close. Para o player se registrar ele devera falar !torneio   AUTOMÁTICO : Ele será automático abrindo, no dia e horário programado   SALA DE ESPERA :  Vai ter uma sala de espera onde os player iram esperar.   INFORMAÇÕES :   Ao torneio ser aberto os jogadores poderão participar dizendo o comando !torneio (precisam estar em área pz) ou cancelar a participação dizendo !torneio leave. Quando o jogador participar do evento após dizer o comando, o player permanecerá parado, aguardando o início do evento que terá duração de 5 minutos de espera. Após passar os 5 minutos de cadastramento o evento é fechado e os jogadores serão teleportados para uma sala de espera. Assim, iniciando o sorteio, pegando 2 jogadores aleatórios dentro da sala e colocado em uma arena de combate. Após um dos dois morrer, é posto outra pessoa de dentro da sala de espera pra lutar com o vencedor, e assim vai... Ao se manter o último participante na arena, ou seja, o ganhador, ele  será o vencedor.   ENTREGA DE PREMIO :   1 º LUGAR  2 º LUGAR 3 º LUGAR   e mais os 2 últimos que morreram receberão uma recompensa. Recompensa de primeiro, segundo e terceiro lugar. Com tudo isso o ganhador é teleportado pro templo e a seguinte broadcast é ativada:   [Torneio LvL 100 ao 199]: [Primeiro Lugar/Recompensa] - Fulano, Nome Do Premio  ||| [segundo Lugar/Recompensa] - Ciclano, Nome Do Premio  ||| [Terceiro Lugar/Recompensa] - Beltrano, Nome Do Premio.  
      ESPERO A COLABORAÇÃO DE VOCÊS  TIBIAKING-ANOS, para me ajudar nesse projeto estarei sempre ATUALIZANDO o tópico, caso eu ache scripts que sejam compatíveis para essa ideia. por favor espero a ajuda de vocês. e sei que juntos vamos conseguir..
    • Por Lokozoido
      Olá galera do TK,estou com um problema,o meu sistema de torneio na hora de inicia o torneio,nascem todos juntos,eu queria que que os players nascessem aleatoriamente na arena do torneio,alguem ai sabe como posso fazer isso?
      Script do torneio na pasta lib
       
      torneio = {
      awardTournament = 2152, ---moeda usada para entra no torneio--
      awardAmount = 150, -- quantidade de moeda que o player vai ganhar ao vencer o torneio--
      playerTemple = {x = 1038, y = 1035, z = 7}, --pra onde vai o player quando morrer ?--
      tournamentFight = {x = 1229, y = 1778, z = 7}, --centro da arena torneio combate-- {x = 1229, y = 1778, z = 7}
      area = {fromx = 1203, fromy = 1756, fromz = 7, tox = 1247, toy = 1799, toz= 7},--canto acima direito da arena combate-canto esquerdo abaixo da arena combate-- {x = 1247, y = 1799, z = 7}
      waitPlace = {x = 1222, y = 1806, z = 7},  --centro da sala de espera-- {x = 1222, y = 1806, z = 7}
      waitArea = {fromx = 1207, fromy = 1796, fromz = 7, tox = 1236, toy = 1816, toz= 7}, -- {x = 1207, y = 1796, z = 7} | {x = 1236, y = 1816, z = 7}
      startHour1 = "08:45:00", --horario do aviso?--
      endHour1 = "09:00:00",--horario que começa?--
      startHour2 = "12:14:00",--horario do aviso?--
      endHour2 = "12:29:00",--horario do aviso?--
      startHour3 = "18:44:00",--horario do aviso?--
      endHour3 = "18:59:00",--horario do aviso?--
      startHour4 = "22:44:00",--horario do aviso?--
      endHour4 = "22:59:00",--horario do aviso?--
      price = 200000,--valor para entrar no torneio ? 500 dollar no caso--
      revivePoke = 12344,--aqui é revive se tiver e se não tiver não precisa mexer--
      }
      function getPlayersInArea(area)
      local players = {}
      for x = area.fromx,area.tox do
      for y = area.fromy,area.toy do
      for z = area.fromz,area.toz do
      local m = getTopCreature({x=x, y=y, z=z}).uid
      if m ~= 1 and isPlayer(m) then
      table.insert(players, m)
      end
      end
      end
      end
      return players
      end
    • Por Banker
      Olá pessoal!, Hoje vim pedir à voces, para editarem para min esse Script do Torneio...
       
      Gostaria que, para quando um Player Ganhasse o Torneio aparecer o Nick dele ao Invés de : "Jovem Treinador"
       
      Script :  
       
    • Por RenanPhellip
      Olá galera, venho aqui na esperança de encontrar alguém que possa desenvolver esse sistema um pouco complexo pra min, creio que irá ajudar a muitos outros também, irei explicar detalhe por detalhe:   O torneio será dividido em leveis, tais como: 100 ao 199, 200 ao 399, 400 ao 599, 600 ao 800.   Exemplos: (Torneio 1x1 de level 100 ao 199 irá começar 17:00) (Torneio 1x1 de level 200 ao 399 irá começar 17:30) (Torneio 1x1 de level 400 ao 599 irá começar 18:00) (Torneio 1x1 de level 600 ao 800 irá começar 18:30)   Mínimo de participantes: 10 Máximo de participantes: 30   O torneio poderá ser aberto com o comando /torneio open e fechado com o comando /torneio close (O torneio poderá ser aberto por globalevent também). Ao torneio ser aberto os jogadores poderão participar dizendo o comando !torneio join (precisam estar em área pz) ou cancelar a participação dizendo !torneio leave. Quando o jogador participar do evento após dizer o comando, o player permanecerá parado, aguardando o início do evento que terá duração de 5 minutos de espera. Após passar os 5 minutos de cadastramento o evento é fechado e os jogadores serão teleportados para uma sala de espera. Assim, iniciando o sorteio, pegando 2 jogadores aleatórios dentro da sala e colocado em uma arena de combate. Após um dos dois morrer, é posto outra pessoa de dentro da sala de espera pra lutar com o vencedor, e assim vai... Ao se manter o último participante na arena, ou seja, o ganhador, ele e mais os 2 últimos que morreram receberão uma recompensa. Recompensa de primeiro, segundo e terceiro lugar. Com tudo isso o ganhador é teleportado pro templo e a seguinte broadcast é ativada:   [Torneio LvL 100 ao 199]: [Primeiro Lugar/Recompensa] - Fulano, Nome Do Premio  ||| [segundo Lugar/Recompensa] - Ciclano, Nome Do Premio  ||| [Terceiro Lugar/Recompensa] - Beltrano, Nome Do Premio.   Acho difícil mas se alguém tiver paciência e tempo pra desenvolver este sistema eu ficaria muito grato.    (Já pesquisei por vários scripts, a maioria é pra pokemon e eu queria algo relacionado a derivados como DBO, NTO ou até mesmo Tibia).
    • Por Hadagalberto Jr.
      Estou criando um sistema de torneio pro meu server.
      Do tipo 2X2 ate só ficar 1 player.
      O torneio vai ser entre 8 players, 4 batalhas primeiro. Depois os players ganhadores passarão por portas(que so podem ser abertas quando so tiver um player em cada arena) para mais combates: 4 Players em 2 batalhas. Os ganhadores dessas 2 batalhas irão duelar entre si. O ganhador passa por uma porta em que terá o prêmio.
      Então: O NPC teleporta somente 8 players para 4 arenas aleatoriamente, os players tem que ser +150.
      Quero também uma porta que só abre se tiver com 1 player na arena.
      Obrigado
  • Estatísticas dos Fóruns

    96831
    Tópicos
    519564
    Posts
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo