Ir para conteúdo

Dwarfer

Membro
  • Registro em

  • Última visita

Tudo que Dwarfer postou

  1. Dwarfer postou uma resposta no tópico em Sistemas, Mods & Funções .lua
    Crie a loja exatamente como está na imagem que vai funcionar.
  2. Dwarfer postou uma resposta no tópico em Sistemas, Mods & Funções .lua
    Acho que você tentou usar com menos de 3 monstros para algum rank, não foi? Altere a linha: local name = monsters[number][math.random(1, #monsters)] Para: local name = monsters[number][math.random(1, #monsters[number])]
  3. Sim, é só adicionar os nomes dos monstros nessa linha: local monsters = {'rat', 'dragon'} Procure a função setCreatureName ou semelhante (caso não tenha) e adicione à source do seu servidor. Depois compile e aí será possível trocar de nome. Eu tinha colocado para pescar somente no id de água igual a 493, já que a parte dos ids de água ali no seu script não servia para nada assim como outras coisas desnecessárias. Se você testar com o id 493 vai funcionar corretamente. Se quiser que funcione com todos os ids configurados em waterIds, utilize assim:
  4. @Infused De forma simples, use assim: (Não tive como testar) Para o sistema de pesca: Para o item que captura: Lembrando que não coloquei para aparecer o nome de quem pescou em cima do nome, pois você tem que ter a função que troca o nome do monstro. Procure aqui no mesmo TK e adicione-a ao seu servidor.
  5. Dwarfer postou uma resposta no tópico em Ferramentas OpenTibia
    Não
  6. Dwarfer postou uma resposta no tópico em Ferramentas OpenTibia
    Fala, galerinha. Estou disponibilizando um programinha bem simples (porém útil) que eu tinha guardado há um bom tempo aqui. Trata-se de um quest maker, ou seja, um criador de scripts.lua (TFS 0.3.6/0.4 e 1.x+) para, mais precisamente, baús de quests. O Dwarfer Quest Maker (DQM) pode ser muito útil tanto para iniciantes que lotam a seção de pedidos como "Baú que dá item somente uma vez" ou "Baú que checa se player tem quest e adiciona item" quanto para quem já tem certo conhecimento e necessita criar várias quests podendo fazê-las em segundos. De forma bem resumida, as seções do DQM são as seguintes: Version - Escolha a versão correta do seu script; Message and Effect - Custom: Personalize a mensagem que aparecerá quando o jogador fizer a quest; - Default: Utilize a mensagem padrão do DQM; - Msg type: Escolha um dos estilos de mensagens que o programa possui e que geralmente estão em data/lib/000-constant; - Effect: Escolha o efeito que aparecerá na posição do player quando o jogador fizer a quest; Conditions: Trata-se do que o jogador deve possuir para conseguir fazer a quest; - Storage: Configure o valor do storage que o jogador deve possuir para fazer a quest; - Vocations: Adicione as vocações que possuirão permissão de fazer a quest; - Level: Defina um level mínimo para o jogador fazer a quest; Storages: - Serão verificados (antes) e adicionados (depois) ao jogador assim que a quest for feita; Rewards: - Insira as recompensas que serão adicionadas na quest; Todas as informações necessárias para a utilização do programa são encontradas na aba "Instructions". Vou demonstrar o funcionamento como um exemplo: [PEDIDO]: "Gostaria de uma quest que somente sorcerers acima do level 50 possam fazer. As recompensas seriam 2 crystal coins e 1 plate armor. Ahh, e já ia me esquecendo, só pode ser feita uma única vez. Versão: TFS 0.4" Depois de clicar em "Open the chest": Para finalizar, coloque o action ID, o nome do arquivo e clique em "Get tag as reward". Depois disso é só copiar para o arquivo na sua pasta actions e pronto. Espero que seja útil Scan do arquivo Download do arquivo
  7. @rizen Em creaturescripts/scripts crie um arquivo.lua: local freeTownIDS = {1,2,3,4,5} -- ids das cidades free account local defaultTownID = 3 -- id da cidade para qual o player será teleportado function onLogin(cid) if not isPremium(cid) and (not isInArray(freeTownIDS, getPlayerTown(cid))) then doPlayerSetTown(cid, defaultTownID) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Your premium has expired.") end return true end Em creaturescripts.xml, adicione a tag: <event type="login" name="checkPremiumTown" event="script" value="NOMEDOARQUIVO.lua"/>
  8. @Magrao138 Caso você queira que isso ocorra somente em uma área específica, crie um arquivo.lua em movements/scripts e adicione isso: local removeableItems = {2160, 2148, 2152} -- ids dos itens que serão removidos function onAddItem(moveitem, tileitem, position) if not isInArray(removeableItems, moveitem.itemid) then return true end doRemoveItem(moveitem.uid, moveitem.type > 0 and moveitem.type or 1) return true end Em movements.xml, adicione a tag: <movevent type="AddItem" tileitem="1" actionid="ACTION_ID_DO_PISO" event="script" value="NOMEDOARQUIVO.lua"/> Edita ali o action id do piso e quando o player colocar os itens configurados em pisos com esse actionid, os itens serão removidos.
  9. @WorkedBox Em actions/scripts crie um arquivo.lua: No actions.xml, adicione a tag: <action actionid="ACTION_ID_DOS_CORPOS" script="NOMEDOARQUIVO.lua" /> Depois, é só colocar para verificar o storage do player, por exemplo, em um piso, em uma porta ou um NPC (tais scripts você encontra aqui no fórum) que dá acesso ao local desejado. No exemplo, coloquei o storage 87431, mas você pode alterar caso queira.
  10. @DboExplorer Caso se trate de TFS 0.4, fiz um exemplo simples para você. Como não sei onde está esse item e como você está fazendo para pegar suas informações, coloquei o exemplo da talkaction como verificando os atributos do item na mão esquerda do player. Primeiramente, adicione as seguintes funções na sua lib: Para a action, você pode fazer algo como: Para a talkaction: Ao falar !addon 1, trocará para o primeiro outfit adicionado ao item lá na action, !addon 2 o segundo e por aí vai. Como disse, fiz uma forma simplificada, a partir disso você consegue implementá-lo.
  11. local t = {[1499] = function(item) doSendMagicEffect(getThingPos(item.uid), CONST_ME_POFF) doRemoveItem(item.uid) end, [2782] = function(item) doTransformItem(item.uid, 2781) doDecayItem(item.uid) end} function onUse(cid, item, fromPosition, itemEx, toPosition) local x = t[itemEx.itemid] if x then x(itemEx) return true end return destroyItem(cid, itemEx, toPosition) end
  12. if getPlayerStorageValue(cid, 40300) == -1 then setPlayerStorageValue(cid, 40300, 1) else doPlayerSendTextMessage(cid, 18, "Você já possui o storage igual a 1") end Não tem complicação nenhuma. É só armazenar o VALOR do storage e depois verificar se o VALOR corresponde ao retornado por getPlayerStorageValue(). Apesar de ser desnecessário fazer com true ou false, como não sei com que finalidade você tá fazendo isso, você poderia fazer algo assim: if getBooleanFromString(getPlayerStorageValue(cid, 40300)) == true then doPlayerSendTextMessage(cid, 18, "Verdadeiro") else doPlayerSendTextMessage(cid, 18, "Falso") setPlayerStorageValue(cid, 40300, "true") end Ou somente verificar a própria string armazenada (qualquer string): if getPlayerStorageValue(cid, 40300) == "true" then doPlayerSendTextMessage(cid, 18, "Verdadeiro") else doPlayerSendTextMessage(cid, 18, "Falso") setPlayerStorageValue(cid, 40300, "true") end
  13. Em creaturescripts/scripts crie um arquivo.lua: function onDeath(cid, corpse, deathList) local killer = isCreature(deathList[1]) and (isPlayer(deathList[1]) and getPlayerName(deathList[1]) or getPlayerName(getCreatureMaster(deathList[1]))) or "Something" addEvent(doBroadcastMessage, 1, "WOW! "..killer.." has killed "..getCreatureName(cid).."!", MESSAGE_STATUS_WARNING) return true end No creaturescripts.xml: <event type="death" name="broadOnKill" event="script" value="NOMEDOARQUIVO.lua"/> No arquivo do monstro, antes de </monster>, adicione: <script> <event name="broadOnKill"/> </script> Para retirar dos monstros que você quer, é só retirar a parte do script referente a isso.
  14. Isso aí é um mod. Copia qualquer arquivo xml da pasta mods, cola isso dentro e pronto.
  15. Dwarfer postou uma resposta no tópico em Suporte Tibia OTServer
  16. Dwarfer postou uma resposta no tópico em Suporte Tibia OTServer
    Teste antes de perguntar, cara. pqp também einh..
  17. Dwarfer postou uma resposta no tópico em Suporte Tibia OTServer
    Fiz de uma forma simplificada para vocês. Em npcs/scripts crie um arquivo.lua: Como arquivo.xml base você pode utilizar esse, faça as mudanças que desejar. <?xml version="1.0" encoding="UTF-8"?> <npc name="Dwarfer" script="NOMEDOSEUARQUIVO.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="66"/> </npc> Para os outros npcs é só copiar a mesma coisa, mudar a ordem do npc em npcOrder para (2, 3, 4...), além das palavras-chave e dos textos enviados ao player.
  18. Em actions/scripts, crie um arquivo.lua: Em actions.xml, adicione a tag: <action actionid="ACTION_ID_DO_BAÚ" script="NOMEDOARQUIVO.lua" /> Esse baú trocará todos os pontos do player na moeda configurada em moedaID.
  19. Dwarfer postou uma resposta no tópico em Suporte Tibia OTServer
    Mas é isso, vai ser colocado um número fixo e não mais aleatório.
  20. Dwarfer postou uma resposta no tópico em Suporte Tibia OTServer
    A função que calcula a % aleatória que será adicionada é essa: function getper() local n = 1 for i=1,10 do n = n+math.random(0,10) if n < 8*i then break end end return n end Caso queira adicionar uma % fixa e se você não sabe modificar o script, de uma forma mais simples para você, altere para: function getper() return 1 end Onde 1 é a % adicionada.
  21. Fiz um mod aqui rapidinho, testa aí:
  22. Tá bem bagunçado isso aí carinha, na verdade não ia funcionar nada rsrsr. Testa assim: lib Em creaturescripts/scripts, crie um arquivo.lua: No login.lua, registre o evento: player:registerEvent("tptile_modal") No creaturescripts.xml, adicione a tag: <event type="modalwindow" name="tptile_modal" script="NOMEDOARQUIVO.lua"/> Em movements/scripts, crie um arquivo.lua (ou substitua pelo que tem dentro do arquivo que você já possui): No movements.xml, adicione a tag: <movevent event="StepIn" actionid="ACTION_ID_DO_PISO" script="NOMEDOARQUIVO.lua" />
  23. Em actions/scripts crie um arquivo.lua: No actions.xml: <action itemid="ID_DO_ITEM" script="NOMEDOARQUIVO.lua" />

Informação Importante

Confirmação de Termo