Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''tibia''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. È hoje a inauguração do http://baiaksky.online crie agora sua conta, chame seu time, que da tempo, server será liberado as 18:00 horário de brasilia. - Roshamuul (NEW + Boss com Drop de items bom) - Todas as quests 100% - Auto Loot System - 9 Eventos - Fly System - Addons Bonus System - Mining System - Event Coin System - Itens e vocation balançeadas - Dodge System 100%: !dodge - Critical System 100%: !critical - Push Fast, para melhor PvP - Fast Attack Equilibrado - Players Donates Tem 20% a mais de experiencia - Guild que domina o Castle 24H tem 10% a mais de experiencia - Morgum City (Descubra os Segredos) - Exp 400 (STAGES) - Expulsar players inativos (5 dias offline) de suas houses: !eject - Cast System - War System
  2. eu abro o remeres normal, abro o mapa do meu servidor, e coloco as dats/spr certinho, e na hora de inicializar aparece o seguinte erro: Tibia.dat: Unknown optbyte '144' after '255' Failed to load flags for sprite 101 e aparece esse erro varias vezes :c alguem pode me ajudar? :x
  3. meu deus.... as pessoas ficam cansandu seus chars, fazendu eles subir e descer escadas... nós temos em 2006, :suspiro vamus dexar nossos chars discansarem um poco de subir e descer escadas. eu como libero todas as actions ke eu faço com mt gosto, vo liberar mais uma Elevator System by Colex esta action tem 2 scripts (1 é u "painel" para escolher u andar e u otro é para depois de escolher um andar ir para u andar escolhidu) :pinch: vamos começar com os códigus e dps pra ensinar melhor vcs vaum encontrar uma screenshot explicando. Primeiro, va na pasta data>actions>scripts e crie um ficheiro chamado elevator.lua ondi vc vai escrever o seguinte code: ------elevator system (part 1 of 2) by colex------function onUse(cid, item, frompos, item2, topos)if (getPlayerStorageValue(cid,5080)) == -1 thendoPlayerSendTextMessage(cid,22,"1st floor")setPlayerStorageValue(cid,5080,1)elseif (getPlayerStorageValue(cid,5080)) == 1 thendoPlayerSendTextMessage(cid,22,"2nd floor")setPlayerStorageValue(cid,5080,2)elseif (getPlayerStorageValue(cid,5080)) == 2 thendoPlayerSendTextMessage(cid,22,"3rd floor")setPlayerStorageValue(cid,5080,-1)endreturn 1end agora, vamus fazer a 2º parte do script, faça na mesma pasta do code de cima, um ficheiro chamado elevator2.lua e escreva o seguinte code: ------elevator system (part 2 of 2) by Colex--------function onUse(cid, item, frompos, item2, topos)andar1 = {x=512, y=509, z=7}andar2 = {x=512, y=509, z=6}andar3 = {x=512, y=509, z=5}player1pos = getPlayerPosition(cid)player1 = getThingfromPos(player1pos)if player1.itemid == cid and (getPlayerStorageValue(cid,5080)) == 1 thendoTeleportThing(player1.uid,andar1)elseif player1.itemid == cid and (getPlayerStorageValue(cid,5080)) == 2 thendoTeleportThing(player1.uid,andar2)elseif player1.itemid == cid and (getPlayerStorageValue(cid,5080)) == -1 thendoTeleportThing(player1.uid,andar3)endreturn 1end aki vc deve trocar as coordenadas do andar1, andar2 e andar3. --------------------------------------- ultima parte é adicionar no ficheiro actions.xml ke esta na pasta data>actions as seguintes linhas: --------elevator---------<action uniqueid="1945" script="elevator2.lua" /><action uniqueid="1946" script="elevator2.lua" /><action uniqueid="1947" script="elevator2.lua" /><action uniqueid="1948" script="elevator.lua" /><action uniqueid="1949" script="elevator.lua" /><action uniqueid="1950" script="elevator.lua" />--------/elevator--------- explicando 1945 | 1946 | 1947 - estes são os uniqueids dos "paineis" ke servem para escolher u andar pra ondi vai (deve ter um em cada andar) 1948 | 1949 | 1950 - estes são os uniques id da "alavanca" (pode ser otro item) ke vc usa dps de escolher u andar nu painel, (vc va pro andar escolhidu nu painel) agora para explicar melhor postei uma SS: quadrado vermelho - istu daki é u "painel" ke será usado para escolher u andar (vc podi usar otro item) quadrado azul - essa alavanca é ondi vc da use dps de escolher u andar nu "painel" (tbm pode ser usado otro item) ------------------------ é isso ai!! espero ke gostem e ke comentem u ke axam| mesmu kem naum vai usar é bom comentar pq eu gasto meu tempo nissu e libero pra ajudar vcs
  4. Ola galerinha do xtibiana. Vocês lembram do shopping system beta? Bem o shopping system beta foi um sistema criado por min a um tempinho. O link da versão beta é: http://www.xtibia.co...demo-by-caotic/ Os players podiam vender e comprar itens de forma rápida e pratica só que na versão demo ele tinha limitações então resolvi fazer a versão 1.0 com mais funções. Ele funciona da seguinte maneira: O player vende seu item no shopping depois outro player resolve ver o shopping e acaba comprando o item. Quando o player vendedor estiver online ele recebera a mensagem dizendo que o seu item foi vendido e ele recebera o money da compra. Na versão 1.0 do shopping system foi adicionado: Vamos a instalação. Primeiro execute estes comandos na sua database: CREATE TABLE "shop" ( "item" INT NOT NULL, "price" INT NOT NULL, "players" INT NOT NULL ); ALTER TABLE `players` ADD `shop` INT(15) NOT NULL DEFAULT 0 Agora va em lib e crie um arquivo lua chamado shop e coloque isto: function doPlayerAddItemInShop(cid, itemid, price) db.executeQuery("INSERT INTO `shop` VALUES (".. itemid ..", ".. price ..", ".. getPlayerGUID(cid) ..")") return true end function getItemPriceInShop(itemid) local shop = db.getResult("SELECT * FROM `shop` WHERE `item` = ".. itemid ..";") return shop:getDataInt("price") end function getItemPlayerInShop(itemid) local shop = db.getResult("SELECT * FROM `shop` WHERE `item` = ".. itemid ..";") return shop:getDataInt("players") end function getExistItemInShop(itemid) local shop = db.getResult("SELECT * FROM `shop` WHERE `item` = ".. itemid ..";") if shop:getID() ~= -1 then return true end return nil end function getExistItemPlayerInShop(player, itemid) local shop = db.getResult("SELECT * FROM `shop` WHERE `players` = ".. player .." and `item` = ".. itemid ..";") if shop:getID() ~= -1 then return true end return nil end function doPlayerBuyItemInShop(cid, itemid, player) doPlayerAddItem(cid, itemid) doPlayerRemoveMoney(cid, getItemPriceInShop(itemid)) db.executeQuery("UPDATE `players` SET `shop` = "..getItemPriceInShop(itemid).." WHERE `id` = "..getItemPlayerInShop(itemid)) db.executeQuery("DELETE FROM `shop` WHERE `players` = ".. player .." and `item` = ".. itemid ..";") end function getMoneyGainInShop(cid) local money = db.getResult("SELECT `shop` FROM `players` WHERE `id` = "..getPlayerGUID(cid)) return money:getDataInt("shop") end function setMoneyGainInShop(cid, money) db.executeQuery("UPDATE `players` SET `shop` = "..money.." WHERE `id` = "..getPlayerGUID(cid)) end function doShowListShop(cid) local item = db.getResult("SELECT * FROM `shop` WHERE `item` ORDER BY `price`") str = "Itens a venda no shopping:\n\n" if item:getID() == -1 then doShowTextDialog(cid, 1387, "Não ha itens disponiveis no shopping\n Não existe itens no shopping!") return true end while true do local list = item:getDataInt("item") local players = item:getDataInt("players") local price = item:getDataInt("price") local shops = "Itens em Shopping" local list = string.upper(getItemNameById(list)) local players = getPlayerNameByGUID(players) str = str .. list .. " -("..players..")- Preço ("..price..")]\n\n" if not item:next() then doShowTextDialog(cid, 1397, str) break end end end Agora vá em talkactions/script e crie um arquivo lua chamado list e coloque este codigo: function onSay(cid, words, param, channel) doShowListShop(cid) return true end Agora vá em talkactions denovo crie um arquivo lua chamado de shop e coloque isto: function onSay(cid, words, param, channel) if param == " " or param == "" or not param then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o id do item") end local t = string.explode(param, ",") if not t[1] then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o id do item") end if not t[2] then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o preço do item") end if(isNumeric(t[1])) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o nome do item") end if not (isNumeric(t[2])) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque O PREÇO DO ITEM") end if not getItemIdByName(t[1], false) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este item "..t[1].." não existe") end local item = getItemIdByName(t[1]) local price = t[2] if getPlayerItemCount(cid, item) < 1 then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem "..t[1].."") end if getExistItemPlayerInShop(getPlayerGUID(cid), item) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já pos este item no shop") end doPlayerRemoveItem(cid, item, 1) doPlayerAddItemInShop(cid, item, price) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você colocou no shopping o seu item "..t[1].."") return true end Agora continue em talkactions e crie um arquivo lua chamado de comprar e coloque isto: function onSay(cid, words, param, channel) if param == " " or param == "" or not param or isNumeric(param) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o nome do item dizendo /compra(nome do item,nome do player)") end local t = string.explode(param, ",") if not getItemIdByName(t[1], false) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este item "..t[1].." não existe") end local itemid = getItemIdByName(t[1]) local player = getPlayerGUIDByName(t[2]) if not getExistItemInShop(itemid) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este item não existe no shopping") end if t[2] == " " or t[2] == "" or isNumeric(t[2]) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o nome do vendendor dizendo /compra(nome do item,nome do player)") end if not doPlayerRemoveMoney(cid, getItemPriceInShop(itemid)) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem "..getItemPriceInShop(itemid).." para comprar "..t[1].." do shopping") end if not player then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Não existe nenhum item com o nome deste player.") end doPlayerBuyItemInShop(cid, itemid, player) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens você comprou "..t[1].."") return true end Agora coloque estas tags em talkactions.xml: Agora vá em creaturescripts/scripts e crie um arquivo lua chamado de shop: function onThink(cid, interval) if getMoneyGainInShop(cid) > 0 then doPlayerAddMoney(cid, getMoneyGainInShop(cid)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Seu itens foi vendidos você recebeu "..getMoneyGainInShop(cid).." money") setMoneyGainInShop(cid, 0) return true end return true end Registre o evento colocando em login.lua de creaturescripts e coloque isto antes do ultimo return: registerCreatureEvent(cid, "shop") Agora vá em creaturescrips.xml e coloque esta tag: E prontinho sistema instalado Comandos
  5. Olá comunidade, O meu nome é Lucas Melo, conhecido como LuquitossML, eu recebo muitas mensagens aqui no fórum de membros que gostariam de auxilio para a criação/edição de uma sprite e outros com interesse de aprender a spritear, como eu não tenho tempo para ajudar todo mundo, decidi fazer um tutorial, neste tutorial eu vou compilar tudo aquilo que você precisa saber para começar a arte da perspectiva 45°. Aqui nós vamos aprender passo a passo para a criação de uma sprite. Tutorial Básico sobre quase tudo aquilo que você precisa saber. Introdução: Definição Geral.No Tibia, assim como todos os jogos, os elementos gráficos são chamados de Sprites. Para criar estes sprites, utilizamos uma técnica de design gráfico conhecida pelo nome de Pixel Art. Pouca gente conhece essa arte, que surgiu com os primeiros videogames. Pixel art significa fazer Arte através da utilização de Pixels. Pixel são os pequenos quadrados que compõe as imagens gráficas de qualquer sistema televisual. A organização correta de pixels pode gerar formas que podem ser reconhecidas como animais, objetivos, fotografias, plantas, animações variadas, etc. Técnicas de pixel artPixel art conta com algumas técnicas diferentes de qualquer outro tipo de arte, por ser uma arte de baixa resolução. Dithering: É o uso de padrões de pixels para se criar a ilusão de que existem mais cores do que realmente se estão sendo usadas. Também é usado para se fazer texturas. Anti-Alias (ou AA): Técnica para se suavisar linhas, usando tons médios para reduzir o contraste entre a cor da linha e a cor que envolve a linha. Sombreamento: O sombreamento em pixel art deve ser feito como em objetos reais, com base em uma fonte de luz. Sombrear a figura das bordas para o centro é um erro bastante comum, chamado de Pillow Shading (ou sombreamento 'travesseiro') Salvando deu Trabalho:Para se salvar um trabalho seu no computador, deve-se usar o formato correto. JPG é um formato que usa um tipo de compressão bom apenas para imagens suaves e contínuas. Se usado no pixel art, causa uma enorme perda de qualidade BMP é um formato que apesar de manter a qualidade, acaba resultando em um arquivo muito pesado GIF e PNG são os formatos mais apropriados. GIF, com uma paleta limitada a 256 cores, é o formato ideal, já que é o menor e dificilmente o pixel art terá tantas cores. Se você usa o programa Paint para fazer pixel art, salve como PNG, pois quando o Paint salva como GIF, ele usa uma paleta de cores padrão, e causará alterações de cores no seu pixel art. Categorias:Pixel art é normalmente dividido em duas categorias. Isométrico é o pixel art que imita uma visão em 3 dimensões, mas que não possui perspectiva. Não-isométrico é qualquer outro tipo de visão como Front View (frente) ou Top View (de cima) Como começar a fazer Pixel Art? Existem vários programas para se fazer Pixel art. O mais simples deles é o conhecido Microsoft Paint, ou como dizem: MS Paint. A interface do Paint, é muito muito simples, e com o tempo você entenderá cada uma das funções que ele é capaz de realizar. Ferramentas Básicas:LUPA - Amplia ou reduz o CANVAS (Área onde se desenha ou Área selecionada). LÁPIS - Ferramente capaz de pintar um pixel por vez. BORRACHA - Apaga o que foi desenhado. LATA DE TINTA - Preenche formas com cores. Controles Básicos. CTRL + A = Seleciona todo o Canvas. CTRL + C = Copiar Canvas. CTRL + E = Abre a Janela de Atributos do Canvas. CTRL + F = Fullscreen CTRL + G = Cria uma grade de pixels nos aumentos de 6x e 8x da LUPA CTRL + R = Abre Janela de Inverter ou Girar o Canvas. CTRL + T = Ocultar Barra de Ferramentas. CTRL + V = Colar Canvas. CTRL + Z = Desfazer ação. Desenvolvimento: Agora que já temos uma abordagem geral sobre o tema, vamos aprofundar nossos estudos. Luz e Sombra na perspectiva 45°.Para quem está começando é essencial ter noção de como a luz se comporta na perspectiva que focamos. De modo simples, a luz tem sua fonte a 45 graus acima do objeto, ou seja, a parte "noroeste" do sprite precisa sempre estar mais iluminado do que a parte "sudeste". Vejamos: Obs: Virar a sprite horizontalmente permite verificar se a luz está se comportando da maneira correta (Vindo de uma fonte que está a esquerda e acima do sprite - ou seja, a noroeste ) Lembrem-se de sempre considerar que a parte sudeste não é totalmente escura. Pois a parte da luz que vem do noroeste e chega até sudeste cruzando o sprite, pode refletir/refracionar e iluminar a parte sudeste, mas lógicamente, essa luminosidade será menor. Uma das regras mais importantes e obrigatórias caso seu intuito seja seguir o padrão Tibia: A luz vem do noroeste, mas mesmo assim, ainda existe luz vinda das demais fontes naturais e refletidas pelas superfícies. Sendo assim, seu sprite recebe luz de todas as direções, mas preferencialmente pelo Noroeste. Anti-Aliasing (AA). Quando trabalhamos com pixels percebemos que as bordas dos desenhos costumam aparentar muito o fato de que os pixels são de fato quadrados. O problema de muitos desenvolvedores gráficos no começo do pixel art, foi justamente no momento em que precisavam desenhar elementos que não seguissem o padrão quadrado dos pixels, como por exemplo Círculos, Esferas, e bordas redondas. Para muitos, a solução desse problema surgiu com a criação da ténica de Anti-Aliasing ou simplesmente AA. O AA foi um grande avanço no desenho de formas esféricas ou outras que precisassem passar a idéia de uma superfícia lisa, sem irregularidades. Mas como isto é possível se todo sistema televisual utiliza PIXELS para formar gráficos? A resposta é simples: O AA utiliza pixels que misturam as linhas com o plano de fundo em que elas estão. Quando isto é feito, nossos olhos não conseguem distinguir as irregularidades dos pixels. Em primeiro lugar devido ao tamanho dos pixels e segundo lugar devido a uma boa suavização de bordas. Vejam no exemplo: http://img507.imageshack.us/img507/8484/aaexampleok2zl9.png Obs: Créditos da imagem: Galiant Na esquerda da 2° imagem, vemos o circulo formado de vários pixels pretos. Suas bordas estão "cruas" e sem AA. Assim, mesmo no aumento menor é possível perceber as falhas de suas bordas redondas. Na direita da imagem vemos o mesmo circulo após a aplicação da técnica de Anti-Aliasing. E agora, no aumento menor, não se pode mais ver as falhas das bordas. Como fazer Anti-Aliasing? O Anti aliasing é simples apesar de não parecer. Tudo se baseia em 3 passos: 1 - Observar primeiro o desenho que se quer suavizar. 2 - Observar o fundo no qual este desenho está inserido. 3 - Adicionar cores que simbolizam a mistura das cores do desenho, com o seu fundo. No exemplo acima (dos circulos) tinhamos um circulo PRETO, num fundo BRANCO, então apenas adicionamos tons de CINZA (PRETO + BRANCO) para suavizar a borda. No caso de uma sprite, o AA é feito internamente, ou seja, é feito dentro do outline/lineart da sprite, isso é feito utilizando no caso tons mais escuros nas partes cerrilhadas da sprite. Vejamos: Como podem ver na direita, a disposição dos pixels escuros nas partes mais cerrilhadas é o chamado AA, não é necessário que seja utilizado apenas preto para se fazer o Anti-Aliasing. Exemplo: "Ahh luquitos, eu quero fazer algo roxo, como eu faço AA nele?" Simples, apenas faça os passos iniciais para se fazer uma sprite: Faça um outline (contorno do sprite) Comece a pintar. comece a fazer o AA. (no caso do meu amigo da sprite roxa, utilize tons roxos escuros nas partes cerrilhadas da sprite) Logo depois do AA pronto faça a Iluminação, no caso, Luz e Sombra. Depois de todos esses passos, veja se não há mais nada para arrumar e "Voilá" Sua sprite está pronta. Conclusão: O Investimento do Tempo e Esforço. Trabalho em pixel art é demorado e muitas vezes de difícil processo. Quanto mais tempo você gasta trabalhando, e, em seguida, um pedaço de refino, Melhor será sua aparência. Isso muitas vezes pode levar horas, mas as recompensas valem a pena. Se você não está preparado para investir o tempo em seu trabalho, Ele não ira fluir, independentemente do número de tutoriais que você lê. Nada da certo na primeira vez? As primeiras interações com o seu outline/lineart ou imagem (sprite) sombreada pode muitas vezes ser frustrantes. Não desanime, mesmo os erros aparentemente mais hediondos podem ser editados em algo decente. Uma vez que a última versão de sua sprite é completa, sentar e dar uma boa olhada nela é essencial. Este reajuste geralmente divide-se em um simples ciclo de 3 etapas: 1 - O que aparentemente há de errado? 2 - Como posso corrigir? 3 - A fixação dele. O uso de referências. Muitas vezes, você pode compensar a falta de conhecimento sobre algum objeto através de imagens. Estes podem ser encontrados a partir de uma variedade de fontes, a mais imediata a ser através de um motor de busca na internet.Você também pode encontrar cores novas e interessantes a partir de fotografias e arte dos outros pixel. Lembre-se que o plágio direto, incluindo a edição do trabalho de outras pessoas, é distintamente ilegal. Espero que o tutorial tenha sido útil para alguém, caso o tutorial tenha uma grande repercussão e o pessoal mais duvidas, eu irei continuar atualizando ele com um conteúdo mais aprofundado sobre o tema. Obrigado a equipe do Xtibia pelo espaço. Atenciosamente, LuquitossML.
  6. FelipeXT

    Pacotao Otservers 7.6

    Olá Xtibianos Hoje venho postar varios otservers 7.6 que um amigo me cedeu. scan,download e prints abaixo!! ► Download e Scan Otserv! ► Server Name: Arcavia7.6 » Scan: https://www.virustotal.com/pt/file/99e2efc66ba8ecc757383d1c394736299188b3c29b8498784db5e27e4dbdf98a/analysis/1431209250/ » Download:http://www.mediafire.com/download/a6cc8sa414ooaza/arcavia7.6.rar » Print: ► Download e Scan Otserv! ► Server Name: BlazedOT » Scan: https://www.virustotal.com/pt/file/a6ab449c77ffeaf65465e8b08e2255dff3d385cee520c8b73a4d1ac0237c4b5d/analysis/1431209116/ » Download:http://www.mediafire.com/download/9d65ukdpowabutn/BlazedOT.rar » Print: ► Download e Scan Otserv! ► Server Name: Chaos Ot » Scan: https://www.virustotal.com/pt/file/65aea8f90eda35d266091ad8c33f93d3952f3555808aeb2e386835f271c0df31/analysis/1431209175/ » Download:http://www.mediafire.com/download/0ikpbo30vr0q4z2/Chaos.rar » Print: ► Download e Scan Otserv! ► Server Name: Dameria » Scan: https://www.virustotal.com/pt/file/4d2cbee81592980958a0c565e0971fd029acbda2380dce4b8e8d2390a1b4d09b/analysis/1431209163/ » Download:http://www.mediafire.com/download/9hqvrwpty3mwut3/dameria.rar » Print: ► Download e Scan Otserv! ► Server Name: Dark Ghettobladers_v2.1 » Scan: https://www.virustotal.com/pt/file/9603d43cf69385782526ce04ed4774c91dbf76ab9c6f60749d925a9ad0472187/analysis/1431209562/ » Download:http://www.mediafire.com/download/pi0u2x3uuxumtle/dark_ghettobladers_v2.1.rar » Print: ► Download e Scan Otserv! ► Server Name: Darkonia76-v.1.0 » Scan: https://www.virustotal.com/pt/file/c5ffa26e9547a38ae75fa756cb95de187aa48385d1028cb5df8ec8a72ac55b96/analysis/1431209523/ » Download:http://www.mediafire.com/download/j1sdtxbzf05r8tu/Darkonia76-v.1.0-.rar » Print: ► Download e Scan Otserv! ► Server Name: DeadTouch 1.9 » Scan: https://www.virustotal.com/pt/file/c3032048d83c79474a0f836a307ff7b0e84c762e1aebea7063cc2111713c4d23/analysis/1431209555/ » Download:http://www.mediafire.com/download/mat5y29kb5m49wj/DeadTouch+1.9.rar » Print: ► Download e Scan Otserv! ► Server Name: Divinity7.6.3 » Scan: https://www.virustotal.com/pt/file/dd7ad4e3255c9baa4dcdaf211afcb3dc3091c8156cad42cf92aab03c84642269/analysis/1431209558/ » Download:http://www.mediafire.com/download/5ah43k82lbjys71/divinity7.6.3.rar » Print: ► Download e Scan Otserv! ► Server Name: Docinho War » Scan: https://www.virustotal.com/pt/file/6dbd255b4f333b01eb38548e83f612aba4172ecee4f0cd5870a82db1052c10f2/analysis/1431209893/ » Download:http://www.mediafire.com/download/t59i13h6936vph5/Docinho.rar » Print: ► Download e Scan Otserv! ► Server Name: DRDTEAM » Scan: https://www.virustotal.com/pt/file/eca5a5c88ac4bc10ff1b26afcdab4eccac3bb25a2927e45d607d78c3fa6eaa2a/analysis/1431209844/ » Download:http://www.mediafire.com/download/a5ml5amt0ds9iex/DRDTEAM.rar » Print: ► Download e Scan Otserv! ► Server Name: EldinWorld_7.6 » Scan: https://www.virustotal.com/pt/file/037d175ecb717bb9761b22323e159de0f382d8e43b910bdd535a95de7d2b40f4/analysis/1431209859/ » Download:http://www.mediafire.com/download/hl7br8cuos4zhgz/EldinWorld_7.6.rar » Print: ► Download e Scan Otserv! ► Server Name: Fibula War » Scan: https://www.virustotal.com/pt/file/50bfef18945e0115e0b788b7ad4af45da85c7411a61f6783ef67fc8723a4e0d5/analysis/1431209861/ » Download: http://www.mediafire.com/download/h35uvqx4rijcnhy/Fibula+Server.rar » Print: ► Download e Scan Otserv! ► Server Name: HoT1.5.2 » Scan: https://www.virustotal.com/pt/file/22fa8d7abc4d964a404596d6449b94484338b1da7a28fc2747031a753e554009/analysis/1431210149/ » Download:http://www.mediafire.com/download/d3wp5cqyv1u7csd/HoT1.5.2.rar » Print: ► Download e Scan Otserv! ► Server Name: Loozikots3.2 » Scan: https://www.virustotal.com/pt/file/a4174c9a0a9bb870ea0fd12875eee4476a5af18e41d463e05bd8b87f9746abfe/analysis/1431210172/ » Download:http://www.mediafire.com/download/93decudzbvpfndg/loozikots3.2.rar » Print: ► Download e Scan Otserv! ► Server Name: Mazurowski ots 1.6 by Kamilos » Scan: https://www.virustotal.com/pt/file/47e06966425796f3281b93bcb49b4764bbaee480b49d808d0d8cafb0980d9fcd/analysis/1431210195/ » Download:http://www.mediafire.com/download/t8fgdu8qr4kw15n/Mazurowski+ots+1.6+by+Kamilos.rar » Print: ► Download e Scan Otserv! ► Server Name: Neverland 4.2 » Scan: https://www.virustotal.com/pt/file/69ca1d0f87f39a3459e414f1e5cd0538b2e499f6188c87672085970656edd8ce/analysis/1431210177/ » Download:http://www.mediafire.com/download/ogb2p1mz3o3x1hf/Neverland+4.2.rar » Print: ► Download e Scan Otserv! ► Server Name: PlatinumOTS » Scan: https://www.virustotal.com/pt/file/85e252d491ec3ba3dc82a7cee0282dd80ab223e22b72b14217f58d5f0fae17e6/analysis/1431210485/ » Download:http://www.mediafire.com/download/0b9cyo72sb3sp70/PlatinumOTS.rar » Print: ► Download e Scan Otserv! ► Server Name: RisenGods War » Scan: https://www.virustotal.com/pt/file/87baab5f1a3ceac10b1a85e5a9f0fa27848b6122ef66405542bac330f623a0c6/analysis/1431210402/ » Download:http://www.mediafire.com/download/cx1jqcgbqc5pdsw/RisenGods.rar » Print: ► Download e Scan Otserv! ► Server Name: World War » Scan: https://www.virustotal.com/pt/file/d1966461c19bdfe67e331487a40fca445438912e6f2c548bad7e68b9ecc4d087/analysis/1431210486/ » Download:http://www.mediafire.com/download/kdc4vp4ijcnahai/world_war_binary_and_source.rar » Print: Doeu os dedos! ► Atençao! Evite baixar OTservers sem scans.
  7. Salve rapazeada, estou com um projeto de ot 7.4 e ultimamente enfrento um pequeno problema da War System, para uma guild invitar outra dá tudo certo, porém quando a outra guild aceita a War o servidor crasha, não consigo ver que erro está dando, pois fecha a distro, alguém consegue me auxiliar por favor? Agradeço dmss!
  8. Utimo edit 29/04/2012 [7.92]Doidim Team. ------------------------------------------------------------------ Frist ot com evil Claus Todo em portugués Clean a cada 30Minutos Avisa 1 minuto antes Quando tem pvp mostra player no valan nao pode ataka ou morre para player Valan ou deus titan 400 /valan 700 /deus 900/reset 1200. ------------------------------------------------------------------- AnimatedText: aff,lol,noob,hunted. Item Vip's: !vipboots,!viparmor,!vipshield,!viphelmet,!viplegs,!vipwand,!shurikenVip. Item Vip's: !Black.Helmet.Heale ,!black.soft.heale ,!Black.ball.down.abs !Sword.atak.dead Magias: aprisionar,Explosion Bolt,Explosion burst,Exori Slayer,Gravita cleric. ------------------------------------------------------------------ MOnstros Hades/Golden da Morte/Shadow Dragon/Sermen/gladiator/Lost dead/Mari/ E 40 Items MOntos Mais Do Dragon Souls ITems Vip E Etc Otserv Com novos monstros alem do Dragon Souls novos items Vip ------------------------------------------------------------ vocation's wyzard ----Dark wyzard ----Warlock----Dark Merlin cleric ----Elemental Cleric ----Healer----Dark Elemtet Cleric ranger ----Elven ranger ----Sniper----Rogue slayer ----Dragon Slayer ----Divine Hero----Warrior ------------------------------------------------------------- vocation Balanceadas Tudo para ser um RPG Com açao Download--Otserv Full http://www.mediafire.com/download.php?wmt9j3sph7wgixa Download--Mapa Editor http://www.mediafire...fchn43j7l3wd9zy ------------------------ \Msn de contato para arrumar Bug's erros ajuda/ Gusta009vo@hotmail.com
  9. MAPA ATUALIZADO!!!! OQUE A DE NOVO??????NOVOS MONSTROS , CITY VIP , BUGS DE GOD RETIRADOS , NOVO VISUAL ,NOVAS MAGIAS , NOVOS EVENTOS , EM FIM MAPA MELHORADO 80% IMAGENS DO TEMPLO IMAGENS DA AREA VIP IMAGENS DOS NOVOS TP DOWNLOAD: http://www.4shared.c...amikazev11.html SCAN: https://www.virustot...sis/1328973010/ super NOVA VERSAO atualizada dia 13 de dezembro de 2012 http://www.xtibia.co...__fromsearch__1 INTAO E SO ISSO GALERA xD GOSTO DO MAPA?? DA +REP AE ;D MSN: adm.kamikazeofficial@hotmail.com add fui hackd no outro
  10. Ola galerinha xtibiana. Eu resolvi fazer uma versão superior do report system usando db. Segue o link da versão demo: http://www.xtibia.com/forum/topic/198470-report-sytem-beta/ Esta versão utiliza banco de dados assim fica mais fácil de manipular e o administrador poderá ver os reports "In-Game" além de que eles serão excluídos apos serem lidos. A lista e ordenada pelo level do player "evitando as vezes você ler primeiros possíveis floods". Vamos a instalação. Vá em lib e crie um arquivo lua chamado de report e coloque isto: function getReportByGuid(guid) local shop = db.getResult("SELECT * FROM `report` WHERE `id` = ".. guid ..";") return shop:getDataString("report") end function doPlayerAddReport(cid, report) db.executeQuery("INSERT INTO `report` (`id`, `report`, `level`) VALUES (" .. getPlayerGUID(cid) .. ", '" .. report .. "', " .. getPlayerLevel(cid) .. ");") return true end function showReports(cid) local rep = db.getResult("SELECT * FROM `report` WHERE `id` ORDER BY `level`") str = "Reports Ativos:\n\n" if rep:getID() == -1 then doShowTextDialog(cid, 1387, "Não ha reports disponiveis!") return true end while true do local list = rep:getDataString("report") local players = rep:getDataInt("id") local name = getPlayerNameByGUID(players) str = str .. list .. " -("..players..")- Name ("..name..")]\n\n" db.executeQuery("DELETE FROM `report` WHERE `id` = ".. players.." and `report` = '".. list .."';") if not rep:next() then doShowTextDialog(cid, 1397, str) break end end end Agora vá em talkactions e crie um arquivo LUA chamado de report e coloque este codigo: function onSay(cid, words, param, channel) local time = 4 ---- Exhaustion cada numeral equivale a 1 hora. if param == "" or not param or param == " " then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "E necessario escrever o report") and false end if exhaustion.get(cid, 23246) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você atingiu o limite de reports espere o limite sair") and false end if #param <= 4 then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O seu report deve conter mais de 4 caracteres") and false end exhaustion.set(cid, 23246, time*36000*1000) doPlayerAddReport(cid, param) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns seu report foi enviado para nosso banco de dados logo ele sera visto\nA equipe agradece") return true end Agora continue em talkactions e crie um arquivo lua chamado de logreport e coloque isto: function onSay(cid, words, param, channel) showReports(cid) return true end Agora vá em talkactions.xml e coloque esta tags: Dicas:
  11. HARRY POTTER ONLINE - by BEDDY Servidor TIBIA HARRY POTTER Alguma vez voce pensou que poderia ser um aluno de HOGWARTS? Agora é sua chance! Venha para o Harry Potter Online e fassa amigos, pegue varinhas, voe de vassoura e muito mais! Estou disponibilizando o servidor pois meu projeto do Harry Potter Online foi por agua abaixo, por causa de um cara que conseguiu rippar as sprites do quilante... Meu projeto já estava 90% andado, mas agora ferrou-se tudo. Então estou mandando a parte do meu projeto que está pronta, porem com sprites do quilante (Já ESTA TUDO ADAPTADO) - O QUE VOCE VAI TER QUE FAZER: Ajustar o servidor... Já estou te dando quase tudo de mao beijada, agora é só fazer alguns ajustes. Como: adicionar NPC, fazer action de compra de TOGA, e coisas simples! Bem.. é isso aproveitem! Distro Totalmente Estavel Sem bugs Sem virus Sem motherfuckingthings! Apenas alegria! -O QUE TEM NO SERVIDOR: •1 Classes: Aluno •O player ao upar um level, ganha "POINTS" para trocar por LIFE OU MANA assim torna o jogo mais sensivel •Mapa Proprio •JA EXISTE VIP E DONATES - AJUSTE PARA O NESCESSARIO -O QUE FALTA NO SERVIDOR: •AJUSTAR LIFE/HIT/LOOT DE MONSTROS - AJUSTAR OS SPRITES DAS HORCRUX (MAS O SISTEMA JA ESTA FUNCIONANDO CORRETAMENTE) -SISTEMAS: • Vassoura • Preparar poçoes (voce pega o axe [iD:2386], usa-o naqueles crystais que estaão espalhados pelo servidor, e com o crystal na backpack, use a magia "preparar", isso vai fazer com que seu caldeirão tenha carga,dai voce poderá dar USE no vial em cima do caldeirão para terminar sua poção!) -SITE HTML INCLUSO! DOWNLOAD: http://depositfiles....files/csh0uuxil http://depositfiles....files/csh0uuxil (INCLUSO: SERVIDOR, CLIENTE, SITE) SCREENS: REP+ PRA MIM POW! SCAN: Por Kaspersky PRO https://www.virustotal.com/file/c5b9fb7a023599d3be295eff034717e55d6e428753164d8377bc79777e34f722/analysis/1342184200/ Por Virus Total CREDITOS: Beddy Erickrusha - fez a parte do mapa do entorno de HOGWARTS,obrigado man!
  12. DBVictory Server - Best Dragon Ball Server START: 06.01.2023r(PL 18:00 | BR: 01:00 PM) AccMaker: Home - DBVictory: WORLD [S1] (http://DBV.DBVictory.eu) Portal: News - DBVictory :: Official Portal (http://DBVictory.eu) (Info / Spells / Maps / Items List / Guides) Forum: :: Forum.DBVictory.eu :: Strona Główna (http://Forum.DBVictory.eu) (Help / Guides) FB: DBVictory - Official (https://www.facebook.com/DBVictoryOfficial) Server info DBVictory: WORLD [S1]: Exp (stages): 8x and below Skill: NO loss (only Exp/Items) PVP (exp for kill player) New account have 7 Day PACC Max Reborn - 700lvl -------------------------- PVP System: PlayerReborn [kill] PlayerReborn = NO FRAG PlayerReborn [kill] PlayerNoReborn = FRAG ** PlayerNoReborn [kill] PlayerNoReborn = FRAG ** Exp PVP: Reborn [kill] Reborn: +50% Level (killing a higher player) +35% Level (killing a lower player) ** 8x FRAG = F (RS), 10x FRAG = BAN, 1Frag = 12h - BOT ILLEGAL -------------------------- AutoLoot - more info command: !al info Party Share: * if there are two of in the party and have share enabled, get +25% more exp Dungeon system (get prinze to 24h) Own Lighting | Addon/Change color outfit Bonus Guilds - for the best of a week (awarded every week) Unique map (own) Events (automatic) + Day Bonus A lot of quests, Sag, missions Monster / Item List (in site) MAP (interactive) (in site) Upgrade / Craft Weapons Fly / Rider (on mob) / GOD + Skin / Ultra Instinct Master System (PET Boost!) (Read) Own Client (OTClient modified)
  13. Lottery System Explicação: Lottery System é um Sistema que Todos os Players que Estiverem Online no Seu OtServer Poderam Ganhar. O Script Sortea algum Player Online, e Sorteia o Item que o Player Ganhará é claro que ele sorteia so os items que voce escolheu no Script, ele esta arrumado para o evento acontecer em 3 a 3 horas é so arruma na tag o 10800 que no Caso é 3 Horas. Versoes Testadas: TFS> 0.3.4, 0.3.5 e 0.3.6 Forao Testadas! 8.50 :button_ok: 8.52 :button_ok: 8.54 :button_ok: 8.60 :button_ok: Script Em Mods: Vá em Data>Mods crie uma pasta.xml chamada lottery e coloque isto dentro dela: <mod name="Lottery System" version="1.4" author="vDk" contact="zlom290@gmail.com" enabled="yes"> <config name="lottery_config"><![CDATA[ config = { lottery_hour = "3 Hours", -- Time to next lottery (only for broadcast message, real time you can set on globalevents.xml) rewards_id = {2494, 2472, 2514, 2160}, -- Rewards ID crystal_counts = 10, -- Used only if on rewards_id is crystal coin (ID: 2160). website = "yes" -- Only if you have php scripts and table `lottery` in your database! } ]]></config> <globalevent name="lottery" interval="10800" event="script"><![CDATA[ domodlib('lottery_config') function onThink(interval, lastExecution) local list = {} for i, tid in ipairs(getPlayersOnline()) do list[i] = tid end local winner = list[math.random(1, #list)] local random_item = config.rewards_id[math.random(1, #config.rewards_id)] if(random_item == 2160) then doPlayerAddItem(winner, random_item, config.crystal_counts) doBroadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " .. config.crystal_counts .. " " .. getItemNameById(random_item) .. "s! Congratulations! (Next Lottery in " .. config.lottery_hour .. "") else doBroadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " .. getItemNameById(random_item) .. "! Congratulations! (Next Lottery in " .. config.lottery_hour .. "") doPlayerAddItem(winner, random_item, 1) end if(config.website == "yes") then db.executeQuery("INSERT INTO `lottery` (`name`, `item`) VALUES ('".. getCreatureName(winner) .."', '".. getItemNameById(random_item) .."');") end return true end ]]></globalevent> </mod> Feche e Salve! Script Em Arquivos.lua: Se seu OtServer nao Tiver a Pasta Mods, Voce podera colocar normalmente em pastas.lua!! Vá em Data>Globalevents.xml abra-lo e Adicione esta Tag: <globalevent name="lottery" interval="10800" event="script" value="lottery.lua"/> Agora vá em Data>GlobalEvents>Scripts crie uma pasta.lua chamada lottery e coloque isto: -- by vDk local config = { lottery_hour = "3 Hours", -- Time to next lottery (only for broadcast message, real time you can set on globalevents.xml) rewards_id = {2494, 2472, 2514, 2160}, -- Rewards ID crystal_counts = 10, -- Used only if on rewards_id is crystal coin (ID: 2160). website = "yes" -- Only if you have php scripts and table `lottery` in your database! } function onThink(interval, lastExecution) local list = {} for i, tid in ipairs(getPlayersOnline()) do list[i] = tid end local winner = list[math.random(1, #list)] local random_item = config.rewards_id[math.random(1, #config.rewards_id)] if(random_item == 2160) then doPlayerAddItem(winner, random_item, config.crystal_counts) doBroadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " .. config.crystal_counts .. " " .. getItemNameById(random_item) .. "s! Congratulations! (Next Lottery in " .. config.lottery_hour .. "") else doBroadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " .. getItemNameById(random_item) .. "! Congratulations! (Next Lottery in " .. config.lottery_hour .. "") doPlayerAddItem(winner, random_item, 1) end if(config.website == "yes") then db.executeQuery("INSERT INTO `lottery` (`name`, `item`) VALUES ('".. getCreatureName(winner) .."', '".. getItemNameById(random_item) .."');") end return true end Feche e Salve Tudo! Para Sites.php e MySql: Bom Se voce Tem um Site e Quiser adicionar este Script nele, para Anunciar no Seu site quem Ganhou a Loteria entao Siga essas Etapas. (Nao Sei mecher Muinto Nisso.) Crie uma Pasta.php e Coloque o Nome de Lottery (Lottery.Php) e adicione isto: <?PHP $lottery = $SQL->query('SELECT id, name, item FROM lottery ORDER BY id DESC LIMIT 1;'); foreach($lottery as $result) { $main_content .= '<center><h1>Lottery</h1></center> <center>Every X hours we will choose one player who will win random item!<br/> Last Winner: <a href="?subtopic=characters&name='.urlencode($result['name']).'">'.$result['name'].'</a> Item: <i>'.$result['item'].'</i> Congratulations!</center>'; } ?> Abra o Index.Php e Adicione Isto: case "lottery"; $topic = "Lottery System"; $subtopic = "lottery"; include("lottery.php"); break; e Por Ultimo na DateBase, Crie uma e Coloque: CREATE TABLE `lottery` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `item` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO `lottery`(`id`, `name`, `item`) VALUES (NULL , 'Nobody', 'nothing'); Feche e Salve Tudo, e Esta Pronto. Creditos: Criador do Script = Vdk 100% Criador do Topico = DevilMoon Abraços..
  14. Olá, primeiramente, obrigado só de estar lendo meu tópico. Bem, estou com um pequeno problema, quero mudar a skill inicial do meu servidor, gostaria de fazer com que os knight e os palladins começassem com skill 70/70. Já procurei aqui no forum, achei um tópico com uma pergunta parecida, mas o cara disse que achou a resposta mas não divulgou aqui para nós. Eu sei como mudar o level inicial, o ml também... Mas gostaria de saber mudar também o ml inicial de cada vocação. Estou esperando respostas. Obrigado.
  15. Olá! Vim aqui disponibilizar este site que editei e não estou usando... Façam bom aproveito! Espero que Curtem. Print: Download: É só substituir a pasta templates do Website do OTPOKEMON Aviso: A senha para descompactar o WebSite OTPokemon 1.0 (2014).Rar é: (otpokemon!) sem os parenteses Scan: Créditos> Modern Acc; Kranzix; Eu
  16. Ola pessoal bem esse e meu primeiro tópico de muitos bem tenho grupo no Facebook que a galera divulga seus servidores e posta novidades e resolvi postar aqui um servidor editado igual a o OtPokemon esta na v1 estamos preparando a v2 com novos itens. Agora vamos ao que interessa informaçoes do servidor começando com os Sistemas ° Sistemas Moves System: 80% Caught System: 50% Go-Back System: 50% Portrait System: 50% Evolution System: 100% Ginasios 90% (Tentar Adicionar mais na V2) Changelog do servidor: • A Opçao Pokebag Do Client Esta Com o Sistema do Cassino Retire que Sera Aberto Normalmente Vesao 1.0 • Adicionei Shiny Clefable - Shiny Wigglytuff - Shiny Tangrowth e Shiny Roserade • • Arrumei Os Attakes Dos Pokemons pareçidos com o OtPokémon (V2 Serao Todos) • • Adicionado Boost System Beta ( Esta Apenas Aumentar 300 De Hp, V2 Sera Arrumado ) • • Todos Os Shinys Alterados para Poderem Usar Level 1 e as Magias Tambem • • o Atake "Healarea" Nao Heala Players Apenas os Pokémons Imagens Links: Servidor: http://www.mediafire.com/download/rc5dt9262dvj9cb/OtPok%C3%A9mon.rar Cliente: http://www.mediafire.com/download/bft51jhc6f2bo9w/OtPokemomMy.rar Scan: https://www.virustotal.com/pt/file/57034c7d6a67c20769877f85cd3f1d66da362cf4ca0602f4964a4b9adc3a3f42/analysis/1434320558/ Créditos a Meu grupo no facebook Tudo Sobre Poketibias A Matheus Por Posta a Edição no grupo. Vlw Galera e isso ai espero que tenham gostado
  17. Introdução Ele simplesmente manda um efeito para o Top Level caso ele estiver online, além disso, ele checa quando o top é ultrapassado e o efeito passa automaticamente ao novo top. Instalação: Em data/creaturescripts/creaturescripts.xml adicione: <event type="login" name="TopEffect" event="script" value="topeffect.lua"/> <event type="advance" name="CheckTop" event="script" value="topeffect.lua"/>Agora crie um arquivo em data/creaturescripts/scripts com o nome topeffect.lua e adicione: --[[ Script by Bruno Minervino para o Tibia King Caso for postar, colocar os créditos ]] local config = { tempo = 10, --tempo em segundos mensagem = { texto = "[TOP]", --não use mais de 9 caracteres efeito = TEXTCOLOR_LIGHTBLUE --efeito para a função doSendAnimatedText }, efeito = 30, --efeito da função doSendMagicEffect globalstr = 5687 -- uma global storage qualquer q esteje vazia } --[[ Não mexa em nada abaixo ]] local topPlayer = getGlobalStorageValue(config.globalstr) > 0 and getGlobalStorageValue(config.globalstr) or 0 function onLogin(cid) local query = db.getResult("SELECT `id`, `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1") if (query:getID() ~= -1) then local pid = query:getDataString("id") local name = query:getDataString("name") if getPlayerName(cid) == name then if topPlayer ~= getPlayerID(cid) then topPlayer = getPlayerID(cid) end setGlobalStorageValue(config.globalstr, pid) TopEffect(cid) end end registerCreatureEvent(cid, "CheckTop") return true end function onAdvance(cid, skill, oldlevel, newlevel) if skill == 8 then local query = db.getResult("SELECT `id`, `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1") if (query:getID() ~= -1) then local level = tonumber(query:getDataString("level")) if level < newlevel and topPlayer ~= getPlayerID(cid) then doBroadcastMessage("O jogador " .. getPlayerName(cid) .. " tornou-se o novo Top Level. Parabens!", 22) topPlayer = getPlayerID(cid) doSaveServer() setGlobalStorageValue(config.globalstr, getPlayerID(cid)) TopEffect(cid) end end end return true end function TopEffect(cid) if not isPlayer(cid) then return true end if topPlayer == getPlayerID(cid) then doSendAnimatedText(getCreaturePosition(cid), config.mensagem.texto, config.mensagem.efeito) doSendMagicEffect(getCreaturePosition(cid), config.efeito) addEvent(TopEffect, config.tempo * 1000, cid) end end function getPlayerNameById(id) local query = db.getResult("SELECT `name` FROM `players` WHERE `id` = " .. db.escapeString(id)) if query:getID() ~= -1 then return query:getDataString("name") end return 0 end function getPlayerIdByName(name) local query = db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(name)) if query:getID() ~= -1 then return tonumber(query:getDataString("id")) end return 0 end function getPlayerID(cid) return getPlayerIdByName(getPlayerName(cid)) end Espero que gostem
  18. Aerdor

    Zombie Apocalypse

    Sei que tô sumido faz um tempãããããão. Mas eu to com esse projeto inacabado meu, o Zombie Apocalypse, e resolvi disponibilizar pra alguém tirar um bom proveito dele. Alguns sistemas permitem que você: 1. corte lenha 2. ceife trigo 3. quebre pedras 4. corte matos 5. tire couro dos porcos E depois de coletar os ingredientes, você pode usar isso tudo acima pra "craftar" equipamentos em caixas de ferramentas. Inúmeras sprites criadas e próprias, as mais notáveis são as dos monstros: Male e Female Ganado, Smoker, Slender, Hunter e HeadCrab. Além da edição de muitas outras. Também foram criadas diversas armas, como: TNT, MOLOTOV, SMOKE GRENADE, GRENADE, FLAMETHROWER, BAZOOKA. Além disso tudo também fiz uma compilação de sprites decentes de diversos servidores e coloquei tudo nesse que originalmente não tinha NADA. Só tinha o sistema das outfits que trocam a arma quando a arma muda, o sistema da bomba C4 e os monstros tipo o Nemesis. Nem mapa tinha. Ou seja, todo esse trabalho me tomou muito tempo ajeitando TODAS as armas e TODOS os itens. Literalmente todos os sistemas desse servidor ou são meus ou foram implantados por mim. Espero que alguém possa pegar, finalizar meu projeto, colocar online pra galera e fazer sucesso. E se desistir, que disponibilize pra todo mundo, né. Os créditos vão para os que desenvolveram aqueles sistemas que eu mencionei alí em cima, acredito que façam parte da antiga Resident Tibia. Também dou créditos aos autores dos sistemas que implantei, como o da 35% a mais de xp para premium accounts. E o maior crédito é meu. Downloads: http://www.mediafire.com/?n0ih621q22q9o5m http://www.mediafire.com/?i9vivyqg2xyadwb
  19. Olá xtibianos, Faz muito, muito tempo que eu não mexo com programação de scripts, porém, nessa semana bateu uma saudade, e tentei fazer algo de diferente pra passar o tempo, e acabei me empolgando, e fiz um sistema de auras, que é como uma bolha de luz que te rodeia (no meu caso é uma bolha de cura, porém você pode colocar o efeito de distância que quiser), e te cura continuamente enviando clones do efeito, ela só envia bolhas de cura se seu hp não estiver cheio. Você pode conferir como funciona, superficialmente, assistindo o vídeo a seguir : Para ativar a aura basta escrever "!aura on", e para desligar "!aura off". Bom, vamos aos códigos. na pasta data\talkactions\scripts, crie um arquivo chamado aura.lua, e cole o seguinte código nele : (é necessário dois storages disponíveis distintos) -- CONFIGURAÇÕES aurastr = 25950 -- storage da aura estr = 25951 -- storage para o exhaust porcentagem = 40 -- chance de curar em cada volta da aura, em porcentagem quantheal = 10 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura) tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar) tipoaura = 30 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo) efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo) -- Função que chama a aura function efeitosAura(i,tm,cid) if(isCreature(cid)) then local atual = getCreaturePosition(cid) local posaura = { {x=(atual.x)-1, y=(atual.y)-1, z=atual.z}, {x=atual.x, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=atual.y, z=atual.z}, {x=(atual.x)+1, y=(atual.y)+1, z=atual.z}, {x=atual.x, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=atual.y, z=atual.z}, } local chances = math.random(100) if(chances<=porcentagem/8 and getCreatureHealth(cid)<getCreatureMaxHealth(cid)) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal) if(i<=8 and i>1) then doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, atual, tipoaura) else doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura) end doSendMagicEffect(atual, efeitocura) end if(i==8) then doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura) elseif(i<8) then doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura) end if(i<=8 and getPlayerStorageValue(cid, aurastr)==2) then i = i+1 tm = tempo/8 return addEvent(efeitosAura,tm,i,tm,cid) elseif(i>8 and getPlayerStorageValue(cid, aurastr)==2) then return efeitosAura(1,0,cid) else return TRUE end else return TRUE end end -- Função principal function onSay(cid, words, param, channel) if(param=="on") then if getPlayerStorageValue(cid, estr) > os.time() then doPlayerSendCancel(cid, "Espere "..(getPlayerStorageValue(cid, estr) - os.time()).." segundos para poder habilitar aura novamente.") else if(getPlayerStorageValue(cid, aurastr)==2) then doPlayerSendCancel(cid,"Sua aura já está habilitada.") elseif(getPlayerStorageValue(cid, aurastr)==-1) then doPlayerSendCancel(cid,"Aura ligada!") setPlayerStorageValue(cid, aurastr, 2) efeitosAura(1,tempo/8,cid) end end elseif(param=="off") then if(getPlayerStorageValue(cid, aurastr)==2) then setPlayerStorageValue(cid, estr, os.time()+2) setPlayerStorageValue(cid, aurastr, -1) doPlayerSendCancel(cid,"Aura desligada!") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite '!aura on' para ligar sua aura, e '!aura off' para desligá-la.") end return TRUE end Logo após vá na em talkactions.xml, e cole o seguinte trecho : <talkaction words="!aura" event="script" value="aura.lua"/> E também, dentro do arquivo login.lua, localizado na pasta creatureevents\scripts, logo abaixo de "function onLogin(cid)", cole o seguinte trecho : aurastr = 25950 -- storage da aura setPlayerStorageValue(cid, aurastr, -1) As configurações estão comentadas, então agora é só colocar suas preferências, aproveitar e usar. Lembrando que você pode mudar os efeitos da aura, o tempo de cada volta da aura(que é recomendável não mexer, se deixar o efeito padrão do script, que no caso é o efeito de luz), a quantidade de hp que o jogador irá restaurar e a porcentagem de chance que o jogador tem de recuperar hp em cada volta (pode recuperar hp mais de uma vez em uma mesma volta da aura). Fica ao seu dispor se deseja colocar se apenas vips usam a aura no script ou não, eu não incrementei pois estou meio sem tempo, mas não é algo difícil de se fazer. Obrigado, e bom proveito! OBS : Tomem bastante cuidado ao dar reload no talkactions no server enquanto há auras em ação, elas serão desativadas, e todos os players terão que desligá-las, e ligá-las novamente. (!aura off, e em seguida !aura on)
  20. dectroer

    (8.6) Nto Online

    Spam Double Exp todo final de semana! 7 eventos diários! Mais de 70 quests disponíveis! Server sempre atualizado com mais de 80 vocações!(Ultimo add Han) Mais de 100 skins para customizar seu personagem! Sistema de Rank Ninja! Sistema de resets! Sistema de upgrades! Jinchuriku, Edo tensei e muito mais! Clique Aqui para acessar o site do NTO. Opinião Pessoal Mesmo parecendo um NTO padrão, é muito nostálgico e agradável, além de não ter vip dias ou seja, é possivel adquirir coisas vips com facilidade, mas claro que existe a loja para ajudar o servidor. As vocations iniciais são: naruto, sasuke, lee, shikamaru, neji, tenten, hinata, kakashi, killer bee, sakura, gaara, kiba, itachi, tobi, yamato, raikage, kisame, kankuro, orochimaru, anbu, mei terumi, maito gai Existe Classes: Sendo essas glove, sword, cetro e distancia, além disso é possivel evoluir e melhorar equipamentos dentro do jogo, conseguindo melhoria no set ou arma ou até mesmo escudo, como regeneração melhorada ou roubo de vida/chakra. Obs.: O NTO pode parecer que tenha uma velocidade de evoluir rápido e isso pode parecer ruim mas as principais quest's não são fáceis de fazer e existe varias delas.
  21. Olá pessoal, vocês provavelmente já deve ter visto este mesmo tutorial feito por mim postado nos tutoriais de mapping, bem, de fato, estou reformulando ele, acrescentando informações e arrumando o necessário. Modificando Seu Map Editor •Sumário• Grounds Grounds (z-order) Grounds (telhados) Doodads Doodads (efeito 3 em 1 [1]) Doodads (efeito 3 em 1 [2]) IMPORTANTE Faça um BACKUP do seu map editor antes de começar as modificações! GROUNDS Primeiramente, vou ensiná-lo a adicionar grounds ao seu map editor, siga os passos: PASSO 1: Abra seu map editor! PASSO 2: Escolher o que iremos modificar, no caso, vamos fazer um ground novo com auto-border. Vamos trabalhar com o TILE de ID: 11077, é um mais recente, se o seu não estiver com esse id procure por outro PASSO 3: abra a pasta do RME/data/8.6 e abra o arquivo grounds.xml (não esqueça de fazer um backup) PASSO 4: Vá até o final do script e antes da linha onde tem </materials> Adicione: <brush name="X1" type="ground" server_lookid="x2" z-order="4000"> <item id="X3" chance="2500"/> <border align="outer" id="999"/> <border align="inner" to="none" id="1"/> </brush> X1: Nome do seu novo ground x2: ID do ground X3: ID do ground Oresto nao mexa! se for adicionar outra ground so vai mudar esta linha <border align="outer" id="999"/> de 999 para 998, não pode ter igual no script PASSO 5: Agora na pasta do seu rme também e data/8.6 procure pelo script tilesets.xml, abra-o, aperte CTRL + F e coloque 'terrain', ele vai te levar até a linha, lá coloque na primeira linha: <brush name="NOME DO SEU ITEM"/> Salve e fexe junto com o ground. Vá em nature, e lá vai estar o seu item, no auto-border! PASSO 6: agora vamos adicionar borda ao ground. vá na pasta do rme em data/8.6 e abra o script borders. outra vez vá até o final do script e antes de </materials> Adicione: <border id="999"> <borderitem edge="n" item="a"/> <borderitem edge="e" item="b"/> <borderitem edge="s" item="c"/> <borderitem edge="w" item="d"/> <borderitem edge="cnw" item="e"/> <borderitem edge="cne" item="f"/> <borderitem edge="csw" item="g"/> <borderitem edge="cse" item="h"/> <borderitem edge="dnw" item="i"/> <borderitem edge="dne" item="j"/> <borderitem edge="dsw" item="k"/> <borderitem edge="dse" item="l"/> </border> Perceba que ali no border id foi colocado 999, que está também no group, isso serve para eles ficarem interligados. Agora é a parte mais complicada, mas eu resumi para voces, cada letra a cima represeta uma direção, norte, sul, leste, oeste, centroeste, etc.. Se o seu id for diferente procure pela imagem A= 11016 B= 11017 C= 11018 D= 11019 E= 11020 F= 11021 G= 11022 H= 11023 I= 11024 J= 11025 K= 11026 L= 11027 No meu caso usando esses ids meu script vai ficar assim: <border id="999"> <borderitem edge="n" item="11016"/> <borderitem edge="e" item="11017"/> <borderitem edge="s" item="11018"/> <borderitem edge="w" item="11019"/> <borderitem edge="cnw" item="11020"/> <borderitem edge="cne" item="11021"/> <borderitem edge="csw" item="11022"/> <borderitem edge="cse" item="11023"/> <borderitem edge="dnw" item="11024"/> <borderitem edge="dne" item="11025"/> <borderitem edge="dsw" item="11026"/> <borderitem edge="dse" item="11027"/> </border> Exemplo: Z-ORDER Agora mostrarei a função do Z-order Observem: <brush name="grass" type="ground" server_lookid="4526" z-order="3500"> <item id="4526" chance="2500"/> <item id="4527" chance="10"/> <item id="4528" chance="25"/> <item id="4529" chance="25"/> <item id="4530" chance="25"/> <item id="4531" chance="25"/> <item id="4532" chance="25"/> <item id="4533" chance="25"/> <item id="4534" chance="15"/> <item id="4535" chance="25"/> <item id="4536" chance="25"/> <item id="4537" chance="25"/> <item id="4538" chance="20"/> <item id="4539" chance="20"/> <item id="4540" chance="20"/> <item id="4541" chance="20"/> <item id="470" chance="0"/> <border align="outer" id="2"/> <border align="inner" to="none" id="1"/> </brush> Nos outros tutoriais eu não expliquei essa parta justamente para deixar mais simples agora, perceba que este é o grass com a borda pequena, ou seja, após adicionado o grass no piso e em seguida outros grounds ele vai ficar assim: Mas se mudarmos a z-order dele para 9000 vai ficar diferente: Isso acontece quando o z-order dele passa a ficar maior que o dos outros, então, fica por cima dos mesmos. Se mudarmos o z-order do grass de 9000 para 0, todas as outras bordas vão ficar por cima, por exemplo: Isso acontece por que o z-order dos outros tiles ficou maior que o grass. •--• •--• •--• •--• •--• •--• •--• •--• •--• •--• •--• •--• •--• •--• A próxima função é a friend name: <brush name="grass (alternate border)" type="ground" server_lookid="9044" z-order="5100"> <item id="9043" chance="2500"/> <item id="9044" chance="10"/> <item id="9045" chance="25"/> <item id="9046" chance="25"/> <item id="9047" chance="25"/> <item id="9048" chance="25"/> <item id="9049" chance="25"/> <item id="9050" chance="25"/> <item id="9051" chance="15"/> <item id="9052" chance="25"/> <item id="9053" chance="25"/> <item id="9054" chance="25"/> <item id="9055" chance="20"/> <item id="9056" chance="20"/> <item id="9057" chance="20"/> <item id="9058" chance="20"/> <border align="outer" id="120"/> <border align="outer" to="none" id="120"/> <friend name="grass"/> </brush> <friend name="grass"/> É bem simples! Ao adicionar este ground no grass normal, não vai criar borda, pois os dois são 'verdes' (iguais) e não é preciso, veja o que acontece quando tem essa tag e quando não tem: Agora algo mais simples chance="1"/> Que tem em todos os grounds, você ja deve saber o que seria, no caso, se tivermos um ground com 5 pisos diferentes: chance="100"/> chance="90"/> chance="80"/> chance="70"/> chance="60"/> O Maior numero (chance) vai ser o tile que mais vai sair no mapa. Caso encontre as seguintes tags: <border super="true" align="inner" ground_equivalent="777"> <border super="true" align="inner" to="none" ground_equivalent="777"> Não se assuste! Estas duas tags classificam ele, para que não aja outra borda na hora de adicionar no mapa, e sim o própio ground, é como se a borda fosse para dentro, veja na imagem: TELHADOS Vou lhes ensinar a construir grounds em forma de telhado, grounds normais ao adicionados no mapa 'escuro' não criam borda, mas os 'roofs' sim, é bem simples Novamente grounds.xml antes de: </materials> Adicione: <brush name="Telhado" type="ground" server_lookid="10884" z-order="8000"> <item id="10884" chance="1"/> <border align="outer" to="none" id="998"/> </brush> No server_lookid só ponha o id do seu telhado, no item id, o id do telhado também, perceba que no border align eu coloquei 998, lembra no tutorial 1 que era 999? não pode repetir então preste atenção pra não fazer 'cagada'. Após ter adicionado isso no script abra o borders.xml Vá até o final e antes da linha: </materials> Adicione: <border id="998"> <borderitem edge="n" item="x"/> <borderitem edge="w" item="x"/> <borderitem edge="s" item="x"/> <borderitem edge="e" item="x"/> <borderitem edge="cnw" item="y"/> <borderitem edge="cne" item="y"/> <borderitem edge="csw" item="y"/> <borderitem edge="cse" item="y"/> <borderitem edge="dnw" item="z"/> <borderitem edge="dne" item="z"/> <borderitem edge="dsw" item="z"/> <borderitem edge="dse" item="z"/> </border> Esta parte é igual ao outro tutorial, você vai substituir o x pela seguinte ordem: X: Y: Z: Após ter feito isso (se a ordem de IDS do seu map estiver igual ao meu) vai ficar assim: <border id="998"> <borderitem edge="n" item="10889"/> <borderitem edge="w" item="10891"/> <borderitem edge="s" item="10886"/> <borderitem edge="e" item="10892"/> <borderitem edge="cnw" item="10890"/> <borderitem edge="cne" item="10888"/> <borderitem edge="csw" item="10887"/> <borderitem edge="cse" item="10885"/> <borderitem edge="dnw" item="10896"/> <borderitem edge="dne" item="10895"/> <borderitem edge="dsw" item="10894"/> <borderitem edge="dse" item="10893"/> </border> Após ter feito isso vá em data/8.6 e abra o tilesets.xml de ctrl + f e digite: Roofs Na primeira linha coloque: <brush name="Telhado"/> Abra o RME, vá em terrain/roofs. Resultado: DOODADS Vamos Trabalhar com o grass tuft (morto) Procure pelo id: 10737-10740 ou veja pela imagem: Abra a data/8.6 do seu map editor e vá em doodad.xml, antes da linha: </materials> Coloque: <brush name="Nature Morta" type="doodad" server_lookid="x" draggable="y" on_blocking="false" thickness="25/100"> <item id="z" chance="4"/> <item id="z" chance="10"/> <item id="z" chance="10"/> <item id="z" chance="10"/> </brush> X: ID Do item, a imagem que vai aparecer la no auto-border Y: Esta opção vai dizer se o grass poderá ser colocado no escuro sem nada em baixo ou somente em cima de um ground, veja a imagem. (exemplo) Z: ID dos grass tufts marrons, coloque o id dos 4, no meu caso vai ficar assim ! <brush name="Nature Morta" type="doodad" server_lookid="10740" draggable="true" on_blocking="false" thickness="25/100"> <item id="10740" chance="4"/> <item id="10739" chance="10"/> <item id="10738" chance="10"/> <item id="10737" chance="10"/> </brush> Agora abra o tilesets.xml, de CTRL + F e digite 'nature' e desca até doodad Pronto já pode utilizar sua nova auto-border! Também no doodad.xml antes da linha: </materials> Adicione: <brush name="Nature Morta2" type="doodad" server_lookid="x" draggable="true" on_blocking="false" thickness="10/100"> <item id="y" chance="70"/> <item id="y" chance="60"/> <item id="y" chance="50"/> <item id="y" chance="40"/> <item id="y" chance="30"/> <item id="y" chance="20"/> <item id="y" chance="10"/> </brush> E Utilizando esses itens: Vai ficar assim: <brush name="Nature Morta2" type="doodad" server_lookid="10735" draggable="true" on_blocking="false" thickness="10/100"> <item id="10741" chance="70"/> <item id="10743" chance="60"/> <item id="10742" chance="50"/> <item id="10764" chance="40"/> <item id="10736" chance="30"/> <item id="10763" chance="20"/> <item id="10735" chance="10"/> </brush> Agora vá em tilesets.xml de ctrl + f 'nature' vá em doodad e adicione <brush name="Nature Morta"/> Abra o mapa editor e divirta-se ! DOODAD 3 EM 1 Como você viu, essa imagem ao lado do título é um item formado por vários outros itens posicionados estrategicamente pelo map editor, existe uma função que faz você criar um item que adicione tudo de uma vez: vamos trabalhar o item id 11385~11392 vá em data/8.6 e abra o doodads.xml Vá até a ultima linha e antes da linha: </materials> Adicione: <brush name="estatuanova" type="doodad" server_lookid="11387" draggable="true" on_blocking="true" thickness="15/100"> <composite chance="10"> <tile x="0" y="0" z="0"> <item id="11389"/> </tile> <tile x="1" y="0" z="0"> <item id="11387"/> </tile> <tile x="2" y="0" z="0"> <item id="11390"/> </tile> <tile x="1" y="0" z="-1"> <item id="11385"/> </tile> <tile x="0" y="-1" z="-1"> <item id="11392"/> </tile> </composite> </brush> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- •• <brush name="estatuanova" type="doodad" server_lookid="11387" draggable="true" on_blocking="true" thickness="15/100"> <composite chance="10"> Brush name: Nome do item que será adicionado no mapa editor! server_lookid: ID do item cuja a imagem aparecerá na palette. draggable: Avançado, será esplicado melhor em outro tutorial, não mexa. on_blocking: Será explicado em outro tutorial, não mexa. thickness: Será explicado em outro tutorial, não mexa. Composite chance: Não mexa. <tile x="0" y="0" z="0"> <item id="11389"/> </tile> <tile x="1" y="0" z="0"> <item id="11387"/> </tile> <tile x="2" y="0" z="0"> <item id="11390"/> </tile> <tile x="1" y="0" z="-1"> <item id="11385"/> </tile> <tile x="0" y="-1" z="-1"> <item id="11392"/> </tile> Perceba que o X=0 no momento isso significa que X=Y=Z quando X=0 Se X for Igual a 1 ele pularia um Piso a direita > / Se Y for igual a 1 ele pularia um piso a para baixo (sendo Y=\/ [1] e Y=/\ [-1] < / Se Z For igual a 0 ele permanece no mesmo andar (7), porém quando o Z for igual a -1 ele Subira um andar (6). OOOOO OOOOO OOOOO Se o item X for 0 ele permanecerá na posição: XOOOO OOOOO OOOOO Se o item X for 1 ele mudará para posição (>) OXOOO OOOOO OOOOO Se o item X for -1 ele mudará para a posição (<) X OOOOO OOOOO OOOOO Se o item Y for 0 ele permanecerá na mesma posição XOOOO OOOOO OOOOO OU OXOOO OOOOO OOOOO Se o item Y for 1 ele decerá um piso OOOOO XOOOO OOOOO Se o item Y for -1 ele subirá um piso X OOOOO OOOOO OOOOO Se o item Z for 0 ele permanecerá no floor autal (7) OOOOO OOOOO OOOOO Se o item Z for 1 ele decerá para o floor (8) -- Se o item Z for -1 ele subira para o floor (6) -- ItemID: Coloque o id do item conforme o X,Y,Z Vamos ver outro exemplo ! Sabemos que: X=0 - Permanece no Local X= -1 - Pula um piso a esquerda X=1 - Pula um piso a direita Então: X=0 - X=-1 < X=1 > Vamos pegar os IDS 11385-11392! O ID 11389 vai ser o primeiro o X dele seria X=0 - Y=nulo Z=nulo Ele é o primeiro mas não é o centro! O ID 11387 vai ser o segundo no X o X dele vai ser X=1 (lembrando que x pula uma casa a direita, veja a imagem) Y=nulo Z=nulo O ID 11390 vai ser o terceiro na ordem X o X dele deve ser X=2 (por que ele pulou dois pisos a direita) Y=nulo Z=nulo O ID 11385 vai ser o primeiro na Ordem X porém no floor (7) Sendo assim o X dele Sera X=2, pois ele esta depois do id 11389 Y=nulo Z=-1 (lembrando que o Z=-1 sobe um andar) O ID 11392 será o negativo na ordem Y porém positivo 1 Na ordem X Sendo que está para > (direita) X=1 Sendo que Y negativo sobe uma casa Y=-1 Sendo que ele está no mesmo floor que o id 11385 Z=-1 Por último abra o tilesets.xml, pressione Ctrl + f e digite TOWN, coloque a linha: <brush name="estatuanova"/> DOODAD 3 EM 1 [2] Dando continuidade ao Doodads vou lhes ensinar a fazer Doodads 'ALTERNATIVE', sabe alguns itens do mapa editor que você preciona a tecla 'Z' e o item muda de direção (lado)? É Praticamente isso. Vamos trabalhar com os seguintes itens : ID: 11868-11887 ID: 11868-11887 ID: 11915-11916 Vamos Começar com o mais simples ! Abra a pasta do Map editor e vá em data/8.6/doodads.xml Como sempre antes da linha: </materials> Adicione: <brush name="novo1" type="doodad" server_lookid="A" draggable="true" on_blocking="false" thickness="10/10"> <alternate> <item id="B" chance="10"/> </alternate> <alternate> <item id="C" chance="10"/> </alternate> </brush> A: id do item, o que vai ficar de imagem no palette B: id do item normal, quando for adicionado, vamos colocar o id da tocha apagada C: id do segundo item, ou seja, quando você apertar 'Z' vai aparecer este item. Vai ficar assim: <brush name="novo1" type="doodad" server_lookid="11915" draggable="true" on_blocking="false" thickness="10/10"> <alternate> <item id="11915" chance="10"/> </alternate> <alternate> <item id="11916" chance="10"/> </alternate> </brush> Vá em tilesets.xml de ctrl + f, digite town e coloque: <brush name="Nature Morta"/> Agora na hora de abrir coloque sua tocha no mapa, depois aperte Z, perceba que ela vai mudar ! Normal: Depois que apertou o Z: Agora vamos complicar um pouco: Abra o doodads.xml novamente e adicione o script: <brush name="novo2" type="doodad" server_lookid="XXXX" draggable="true" on_blocking="true" thickness="10/10"> <alternate> <composite chance="10"> <tile x="0" y="0" z="0"> <item id="XXXX"/> </tile> <tile x="1" y="0" z="0"> <item id="XXXX"/> </tile> <tile x="2" y="0" z="0"> <item id="XXXX"/> </tile> <tile x="0" y="1" z="0"> <item id="XXXX"/> </tile> <tile x="1" y="1" z="0"> <item id="XXXX"/> </tile> <tile x="2" y="1" z="0"> <item id="XXXX"/> </tile> <tile x="0" y="2" z="0"> <item id="XXXX"/> </tile> <tile x="1" y="2" z="0"> <item id="XXXX"/> </tile> <tile x="2" y="2" z="0"> <item id="XXXX"/> </tile> <tile x="0" y="3" z="0"> <item id="XXXX"/> </tile> <tile x="1" y="3" z="0"> <item id="XXXX"/> </tile> <tile x="2" y="3" z="0"> <item id="XXXX"/> </tile> </composite> </alternate> <alternate> <composite chance="10"> <tile x="0" y="0" z="0"> <item id="XXXX"/> </tile> </composite> </alternate> </brush> O server_lookid como sempre é a imagem do item, qualquer item eu vou colocar o id 11856. Vamos trabalhar: Temos X=Y=Z sendo X=0 significa que se X=Y=Z permanece no local atual, então vamos adicionar o primeiro item Vamos usar os numeros 1-12 para representar cada ID O Item id 1 já está pronto ! Sendo que o itemid 2 está a uma posição a direita ele fica como X=1 Y=0 Z=0 Sendo que o itemid 3 está dois pisos a direita ele aumenta um X sendo: X=2 Y=0 Z=0 Sendo que o itemid 4 permanece na posição do itemid 1 porém uma casa abaixo ele fica X=0 Y=1 Z=0 Sendo que o itemid 5 permanece na posição Y porém uma casa a direita ele aumenta um X ficando: X=1 Y=1 Z=0 Sendo que o itemid 6 permanece na posição X e pula dois pisos a direita ele fica: X=2 Y=1 z=0 Sendo que o itemid 7 desce duas casas o Y dele é modificado porém ele permanece no X do primeiro item ficando: X=0 Y=2 Z=0 Sendo que o itemid 8 fica na mesma posição Y do itemid 7 só pulando uma casa a direita ele fica: X=1 Y=2 Z=0 Sendo que o itemid 9 fica na mesma posição X do itemid 7 pulando duas casas ele fica: X=2 Y=2 Z=0 Sendo que o itemid 10 permanece no X pulando ters casas para baixo o Y dele é o ultimo positivo ficando: X=0 Y=3 Z=0 Sendo que o itemid 11 permanece com o ultimo Y positivo pulando uma casa a direita só modifica o X ficando: X=1 Y=3 Z=0 Sendo que o itemid 12 é o ultimo na posição Y só modifica o X, que pula duas casas, ficando ! X=2 Y=3 Z=0 Modo avançado: [1] - x/y/z = 0/0/0 [2] - x/y/z = 1/0/0 [3] - x/y/z = 2/0/0 [4] - x/y/z = 0/1/0 [5] - x/y/z = 1/1/0 [6] - x/y/z = 2/1/0 [7] - x/y/z = 0/2/0 [8] - x/y/z = 1/2/0 [9] - x/y/z = 2/2/0 [10] - x/y/z = 0/3/0 [11] - x/y/z = 1/3/0 [12] - x/y/z = 2/3/0 O resultado fica: <alternate> <composite chance="10"> <tile x="0" y="0" z="0"> <item id="11868"/> </tile> <tile x="1" y="0" z="0"> <item id="11864"/> </tile> <tile x="2" y="0" z="0"> <item id="11873"/> </tile> <tile x="0" y="1" z="0"> <item id="11869"/> </tile> <tile x="1" y="1" z="0"> <item id="11856"/> </tile> <tile x="2" y="1" z="0"> <item id="11874"/> </tile> <tile x="0" y="2" z="0"> <item id="11870"/> </tile> <tile x="1" y="2" z="0"> <item id="11856"/> </tile> <tile x="2" y="2" z="0"> <item id="11876"/> </tile> <tile x="0" y="3" z="0"> <item id="11871"/> </tile> <tile x="1" y="3" z="0"> <item id="11856"/> </tile> <tile x="2" y="3" z="0"> <item id="11877"/> </tile> </composite> </alternate> Agora como estamos estudando utilizar o 'Z' vamos acrescentar no script: <composite chance="10"> <tile x="0" y="0" z="0"> <item id="11878"/> </tile> <tile x="1" y="0" z="0"> <item id="11879"/> </tile> <tile x="2" y="0" z="0"> <item id="11881"/> </tile> <tile x="3" y="0" z="0"> <item id="11882"/> </tile> <tile x="0" y="1" z="0"> <item id="11865"/> </tile> <tile x="1" y="1" z="0"> <item id="11860"/> </tile> <tile x="2" y="1" z="0"> <item id="11860"/> </tile> <tile x="3" y="1" z="0"> <item id="11860"/> </tile> <tile x="0" y="2" z="0"> <item id="11883"/> </tile> <tile x="1" y="2" z="0"> <item id="11884"/> </tile> <tile x="2" y="2" z="0"> <item id="11886"/> </tile> <tile x="3" y="2" z="0"> <item id="11887"/> </tile> </composite> O Meu ja está feito, porém esse /\ é diferente do anterior não confunda ! Como eu ja fiz e expliquei em cima eu vou passar a formula do segundo ra vocês intenderem melhor: [1] - x/y/z = 0/0/0 [2] - x/y/z = 1/0/0 [3] - x/y/z = 2/0/0 [4] - x/y/z = 3/0/0 [5] - x/y/z = 0/1/0 [6] - x/y/z = 1/1/0 [7] - x/y/z = 2/1/0 [8] - x/y/z = 3/1/0 [9] - x/y/z = 0/2/0 [10] - x/y/z = 1/2/0 [11] - x/y/z = 2/2/0 [12] - x/y/z = 3/2/0 Juntando tudo e adicionando: <alternate> </alternate> O Script fica: <brush name="novo2" type="doodad" server_lookid="11856" draggable="true" on_blocking="true" thickness="10/10"> <alternate> <composite chance="10"> <tile x="0" y="0" z="0"> <item id="11868"/> </tile> <tile x="1" y="0" z="0"> <item id="11864"/> </tile> <tile x="2" y="0" z="0"> <item id="11873"/> </tile> <tile x="0" y="1" z="0"> <item id="11869"/> </tile> <tile x="1" y="1" z="0"> <item id="11856"/> </tile> <tile x="2" y="1" z="0"> <item id="11874"/> </tile> <tile x="0" y="2" z="0"> <item id="11870"/> </tile> <tile x="1" y="2" z="0"> <item id="11856"/> </tile> <tile x="2" y="2" z="0"> <item id="11876"/> </tile> <tile x="0" y="3" z="0"> <item id="11871"/> </tile> <tile x="1" y="3" z="0"> <item id="11856"/> </tile> <tile x="2" y="3" z="0"> <item id="11877"/> </tile> </composite> </alternate> <alternate> <composite chance="10"> <tile x="0" y="0" z="0"> <item id="11878"/> </tile> <tile x="1" y="0" z="0"> <item id="11879"/> </tile> <tile x="2" y="0" z="0"> <item id="11881"/> </tile> <tile x="3" y="0" z="0"> <item id="11882"/> </tile> <tile x="0" y="1" z="0"> <item id="11865"/> </tile> <tile x="1" y="1" z="0"> <item id="11860"/> </tile> <tile x="2" y="1" z="0"> <item id="11860"/> </tile> <tile x="3" y="1" z="0"> <item id="11860"/> </tile> <tile x="0" y="2" z="0"> <item id="11883"/> </tile> <tile x="1" y="2" z="0"> <item id="11884"/> </tile> <tile x="2" y="2" z="0"> <item id="11886"/> </tile> <tile x="3" y="2" z="0"> <item id="11887"/> </tile> </composite> </alternate> </brush> Agora abra o map editor, selecione o item e coloque no mapa, se você apertar a tecla Z vai mudar a ponte, pra cima ou pro lado
  22. Sistema De Refinação Olá Galera Do Xtibia Primeira Mente Quero Fala Que Esse È o meu Primeiro Topico Entao Porfavor Pode Dexa Suas Criticas Em Baixo Bom O Script Que venho trazer Aqui Hoje Para O Xtibia E Um Sistema De Refinação, Sei Que Ja tem Algums Sistema De Refinação No Xtibia Mais Esse Esta Diferente Bom Na Verdade São 2 Script De Refinação o 1º Quando Falha A Refinação O Item Quebra o 2º Quando Falha Em vez De volta 1 Ou Quebra, O Item Fica Como Esta Ex: Se o Item Ta +5 E falha ele Continua +5 Entao Vamos La! Vai Em: Data/actions/scripts/upgrade.lua Adicione A seguinte Tag: <action itemid="8300" event="script" value="upgrade.lua"/> Agora O 2 Script Em: Data\actions\scripts\upgrade2.lua Bom Seria esse O Script!! Creditos: by Mock the bear (MTB) > Por Produzir O Script Isac313 "Eu" > Por Melhorar O Script Ajudei?? Da REP+ Aew? Atenciosamente: Isac313
  23. PRECISANDO DE MAIS PLAYERS? E se eu te disser que em 3 passos simples você engaja um marketing certeiro para o seu servidor de GRAÇA? É sério, você não precisa clicar em nenhum anúncio ou pagar qualquer centavo. Hoje, graças à forte comunidade brasileira de open tibia, você pode ter seu ATS de tibia com mais de 1000 players, se seguir o rumo certo. Tirando os gastos com a hospedagem do servidor (da qual recomendamos a utilização da otpanel) você normalmente tem gastos com promotes no facebook, compra de banners em sites, pagamentos na lista .org para não ser banido... aquela mesma historinha de sempre. Vamos direto ao ponto! 1 Tendo o servidor online, sem bugs e pronto para lançamento: faça login com seu facebook na otserv-list.com (é 100% seguro e seu e-mail não é compartilhado com ninguém). Clique aqui para logar na otserv-list.com. 2 Agora que está logado na lista, o próximo passo é cadastrar o seu servidor gratuitamente. Para fazer isto, clique no botão visível no topo do site ou acessando o painel de controle, veja as imagens: 3 Estamos quase lá, seu servidor já está cadastrado e recebendo novos players. Agora o próximo passo é expandir sua divulgação, mostrando um pouco mais do servidor aos players. Você pode editar a vontade a descrição do seu servidor na otserv-list.com, mas não da pra adicionar imagens ou vídeos. Não tem problema, basta colar lá na descrição o link de um tópico que você vai criar aqui: http://www.xtibia.com/forum/forum/1179-otservlist/?do=add. Para isso, você precisará de uma account no xtibia, leva menos de 1 minuto para criar! Compre um promote especial na lista e receba 15% de desconto na compra de um anúncio no xtibia. Fale com: Contato@xtibia.com
  24. TIBIA LITHUANIA STARTS SOON IP: tibia.lt Port: 7171 Client: Tibia 12.87 Uptime: 24/7 Hosted in: Lithuania, on a dedicated server with 100 mbits Internet connection. Website: https://www.tibia.lt Exp rate: 10x Map: Real MAP. It contains all cities and quests Runes: Normal charges and prices Loot rate: 2x Server type: PVP. 5 kills gives you Red skull and 8 lends you to a ban. Skills & Magic rates: 5x Skill and 5x Magic. More Features: Real Tibia Map and Quests Real Outfits and Mounts Addons system Events [Start date 07/08/2022 16:00 GTM+3]
  25. AVISO: Faça backup (cópia) dos arquivos para evitar dor de cabeça. Eu customizei esse map editor para uso pessoal, mas resolvi postar porque a comunidade OT precisa de mais conteúdo. Eu não fiz isso tudo sozinho, tem varias extensões de outros fóruns, os créditos aos usuários estão descritos nelas. Scan: Clique aqui Download: Clique aqui Como Instalar: Pressione a tecla com bandeira do windows + r, digite %appdata%, provavelmente você vai está na pasta roaming, delete a pasta remeres que estiver ai, se não tiver, apenas copie a pasta Remere's Map Editor que está dentro do arquivo winrar que você baixou, agora vá em arquivos de programas (C:\Program Files (x86) e crie uma pasta com o nome Remere's Map Editor e cole os outros arquivos estão dentro do arquivo rar.
×
×
  • Criar Novo...