Ir para conteúdo
  • Cadastre-se

Posts Recomendados

O script determina quantos jogadores podem utilizar uma área por vez!

 

Preview:

vMTREXX.gif

 

m data/movements/scripts crie um arquivo com o nome tplimit.lua e dentro coloque:

 local c = {
        limit = 5, -- Limite de jogadores
        msgCancel = 'Tp bloqueado. Maximo de jogadores atingido', -- Mensagem quando o limite de jogadores estiver atingido

        area = {
          From = {x = 1069, y = 1027, z = 6}, -- Coordenada maxima superior esquerda
          To = {x = 1071, y = 1030, z = 7}, -- Coordenada minima inferior direita
        },

        pos = {x = 1070, y = 1030, z = 7}, -- Coordenada onde será teletransportado
    local function getPlayersInArea(fromPos, toPos)
      local t = {}

        for _, cid in ipairs(getPlayersOnline()) do
            if isInRange(getThingPos(cid), fromPos, toPos) then
                table.insert(t, cid)
            end
        end

      return t
    end

    function onStepIn(cid, item, fromPos, toPos)
        if isPlayer(cid) then

            if table.getn(getPlayersInArea(c.area.From, c.area.To)) < c.limit then
                doSendMagicEffect(fromPos, CONST_ME_TELEPORT)
                doTeleportThing(cid, c.pos)
                doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)

             else
               doPlayerSendCancel(cid, c.msgCancel)
               doTeleportThing(cid, toPos, false)
            end
        end

      return true
    end

 

Em movements.xml adicione a tag:

<movevent type="StepIn" uniqueid="ID" event="script" value="tplimit.lua"/>

 

Créditos:

Belerofonte

x1fCxnI.png

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
  • 3 weeks later...
Em 30/05/2020 em 19:22, .HuRRiKaNe disse:

O script determina quantos jogadores podem utilizar uma área por vez!

 

Preview:

vMTREXX.gif

 

m data/movements/scripts crie um arquivo com o nome tplimit.lua e dentro coloque:


 local c = {
        limit = 5, -- Limite de jogadores
        msgCancel = 'Tp bloqueado. Maximo de jogadores atingido', -- Mensagem quando o limite de jogadores estiver atingido

        area = {
          From = {x = 1069, y = 1027, z = 6}, -- Coordenada maxima superior esquerda
          To = {x = 1071, y = 1030, z = 7}, -- Coordenada minima inferior direita
        },

        pos = {x = 1070, y = 1030, z = 7}, -- Coordenada onde será teletransportado
    local function getPlayersInArea(fromPos, toPos)
      local t = {}

        for _, cid in ipairs(getPlayersOnline()) do
            if isInRange(getThingPos(cid), fromPos, toPos) then
                table.insert(t, cid)
            end
        end

      return t
    end

    function onStepIn(cid, item, fromPos, toPos)
        if isPlayer(cid) then

            if table.getn(getPlayersInArea(c.area.From, c.area.To)) < c.limit then
                doSendMagicEffect(fromPos, CONST_ME_TELEPORT)
                doTeleportThing(cid, c.pos)
                doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)

             else
               doPlayerSendCancel(cid, c.msgCancel)
               doTeleportThing(cid, toPos, false)
            end
        end

      return true
    end

 

Em movements.xml adicione a tag:


<movevent type="StepIn" uniqueid="ID" event="script" value="tplimit.lua"/>

 

Créditos:

Belerofonte

Alguem consegue adaptar esse script para TFS 1.3 ? :( 

Mt interessante o script, gostaria de utiliza-lo em meu ot ^.^

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 xWhiteWolf
      Fala galera do TK, criei esse anelzinho pra servers que procuram inovar.. 
      bom, oque ele faz??
      Simples, ele torna o usuário invisível.
      aff, mas já existe o stealth ring que faz isso!
      Sim mas dessa vez eu digo invisível mesmo, nenhum monstro ou players conseguirá te ver.
      que lixo, assim qualquer player vai poder ficar invisível e passar no meio dos monstros e players.. vai estragar o server
      Aí é que vc se engana porque o anel vem uma maldição, quem usar ele vai perdendo 3% de vida por segundo (ajustável) e só vai estragar o server se vc sair distribuindo o anel pra todos os players haha

      O anel em si possui duas versões, na primeira ele retira 3% de vida por segundo, na segunda ele adiciona uma condição que te deixa perdendo uma quantidade fixa de vida, CONTUDO, na segunda versão aparece uma poça de sangue cada vez que toma o dano então dá pros players te pegarem caso vc coloque o anel e resolva fugir kkkkk
      Vou chamar aqui de versão 1 e 2 respectivamente.
      OBS: ISSO É EM MOVEMENTS!

       
       
      1ª versão (sem sangue mas que tira 3% de vida por segundo):
      local invisible = createConditionObject(CONDITION_GAMEMASTER, -1, false, GAMEMASTER_INVISIBLE) local outfit = createConditionObject(CONDITION_INVISIBLE, -1, false) local percent = 3 local tempo = 1 -- em segundos function onEquip(cid, item, slot) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "By using this ring you will become fully invisible and lose health over time because of it's curse.") function lifesteal(cid) steal = addEvent(lifesteal, 1000*tempo, cid) if isCreature(cid) then doSendAnimatedText(getCreaturePos(cid), "-"..math.floor((getCreatureMaxHealth(cid) * (percent/100))), 144, cid) doCreatureAddHealth(cid, -math.floor(getCreatureMaxHealth(cid) * (percent/100))) end end lifesteal(cid) doAddCondition(cid, invisible) doAddCondition(cid, outfit) doSendMagicEffect(getCreaturePos(cid), 12) return true end function onDeEquip(cid, item, slot) doTransformItem(item.uid, 2165) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You're no longer receiving the special bonus..") stopEvent(steal) doRemoveCondition(cid, CONDITION_INVISIBLE) doSendMagicEffect(getCreaturePos(cid), 12) doRemoveCondition(cid, CONDITION_GAMEMASTER, GAMEMASTER_INVISIBLE) return true end   2ª versão (a cada 1,5 segundos ele te tira um dano configurado e deixa uma poça de sangue embaixo de vc facilitando que te identifiquem mesmo estando invisivel):
      local invisible = createConditionObject(CONDITION_GAMEMASTER, -1, false, GAMEMASTER_INVISIBLE) local outfit = createConditionObject(CONDITION_INVISIBLE, -1, false) local condition = createConditionObject(CONDITION_PHYSICAL) setConditionParam(condition, CONDITION_PARAM_DELAYED, TRUE) addDamageCondition(condition, -1, 1500, -500) function onEquip(cid, item, slot) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "By using this ring you will become fully invisible and lose health over time because of it's curse.") doAddCondition(cid, condition) doAddCondition(cid, invisible) doAddCondition(cid, outfit) doSendMagicEffect(getCreaturePos(cid), 12) return true end function onDeEquip(cid, item, slot) doTransformItem(item.uid, 2165) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You're no longer receiving the special bonus..") doRemoveCondition(cid, CONDITION_PHYSICAL) doRemoveCondition(cid, CONDITION_INVISIBLE) doSendMagicEffect(getCreaturePos(cid), 12) doRemoveCondition(cid, CONDITION_GAMEMASTER, GAMEMASTER_INVISIBLE) return true end Agora edite no items.xml o stealth ring pra que ele seja infinito:
      <item id="2202" article="a" name="stealth ring"> <attribute key="weight" value="100" /> <attribute key="slotType" value="ring" /> <attribute key="transformDeEquipTo" value="2165" /> </item> e em movements.xml adicione essas linhas:
      <movevent type="Equip" itemid="2202" slot="ring" event="script" value="stealth.lua"/> <movevent type="DeEquip" itemid="2202" slot="ring" event="script" value="stealth.lua"/> Editando:
      Na primeira versão vc pode alterar as seguintes coisas que estão em colorido:
      local invisible = createConditionObject(CONDITION_GAMEMASTER, -1, false, GAMEMASTER_INVISIBLE)
      local outfit = createConditionObject(CONDITION_INVISIBLE, -1, false)
      local percent = 3
      local tempo = 1 -- em segundos
       
      em vermelho é o tempo que dura a invisibilidade... -1 é infinito
      em azul é a porcentagem de vida que perde por tempo
      em verde é o tempo em que se perde vida.. nesse caso a cada 1 segundo perde 3%
       
      Na segunda versão vc pode editar as mesmas coisas do primeiro só que o tempo e o dano pelo tempo estão na condition:
       
      local condition = createConditionObject(CONDITION_PHYSICAL)
      setConditionParam(condition, CONDITION_PARAM_DELAYED, TRUE)
      addDamageCondition(condition, -1, 1500, -500)
       
      em vermelho é o numero de vezes que vai tirar vida. Mais uma vez -1 significa infinito (infinito até remover o anel)
      em azul é o dano que vc toma a cada tempo (lembre-se de deixar sempre um - na frente se não ele vai adicionar vida)
      em verde é o tempo em que se perde vida.. nesse caso a cada 1 segundo e meio retira 500 de vida
       
       
      Bom, é isso.. um script simples mas que vai ajudar muita gente pelo fato de usar conditions não tão comuns e de uma forma diferente haha
    • Por Henrique Gaudard
      Bug da door
       
      Olá pessoal, hoje venho trazer um script pra vocês, que traz uma solução de um bug que está detonando muitos servidores e dando muita dor de cabeça! Visto que tem sido recorrente que muitos servidores, tem sido nukados, principalmente os derivados, digo isso porque é minha praia... Trata-se da door de level crashando o servidor, o nuker, ao dar use na door, ficar dentro dela, taca muitos itens (geralmente moeda e dolar), e ao sair, ela se fechará e pronto! Crashou o servidor!
       
      Funcionamento: soluciona o bug, e ainda o item que o nuker tacar, se ele sair da door e ela se fechar, ele perde os itens que ele tacar.
      Versão testada: TFS 0.4 - 8.60 (não garanto funcionamento em outras versões)
       
      A solução:
       
      Vá em data/movements/scripts, procuro por: "closingdoor.lua" e SUBSTITUA por:
       
      Como não é AddOn, é uma modificação de um script já existente, não é necessário adicionar tag!
      Espero que funcione no jogo de vocês, já que foi testado no meu projeto e deu certo!
       
      Obrigado ao @RicK Sanchez pelo vídeo provando a eficiência, o projeto dele se encontrava com o bug também!
       
      Se te ajudou? Rep+! Obrigado a todos até aqui!

      Video provando.mp4
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo