Ir para conteúdo
  • Cadastre-se

Posts Recomendados

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.

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

Script Top voce podia por uma storage para usarem a alavanca uma vez por dia assim podia fazer uma Daily Guild dugeon

1583290_1.png

Link para o post
Compartilhar em outros sites
29 minutos atrás, DevMorgan disse:

Script Top voce podia por uma storage para usarem a alavanca uma vez por dia assim podia fazer uma Daily Guild dugeon

Opa boa ideia ! 

Vou colocar aqui quando eu estiver com um tempinho ^^ .

@DevMorgan 
@Vodkart
Script Atualizado !

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
Em 04/08/2018 em 02:33, ozinimigotemi disse:

mt boa ideia daria pra fazer ao inves de guild os players precisam estar de Party ? seria tbm mt complicado passar pra rodar em 0.3.6 ?gostei mt e queria usar em meu servidor '-' claro que com os seus creditos s2'

 

1 minuto atrás, DigoleraBlow disse:

teria como passar pelo 0.4 ?


Não trabalho com versões antigas amigos :(

Link para o post
Compartilhar em outros sites
  • 1 month later...
4 horas atrás, 1xeuzinho1 disse:

esta indo somente com 1 player, e não com os 2.

 

Você colocou as Posições foram colocadas corretamente?

em:

needPos = {
        [1] = Position(1447, 915, 7), 		-- Position (where the player will click on the lever) and back position.
        [2] = Position(1449, 914, 7)
    },
Editado por dirso
escrevi errado (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Agora, 1xeuzinho1 disse:

esta indo somente com 1 player, e não com os 2.

 

Aqui está funcionando perfeitamente amigo ... 
Desculpe não estou recebendo notificação dessa publicação rs.
Tentem me marcar quando quiserem perguntar sobre o script !

Link para o post
Compartilhar em outros sites
15 horas atrás, dirso disse:

Você colocou as Posições foram colocadas corretamente?

em:


needPos = {
        [1] = Position(1447, 915, 7), 		-- Position (where the player will click on the lever) and back position.
        [2] = Position(1449, 914, 7)
    },

 

coloquei tudo certo, mas si eu clicar só com um player ele teleporta, n aparece a msg que precisa de 2 player.

Link para o post
Compartilhar em outros sites
Agora, 1xeuzinho1 disse:

coloquei tudo certo, mas si eu clicar só com um player ele teleporta, n aparece a msg que precisa de 2 player.

 

Ué... Aqui estava funcionando perfeitamente.
Alguém mais fez o teste?

@1xeuzinho1 Tem como tirar algumas fotos ?
Obrigado <3 

Link para o post
Compartilhar em outros sites

Tenta isto ?

Em (data/actions/scripts/Dungeon_Guild.lua):


Substitua:

addEvent(function()
			player:teleportTo(config.needPos[2])
			playerTile:teleportTo(config.needPos[2])
			player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
			playerTile:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
			player:setStorageValue(config.StorageDay, os.time() + config.Timer)
			playerTile:setStorageValue(config.StorageDay, os.time() + config.Timer)
		end, config.time*1000)

 

Por:

 

addEvent(function()
			player:teleportTo(config.needPos[i])
			playerTile:teleportTo(config.needPos[i])
			player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
			playerTile:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
			player:setStorageValue(config.StorageDay, os.time() + config.Timer)
			playerTile:setStorageValue(config.StorageDay, os.time() + config.Timer)
		end, config.time*1000)

 

Acredito que o erro está em deixar o indice do vetor fixo em [2], resultando apenas no envio do jogador da posição needPos[2], mesmo satisfazendo as condições.

 

Não manjo muito de lua, mas se a variável i for até o valor 2, deve resolver ?

Editado por dirso
Adicionei uma possível solução 2 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Em 10/09/2018 em 22:10, dirso disse:

Tenta isto ?

Em (data/actions/scripts/Dungeon_Guild.lua):


Substitua:


addEvent(function()
			player:teleportTo(config.needPos[2])
			playerTile:teleportTo(config.needPos[2])
			player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
			playerTile:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
			player:setStorageValue(config.StorageDay, os.time() + config.Timer)
			playerTile:setStorageValue(config.StorageDay, os.time() + config.Timer)
		end, config.time*1000)

 

Por:

 


addEvent(function()
			player:teleportTo(config.needPos[i])
			playerTile:teleportTo(config.needPos[i])
			player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
			playerTile:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
			player:setStorageValue(config.StorageDay, os.time() + config.Timer)
			playerTile:setStorageValue(config.StorageDay, os.time() + config.Timer)
		end, config.time*1000)

 

Acredito que o erro está em deixar o indice do vetor fixo em [2], resultando apenas no envio do jogador da posição needPos[2], mesmo satisfazendo as condições.

 

Não manjo muito de lua, mas se a variável i for até o valor 2, deve resolver ?

 

@1xeuzinho1

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 FeeTads
      Salve rapaziada do  TK e da comunidade de tibia Otserv.

      Recentemente alguns invejosos estão atacando servidores (DDoS), bugando o guilds de varios sites (tirando o lider e membros), assim buga a guild e muita coisa no OT.
      Eles vão até o teu servidor e se passam por "adm do deletebra", já ouvi a uns tempos algumas pessoas falando disso, mas como eu tinha contato isso caiu por terra facilmente, um deles foi o ADM brendo, dono do antigo strongerFusion, onde ele me contou toda essa história, essa foi a primeira vez que me foi relatado sobre isso, hoje vejo que está parecendo ser mais frequente.

      Caso qualquer pessoa entre no seu OT se passando pelo ADM do deletebra, favor entrar em contato comigo via discord: FeeTads#0246 Te ajudarei a resolver problemas que eles exploram sem cobrar nada por isso, para provar que não necessito atacar outros OT's para ter algum publico. Já tenho em mente quem pode ser essas pessoas, caso alguém tenha numero de telefone, nome real, ou alguma informação a mais dessas pessoas atacando e se passando por mim ou meu sócio, favor enviar no discord, irei atrás de resolver isso.

      Vou deixar aqui alguns tutoriais de coisas básicas para você conseguir proteger o seu site desses SQL injections, e mais algumas coisinhas, caso futuramente eu resolva outros bugs explorados, vou postar aqui as correções.


      Configurando CloudFlare (SSL) E subDominio (sv.seuIP)
       
      Após isso para que a pessoa não entre no site pelo (sv.seudominio.com.br) 
      abra o index.php da pasta raiz (está dentro da pasta html)
       
      if($_SERVER['HTTP_HOST'] == 'sv.seuDominio.com.br') { header("Location: https://seuDominio.com.br"); } if($_SERVER['HTTP_HOST'] == 'IP NUMÉRICO') { header("Location: https://seuDominio.com.br"); }
      Isso fará que quando a pessoa tente entrar no seu site usando meios não seguros (DNS only) ele redirecione pro seguro > proxiado pela cloudflare

      _________________________________________________________________________________________________________________________________________


      CORREÇÃO GUILDS.PHP / INJECTION SQL TIRANDO LIDER DA GUILD
       

      PROTEÇÕES PARA DIMINUIR EFEITOS DE DDoS
       
       
       
      Espero que isso ajude a muitos, a se prevenir de pessoas que tentam atacar OT's se passando por outros, ou até que vão la pedir pontos para jogar se não eles irão atacar, se prevenir de pessoas mal intencionadas.

      PS: Caso você tenha no seu site a pagine "house" e "tickets" recomendo retirar do seu site, pois há maneira de injetar SQL por esses arquivos.
      Vou postar em breve o tickets arrumado.

      Boa sorte rapaziada, se cuidem, e caso alguém faça isso, por favor entre em contato comigo.
       
       
       
       
    • Por Imperius
      Olá, pessoal! Acabei encontrando um script que tinha feito a um tempo atrás. Estou compartilhando aqui para quem quiser usar ou melhorar.
       
      É bem parecido com os outros sistemas de roleta, igual deste tópico: https://tibiaking.com/forums/topic/101557-action-cassino-roleta-de-items/
       
      Como funciona?
       
      O "Treasure Chest" é um item custom, onde o jogador têm a possibilidade de ganhar itens raros ou bem meia boca. Tudo dependerá da sorte.
       
      O jogador precisa tacar o treasure chest na bancada e acionar a alavanca. O treasure chest irá se transformar em vários itens de forma randômica no qual o jogador poderá ou não ganhar. No final, apenas um item é entregue ao jogador.
       
      Para entender melhor o seu funcionamento, segue o GIF abaixo:
       

       
       
      em data > actions > actions.xml
       
       
      em data > actions > scripts > crie um arquivo chamado leverTreasureChest.lua
       
       
      no banco de dados do servidor, adicione o seguinte código em "SQL":
       
       
       

      Também estou disponibilizando uma página PHP, para quem quiser usar no site do servidor. Na página tem informações sobre o funcionamento, quais são os possíveis prêmios e a lista de jogadores que ganharam os itens raros.
       

       
       
      Espero ter ajudado de alguma forma! : )
       
      treasure_chest.php
    • Por PokemonXdemon
      [Quest System]
       
       
      Estava ontem analisando minha base, aonde tinha várias quests em arquivos separados.
      Então, pq não organizar tudo em apenas um arquivo exemplo:
      Então fiz esse script, meio simples mas útil para organizar tudo.
       
       
      Agora vamos entender oq precisamos fazer!
       
       Uma pequena atualização,  agora fica em um lugar separado a configuração para ficar mais  fácil modificar.
      Agora pode adicionar o boost que voce deseja no pokemon.
       
      Bem é isso.
    • Por Anderson Sacani
      Venho publicar uma alteração que eu e minha equipe fizemos no script já existente do Canary.
      O arquivo do script se chama quest_system1.lua.
      Fizemos essa alteração, porque o sistema original não entregava chave com actionid ao jogador. A chave vinha com o código 0000, ou seja, não abria nenhuma porta.
      A alteração que fizemos foi justamente para arrumar esse bug, por tanto, agora quando o quest ter uma chave com actionid dentro do baú, o jogador receberá essa mesma chave com o actionid definido.
       
      local specialQuests = { -- {x = 32752, y = 32343, z = 14} [52167] = Storage.DreamersChallenge.Reward, -- {x = 32806, y = 32230, z = 11} [52003] = Storage.PitsOfInferno.WeaponReward, -- {x = 32311, y = 32211, z = 8} [51400] = Storage.ThievesGuild.Reward, [51324] = Storage.WrathoftheEmperor.mainReward, -- {x = 32232, y = 31066, z = 7} [51715] = Storage.SvargrondArena.RewardGreenhorn, -- {x = 32232, y = 31059, z = 7} [51716] = Storage.SvargrondArena.RewardScrapper, -- {x = 32232, y = 31052, z = 7} [51717] = Storage.SvargrondArena.RewardWarlord } local questsExperience = { [3101] = 1 -- dummy values } local questLog = { [8213] = Storage.HiddenCityOfBeregar.DefaultStart } local tutorialIds = { [50080] = 5, [50082] = 6, [50084] = 10, [50086] = 11 } local hotaQuest = { 50950, 50951, 50952, 50953, 50954, 50955 } local questSystem1 = Action() function questSystem1.onUse(player, item, fromPosition, target, toPosition, isHotkey) local storage = specialQuests[item.actionid] if not storage then storage = item.uid if storage > 65535 then return false end end if storage == 23644 or storage == 24632 or storage == 14338 then player:setStorageValue(Storage.SvargrondArena.PitDoor, -1) end if player:getStorageValue(storage) > 0 and player:getAccountType() < ACCOUNT_TYPE_GOD then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'The ' .. ItemType(item.itemid):getName() .. ' is empty.') return true end local function copyContainer(originalContainer, newContainer) for i = 0, originalContainer:getSize() - 1 do local originalItem = originalContainer:getItem(i) local newItem = Game.createItem(originalItem.itemid, originalItem.type) newItem:setActionId(originalItem:getActionId()) newItem:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, originalItem:getAttribute(ITEM_ATTRIBUTE_DESCRIPTION)) if originalItem:isContainer() then copyContainer(Container(originalItem.uid), Container(newItem.uid)) end newContainer:addItemEx(newItem) end end local items, reward = {} local size = item:isContainer() and item:getSize() or 0 if size == 0 then local actionId = item:getActionId() reward = Game.createItem(item.itemid, item.type) reward:setActionId(actionId) reward:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, item:getAttribute(ITEM_ATTRIBUTE_DESCRIPTION)) else local container = Container(item.uid) for i = 0, container:getSize() - 1 do local originalItem = container:getItem(i) local newItem = Game.createItem(originalItem.itemid, originalItem.type) newItem:setActionId(originalItem:getActionId()) newItem:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, originalItem:getAttribute(ITEM_ATTRIBUTE_DESCRIPTION)) if originalItem:isContainer() then copyContainer(Container(originalItem.uid), Container(newItem.uid)) end items[#items + 1] = newItem end if size == 1 then reward = items[1] end end local result = '' if reward then local ret = ItemType(reward.itemid) if ret:isRune() then result = ret:getArticle() .. ' ' .. ret:getName() .. ' (' .. reward.type .. ' charges)' elseif ret:isStackable() and reward:getCount() > 1 then result = reward:getCount() .. ' ' .. ret:getPluralName() elseif ret:getArticle() ~= '' then result = ret:getArticle() .. ' ' .. ret:getName() else result = ret:getName() end else if size > 20 then reward = Game.createItem(item.itemid, 1) elseif size > 8 then reward = Game.createItem(2854, 1) else reward = Game.createItem(2853, 1) end for i = 1, size do local tmp = items[i] if reward:addItemEx(tmp) ~= RETURNVALUE_NOERROR then Spdlog.warn("[questSystem1.onUse] - Could not add quest reward to container") end end local ret = ItemType(reward.itemid) result = ret:getArticle() .. ' ' .. ret:getName() end if player:addItemEx(reward) ~= RETURNVALUE_NOERROR then local weight = reward:getWeight() if player:getFreeCapacity() < weight then player:sendCancelMessage(string.format('You have found %s weighing %.2f oz. You have no capacity.', result, (weight / 100))) else player:sendCancelMessage('You have found ' .. result .. ', but you have no room to take it.') end return true end if questsExperience[storage] then player:addExperience(questsExperience[storage], true) end if questLog[storage] then player:setStorageValue(questLog[storage], 1) end if tutorialIds[storage] then player:sendTutorial(tutorialIds[storage]) if item.uid == 50080 then player:setStorageValue(Storage.RookgaardTutorialIsland.SantiagoNpcGreetStorage, 3) end end if isInArray(hotaQuest, item.uid) then if player:getStorageValue(Storage.TheAncientTombs.DefaultStart) ~= 1 then player:setStorageValue(Storage.TheAncientTombs.DefaultStart, 1) end end player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You have found ' .. result .. '.') player:setStorageValue(storage, 1) return true end for index, value in pairs(specialQuests) do questSystem1:aid(index) end questSystem1:aid(2000) questSystem1:register()  
    • Por Anderson Sacani
      local config = { scrollId = 14758, premiumDays = 30, } local days = config.premiumDays local premiumScroll = Action() function premiumScroll.onUse(player, item, fromPosition, target, toPosition, isHotkey) player:addPremiumDays(days) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Voce recebeu " .. days .. " dias de conta premium.") item:remove(1) addEvent(function() if player:isPlayer() then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "No total voce tem " .. player:getPremiumDays() .. " dias de conta premium.") end end, 2500) return true end premiumScroll:id(config.scrollId) premiumScroll:register() Percebi que alguns servidores estão vindo sem o script do premium scroll, então criei esse script para adicionar 30 dias de premium na conta do jogador que usar o premium scroll.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo