Ir para conteúdo
  • Cadastre-se

(Resolvido)Arena Que Só Pode Haver Um Player Por Vez. Ajude-me e Torne Meu Projeto Mais Perto De Ser Inaugurado


Ir para solução Resolvido por Wise,

Posts Recomendados

mesmo eu ainda não ter ido para a arena quando clico sobre a alavanca aparece que ja tem player fazendo a quest.

Não vejo erros nos scripts, tudo coincide.

Você está usando essa mesma global storage em outros scripts?

Tente alterar os valores dos dois tipos de storages (global e storage), colocando os mesmos nas duas tabelas de ambos os scripts. É a única possibilidade aparente..que essa global storage já esteja sendo usada, já que não há erros.

 

no final da arena faça um portal para onde ira pegar o premio, faça uma sala com cara de sala de espera e faça os players esperarem o restante dos minutos na sala do premio

Desnecessário, na minha opinião.

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

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
  • Respostas 35
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Seguinte, remova todos os scripts relacionados a essa sua arena, pra evitar possíveis erros. Remova também o monstro da arena pelo RME, não vai ser necessário. Adicione esse script ao arquivo da sua alavanca (action script): -- Coded by Suicide local tab = {     boss = "Infernatil", -- "Monster Name"     storages = {27771, 27772}, -- {globalstorage, storage}     apos = {x=1882, y=2080, z=14}, -- pos x, y, z que o player será teleportado ao puxar a alavanca     rangex = {x=123, y=456, z=7}, -

falha minha, aqui estão as funções que faltavam: só colocar elas no começo do script logo abaixo da tabela que deve funcionar perfeito function isOnSameFloor(fromPos, toPos) return fromPos.z == toPos.z and true or false end function isEven(arg) return arg % 2 == 0 and true or false end Edit: essas funções fazem parte de uma lib nova que to fazendo pra postar em breve, não era pra elas terem vazado tão cedo e por isso não tão da maneira correta como deveriam mas em todo caso eu confio no e

data/creaturescripts/scripts/Login.lua   tente adicionar isso antes do ultimo return true       if getGlobalStorageValue(cid, 55554) == 1 then         setGlobalStorageValue(cid, 55554, -1)     end

Recomendo escutar o Suicide, agora que estou sem pressa vi que aquele script do klipstyle está cheio de falhas. Além do fato de ter essa coisa da espera.

Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta!

 

NÃO CLIQUE AQUI!

NEM AQUI!

________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

A imaginação é mais importante que o conhecimento.” Albert Einstein

Link para o post
Compartilhar em outros sites

 

Não vejo erros nos scripts, tudo coincide.

Você está usando essa mesma global storage em outros scripts?

Tente alterar os valores dos dois tipos de storages (global e storage), colocando os mesmos nas duas tabelas de ambos os scripts. É a única possibilidade aparente..que essa global storage já esteja sendo usada, já que não há erros.

 certo, vou tentar refazer aqui.

mas teria como adicionar a função do tempo junto a esse seu script?

realmente ele é mais interessante para a proposta da minha quest, mas é fundamental que tenha um tempo limite para o player fazer a quest.

 

Uma dúvida? o bosse será sumonado automaticamente ou terei que colocar ele no mapa pelo rme?

 

obrigado até aqui.

abraços!

 

 

TESTADO E APROVADO.

 

mudei a storage e deu certo. acho que já havia essa storage em meu ot.

e também ja vi que o monstro tem que ser colocado pelo rme.

 

só me resta agora a questão do tempo e se possível adicionar uma storage definitiva depois que o player matar o boss para que so seja possivel receber os itens uma vez. pois não quero que o player mate o boos varias vezes e receba o item diversas vezes. pois é um item raro que só podera ser conseguido uma vez.

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

Se prepara, tem uma porrada de coisa:

No script da alavanca:

local tab = {
storages = {55554, 55553}, -- {globalstorage, storage},
pos = {x=1882, y=2080, z=14}, -- pos x, y, z que o player será teleportado
temple = {x=1882, y=2080, z=14}, -- pos x, y, z do templo que o player será teleportado no final do tempo
msgs = {"E que comecem os jogos!!", "Há alguém fazendo a Quest."}, -- menssagens {"ao puxar", "aguardando"}
mins = {10} -- Minutos que ele ficará na sala
}
 
function onUse(cid, item, frompos, item2, topos)
if getGlobalStorageValue(tab.storages[1]) < 1 and getPlayerStorageValue(cid, tab.storages[2]) ~= 0 then
local function onTimeEnd(cid)
if getPlayerStorageValue(cid, tab.storages[2]) ~= 0 then
doTeleportThing(cid, tab.temple)
setGlobalStorageValue(tab.storages[1], -1)
end
return true
end
addEvent(function() onTimeEnd(cid) end,tab.mins[1]*60*1000)
setGlobalStorageValue(tab.storages[1], 1)
setPlayerStorageValue(cid, tab.storages[2], 1)
doTeleportThing(cid, tab.pos)
doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, tab.msgs[1])
else
doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, tab.msgs[2])
end
 
return true
end

Em movements:

Suicide me disse uma coisa que não tinha visto, por isso não é necessário o uso de movements...

Creature scripts:

local tab = {
    storages = {55554, 55553}, -- {globalstorage, storage},
    boss = "Infernatil", -- "Monster Name",
    reward = {2160, 50}, -- a recompensa {itemid, count},
    msg = "Parabéns, você conseguiu sobreviver e recebeu sua recompensa."
}
 
function onKill(cid, target, lastHit)
    if getCreatureName(target) == tab.boss and getPlayerStorageValue(cid, tab.storages[2]) > 0 then
        setGlobalStorageValue(tab.storages[1], -1)
        setPlayerStorageValue(cid, tab.storages[2], 0)
        doPlayerAddItem(cid, tab.reward[1], tab.reward[2])
        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
        doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, tab.msg)
    end
    
    return true
end
 
function onDeath(cid)
    if getPlayerStorageValue(cid, tab.storages[2]) > 0 then
        setGlobalStorageValue(tab.storages[1], -1)
        setPlayerStorageValue(cid, tab.storages[2], -1)
    end
    
    return true
end
 
function onLogout(cid)
    if getPlayerStorageValue(cid, tab.storages[2]) > 0 then
        setGlobalStorageValue(tab.storages[1], -1)
        setPlayerStorageValue(cid, tab.storages[2], -1)
        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
    end
    
    return true
end

Não testei, mas acho que tá funcionando. Lembrando que quem sair pelo portal não poderá mais voltar, então ponha o portal em um lugar que não tenha como ele passar pelo boss e ir direto pelo portal...

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

Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta!

 

NÃO CLIQUE AQUI!

NEM AQUI!

________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

A imaginação é mais importante que o conhecimento.” Albert Einstein

Link para o post
Compartilhar em outros sites

ta dando esse erro matheus

 

 

data/actions/scripts/arena.lua:18 attempt to perform arithmetic on global 'mins'  <a nil value>

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 10victory10
      Ola amigos! Bem... eu tou com um grave problema no meu Arena Svargrond Quest!
       
      Obs.: Não vou sacanear quem me ajudar! Eu logarei todos os dias pra reputa-lo até alcançar os 15 dias!
       
       - O problema é que eu até consigo comprar a permissão pelo NPC Halvar e passo pela porta, mas quando entro no teleport de Action ID: 42300 o personagem apenas fica em cima do teleport e aparece a seguinte mensagem de erro no distro:
       

       
       Obs.: Se eu sumonar uma das criaturas da primeira room da arena eu consigo fazer toda a quest, pegar o prêmio e o goblet!
       
       - Ou seja, o problema está apenas no teleport de Action ID: 42300 (Teleport responsável para iniciar a arena).
       
      - E como o erro aponta para o arquivo arenaroom.lua lá vai ele:
       



       
      |
      |
      '--> Distro: TFS 0.3.7.0. [9.60].
       
       
       - Eu já chequei e os 3 teleports para iniciar a arena estão com o Action ID: 42300! O que pode ser então?
  • Estatísticas dos Fóruns

    96844
    Tópicos
    519597
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo