Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. Introdução Olá, sou BielSullivan, ou Vampiresco.. Perdi esta conta do Xtibia, e não consigo recuperar, mas isso é assunto para a administração do Xtibia. Vamos falar do que interessa. O Mundo Pokemon Viruts é um server de Pokemon sério, como "muitos outros" no mercado atual. Nossa equipe é a mesma equipe DarknessPO de outrora, tivemos que pausar aquele projeto por problemas pessoais. Decidimos retomar com a criação de um novo mundo, pelas ideias inovadoras que obtemos, e pelo amor que temos pelo Anime Pokemon. História A Pokemon Virus foi fundada nos exatos 12/01/2011, ainda com o nome Darkness Pokemon Online. A equipe se formou com 5 membros de minha família, todos fãs do anime Pokemon. E o curioso é que minha mãe (Jogadora de RPG´s em geral) era e ainda faz parte da equipe. Com dedicação e seriedade, nós sonhamos em criar um game de Pokemon, com uma jogabilidade agradável, sem fugir muito do Anime. E com um tempo, reunimos alguns bons membros aqui do Xtibia, para ajudar-nos. Porem com o termino do projeto, ficamos sem alguns dos melhores. Hoje, voltamos com o projeto, apenas com a equipe original, e com toda essa evolução e tecnologia de hoje em dia, iremos criar o melhor servidor de Pokemon com plataforma de tíbia da atualidade. Sistemas Por motivos internos, nos da equipe Virtus, mantemos algumas informações como esta em sigilo. Membros da equipe partilharão das informações em geral, e terão total liberdade para sugestionar, visando o melhor para o Mundo que criaremos juntos. Só oque podemos adiantar, é que utilizamos a plataforma mais usada para servidores de Pokemon, e que os sistemas que são vistos em outros servidores, também possuímos. Estamos com praticamente tudo pronto para o inicio, porem precisamos terminar e editar pequenas coisas que estão em pauta, para darmos a partida para uma aventura jamais vista. Por hora, quero deixar bem claro que nós da equipe Virtus, agradecemos e creditaremos os criadores do servidor que utilizamos como base. ------------------------------------------------------------------------------------- Informações abertas ao Publico: Quero adiantar, que não visaremos nas novas gerações de Pokemon, pois somos verdadeiros amantes e fieis as primeiras temporadas. Traremos fosseis Pokemon, podendo revive-los (Quest). Traremos a Master Quest, a quest mais bem bolada, para ganhar a recompensa mais cobiçada, a Master Ball. Teremos uma forte relação com o anime, com missões e mapa que trarão uma certa nostalgia. Traremos a gloriosa quest do Celebi, com várias missões e interação com Npc´s. -Barco por rota. -Npc com Task diárias. - Eu sei que é pouco, mas é oque ficamos confortáveis de divulgar. - Aviso importante: Precisamos de alguém que alguém desenvolva um site por completo para o nosso Virtus Pokemon. De preferencia com um designer bem leve e que não agrida os olhos dos usuários. Não queremos nada complexo, mas também não tão simples. Nota Nós traremos algumas quest´s bastante inovadoras, com histórias tão bem feitas que empolgarão os treinadores pokemons. Acho que o mais valioso que a Virtus pode oferecer é as ideias inovadoras que os fundadores reuniram todo este tempo. Mas não podemos deixar de fora a seriedade que a equipe trata o projeto. Os patrocinadores já estão a disposição para bancar um bom host, e também para por um bom domínio no nosso futuro site. Equipe: Vamp Misa Misa Michael Willian FoxXx Davi Martins Stanistal Mr Cogumelo Lordbaxx Wonkka Tutor Ikarus Tutor Hiroralf ------------------------------------------------------------------------- Formação de Equipe: (Cargos e Vagas) Mapper - [2 VAGAS] Programador - (.LUA or C++) [2 VAGAS] Designer - [1 VAGA] Spriter - [1 VAGA] Scripter [3 VAGAS] Se você atua em outra área que não está aqui, e acha que será útil, informe no seu currículo. --------------------------------------------------------- Currículo : Name/Nick: Idade: Cargo(s): Tempo que atua nesse(s) cargo(s): Facebook (Envie para mim se achar necessário, junto com o currículo): Skype: Porque deseja participar da equipe: Trabalhos (Opcional): Requisitos: Experiência. Disponibilidade. Comprometimento. Seriedade. Dedicação. Amor ao anime. Comunicado: E por hora é isso, em breve, algumas edições no tópico com algumas informações. Também em breve, estaremos divulgando o nosso servidor aqui no Xtibia, e poderão ver, e acompanhar com mais clareza, oque de especial o Mundo Virtus Pokemon online trará. Paz, amor e empatia a todos vocês! Página no Facebook: https://www.facebook.com/MundoPokemonVirtus?ref=hl
    2 pontos
  2. Skymagnum

    Alugar Roupas

    @Atualizado agora com roupas variando de acordo com o sexo outfitId = {0, 0} primeiro e o female depois o male. login.lua: local out = getPlayerStorageValue(cid, 38220) if getPlayerStorageValue(cid, 38219) - os.time() < 1 and canPlayerWearOutfitId(cid, out) then doPlayerRemoveOutfitId(cid, out, 3) end
    2 pontos
  3. Kuro o Shiniga

    C/C++ Parte 2 Continuação!

    Eae galerinha voltei para dar continuidade ao tutorial, esse tutorial é continuação da parte 2, eu não expliquei totalmente ela vou terminar ela nesse tutorial espero que gostem e vamos ao que interessa! Então vamos lá ! Float é o tipo de variável real natural, aquela com a qual o sistema trabalha com maior naturalidade. Double e long double são úteis quando queremos trabalhar com intervalos de números reais realmente grandes. Utilizamos números reais geralmente para expressar precisão através do número de casas decimais, então podemos dizer que uma variável float é menos precisa que uma variável double, assim como uma variável double é menos precisa que long double. A tabela abaixo mostra os tipos de variáveis reais, seu tamanho em bits e o intervalo de armazenagem. Tipo Tamanho (em bits) Intervalo Float 32 3,4E-38 a 3,4E+38 Double 64 1,7E-308 a 1,7E+308 long double 80 3,4E-4932 a 1,1E+4932 Definição de Variáveis: <tipo> <nome>; Por exemplo: int exemplo Além disso, caso seja necessário, podemos declarar um valor a esta variável no momento de sua declaração, e também adicionar um prefixo a ela, da seguinte forma: <prefixo> <tipo> <nome> = <valor>; Por exemplo: unsigned int exemplo = 12; Definição de Constantes: O conceito de constantes em linguagens de programação é atribuir um certo valor constante a um nome, e quando este nome for referenciado dentro do código do programa, será utilizado nas operações o valor atribuído a este nome. Ou seja, se for definida a constante PI com o valor “3,1415926536”, quando for encontrado no código o nome PI, será utilizado em seu lugar o valor “3,1415926536”. Em C++ , utilizamos o prefixo const associado a um tipo, um nome e um valor para definir uma constante. Assim: const <tipo> <nome> = <valor>; Por exemplo: const int eterna = 256; No exemplo acima, definimos uma constante inteira de nome “eterna” que possui o valor numérico 256. É importante notar que devemos declarar a constante e lhe atribuir um valor na mesma linha de comando. Não podemos criar uma constante e lhe atribuir um valor posteriormente, ou seja, as seguintes linhas de comando são inválidas: const int eterna; eterna = 256; A partir da primeira linha, “eterna” passa a ser uma constante e seu valor não pode ser mais mudado durante a execução do programa. Como seu valor não foi declarado, esta constante pode ter qualquer valor que esteja na memória do computador naquele momento da declaração da variável. Números Hexadecimais e Octais : hex = 0xFF; /* 255 em decimal */ oct = 011; /* 9 em decimal */ Outra base numérica muito utilizada na programação é a base binária. Apesar de C++ não possuir uma forma específica de se expressar valores de base binária, podemos utilizar a notação hexadecimal para esta função. Valores Strings: Então e isso galera, não deu pra terminar tudo a parte 2 porque ela vai ser bem grandinha! espero que gostem e estudem ^^
    2 pontos
  4. WakeSoft

    Baiak 8.60 O Original by : Baiak

    "MUITA GENTE NÃO ACHA ESSE MAPA MAIS , REVOLVI REPOSTA ..Baiak Yurots 8.60 .. Quem Não Gosta do Bom e Antigo Yurots.. Bom Ai Está Mapa Yurots Super Rox Editado Por Baiak Lula... Baiak Yurots V2.2 Oque Mudou ? Mudou a City ta 90% 8.5 Foi Arrumada As Houses. Adicioano Npc Papai Noel no Templo Vende Items 8.54! Novos Items Novos Outifits Novas Hunts E Muito Mais... Baiak Yurots V2.7 Oque Mudou ? Foi Adicionada um Nova Cidade Chamada Baiak City Foi Adidionada Um Teleport no Templo Que Vai para Alumas City's Foi Adicionado Npc de Bless,Pagando Todas as Bless você nao prescisa usar aol... Foi Adicionado Uma Ilha de GM's ... Bug do Account Mananger Arrumado. Novo Executer adicionado,se o ot cai ele salva sozinhoo. E Muito Mas Estara por vim ... Baiak Yurots v1.0.9 Oque Mudou ? Foi Adicionado Sistema Vip.. Foi Adicionado 5 Novos Portais Vip Foi Adicionado Novos Bixos Vip,Warlock Vip,Medusa Vip,Bossing of Baiak.. Foi Adicionado New Quest Baiak Super Foda !! Foi Modificado o Templo Foi Adicionado Mais Treiners ! Entre Alguns Bugs Retirados Baiak Yurots v1.1.0 Oque Mudou ? Mudou o Protocolo de 8.57 para 8.60 Novos Item Novo Outfit Baiak Yurots V1.1.4 Oque Mudou ? Tirei o Pz tool do Templo Fiz um Novo System Vip por Comando Fiz o Novo Addon do Outfit do Wayfarer Baiak Yurots V1.1.9 Oque Mudou ? Mudei o Distro Agora Se Preferir Pode Baixa Distro 8.60 ou 8.62 System Vip Como Funciona ? !buyvip (Para Comprar Vip)(Players) !vipdays (Para Ver Quantos Dias de Vip Você Tem)(Players) /addvip nomedoplayer,dyasvip (GOD) /delvip nomedoplayer,quantos dias de vip você quer tira desse player (GOD) Novos Comandos. !notice /guild -> Permite que você mande msg em vermelho para membros da sua guild !afk on ->Auto mensagem Ausente! !afk off ->Fica Normal Para Compra House:!buyhouse Para Se Desfazer da House:!leave Nova Magia Para Paladin:Exevo Con SanConjuga 15 Assassin Star Atk de Algumas Armas. Avenger 70/50 arcane staff 70/50 Magic Sword 65/45 Stunercutter axe 65/45 Thunder Hammer 65/45 Solar Axe 78/60 Warlord Sword 78/60 Screen Shoots Spoiler Screen Shoots Senha do GOD Baiak Yurots:god/god Download serve --> http://www.4shared.c...s_V118_860.html Download Distro -->http://www.4shared.c...s_e_Distro.html Scan Baiak Yurtos ->https://www.virustot...ysis/not/found/ Creditos: Quote GOD Bon Vilden ADM Elerian
    1 ponto
  5. ARDA ONLINE - BETA (v 9.83) Sejam todos bem-vindos à fase de testes de Arda Online, um novo servidor que chegou cheio de novidades e diferenciais, com sistemas únicos e desenvolvidos do zero. Gostaríamos de ressaltar que todos que nos ajudarem a testar e reportar bugs (no fórum), dependendo de sua severidade, vão ser recompensados na versão oficial do servidor, com ardan points. INFORMAÇÕES GERAIS Arda tem seu foco em um bom PVP. Magias geralmente utilizam souls para serem usadas, controlando as lutas para durarem um certo tempo. Aqui tudo depende de uma boa equipe pra que tudo de certo, pois cada vocação tem sua função, e um precisa do outro para ter todo seu potencial explorado. Como o foco é o PVP e o jogo em equipe, não temos BAN por killing, você pode matar a vontade, mas irá arcar com as 'skulls' e será penalizado. White Skull demora 15 minutos para sair. Red Skull são 4 mortes injustificadas em 24 horas (duração de 7 dias) Black Skull são 7 mortes injustificadas em 24 horas (duração de 7 dias) Não possuímos limites de level ou magic level para qualquer magia ou equipamento. Tudo é liberado, não precisando comprar spells, basta ter a mana e soul necessária (tabela completa em nosso site). VOCÊ ENCONTRA TUDO EM: Nosso site: http://ardaonline.com Facebook: www.fb.com/ardaonlineserver Experience: 5x Skills e magic level: 5x Versão: 9.83 IP: ardaonline.com Porta: 7171 MAS QUAL É ESSE DIFERENCIAL? Possuímos vários sistemas que deixam o seu jogo muito mais interessante. • Sistema de multi-linguagem: Arda é traduzido para uma melhor experiência dos jogadores, você pode trocar a sua linguagem a qualquer hora simplesmente dizendo: "!linguagem" ou "!lingua". Apesar de não estar completamente traduzido, a equipe de desenvolvimento está trabalhando duro para deixar o jogo de fácil entendimento para todos os jogadores. Exemplos: !linguagem ingles / !linguagem portugues / !lang pt / !lang english • Vocações: As vocações de Arda são divididas em três estágios: Primária: a primeira vocação escolhida. Promovida: a vocação escolhida para ser seguida após a vocação primária. Especializada: a vocação atingida através do domínio da vocação promovida. As vocações disponíveis são as seguintes: Warrior (Crusader - Elite Crusader ou Templar - Death Templar) Rogue (Hunter - Bounty Hunter ou Assassin - Dark Assassin) Wizard (Warlock - Sage Warlock, Shaman - Sage Shaman ou Summoner - Sage Summoner) • Staged Spells: O sistema de feitiços consiste no uso de magias que evoluem conforme o nível do jogador. Utiliza-se as mesmas palavras mágicas para todas vocações mas com diferentes feitiços para cada vocação/especialização. Feitiços de vocações não especializadas geralmente não evoluirão tanto quanto as de vocações especializadas. As palavras mágicas padrão são: Ataque: uto, exi, ino, max Cura: curo, curator Suporte: adito, lux, celero, utor, anima Especial: mor • Item Socket: Sockets são lugares que itens equipáveis possuem para serem aprimorados pelo uso de cristais de socket. Cristais mais fracos também podem ser obtidos de NPCs em troca de ouro ou de pontos ardan. • Cristais comprados por ouro são aleatórios e o atributo adicionado pelo mesmo será conhecido apenas após terem sido usados no item desejado. • Cristais trocados por pontos ardan tem seus atributos conhecidos antes de terem sido aplicados no item desejado. Atributos: health, mana, magic level, speed, melee, axe, sword, club, distance, shielding e fist. Exemplos: Fixo - (melee +1) Variável - (magic +0-2) Percentual - (health +1.4%) Note que se um socket for aplicado com o valor 0, o mesmo também será contado como um socket usado. Um equipamento pode possuir no máximo 2 sockets. • Item Refining: O sistema de refinamento permite que um equipamento tenha seu ataque, armadura ou defesa melhorado através do uso de uma pedra de refinamento. Pedras mais fracas também podem ser trocadas em NPCs por ouro ou pontos ardan. -Pedras compradas com ouro irão apenas alcançar (+1 +2 +3) -Pedras adquiridas com pontos ardan podem alcançar (+4 +5 +6) Exemplos: Uma magic plate armor possui armor 17 por padrão, mas se fosse refinada +5 ela possuiria armor 22. Um war hammer possui ataque 45 por padrão, mas se fosse refinado +2 possuiria ataque 47. • Alchemy: Alquimia é a arte da mistura de poções através do uso de palavras de encantamento em um altar apropriado. Seu nível de alquimia irá aumentar um pouco a cada poção misturada, e também quando falhar mas em um valor muito reduzido. Um personagem com um nível alto irá misturar poções muito mais poderosas. Os materiais de alquimia são obtidos através do uso da habilidade de herbalismo. Para checar o seu nível de alquimia você deve dizer !alquimia As palavras de encantamento para alquimia são: Health sero curo (Vida Pequena- Todas Vocações) sero vex curo (Vida Média - Warriors e Rogues) sero crucio curo (Vida Grande - Warriors apenas) Mana sero vegrandis (Mana Pequena - Todas Vocações) sero vex vegrandis (Mana Média - Rogues e Wizards) sero crucio vegrandis (Mana Forte - Wizards apenas) Soul sero anima (Soul Pequena - Todas Vocações) sero vex anima (Soul Média - Vocações Promovidas) sero crucio anima (Soul Forte - Vocações Especializadas) As ervas disponíveis são: Calycanthe: usada para poções de vida (vermelha) Echinacea: usada para poções de mana (roxa) Flavescens: usada como material neutro para poções (amarela) • Herbalism: Herbalismo é a arte de coletar ervas que estão espalhadas por Arda. Um personagem pode facilmente iniciar a coletar ervas obtendo uma faca de herbalismo com um NPC. As ervas obtidas através do herbalismo são geralmente utilizadas na alquimia. O Herbalismo é estático e não evolui níveis. As ervas disponíveis são : Calycanthe: usada para poções de vida (vermelha) Echinacea: usada para poções de mana (roxa) Flavescens: usada como material neutro para poções (amarela) • Crafting: Crafting é a arte de criação de itens pelo uso de suas habilidades com uma ferramenta de crafting sobre uma mesa de crafting. Seu nível de crafting irá aumentar um pouco a cada item criado e também quando falhar, mas com um valor muito menor. Um jogador com um nível maior irá criar itens facilmente enquanto jogadores de menor nível perderão muito mais itens em suas tentativas de criação. O material de crafting e seus minerais podem ser obtidos através de NPCs e do uso da mineração. Eles são: steel(ferro), wood(madeira) and cloth(tecido). A ferramenta necessária pode ser comprada de NPCs, tenha cuidado já que ela poderá quebrar facilmente. Para checar seu nível de crafting você deve dizer !crafting • Mining: Mineração é a arte de explorar cristais que estão espalhados por Arda em busca de minerais valiosos. Um jogador pode facilmente iniciar a minerar pela obtenção de uma ferramenta de mineração com um NPC. Os minerais obtidos através da mineração são geralmente utilizados na criação de itens. Estes podem ser identificados por: cristais vermelhos(red), azuis(blue) e verdes(green). A mineração é estática e não evolui níveis. Espero que gostem! Deixe seu comentário! Sua opinião é muito importante para nossa equipe ENJOY!
    1 ponto
  6. vital900

    Guia de Mapping

    Guia de Mapping 1. Criando Novas Abas em Raw Pallete: 2. Editando Os Nome Dos Itens No Remere's: 3. Tirando os Monstros do Seu Remeres: 4. Postando Fotos: 5. Importando Mapas: 6. Spawn Size:
    1 ponto
  7. wesleybeek

    [ModernACC] Narutibia Atualizado

    Iae Galerinha do Xtibia, Blz ? Venho Aqui Dísponibilizar o Layout mais suas Configuraçoes e Muito mais, aqui no Xtibia ja que @Vinnevinne pediu neste Tópico Entao Pensei em Postar para Que todos possam ter Pósse deste belo Sistema de WebSite para Melhorar seus Servers. Infelismente eu nao vou poder Ensina - los a como Ligar Site (Mas procure no Fórum) que voce ira encontrar Varios tutoriais de Bons Scripters. Então vamos ao assunto (Final do Post - Downloads) ScreenShoots Superior - Central - Inferior - Ei Tio, Gosto de REP+ Downloads Hatdocs 1.0 (Com Layout, Config. Lua, nto.sql "database", Vocação até Kakashi) Ps: Não Adicionei Scan por que eu ainda não sei mas o Conteúdo não Contém Virus. Créditos WesleyBeek
    1 ponto
  8. meubk

    Evil Spirit v2.0

    - versão sem bugs e você pode configurar do teu jeito local configSpell = { exaust = 40, -- tempo de exaustão st = 19020, -- não mexe level = 150, -- level para usar min = 1000, -- ataque minimo max = 2000, -- ataque maximo voc = {1, 5}, -- vocações mana = 800, -- mana } -- SPELL EVIL SPIRIT BY: XOTSERVX -- function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function getPosDirs(p, dir) return dir == 1 and {x=p.x-1, y=p.y, z=p.z} or dir == 2 and {x=p.x-1, y=p.y+1, z=p.z} or dir == 3 and {x=p.x, y=p.y+1, z=p.z} or dir == 4 and {x=p.x+1, y=p.y+1, z=p.z} or dir == 5 and {x=p.x+1, y=p.y, z=p.z} or dir == 6 and {x=p.x+1, y=p.y-1, z=p.z} or dir == 7 and {x=p.x, y=p.y-1, z=p.z} or dir == 8 and {x=p.x-1, y=p.y-1, z=p.z} end function posIgual(pos1, pos2) return pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z and true or false end effect = 34 distance = 31 damage = COMBAT_DEATHDAMAGE evilspirit = { walk = function (cid, min, max, pos, rounds, ultimapos) if rounds == 0 then return true end if not isCreature(cid) then return true end posdisp = {} for _, dir in pairs({1, 5, 7, 3}) do if isWalkable(getPosDirs(pos, dir)) and not posIgual(getPosDirs(pos, dir), getThingPos(cid)) and not posIgual(getPosDirs(pos, dir), ultimapos) then table.insert(posdisp, getPosDirs(pos, dir)) end end if #posdisp < 1 then return true end posesc = posdisp[math.random(1, #posdisp)] ultimapos = pos doSendDistanceShoot(pos, posesc, distance) if min > 0 then min = -min max = -max end doAreaCombatHealth(cid, damage, posesc, 0, min, max, effect) addEvent(evilspirit.walk, 140, cid, min, max, posesc, rounds - 1, ultimapos) end } function onSay(cid, word) if getPlayerAccess(cid) < 3 then if getPlayerLevel(cid) < configSpell.level then return doPlayerSendCancel(cid, "You need level " .. configSpell.level .. " to use this spell.") end if not isInArray(configSpell.voc, getPlayerVocation(cid)) then return doPlayerSendCancel(cid, "Your vocation dont use this spell.") end if exhaustion.check(cid, configSpell.st) then return doPlayerSendCancel(cid, "You is exhausted.") end if getCreatureMana(cid) < configSpell.mana then return doPlayerSendCancel(cid, "You dont have mana.") end doCreatureAddMana(cid, -configSpell.mana) exhaustion.set(cid, configSpell.st, configSpell.exaust) end evilspirit.walk(cid, configSpell.min, configSpell.max, getThingPos(cid), 40, {x=1, y=1, z=1}) for i = 1, 13 do addEvent(evilspirit.walk, i * math.random(300, 500), cid, configSpell.min, configSpell.max, getThingPos(cid), 40, {x=1, y=1, z=1}) end return true end talkaction: <talkaction words="evil spirit" filter="word-spaced" event="script" value="evilspirit.lua"/>
    1 ponto
  9. Mophus

    Dono da backpack

    Olá galera, passeando por um fórum, achei esse talkaction, bem interessante. Traduzindo este talk.. Comando: !ownbp Primeiro vá em data/talkactions/talkactions.xml <talkaction words="!ownbp" script="ownbp.lua"/> Agora vá até o data/talkactions/scripts/ownbp.lua function onSay(cid, words, param) [b] --//CONFIG//-- local cost = 1000 -- cost( GP) local ownTime = (60*60*24) -- seconds (default 24h) --//CONFIG//--[/b] local playerID = getPlayerGUID(cid) local owner = (playerID + 100) local ownerName = getPlayerName(cid) local function noOwner(o) doSetItemSpecialDescription(o.backpack, '') doSetItemActionId(o.backpack, 0) end if(doPlayerRemoveMoney(cid, cost) == TRUE)then local backpack = doPlayerAddItem(cid, 2000, 1) doSetItemSpecialDescription(backpack, ownerName..' owns this container.') doSetItemActionId(backpack, owner) addEvent(noOwner, 1000*ownTime, {'backpack'=backpack}) end end Agora em data/actions/actions.xml <action itemid="2000" script="ownbp.lua"/> E em data/actions/scripts/ownbp.lua function onUse(cid, item, fromPosition, itemEx, toPosition) local playerID = getPlayerGUID(cid) local owner = item.actionid-100 if(owner > 0)then if(owner ~= playerID)then doPlayerSendCancel(cid, 'You aren\'t owner of this container.') return TRUE end end end FIM. E está pronto, quaisquer erros, entre em contato através deste TÓPICO nos comentários. Atenciosamente, m0p. Créditos: Azi
    1 ponto
  10. Introdução: Olá, sou RickSoares que antigamente logava com a conta do meu amigo Xmaster0, Estou tentando criar um novo server do "0" totalmente original e também organizado, esse servidor seria de "Mutante Rex" um anime que acho muito legal, e usei ele pro projeto porque não estou vendo mais servidores inovadores aqui no Xtibia, então decidi inovar um pouco. Historia: Rex Online surgiu desde que vi que não tinha servidores diferentes só de animes tipo Pokémon, Dragon ball, Naruto, etc... a equipe agora é só eu pois ate agora ainda não tinha pensado em chamar ninguém mais ainda com a expectativa de conseguir criar um servidor inovador e também funcional no sentido de ter melhor jogabilidade. Sistemas: Eu não postei muitos sistemas pois só postarei quando o servidor estiver mais bem concreto e organizado. : Terá sistema de vocations assim podendo escolher alguns personagens do anime para iniciar o jogo. : Terá sistema de transformação assim podendo mudar os outifits e força dos personagens : Para o personagem Rex terá a transformação heróis unidos assim podendo juntar foças com os aliens do ben 10 personagem também ativo no server. : Terá Quest para poder pegar cada transformação dos personagens, a transformação Heróis Unidos será a mais difícil e assim o personagem que ganhar ela terá um melhor aumento nas suas forças. : O personagem Ben 10 poderá se transformar também e a transformação heróis Unidos terá efeito em só 10 aliens dele. : Monstros de acordo com os evos do anime. : Vilões também estarão no servidor em lugares diferentes do mapa e em algumas Quests. Só isso, depois estarei postado novos sistemas para vocês. Formação de Equipe: (Cargos e Vagas) Mapper - [2 VAGAS] Programador - (.LUA ou C++) [2 VAGA] Designer - [1 VAGA] Spriter - [1 VAGA] O que eu mais preciso mais é spriter por não existirem sprites do anime para Tibia. Se você atua em outra área que não está aqui, e acha que será útil, informe no seu currículo o cargo que você deseja. --------------------------------------------------------- Currículo : Name/Nick: Idade: Cargo(s): Tempo que atua nesse(s) cargo(s): Facebook : Skype: Porque deseja participar da equipe: Requisitos: Experiência. Disponibilidade. Comprometimento. Seriedade. Dedicação.
    1 ponto
  11. Omega

    Alugar Roupas

    Gostei da ideia, mas olha só: if doPlayerRemoveMoney(cid, outfits[msg].price) then Isso não deveria estar como último if, não? Caso contrária, o cara perde a grana mesmo se alguma coisa der errado.
    1 ponto
  12. zipter98

    [Encerrado] (Duvida) Boost

    /\ Isso que você mudou, é o custo base de stones. O que o brunnoo quer, é que a boost stone dê 10 boosts. Só editar a variável boost_id (tá indicado no script, é logo no comecinho). Testado, funcionando.
    1 ponto
  13. Faelzdanil

    [Extensões] - Lava / Grounds

    Olá a todos do Xtibia. Bom eu fico online diariamente no Xtibia e não venho postar nenhum trabalho nem nada, apenas ajudo as vezes alguns membros ! Então eu resolvi fazer esse meu primeiro tópico. Eu venho postar pra vocês uns grounds que foram adicionados no Tibia no update de 9.6 e acho que pra pokemon eles se encaixariam muito bem. Entao nessa Extensão contem a Lava e uns grounds pra adicionar no server de vocês. Vamos as imagens: Essa primeira é de Lava: Como podem ver é muito útil pra poder detalhar melhor a sua hunt de fogo. Nas montanhas tem a lava que da um efeito como se estiver escorrendo. Ai é a criatividade de vocês como iram fazer. E temos também a Cachoeira de lava que é bem útil também. Então esses aqui são os Grounds. O primeiro ground, acho que se encaixaria muito bem em hunts de fogo. Eu fiz um mapa aqui que ficou muito maneiro, com esse ground deu um detalhe maior. O segundo podem se usar em Cidades, Hunts, Casa de NPCs. Bom depende também da criatividade de vocês Esse Grass é como se fosse o Gravel, deixa um detalhe muito bom em hunts de planta e dependendo de como você utilizar em cidades também. É isso ai galera esse é o meu primeiro post sobre isso, em breve irei postar Hunts pra vocês. Se quiserem fazer pedidos de Hunts/Cidades, estarei aceitando. Se quiserem algum item, ground... Algo do Tibia que queria digam que eu extraio e monto, então estarei postando de imediato a vocês. Link 1 ( SpeedyShare ) Link 2 (MediaFire) Link 3 ( 4Shared ) Scan OBS: Já estão em formato .IDC ( Pro Dat editor ) Valeu povo lindo ! Gostou ? Custa nada da um REP++
    1 ponto
  14. Valeu por avisar, vamos tentar resolver criando uma versão pra directx. Logo edito aqui com novidades.
    1 ponto
  15. zipter98

    Consetar essa script

    Tenta trocar isso if getPlayerStorageValue(cid, 10005) > os.time() then doPlayerSendCancel(cid, "Você tem que esperar "..getPlayerStorageValue(cid, 10005) - os.time().." segundos para usar a magia novamente.") return false end Por: if getPlayerStorageValue(cid, 10005) > os.time() then return doPlayerSendCancel(cid, "Você tem que esperar "..getPlayerStorageValue(cid, 10005) - os.time().." segundos para usar a magia novamente.") end Suponho que seja porque está retornando falso esse seu sendcancel. (eu acho ._.)
    1 ponto
  16. sempre que seu topico for resolvido ano esqueça de reportar para que o mesmo seja movido a area de pedidos e duvidas atendidos facilitando a busca de todos, sempre que tiver uma duvida procure antes na seção citada acima ou use a barra de busca rapida, pois muitas duvidas são repetidas diariamente e isso desgasta o trabalho dos colaboradores da seção! caso tenha duvida dependendo da linguagem que esta no seu layout xtibia basta procurar e portugues o botão denunciar ou em ingles o botão report para efetuar o o fechamento do mesmo! Seja um bom membro colabore com a organização do forum e tenha facilidade de busca e os melhores conteudos a disposição! Grato: Piabeta!
    1 ponto
  17. Tony

    [PARTICIPE] A Melhor Assinatura #93

    Não entendi nada desse tema, acho que os temas deveriam ser mais claros e mais objetivos, mais esta ai minha sei lá oque.
    1 ponto
  18. kttallan

    Esposiçao do meu trabalho

    Parabens manow impresionante suas sprites;
    1 ponto
  19. Gabrieltxu

    [Pokemon] PoKeMon Steel

    Ninguem pedio REP++, preste mais atenção quando for fazer uma denuncia meu caro
    1 ponto
  20. Tem sim. o problema é esse eu não sei "recopilar" , apenas baixei o the forgotten server para windows, e joguei na pasta podia fazer isso para min ? obrigado outra REP+ Okay, irei recopilar e te envio por MP.
    1 ponto
  21. é o local onde vc coloco no index
    1 ponto
  22. local eff = 34 -- ID do efeito local position = {x=getCreaturePosition(cid).x+2, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} doSendMagicEffect(position, eff) Tai
    1 ponto
  23. Name/Nick: Douglas Soares / Lordbaxx Idade: 17 anos Cargo(s): Mapper Tempo que atua nesse(s) cargo(s): 3 anos Facebook (Envie para mim se achar necessário, junto com o currículo): Skype: Lordbaxx Porque deseja participar da equipe: Pretendo ajudar o servidor á crescer e fica famoso no dia a dia Trabalhos (Opcional): - - - -
    1 ponto
  24. Sobre esse NPC de task diária, foi algo que eu já tentei criar, mas faz um tempo já. E, como você deve imaginar, não funcionou e.e Sobre onde colocar essa proteção que passei, é abaixo do doPlayerSendCancel(cid, "Your ditto is not transformed.") markPos(mysum, unfix) return true end
    1 ponto
  25. Foi mal, tinha esquecido de colocar uma coisa e.e Testado, funcionando perfeitamente! if string.find(getCreatureName(item2.uid), "Shiny") or string.find(getCreatureName(item2.uid), "shiny") then doPlayerSendCancel(cid, "Seu Ditto não pode se transformar em pokémons shinies.") markPos(mysum, unfix) return true end
    1 ponto
  26. Skymagnum

    Dono da backpack

    Tá certo sim Draky.
    1 ponto
  27. gabriloko123456

    NTO DF Onlinne [hamachi]

    Olá vim divulgar meu ot ! - Informações Exp: 500 Varias Spell Novas poucos perso mais spell eo serve são inovadores nosso websit tem as redes hamachis websit. http://naruto-focer.webnode.com/
    1 ponto
  28. tibiaa4e

    Pasta Data - Spells

    Pasta Enciclopedia com todos os links de outros tutoriais ! http://www.xtibia.com/forum/Pasta-Data-Enc...r-E-t99746.html Parte IV– Spells Olá depois de um tempinho (5 meses) sem tutoriais , que por varios fatores não consegui terminar no meu primeiro prazo... Essa aqui eu acredito ser um dos mais essenciais, pois algumas pessoas não compreendem bem isso, e sempre era uma dúvida constante no msn que eu não consegui sanar , por falta de material... Começaremos pelo spells.xml <spells> <!-- Attack Runes --> <rune name="Poison Field" id="2285" allowfaruse="1" charges="3" lvl="14" maglv="0" exhaustion="2000" blocktype="solid" script="attack/poison field.lua"/> <!-- Attack Spells --> <instant name="Death Strike" words="exori mort" lvl="16" mana="20" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" script="attack/death strike.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> <!-- Summon Spells --> <instant name="Summon Creature" words="utevo res" lvl="25" params="1" exhaustion="2000" needlearn="0" function="summonMonster"> <vocation name="Sorcerer"/> <vocation name="Druid"/> <vocation name="Master Sorcerer"/> <vocation name="Elder Druid"/> </instant> <!--Conjure Runes --> <conjure name="Conjure Arrow" words="exevo con" lvl="13" mana="100" soul="1" conjureId="2544" conjureCount="10" exhaustion="1000" needlearn="0" function="conjureItem"> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </conjure> <conjure name="Enchant Spear" words="exeta con" lvl="45" mana="350" soul="3" prem="1" conjureId="7367" reagentId="2389" exhaustion="1000" needlearn="0" function="conjureItem"> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </conjure> <conjure name="Energybomb" words="adevo mas vis" lvl="37" mana="880" soul="5" prem="1" reagentId="2260" conjureId="2262" conjureCount="2" exhaustion="1000" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </conjure> </spells> Ai está a base de cada spell para esse arquivo. As runas são divididas em duas partes, o script da runa e de transformação da pedra em runa. Começaremos pela runa : <rune name="Poison Field" id="2285" allowfaruse="1" charges="3" lvl="14" maglv="0" exhaustion="2000" blocktype="solid" script="attack/poison field.lua"/> Essa linha acima indica o que a runa fará ao ser usada em algo, sendo os parametros : name: Isso indica o nome da runa. Esse nome é o que aparece na runa ao se dar use nela. id: Isso indica o id da runa. allowfaruse : Se a runa pode ser usada em objetos a distancia. charges: A quantidade de cargas iniciais dela lvl: Nivel minimo para ela ser usada. maglv: Nivel magico minimo para usar ela exhaustion: Tempo de exaustão para poder usar a proxima runa. blocktype: Tipo do item que será jogado. script: Arquivo que terá o script. A criação da pedra é mais simples : <conjure name="Energybomb" words="adevo mas vis" lvl="37" mana="880" soul="5" prem="1" reagentId="2260" conjureId="2262" conjureCount="2" exhaustion="1000" needlearn="0" function="conjureRune"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </conjure> name: O nome dela, para ser sincero não se prescisa ser o mesmo do arquivo acima. words: A palavra (macumba) que você diz para fazer a transformação. lvl: Nivel para poder cria-la. mana: mana usada para conjura-la. c reagentId: Id da runa base, no caso 2260 é a blank rune. conjureId: Id da runa "magica". conjureCOunt: Quantidade de cargas da runa. exausthion: O tempo de exaustão que ela dará em milessegundos (1000 = 1 segundo) (nem sei se tem isso hj em dia ainda). needlearn: Se o player prescisará aprender ela, no caso comprar de um npc. function: No caso deixe assim, essa função que transforma agua em vinho . Lembrando que pode se usar esse tipo para transformar outros itens, como enchatted staff e depois para fazer volta-lo ao normal é só fazer ele decair. Para faze-lo mude a function para conjureItem Bem a parte de script LUA , explicarei mais abaixo, vamos continuar com as tags, porque o script LUA é mais facil Magias Espontaneas <instant name="Death Strike" words="exori mort" lvl="16" mana="20" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" script="attack/death strike.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> name: Nome dela. words: A palavra (macumba) que você diz para fazer o trabalho. lvl: Nivel para poder solta-la. mana: mana usada para solta-la. prem: Se o conjurador prescisará ser premmium ou não. range: Quantos sqm ela poderia ir de distancia. Se ativado elá irá acertar o alvo que está em ataque. blockwalls: Se ativado ela não passará por obstaculos. exhaustion: tempo de exaustão em milessgundos. selftarget: Se irá atingir ele mesmo, no caso magias de cura. needtarget: Se ativado, prescisará o player está atacando alguem. direction: Se ativado, a magia sempre sairá pela frente do player. casterTargetOrDirection: Se ativado, a magia irá em quem o player está atacando senão elas sairá pela frente do player agressive: Se elá tirará danos ou não. needlearn: Se ele prescisará aprender ou não. event: O evento delá, vocês só usarão script (ao não ser que sejam muito criativos). script: Local do arquivo de configuração. vocation name : Nome da vocação que poderá usar a magia (coloque suas promoções tbm) Ai explicamos como fazer a tag dessas magias, existem outras funções que para ser sincero são inuteis, ou necessarias apenas para 1 magia Scripts LUA Se você é uma pessoa normal, sem problemas mentais ou hiperatividade concerteza o que tiver aqui vai suprir suas necessidades, mas se você for igual eu, vai querer aprender mais. Eu costumo dizer que spells você tem ter um calculadora e paciencia para achar aquela forma e efeito. O resto é só copiar uma ja existente. O pessoal do TFS, adora fazer uns atalhos, variaveis e coisas para facilitarem a vida deles (e complicar a nossa). Se você olhar o arquivo lib da pasta spells/lib verá que tem varias formas lá... Para ser mais exato todas que eles usam nas spells do ot. Portanto memorize todas (ou como uma pessoa normal, verifique quando for fazer elas). Depois de muito bla bla bla, vamos ao que interessa. Vamos começar com nossa maravilhosa death strike local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.5, 0, -0.6, 0) local distanceCombat = createCombatObject() setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) setCombatFormula(distanceCombat, COMBAT_FORMULA_LEVELMAGIC, -0.5, 0, -0.6, 0) function onCastSpell(cid, var) if(variantToNumber(var) ~= 0) then return doCombat(cid, distanceCombat, var) end return doCombat(cid, combat, var) end Eu sinceramente não entendo 100% das funções vou explicar as necessarias. Nesse momento abra seu global.lua e se não tiver vá em lib/constants.lua e sempre verifique quando tiver a palavra arquivo abaixo : setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) : O tipo dela, se é dano fisico, fogo ou sei lá o que. São eles : COMBAT_NONE = 0 COMBAT_PHYSICALDAMAGE = 1 COMBAT_ENERGYDAMAGE = 2 COMBAT_EARTHDAMAGE = 4 COMBAT_POISONDAMAGE = 4 COMBAT_FIREDAMAGE = 8 COMBAT_UNDEFINEDDAMAGE = 16 COMBAT_LIFEDRAIN = 32 COMBAT_MANADRAIN = 64 COMBAT_HEALING = 128 COMBAT_DROWNDAMAGE = 256 COMBAT_ICEDAMAGE = 512 COMBAT_HOLYDAMAGE = 1024 COMBAT_DEATHDAMAGE = 2048 setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) : O tipo de efeito que sairão delá, pelo amor de deus olhem no arquivo porque tem 68. (Procurem CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) : Esse é o efeito que faz ao ser disparada, ela. Ou seja, o efeito do trajeto dela. Proure no arquivo tem 37. setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.5, 0, -0.6, 0) : Esse é a grande sacada. Calculo certo !? + - A sintaxe disto é : COMBAT_FORMULA_LEVELMAGIC, -minA,Min , MaxB, mAx Sendo : MinA : Minimo calculado, ou seja valor minimo que sera calculado. Min : Minimo que a magia tirará ou dará. MaxB : Maximo de dano ao ser calculado. Max : Dano maximo fixo que dará a magia. O calculo é assim: (lvl * 2 + ml *3) * MinA ou MaxB´ Ai da um valor magico que será seu dano, oscilando entre o Min e o Max. Porém desde o tibia 7.8 o tibia mudou sua formula, e eu fazendo uns calculos criei uma nova com a função do Pedro B. function getCombatFormulas(cid, lv, maglv) local formula_min = -((lv*0.25 + maglv*3) * 0.52) local formula_max = -((lv*0.25 + maglv*3) * 0.68) if(formula_max < formula_min) then local tmp = formula_max formula_max = formula_min formula_min = tmp end return formula_min, formula_max end Agora você pensa que filho de uma mãe é o Ta4e, ferrou meu cerebro... Use a que bem entender... Em tese a death strike ta feita. Se você é observador percebeu que ela tem 2 funções porém são iguais. Isso porque para o servidor ela sendo jogada no inimigo ou ela sendo falada em frente são diferentes... (Sim da para fazer ela tirar + dano de perto). Bem para quem gostou do meu metodo, a diferença fica apenas no calculo de dano. --Calculed by ta4e-- --For tibia 8.31-- --Made in 07/11/08-- local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) function getCombatFormulas(cid, lv, maglv) local formula_min = -((lv*0.25 + maglv*3) * 0.52) local formula_max = -((lv*0.25 + maglv*3) * 0.68) if(formula_max < formula_min) then local tmp = formula_max formula_max = formula_min formula_min = tmp end return formula_min, formula_max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas") local distanceCombat = createCombatObject() setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) function getCombatFormulas(cid, lv, maglv) local formula_min = -((lv*0.25 + maglv*3) * 0.52) local formula_max = -((lv*0.25 + maglv*3) * 0.68) if(formula_max < formula_min) then local tmp = formula_max formula_max = formula_min formula_min = tmp end return formula_min, formula_max end setCombatCallback(distanceCombat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas") function onCastSpell(cid, var) if(variantToNumber(var) ~= 0) then return doCombat(cid, distanceCombat, var) end return doCombat(cid, combat, var) end Em formula_min seria o MinA e o formula Max o maxB O resto é igual... setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas") Ao invés de indicarmos os valores, falamos que o resultado estará na função getCombatFormulas. Bem essa é a magia em tese + simples, vou mostrar uma magia de healing local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function getCombatFormulas(cid, lv, maglv) local formula_min = ((lv*0.25 + maglv*3) * 0.7) local formula_max = ((lv*0.25 + maglv*3) * 0.92) if(formula_max < formula_min) then local tmp = formula_max formula_max = formula_min formula_min = tmp end return formula_min, formula_max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas") function onCastSpell(cid, var) return doCombat(cid, combat, var) end Perceba que na formula ela não tem o sinal de - antes do calculo, pois ela heala e não ferra o player. Dois novos parametros apareceram setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE) : Sendo false, a magia não é de ataque portanto pode ser usada em protection zones (e não tirará dano). setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) Nesse caso ela cura a condição paralyze, se você olhar no arquivo verá as condition que as magias poderão retirar (até umas versoes atrás, não era possivel remover + de 1 condição por magia. Agora uma spell que cria algo, que tal poison field ? local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_GREEN_RINGS) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_POISON) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1496) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Simples não ? setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1496) Id do item a ser criado no local de saida. Até agora só vimos magia que atigem 1 local certo, vamos evoluir e ver a com areas. Magias com aréas A mesma poison field pode ser mudada para poison bomb facilmente : local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_GREEN_RINGS) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_POISON) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1496) local area = createCombatArea(AREA_SQUARE1X1) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Apenas adicionado a linha do createcombatArea ja faz ela criar em varios locais. Lembra do lib ? Abra ele e veja o fomrato do AREA_SQUARE1X1, AREA_SQUARE1X1 = { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } 0 - Nada 1 - Area que criará 3 - Local "base" Lembra da magia de healing ? vejamos uma mass healing --Calculed by ta4e-- --For tibia 8.22-- --Made in 12/09/08-- local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function getCombatFormulas(cid, lv, maglv) local formula_min = ((lv*0.25 + maglv*3) * 3.7) local formula_max = ((lv*0.25 + maglv*3) * 4.1) if(formula_max < formula_min) then local tmp = formula_max formula_max = formula_min formula_min = tmp end return formula_min, formula_max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas") local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) Mesma coisa... Só se adiciona isso. Que tal uma magia do tipo beam --Calculed by ta4e-- --For tibia 8.31-- --Made in 07/11/08-- local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) function getCombatFormulas(cid, lv, maglv) local formula_min = -((lv*0.25 + maglv*3) * 0.5) local formula_max = -((lv*0.25 + maglv*3) * 0.8) if(formula_max < formula_min) then local tmp = formula_max formula_max = formula_min formula_min = tmp end return formula_min, formula_max end local area = createCombatArea(AREA_BEAM5, AREADIAGONAL_BEAM5) setCombatArea(combat, area) setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas") function onCastSpell(cid, var) return doCombat(cid, combat, var) end Se você comparar ela com uma ULTIMATE EXPLOSION VERÁ que só muda o efeitos. Mais aonde faz ela em frente ao player e a outra não ? No spells.xml, veja por que aprendemos ele primeiro... Em tese vocês com um pouco de pratica já serão grande spells makers. Para quem tem mais dificuldade (Quem acha que eu sou bom..., se você soubessem o que eu demoro para aprender) As magias de runas, são iguais a essas na criação, o que muda é no spells.xml, 80% dos erros de spells acontecem lá. Magia com danos fisicos Eu dou a cara limpa, para dizer que não abro um otserver a 4 meses, devido ao meu pc reiniciar devido ao uso de muita memoria . Então até a ultima vez a função padrão do TFS estava falha em relação aos danos. Ai novamente o Pedro B. fez uma... --Calculed by ta4e-- --For tibia 8.31-- --Made in 07/11/08-- local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) local area = createCombatArea(AREA_SQUARE1X1) setCombatArea(combat, area) function getSpellDamage(cid, weaponSkill, weaponAttack) damage_min = (weaponSkill * weaponAttack / 30) * 2.5 damage_max = (weaponSkill * weaponAttack / 30) * 3.7 if(damage_max < damage_min) then local tmp = damage_max damage_max = damage_min damage_min = tmp end return -damage_min, -damage_max end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage") function onCastSpell(cid, var) return doCombat(cid, combat, var) end Em tese ela é a mesma coisa que a do ot. Se preferirem testem ela, e vejam... Essa parte da formula é igual a outra, ela calcular o skill e o ataque da arma. Igual no tibia global. Portanto se o individuo ta sem arma, ela nem funciona... A base dela é a mesma só muda a função : setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage") Bem eu acho que fico por aqui, esse tutorial não é grande coisa, mas espero que ajude muita gente com duvidas simples, e se quiser evoluir, estude as spells que vocês conhecerão mais (As de party são legais, apesar de terem coisas para mim desnecessarias. Deem sugestões, dúvidas, criticas e o que desejaram. Falem mal, mas falem de mim!!!
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...