Ir para conteúdo

Tottin

Membro
  • Registro em

  • Última visita

  1. luanluciano93 reagiu a uma resposta no tópico: Sistema de Estoque para NPC's.
  2. Tottin alterou sua foto pessoal
  3. K1M3R49090 começou a seguir Tottin
  4. Tottin reagiu a uma resposta no tópico: [TFS 1.X] AntiBot
  5. Isso não é o problema no executavel do client em si, mas sim conflito da source do servidor com o client, aparentemente 1 deles está extendido e o outro não
  6. Miranha reagiu a uma resposta no tópico: Sistema de Estoque para NPC's.
  7. Vai no arquivo.lua da magia, ao invés de setar a position do efeito antes de iniciar o for, define essa position dentro do for, então sempre que executar o for, ele vai pegar a posição atual do player e rodar o efeito nessa posição.
  8. Tottin reagiu a uma resposta no tópico: [MyAAC] Plugin Auction System
  9. Tottin postou uma resposta no tópico em Suporte OTServer Derivados
    @hiquezerah Abre o arquivo da lib, vai na linha 110, nela contém 1 caractere inesperado, deleta ele e esse erro vai estar resolvido.
  10. Tottin reagiu a uma resposta no tópico: [MyAAC] Sistema de Troca de Vocação
  11. Cat reagiu a uma resposta no tópico: Sistema de Estoque para NPC's.
  12. Tottin reagiu a uma resposta no tópico: Sistema de Estoque para NPC's.
  13. Vodkart reagiu a uma resposta no tópico: Sistema de Estoque para NPC's.
  14. Tottin reagiu a uma resposta no tópico: Sistema de Estoque para NPC's.
  15. Sobre a limitação gerada por utilizar storage, sim de fato com o tempo pode ser tornar 1 problema. Porém sobre o bug de vender por X preço e recomprar mais barato, ele na verdade não existe, a não ser que o usuário cause esse bug. Basicamente, na tabela dos items é definido o preço base de compra e o preço de venda, o preço de compra nunca será aumentado, indiferente da quantidade desse item no estoque, ele vai apenas reduzir o preço, se o player vender 1000 unidades de 1 única vez, ele iria vender as 1000 unidades pelo preço 10, e quando fosse comprar, iria pagar 20 por cada unidade. Então, a não ser que a pessoa defina o preço de compra superior ao preço de venda, esse bug eu acredito que não iria acontecer. Mas em geral, obrigado pelo feedback.
  16. Wakon reagiu a uma resposta no tópico: Sistema de Estoque para NPC's.
  17. LeoTK reagiu a uma resposta no tópico: Sistema de Estoque para NPC's.
  18. Cat reagiu a uma resposta no tópico: Sistema de Estoque para NPC's.
  19. O estoque não reseta com o server save, a única forma de alterar o estoque seria comprando os items que o npc tem disponível para venda. O tópico já foi criado na área de sistemas para tfs 0.x
  20. Yan Liima reagiu a uma resposta no tópico: Sistema de Estoque para NPC's.
  21. Vodkart reagiu a uma resposta no tópico: Sistema de Estoque para NPC's.
  22. Kyle Bellini reagiu a uma resposta no tópico: Sistema de Estoque para NPC's.
  23. Explicação do Sistema Recentemente foi levantada uma ideia de Sistema no Discord da Academia de Programação: O sistema consiste em dar maior liberdade pro mercado e tirar a parte monótona dos NPCS que basicamente sempre vendem/compram tudo ao mesmo preço, assim ficando muito longe da realidade de 1 verdadeiro vendedor. A ideia é que o NPC venda produtos com base no que ele tenha em estoque, logo para ele vender 1 Blusa ele 1° irá precisar comprá-la de alguém. Exemplificando: O NPC só irá vender aquilo que comprar, se ele comprar 1 Blusa ele irá disponibilizar para vender 1 Blusa, se ele comprar 7 Blusas, ele irá disponibilizar pra vender 7 Blusas, ao acabar elas, o seu estoque fica vazio e ele deixa de vender até comprar mais. O preço que o NPC paga pelo seus produtos é baseado na quantidade de seu estoque, e o valor que ele cobra ao vender os produtos é definido previamente em 1 configuração. Exemplo: Quanto + item do mesmo produto o NPC tiver, + barato ele irá pagar nos mesmos, visto que ele já possui 1 estoque grande e na teoria esse produto não é um produto que possui 1 saída muito fácil. Ao mesmo tempo, quanto menor a quantidade de 1 mesmo produto em seu estoque, mais caro ele irá pagar, já que seu estoque sobre aquele produto é pequeno, o que indica que: Ou ele é muito raro, ou ele vende muito fácil, por isso o NPC irá demonstrar + interesse por ele. O preço que o NPC cobra é definido previamente e pode ser alterado sempre que desejar. Abaixo, o preço de 1 Pearl Shield que o NPC não possui em estoque: E agora, após o NPC ter comprado 10 Shields do mesmo: Enfim, agora que o sistema já foi previamente explicado, vamos a instalação: 1º Vá para data/lib/ e crie 1 arquivo chamado npc_system.lua, nele você irá adicionar o seguinte código: 2º Agora vá para data/npcs, crie 1 arquivo chamado: negociante.xml, nele você irá adicionar o seguinte código: 3º Agora vá para data/npcs/scripts, crie 1 arquivo chamado: negociante.lua, nele você irá adicionar o seguinte código: Instalação finalizada, as áreas configuráveis do sistema estão informadas na lib. Créditos: Academia de Programação: Por ter levantado a ideia do sistema. @Endless: Por ter ajudado em uma questão de lógica. E a mim por ter feito. (Eu acho). Informações adicionais: -> O sistema foi testado e não apresentou problemas, porém se vierem a encontrar falhas, favor reportar para que eu possa manter o tópico atualizado/corrigido. -> Eu faço correções no sistema caso esteja errado, mas não faço adaptações pro seu servidor. Caso queira variações do sistema, favor enviar seu pedido no discord da Academia de Programação, ou em meu privado: Admin#9865.
  24. Tottin reagiu a uma resposta no tópico: Instalando MyAAC em sua Máquina.
  25. Tottin postou uma resposta no tópico em Sistemas, Mods & Funções .lua
    Mano não é por nada, mas o tópico é de 2014, se tu tiver interesse em alguma alteração pra esse sistema, cria 1 novo tópico explicando o objetivo da script, ve se alguém faz pra você, ou então acessa o discord da academia e pede suporte por lá, até mesmo anuncia no classificados.
  26. Troca essa parte da script: if (isPlayer(target)) then doPlayerSendCancel(cid, "This spell can only be used in Player.") return false end por esta: ifnot (isPlayer(target)) then doPlayerSendCancel(cid, "This spell can only be used in Player.") return false end
  27. Deu editei lá denovo, e sim somente quem bater no boss vai receber a storage, mesmo que esteja perto ou na party, não irá receber se não atacar.
  28. Tenta denovo, editei ali, estava faltando o fechamento de um if.
  29. Resolvendo seu problema onde ao matar o monstro só quem fragava recebia o storage: local tps = { ["hyaena"] = {pos = {x=349, y=1103, z=15}, toPos = {x = 518, y = 840, z = 7}, time = 10, storage = 46000}, } local storage = 46000 local function removeTp(tp) local t = getTileItemById(tp.pos, 5023).uid return t > 0 and doRemoveItem(t) and doSendMagicEffect(tp.pos, CONST_ME_POFF) end function onDeath(cid, corpse, deathList, frompos, topos) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(5023, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) for _, check in pairs(deathList) do if isPlayer(check) then setPlayerStorageValue(check, tp.storage, 5) end end end return true end registra no creaturescripts: <event type="death" name="Storage" event="script" value="seuarquivo.lua"/> registra no arquivo.xml do boss: <script> <event name="Storage"/> </script>
  30. Mas se o evento onDeath só ativa em monstros cujo tiveram a tag da script registrada (me corrija se eu estiver errado), não seria 1 tanto quanto desnecessário adicionar uma checagem pra ver se o monstro morto deve ou não ativar a script de autoloot, sendo que bastaria não registrar a tag nos monstros que você não quer que ative a script. Claro que a situação mudaria se a função fosse de onKill.
  31. Isso tudo vai variar da forma com que você quer fazer seu script, sua dúvida principal era sobre como trabalhar em cima da defesa do shield. E isso como mencionei acima pode ser feito da seguinte forma, utilizando a função: getItemAttribute(uid,'defense') Pra checar se o item é 1 shield, você pode utilizar uma função que o mock disponibilizou já faz um bom tempo: local function isShield(uid) -- Function by Mock the bear. uid = uid or 0 if getItemWeaponType(uid) == 5 then return true end return false end Com isso você vai ter todas informações necessárias pra fazer seu script trabalhar em cima da defesa do shield que estiver equipado, e claro vai poder checar se o item que você está "pegando" a defesa, é de fato um shield ou não.
  32. Cara vou te passar um código que fiz pra 0.4, deve funcionar pra 0.36 também: código lua: local config = { itemid = 1451, itemid2 = 1451, itemid3 = 1451, pos = {x=718, y=1534, z=10}, pos2 = {x= 107, y=1507, z=8}, pos3 = {x= 111, y=1507, z=8}, chance = 50 } function onTime(interval) if config.chance >= math.random(1, 100) then doBroadcastMessage("Os items X Y Z foram spawnados!") --- Caso queira que mande uma mensagem pra todos players online, ja deixei pronto. doCreateItem(config.itemid, 1, config.pos) doCreateItem(config.itemid1, 1, config.pos2) doCreateItem(config.itemid2, 1, config.pos3) end return true end tag no xml: <globalevent name="nomedoevento" time="04:05:00" event="script" value="nomedoarquivo.lua"/>

Informação Importante

Confirmação de Termo