Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 04/11/15 em todas áreas

  1. [MiniGame] Acerte o Alvo

    Androgyno e 2 outros reagiu a Dr Slump BR por uma resposta no tópico

    3 pontos
    Eu olhei diversos pedidos do MiniGame Ecerte o Pombo (Tiro ao Alvo), como eu tenho resolvi compartilhar com vocês vamos lá... instalação: vai em data/lib crie um arquivo chamado Minigame Flecha.lua e cole isso dentro: feche e salve. agora vai em data/actions/scripts e crie um arquivo chamado Minigame Flecha.lua e cole isso dentro: agora vai em actions.xml e adiciona essa tag: <action actionid="4619-4624" event="script" value="Minigame Flecha.lua"/> Pronto sistema implantado em seu servidor. agora vamos para a explicação: ------------------------------------------------------------------------------------------------------------------------------------------------------------------- explicação: aqui em: if item.actionid == 4619 then é o action ID que você vai colocar na porta onde o player ira dar use para começar a jogar aqui em: playerPos = {x = 391, y = 165, z = 7}, é a posição que o player vai quando clicar na porta aqui em: birdPos = {x = 386, y = 165, z = 7}, é a posição que o monstro vai nascer (não precisa adiciona-lo no Map Editor) aqui em: fromPos = {x = 385, y = 160, z = 7}, toPos = {x = 391, y = 169, z = 7}}) é a área em que o pombo vai andar para se esquivar do jogador. veja as imagens como exemplo: bom é isso, duvidas? poste nos comentários que eu irei responder. Testado em: OTX Server 2, Versão 8.6 créditos: Igor Souza Sena Dr SLump BR VictorSilva
  2. [Download] Sprites Ot Pokémon V 10.1

    charas e um outro reagiu a Kenny Dxp por uma resposta no tópico

    2 pontos
    Fala galera to tibiaking hoje estou aqui para postar as novas sprites do otp update data [06/04/2015] Download Sprites -> http://www.mediafire.com/download/p9lxa7xq57oaxaf/otp+sprites+By+Kenny.rar Scan -> https://www.virustotal.com/pt/file/a69fbba122e2644be047cfedd58eea4f7561c5750f93ef447cee9235c7c6e69a/analysis/1428322350/ Meu face www.facebook.com/kenny.fentons Printes Do que tem Créditos: Otpokemon.com - pelas sprites Kenny Dxp eu - por decompilar e postar.
  3. Yveltal - Antes e Depois #5

    Jughead e um outro reagiu a Factur por uma resposta no tópico

    2 pontos
    Fala galera beleza? Venho trazendo outra vez o Antes e Depois, Desta vez é o #5 com o Yveltal Pra quem não sabe Antes e Depois é um jogo no qual todos podem participar, PS: Você tem que ir no google, pesquiar uma imagem, ápos achar VOCÊ MESMO edita ela e faz um topico igual o meu ou diferente mostrando como tava Antes e como esta Agora. ______________________________________________________ ANTES ______________________________________________________ DEPOIS ______________________________________________________ Antes e Depois 4 << >> Antes e depois 6
  4. fis um Bills meio diferente do DboUltimate,pra quem fala "Ta Igualzinho o Do DboUltimate não muda nada",vou cita ums Pontos pra percebe q o meu e o dele tao diferente a abaixo da img,tambem fis a Kagome do DboBr q me pedirão só q n saiu muito boa,e tambem fis o Goku e o Vegeta de 1 Jogo q me pedirão pra fazer,e postei aki,gostaria de Sabe se auguem tem algum palpite pra eu melhora elas...,se tivér só fala ai que eu refaço :
  5. 1 ponto
    Olá KingTibianos A pedido de um membro, vou postar um tutorial de como criar um NPC. Explicando detalhadamente. Primeiramente, cada npc se encontra em data/npcs no seu ot. Vou postar aqui como exemplo um NPC que venda algumas coisas: <?xml version="1.0" encoding="UTF-8"?> <npc name="Paul" script="default.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="129" head="57" body="86" legs="0" feet="114" addons="2"/> <parameters> <parameter key="module_shop" value="1"/> <parameter key="shop_sellable" value="crossbow,2455,150;bow,2456,130"/> <parameter key="shop_buyable" value="crossbow,2455,360;bow,2456,200;spear,2389,10;royal spear,7378,25;assassin star,7368,200;power bolt,2547,30;bolt,2543,3;arrow,2544,2;"/> </parameters> </npc> Explicando: <?xml version="1.0" encoding="UTF-8"?> Especifica o tipo de linguagem usada no script. Não altere. npc name = Nome do NPC script = Endereço do Script. Default é o padrão. walkinterval = O intervalo de tempo em que o NPC anda. floorchange = Se ele "troca de chão", ou seja se ele se movimenta. healthnow = Tanto de vida que o Npc está no momento. Geralmente modificado em caso de "quests" específicas. max = O tanto de vida máximo dele. Este deve ser maior que o healthnow. looktype = Roupa usada, você pode ver as roupas no arquivo: data/XML/outfits.xml head, body, legs, feet = A cor da roupa, eu não tenho agora, mas vou provicenciar o pack das cores. addon = Se usa algum addon. 1 para o 1°, 2 para o 2°, 3 para os dois. <parameters> = Define que abaixo começará uma série de códigos parâmetros. module_shop = Módulo, usado. No caso aqui, é shop.. compras/vendas. shop_sellable = Define o que o NPC lhe oferece para vender. value = Determina as Id's, Nomes e Preços. crossbow,2455,150; = Primeiro "crossbow" nome que aparecerá na janela de "venda" do NPC, ID do item, Preço do Item; shop_buyable = Define o que o NPC irá lhe oferece para comprar Como colocar no RME Map Editor (Atual usado): 1° Abra o RME, juntamente ao seu mapa. 2° Clique em File>Import>Importar Monsters/NPC 3° Clique no arquivo XML acima criado 4° De um F5 para garantir o aparecimento do NPC 5° Vá em Window e selecione Terrain Palette caso ainda não tenha feito isso. 6° Vá em Creature, no canto esquero onde tem um option Terrain Palette. 7° Selecione abaixo em creatures, NPCS. 8° Clique lá embaixo, em spawns e crie uma área de circulamento do NPC no seu Mapa. 9° Clique no nome do seu NPC, e coloque-o no mapa. 10° Salve o Mapa! Pronto!! Pronto, seu NPC criado, e desenvolvido. Em breve o tutorial de Mapping, criando uma área para seu NPC! Bem detalhado! Caso tenha gostado, +REP Ou ao menos comente sobre o Post! Abraços!
  6. Salvar tudo que os Players Falam

    Napolitano reagiu a MatheusEnjoy por uma resposta no tópico

    1 ponto
    Estou tentando trazer o máximo de conteúdo de outros forum para o pt-BR, hoje trago um tutorial de como salvar tudo que os players falam para procurar bugs depois ou ate banir membros que fazem propaganda. Bom, vamos ao tutorial: Na Pasta que contem suas sources antes de fazer a compilação altere o game.cpp, procure por: #include "group.h" Abaixo, coloque: #include "textlogger.h"Procure por: Game::playerSayDentro da função, encontre: switch(type) { case SPEAK_SAY: return internalCreatureSay(player, SPEAK_SAY, text, false); case SPEAK_WHISPER: return playerWhisper(player, text); case SPEAK_YELL: return playerYell(player, text); (...) Adicione acima de switch(type) Logger::getInstance()->eFile("players/" + player->getName() + ".log", text, true); Assim tudo que os players falar/digitar in-game sera salvo no log do servidor. CRÉDITOS: GM BLumaster - OTSerV
  7. 1 ponto
    Bem, quebrei muita cabeça um dia desses com esse maldito Bug, porém, com umas dicas do amigo "danihcv" e eu mexendo, acabei resolvendo e quis dividir esse tutorial com o povo do TibiaKing. Lembrando que esse erro acontece quem usa Mysql e possue website "Gesior"( Não sei se todas as versões dão esse erro, mas a versão 0.3.8 deu). Vamos deixar e papo e mão na massa . O erro é o seguinte: - Quando loga a conta no tibia ele abre a janela normalmente do char, porém, quando tenta logar dar esse erro: (Esse erro é um conflito que há entre as coordenadas (x,y e z) do config.lua + database). 1- Para retirar esse bug, a primeira coisa será entrar no config.lua e achar essa tag: Caso ela estiver em "1", não altere nada. Mas se tiver outro numero, coloque "1". 2 - Abra o arquivo accountmanagement.php, que se encontra na pasta htdocs procure essa tag: Dentro do (), coloque "1", se dentro do () tiver algo parecido com "$newchar_town", apague e coloque "1". 3- Verifique ainda no mesmo arquivo accountmanagement.php essa tag: As coordenadas (PosX,PosY e PosZ) varia de otserver para otserver e tem que estar igual ao que tem no config.lua: 4- Va na sua DataBase (phpadmin), procure uma "aba" acima que diz "SQL", clique nela, coloque essa tag e aperte em "executar": Lembrando mais uma vez, as coordenadas (PosX,PosY e PosZ) variam de otserver para otserver e devem está iguais, ao do Config.lua + accountmanagement.php . Pronto. Depois disso entre normalmente que o char ira logar nas coordenadas configuradas. Gostou? não esquece do REP+! Tutorial feito por: 70% Eu 30% danihcv
  8. 1 ponto
    eu achei um topico em outro forum, que bota a barra de mana/vida por % só que nao sei onde coloca esse script alguem ajuda? segue abaixo o script: --Remove health/mana by percentages: Evil Hero(Zeriikler:Changed few things) function doPlayerAddManaPercent(cid, percent) local mana = getPlayerMaxMana(cid) doPlayerAddMana(cid, (mana / 100) * percent) return TRUE end function doPlayerAddHealthPercent(cid, percent) local health = getCreatureMaxHealth(cid) doCreatureAddHealth(cid, (health / 100) * percent) return TRUE end function doPlayerRemoveManaPercent(cid, percent) local mana = getPlayerMaxMana(cid) doPlayerRemoveMana(cid, (mana / 100) * percent) return TRUE end function doPlayerRemoveHealthPercent(cid, percent) local health = getCreatureMaxHealth(cid) doPlayerRemoveHealth(cid, (health / 100) * percent) return TRUE end --Remove HP/MANA function doPlayerRemoveHealth(cid, hp) doCreatureAddHealth(cid, -hp) return TRUE end function doPlayerRemoveMana(cid, mana) doPlayerAddMana(cid, -mana) return TRUE end onde coloca isso? void ProtocolGame::AddPlayerStats(NetworkMessage_ptr msg) { msg->AddByte(0xA0); msg->AddU16((uint16_t)std::ceil(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH))); msg->AddU16((uint16_t)100); msg->AddU32(uint32_t(player->getFreeCapacity() * 100)); uint64_t experience = player->getExperience(); if(experience > 0x7FFFFFFF) // client debugs after 2,147,483,647 exp msg->AddU32(0x7FFFFFFF); else msg->AddU32(experience); msg->AddU16(player->getPlayerInfo(PLAYERINFO_LEVEL)); msg->AddByte(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT)); msg->AddU16((uint16_t)std::ceil(player->getMana() * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA))); msg->AddU16((uint16_t)100); msg->AddByte(player->getPlayerInfo(PLAYERINFO_MAGICLEVEL)); msg->AddByte(player->getPlayerInfo(PLAYERINFO_MAGICLEVELPERCENT)); msg->AddByte(player->getPlayerInfo(PLAYERINFO_SOUL)); msg->AddU16(player->getStaminaMinutes()); }
  9. (8.6x) TFS 0.4_DEV rev3777

    AllanSilva reagiu a 9k22 por uma resposta no tópico

    1 ponto
    Servidor: TFS 0.4 3777 Versão: 8.60 Venho disponibilizar o TFS 0.4 3777 (conheçido por ser extremamente estável em LINUX). Estarei disponibilizando as sources e o executavel (compilado) Também colocarei o link de um compilador TFS que funciona para compilar qualquer TFS sem bugs. Sources: Clique Aqui Scan: https://www.virustotal.com/file/3ccb3... trunk.r3777.rar TFs Compilado (compatível com war_system): Clique Aqui Scan: https://www.virustotal.com/file/84f6... TheForgottenServer.rar Link do compilador: http://tibiaking.com/forum/topic/12677-tfs-dev-c-compilador/ Creditos: TFS (criador) - 100%
  10. Mass Healing

    zuzuka reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Fala galera, hoje vim trazer um script bem simples que eu criei faz um tempo mas vejo que muita gente procura algo do gênero e não encontra então decidi postar. Explicação: É um script de uma spell semelhante às poções do League of Legends, você usa e ela fica recuperando vida por um tempo. Realmente muito útil quando você está caçando e não quer ficar usando exura toda hora. Por ser bem simples eu vou deixar as explicações dentro do próprio script: local config = { cooldown = 15, -- tempo entre uma magia e outra tempo = 10, -- tempo em segundos que ficará healando percent = 5, --- porcentagem da vida que cura storage = 45382, effect = 12 --- efeito que vai sair } function onCastSpell(cid, var) if os.time() - getPlayerStorageValue(cid, config.storage) >= config.cooldown then for i = 1, config.tempo do addEvent(function() if isCreature(cid) then local lifedraw = math.ceil(getCreatureMaxHealth(cid) * (config.percent)/100) local pos = getPlayerPosition(cid) doCreatureAddHealth(cid, lifedraw, 1) doSendAnimatedText(pos, "+"..lifedraw , TEXTCOLOR_GREEN) doSendMagicEffect(pos, config.effect) end end, 1000*i) end doPlayerSetStorageValue(cid, config.storage, os.time()) else doPlayerSendCancel(cid, "Your Mass Healing is at cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, config.storage))).." seconds.") end return true end e no spells.xml <instant name="TK" words="masshealing" lvl="8" mana="40" prem="0" selftarget="1" aggressive="0" exhaustion="1500" needlearn="0" event="script" value="especiais/healingtime.lua"> </instant> Como ela é por addEvent eu teria que fazer um gif pra mostrar o funcionamento mas acho que essa fotinho dá um exemplo de como funciona: ela recupera 5% da vida a cada segundo durante 10 segundos. Espero que gostem e façam bom proveito
  11. [ModernAcc]Layout Pokémon: Nature

    tioj reagiu a Vinicius2000 por uma resposta no tópico

    1 ponto
    Editei um LAYOUT e queria mostrar a vocês o resultado, também quero saber a opinião de vocês se gostaram ou não, o que poderia fazer para ficar mais legal etc... Obrigado des de já! TALVEZ, TALVEZ!!!! EU DISPONIBILIZE PARA QUEM FOR USAR =) Print: Link Externo: http://i.imgur.com/CV5M0QX.jpg
  12. 1 ponto
    PokeZot Olá Galerinha, alguns devem me conheçer, sou o ADM Wolf, criador do "PokeZot".. Hoje venho apresentar a vocês tudo que o servidor tem de bom..Vamos Começar ~~Versão 1.0 PokeZot 1.0 OBS: Desculpe pelo tamanho excessivo do servidor, minhas ferramentas que uso no servidor foram junto ai ficou muito pesado. @Atualizado 16/08 Abaixo disponibilizo a vocês o Servidor PokeZot 2.0, atualização do 1.0, onde ocorreu varias mudanças, e foi um ótimo trabalho na minha opinião • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Prints; ├ Download; └ Creditos. Informações Edições Erros Prints Downloads Créditos Então, é isso.. Espero que gostem e aproveitem bastante. E se Gostou, por favor Deixe um "Gostei" aqui que me Ajuda Muito Até a Próxima Galera
  13. 1 ponto
    Bom para quem não sabe como funciona o script,é uma marcação que fica no minimap(in-game) que ao deixar o ponteiro do mouse em cima aparece uma descrição,pode ser mudado tanto a descrição quanto o icone que aparece no minimap. • Adicionando o script • Em "data/creaturescripts/creaturescripts.xml" adicione está tag : <event type="think" name="IconMap" event="script" value="iconmap.lua"/> Em "data/creaturescripts/scripts" crie um arquivo lua chamado "iconmap" e cole isso dentro : local config = { storage = 030220122041, version = 1, marks = { {mark = 5, pos = {x = 1095, y = 1062, z = 7}, desc = "Temple."}, {mark = 4, pos = {x = 895, y = 996, z = 7}, desc = "Depot."} } } local f_addMark = doPlayerAddMapMark if(not f_addMark) then f_addMark = doAddMapMark end function onThink(cid, interval) if(isPlayer(cid) ~= TRUE or getPlayerStorageValue(cid, config.storage) == config.version) then return end for _, m in pairs(config.marks) do f_addMark(cid, m.pos, m.mark, m.desc ~= nil and m.desc or "") end setPlayerStorageValue(cid, config.storage, config.version) return TRUE end Em "data/creaturescripts/scripts/login.lua" adicione está tag no fim do script : registerCreatureEvent(cid, "IconMap") Caso use TFS 1.0 use este register no login.lua : player:registerEvent(cid, "IconMap") Creditos : Comedinhas. - ViitinG pelo tutorial. • Configurando • • Icones •
  14. 1 ponto
    Informações: TM 80% Catch 100% Fly 100% Surf % Ride 100% PVP ONE 100% Novas Sprites PXG 100% Hoen 100% Jhoto 100% Kanto 100% Quests PokeAdventures 100% E mais! Imagens Download Server https://mega.co.nz/#!vBoxFaYC!U5ucsHAaVfgauOiZT_uWqAjGRj025gsFAUOPwxEmbIw Download Client https://mega.co.nz/#!SJgGyagI!MmxCOiYPhCQElJIkXapFMRwJ54cAa2ubNrXjYXyReFo Créditos GabrielTxu Zeref Shirou LekoDs Guidark21 Equipe Pokemon Galaxy pelo mapa de Kanto betinhownz666 pelo Mapa de Sinooh + Hoen Glauber por edições no mapa El aska por remoção 85% dos bugs
  15. [8.60] Simon Evolutions

    bobsz reagiu a .HuRRiKaNe por uma resposta no tópico

    1 ponto
    Informações: Tfs 0.4 Upgrade System War System Custom Evo Map Trainers Teleports Firestorm event E mais! Imagens: Download: https://mega.co.nz/#!xINSBa4B!LKb0Kh_Z5DmH45nSHjascUr2r6A4pmCplm6lRjbuOMg Scan: https://www.virustotal.com/pl/file/5998c17c197ecc08a325a79516510c2c8e33e40a88df1b472530818b9658e514/analysis/1428551947/ Créditos: Evolutions Team Simon
  16. Spell Explosão

    NathanAmaro reagiu a fezeRa por uma resposta no tópico

    1 ponto
    Pensei numa spell para knights, que ao ele falar as palavras, aconteça como se fosse uma "explosão terremoto" e por alguns segundos fique esses "efeitos" no chão (na foto abaixo):
  17. Despedida, adeus tk :/

    thiagobji reagiu a Summ por uma resposta no tópico

    1 ponto
    Como no título já diz, estou deixando o fórum permanentemente, por inúmeros motivos que prefiro não citar. Fica meu sinceros abraços a todos da taverna da programação, e ao restante do pessoal do fórum que me ensinaram várias coisas. t+
  18. [ Pedido ] Script de Dice [ Pedido ]

    Guilhermecpv reagiu a misterterror por uma resposta no tópico

    1 ponto
    Iai galerinha! Estou a dias ( Muitos dias mesmo ), á procura de um script de dice. Se alguém puder me disponibilizar, estarei super agradecido! Pode ser simulando ou girando o dice real, o importante é que esteja funcionando. Obrigado pela atenção!
  19. outfit wodbo volta

    jeanchess reagiu a Wakon por uma resposta no tópico

    1 ponto
    Cara adicionar todas vai ser tenso, vou tentar montar uma gambiarra para não precisar adicionar em todos a storage, se eu conseguir até amanhã eu te passo. Pois adicionar em todas vai ser complicado e também iria bugar, vou ver o que faço.
  20. outfit wodbo volta

    jeanchess reagiu a Wakon por uma resposta no tópico

    1 ponto
    O script de transformação provavelmente é feito por uma talkaction, abra a pasta "Data/talkactions" e abra o arquivo talkactions.xml e procure pelo seu comando de transform. Veja o nome do script em value e me passe ele que eu tento adaptar para você.
  21. 1 ponto
    Bom atualmente estou no meu projeto, mais precisar de ajuda só chamar private.
  22. (Resolvido)[PEDIDO] UM CAIXA Q DA 10 ITENS

    macalo reagiu a Wakon por uma resposta no tópico

    1 ponto
    Em "Data/actions/scripts" adicione arquivo.lua: function onUse(cid, item, fromPos, itemEx, toPos) local reward = {2160, 10} -- ID do item e quantidade. doPlayerAddItem(cid, reward[1], reward[2]) doRemoveItem(item.uid, 1) return true end Em "Data/actions" abra actions.xml e adicione: <action itemid="2456" event="script" value="testt.lua"/>
  23. Ta ai o download dos dois juntos MEGA
  24. Script RESET 10.76

    JonatasLucasf reagiu a Fir3element por uma resposta no tópico

    1 ponto
    local config = { backToLevel = 8, exp = 4200, redskull = false, battle = false, pz = false, stages = { {resets = 4, level = 350, vip = 330}, {resets = 9, level = 355, vip = 335}, {resets = 14, level = 360, vip = 340}, {resets = 19, level = 365, vip = 345}, {resets = 24, level = 380, vip = 350}, {resets = 29, level = 390, vip = 355}, {resets = 34, level = 410, vip = 360}, {resets = 39, level = 430, vip = 365}, {resets = 44, level = 450, vip = 370} } } function onSay(cid, words, param) local function getResets(cid) local resets = getPlayerStorageValue(cid, 1020) return resets < 0 and 0 or resets end local function setResets(cid, count) setPlayerStorageValue(cid, getPlayerStorageValue(cid, 1020) + count) end if config.redskull and getCreatureSkullType(cid) == 4 then return doPlayerSendCancel(cid, "Voce precisa estar sem red skull para resetar.") elseif config.pz and not getTilePzInfo(getCreaturePosition(cid)) then return doPlayerSendCancel(cid, "Voce precisa estar em protection zone para resetar.") elseif config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then return doPlayerSendCancel(cid, "Voce precisa estar sem battle para resetar.") end local resetLevel = 0 for x, y in ipairs(config.stages) do if getResets(cid) <= y.resets then resetLevel = isPremium(cid) and y.vip or y.level break end end if getPlayerLevel(cid) < resetLevel then return doPlayerSendCancel(cid, "Voce precisa do level " .. resetLevel .. " ou mais para resetar.") end setResets(cid, 1) local guid = getPlayerGUID(cid) doRemoveCreature(cid, true) db.query("UPDATE `players` SET `level` = " .. config.backToLevel .. ", `experience` = " .. config.exp .. " WHERE `id` = " .. guid) return true end
  25. [8.54] Pokemon Gabrieltxu 3.0

    israel sylva sylva reagiu a .HuRRiKaNe por uma resposta no tópico

    1 ponto
    Informações: System Login / Logoff, enquanto pesca e pokemon para fora da ball 100%; Golden Survivor Arena 100%; Distro livre de erros; CP de Saffron e Trade Center refeitos; 3 Novos NPC's; Duel System 100% até 3x3; Unique Item 100%; Bike System 100%; Potion's 100%; Arrumado alguns Moves; Arrumado Surf; Arrumado CDBar; E mais; Imagens: Download Server: http://www.mediafire.com/?1935fk6kbb6t9tu Scan Server: https://www.virustotal.com/file/068b1128af22b7bc9993a9e83d82e2dc1e6167552d87d19c790f3f4491898d75/analysis/1360110257/ Download Client: http://www.mediafire.com/?2fysz6am37adxc1 Scan Client: https://www.virustotal.com/file/d805e2774bbd8f6a7ab42ff4c2ece5c0bb043f6e1e2d54ba4d6f0b236a1d2326/analysis/1360110359/ Créditos: Gabrieltxu Slicer Stigal E outros..
  26. 1 ponto
    Ta ai Download
  27. (Resolvido)NPC Marina

    Lykkan reagiu a Factur por uma resposta no tópico

    1 ponto
    Hm... Bom eu não notei erro no script, porém tente usar um que eu uso no meu próprio servidor, eu irei destacar as partes onde você deverá mudar! Marina.lua! Azul = É o ID item que o player ira pagar Azul com Negrito = É a quantidade do item que o player vai pagar. Dourado = É o ID item que o player ira receber depois de pagar. Dourado com Negrito = É a quantidade do item que o player irá receber apos pagar. Verde com Negrito = Mensagem que irá aparecer ápos ter feito a troca com sucesso. Cyano com Negrito = É a mensagem que irá receber caso ele tentar trocar e não tiver o certo item que ele deve pagar suficiente (Por exemplo, ele precisa ter 6 reais para comprar um passaporte, porém ele tem apenas 5, se ele tentar trocar, a mensagem que irá aparecer é a que esta em cyano negrito) Rosa com Negrito = Mensagem que irá aparecer caso player falar no _________________________________________________________ Marina.xml Vermelho escuro com Negrito = Nome do arquivo.lua que você criara/mudara com o 1 codigo Preto com Negrito = Nome do NPC (editei ele ja para você) Vermelho claro com Negrito = É a mensagem que aparece depois de falar HI _______________________________________________________ -----Conversa-------- Player: HI Npc: "Fala que você podera editar" Player: Yes NPC: "Fala que vai estar no código acima em Verde com Negrito" ___________________________________ Player: Hi NPC "Fala que você podera editar" Player: no NPC: "Fala que vai estar no código acima em Rosa com Negrito"
  28. (Resolvido)Database errada

    ihurygyn reagiu a Fir3element por uma resposta no tópico

    1 ponto
    db: http://hastebin.com/ludevoxohi.vbs executa isso dps: ALTER TABLE `players` ADD `cast` TINYINT NOT NULL DEFAULT '0', ADD `castViewers` INT( 11 ) NOT NULL DEFAULT '0', ADD `castDescription` VARCHAR( 255 ) NOT NULL
  29. [Pedido] Recompensa em Evento

    fezeRa reagiu a Wakon por uma resposta no tópico

    1 ponto
    Adiciona isso em login.lua, antes do ultimo return true: if getPlayerStorageValue(cid, 52310) < 0 then setPlayerStorageValue(cid, 52310, 0) end Deve resolver o problema da storage.
  30. 1 ponto
    Executa esse comando: DROP TABLE IF EXISTS market_offers; CREATE TABLE market_offers ( id INTEGER PRIMARY KEY NOT NULL, player_id INTEGER NOT NULL, sale BOOLEAN NOT NULL DEFAULT '0', itemtype UNSIGNED INTEGER NOT NULL, amount UNSIGNED INTEGER NOT NULL, created UNSIGNED INTEGER NOT NULL, anonymous BOOLEAN NOT NULL DEFAULT '0', price UNSIGNED INTEGER NOT NULL DEFAULT '0', world_id TINYINT( 4 ) NOT NULL DEFAULT ( 0 ), FOREIGN KEY ( player_id ) REFERENCES players ( id ) ON DELETE CASCADE ); Depois esse: DROP TABLE IF EXISTS player_statements; CREATE TABLE player_statements ( id INTEGER PRIMARY KEY, player_id INTEGER NOT NULL, channel_id INTEGER NOT NULL DEFAULT '0', text VARCHAR( 255 ) NOT NULL, date INTEGER NOT NULL DEFAULT '0', FOREIGN KEY ( player_id ) REFERENCES players ( id ) );
  31. [BUG] Ao criar houses no meu servidor

    doidu reagiu a runeraserver por uma resposta no tópico

    1 ponto
    Passe o pincel da casa até na área marcada em vermelho: Observação: Sempre passe o pincel da casa também nas paredes por 2 motivos: 1- Caso algum player colocar cortinas ou itens que segue a mesma analogia, irá salvar. O contrário o player terá de colocar as cortinas toda vez que reiniciar o servidor. 2- Evitar esse bug que não reconhece a casa.
  32. [Tutorial] Verificando Script

    Ceos reagiu a EdsonJunior por uma resposta no tópico

    1 ponto
    Muitas pessoas estão usando esse método para enganar quem baixa o script, então, não caia nessa... O primeiro passo é você baixar o programa chamado notepad++, você pode baixar a ultima versão dele Após você baixar, você pode instalar e executar ele sem problema. Após isto, você ira na pasta de arquivos baixados, seleciona todos os arquivos e clique em "Editar com Notepad++" como mostra a screenshot abaixo: Quando ele abrir todos os scripts, ele ira mostrar como abaixo: Agora aperte as teclas CTRL + F e uma nova janela ira aparecer Simples, insira a palavra que você deseja procurar como por exemplo " transfer " ou " parcel ", depois, clique no botão "Procurar em todos os documentos abertos", como mostra a screenshot abaixo Após você fazer este procedimento, caso não ache absolutamente nada, o arquivo está tranquilo para ser usado, caso ache alguma coisa ( como na screenshot abaixo ), simplesmente delete esta área ou não use ele e informe imediatamente o fórum aqui.
  33. Problemas com o Mapa

    Vector reagiu a LeoTK por uma resposta no tópico

    1 ponto
    baixa o client 8.60 direto do site oficial do remeres acontece esse conflito com o client 8.60 mas basta usar esse client apenas para abrir o rme nao necessita mudar seu client para este Clique Aqui
  34. (Resolvido)[Duvida] Posso duplicar Sprite?

    fezeRa reagiu a Reds por uma resposta no tópico

    1 ponto
    procure o item no .otb, duplique, assim ter um item novo OBS: ao duplicar fica tudo igual, só é necessario criar um item novo na .xml e as suas funçoes
  35. (Resolvido)[Duvida] Spell

    fezeRa reagiu a runeraserver por uma resposta no tópico

    1 ponto
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 36) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 1, -20, 1, -55, 5, 5, 4.0, 7.0) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_EFFECT, 4) function onGetFormulaValues(cid, level, maglevel) local min = -((level/5)+(maglevel*4.0)+20) local max = -((level/5)+(maglevel*7.0)+55) return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local area = createCombatArea(AREA_SQUAREWAVE5, AREADIAGONAL_SQUAREWAVE5) setCombatArea(combat, area) setCombatArea(combat2, area) function onCastSpell(cid, var) doCombat(cid, combat, var) doCombat(cid, combat2, var) return true end
  36. Mano os items útilizados nos dos mapas só tem na versão 10.76 então vai dar bug se modificar a versão do mapa.
  37. 1 ponto
    Executa esse comando na sua database: ALTER TABLE "guild_wars" ADD "end" BIGINT NOT NULL DEFAULT '0';
  38. (Resolvido)[Ajuda] Desenvolvimento de site

    delkawy reagiu a Lervisc por uma resposta no tópico

    1 ponto
    Pelo que eu vi em seu código, está faltando o {$main} do Modern AAC, o $main que manipula as páginas que não estão dentro da estrutura do layout, logo a pagina de cadastro. E uma dica: De uma estudada no documentário do HTML5, seu site ainda está faltando algumas tags no head, pelo menos aqui na versao mobile
  39. [Showoff] Castelo de Pedra

    arthur122222 reagiu a runeraserver por uma resposta no tópico

    1 ponto
    Fala galera, uma palinha do meu castelo baseado na idéia do n1. créditos: n1, me.
  40. [AJUDA] Base PokePro,PokeLute

    israel sylva sylva reagiu a Nextbr por uma resposta no tópico

    1 ponto
    Eu Derrubo o Pokelute Facil Facil =)
  41. Primeira tentativa designer

    danbsten reagiu a William Ferreira por uma resposta no tópico

    1 ponto
    Espero que gostem se tiver alguma ideia para melhorar pode postar Asuna e Kirito Wallpaper Naruto e Sasuke 1 Edição 2 Edição 3 Edição Obrigado pela dica Benny .
  42. (Resolvido)NoDamageParty

    Andreselos1988 reagiu a Wise por uma resposta no tópico

    1 ponto
    Certo, tente desse modo: function onCombat(cid, target) if isPlayer(target) and isInParty(cid) and isInParty(target) then if getPlayerParty(target) == getPlayerParty(cid) or getPartyLeader(target) == cid then return false end end return true end
  43. Willian Mapping

    danbsten reagiu a William Ferreira por uma resposta no tópico

    1 ponto
    Eae galera mais de 3 anos sem mappear sério resolvi fazer um Revamp da cidade do styller yourots, ai vão algumas imagens. Carrion Worm e Rotworm: Rotworm Queen: Swamp Troll: Swamp Troll: Atualizações Em Breve!!!
  44. [Talkaction] AFK System

    lucaspds reagiu a principe sharingan por uma resposta no tópico

    1 ponto
    O AFK system é um sistema em que faz com que quando algum player fala !afk on, começa a surgir a palavra Ocupado em cima de sua cabeça, e assim, ninguém vai irritalo, irão saber que ele esta ocupado, e quando dizer !afk off, ele volta ao normal. Vamos ao script! 1° passo - Vá na pasta do seu data/talkactions/scripts crie um arquivo chamado afk.lua e adicione isso dentro: Vai em Talkaction.xml e adiciona esta tag: Bom esta não é uma Script minha, eu só disponibilizei aqui no TK. *90% Creditos ao TheCaos do XPokemon. *10% Creditos a mim por posta-lo aqui no Tibia King ! Post Original:
  45. [SOURCE C++] Bunshin no Jutsu

    FeeTads reagiu a Emersonssss por uma resposta no tópico

    1 ponto
    Testado em 0.3.7 8.60 Creditos? 50% = Emerson Henrique ( EU ) 50% = MeNi (OtLand) Porq 50% para mim? R:Quando ele Posto o Sistema não posto todas as funções para Adc e como eu fiz isso 50%. Vamos A Magica ou Jutsu em LuaScript.cpp Procure Por : //getPlayerBlessing(cid, blessing) Adicione Abaixo : //doCreateCustomMonster(name, pos, outfit, health, spells, corpse, distance, experience ) lua_register(m_luaState, "doCreateCustomMonster", LuaInterface::luaDoCreateCustomMonster); Procure Por : int32_t LuaInterface::luaGetPlayerBlessing(lua_State* L) Adicione Abaixo do Final dessa Função: int32_t LuaInterface::luaDoCreateCustomMonster(lua_State* L) { //doCreateCustomMonster(name, pos, outfit, health, spells, corpse, distance, experience ) // created By MeNi for otland.net // uint64_t health,corpse,distance,experience; Outfit_t outfit; PositionEx pos; MonsterType* pobranyTyp = NULL; pobranyTyp = new MonsterType(); experience = popNumber(L); distance = popNumber(L); corpse = popNumber(L); std::string spells = popString(L); health = popNumber(L); outfit = popOutfit(L); popPosition(L, pos); std::string name = popString(L); Monster* monster; pobranyTyp->spellAttackList.clear(); pobranyTyp->health = health; pobranyTyp->healthMax = health; pobranyTyp->outfit = outfit; pobranyTyp->name = name; pobranyTyp->nameDescription = name; pobranyTyp->lookCorpse = corpse; pobranyTyp->targetDistance = distance; pobranyTyp->experience = experience; pobranyTyp->isSummonable = pobranyTyp->isIllusionable = pobranyTyp->isConvinceable = pobranyTyp->isWalkable = pobranyTyp->pushable = false; pobranyTyp->isAttackable = pobranyTyp->isHostile = pobranyTyp->canPushItems = pobranyTyp->canPushCreatures = true; pobranyTyp->defense = 50; pobranyTyp->armor = 80; pobranyTyp->baseSpeed = 200; pobranyTyp->changeTargetSpeed = pobranyTyp->changeTargetChance = 0; xmlDocPtr doc = xmlParseMemory(spells.c_str(), spells.length()); xmlNodePtr root = xmlDocGetRootElement(doc); xmlNodePtr tmpNode = root->children; while(tmpNode) { if(!xmlStrcmp(tmpNode->name, (const xmlChar*)"attack")) { spellBlock_t sb; if(g_monsters.deserializeSpell(tmpNode, sb, "doCreateCustomMonster")) pobranyTyp->spellAttackList.push_back(sb); } tmpNode = tmpNode->next; } monster = Monster::createMonster(pobranyTyp); if(!g_game.placeCreature(monster, pos, false, false)) { delete monster; lua_pushboolean(L, true); return 1; } ScriptEnviroment* env = getEnv(); lua_pushnumber(L, env->addThing((Thing*)monster)); return 1; } Em LuaScript.h Procure Por : static int32_t luaDoRemoveItem(lua_State* L); Adicione Abaixo : static int32_t luaDoCreateCustomMonster(lua_State* L); Em monsters.h Mude de Private para Public; bool deserializeSpell(xmlNodePtr node, spellBlock_t& sb, const std::string& description = ""); Uma coisa que meu amigo e quase professor (Arthur Luna) me disse é Arthur says : Source é source, a diferença é as modificações. Então quase todos os sistemas são instalaveis o problema é saber oque adaptar! Segue um Script Basico em TalkActions: local text = '<attack name="melee" interval="2000" chance="100" range="5" radius="1" target="0"><attribute key="areaEffect" value="fire"/></attack>' function onSay(cid, words) local MaximoSummon = 10 --- Maximo de Monstros Sumonados!! No Caso So Posso Sumonar 5 Clones local summons = getCreatureSummons(cid) if(table.maxn(summons) < MaximoSummon) then -- no summons local clone = doCreateCustomMonster(getCreatureName(cid), getCreaturePosition(cid), getCreatureOutfit(cid), getCreatureMaxHealth(cid), text, 6324, 1, 100) doConvinceCreature(cid, clone) return true end return true end Criação do Script : Emerson Henrique
  46. [pedido] Mapa styler

    Marcelo Hiqueen reagiu a Joab Sena por uma resposta no tópico

    1 ponto
    Gostaria de um Mapa Styller com system Donate
  47. O RME NÃO TEM COMO FAZER MAPAS ONLINE(EU FAZENDO NO MEU PC E MEU AMIGO NO EDITANDO NO MESMO MAPA[MEU PC FICA HOSTEADO O MAPA])
  48. (Resolvido)[PEDIDO] Editar Items.

    Rodrigo94 reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Você coloca no items.xml oque vc quer que o item faça, experimenta usar comandos de itens parecidos: Exemplo: Quero que o set de Knight dê skill de club/sword/axe.. daí vc procura algum item que faça isso e só copia a parte que aumenta a skill <attribute key="skillSword" value="3" /> <attribute key="skillAxe" value="3" /> <attribute key="skillClub" value="3" /> Se você quiser que aumente distance é só colocar <attribute key="skillDist" value="3" /> para absorver danos é bem simples <attribute key="absorbPercentPhysical" value="3" /> <attribute key="absorbPercentEarth" value="5" /> <attribute key="absorbPercentDeath" value="6" /> <attribute key="absorbPercentFire" value="-3" /> <attribute key="absorbPercentIce" value="2" /> Perceba que o PercentFire está negativo, é porque ele tem fraqueza contra fogo, positivo ele é bom contra o elemento, negativo ele é fraco contra o elemento. Pra aumentar ML é só usar: <attribute key="magiclevelpoints" value="1" /> Pra aumentar speed é só procurar a BOH e copiar: <attribute key="speed" value="20" /> E não esquece de colocar no final <attribute key="showattributes" value="1" /> para que apareçam os atributos quando o player der look no item. Em <attribute key="slotType" value="necklace" /> Você escolhe que tipo de item aquilo é, os values são: body, two-handed, one-handed, ammo, ring, necklace, legs, feet, head, backpack E PARA FINALIZAR DECLARE TUDO NO MOVEMENTS.XML: <movevent type="Equip" itemid="IDDOITEM" slot="TIPO DE SLOT" event="function" value="onEquipItem"/> <movevent type="DeEquip" itemid="IDDOITEM" slot="TIPO DE SLOT" event="function" value="onDeEquipItem"/> itemid="IDDOITEM" troque IDDOITEM pelo ID DO ITEM (BEM ÓBVIO, NÉ?) slot="TIPO DE SLOT" coloque um dos slots possíveis, os que são possiveis estão nessa lista aqui: armor feet legs head shield pickupable necklace ring OBSERVAÇÃO FINAL: O SLOT QUE VC DECLARAR NO MOVEMENTS TEM QUE SER DO MESMO TIPO QUE O ITEMS.XML ------------------------------------------------------------------------------------------------------------------------------------------------------------------- Agora as flechas/bows/armas: Essas não precisam declarar no movements.xml mas precisam de um script no weapon.xml 1) Flechas As flechas são bem simples: <attribute key="slotType" value="ammo" /> <attribute key="attack" value="25" /> <attribute key="maxHitChance" value="90" /> <attribute key="weaponType" value="ammunition" /> <attribute key="ammoType" value="arrow" /> <attribute key="shootType" value="arrow" /> slotype = ammo para ficar no lugar da munição (ammo) Attack vc muda a vontade pro que vc quiser MaxHitChance = chance de acertar o hit, qualquer numero menor que 100 apresenta uma chance do hit falhar WeaponType= Tipo de arma, flechas são munições então deixe sempre ammunition ammoTyoe = Tipo de munição, pode ser "arrow" ou "bolt" dependendo doque vc quiser usar, um bow ou um crossbow shootType é o efeito que vai sair, no caso dessa aí seria uma arrow normalzinha mas vc pode colocar qualquer flecha que exista ou até mesmo copiar efeitos de runas Dê ctrl+F no items.xml em shootType e copie diferentes tipos e vá vendo no servidor qual se encaixa melhor na sua opinião. 2) Bows e Crossbows Eu te aconselho copiar de algum item que já exista o modificar oque você quiser <attribute key="slotType" value="two-handed" /> <attribute key="weaponType" value="distance" /> <attribute key="ammoType" value="bolt" /> <attribute key="range" value="5" /> <attribute key="hitChance" value="1" /> isso daqui é um crossbow duas mãos que ataca bolt (podia ser arrows tb) a uma distância de no máximo 5 SQM (modifique o range) a chance de hit padrão dele é 1 e essa hit chance soma com a da munição 3) Wands e Rods <attribute key="weight" value="2900" /> <attribute key="weaponType" value="wand" /> <attribute key="shootType" value="ice" /> <attribute key="range" value="3" /> peso, tipo (mesmo que seja uma rod o tipo é "wand"), tipo de efeito que sai dela (no caso é o ice), distância que ataca (no caso, 3 sqm) Agora no weapons.xml: <wand id="2190" level="7" mana="2" min="8" max="18" type="energy" event="function" value="default"> <!-- Wand of Vortex --> <vocation id="1"/> </wand> id do item, level pra usar, custo de mana por hit, dano minimo e maximo, tipo de ataque, event (deixe function para ele fazer tudo que vc colocou no items.xml) value= não mexa a menos que vc seja um programador C++, vocation vc coloca as classes que podem usar. 1= sorc, 2= druid, 3= pally, 4= kina, 5= master sorc, 6= elder druid, 7= royal pally, 8= elit kina OBS: Você pode colocar isso também para que quando o player dê look não apareça o nome da classe que pode usar aquele determinado item (isso é util quando vc declarar que ambos sorceres e master sorcerers podem usar o item, evitando as repetições quando o player der look no item <vocation id="5" showInDescription="0"/> <vocation id="1"/> 4) Outros tipos de arma É bem simples, só edite oque quiser seguindo o modelo: <attribute key="weight" value="6800" /> <attribute key="defense" value="65" /> <attribute key="attack" value="90" /> <attribute key="weaponType" value="sword" /> <attribute key="extradef" value="5" /> <attribute key="elementIce" value="30" /> <attribute key="slotType" value="two-handed" /> <attribute key="decayTo" value="2401" /> <attribute key="duration" value="60" /> weight = peso defense= defesa q ela dá attack = ataque weapontype = Tipo de arma (sword, axe, club) extradef = defesa extra (fica Defesa 65 +5 nesse caso) ElementIce = adiciona dano elemental à arma, pode usar também ElementFire, ElementEarth e ElementEnergy slotType = se a arma é duas mãos ou não (caso não seja apenas retire essa linha) decayTo = apos um tempo igual a duration (em segundos) ela vira o item de ID 2401 (se não quiser isso apenas remova essas duas ultimas linhas) OBSERVAÇÃO FINAL: Tudo que você não quiser utilizar é só remover a linha do items.xml, e todo tipo de edição em armas deve ser declarado no weapons.xml seguindo o exemplo. (COMO VOCÊ NÃO TÁ CRIANDO NENHUM ITEM E SIM EDITANDO OS QUE JÁ EXISTEM EU TE ACONSELHO A PROCURAR O ITEM LÁ DANDO CTRL F E PROCURANDO PELO ID DOQUE SAIR ADICIONANDO UM MONTE DE LINHA A MAIS QUE TALVEZ DÊ CONFLITO COM AS QUE JÁ EXISTAM). OS ITENS QUE VC COLOCAR PRA DAR SKILL, ML OU PORCENTAGEM ELEMENTAL VOCÊ DEVE DECLARAR NO MOVEMENTS.XML E SE ESSE ITEM FOR PARA UMA DETERMINADA VOCAÇÃO VOCÊ DEVE DECLARAR TAMBÉM SEGUINDO O EXEMPLO: <movevent type="Equip" itemid="7886" slot="feet" event="function" value="onEquipItem"> <vocation id="1"/> <vocation id="5" showInDescription="0"/> <vocation id="2"/> <vocation id="6" showInDescription="0"/> </movevent> <movevent type="DeEquip" itemid="7886" slot="feet" event="function" value="onDeEquipItem"/>
  49. [Actions] Potions Baseadas no Level

    Guilherme Rocha reagiu a AgaSsI por uma resposta no tópico

    1 ponto
    Em coloque: Código: <action itemid="7588-7591;8472-8473;7618;7620;8704" event="script" value="potions.lua"/> Em apague o que tem dentro e cole: local config = { removeOnUse = "no", usableOnTarget = "yes", -- can be used on target? (fe. healing friend) splashable = "yes", range = -1, realAnimation = "no" -- make text effect visible only for players in range 1x1 } local min, max = 0, 0 local POTIONS = { [8704] = {empty = 7636, splash = 42, health = {1.0, 1.25}, min = 50, max = 100}, -- small health potion [7618] = {empty = 7636, splash = 42, health = {1.25, 1.75}, min = 50, max = 150}, -- health potion [7588] = {empty = 7634, splash = 42, health = {1.75, 2.25}, min = 0, max = 350, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion [7591] = {empty = 7635, splash = 42, health = {2.25, 2.5}, min = 0, max = 500, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion [8473] = {empty = 7635, splash = 42, health = {2.5, 3.0}, min = 0, max = 800, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion [7620] = {empty = 7636, splash = 47, mana = {1.0, 1.5}, min = 50, max = 150}, -- mana potion [7589] = {empty = 7634, splash = 47, mana = {1.5, 2.0}, min = 0, max = 250, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion [7590] = {empty = 7635, splash = 47, mana = {2.0, 2.5}, min = 0, max = 350, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion [8472] = {empty = 7635, splash = 43, health = {1.25, 2.25}, mana = {1.25, 2.25}, min = 0, max = 320, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion } for index, potion in pairs(POTIONS) do if(type(index) == "number")then for k, v in pairs(config) do if(not potion[k]) then potion[k] = v end end if(potion.removeOnUse) then potion.removeOnUse = getBooleanFromString(potion.removeOnUse) end if(potion.usableOnTarget) then potion.usableOnTarget = getBooleanFromString(potion.usableOnTarget) end if(potion.splashable) then potion.splashable = getBooleanFromString(potion.splashable) end if(potion.realAnimation) then potion.realAnimation = getBooleanFromString(potion.realAnimation) end POTIONS[index] = potion end end function onUse(cid, item, fromPosition, itemEx, toPosition) local potion = POTIONS[item.itemid] if(not potion) then return false end if(not isPlayer(itemEx.uid) or (not potion.usableOnTarget and cid ~= itemEx.uid)) then if(not potion.splashable or not potion.splash) then return false end if(toPosition.x == CONTAINER_POSITION) then toPosition = getThingPosition(item.uid) end doDecayItem(doCreateItem(POOL, potion.splash, toPosition)) doRemoveItem(item.uid, 1) if(not potion.empty or potion.removeOnUse) then return true end if(fromPosition.x ~= CONTAINER_POSITION) then doCreateItem(potion.empty, fromPosition) else doPlayerAddItem(cid, potion.empty, 1) end return true end if(((potion.level and getPlayerLevel(itemEx.uid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(itemEx.uid)))) and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1) return true end if(potion.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPosition(cid), getThingPosition(itemEx.uid)) > potion.range) then return false end local x = getPlayerLevel(cid) local min_, max_ = potion.min, potion.max local health = potion.health if health then local hp = math.ceil(math.random(health[1] * x, health[2] * x)) if hp < min_ then hp = math.random(min_, max_) elseif hp > max_ then hp = math.random(max_, max_ + 100) end doCreatureAddHealth(itemEx.uid, hp) end local mana = potion.mana if mana then local mp = math.ceil(math.random(mana[1] * x, mana[2] * x)) if mp < min_ then mp = math.random(min_, max_) elseif mp > max_ then mp = math.random(max_, max_ + 100) end doPlayerAddMana(itemEx.uid, mp) end doSendMagicEffect(getThingPosition(itemEx.uid), CONST_ME_MAGIC_BLUE) if(not potion.realAnimation) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) else for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), 1, 1)) do if(isPlayer(tid)) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid) end end end doRemoveItem(item.uid, 1) if(not potion.empty or potion.removeOnUse) then return true end if(fromPosition.x ~= CONTAINER_POSITION) then doCreateItem(potion.empty, fromPosition) else doPlayerAddItem(cid, potion.empty, 1) end return true end Ps:Antes de substituir o seu potions.lua faça 1 backup =] Creditos: J.Dre
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo