Tudo que Steeven postou
-
(Resolvido)[Resolvido] NPC que Troca Itens por Quantidade
Sim, os dois caminhos estão corretos, é que eu quero que o Player dê as barras em troca de moedas, cada barra por 5 moedas. Então troquei os ids do item que o player dá pelo o ID das barras e ele recebe as moedas. Isso.
-
absorbPercent em script?
Eu estou querendo criar umas potion que dê resistência. Percebi que em items.xml tem a tag "<attribute key="absorbPercentPhysical" value="3"/>". Queria saber se é possível isolar esta função em scripts para usar em uma potion por exemplo e como. Desde já agradeço!
-
(Resolvido)[Resolvido] NPC que Troca Itens por Quantidade
Muito obrigado mesmo, funcionou perfeitamente, eu só precisei mudar esta linha: doPlayerAddItem(cid, x.reward, msgcount[talkUser]) para >>> doPlayerAddItem(cid, x.reward, msgcount[talkUser]*5) Porque quando o player fala a quantidade, ele deve receber 5 moedas em troca das barras! Tudo rodando sem erros, muito obrigado mesmo!
-
(Resolvido)[Resolvido] NPC que Troca Itens por Quantidade
Servidor: The OTX Server Version 2.52 Eu queria uma ajudinha aqui com um NPC, pois não sei como criá-lo. É o seguinte; o NPC é de troca, mas preciso que ele troque itens de acordo com a quantidade estipulada pelo player. Exemplo: PLAYER: hi NPC: Olá PLAYER! Minha função aqui é trocar barras de bronze, prata, ouro ou mithril em suas respectivas moedas. Que tipo de troca deseja fazer? PLAYER: bronze (ou poderia ser prata, ouro ou mithril). NPC: Muito bem, cada barra corresponde a 5 moedas, quantas barras de bronze você quer trocar? PLAYER: 10 NPC: Aqui está suas 50 moedas de bronze. Volte sempre! 50 moedas porque cara barra vale 5 moedas, sendo que ali a troca foi 10, logo 10x5=50. Bem é isso, agradeço de coração quem puder me ajudar, é algo muito importante para o meu servidor. @Vodkart?
-
(Resolvido)Como usar getItemIdByName?
@Vodkart Eu acho que devia ter te avisado, que estou usando um "The OTX Server Version: (2.52 - 1557) - Codename: (Necron)". Quando usei o teu código, o servidor fechou sozinho, mas antes apareceu o erro no console: lua:341: attempt to call a string value. É justamente a linha em questão: return doPlayerSendTextMessage(cid,22,"O item gerado foi: "..getItemNameById(r)) Em fim, usei do jeito que você mandou e deu o mesmo erro OBRIGADO CARA, FUNCIONOU, EU AO INVÉS DE USAR NO RETURN, USEI COMO UM COMANDO SIMPLES E DEU CERTO SEM ERROS AGORA. OBRIGADO DE CORAÇÃO! VOCÊ FAZ PARTE DO MEU DREAM TEAM QUE SE DEUS QUISER AINDA VOU MONTAR! ABRAÇOS! ABAIXO SEGUE COMO RESOLVI: local items = { 2365, -- backpack of holding 10518, -- demon backpack 10016, -- batwing hat 2152 -- platinum coin } function onUse(cid, item, fromPosition, itemEx, toPosition) local r = items[math.random(#items)] doPlayerSendTextMessage(cid,22,"O item gerado foi: "..getItemNameById(r)) return true end
-
(Resolvido)Como usar getItemIdByName?
Bom, indo direto ao assunto, eu estou com um problema: Tenho uma tabela com os IDs dos itens. E quando dá use no item X, quero que selecione um item na tabela usando um math.random(1,4) Exemplo: local itemRandom = Items[math.random(1,4) Até aqui tudo bem, mas o meu problema se dá quando quero pegar este item da variável itemRandom e exibir o nome do item em uma mensagem. Imagino que devo usar getItemIdByName pegando o id da array itemRandom . A questão é que não sei como usar esse comando. Eu pensei nisso: local ItemsGenerator= { 2365, -- backpack of holding 10518, -- demon backpack 10016, -- batwing hat 2152 -- platinum coin } function onUse(cid, item, fromPosition, itemEx, toPosition) local itemRandom = ItemsGenerator[math.random(1,4) local itemName = getItemIdByName(itemRandom [, displayError = true]) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O item gerado foi " ..itemName ) return true end Mas obviamente não deu certo, alguém pode me apontar uma solução? Desde já agradeço muito! Desculpe, só lembrando que o nome exibido tem que ser o mesmo do item gerado na variável itemRandom . OBRIGADO!
-
É possível usar doBroadcastMessage no Movements?
Eu estou criando um castelo 24h no meu servidor, estou fazendo do zero e sozinho porque todos que tentei deu erro no meu OTX e não quero trocar para um TFS. Mas tive um problema que não consegui resolver... Eu quero que quando um player passar por um tile, anuncie para todo o servidor que ele passou por ali. Isso para avisar que o castelo está sendo invadido. Porém eu fiz isso no movements, parece não ser o local correto para se fazer isso. De toda forma segue o script que fiz usando o doBroadcastMessage em movements: Quem puder me ajudar agradeço desde já!
-
(Resolvido)Vida sempre 100
Muito obrigado, com o apontamento de vocês eu entendi que o meu problema era o oposto do citado por você @Brunds, era só colocar os códigos normais, para alguém que procura o mesmo que eu a solução é abrir protocolgame.cpp e substituir a função AddPlayerStats por essa: void ProtocolGame::AddPlayerStats(NetworkMessage_ptr msg) { msg->put<char>(0xA0); msg->put<uint16_t>(player->getHealth()); msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH)); msg->put<uint32_t>(uint32_t(player->getFreeCapacity() * 100)); uint64_t experience = player->getExperience(); if(experience > 0x7FFFFFFF) // client debugs after 2,147,483,647 exp msg->put<uint32_t>(0x7FFFFFFF); else msg->put<uint32_t>(experience); msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_LEVEL)); msg->put<char>(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT)); msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA)); msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA)); msg->put<char>(player->getPlayerInfo(PLAYERINFO_MAGICLEVEL)); msg->put<char>(player->getPlayerInfo(PLAYERINFO_MAGICLEVELPERCENT)); msg->put<char>(player->getPlayerInfo(PLAYERINFO_SOUL)); msg->put<uint16_t>(player->getStaminaMinutes()); }
-
(Resolvido)Vida sempre 100
Muito bom, já agradeço por me apontar o problema, mas pode me dizer onde está isso na source? Compilar eu consigo, mas não sei onde alterar. Já dei rep.
-
(Resolvido)Vida sempre 100
Então, eu estou com um problema no meu TFS 0.4. A vida e a mana estão mostrando 100/100, mesmo quando tem mais que isso. Eu achei que era bug das vocações e as removi, o bug continuou, removi a vocação vip até no creaturescripts e nada. O jogo continua o mesmo, mas mostrar sempre 100 é ruim pra quem joga. Se alguém puder me apontar pelos, uma luz agradeço!
- Script com tempo
-
Script com tempo
Olá galera! Eu queria saber algumas coisas, vou deixar o algoritmo do script, espero que alguém possa me ajudar e explicar, desde já agradeço! A idéia aqui é simple; eu uso determinado item na parede com a ActionID 1000 e em 10 segundos ela tranforma em outra exibindo uma animação na posição determina quando ela for transformada. Na Parede já transformada, eu uso o mesmo item e removo ela monstrando uma animação imediata. Prefiro que o Item que vou usar sobre a parede, esteja no Actions.xml como a Shovel, pick e etc... Obrigado e abraço a todos!
-
Promotion Scroll
Eu já havia feito um Premium Scroll simples, aí pensei: Por que não fazer um Promotion Scroll? Para fazer seu promotion scroll, você terá que ter um item que possar usar para quando o jogador usar este item, ele possa ser promovido. Como eu gosto de criar novos itens, fiz um com uma sprite nova, mas você pode usar um item que já exista, exemplo é o item com ID 12461, acredito que não seja usado no Tibia 8.6. Vamos ao que interessa: em data/actions/actions.xml cole está linha: Em vermelho é o ID do item que será o premium scroll Agora em data/actions/scripts/ crie um arquivo com o nome promotion_scroll.lua e cole o código abaixo dentro dele: De verde, é a mensagem que irá ser exibida para o jogador que tentar usar a promotion scroll e já for promotion De roxo, é a mensagem que irá ser exibida quando o jogador usar a promotion scroll. OBSERVAÇÃO: Para usar o promotion scroll é preciso ser premium. Não é preciso mudar mais nada além disso. Se já tem isto no fórum me perdoem, abraço a todos!
-
Simples Premium Scroll
Foi nada, é o orgulho de ser TK
-
Simples Premium Scroll
Este script é pequeno, simples e fácil de usar. O que faz? -Adiciona premius days (dias de premium) Utilidade? data/actions/scripts/ e crie um arquivo .lua com o nome que deseja (premium_scroll.lua). Nele adicione o código a seguir: De vermelho, são os dias de premium que será adicionado ao jogador que usar. De azul, é a mensagem enviada para o jogador que usou o item. Em data/actions/actions.xml adicione a linha: Em roxo, o ID do item que será o Premium Scroll. Você pode usar o que mais lhe agrada. Em negrito é o nome do seu arquivo criado em data/actions/scripts/. Descomplicado e funcional! Abraço a todos!
-
Mineração/Coleta (%)
Eu não sou bom scriptter, mas no que eu puder ajudar eu terei prazer.
-
Mineração/Coleta (%)
Hoje vou trazer um script que desenvolvi com ajuda de todos aqui do fórum, é meu primeiro tutorial e espero não estar fazendo nada de errado. O script é bem simples, mas funciona sem erros, pelo menos aqui. O que faz? -Você usa uma ferramenta para minerar em determinada pedra, de acordo com as chances você consegue extrair dela um minério como "iron ore" por exemplo. Lembrando que o item que você vai usar para minerar, tem de ser um item que você pode usar em outros, como a pick, shovel e outros... Utilidade? -Vai depender de você, em servidores com sistema de forja pode ser interessante, que é o meu caso. Script Em data/actions/scripts/ crie um arquivo .lua com o nome que deseja (ex.: ferramenta.lua) e cole o código a seguir dentro dele: Explicando >>> Eu utilizei 4 tipos diferentes de minério, Bronze, Silver, Gold e Mithril. Você pode utilizar quantos quiser. Roxo, corresponde as chance para cada minério, note que as chances de minerar bronze é 23%, prata é de 9%, ouro é de 7% e mithril é de 1%. Verde, é o ID do item sobre o qual você vai usar a ferramenta para minerar. Pode ser uma pedra o qualquer coisa que achar melhor. Azul, é o ID do item adicionado ao jogador quando ele conseguir extrair algum minério e a quantidade(129,1). Ótimo, mas como eu escolho com qual ferramenta minerar? Agora, você vai em data/actions/actions.xml e adicione esta linha: Em vermelho, é o ID da ferramenta usada para minerar. Uma alerta, este script está limitado a 100% não podendo ultrapassar esta margem, para uma porcentagem maior, altere esta função: math.random(1,100) <- mude o 100 para 200 ou mais. Se eu quiser usar só um minério? Como dito, eu usei 4 minérios, cada minério corresponde a esta função: Do if ao end corresponde a um minério. daí você pode diminuir ou adicionar minério tirando uma ou acrescentando uma função. Mas note que cada função corresponde a uma variável, no caso acima, é o bronze. Para acrescentar um minério, você terá que fazer uma variável correspondente e configurar seguindo os passos anteriores. O que mais posso fazer? Bem, você pode usa este script para uma coleta de madeira, basta usar uma ferramenta como o Axe e mudar o itemEx.itemid para o ID de uma árvore, e por fim no doPlayerAddItem(cid, 126,1) pôr o ID de da madeira a ser coletada. doPlayerAddItem(cid, Id-do-Item,quantidade). Espero ter ajudado! VLW!
-
[Pedido] Monstro que não ataca player com STORAGE
Sim , dei muita atenção a isto.
-
[Pedido] Monstro que não ataca player com STORAGE
Eu testei ambos e não deram erros, mas o monstro continua atacando.
-
[Pedido] Monstro que não ataca player com STORAGE
O título já diz tudo. É possível fazer um monstro não atacar um player que tenha feito uma quest? Se sim agradeceria quem! VLW!
-
[RESOLVIDO] Remover Item Premium
Joadson, eu testei e não funcionou, dizia que o end da linha 3 está no lugar errado, tente de todas as meneiras e até corrigi isto, mas não teve efeito algum. No entanto, resolvi o problema que sem sua ajuda seria impossível: Criei uma sala Premium com quests para recuperar os itens de quest (ITENS PREMIUM), em todo o SQM da sala, coloquei isto: Assim se o cara for free, será levado para o Templo da área free caso deslogue dentro da sala, ou ainda eu espalho este ACTIONID em pontos estratégicos de áreas PREMIUM evitando que os player andem por aí com itens premium. Como viu, este script também remove os itens PREMIUM e envia um aviso. Já nos baús da sala PREMIUM, eu fiz isto: 10000 é o STORAGE que você ganha quando perde os itens, 8000 é o STORAGE após fazer a quest (Clicar no baú). Como viu, precisa ter os dois para recuperar o item, resumindo: Você precisa ter feito a quest e ter perdido o item para poder recuperá-lo. Com este sistema sei que não terei mais problemas com os ITENS PREMIUM. Obrigado! Tudo de bom cara! Claro! Você sempre me ajudando muito! Até a próxima dúvida!
-
[RESOLVIDO] Remover Item Premium
Eu testei o script e ele funciona da seguinte maneira: 1 - A STORAGE 2025 é válida para toda conta. 2 - Depois de enviar a mensagem "Ohhh, você perdeu o item" uma vez, ele não envia novamente para nenhum char da conta por ser uma STORAGE pra conta. 3 - Se eu deixar o item no DP por exemplo, ou antes de deslogar guardar o item, ele não vai sumir.
-
[RESOLVIDO] Remover Item Premium
Preciso fazer uma pergunta: Este script; quando você loga e é free, você perde o item para sempre certo? Mas se você for Premium e tiver a STORAGE 2025, você recebe o item no login? E por fim; se você for premium e tiver a STORAGE 2025, você vai ganhar o item toda vez que deslogar e logar novamente? É o que me parece, o script está quase perfeito, mas se tiver este erro o povo vai ficar feliz. Toda forma vou esperar você responder para saber, você já está me ajudando muito cara! VLWZÃO!!! rep+
-
[RESOLVIDO] Remover Item Premium
O tem premium é da premium normal, nada de vip. É como as magias premium, só que é importante no login do char, checar se é premium ou free para retirar os itens premium se for free.
-
[RESOLVIDO] Remover Item Premium
Obrigado! Este script funcionou perfeitamente! Mas talvez eu não especifiquei direito: -Estou criando um server que tem itens novos e quero que somente premium use estes itens. Se a premium dele acabar, quando ele logar free, estes itens que poderá ser um helmet, legs, shield, weapon, ring, ammo, necklaces ou boots, devem ser desequipados, caso ele não tenha slot nas BPs que carregam, que o item vá parar no DP para evitar a perda do mesmo. Acho que seria um Creature/Script/login.lua. Para poder conseguir. Se puder me ajudar, terá minha eterna gratidão, porquê meu server não pode funcionar sem este sistema de Item Premium. Abração cara!