Líderes
-
Diego Rulez
MembroPontos191Total de itens -
-
r0bert0lol
HéroiPontos215Total de itens
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 02/12/22 em todas áreas
-
Alavanca que compra itens
Alavanca que compra itens
Vodkart reagiu a Diego Rulez por uma resposta no tópico
1 pontoHoje estarei postando 3 scripts diferentes onde ao clicar na alavanca o player pode comprar itens. Antes que perguntem são 3 scripts porque o funcionamento é diferente, andei pesquisando bastante e perguntando a alguns no TibiaKing e vi que muitos disseram que era fácil, mas apenas dois conseguiram me ajudar. Um foi o @Lyu que explicou um detalhe de como "puxar" a charges para o item do items.xml ao invés de configurar no próprio script. Já o restante dos scripts foram desenvolvidos pelo @luanluciano93 Neste primeiro script é possível comprar uma quantidade de itens (count), que vão vir dentro de um container (containerId) e caso eles tenham "charges", a carga que o item virá é a que está configurada no items.xml local items = { [1520] = {containerId = 2003, itemId = 2197, count = 20, price = 100000}, -- stone skin amulet [1521] = {containerId = 1992, itemId = 2164, count = 8, price = 40000}, -- might ring [1522] = {containerId = 1996, itemId = 2169, count = 8, price = 16000}, -- time ring [1523] = {containerId = 1991, itemId = 2167, count = 8, price = 16000}, -- energy ring [1524] = {containerId = 1993, itemId = 2214, count = 8, price = 16000} -- ring of healing } function onUse(player, item, fromPosition, target, toPosition, isHotkey) local tabela = items[item.actionid] if not tabela then return false end local itemTypeContainer = ItemType(tabela.containerId) local itemTypeItem = ItemType(tabela.itemId) local containerWeight = itemTypeContainer:getWeight() local itemWeight = itemTypeItem:getWeight() local playerCap = player:getFreeCapacity() local totalWeight = (containerWeight + (itemWeight * tabela.count)) if playerCap < totalWeight then itemWeight = itemWeight / 100 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_RED, "You have found a " .. itemTypeContainer:getName() .. " with " .. tabela.count .. " " .. itemTypeItem:getName() .. " weighing " .. totalWeight .. " oz it's too heavy.") player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end local backpack = player:getSlotItem(CONST_SLOT_BACKPACK) if not backpack or backpack:getEmptySlots(false) < 1 then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_RED, "Your main backpack is full. You need to free up 1 available slots.") player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end local container = Game.createItem(tabela.containerId) if not container then return false end for i = 1, tabela.count do local itemContainer = Game.createItem(tabela.itemId) if itemTypeItem:getCharges() > 0 then itemContainer:setAttribute(ITEM_ATTRIBUTE_CHARGES, itemTypeItem:getCharges()) end container:addItemEx(itemContainer) end if not container then return false end if player:getTotalMoney() > tabela.price then if player:removeTotalMoney(tabela.price) and player:addItemEx(container) then player:getPosition():sendMagicEffect(CONST_ME_DRAWBLOOD) end else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_RED, "You don't have ".. tabela.price .." gold coins to buy a ".. itemTypeContainer:getName() .." with ".. tabela.count .." ".. itemTypeItem:getName() ..".") player:getPosition():sendMagicEffect(CONST_ME_POFF) end item:transform(item.itemid == 1945 and 1946 or 1945) return true end Nesse segundo script, é possível comprar itens soltos (sem estar dentro de containers) mas que podem ser agrupados, como por exemplo, potions local potions = { [1515] = {id = 7620, charges = 100, value = 5600}, -- mana potion [1516] = {id = 7589, charges = 100, value = 9300}, -- strong mana potion [1517] = {id = 7590, charges = 100, value = 14400}, -- great mana potion [1518] = {id = 8472, charges = 100, value = 22800}, -- spirit potion [1519] = {id = 8473, charges = 100, value = 37900}, -- ultimate health potion } function onUse(player, item, fromPosition, target, toPosition, isHotkey) local potion = potions[item.actionid] if not potion then return false end local potionId = ItemType(potion.id) local itemWeight = potionId:getWeight() * potion.charges if player:getFreeCapacity() >= itemWeight then if not player:removeMoney(potion.value) then player:sendCancelMessage("You don't have ".. potion.value .." gold coins to buy ".. potion.charges .." ".. potionId:getName() ..".") else player:getPosition():sendMagicEffect(CONST_ME_DRAWBLOOD) player:addItem(potion.id, potion.charges) end else player:sendCancelMessage("You don't have capacity.") player:getPosition():sendMagicEffect(CONST_ME_POFF) end item:transform(item.itemid == 1945 and 1946 or 1945) return true end Nesse terceiro script, é possivel comprar apenas um item solto, não estacavel e sem charges, como uma wand, axe, etcs.. local items = { [2378] = {itemId = 2197, price = 100000}, -- battle axe } function onUse(player, item, fromPosition, target, toPosition, isHotkey) local tabela = items[item.actionid] if not tabela then return false end local itemTypeItem = ItemType(tabela.itemId) local itemWeight = itemTypeItem:getWeight() local playerCap = player:getFreeCapacity() if playerCap < itemWeight then itemWeight = itemWeight / 100 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_RED, "You have found a " .. itemTypeItem:getName() .. " weighing " .. itemWeight .. " oz it's too heavy.") player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end local backpack = player:getSlotItem(CONST_SLOT_BACKPACK) if not backpack or backpack:getEmptySlots(false) < 1 then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_RED, "Your main backpack is full. You need to free up 1 available slots.") player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end local itemAdd = Game.createItem(tabela.itemId) if not itemAdd then return false end if player:getTotalMoney() > tabela.price then if player:removeTotalMoney(tabela.price) and player:addItemEx(itemAdd) then player:getPosition():sendMagicEffect(CONST_ME_DRAWBLOOD) end else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_RED, "You don't have ".. tabela.price .." gold coins to buy a ".. itemTypeItem:getName() ..".") player:getPosition():sendMagicEffect(CONST_ME_POFF) end item:transform(item.itemid == 1945 and 1946 or 1945) return true end1 ponto -
Google Cloud Plataform
Google Cloud Plataform
thepops reagiu a Diego Rulez por uma resposta no tópico
1 pontoIntrodução O que eu quero falar aqui não é a parte técnica de segurança, desempenho e outros pontos. Quero falar sobre o dia a dia de alguém que pretende ser um administrador e que acabou de começar um projeto. Mesmo que você seja leigo e tenha dificuldades com a "tela preta" do Linux onde você digita os comandos, ainda assim vale a pena optar pelo Linux logo de primeira pelos seguintes motivos: Quando você for inaugurar seu servidor você vai querer que ele tenha uma boa estabilidade e não fique travando ou sendo derrubado e você vai conseguir isso apenas utilizando Linux, então pra que aprender a montar tudo no Windows se depois, de qualquer forma, você vai ter que aprender Linux? Todo conhecimento é válido, mas você estaria atrasando seu lado fazendo isso. Visual Studio, complementos, bibliotecas. Antes de compilar sua source para Windows você vai precisar fazer o download, instalar e preparar o seu ambiente de trabalho e isso vai te custar muito tempo visto que são programas pesados, que demoram para serem baixados e instalados e que precisam de configurações muito especificas para compilar sem erros. Se você pode fazer isso tudo em 5 minutos e sem erros no Linux, porque insistir no Windows? Google Cloud Platform Ativando os créditos Criando o VPS Liberando as Portas Criando um acesso Enviar arquivos para o VPS A parte de compilação da source, instalar o site e abrir o server ficará para o próximo tópico, visto que, é possível aplicar em qualquer VPS e não somente do Google. Se deseja instalar um site e fazer a compilação da source clique aqui Se você tiver qualquer dúvida em relação a esse tutorial não fique acuado em perguntar, irei responder todas as dúvidas no tópico. Não respondo PM, porém também estou no Discord do TibiaKing e posso ajuda-los por lá.1 ponto -
[8.60][OLD Client] Narutibia (NTO HARD) - Servidor Completo
[8.60][OLD Client] Narutibia (NTO HARD) - Servidor Completo
FlamesAdmin reagiu a r0bert0lol por uma resposta no tópico
1 pontoGalera tópico atualizado, adicionei o banco de dados que eu estava utilizando. Acabei de reinstalar o servidor para um colega, utilizei um Ubuntu 14.04 e tudo está funcionando 100 % ( A única coisa que faltava era o banco de dados ) Eu gostaria de organizar, montar um tutorial step-by-step ensinando como colocar o servidor Online porém estou sem tempo, mas posso garantir que não há problemas com os arquivos o pack está completo agora com o banco de dados. Um Guia para você que não sabe por onde começar : Consiga uma VPS de preferência utilize o Sistema Operacional em que o server foi testado ( Ubuntu 14.04 ) Atualize as libs da sua VPS e Instale : Apache + Mysql + PhpMyAdmin ( Você pode encontrar Tutoriais aqui no Fórum ) Configure / Importe um banco de dados no PhpMyAdmin ( Agora tem banco de dados disponível ) Gerencie os arquivos, coloque o servidor no diretório /home e o site no diretório /var/www e não esqueça de editar os arquivos config.lua e config.php Com todos os arquivos configurados e posicionados no local correto, seu site já deve estar funcionando. Compile o servidor ( Caso esteja usando ubuntu 14.04 já tem uma distro compilada ) para compilar ( Você pode encontrar Tutoriais aqui no Fórum ) Agora com site funcionando e distro rodando, você apenas precisará configurar o Client do servidor para se conectar. O Client funcionará apenas após trocar o IP do executável, voce pode usar ip changer ou usar um hex editor para alterar definitivamente. Agora com client redirecionando para o IP da sua VPS você já pode se conectar no game. dbresetada.sql Estou pensando em fazer um vídeo tutorial no Youtube colocando Online o servidor em um Ubuntu,. Nesse vídeo eu passaria algumas dícas para quem está começando a usar Linux e realizaria um passo a passo do que é necessário para você conseguir deixar o servidor Online em qualquer VPS. Caso alguém se interesse, deixa um Rep + Aí que assim que surgir um tempo eu gravo o vídeo para vocês.1 ponto
Líderes está configurado para São Paulo/GMT-03:00