Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Muito obrigado amigo pela atenção uso tfs 1.3

Esses que você comento otg 11 aí eles tem mesmo os script, mais só o script da arena não funciona, deve ter mais completo o script aí não consigo

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

Top Posters In This Topic

https://github.com/otg-br/global/blob/main/data/creaturescripts/scripts/arenapvp.lua
https://github.com/otg-br/global/blob/main/data/actions/scripts/arena_pvp/arena2x2.lua
https://github.com/otg-br/global/tree/main/data

 

Se você não conseguir, eu tenho uma arena PvP para o TFS 1.x, mas está em casa. Estou no trabalho agora, mas assim que chegar em casa, enviarei o script completo.

Link para o post
Compartilhar em outros sites

Ok

2 horas atrás, GM Vortex disse:

https://github.com/otg-br/global/blob/main/data/creaturescripts/scripts/arenapvp.lua

https://github.com/otg-br/global/blob/main/data/actions/scripts/arena_pvp/arena2x2.lua

https://github.com/otg-br/global/tree/main/data

 

Se você não conseguir, eu tenho uma arena PvP para o TFS 1.x, mas está em casa. Estou no trabalho agora, mas assim que chegar em casa, enviarei o script completo.

Ok amigo se puder me mandar agradeço muito

Também tou serviço, em casa testo melhor obrigado.

Link para o post
Compartilhar em outros sites

 data/creaturescripts/scripts, 

pvparena.lua

local arena = {
    frompos = {x = 720, y = 660, z = 7},  -- Posição inicial da arena.
    topos = {x = 727, y = 666, z = 7},    -- Posição final da arena.
    exitpos = {x = 718, y = 664, z = 7},  -- Posição de teleporte ao sair da arena.
    exitpos2 = {x = 729, y = 664, z = 7}  -- Segunda posição de teleporte para um jogador específico.
}


-- Verifica se o jogador está dentro da arena
function isPlayerInArena(position)
    return position.x >= arena.frompos.x and position.x <= arena.topos.x and
           position.y >= arena.frompos.y and position.y <= arena.topos.y and
           position.z == arena.frompos.z
end


function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)
    local player = Player(cid)
    if player then
        local playerPos = player:getPosition()
        if isPlayerInArena(playerPos) then
            local killer = Player(lastHitKiller)
            if killer then
                killer:sendTextMessage(MESSAGE_STATUS_WARNING, "[Arena]: Parabéns, você venceu!")
                killer:teleportTo(arena.exitpos2)
            end

            player:setDropLoot(false)
            player:teleportTo(arena.exitpos)
            player:sendTextMessage(MESSAGE_STATUS_WARNING, "[Arena]: Você perdeu!")

           
            player:addHealth(player:getMaxHealth() + 65500)
            player:addMana(player:getMaxMana() + 65500)
        else
          
        end
    end

    return true
end

function onLogin(player)
    player:registerEvent("pvparena")
    return true
end

TAG XML.

<!-- pvp arena -->
	<event type="preparedeath" name="pvparena" script="pvparena.lua"/>
	<event type="login" name="pvparena_r" script="pvparena.lua"/>

data/actions/scripts.

pvparena.lua

function onUse(cid, item, frompos, item2, topos)
    local player = Player(cid)

    if iswar() then
        player:sendCancelMessage('Outra luta está em andamento.')
        return false
    end

    local poss1 = configs_arena.pos_tile1
    local poss2 = configs_arena.pos_tile2
    local pos1 = { x = poss1.x, y = poss1.y, z = poss1.z, stackpos = 255 }
    local pos2 = { x = poss2.x, y = poss2.y, z = poss2.z, stackpos = 255 }

    local uid1 = Tile(pos1):getTopCreature()
    local uid2 = Tile(pos2):getTopCreature()

    if item:getId() == 1945 then
        if not Player(uid1) or not Player(uid2) then
            player:say("Você precisa de dois jogadores para entrar na arena.", TALKTYPE_ORANGE_1)
            return false
        end

        if player:getLevel(uid1) < 50 or player:getLevel(uid2) < 50 then
            player:sendCancelMessage('Todos os jogadores precisam estar no mínimo no nível 50!')
            return false
        end

        start_arena(uid1.uid, uid2.uid) -- Assuming start_arena receives player UIDs
        return true
    end

    return false
end

TAG XML.

	<action uniqueid="1245" event="script" value="pvparena.lua"/>

data/lib.

pvparena.lua

configs_arena = {
    pos_tile1 = {x = 722, y = 658, z = 7},
    pos_tile2 = {x = 724, y = 658, z = 7},
    pos_dest_player1 = {x = 722, y = 663, z = 7},
    pos_dest_player2 = {x = 725, y = 663, z = 7},
    storage1 = 31000,
    storage2 = 31001,
    global_storage = 31000,
    pos_lose = {x = 718, y = 664, z = 7},
    pos_gain = {x = 729, y = 664, z = 7},
    pos_busy = {x = 718, y = 664, z = 7}
}

function iswar()
    return Game.getStorageValue(configs_arena.global_storage) == 1
end

function stop_arena(uid)
    local player = Player(uid)
    if player:getStorageValue(configs_arena.storage1) == 1 then
        player:addHealth(player:getMaxHealth())
        player:removeCondition(CONDITION_INFIGHT)
        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'A partida terminou empatada!')
        player:teleportTo(configs_arena.pos_busy)
        player:setStorageValue(configs_arena.storage2, -1)
    end
    return true
end

function start_arena(uid1, uid2)
    if iswar() then
        return false
    end

    local player1 = Player(uid1)
    local player2 = Player(uid2)

    if not(player1 and player2) then
        return false
    end

    if player1:getLevel() < 50 or player2:getLevel() < 50 then
        return false
    end

    player1:setStorageValue(configs_arena.storage2, 1)
    player2:setStorageValue(configs_arena.storage2, 1)

    player1:setStorageValue(configs_arena.storage1, addEvent(stop_arena, (5 * 60 * 1000), uid1))
    player2:setStorageValue(configs_arena.storage1, addEvent(stop_arena, (5 * 60 * 1000), uid2))

    player1:removeCondition(CONDITION_INFIGHT)
    player2:removeCondition(CONDITION_INFIGHT)

    player1:addHealth(player1:getMaxHealth())
    player2:addHealth(player2:getMaxHealth())

    player1:teleportTo(configs_arena.pos_dest_player1)
    player2:teleportTo(configs_arena.pos_dest_player2)

    Game.setStorageValue(configs_arena.global_storage, 1)

    player1:say("Fight!", TALKTYPE_MONSTER_SAY)
    player2:say("Fight!", TALKTYPE_MONSTER_SAY)

    return true
end

data/global.lua.

-- Arena Pvp.
dofile('data/lib/pvparena.lua')

Esses scripts foram originalmente desenvolvidos para o TFS 0.4 e adaptados por mim para funcionar no TFS 1.x. Eles foram testados e funcionam perfeitamente, sem problemas. Esses scripts são destinados ao uso na arena PvP, e é isso.

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 Under
      https://www.eternalglobal.online/
      Server Features
      Protocol 8.60 and 12.30 Features (working 100%) Bestiary -> Janela  Em Contrução para Client 8.60 ja funcional no servidor. Charm -> Janela Em Contrução para Client 8.60 ja funcional no servidor. Store -> Janela  Em construção para CLIENT 8.60 Quickloot -> Janela  Em Contrução para Client 8.60 ja funcional no servidor. Cast system Wrap system  Custom spawns loading syste WarSystem RaidSystem Offline Trainers Sala de Trainers Stamina Refil Itens Donate Boosted Boss Boosted Creature 5 Eventos Automaticos.
      12x Updates

      NEW ITEMS
      Umbral Items ,Cobra Items,Falcon Items,Warzone Items,Gnome Item

       
      NEW AREAS

      Issavi


       
      Roshamuul

      Oramond

      Cobras

       
       
      Falcons



       
      Warzone 1,2,3


      Warzones 4,5,6


       
       

       

       
       
       
       
       
       
    • Por lordzetros
      Introdução
         Estive procurando no fórum e não encontrei esse sistema de TP para versões com modal, aliás, até achei um semelhante, só que possuía algumas instabilidades e também com uma ideia de waypoints (que estava também fazendo dessa forma, mas não vem ao caso o motivo disso não ser viável no Tibia). O que trago aqui é algo mais simples, porém o necessário.
         O sistema de TP é muito importante em alguns servidores que fogem um pouco de RPG (não que seja exclusivamente para estes), ele possibilita viagens de um local para outro em instantes, como por exemplo, do Templo para o Depot ou para qualquer outra localização configurada no script (a seu gosto). Uma coisa adicional que coloquei no script, foi de listar também a house do jogador que utilizar o comando, onde você poderá configurar se será necessário pagar ou não para o mesmo ser teleportado, enfim, dê uma olhada no código depois, tá tudo comentado.
       
      Informações do sistema
      - Locais configuráveis
      - Configurável se é necessário pagar ou não para determinado local
      - Configurável a quantidade de dinheiro de cada local
      - Condições ao utilizar o comando (Protect Zone e tempo para utilizar o comando novamente)
      - É requisitado o jogador está possuindo a quantia necessária para o teleport
       
      Instalação
       
      1 - crie um arquivo chamado teleportSystem.lua em data/talkactions/scripts/ e cole o código abaixo:
       
      2 - Em seguida, cole este trecho de código em data/talkactions/talkactions.xml abaixo de algum semelhante:
       

      3 - Agora crie um arquivo chamado modalTpSystem.lua em data/creaturescripts/scripts/ e cole o código abaixo nele:
       
      4 - E para finalizar, cole este código em data/creaturescripts/creaturescripts.xml abaixo de um semelhante:
       
       
      Explicação do script
      A única coisa que você vai mexer é no teleportSystem, onde terá a opção de configurar os preços, locais, etc.
      Configurando as houses:

      houses_modal = Se será habilitado o player teleportar para a house dele
      house_pago = Se será pago o teleport para a house
      house_custo = Custo do teleport para a house, caso seja pago

      Configurando o local:

      nome = Nome do local a ser mostrado na janela
      pago = Se ele vai ser pago ou não, coloque false caso queira que não cobre nada do jogador
      custo = Caso tenha colocado como pago, o custo do teleport para o local
      pos = Posição do local (X,Y,Z)
       
      Quando for adicionar outro, copie esta mesma parte acima e altera o número [3] para [4] e os outros dados também, assim por diante.
      O restante também tá explicado no script, basta ler.
       
      Demonstração
      UTILIZE O COMANDO !fly

       
      Enfim, script simples, tem para outras versões, mas como falei, não tinha encontrado ainda para 1.x com esse funcionamento. Qualquer coisa, só comentar, .
  • Estatísticas dos Fóruns

    96847
    Tópicos
    519607
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo