Ir para conteúdo
  • Cadastre-se

Posts Recomendados

O script que venho trazer é um bem simples que pode ser usado para fazer muitas coisas interessantes com ele, como Quest ... talvez uma Hunt em que somente um player possa ficar nela.

Mas fique tranquilo esse script bloqueará a passagem de outro player apenas se tiver outro no local demarcado! Ou seja, se o local que você marcou ficar vazio, outro player pode entrar.

Então vamos direto ao ponto:

Vá em data/actions/script duplique um arquivo e renomeie para apenasumplayer e cole o script nele.

 

Citar

function onUse(cid, item, fromPosition, itemEx, toPosition)
local area1 = {x = 892, y = 979, z = 9}
local area2 = {x = 906, y = 1040, z = 9}
local posquest = {x = 899, y = 1035, z = 9}
if #getPlayerInArea(area1, area2) > 0 then
    doPlayerSendTextMessage(cid, 20, "Tem um player na quest, espere sua vez!")
        return true
    else
    doTeleportThing(cid, posquest)
        doPlayerSendTextMessage(cid, 20, "Boa Sorte!")
        return false
    end
    end

 

Explicação:

area1: E onde você deve colocar a coordenada do começo da área de onde você quer demarcar para onde somente 1 player poderá ficar.

Obs: Essa coordenada tem que ser uma que fique na parte superior e no canto esquerdo do mapa.

 

area2: É onde você deve colocar a coordenada do final da área de onde você quer demarcar.

Obs: Essa coordenada tem que ser uma que fique na parte inferior e do canto direito do mapa.

 

posquest: É o local para onde o player será teletransportado ao usar uma alavanca por exemplo que tenha a ActionID deste Script.

Obs: É aconselhável que você coloque a ActionID deste script em uma alavanca para evitar transtornos.

E as frases já da para se entender e podem ser editadas a seu gosto!

 

Instalação da Action e como usar:

Vá em data/actions e abra o arquivo actions.xml e adicione nele.

<action actionid="4500" event="script" value="apenasumplayer.lua"/>

Para usa-lo é simples, como dei a sugestão da alavanca, abra seu RME dê 2 clicks na alavanca e coloque a ActionID 4500.

Faça bom uso!

~ Se ajudei +Rep

sheele_schere__akame_ga_kill__minimalist

~ Sheele

Link para o post
Compartilhar em outros sites

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

Como você está usando funções de servidores 0.4, creio que tenha a função globalstorage... Seria mais fácil do que permitir somente que o player limite-se a área x, mas ainda assim muito obrigado pelo conteúdo.

Bruno Carvalho / Ex-Administrador TibiaKing

[email protected]

 

Em 26/12/2016 em 03:47, Spraypaint disse:

A força da alienação vem dessa fragilidade dos indivíduos, quando apenas conseguem identificar o que os separa e não o que os une.

-miltinho

 

wMwSJFE.png?1

 

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 thelifeofpbion
      [Esses dias criei um tópico pedindo isso, ninguém respondeu. Mas consegui criar juntando alguns scripts que tinha aqui]
      Basicamente é uma action que clica em algum lugar e limpa uma determinada área.

      <action actionid="XXXX" event="script" value="Limpa_area.lua"/>


      Limpa_area.lua
       



      Abraços ?
    • Por Pepeco
      • Mining System •
      Vim aqui disponibilizar o mining, não é tão avançado como o de outros mas ele é totalmente automático tanto para colocar items quanto para vender os items (alavanca). É uma script simples e fácil de entender, podendo ter alterações com pessoas que não tem muito experiencia em lua. Mesmo que ele seja simples, o forum esta morrendo, pretendo fazer updates nele, caso alguém tenha alguma ideia do que possa fazer, só deixar um comentário.
       
      • Explicação •
      › Mining_Config
      config = { Level = 8, Axe_Skill = 10, Paredes = {5646,5640,5645,5639,5644,5648}, } -- Level = Level necessario para minerar -- Axe_Skill = Skill de axe necessaria para poder minerar -- Paredes = Paredes que vao ser mineradas › Mining_Items
      config = { [1] = {Item = 2157, Random_min = 1, Random2_min = nil, Random_max = 3, Random2_max = nil, Count = 2, Special_Storage = nil, Magic_Effect = nil, Count_Shop = nil, Money_Shop = nil}, -- Gold Nugget } -- Random_min = A chance de cair o item em math.random -- Random2_min = Essa chance é menor, ou seja, mais dificil de cair. -- Random_max = É a chance maxima -- Random2_max = A mesma coisa que o de cima -- Count = A quantidade maxima que pode cair, é aleatorio -- Special_Storage = Caso voce queira que de alguma storage, para ver quantos players ja conseguiram e etc.. -- Magic_Effect = Caso queira que de algum magic effect diferente, se for nil, será o padrao. -- Count_Shop = Quantidade necessaria para poder vender o item no shop (alavanca) -- Money_Shop = Quanto que o item vai custar, por unidade ou seja, se eu colocar Count_Shop = 100 e Money_Shop = 2000, vai ser 100 * 2000. -- No final que tem esse "--" é o nome do item, é melhor se organizar assim, pois se ficar muitos items e voce querer fazer alguma manutenção, facilita muito.  
      Bom, eu acho que é isso, não tem mais nada para se explicar. Então vamos para o script.
       
      Data/lib
       
      Data/actions/scripts
      Data/actions -- Abra o actions.xml
      <action itemid="id do item" script="nome do arquivo"/>  
      Data/actions/scripts -- Esse aqui é o shop, não é obrigatório.
      Data/actions -- Abra o actions.xml
      <action actionid="id da action" script="nome do arquivo"/>  
      Caso tenha gostado, deixe seu REP+, ajuda e motiva muito trazer conteúdo para o forum.
       
    • Por lordzetros
      Olá pessoal da comunidade de Tibia!
         Bom, hoje trouxe um pequeno e simples script, mas que pode ajudar muita gente. Vi alguns posts referindo aos NPCs que trocam determinados itens por outros, então tive a ideia de fazer algo que possa ter uma função semelhante e que funcione de uma maneira rápida. Fique à vontade em utilizá-la da maneira que quiser.
      Como funciona?
          O usuário vai usar a alavanca e irá adicionar um item em troca de outra item que você configurou no script. Em outras palavras, o usuário irá ganhar uma determinada quantidade de um item em troca de outra quantidade de um item diferente. (Tudo configurável)
      VERSÃO TESTADA: 8.60 - OTX
      -->  Começando...
      Crie um arquivo com nome de changeItem.lua no diretório data/actions/scripts/
         Logo após, adicione esse código dentro do arquivo criado:
      -- Script por Lordzetros para o forum Tibia King. local config = { itemNec = 2160, -- ID do item que necessita para efetuar a troca qtNec = 50, -- Quantidade do item que necessita para efetuar a troca itemNovo = 10137, -- ID do item que sera adicionado ao efetuar a troca qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca stor = 25869, -- Storage, ou seja, a numeracao que identificara se o usuario fez ou nao fez a quest ainda } function onUse(cid, item, fromPosition, itemEx, toPosition) pos = getPlayerPosition(cid) if getPlayerStorageValue(cid,config.stor) ~= -1 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"So eh permitido fazer a troca de itens apenas uma vez!") doSendMagicEffect(pos, CONST_ME_POFF) elseif getPlayerStorageValue(cid,config.stor) == -1 then if item.itemid == 1945 then if getPlayerItemCount(cid,config.itemNec) >= config.qtNec then doPlayerAddItem(cid, config.itemNovo,config.qtNova) doPlayerRemoveItem(cid,config.itemNec,config.qtNec) doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de trocar "..config.qtNec.." "..getItemNameById(config.itemNec).." por "..config.qtNova.." "..getItemNameById(config.itemNovo)..".") doSendMagicEffect(pos, CONST_ME_HOLYAREA) setPlayerStorageValue(cid, config.stor, 1) else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Voce nao tem "..config.qtNec.." "..getItemNameById(config.itemNec).." para trocar por "..config.qtNova.." "..getItemNameById(config.itemNovo)..".") doSendMagicEffect(pos, CONST_ME_POFF) end end end end Em seguida, abra o arquivo com nome actions.xml que está localizada em data/actions/
          E adicione essa linha de código no mesmo:
      <action actionid="9139" event="script" value="changeItem.lua"/>    Preste atenção, pois o actionid será o número que irá colocar na alavanca em seu editor de mapa, ou seja, no caso acima está como 9139, logo, na alavanca terá que está como a seguinte imagem:

      Obs1.: Reparem que na imagem tem outro número destacado, que é o ID 1945, CERTIFIQUE-SE que a alavanca que irá utilizar no seu OT tenha esse mesmo ID, caso não tenha, basta mudar o número no código do script para o que irá utilizar no seu servidor.
      Obs2.: O código está configurado para que o usuário efetue a troca APENAS 1 VEZ, caso queira que ele troque quantas vezes quiser, apenas remova o seguinte comando do código:
       
      setPlayerStorageValue(cid, config.stor, 1) Obs3.: O resto que tinha que explicar está no próprio código, apenas faça um esforço de ler, agradeço.
       
       
        É isso, pessoal, espero que goste e aproveite. Como falei antes, é um código simples, pois comecei agora com Script, pretendo avançar no nível e funções que os mesmos desempenham, isso é só o começo, leve isso como uma prática de uma atividade para iniciante em scripts.   
    • Por Kemmlly
      Ha um tempo atrás eu procurei um Pet System bem simples pro meu servidor, e achei um muito bacana.
       
      TFS: 0.4
      Tibia: 8.6
       
      O sistema original foi postado pelo @Luquinha no tópico:
      O script funciona corretamente, eu fiz apenas algumas alterações e queria compartilhar caso vocês tenham as mesmas exigências que eu;
       
      * Ao tentar usar o PET em PZ não da mais erro na distro, sobe um efeito FAILED! no player e manda uma mensagem.
      * Agora cada PET precisa de um storage para ser usado, no meu caso, cada PET tem sua quest individual.
       
      O script modificado:
      function onUse(cid, item, frompos, item2, topos) local dolls = { [11256] = {pet = "Rat"}, [11207] = {pet = "Demon"}, [5791] = {pet = "Dragon"}, } local go = dolls[item.itemid] local summon = getCreatureSummons(cid) --------------------------------------------------- if not (getTilePzInfo(getCreaturePosition(cid))) then if #summon >= 1 then for _, pid in ipairs(summon) do doRemoveCreature(pid) doCreatureSay(cid, ""..go.pet..", Recuar!", TALKTYPE_ORANGE_1) end return true end if item.itemid == 5791 then if getPlayerStorageValue(cid, 6666) == 1 then doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid))) doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1) else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!") doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180) end end if item.itemid == 11256 then if getPlayerStorageValue(cid, 4444) == 1 then doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid))) doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1) else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!") doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180) end end if item.itemid == 11207 then if getPlayerStorageValue(cid, 4445) == 1 then doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid))) doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1) else doPlayerSendTextMessage(cid, 19, "Voce precisa fazer a quest para usar esse PET!") doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180) end end else doPlayerSendTextMessage(cid, 19, "Voce nao pode sumonar seu PET em Protect Zone!") doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180) return true end end Creditos: @Luquinha @Roksas @Kemmlly
    • Por Noninhouh
      Bom galera, hoje vim aqui trazer pra vocês um sisteminha bem legal que a PxG possui, no entanto, esse sistema eu fiz para um servidor de Tibia, então para vocês usarem em um derivado seria bom adapta-lo, devido a outros sistemas (como o fly do poketibia).
       
      Como seria esse sistema? Basicamente você digita o comando !walk e o seu personagem começará a andar na direção em que está virado até encontrar um obstáculo, ou até digitar o comando !walk novamente.
       
      Crie um arquivo chamado walk.lua em /data/talkactions/scripts/, e cole isso dentro:
       
      Em talkactions.xml coloque a tag:
      <talkaction words="!walk" event="script" value="walk.lua"/>  
      Em creaturescripts.xml, veja se já tem o evento "logout", caso não tenha coloque:
      <event type="logout" name="PlayerLogout" event="script" value="logout.lua"/>  
      Em /data/creaturescripts/scripts/, crie um arquivo chamando logout.lua (caso não tenha) e cole isso dentro:
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo