Líderes
-
lordzetros
MembroPontos431Total de itens -
-
-
amoxicilina
MembroPontos272Total de itens
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 01/17/19 em todas áreas
-
Alavanca de troca [X itens por Y itens]
Alavanca de troca [X itens por Y itens]
Nerivalhs e 2 outros reagiu a lordzetros por uma resposta no tópico
3 pontosOlá, Bom... teve um pedido no Discord da TK feito por algum usuário (não estou recordando o nome) que estava tendo dificuldades em fazer determinado script, então decidi fazê-lo. É algo simples, eu já tinha enviado lá no canal de suporte, porém, como já de conhecimento por muitos, o canal foi removido. Decidi refazer de uma forma melhor e mais prática. * Sobre o Script * Quando o jogador utilizar a alavanca para ganhar determinado(s) item(s), ele terá que ter deixado em POSIÇÕES DEFINIDAS alguns itens, sendo assim, possível efetuar a troca. Simples, não? Caso ainda não tenha entendido, tem imagem abaixo de como funciona o mesmo. * Imagens demonstração * Tentando efetuar a troca sem tá com os itens posicionados de forma correta... Efetuando a troca de forma correta. * Instalando o Script * Em data/actions/scripts/ crie um arquivo chamado alavanca_troca.lua e cole isto dentro: --[[ Lordzetros - TK ]] local config_itens = { {id = 2666, pos = {144,63,6}, count = 1}, -- ID DO ITEM NECESSÁRIO, POSIÇÃO QUE DEVE FICAR, QUANTIDADE DE ITEM NECESSÁRIO {id = 2667, pos = {145,63,6}, count = 1}, {id = 2671, pos = {146,63,6}, count = 1}, -- Caso queira colocar outro item, basta seguir esse modelo (ctrl + c) } local config_troca = { msg_falha = "Falha na troca do item. Necessario: %dx %s em sua devida posicao!", msg_sucesso = "A troca foi efetuada com sucesso!", recompensas = {{id = 2003, count = 1}, {id = 2004, count = 1}} -- Para deixar apenas uma recompensa, apenas deixe recompensas = {{id = ID_DO_ITEM_A_GANHAR, count = QUANTIDADE_A_GANHAR}} } function onUse(player, item, fromPosition, target, toPosition, isHotkey) local ax_t = {} for i, v in ipairs(config_itens) do local vt = Tile(Position(v.pos[1], v.pos[2], v.pos[3])) local item_t = vt:getItemById(v.id) if (not item_t or item_t:getCount() < v.count) then player:getPosition():sendMagicEffect(CONST_ME_POFF) player:sendTextMessage(36, config_troca.msg_falha:format(v.count, ItemType(v.id):getName())) return false end table.insert(ax_t, {item_t, v.count}) end for i, v in ipairs(ax_t) do v[1]:remove(v[2]) end for i, v in ipairs(config_troca.recompensas) do player:addItem(v.id, v.count) end player:sendTextMessage(36, config_troca.msg_sucesso) player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_RED) return true end Em seguida, coloque esta linha de código abaixo de uma semelhante em data/actions/actions.xml <action actionid="30258" script="alavanca_troca.lua" /> Para finalizar, abre seu editor de mapa e coloque em algum alavanca o actionID = 30258 * Configurando o Script * Tá tudo comentado no código, portanto, vou falar só por cima. {id = 2666, pos = {144,63,6}, count = 1} Nesta parte, você deve colocar o id do item necessário, a posição que ele deve ficar e a quantidade. E nesta parte você configura a recompensa do jogador recompensas = {{id = 2003, count = 1}, {id = 2004, count = 1}} Id do item que ele ganhará e quantidade Enfim, script simples, porém, pode ser útil para muitos, assim como acredito que será para o usuário que solicitou, :). Abraços.3 pontos -
[Show OFF] - Shopping Modal
[Show OFF] - Shopping Modal
Albeck e um outro reagiu a Coltera por uma resposta no tópico
2 pontos2 pontos -
Agressive promo Website
1 pontoOlá pessoas. Sou o Ricardo. Vou compartilhar com vocês um método bem legal de atrair novos donates para seu servidor de uma maneira bem simples. Vamos aos pré-requisitos. Você precisa compreender como funciona a arquitetura de pastas do Gesior para compreender sobre quais arquivos será necessário alterar, vou tentar ser o mais didático possível. Segundo você precisa estar com uma versão mais recente do JQUERY, que é uma biblioteca javascript. Terceiro, fazer um deposito nessa conta aqui... rsrsrsr zoas. Vamos ao tutorial. Vamos adicionar a biblioteca do jquery à tag BODY do seu website: <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script> Esse código deve ser inserido logo abaixo da abertura tag <body> do seu website. crie uma PASTA onde está localizado o seu tema chamada promo. Após isso vamos criar um arquivo Java Script para controlar a promoção. de o nome que você preferir à esse arquivo. nesse caso será o promo.js *Esse arquivo deve estar dentro da pasta promo. function showPromo() { $('#promo-overlay').fadeIn(); $('#promoloader').fadeIn(); } function closePromo() { $('#promoloader').fadeOut(); $('#promo-overlay').fadeOut(); } Após isso será necessário criar um arquivo CSS que será responsável por exibir corretamente a promoção no website. promo.css *Esse arquivo deve estar dentro da pasta promo. #promo-overlay { display: block; position: fixed; top: -100px; left: 0; right: 0; bottom: -100px; z-index: 997; background: rgba(0,0,0,.6); } #promoloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; } .promo-image{ display: block; margin-left: auto; margin-right: auto; } Após criado o CSS insira uma imagem de sua preferencia dentro da pasta promo. Após criado, vamos criar um arquivo php dentro da pasta do seu tema, nesse caso será usado o caminho /layouts/tibiacom/ Será criado o arquivo promo.php que será o responsável pela exibição da propaganda. <?php if (!isset($_REQUEST['subtopic']) || $_REQUEST['subtopic'] == 'latestnews') { ?> <?php if (Website::getWebsiteConfig()->getValue('promo_isactive')) { ?> <link href="<?php echo $layout_name; ?>/promo/promo.css" rel="stylesheet" type="text/css"> <div id="promo-overlay" style="display: none"></div> <div id="promoloader" style="z-index: 5000; display: none"> <div style="text-align: center"> <a href="./?subtopic=accountmanagement&action=donate"> <img class="" src="<?php echo $layout_name; ?>/promo/<?=Website::getWebsiteConfig()->getValue('promo_imagename')?>"/> </a> </div> </div> <script src="<?php echo $layout_name; ?>/promo/promo.js"></script> <script> $(document).ready(function () { showPromo(); }); $('#promoloader').on('click', function () { closePromo(); }); $(document).keyup(function(e) { if (e.key === "Escape") { closePromo(); } }); </script> <?php } } ?> Após criado será necessário abrir o arquivo config.php. e inserir 2 linhas no final dele. /** Promoção configuration */ $config['site']['promo_isactive'] = TRUE; $config['site']['promo_imagename'] = 'promo.png'; *Aqui deve-se referenciar o nome da imagem que você colocou dentro da pasta promo, juntamente com seu tipo, assim como no exemplo acima. Após feito tudo isso, calma jovem padawan ainda não irá funcionar, está faltando o principal que é incluir a chamada para o arquivo promo.php dentro do arquivo layout.php então vamos fazer isso. Logo antes do fechamento da tag </body> Coloque esse lindo código. <?php include_once "promo.php"; ?> Sendo assim, desfrute da sua nova propaganda...1 ponto
-
Last Joined
Last Joined
lordzetros reagiu a Pedro. por uma resposta no tópico
1 pontoAdicionei no meu servidor, mas não gostei muito, ocupou muito espaço e então resolvi tirar. Eu testei em um dos layouts que uso, o padrão dele é bootstrap, então se você usa layout do tibiarl, precisa fazer algumas modificações etc. teria que trocar o class table, e adicionar bgcolor nos tr. <tr bgcolor='. $config['site']['lightborder'] .'> <!-- Queries --> <?php $players = $SQL->query('SELECT COUNT(*) FROM `players` WHERE `id`>0;')->fetch(); $accounts = $SQL->query('SELECT COUNT(*) FROM `accounts` WHERE `id`>0;')->fetch(); $housesfree = $SQL->query('SELECT COUNT(*) FROM `houses` WHERE `owner`=0;')->fetch(); $housesrented = $SQL->query('SELECT COUNT(*) FROM `houses` WHERE `owner`=1;')->fetch(); $query2 = $SQL->query('SELECT `id`, `name` FROM `players` ORDER BY `id` DESC LIMIT 1;')->fetch(); ?> <!-- End Queries --> <center><div class="jumbotron jumbotron-fluid" style="padding-top: 0px;padding-bottom: 0px;width: 670px;height: 180px;margin-bottom: 0px;"> <div class="container"> <table class="table table-sm"> <tr><td style="padding-left: 150px;">Last joined: <a href="?subtopic=characters&name='.urlencode($query2['name']).'"><?php echo $query2['name']?></a>, Welcome and wish you a nice game!</td></tr> <tr><td><b>Free Houses: </b> <?php echo $housesfree[0]?></td> <td><b>Rented Houses:</b> <?php echo $housesrented[0]?></td></tr> <tr><td><b>Accounts</b> created: <?php echo $accounts[0]?></td> <td><b>Players</b> created: <?php echo $players[0]?></td></tr> </table></td></tr> </div> </div></center>1 ponto -
(Resolvido)Look Reset TFS1.3
1 ponto@BilauX Em data/events/scripts/player.lua Na função: function Player:onLook(thing, position, distance) Adicione: if thing:isPlayer() then local resets = thing:getStorageValue(378378) if resets < 0 and 0 or resets then description = string.format("%s\nResets: %s.", description, resets > 0 and resets or "0") end end Se preferir você também pode usar na função: function Player:onLookInBattleList(creature, distance) Para mostrar os resets ao da look pela battle.1 ponto
-
(Resolvido)Website Ot
1 pontoObrigado simples, e arrumado! Que deus te abençoe! ?1 ponto
-
(Resolvido)Website Ot
1 pontoIsso o que? não tem favicon? vai em layouts e adiciona o caminho exemplo: <link rel="shortcut icon" href="<?php echo $layout_name; ?>/images/favicon.gif" />1 ponto
-
TFS 1.3
TFS 1.3
BilauX reagiu a lordzetros por uma resposta no tópico
1 pontoEspera, tá bugando tudo. local vocQ = { ["1-5"] = {item = {2293}}, -- Caso queira adicionar mais itens, apenas coloque a vírgula e o id do item, exemplo: ["1-5"] = {item = {7365,2160,2148}}, ["2-6"] = {item = {2187}}, ["3-7"] = {item = {7365}}, ["4-8"] = {item = {2393}} } function onUse(player, item, fromPosition, target, toPosition, isHotkey) if (player:getStorageValue(7365) ~= 1) then for voc, items in pairs(vocQ) do local v = voc:split("-") if (player:getVocation():getId() == tonumber(v[1]) or player:getVocation():getId() == tonumber(v[2])) then for i = 1, #items.item do player:addItem(items.item[i], 1) end player:sendTextMessage(36, "Congratulations!!") player:setStorageValue(7365, 1) break end end else player:sendTextMessage(35, "It's empty.") end return true end Agora sim... @BilauX Meu anti-vírus não tava permitindo abrir a caixa de códigos, por isso não tava indo completo, pois no spoiler [/i] entende como código nativo, com isso o script estava saindo incompleto. Copia novamente, alterei.1 ponto -
TFS 1.3
TFS 1.3
Pedro. reagiu a lordzetros por uma resposta no tópico
1 ponto@BilauX local vocQ = { ["1-5"] = {item = {2293}}, -- Caso queira adicionar mais itens, apenas coloque a vírgula e o id do item, exemplo: ["1-5"] = {item = {7365,2160,2148}}, ["2-6"] = {item = {2187}}, ["3-7"] = {item = {7365}}, ["4-8"] = {item = {2393}} } function onUse(player, item, fromPosition, target, toPosition, isHotkey) if (player:getStorageValue(7365) ~= 1) then for voc, items in pairs(vocQ) do local v = voc:split("-") if (player:getVocation():getId() == tonumber(v[1]) or player:getVocation():getId() == tonumber(v[2])) then for i = 1, #items.item do player:addItem(items.item[i], 1) end player:sendTextMessage(36, "Congratulations!!") player:setStorageValue(7365, 1) break end end else player:sendTextMessage(35, "It's empty.") end return true end1 ponto -
(Resolvido)Widget TopLevel Gesior
Nem precisa de uma imagem transparente maior, altere a propriedade do css .top_level > height por um tamanho que se adeque a 10 players.1 ponto
-
(Resolvido)Atacar Magia em Player Apenas
function onCastSpell(cid, var) local jogadorpos = getCreaturePosition(cid) local target = getCreatureTarget(cid) local monsterpos = getCreaturePosition(target) if target and isPlayer(target) then doTeleportThing(cid,monsterpos) doTeleportThing(target,jogadorpos) doSendMagicEffect(jogadorpos, 65) doSendMagicEffect(monsterpos, 65) else doPlayerSendTextMessage(cid,20,'It is not possible to use on creatures.') end return true end1 ponto
-
(Resolvido)Leve Monster TFS 1.3
1 ponto@Yinz local config = { monster_name = "Dragon Lord", monster_position = Position(1063, 1052, 7), storage = 6025, ex_time = 1*60 } function onUse(player, item, frompos, item2, topos) if not player:getPlayer() then return true end if player:getStorageValue(config.storage) >= os.time() then player:sendTextMessage(MESSAGE_INFO_DESCR, "You can only use in "..string.diff(player:getStorageValue(config.storage) - os.time())) else player:setStorageValue(config.storage, os.time() + config.ex_time) Game.createMonster(config.monster_name, config.monster_position) item:transform(item.itemid == 9826 and 9825 or 9826) end return true end1 ponto
-
(Resolvido)Advance level, reward points.
Testa aí @Jobs local points = 5 local storage = 1234 function onAdvance(player, skill, oldLevel, newLevel) if skill ~= SKILL_LEVEL or newLevel <= oldLevel then return true end if player:getStorageValue(storage) < oldLevel then db.query("UPDATE `accounts` SET `NOVA_TABELA` = `NOVA_TABELA` + " .. points .. " WHERE `id` = '" .. player:getAccountId() .. "';") player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Congratulations! You have advanced to level ' .. newLevel .. ' and you have earned '.. points ..' points!') player:setStorageValue(storage, oldLevel) end return true end1 ponto
-
[Map] ice map
[Map] ice map
MatCollier reagiu a amoxicilina por uma resposta no tópico
1 pontoOlá pessoal do TK, estava aqui sem fazer nada decidir fazer um mapa, ai acabou saindo esse ai, espero que gostem. Impressão: Ice MAP.rar1 ponto