Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 12/13/12 em todas áreas

  1. Roksas

    Classic Premium

    Bom galera, sempre vejo os Scripters criando sistemas de Vip, com Tile Vip, Itens Vip, e tudo que tiver direito. Na minha opinião;o isso se adapta mais em servidores High Exp x999. Hoje irei postar o meu Sistema de Premium para servidores Low Rate. Usei como exemplo o Double EXP do Vodkart! Vejamos: Primeiramente, vamos na pasta data/actions/scripts, crie um arquivo chamado PremiumScroll.lua e adicione isso dentro: function onUse (cid,item) if getPlayerPremiumDays (cid) > 14 then doPlayerSendTextMessage (cid, MESSAGE_INFO_DESCR, "Você precisa ter 15 ou menos dias restantes de Premium Account, para utilizar esse serviço novamente!") doSendMagicEffect (getCreaturePosition (cid), 2) end if doRemoveItem(item.uid, 0) then doPlayerAddPremiumDays(cid, 30) doSendMagicEffect(getCreaturePosition(cid), 14) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você acaba de ganhar 30 dias de Premium Account, terá áreas exclusivas e 35% a mais de EXP como benefício!") end return true end Agora vá na pasta data/creaturescripts/scripts/login.lua .No meio do script terão alguns Events como esses exemplo: registerCreatureEvent(cid, "kill") registerCreatureEvent(cid, "onPrepareDeath") registerCreatureEvent(cid, "PlayerLogout") registerCreatureEvent(cid, "onPrepareDeath") registerCreatureEvent(cid, "deathBroadcast") registerCreatureEvent(cid, "DeathBroadcast") registerCreatureEvent(cid, "Idle") Agora ao meio desses, adicione esse Event: registerCreatureEvent(cid, "PremiumRate") Vá na pasta data novemente, abra a pasta items e em seguida o arquivo items.xml. Aperte CTRL + F e digite 9004. Assim você irá encontrar um item dourado, oque usaremos como "Premium Scroll". Apague-o e adicione essa tag: <item id="9004" article="a" name="Premium Scroll"> <attribute key="description" value="Esse Scroll lhe dá 30 dias de Premium!" /> <attribute key="weight" value="23.00" /> </item> Caso não exista e seu servidor for versão 8.60 adicione do mesmo jeito. Ok, ainda na pasta data/creaturescripts, na pasta scripts adicione um arquivo chamado PremiumRate.lua e adicione isso dentro: function onLogin(cid) local rate = 1.35 local days = getPlayerPremiumDays(cid) local config = { yes_premium = "Você tem "..((rate - 1)*100).."% de EXP em vantagem, Ainda lhe restam "..days.." dias de Premium!", not_premium = "Tornesse Premium e tenha "..((rate - 1)*100).."% a mais de EXP!", premium = isPremium(cid) } if (config.premium == TRUE) then doPlayerSetExperienceRate(cid, rate) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.yes_premium) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.not_premium) end return TRUE end Muito bem agora vamos adicionar as Tags! No arquivo actions.xml na pasta data/actions adicione essa tag: <action itemid="9004" event="script" value="PremiumScroll.lua"/> E no arquivo creaturescripts.xml: <event type="login" name="PremiumRate" script="premiumrate.lua"/> • Explicação do Sistema: Bom, no primeiro Script, ao usar o Item ID 9004 (Premium Scroll), os players recebem 30 dias de Premium, mas se já tiver mais de 15 dias não podera usar, apenas 15 ou menos dias! No segundo script eu mostrei a vocês o Sistema "Double EXP" do Vodkart, editei ele para que jogadores Premium Account pudessem ter as rates. Lá você pode encontrar esse trecho: local rate = 1.35 Aonde se situa o número "35" você muda para a porcentagem desejada. Como por exemplo 50 = 50%, 40 = 40%. E assim sucessivamente! • Algumas Screen Shoots do meu Sistema: Galera, muito obrigado. Espero que gostem, qualquer dúvida irei responder! Reportem erros, etc. @EDIT Se alguém tiver algum sugestão de incrementar o meu Sistema, só falar, ai eu ponho. Bye )
    7 pontos
  2. Mana e Healing Rune VIP. Tibia 8.6 Join! • Menu: ├ Informações; ├ Tutorial; ├ Explicação; ├ ScreenShot; └ Créditos. •Informação; Fala galera do XTibia! Estou aqui novamente com um novo Tutorial para Tibia 8.6! AAAAAAAAAAAAAAWYEAAAAH. Por favor, comentem! É de muita importância para mim que vocês comentem, para me avaliar e me dar um intuito de criar novos tutoriais. E agora vocês vão me ver eu explicando... ...Ou não. •Tutorial; Bom galera, primeiramente vá na PastaDoSeuServer/Data/Spells/Scripts/Healing e crie um arquivo chamado ``chaos greater mana rune.lua ´´ e dentro adicione isto: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 14) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, TRUE) function onCastSpell(cid, var) doCreatureAddMana(cid, math.random(100000,500000)) return doCombat(cid, combat, var) end Ok, a parte da VIP Mana Rune está feita, agora vamos fazer a VIP Healing Rune! Vá novamente na PastaDoSeuServer/Data/Spells/Scripts/Healing e crie um arquivo chamado `` chaos greater healing rune.lua ´´ e adicione isto: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, 14) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 500, 5000, 10000, 12000) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Beleza, a parte da spells/scripts/healing já esta feita. Agora vá em Spells.xml e adicione isto na parte de Healing Runes : Agora chegou a parte mais complicada do tutorial, mas não é nada de "nossa, essa parte é a mais difícil, não vou conseguir fazer". Vá na PastaDoSeuServer/Data/Items e abra o items.xml, aperta ctrl+f e procure pelo id 2296. Substitua o que tem lá por isto: A Mana rune está completamente feita! Agora no mesmo arquivo (items.xml) dê ctrl+f novamente e procure por o id 2298 e substitua o que tem lá por isto: Agora, se deixar do jeito que esta, vai dar erro no distro. Então você terá que adicionar isto EM BAIXO da Chaos Greater Healing Rune: <item id="2298" toid="2300" article="a" name="spell rune"> <attribute key="weight" value="120" /> </item> Pronto, está feita suas duas runes. Agora vamos adiciona-las no NPC. Vá na PastaDoSeuServer/Data/NPC/Scripts e abra o arquivo rune.lua, dê ctrl+f e procure por " blank rune", EM BAIXO adicione isto: Pronto! Finalmente acabou; você está com sua VIP Healing Rune e VIP Greater Healing Rune! •Explicação; Em setCombatParam(combat, COMBAT_PARAM_EFFECT, 14): o 14 é Efeitos! Você pode olhar os efeitos entrando com o GOD no server e digitando /z 1 até o 63 se não me engano; Em doCreatureAddMana(cid, math.random(100000,500000)): 100000,500000 é o tanto que irá healar, totalmente ao seu critério; Em setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 500, 5000, 10000, 12000): 500, 5000, 10000, 12000 é o tanto que irá healar, totalmente ao seu critério; Em Marron Claro: o nome da runa, totalmente ao seu critério; Em Laranja: o id das runas, totalmente ao seu critério; Em Rosa: o level necessário para usar a runa, totalmente ao seu critério; Em Verde: o magic level necessário para usar a runa, totalmente ao seu critério; Em Verde Água: nome e local do arquivo .lua que a gente criou; Em Marron: nome das runas; E em Amarelo: o preço das runas no npc. •ScreenShot; Chaos Greater Mana Rune: Chaos Greater Healing Rune: •Créditos: 100% Meu.
    3 pontos
  3. Informações: Server 8.6 Oque Mudou? 1-Adicionada 3 Novas Quests 2-Adicionado Set Brutal 3-Adicionada Novas Runas 4-Diminui um pouco o Exausted..Assim o server Nao tera Mt lag..Obs:continua fast attack so diminui um poco. 5-Novo Visual 6-Adicionei Novos Scripts 7-Livre De Bugs 8-Vocações Balanceadas Baixe E confira o Resto senha do adm god/god thanks! ~~~~~~~~~~~~~~~~~~~~Algumas Imagens~~~~~~~~~~~~~~~~ DOWNLOAD: http://www.4shared.c...D13M12A12.html? Scan: VirusTotal Gostou?Da +REP Seu Dedo Num Vai Cai Eu Juro..Obs: Pelo menos Eu acho Que num vai ne ;D Em Breve Nova Atualização ^^
    2 pontos
  4. DiogoTemporario

    dissertem

    não é muito bom esse exemplo do roubo, gsouza e kakilow, pq esse é um caso de oportunismo exibir o corpo por se exibir mesmo (e pra quem não pode ter) é o mesmo princípio de uma madame andando com o nariz empinado e cheia de jóias - inevitavelmente vai passar por alguns pobres que não o podem ter é ostentação, provocação. não é certo estupra-la ou roubá-la, mas ela está provocando sim. só deixar de ser soberbo ou besta e parar de se exibir à quem não deve
    2 pontos
  5. tonynamoral Alguns erros ortográficos e de configurações, use esse script: local configs = { storage_start = 87812, storage_monster = 81251, storage_finish = 90125, quant = 100, quant2 = 99, msg = 'You are kiling "..getPlayerStorageValue(cid, configs.storage_monster).." of "..configs.quant.."' } local monster = "Dragon" local monster2 = "Dragon Lord" local monster3 = "Dragon Lord Hatchling" local function onTeleportar(cid) doTeleportThing(cid, pos) end local function onContar(cid) addEvent(doSendAnimatedText,5*1000,getThingPos(cid),1,28) addEvent(doSendAnimatedText,4*1000,getThingPos(cid),2,28) addEvent(doSendAnimatedText,3*1000,getThingPos(cid),3,28) addEvent(doSendAnimatedText,2*1000,getThingPos(cid),4,28) addEvent(doSendAnimatedText,1*1000,getThingPos(cid),5,28) end function onKill(cid, target, lastHit) if(getPlayerStorageValue(cid,configs.storage_monster) == configs.quant) then onContar(cid) addEvent(function() onTeleportar(cid) end,6*1000) end if getPlayerStorageValue(cid, configs.storage_start) >= 1 then if getCreatureName(target) == monster or getCreatureName(target) == monster2 or getCreatureName(target) == monster3 then setPlayerStorageValue(cid, configs.storage_monster, getPlayerStorageValue(cid, configs.storage_monster)+1) doPlayerSendTextMessage(cid, 27,configs.msg) return true end end end iunix Seu script correto seria: local configs = { storage_start = 87812, storage_monster = 81251, storage_finish = 90125, quant = 100, quant2 = 99, monsters = {"Dragon", "Dragon Lord", "Dragon Lord Hatchling"}, pos = {x=1111,y=1111,z=1} } function onKill(cid, target, lastHit) if(getPlayerStorageValue(cid,configs.storage_monster) == configs.quant) then for i = 1, 5 do addEvent(doSendAnimatedText,i *1000,getThingPos(cid),i,28) end addEvent(doTeleportThing, 6*1000, cid, config.pos) elseif getPlayerStorageValue(cid,configs.storage_Start) >= 1 then if isInArray(config.monsters, getCreatureName(target)) then setPlayerStorageValue(cid,configs.storage_monster,getPlayerStorageValue(cid,configs.storage_monster)+1) doPlayerSendTextMessage(cid,27,"You killed "..getPlayerStorageValue(cid,storage_monster).." of "..configs.quant..".") return true end end return true end
    2 pontos
  6. Oneshot

    Dual Wield

    Tendo visto a crescente quantidade de pedidos por armas que possam ser usadas simultaneamente nas duas mãos, resolvi criar um tutorial apenas para esclarecer que esse código já existe compilado nas mais recentes revisões do The Forgotten Server. Você pode escolher quais itens poderão ser equipamentos nas duas mãos e claro restringir esses itens depois para apenas uma vocação. 1. Para criar seu item que pode ser equipado nas duas mãos, abra o items.xml e navegue até o ID do item desejado. Por exemplo, mostrarei abaixo o ID da Magic Sword: <item id="2400" article="a" name="magic sword"> <attribute key="description" value="It is the Sword of Valor." /> <attribute key="weight" value="4200" /> <attribute key="defense" value="35" /> <attribute key="attack" value="48" /> <attribute key="weaponType" value="sword" /> <attribute key="extradef" value="3" /> </item> 2. Adicione o atributo dualwield com valor 1 no código XML do item. <item id="2400" article="a" name="magic sword"> <attribute key="description" value="It is the Sword of Valor." /> <attribute key="weight" value="4200" /> <attribute key="defense" value="35" /> <attribute key="attack" value="48" /> <attribute key="weaponType" value="sword" /> <attribute key="extradef" value="3" /> <attribute key="dualwield" value="1" /> </item> Pelo que pude testar os danos não se somam, mas sim são causados dois ataques ao invés de um, ou seja a velocidade de ataque do jogador aumenta. Funciona com qualquer tipo de arma, desde swords até rods e wands. Funcional em: The Forgotten Server 0.4 rev3777 em diante
    1 ponto
  7. GTA-OT by BEDDY - EXCLUSIVO XTIBIA.COM NÃO AUTORIZO POSTAGEM EM OUTRO FORUM! Depois de meses trabalhando, finalmente saiu!! Agora voces podem aproveitar esta ja é uma versao definitiva! GTA v1.1 Servidor Tibia GTA Alguma vez voce pensou que poderia jogar GTA no TIBIA? Agora é sua chance! Venha para o Tibia GTA e fassa sua Gangue, pegue em armas, mate todo mundo! Dirija, moto, bicicleta, skate!! Distro Totalmente Extavel Sem bugs Sem virus Sem motherfuckingthings! Apenas alegria! - O QUE TEM NO SERVIDOR: •2 Classes: RENEGADO e JUSTICEIRO •O player ao upar um level, ganha "POINTS" para trocar por LIFE OU MANA assim torna o jogo mais sensivel •BOOK DE GUIA na criação do CHAR ADICIONADO, para players não ficarem perdidos. •Mapa Proprio •40+ quests •Arena PVP - Sistema de Arma - Sistema de Moto, Bike e Skate. - Todos os NPCs funcionando e vendendo os itens corretamente. •Cada vocation com sua outfit •Ja existe vips e donates (ajuste conforme o nescessario) - Jetpack (Nescessario ter conbustivel para jetpack na BP para funcionar) - Armas, Clubs, Armors, Helmets, Legs, Shoes, Shields - TOTALMENTE CORRETO com DEVIDOS SPRITES. - Cidade totalmente tematizada - O QUE FALTA NO SERVIDOR: •AJUSTAR LIFE/HIT/LOOT DE MONSTROS (LOOKTYPE JÁ ESTA ARRUMADO) •CARRO(NAO IMPLEMENTADO) - SISTEMAS: •Colheita de maconha - Existe varias mudas espalhadas pelo servidor, usando o cortador de maconha, voce pode remove-las e utiliza-las e ganhar EXP! •Sistema de WoE - Guerra para ver quem será o dono do castelo! O dono do castelo ganha acesso para uma ilha da maconha! SCREENSHOTS: • • MAPINHA: 1- DEPOT, SHOPPING DE ITENS, UTILIDADES 2- VENDEDOR DE ARMAS 3- VENDEDOR DE VEICULOS 4- TEMPLO 5- MEDICO, COMPRAR CURE ITEMS 6- VENDEDOR DE OUTFITS 7- VENDEDOR DE MUNICOES DOWNLOAD: http://depositfiles....files/dq8r1spji http://depositfiles....files/dq8r1spji (INCLUSO: SERVIDOR, CLIENTE, MINI MAP, CREATURES PARA MAP EDITOR) SCAN: (by KASPERSKY PRO) CREDITOS: Beddy Agradeço aos que colaboraram: Vodkart Vilden Oneshot Jhon992 SkyDangerous Agradecimentos: Azeroth OT - Servidor Base Sprites - Maioria de Unknows GOSTOU? DA REP POIS FOI TENSO FAZER ISSO ! REP+ PRA MIM! ATENÇÂO: MAPA CIDADE DOKA http://depositfiles....files/o902rex8i Creditos: - Beddy - Quilante - pelo mapa ser seu. Estou meio sem tempo de terminar, mas aguardem que eu lanço o mapa completo!
    1 ponto
  8. Tony

    Criando Um Cliente 100% Proprio

    Olá pessoal do Xtibia! Hoje vou ensinar a vocês como criar um cliente 100% próprio para seu servidor de tibia. :forward: Créditos :back: :star2: Jakiin :star2: Trazer ao x-tibia :star2: TiraDuvidas :star2: Fazer o Tutorial Este tópico recebeu destaque em nosso portal!
    1 ponto
  9. Eae pessoal, meu nome é GuhPk, venho até vocês ensinar como editar as evoluções dos pokemon's em seu servidor... Irei ensinar apenas a como editar aqui, e a partir disto já da para saber como criar uma nova!!! Como Editar: Vá até a pasta data/lib em seu server, e abra o arquivo "configuration.lua". PS: Aconselho abrir com o Bloco de Notas!!! Lá dentro do arquivo, aperte Ctrl+F e pesquise por "poevo". Abaixo, localize o pokemon que você deseja editar evolução... Ex: Charmander > Charmeleon > Charizard Aqui esta com estas tag's: Explicando: Vermelho = Nome do pokemon antes da evolução. (Ex: Chamander vai para Charmeleon, então o nome é "Charmander") Azul = Level em que o pokemon irá evoluir. Verde = Nome da pokemon que o pokemon irá virar. (Nome da evolução [PS: Sempre entre aspas]) Laranja = Id da pedra, caso evolua com pedra. Rosa = Mesma coisa que acima, porém é só se for preciso 2 pedras diferentes para evoluir o pokemon. Roxo = Quantas pedras são necessárias para evolui-lo. (Caso seja 2 pedras e queria 1 de cada, deixe 1, se for 2 de cada, deixe 2 e assim por diante...) Servidores Testados: PDA By Slicer v2.6(+2.6.1+2.7) = Funcional Centurion v4.0 = Funcional
    1 ponto
  10. Delaks

    Subwat Kamikaze V24 [03/10/2012] Atualizado!

    OLÀ GALERA,ESTOU AQUI PARA POSTAR O SUBWAT KAMIKAZE V24! ATUALIZAÇÔES -Adicionado Sala de quests -Adicionado Sala de hunts KM -Templo Modificado -Várias coisas decoradas -Agora com sistema de leilão -Hunts adicionadas -Retirado alguns bugs -Alguns lugares editados -Itens Reestabelecidos IMAGENS! TEMPLO TELEPORTS SUPER VIP SALA DE QUESTS SALA DAS HUNTS DOWNLOAD: http://www.4shared.c...ikaze_V24.html? SCAN: https://www.virustot...sis/1349299549/ È isso ai galera,atualizado o kamikaze,e se puder de um REP+ e comente que agradeço.
    1 ponto
  11. juninhoo360

    Exevo Vip Power

    Spell exclusiva. Tibia 8.6 Join! • Menu: ├ Informações; ├ Compatibilidade; ├ Tutorial; ├ ScreenShots; └ Creditos. Informação: Através desse tópico, venho trazer um conteúdo bem interessante para o maior site de Tibia, o XTibia.com ! Comentem por favor, é de muita importância para mim. Compatibilidade: Windows Xp: OK! Windows 7: OK! Testado Somente em Alissow OT 8.6 Tutorial: Estou aqui para mostra-los e ensina-los a colocar uma spell que Eu criei! Bom, para começo de conversa, vá na pasta do seu Server/Data/Spells/Scripts. E lá , você cria um arquivo ( ou copie e cole um arquivo já existente ) e renomeie ele para: "Vip Spelling" Depois de ter feito isso, abra-o e coloque isto dentro do arquivo: Bom, feito isso, 50% da sua nova spell já está criada! Agora vamos voltar; vá na pasta do seu server>data>spells, abra o arquivo chamado Spell.xml ( é o único arquivo editável )! Acrescente isso na linha abaixo de ATTACK SPELLS : Agora irei explicar a parte do SPELL.XML! Vip Spelling: isso é o nome da spell que eu falei pra copiar um arquivo já existente e renomear para Vip Spelling ( caso colocou outro nome, escreva o nome que colocou no lugar de Vip Spelling. ) Exevo Vip Power: Isso é o que o player irá falar para que a spell seja conjurada! ( isso é totalmente editável, pode mudar o quanto quiser.) Lvl="20000" = O 20000 é o level mínimo que o player terá que ter para usar a spell, se for abaixo que isso, não poderá usar. ( isso também é totalmente editável. ) Mana="5500" = É a Mana que irá gastar após conjurar a spell. (Totalmente editável, também.) prem="1" = É se o player precisará ser premium para usar a spell, no meu caso, como a spell é para VIP's, eu coloquei sim. (0=não 1=sim) value="Vip Spelling.lua"= Isso é o nome do arquivo que você teve que criar lá no começo do Tutorial. ( Totalmente editável, coloque de acordo com o nome da spell lá no começo do tutorial.) O resto eu não recomendo editar, pois irá fazer a spell ficar diferente. Bom, é isso pessoal, espero que tenham gostado. ScreenShoot: Créditos: 95% Meu, por criar a magia e o tópico. 5% Do Alissow, por disponibilizar o server dele aqui no XTibia.
    1 ponto
  12. Oneshot

    Oneshot's Anti-bot

    Nome: Oneshot's Anti-bot Autor: Oneshot Tipo: Sistema Descrição Este é um sistema de anti-bot simples, que envia um código numérico de 6 dígitos para cada jogador online e pede para que, através de um comando, este código de verificação seja ativado. O jogador tem um limite de tempo para fazer isso, e caso não faça, este é banido por um tempo configurável ou então, preso em um certo lugar do mapa. Instalação 1. Em data/lib, crie um arquivo chamado antibot.lua e cole o conteúdo abaixo: ANTIBOT_STORAGE_1 = 109001 ANTIBOT_STORAGE_2 = 109002 ANTIBOT_STORAGE_3 = 109003 ANTIBOT_TYPE = 2 -- [1] = Banimento, [2] = Prisão ANTIBOT_DURATION = 120 -- Em segundos ANTIBOT_DURATION_DELAY = 10 -- Em segundos ANTIBOT_MESSAGE = "[Oneshot's Anti-bot]\nSeu código de verificação é %s, responda através do comando !antibot, caso contrário, será ".. (ANTIBOT_TYPE == 1 and "banido" or "preso") ..".\nVocê têm %s segundos." ANTIBOT_BAN_TIME = 24 * 60 * 60 ANTIBOT_PRISON = {x = 1019, y = 867, z = 7} ANTIBOT_PRISON_FROMPOSITION = {x = 1018, y = 865, z = 7} ANTIBOT_PRISON_TOPOSITION = {x = 1020, y = 869, z = 7} ANTIBOT_PRISON_DURATION = 3 * 60 * 60 ANTIBOT_TEMPLE = {x = 1027, y = 912, z = 5} function AntiBot(cid) if not isCreature(cid) then return end local time = getCreatureStorage(cid, ANTIBOT_STORAGE_1) local answer = getCreatureStorage(cid, ANTIBOT_STORAGE_2) if getPlayerAccess(cid) >= 3 or not(getPlayerAccountManager(cid) == MANAGER_NONE) then return end if isInRange(getThingPosition(cid), ANTIBOT_PRISON_FROMPOSITION, ANTIBOT_PRISON_TOPOSITION) then return end if time == -1 and answer == -1 then return end if os.time() >= time then doCreatureSetStorage(cid, ANTIBOT_STORAGE_1, -1) doCreatureSetStorage(cid, ANTIBOT_STORAGE_2, -1) doBroadcastMessage("[ANTI-BOT] O jogador ".. getCreatureName(cid) .." foi ".. (ANTIBOT_TYPE == 1 and "banido" or "preso") .." por uso de bot.") if ANTIBOT_TYPE == 1 then doAddAccountBanishment(getPlayerGUID(cid), 0, (os.time() + ANTIBOT_BAN_TIME), 12, 3, "[ANTI-BOT]") doRemoveCreature(cid) else doTeleportThing(cid, ANTIBOT_PRISON) doCreatureSetStorage(cid, ANTIBOT_STORAGE_3, os.time() + ANTIBOT_PRISON_DURATION) addEvent(function() if isCreature(cid) then doTeleportThing(cid, ANTIBOT_TEMPLE) end end, ANTIBOT_PRISON_DURATION * 1000) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, ANTIBOT_MESSAGE:format(answer, (time - os.time()))) addEvent(AntiBot, ANTIBOT_DURATION_DELAY * 1000, cid) end end 2. Crie um arquivo chamado antibot.lua em data/globalevents/scripts, cole o conteúdo abaixo function onThink(interval) for _, cid in ipairs(getPlayersOnline()) do local answer = math.random(100000, 999999) doCreatureSetStorage(cid, ANTIBOT_STORAGE_1, os.time() + ANTIBOT_DURATION) doCreatureSetStorage(cid, ANTIBOT_STORAGE_2, answer) AntiBot(cid) end return true end Adicione a seguinte linha em globalevents.xml <globalevent name="antibot" interval="900" event="script" value="antibot.lua"/> 3. Crie um arquivo em data/creaturescripts/scripts, cole o conteúdo abaixo function onLogin(cid) local time = getCreatureStorage(cid, ANTIBOT_STORAGE_1) local answer = getCreatureStorage(cid, ANTIBOT_STORAGE_2) if answer == -1 then return true end if isInRange(getThingPosition(cid), ANTIBOT_PRISON_FROMPOSITION, ANTIBOT_PRISON_TOPOSITION) then if os.time() > getCreatureStorage(cid, ANTIBOT_STORAGE_3) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu tempo de prisão acabou.") doTeleportThing(cid, ANTIBOT_TEMPLE) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você ainda está preso por uso de bot.") end return true end if os.time() > ANTIBOT_STORAGE_1 then doCreatureSetStorage(cid, ANTIBOT_STORAGE_1, os.time() + ANTIBOT_DURATION) return true end AntiBot(cid) return true end Adicione a seguinte linha em seu creaturescripts.xml <event type="login" name="Antibot" event="script" value="antibot.lua"/> 4. Crie um arquivo chamado antibot.lua em data/talkactions/scripts, cole o conteúdo abaixo function onSay(cid, words, param, channel) param = tonumber(param) or "" local time = getCreatureStorage(cid, ANTIBOT_STORAGE_1) local answer = getCreatureStorage(cid, ANTIBOT_STORAGE_2) if time == -1 and answer == -1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O anti-bot não está ativado.") return true end if param == "" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite uma senha de verificação válida.") return true end if param ~= answer then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você digitou a senha incorreta. Digite corretamente, caso contrário, será banido.") return true end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ótimo! Você digitou a resposta correta. O anti-bot foi desativado.") doCreatureSetStorage(cid, ANTIBOT_STORAGE_1, -1) doCreatureSetStorage(cid, ANTIBOT_STORAGE_2, -1) return true end Adicione a seguinte linha em seu talkactions.xml <talkaction words="!antibot" event="script" value="antibot.lua"/> Você pode fazer várias configurações na lib do sistema ANTIBOT_STORAGE_1 = 109001 ANTIBOT_STORAGE_2 = 109002 ANTIBOT_STORAGE_3 = 109003 ANTIBOT_TYPE = 2 -- [1] = Banimento, [2] = Prisão ANTIBOT_DURATION = 120 -- Em segundos ANTIBOT_DURATION_DELAY = 10 -- Em segundos ANTIBOT_MESSAGE = "[Oneshot's Anti-bot]\nSeu código de verificação é %s, responda através do comando !antibot, caso contrário, será ".. (ANTIBOT_TYPE == 1 and "banido" or "preso") ..".\nVocê têm %s segundos." ANTIBOT_BAN_TIME = 24 * 60 * 60 ANTIBOT_PRISON = {x = 1019, y = 867, z = 7} ANTIBOT_PRISON_FROMPOSITION = {x = 1018, y = 865, z = 7} ANTIBOT_PRISON_TOPOSITION = {x = 1020, y = 869, z = 7} ANTIBOT_PRISON_DURATION = 3 * 60 * 60 ANTIBOT_TEMPLE = {x = 1027, y = 912, z = 5} Como a duração do ban, a posição da prisão, o tempo de prisão, dentre outras coisas. Como não consegui fazer funcionar o banimento de um jogador só na versão 0.3.6pl1, sendo isto possível apenas na 0.4.0, resolvi colocar para o tipo de banimento ser na conta toda. Abraços.
    1 ponto
  13. MaXwEllDeN

    getTableInAlphabeticalOrder

    Author: MaXwEllDeN[Maxwell Alcantara(Eu)] Galera, eu estava vasculhando aqui e achei essa função que eu fiz a um tempão, esse código tá bem "POGGADO". function getInAOrder(tabl) local dat = {} local tab = {} local tab2 = {["A"] = 1, ["Ä"] = 1, ["Ã"] = 1, ["Â"] = 1, ["À"] = 1, ["Á"] = 1, ["B"] = 2, ["C"] = 3, ["D"] = 4, ["E"] = 5, ["Ë"] = 5, ["Ê"] = 5, ["À"] = 5, ["F"] = 6, ["G"] = 7, ["H"] = 8, ["I"] = 9, ["Ï"] = 9, ["Ì"] = 9, ["Í"] = 9, ["Î"] = 9,["J"] = 10, ["K"] = 11, ["L"] = 12, ["M"] = 13, ["N"] = 14, ["Ñ"] = 14, ["O"] = 15, ["Ö"] = 15, ["Ó"] = 15, ["Ò"] = 15, ["Ô"] = 15, ["Õ"] = 15,["P"] = 16, ["Q"] = 17, ["R"] = 18, ["S"] = 19, ["T"] = 20, ["U"] = 21, ["V"] = 22, ["W"] = 23, ["X"] = 24, ["Y"] = 25, ["Z"] = 26 } for a = 1,26 do table.insert(tab, {}) end for a, b in pairs(tabl) do if (tab2[b:sub(1, 1):upper()]) then table.insert(tab[tab2[b:sub(1, 1):upper()]], b) else table.insert(tab[#tab2], b) end end for a, b in ipairs(tab) do for c, d in ipairs(b) do table.insert(dat, d) end end return dat end O que a função faz é organizar uma tabela em ordem alfabética. Se você rodar isso: local t = {"Socket", "Lua", "C++", "Linux", "windows", "ubuntu", "C", "Delphi", "Mint" "Alfa", "Ômega", "PHP", "HTML"} for a, b in pairs(getInAOrder(t)) do print(b) end irá ser retornado isso: Alfa C++ C Delphi HTML Lua Linux Mint Ômega PHP Socket ubuntu windows Não liguem pra gambiarra, faz muito tempo que eu fiz ela .-.
    1 ponto
  14. AlexandreKG

    Ajuda com Modern.

    Boa noite,amigo. Ponha essa. http://speedy.sh/xSHmF/comments.sql
    1 ponto
  15. Use este script: function onStepIn(cid, item, frompos, position) if getPlayerStorageValue(cid, 13540) >= 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seja Bem Vindo a Area Vip.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não é vip, fale com o Administrador do Server.") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return true end end
    1 ponto
  16. opa, nessa parte aqui do script: if getTileItemById(checkpos, itemid) then return true end substitui por isso: if getTileItemById(checkpos, itemid).uid > 1 then return true end ja mudei lá em cima
    1 ponto
  17. Uma função que procura direto no formado de cruz: eu fiz uma lib que converte uma array com 0, 1, 2 e 3 numa array de positions detalhe: acho muito difícil fazer uma função parecida em poucas linhas, pelo menos em lua acho que não rola... o que eu não fiz ainda foi vasculhar as sources pra ver como é feita essa conversão em spells e traduzir pra lua, essa aqui fiz sem basear em nada: Exemplo de uso dela: O bom dessa função que fiz é que a array não precisa ser simetrica/quadrada o primeiro parâmetro é o array contendo os nº (0 até 3, 0 não é nada, 1 é trnasformado em posição, 2 é o centro só que não é incluído no return da função, 3 é o centro e é incluído no retorno), o segundo array é a posição centro e o 3º parâmetro é o nº de voltas que o array vai dar, exemplo: Um exemplo de como uma magia que seria um raio para frente usando essa lib:
    1 ponto
  18. eu gosto muito dessa function.. com ela vc pode usar uma area de spell pra verificaçao.. tpw... cruz = { {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {1, 1, 2, 1, 1}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0} } function hasItems(cid) local posis = getPosfromArea(cid, cruz) local itens = {1111, 2222, 3333} for a, b in ipairs(posis) do for c, d in ipairs(itens) do local item = getTileItemById(b, d) if item.uid > 0 then return true end end end return false end
    1 ponto
  19. function hasItems(position, rangex, rangey, ...) local fromPosition = {x = position.x - rangex, y = position.y - rangey, z = position.z} local toPosition = {x = position.x + rangex, y = position.y + rangey, z = position.z} local items = {...} local match = false for x = fromPosition.x, toPosition.x do for y = fromPosition.y, toPosition.y do local p = {x = x, y = y, z = fromPosition.z} for _, item in ipairs(items) do local w = getTileItemById(p, item) if w.uid > 0 then match = true end end end end return match end Acabou de sair do forno. Utilização: hasItems(getThingPosition(cid), 1, 1, 2112, 2160, 2152, 2148) Irá procurar em uma área de 3X3 ao redor do jogador pelos quatro itens especificados na função, caso ache qualquer um dos quatro, irá retornar true.
    1 ponto
  20. Cara, é o terceiro tópico que você faz hoje com o mesmo assunto. Se fizer mais um perguntando sobre isso vou te dar REP-. Tópico fechado.
    1 ponto
  21. Junior001

    (Duvida) WebSite

    Simplismente va no phpmyadmin depois em players vai no Pokemon Trainer Samples e vai ta la Level vc troca para o lvl que vc quer q os seus player fikem quando criarem as accounts eles teram o lvl !
    1 ponto
  22. vá em config.lua la vai ter: sqlHost = "localhost" troque o localhost para 127.0.0.1 ficando assim: sqlHost = "127.0.0.1" se der rep+ se quiser se não der poste o seu config.lua ( a parte do SQL)
    1 ponto
  23. vital900

    Apresentação Geral

    Hoje eu recebi de nosso spriter (Wodkko) um arsenal de 500 itens próprios para o servidor. E nosso mapper GuizitoG conseguiu com o ElderDark (mapper de outra equipe) todas as 4.296 sprites deste update do tibia pós Winter 2012 (update que ocorreu no tibia global há um dia). - Lembrando que o Elysium será feito sobre o client 8.70
    1 ponto
  24. MauricioPC

    [Encerrado] Como arrumar Corpse

    @GuhPk amigo... segue esse tutorial http://www.xtibia.com/forum/topic/175561-pokemon-dash-advanced-continuacao-do-dash/page__st__580__p__1159118#entry1159118 assim oq vc esqueceu ou nao sabia colocar fica mais claro para colocar
    1 ponto
  25. beddy

    dissertem

    Então me mostre seu poder.
    1 ponto
  26. Heinekennn

    [Encerrado] [PDA] Ot Client ?

    Mas mesmo assim quando eu abro n aparesse o cd bar!
    1 ponto
  27. 5 - 6 - Va no site " http://vapus.net/customclient ", lá em cima na primeira barra, coloque seu IP! Lá no final, escolha a versão do Cliente, e pronto, vira um Tibia.exe com o ip novo!
    1 ponto
  28. Use esse script no lugar da sua spell: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_EFFECT, 35) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_NONEDAMAGE) setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 204) function onGetFormulaValues(cid, level, maglevel) min = -((level*1 + maglevel*1.6) + 125) max = -((level*1 + maglevel*1.8) + 125) return min, max end setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_EFFECT, 19) setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_HITCOLOR, 204) function onGetFormulaValues(cid, level, maglevel) min = -((level*5.4 + maglevel*6.4)) max = -((level*5.5 + maglevel*6.5)) return min, max end setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local arr1 = { {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 2, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, } local arr2 = { {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 2, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) setCombatArea(combat1, area1) setCombatArea(combat2, area2) local function onCastSpell1(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var) end local function onCastSpell2(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat2, parameters.var) end function onCastSpell(cid, var) if getPlayerStorageValue(cid, 8585) >= 1 then return false end local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 100, parameters) return true end Abra a pasta data/movements/scripts e crie um arquivo chamado spelltile.lua Adicione o script: local stor = 8585 function onStepIn(cid, item, frompos) if getPlayerStorageValue(cid, stor) <= 0 then setPlayerStorageValue(cid, stor, 1) end end function onStepOut(cid, item, frompos) if getPlayerStorageValue(cid, stor) >= 1 then setPlayerStorageValue(cid, stor, 0) end end Em data/movements abra o arquivo movements.xml Adicione as tags: <movevent type="StepIn" actionid="8585" event="script" value="spelltile.lua"/> <movevent type="StepOut" actionid="8585" event="script" value="spelltile.lua"/>
    1 ponto
  29. Slicer ta certo, em Configuration procura por pokescatch e nessa parte: ["Bulbasaur"] = {chance = XXXX, corpse = 5969}, Em XXXX Você edita a chance de pegar o pokemon. Galera quando for ajudar explique direito por favor.
    1 ponto
  30. Yan Oliveira

    [Tutorial] Client Proprio

    Não acredito que deixaram passar isso, tutorial está na área errada. Tutorial Movido para Clientes de OTserv
    1 ponto
  31. Roksas

    Duvida com Stages

    Substitua seu stages.xml por esse: <?xml version="1.0" encoding="UTF-8"?> <stages> <world id="0" multiplier="100"> <stage minlevel="1" maxlevel="100" multiplier="100"/> <stage minlevel="101" maxlevel="120" multiplier="80"/> <stage minlevel="121" maxlevel="140" multiplier="70"/> <stage minlevel="141" maxlevel="160" multiplier="60"/> <stage minlevel="161" maxlevel="220" multiplier="40"/> <stage minlevel="221" maxlevel="400" multiplier="30"/> <stage minlevel="401" multiplier="14"/> </world> </stages> @MUDANDO DE ASSUNTO Vi outro erro no seu config.lua, procure por: displayCriticalHitNotify = truel Troque por: displayCriticalHitNotify = true
    1 ponto
  32. HidekiKty

    [Pedido] !vip

    Uma talkaction que adicione 100 Premium Days por 10 diamonds, certo ? Vá a pasta data/talkactions/scripts e crie um arquivo chamado buyvip.lua Adicione o script: function onSay(cid, words, param) if getPlayerItem(cid, 2145) >= 10 then doPlayerRemoveItem(cid, 2145, 10) doPlayerAddPremiumDays(cid, 100) doPlayerSendTextMessage(cid, 22, "Parabéns ! Você comprou sua Vip por 10 Diamonds !") else DoPlayerSendCancel(cid, "Você precisa de 10 Diamonds para comprar a Vip.") end return true end Agora em data/talkactions abra o arquivo talkactions.xml Adicione a tag: <talkaction words="!vip" script="buyvip.lua" />
    1 ponto
  33. atimosfire

    Speedy Pokéworld

    Olá amigos, Além do server ser totalmente 24 horas dedicado, com suporte 24 horas e totalmente configurado, temos mais algumas. Chame seus amigos, e venha se divertir! Dados da Conexão: Site: http://speedypoke.no-ip.org/ IP: speedypoke.no-ip.org Versão: 8.54 Porque jogar na Speedy Pokéworld? Informações Servidor: Experience: 25x Loot: 10x Spawn: 4x -Comandos m1 até m12. -Portrait, go back e todos os outros sistemas mais básicos. -Experiencia ajustada para se ter um bom jogo. -Order funcional com as habilidades dos pokemons (fly, ride, dig, cut, light, rock smash, blink, move). -Cada pokémon tem seus status (offense, defense, special attack, agility). -Sistemas de felicidade, influenciando no ataque e evolução. -Sistema de fome. -NPC que troca nick. -Potions que healam a vida dos pokemons. -Todos os pokemons desde Shinys a Johto com forças,vida e ataques ajustados. -Pokemons upam até o nível 100. -Boost até nivel 50. -Cooldown Bar. Suporte Ativo. Tá esperando oque? Traga seu time, e se divirta-se! A cada 10 amigos que você trazer para o Server, você receberá 1 box Ajudem a Divulgar! Interessados
    1 ponto
  34. ja tem esse sistema vai em data\creaturescripts\scripts\spawn.lua procura por transform = math.random recomendo deixa assim transform = math.random(1, 100) --10% chance mais se vc quer que vem shiny direto coloca assim transform = math.random(1, 10)
    1 ponto
  35. esse yan se acha muito reporta sua mae pra ve se ela sai vuando ¬¬'
    -1 pontos
  36. BrunooMaciell

    (Duvida) Website

    alguem pode mi ajudar com issu o mais rapido possivel ;(
    -1 pontos
  37. guinho1855

    Script De Title

    .!service , E nao bc
    -1 pontos
  38. Aew galera blza? Tenho o sistema de training offline (Tópico: http://www.xtibia.com/forum/topic/194014-tfs-0496-and-some-older-offline-training-bar-barrinha-1200h-funcionando/ ) Mas, a barrinha de "offline training" não está contando o tempo. Então, no tópico, diz que para funcionar, precisa substituir linhas no protocolgame.cpp nas source: Só que, no meu protocolgame.cpp não tem essa linha "msg->put<uint16_t>(720);" O que exatamente tenho que fazer nesse caso? OBS: No meu protocolgame.cpp, apenas existe isso sobre "training offline" : msg->put<uint16_t>(player->getOfflineTrainingTime() / 60 / 1000); Aguardo, obrigado!
    -1 pontos
  39. EduziTow

    [AJUDA] Clean Diferente

    Gente,Queria Um Comando Para Um Local Especial Em Que So Retirace Os Itens,Exemplo,Corpos,Fields,Etc em um local especifico,e que quando for limpado os itens vir de < pra > e com o efeito /z 7
    -1 pontos
  40. lucasalisson

    Criando Área Vip

    Antigo isso, acho que ngm mais usa isso =O
    -2 pontos
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...