Jump to content

Tottin

Member
  • Content Count

    27
  • Joined

  • Last visited

  • Days Won

    2

Reputation Activity

  1. Like
    Tottin reacted to Breno Alves in [TFS 1.X] AntiBot   
    [Anti-Bot]

    Fiz esse sistema para o Thunder porém vou deixá-lo a parte nesse tópico aqui para quem quiser implementar em seu otserv.
    Lembrando que esse sistema é para TFS 1.X e qualquer sugestão/problema nesse sistema, deve ser reportado no GitHub.

    Crie um arquivo na pasta lib com o nome antibot.lua
    ANTIBOT = { prefix = "[AntiBot] ", questions = { {question = "Qual o ano que começou o COVID-19?", staticAnswer = true, answer = "2019"}, {question = "Qual seu skill atual de Sword?", skill = true, answer = SKILL_SWORD}, {question = "Qual seu skill atual de Club?", skill = true, answer = SKILL_CLUB}, {question = "Qual seu skill atual de Distance?", skill = true, answer = SKILL_DISTANCE}, {question = "Qual seu level atual?", answer = "level"}, {question = "Qual o dia de hoje?", answer = "day"}, }, playerQuestion = {}, messages = { time = "Você possui %s para responder a pergunta.", chat = "Esse chat só pode ser usado durante a verificação.", howAnswer = "Você deve responder somente a resposta, por exemplo: Qual o dia de hoje? Resposta: %d", correctAnswer = "Você acertou a pergunta. Obrigado.", incorrectAnswer = "Você errou a resposta, você ainda possui %d tentativas.", logout = "Você não pode deslogar enquanto hover uma verificação ativa.", }, punishment = { try = { max = 3, reason = "Quantidade excessiva de tentativas.", timePunishment = 1, -- In days players = {}, }, time = { maxTime = 180, -- In seconds reason = "Não respondeu a pergunta dentro do tempo estipulado.", timePunishment = 2, -- In days players = {}, }, }, verification = {40, 60}, -- in minutes } function ANTIBOT:addTry(playerId) local player = Player(playerId) if not player then return false end playerId = player:getId() if not ANTIBOT.punishment.try.players[playerId] then ANTIBOT.punishment.try.players[playerId] = 0 end ANTIBOT.punishment.try.players[playerId] = ANTIBOT.punishment.try.players[playerId] + 1 if ANTIBOT.punishment.try.players[playerId] and ANTIBOT.punishment.try.players[playerId] >= ANTIBOT.punishment.try.max then sendChannelMessage(13, TALKTYPE_CHANNEL_O, ANTIBOT.prefix .. ANTIBOT.punishment.try.reason) ANTIBOT:addPunishment(playerId) end end function ANTIBOT:time(playerId) local player = Player(playerId) if not player then ANTIBOT:reset(playerId) return false end playerId = player:getId() if not ANTIBOT.punishment.time.players[playerId] then ANTIBOT.punishment.time.players[playerId] = 0 ANTIBOT:sendQuestions(playerId) end addEvent(function() if ANTIBOT.punishment.time.players[playerId] and ANTIBOT.punishment.time.players[playerId] >= 0 and ANTIBOT.punishment.time.players[playerId] < ANTIBOT.punishment.time.maxTime then ANTIBOT.punishment.time.players[playerId] = ANTIBOT.punishment.time.players[playerId] + 1 player:sendCancelMessage(ANTIBOT.prefix .. ANTIBOT.messages.time:format(string.diff(ANTIBOT.punishment.time.maxTime - ANTIBOT.punishment.time.players[playerId], true))) ANTIBOT:time(playerId) end end, 1000) if ANTIBOT.punishment.time.players[playerId] and ANTIBOT.punishment.time.players[playerId] >= ANTIBOT.punishment.time.maxTime then ANTIBOT:addPunishment(playerId) end end function ANTIBOT:sendQuestions(playerId) local player = Player(playerId) if not player then return false end playerId = player:getId() random = math.random(#ANTIBOT.questions) ANTIBOT.playerQuestion[playerId] = random player:say("ANTIBOT", TALKTYPE_MONSTER_SAY) player:openChannel(13) addEvent(sendChannelMessage, 500, 13, TALKTYPE_CHANNEL_O, ANTIBOT.prefix .. ANTIBOT.messages.howAnswer:format(os.date("%d"))) addEvent(sendChannelMessage, 800, 13, TALKTYPE_CHANNEL_O, ANTIBOT.prefix .. ANTIBOT.questions[random].question) end function ANTIBOT:reset(playerId) ANTIBOT.punishment.try.players[playerId] = nil ANTIBOT.punishment.time.players[playerId] = nil ANTIBOT.playerQuestion[playerId] = nil end function ANTIBOT:addPunishment(playerId) local player = Player(playerId) if not player then return false end playerId = player:getId() local accountId = getAccountNumberByPlayerName(player:getName()) if accountId == 0 then return false end local resultId = db.storeQuery("SELECT 1 FROM `account_bans` WHERE `account_id` = " .. accountId) if resultId ~= false then result.free(resultId) return false end local timeNow = os.time() if ANTIBOT.punishment.try.players[playerId] and ANTIBOT.punishment.try.players[playerId] >= ANTIBOT.punishment.try.max then db.query("INSERT INTO `account_bans` (`account_id`, `reason`, `banned_at`, `expires_at`, `banned_by`) VALUES (" .. accountId .. ", " .. db.escapeString(ANTIBOT.prefix .. ANTIBOT.punishment.try.reason) .. ", " .. timeNow .. ", " .. timeNow + (ANTIBOT.punishment.try.timePunishment * 86400) .. ", " .. player:getGuid() .. ")") elseif ANTIBOT.punishment.time.players[playerId] and ANTIBOT.punishment.time.players[playerId] >= ANTIBOT.punishment.time.maxTime then db.query("INSERT INTO `account_bans` (`account_id`, `reason`, `banned_at`, `expires_at`, `banned_by`) VALUES (" .. accountId .. ", " .. db.escapeString(ANTIBOT.prefix .. ANTIBOT.punishment.time.reason) .. ", " .. timeNow .. ", " .. timeNow + (ANTIBOT.punishment.time.timePunishment * 86400) .. ", " .. player:getGuid() .. ")") end ANTIBOT:reset(playerId) player:save() player:getPosition():sendMagicEffect(CONST_ME_POFF) player:remove() end Não esqueça de registrar essa lib no arquivo lib.lua

    Na pasta chachannels/scripts crie um arquivo chamado antibot.lua
    function onJoin(player) if not ANTIBOT.playerQuestion[player:getId()] then player:sendTextMessage(5, ANTIBOT.prefix .. ANTIBOT.messages.chat) player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end return true end function onLeave(player) if ANTIBOT.playerQuestion[player:getId()] then return false end return true end function onSpeak(player, type, message) if not ANTIBOT.playerQuestion[player:getId()] then sendChannelMessage(13, TALKTYPE_CHANNEL_O, ANTIBOT.prefix .. ANTIBOT.messages.chat) player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end local question = ANTIBOT.questions[ANTIBOT.playerQuestion[player:getId()]] if question.skill then correctAnswer = tonumber(player:getSkillLevel(question.answer)) message = tonumber(message) elseif question.answer == "level" then correctAnswer = tonumber(player:getLevel()) message = tonumber(message) elseif question.answer == "day" then correctAnswer = tonumber(os.date("%d")) message = tonumber(message) elseif question.staticAnswer then message = message:lower() correctAnswer = question.answer:lower() end verification = false if message == correctAnswer then verification = true end if verification then addEvent(sendChannelMessage, 200, 13, TALKTYPE_CHANNEL_O, ANTIBOT.prefix .. ANTIBOT.messages.correctAnswer) ANTIBOT:reset(player:getId()) else ANTIBOT:addTry(player:getId()) addEvent(function() if ANTIBOT.punishment.try.players[player:getId()] and ANTIBOT.punishment.try.players[player:getId()] < ANTIBOT.punishment.try.max and player then sendChannelMessage(13, TALKTYPE_CHANNEL_O, ANTIBOT.prefix .. ANTIBOT.messages.incorrectAnswer:format(ANTIBOT.punishment.try.max - ANTIBOT.punishment.try.players[player:getId()])) end end, 100) end return true end <channel id="13" name="AntiBot" script="antibot.lua" />
    Agora na pasta creaturescripts/scripts crie um arquivo chamado antibot.lua
    function onLogin(player) if player:getAccountType() >= ACCOUNT_TYPE_GAMEMASTER then return true end player:registerEvent("AntiBot") checkAnti(player:getId()) return true end function checkAnti(playerId) local player = Player(playerId) if not player then return false end min, max = ANTIBOT.verification[1], ANTIBOT.verification[2] random = math.random(min, max) addEvent(function() ANTIBOT:time(player:getId()) checkAnti(player:getId()) end, random * 60 * 1000) end <event type="login" name="AntiBot" script="antibot.lua" />
    Agora no arquivo logout.lua na pasta creaturescripts/scripts
    antes do return true adicione isso
    if ANTIBOT.punishment.try.players[player:getId()] or ANTIBOT.punishment.time.players[player:getId()] then player:sendTextMessage(MESSAGE_INFO_DESCR, ANTIBOT.prefix .. ANTIBOT.messages.logout) player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end ANTIBOT:reset(player:getId())
     
    Sistema 100% feito por mim.
    Créditos adicionais ao @Endless e ao @Tottin por testarem
  2. Like
    Tottin got a reaction from gabirucola in Sistema de Estoque para NPC's.   
    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.
  3. Thanks
    Tottin reacted to Endless in [OTClient Showoff] Mostre seu Projeto/Módulo/Interface do seu OTClient   
    Top Menu Bar desenvolvido juntamente com o @Tottin


  4. Like
    Tottin reacted to Endless in [OTClient Showoff] Mostre seu Projeto/Módulo/Interface do seu OTClient   
    Introdução:

    Estive acompanhando em 1 fórum Gringo um post muito bacana com 1 iniciativa de 1 membro onde a ideia era fazer 1 Showoff de seus trabalhos com OTClient tudo em 1 único post. Achei legal a ideia e porque não trazermos isso pro TK?
    Basicamente a ideia deste post é servir como um Showoff para seu trabalho com OTClient, seja 1 Game UI que você desenvolveu, 1 módulo diferente, ou até mesmo algo simples que você acha válido mostrar para os outros membros, além de compartilhar com a comunidade seus projetos / servir de inspiração, você ainda pode acabar descolando 1 freelance, e é sempre bom ter 1 renda extra não é mesmo?

    Regras:

    Pode publicar qualquer trabalho seu referente ao OTClient, não importa se o projeto/mods/ui está concluído ou em desenvolvimento.
    É apenas exibição, então você pode publicar apenas telas, gifs, vídeos, descrições, título.
    Neste tópico NÃO deve ser publicado o código.
    Você pode expressar sua opinião, mas não pode pedir código e fazer perguntas do tipo "como fazer", "alguém vai me ajudar a fazer isso como no post..." e outras perguntas fora do tópico, o intuito desse tópico é compartilhar/divulgar seus projetos, e não pedir ajuda ou pedir pro mesmo divulgar de graça sua criação.

    Dicas:

    1- Ao invés de gravar 1 vídeo curto, você pode utilizar o ScreenToGif:





    2- Vídeos mais longos você pode compartilhar usando o youtube ou a nuvem como dropbox/onedrive/google drive (estas nuvens têm reprodução automática como youtube).
    3- Para adicionar mais de 2 telas/gifs/vídeo use Spoiler (1-2 telas/gifs/vídeo)

    Créditos pela ideia: MagicWall
     
     

    Bom, eu vou começar compartilhando a Intro do OTClient desenvolvida por mim e pelo @Tottin.



    Créditos também para o @Gengo e @marcoshps11 por terem ajudado na época quando estávamos desenvolvendo o código base da abertura do cliente.
     
     
     
  5. Thanks
    Tottin reacted to Endless in [MyAAC] Plugin Auction System   
    Olá senhores, desenvolvi um Plugin que vai dar um "tchann" extra em seu servidor rsrsrs.

    Sobre o Sistema:

    Este é o Sistema de Auction, convertido para MyAAC.
    Testado para 0.3.6 / 0.4
    Para alterar qualquer configuração do sistema, você pode acessar: system/pages/auction.php
     
    Demo:

     
     
    Instalação:

    Baixe o plugin: auction-system.zip
    Vá até o Painel de Administração, selecione a aba 'Plugins' e selecione auction-system.zip, clique em upload.
    Mova o arquivo => auctionsystem.lua <= para `data/talkactions/scripts`
    Adicione a tag `<talkaction words="!offer_gold" event="script" value="auctionsystem.lua"/>` em talkactions.xml de seu servidor

    Pronto, instalado XD!!

    PS:
    -> 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 discord privado: Endless#5410

    Créditos:
    @Tottin Por desenvolver junto comigo a lógica.
    Créditos pela script base: https://tibiaking.com/forums/topic/34172-trade-off-shop-offline/?tab=comments#comment-192640
     
  6. Like
    Tottin reacted to Endless in [MyAAC] Sistema de Troca de Vocação   
    Olá senhores, hoje vim disponibilizar um Sistema desenvolvido por mim para o MyAAC onde a função dele é vender a Troca de Vocação para o jogador.

    Explicando como funciona:

    O desenvolvedor(você) vai definir 1 preço para o jogador pagar para trocar a vocação de seu personagem. Exemplo: Eu sou 1 Naruto e quero mudar minha vocação para 1 Sasuke, eu vou pagar X valor e minha vocação irá ser alterada. Abaixo 1 gif exemplificando o sistema.


     
    Como instalar em seu site:
     
    É muito simples, vou dividir por passos onde o 1° passo será a inserção do código e o 2° passo a configuração dele. Vamos lá?
     
    1° Passo (Inserção do código)
    Acesse o diretório system/pages/ e ali dentro você vai criar 2 arquivos.
    Crie 1 arquivo com nome mudarvoc.php e adicione o seguinte código dentro dele. (Esse arquivo será o responsável por tratar as requisições e irá fazer toda a parte lógica do sistema)
     
    Código mudarvoc.php:
     

    Agora dentro da mesma página crie 1 arquivo chamado mudarvocacao.php (Ele será responsável por renderizar a parte visual do sistema em seu site), adicione o seguinte código dentro dele:

    Código mudarvocacao.php:

     
     
    Agora acesse o diretório system/templates/ e ali dentro você vai criar 1 arquivo chamado mudarvoc.html.twig (Ele será a parte visual que vai enviar os dados para o sistema gerenciar e tratar eles), adicione o seguinte código dentro dele:

    Código mudarvoc.html.twig:
     

     
    Agora no diretório system/templates/ acesse o arquivo account.management.html.twig e adicione o seguinte código dentro dele na parte final dele, esse código vai checar se está ativo a opção de mudar vocação no config.php, se estiver false, ele não vai exibir o botão.

    Código para adicionar no arquivo account.management.html.twig:
     
      

    Ficando +/- assim: 



    2° Passo (Configuração do código):
     
    Agora acesse o arquivo config.php que está no diretório raiz de seu site. E vamos adicionar o seguinte código:
     

    Com estas 2 linhas de código nós já podemos controlar o sistema, a 1ª linha será responsável por ativar e desativar o sistema. A 2ª linha é responsável pelo preço que será cobrado para trocar a vocação. 


     
    Agora coloque este código:
        

    Basicamente aqui estamos definindo quais vocações serão disponibilizadas para o jogador poder trocar pela sua. 



    Exemplo: Com essa configuração estamos definindo que as vocações que você pode pegar ao pagar para trocar a sua são: Chouji, Haku, Shikamaru, Shino, Temari, Rock lee, Hinata e Ino. Fique a vontade para configurar a seu gosto.

    Agora no diretório system/ abre o arquivo chamado functions.php e adicione a seguinte função:
     

    Nessa função você vai configurar os ID das suas vocações, exemplo: $a > 10 && $a < 20, nessa situação você está conferindo se o ID da vocação este entre 11 até 19, pois ele precisa ser maior que 10 e menor do que 20. Sempre que você for adicionar 1 nova vocação nessa função, basta adicionar o else if ($a > TAL && $a < TAL) $nomevoc = "TAL";

    Pronto, configurado!!

    Repare que se você deixar a opção 'mudar_vocacao' => false lá no config.php, ele não vai exibir nada no Gerenciamento de sua conta:



    Agora se você colocar true, você deve ter algo como isto:


     
    Pronto, sistema instalado!! Agora você pode disponibilizar para seus jogadores a opção de trocar de vocação pagando um valor X de pontos.
  7. Upvote
    Tottin got a reaction from Cat in Sistema de Estoque para NPC's.   
    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.
  8. Upvote
    Tottin reacted to Vodkart in Sistema de Estoque para NPC's.   
    Ah verdade, achei que ele iria comprar mais caro, por exemplo (20 gp),  e se ele tivesse muito desses itens já em estoque, vender mais barato, pela lei da oferta e demanda... 
  9. Like
    Tottin got a reaction from Vodkart in Sistema de Estoque para NPC's.   
    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.
  10. Thanks
    Tottin reacted to Vodkart in Sistema de Estoque para NPC's.   
    Muito criativo esse sistema e você desenvolveu muito bem, parabéns!!
     
    Porém fazer por table storage, fica bem limitado o sistema, afinal, como você deve saber, existe uma certa quantia de caracteres/números que uma storage suporta.
     
    ° Um dos BUGS consiste em: O jogador vender 1000 itens de uma vez por um preço maior, e depois comprar o mesmo item e quantidade por um preço menor, refazer esses passos e fazer dinheiro fácil.
     
    Sobre a limitação do storage, você pode criar tabelas usando database ou criar um arquivo txt ou lua para salvar os dados e acessar quando quiser.
  11. Like
    Tottin got a reaction from Wakon in Sistema de Estoque para NPC's.   
    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.
  12. Thanks
    Tottin got a reaction from LeoTK in Sistema de Estoque para NPC's.   
    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.
  13. Thanks
    Tottin got a reaction from Cat in Sistema de Estoque para NPC's.   
    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
  14. Like
    Tottin got a reaction from Yan Liima in Sistema de Estoque para NPC's.   
    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.
  15. Like
    Tottin got a reaction from Vodkart in Sistema de Estoque para NPC's.   
    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.
  16. Like
    Tottin got a reaction from Kyle Bellini in Sistema de Estoque para NPC's.   
    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.
  17. Like
    Tottin got a reaction from ITALOx in Sistema de Estoque para NPC's.   
    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.
  18. Like
    Tottin got a reaction from marcoshps11 in Sistema de Estoque para NPC's.   
    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.
  19. Like
    Tottin got a reaction from Breno Alves in Sistema de Estoque para NPC's.   
    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.
  20. Thanks
    Tottin got a reaction from Endless in Sistema de Estoque para NPC's.   
    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.
  21. Like
    Tottin got a reaction from Cat in Sistema de Estoque para NPC's.   
    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.
  22. Like
    Tottin reacted to Naze in Otimizado: AutoLoot in Sources for TFS 0.3.6, TFS 0.4   
    Uns dos problemas das maiorias dos otserv casual que estão online é o autoloot, alguns com erros e defeito na checagem dos containers e sempre consumindo muito por ser em lua fazendo checagens de tile, corpo, itens e etc. Por isso decidi da uma contribuição a essa comunidade que me evoluiu bastante um autoloot diretamente na source na função que insere os itens no corpo, otimizando em 100% na hr da entrega do item, e não tendo problemas ocasionais como corpos sobre corpos ou varias bags.
     
         Esse sistema já é bem comum quando comprado, mas gratuito acredito que ainda não tinha disponível, então fiz esse totalmente do 0 na source tfs 0.4 rev 3999 (do yan).
        
        Atenção na instalação! Qualquer problema pra compilar que envolva as linhas presente no código verifique novamente se instalou corretamente antes de pedir ajuda para evitar flood. Qualquer bug, erro ou mal funcionamento encontrado pode postar que estarei corrigindo, mas não irei customizar a seu agrado, você consegue fazer isso sozinho com atenção e calma, e se precisa de ajuda é só posta as duvidas.
     
    Imagens do Sistema:
     
    Características: 
    -> Otimizado executando apenas funções necessarias -> Comandos simples e praticos -> !autoloot on/off //Autoloot estara sempre ligado, e caso queria desliga use '!autoloot off' -> !autoloot bank/bag //Define para onde ira o dinheiro coletado, direto banco ou no inventario -> !autoloot list //Lista todos itens adicionados para coleta -> !autoloot clear/clean //Remove todos itens da lista -> !autoloot add, name item, name item, ... //Adiciona itens na lista, podendo adicionar quantos quiser de uma vez. Ele retorna um messagem dizendo os itens que foram adicionados e os que deram erro e não foram adicionados, talvez por escrito errado, ja existente na lista, na lista de bloquados, etc. -> !autoloot remove, item name, item name, ... //Remove itens da lista, com a mesma logica do add. -> Opções configuravel pelo Config.lua -> AutoLoot_MoneyIDs //IDs dos Itens Moedas do servidor como gold coins, platinium coins, crystal coins. -> AutoLoot_BlockIDs //IDs dos itens bloqueados para autoloot -> AutoLoot_MaxItem //Quantidade maxima de itens para adicionar a lista -> Sistema livres de bugs ou logs de erros.  
    Instalação:
    Toda instalação será feita na source, exceto por 1 linha em talkactions.xml e 3 variáveis no config.lua
     
    TFS 0.4 :
     
    Link para Otx -> https://tibiaking.com/forums/topic/101086-otimizado-autoloot-in-sources-for-otx2-ou-menor/
     
    Nas versões atual da TFS para servidores 10+ não ira funcionar pois algumas funções são diferente e não irei corrigir agora, em breve passo o mesmo pra tfs 1.x e otx3.
     
    Esse sistema foi totalmente feito por mim, mas dou créditos também ao @Mathias Kenfi por me ajudar muito na evolução em lua/c++ e a tabela sql é a mesma usada no quick autoloot 1.3 postado por Pedriinz
     
    @Edit: 
    Quem usa source de derivados caso ocorra erro aplica as alterações dos comentários abaixo.
    Pequena correção em talkactions.cpp na parte remove na linha if(!player->checkAutoLoot(itemId)), para if(player->checkAutoLoot(itemId))
  23. Like
    Tottin reacted to Endless in Plugin MyAAC - Listagem de Items Automática [2021]   
    Olá pessoas, hoje vim disponibilizar para vocês um Plugin para o MyAAC que desenvolvi onde a função é listar todos items do seu servidor por categoria.
    Um pouco sobre ele:
    Bom, o Plugin foi desenvolvido para que tanto pessoas leigas quanto pessoas mais familiarizadas com PHP consigam utilizar ele. O Plugin é de fácil manuseio, basta faz upload dele em seu painel administrativo e ele já estará funcionando, toda parte de configuração no site/bd dele é automática.
    Neste tutorial eu vou ensinar como instalar e utilizar o plugin.
    OBS: (Vale observar que o Plugin funciona para > MyAAC <, porém ele pode ser adaptado para outras plataformas sem grandes problemas.)
    Bom vamos lá, para instalar:

    1° Passo:

     

    2° Passo:

     

    Agora vamos ao nosso site, digite: seusite.com/?items
    Ele vai ir para uma área +/- assim:
     


    Se você acessar com a conta de administrador, vai ver que vai aparecer a opção de dar Reload nos items.
     


    O que ela faz? Basicamente, ela vai recarregar todos items, atualizando em seu banco de dados.
    Bom, agora basta acessar as abas que ele vai exibindo os items
    OBS: O Sistema exibe por ordem de level, ou seja, do item + fraco até o item + forte baseado em seu level.

     

    Vale destacar que o sistema é totalmente editável, eu deixei todo comentado em Português para vocês poderem trabalhar, mesmo aquele indivíduo que não tiver conhecimento, pode fazer alterações. Se quiser que ele puxe outras informações, basta alterar no código fonte e criar no banco de dados 1 nova coluna para registrar ela.

    Ah, por último mas não menos importante, o código está sem estilização em CSS, mas você pode adicionar a seu gosto, no meu caso eu estilizei utilizando bootstrap e deixei da seguinte forma:

     

    Espero que ajudem e facilite o projeto de vocês!!
    Caso forem repostar em algum outro Fórum, por favor coloque os créditos, obrigado!!

    Link do Plugin: list_of_items_1.1.zip
     
  24. Like
    Tottin reacted to Endless in Instalando MyAAC em sua Máquina.   
    Olá pessoal, meu nome é Endless e ultimamente eu percebo que tem muitos usuários tentando utilizar o MyAAC porém com dificuldades, então resolvi fazer 1 mini tutorial ensinando como utilizar essa plataforma AAC.

    Passo 1: Baixando o Site e Colocando em nossa máquina:
     

    Passo 2: Instalando o Site
     

    Passo 3: Acessando a área administrativa
     

    É isso!! Para aqueles que quiserem a versão do MyAAC 0.7.10 que é a que eu prefiro, vou deixar o download e o scan da mesma.
    Para utilizar a versão do MyAAC 0.7.10 é a mesma forma de instalar, só vai mudar que não precisa configurar o ip na hora de acessar o site pela 1ªx.
    Download: myaac-0.7.10.zip
    Scan: https://www.virustotal.com/gui/file/2c431fba8de2645ab2eb3d0c6815cc01fc5236d79d7c8da0123ab6dcef035441/detection

    Qualquer dúvida estou a disposição lá no Discord da Academia de Codding.
    Link do Discord: https://discord.gg/JmTn69B
     
  25. Upvote
    Tottin got a reaction from Lisbeky in (Resolvido)Setar storage para todos em uma determinada área   
    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>
×
×
  • Create New...

Important Information

Confirmação de Termo