Jump to content
Close

Search the Community

Showing results for tags 'Spell'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Community
    • Rules
    • Portal
    • Resources
    • Commerce
    • Clubs
  • OTServers
    • Discussion
    • Support
    • Tutorial
    • Download
    • Code Development
    • Contests and Events
    • Form Team
    • Advertise your Server
  • Tibia and Bots
    • Discussion
  • Others
    • Playground (Off-topic)
    • Other Games
    • Advertising
    • Graphics and Design
    • Development and Programming
  • League of Legends's Geral
  • League of Legends's Suporte
  • Nto New Season's Tópicos
  • Fakes's Fakes
  • Tibia's Geral
  • Tibia's Notícias
  • Tibia's Media
  • Tibia's Life Thread
  • Computação's Geral
  • Computação's Dicas e Tutoriais
  • Computação's Suporte
  • Roleplaying's Roleplaying
  • Academia de Mapping's Quadro da Clopin
  • Academia de Mapping's Dev Area
  • Academia de Mapping's Quadro do Nolis
  • Academia de Mapping's Quadro do Namikaze
  • Styller's Tópicos

Calendars

  • Official Calendar
  • OTServs Calendar
  • Several Calendars

Product Groups

  • Advertisements in Top
  • Advertisements In Signatures
  • Advertisements in Topics
  • Others Advertisements

Categories

  • Sales Section
    • Scripting Sales
    • Codes Sales
    • Mapping Sales
    • Websites Sales
    • Design/Sprites Sales
    • Bots Sales
  • Look Jobs
  • Looking for Freelancers
  • Team Formation

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Localization


My character


Favorite OTServ


Bot preferred


Interests

Found 172 results

  1. Algumas pessoas vieram me pedir esse código, então hoje eu tirei um tempinho pra trazer pra vocês. O que faz Este código faz com que seja possivel ver através do look, quem jogou uma Magic Wall ou um Fire Bomb, isso é útil quando aquele amigo noob taca uma Magic Wall onde não deveria e diz que não foi ele, com esse código não tem como se esconder. Como implementar Este código foi testado apenas em TFS 0.x e OTX2, mas acredito que pode facilmente ser adaptado para TFS 1.x. Originalmente eu fiz este código para ser usado com a Magic Wall, mas ele pode ser implementado em qualquer spell que utilize COMBAT_PARAM_CREATEITEM. Script original da Magic Wall local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Basta substituir o return doCombat pelo código abaixo. ret = doCombat(cid, combat, var) if ret then local mWall = getTileItemById(variantToPosition(var), 1497).uid doItemSetAttribute(mWall, "description", string.format("It was cast by: %s.", getCreatureName(cid))) end return ret O código completo deve ficar parecido com este. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) function onCastSpell(cid, var) ret = doCombat(cid, combat, var) if ret then local mWall = getTileItemById(variantToPosition(var), 1497).uid doItemSetAttribute(mWall, "description", string.format("It was shot by: %s.", getCreatureName(cid))) end return ret end Note que 1497 é o ID da Magic Wall, para items como Fire Field e outros, o ID deve ser substituído. Créditos
  2. Salve galera bom recentemente tentei usar a spell ghost que tem disponível aqui no fórum porém estava tomando debug então descobri a solução e vou compartilhar com vocês. Função da spell dar ghost de ADM para jogadores por um tempo Tópico da spell Vai ser necessário alteração na source Procure por player.cpp Dentro da biblioteca pesquise por isso void Player::sendCreatureChangeVisible(const Creature* creature, Visible_t visible) { if(!client) return; const Player* player = creature->getPlayer(); if(player == this || (player && (visible < VISIBLE_GHOST_APPEAR || getGhostAccess() >= player->getGhostAccess())) || (!player && canSeeInvisibility())) sendCreatureChangeOutfit(creature, creature->getCurrentOutfit()); else if(visible == VISIBLE_DISAPPEAR || visible == VISIBLE_GHOST_DISAPPEAR) sendCreatureDisappear(creature, creature->getTile()->getClientIndexOfThing(this, creature)); else sendCreatureAppear(creature); } Vocês vão trocar essa parte getGhostAccess() >= player->getGhostAccess())) Por isso (getAccess() > 2 && getGhostAccess() >= player->getGhostAccess()))) Depois vão procurar por isso bool Player::canSeeCreature(const Creature* creature) const { if(creature == this) return true; if(const Player* player = creature->getPlayer()) return !player->isGhost() || getGhostAccess() >= player->getGhostAccess(); return !creature->isInvisible() || canSeeInvisibility(); } Edite essa linha getGhostAccess() >= player->getGhostAccess(); Por essa (getAccess() > 2 && getGhostAccess() >= player->getGhostAccess()); Agora basta compilar a source. Porém precisamos configurar a flag de tutor para não haver problemas quando o player recebe-la eu utilizo dessa forma <group id="2" name="Tutor" flags="2621696" access="1"/> Mas pode ser alterada para forma que quiserem usando o site My-Acc.Org obs: deixe sempre em acess="1" Pronto basta compilar e usar a spell de ghost Créditos @TheKronOs @abugaduniga heba(otland)
  3. Descrição Estilo utito tempo, adiciona 10x mais magic levels durante 30 segundos. Para alterar, modifique essa parte: setConditionParam(condition2, CONDITION_PARAM_TICKS, 30000) setConditionParam(condition2, CONDITION_PARAM_STAT_MAGICLEVEL, 10) Modifique as vocações na tag também. Script data/spells/scripts/utitomana.lua local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition2 = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition2, CONDITION_PARAM_TICKS, 30000) setConditionParam(condition2, CONDITION_PARAM_STAT_MAGICLEVEL, 10) setCombatCondition(combat, condition2) function onCastSpell(cid, var) local ret = LUA_ERROR if(doCombat(cid, combat, var) == LUA_NO_ERROR) then ret = LUA_NO_ERROR end return ret end data/spells/spells.xml <instant name="Utito Mana" words="utito tempo mana" lvl="60" mana="450" prem="1" aggressive="0" selftarget="1" exhaustion="1000" needlearn="0" event="script" value="utitomana.lua"> <vocation id="3"/> <vocation id="7"/> </instant> Créditos: Acubens
  4. presiso de uma spell que executa o target q estiver com 20% do life total dele. ela so funcionaria em player e teria um tempo de 60 segundos para usa-la novamente
  5. eu queria saber se tem como eu usar um jutsu no meu narutibia e saisse um efeito no meu personagem e outro no target, se alguem souber me ajuda.
  6. Conforme tive uma dúvida outro dia, consegui obter uma solução satisfatória e, sabendo que pode ser a dúvida de mais gente, resolvi compartilhar na forma deste pequeno tutorial. A ideia é muito simples: fazer com que uma spell de área atinga apenas alguns alvos conforme uma característica específica. Isso pode ser bastante útil para diversas ideias, além do script base servir para tantos outros efeitos interessantes. Atenção, fiz os scripts para: TFS 0.4.0 Teremos como base para esse exemplo a magia "divine caldera", o famoso "exevo mas san". Nela teremos o seguinte script: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 4, 6) local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Desta forma, a magia atingirá todos os alvos em sua área de alcance. Mas queremos mudar isso, queremos que ela atinja alvos específicos, e aqui entram algumas ideias, por exemplo: podemos fazer com que ela acerte apenas players de um determinado level, players de uma determinada vocação, players com um determinado access, ou mesmo uma storage, ou ainda, como no exemplo que darei a seguir, fazer com que a magia acerte apenas alvos com um determinado nome (no caso, serão criaturas e não players). Para isso, utilizaremos uma função, "onTargetCreature(cid, target)" e depois a chamaremos como parâmetro de um "setCombatCallback(combat, key, function_name)". Na função onTargetCreature nós faremos a verificação desejada. Por exemplo, no código a seguir eu quero que a minha spell atinja apenas criaturas com o nome de "rat" ou "cave rat", então ficaria assim: function onTargetCreature(cid, target) local creatures = {"rat", "cave rat"} if isMonster(target) and isInArray(creatures, getCreatureName(target)) then doTargetCombatHealth(cid, target, type, min, max, effect) end end Traduzindo: eu criei uma tabela local com os nomes desejados, verifiquei se o alvo era um monstro e se o nome do monstro constava na minha tabela recém criada. Sendo verdadeiro, acionei a função doTargetCombatHealth(cid, target, type, min, max, effect). -- Lembrando que conforme o tipo da sua magia você vai alterar os parâmetros dessa função para que ela tenha as animações e o dano compatíveis com o seu gosto/objetivo. Outro detalhe é que nesse trecho de código acima é que é feita a verificação que eu desejo. Eu poderia ao invés disso verificar se é um jogador e se a vocação dele tem o id 1 ou 2, por exemplo. Ficaria: function onTargetCreature(cid, target) local vocations = {1, 2} if isPlayer(target) and isInArray(vocations, getPlayerVocation(target)) then doTargetCombatHealth(cid, target, type, min, max, effect) end end Ou verificar um level, para que a magia só funcione em alvos acima do level X, etc. Exemplo: function onTargetCreature(cid, target) local level = 80 if isPlayer(target) and getPlayerLevel(target) >= 80 then doTargetCombatHealth(cid, target, type, min, max, effect) end end Feita a função, faremos aquilo que mencionei: a chamaremos como parâmetro da função "setCombatCallback" para o nosso "combat". Fica assim: setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") Feito isso, pronto! Basta chamarmos a spell normalmente. Exemplo de tudo pronto para uma magia "exevo mas san" que só acerte os ratos e tira de 10 a 20 de vida: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA) local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) function onTargetCreature(cid, target) local creatures = {"rat", "cave rat"} if isMonster(target) and isInArray(creatures, getCreatureName(target)) then doTargetCombatHealth(cid, target, COMBAT_HOLYDAMAGE, -10, -20, CONST_ME_HOLYAREA) end end setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") function onCastSpell(cid, var) return doCombat(cid, combat, var) end Agora é com a criatividade de vocês! Até a próxima!
  7. Bom, primeiramente perdão se eu estiver na área errada, é meu primeiro tópico nesse fórum. Seguinte, eu peguei um script de uma spell de kamui in, e eu queria usar no meu DBO. A skill funcionou normalmente (Ela funciona da seguinte forma: quando o jogador X usa a spell em um jogador Y, ambos os jogadores são teleportados para certa position) Eu queria saber se alguém consegue fazer com que ao usar a spell, o caster (conjurador) demore 1 ou 2 segundos para se teleportar (se puder ser configurável tb é ótimo) (Exemplo: o caster usa a spell no target, o target se teleporta para o local configurado imediatamente e depois de 2 segundos o caster também se teleporta para o local configurado) Caso tenham alguma dúvida, avisem! Edit: Percebi que eu estava na área errada, se alguém puder mover meu tópico fico agradecido. Agradeço desde já. Lua da spell - Xml da Spell
  8. Fala galera do TK, eu queria uma ajuda com uma certa spell que to tentando modificar mas o effect dela nao muda , ja mudei tudo que podia nela e n sei como mudar o effect dela , nao entendo muito de script de spell , entao quem puder me ajudar rep++ o effect que ta saindo é 246 !! aqui ta a script: local config = { jumps2 = 50, walktime = 200 } combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_ORANGE) setCombatParam(combat1, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 14) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 122) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -10.0, 0, -15.0, 0) function onCastSpell(cid) if exhaustion.check(cid, 13104) == TRUE then doPlayerSendCancel(cid, "Podera usar novamente dentro de 10 segundos.") doSendMagicEffect(getCreaturePosition(cid), 2) return false end function move2(cid, pos, n) local n = n or 0 if (n < config.jumps2) then if (isCreature(cid)) then local pos = pos or getCreaturePosition(cid) local target = getCreatureTarget(cid) local dir = (target ~= 0) and getDirectionTo(pos, getCreaturePosition(target)) or getCreatureLookDirection(cid) local tpos = (target ~= 0) and getCreaturePosition(target) local newPos if ((target ~= 0) and ((pos.x == tpos.x) and (pos.y == tpos.y))) then newPos = tpos else newPos = getPosByDir(pos, dir) end if ((getTopCreature(newPos).uid == 1) and doTileQueryAdd(cid, newPos) ~= 0) then return false end doCombat(cid, combat1, { pos = newPos, type = 2 }) addEvent(move2, config.walktime, cid, newPos, n + 1) end end end move2(cid) exhaustion.set(cid, 13104, 10.0) return true end
  9. Ola, galera não sei se aqui e o lugar correto sou novo no forum qualquer coisa da um toque ou muda pra min por favor, A minha dúvida é eu criei um spells ela ta funcionando tudo okay, porem eu queria um script que depois que o player usar ela uma vez, ele tenha que esperar 30 segundos para poder castar ela novamente, mas não quero alterar no exauthed pois isso afetara outras spells, quero apenas que essa magia exclusiva só possa ser usada a cada 30 segundos, tentei de algumas formas mais sem sucesso desde ja agradeço
  10. Olá, há muitos anos publiquei um script no tibiaking de uma spell onde acontecia uma chuva de flechas, agora em 2019 eu refiz vários dos scripts do meu antigo servidor e este foi um deles. Basicamente eu simplifiquei o código (não tinha conhecimento suficiente para isso na época) e corrigi um dos bugs que existia, enfim segue o script: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_NONE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -60, -1, -60, 5, 5, 4, 7) function onTargetCombat(cid, target) local posCid = getCreaturePosition(cid) local posTarget = getCreaturePosition(target) doSendDistanceShoot(posCid, posTarget, CONST_ANI_ONYXARROW) end setCombatCallback(combat, 4, "onTargetCombat") local area = createCombatArea(AREA_CROSS6X6) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end xml: <instant name="Chuva de Flechas" words="chuva de flechas" lvl="80" manapercent="25" prem="1" soul="0" aggressive="0" exhaustion="1000" selftarget="1" needlearn="0" event="script" value="especiais/mas shadow.lua"> <vocation id="2"/> <vocation id="6"/> </instant> Vou publicar o mesmo gif de demonstração pois a funcionalidade segue praticamente a mesma: https://giphy.com/gifs/r0DNAlUJKUxeo Espero que tenham gostado e notado como um código pode ser bem mais simples do que parece..
  11. Esse foi um dos meus primeiros scripts, é uma spell (adaptada por emersonsss) de cura instantânea que utiliza Soul Points para curar o druid. Se ele não tiver soul points e invocar a magia, a força da natureza pega a energia da vida dele e acaba não curando, o deixando no prejuízo. function onCastSpell(cid, var) if isDruid(cid) then if getPlayerSoul(cid) >= 100 then local maxh = getCreatureMaxHealth(cid) doCreatureAddHealth(cid, maxh) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_RED) doPlayerAddSoul(cid, -100) doPlayerSendTextMessage(cid, 22, 'You used your soul successfully!') else  doPlayerSendCancel(cid, "You dont have 100 soul.") end else doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_POFF) doPlayerSendTextMessage(cid, 21, 'You are not druid, as punishment, the ancient gods will punish you removing you life.') doPlayerSendTextMessage(cid, 21, 'Dont try this again!') doCreatureAddHealth(cid, -5) end return true end Em forma de comando: Em data/talkactions/scripts, copie um arquivo, renomeie para druidprotection e adicione o script function onSay(cid, words, param, channel) if isDruid(cid) then if getPlayerSoul(cid) >= 100 then local maxh = getCreatureMaxHealth(cid) doCreatureAddHealth(cid, maxh) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_RED) doPlayerAddSoul(cid, -100) doPlayerSendTextMessage(cid, 22, 'You used your soul successfully!') else doPlayerSendCancel(cid, "You dont have 100 soul.") end else doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_POFF) doPlayerSendTextMessage(cid, 21, 'You are not druid, as punishment, the ancient gods will punish you removing you life.') doPlayerSendTextMessage(cid, 21, 'Dont try this again!') doCreatureAddHealth(cid, -5) end return true end Em data/talkactions/talkactions.xml adicione a tag: <talkaction words="!druidprotection" event="script" value="druidprotection.lua"/>
  12. FALA GALERA, VIM AQUI TRAZER UM SCRIPT QUE EDITEI, É UM BUFF QUE MUDA SUA OUTFIT POR UM CERTO TEMPO COM UM COOLDOWN PARA USAR DE NOVO. NA SCRIPT EDITEI UM KAIOKEN NO DBO NÃO SOU SCRIPTER APENAS FUI PEGANDO VÁRIOS SCRIPTS DO TK E TESTANDO ATÉ ENCONTRAR O ERRO DELES, LEVEI MUITO TEMPO PRA AJUSTAR ISSO NO MEU SERVER, SE CONSEGUIREM USAR ELE TAI AI PARA VOCÊS local outfit = {lookType = 3} -- outfit local tempo = 30 -- tempo em segundos. local effect = {41} -- effect no player, caso queira apenas 1, basta remover os outros numeros. local config = { storage = 112005, cooldown = 90, --- tempo entre um uso e outro } local ml = 20 -- quantos ira aumentar o skill de ML local skillfist = 20 -- quantos ira aumentar o skill de Fist local skillsword = 20 -- quantos ira aumentar o skill de Sword local skillaxe = 20 -- quantos ira aumentar o skill de Axe local skillclub = 20 -- quantos ira aumentar o skill de Club local skilldistance = 20 -- quantos ira aumentar o skill de Distance local skillshield = 20 -- quantos ira aumentar o skill de Shield local health = 0 -- A cada 1 segundo quantos aumentar de vida local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield) setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_SPEED, 250) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_REGENERATION) setConditionParam(condition, CONDITION_PARAM_SUBID, 1) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health) setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000) setCombatCondition(combat, condition) local sys = createConditionObject(CONDITION_OUTFIT) setConditionParam(sys, CONDITION_PARAM_TICKS, tempo) addOutfitCondition(sys, outfit) setCombatCondition(combat, sys) function magicEffect41(tempo2,tempo3,cid) if (isCreature(cid)) then if getPlayerStorageValue(cid, 102053) > 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then for i=1, #effect do local position = {x=getPlayerPosition(cid).x, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z} doSendMagicEffect(position, effect[i]) end end end end local sys = createConditionObject(CONDITION_OUTFIT) setConditionParam(sys, CONDITION_PARAM_TICKS, tempo*1000) addOutfitCondition(sys, outfit) setCombatCondition(combat, sys) function onCastSpell(cid, var) local pos = getCreaturePosition(cid) if isPlayer(cid) then if os.time() - getPlayerStorageValue(cid, config.storage) >= config.cooldown then setPlayerStorageValue(cid, config.storage, os.time()) else doPlayerSendCancel(cid, "Voce deve aguardar "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, config.storage))).." segundos, para usar o Kaioken novamente!") doSendMagicEffect(pos, 2) return false end end local position129 = {x=getPlayerPosition(cid).x, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z} if getPlayerStorageValue(cid, 102053) ~= 1 or getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then doCombat(cid, combat, var) tempo2 = 0 while (tempo2 ~= (tempo*1000)) do addEvent(magicEffect41, tempo2, tempo2, tempo*1000, cid) tempo2 = tempo2 + 300 end setPlayerStorageValue(cid, 102053,1) -- storage verifica transformado, quando = 1 player esta transformado. doCreatureSay(cid, "KAIOKEEEEEEN!", TALKTYPE_MONSTER) doSendMagicEffect(position129, 41) -- id do effect que vai aparecer quando usar a habilidade else doPlayerSendCancel(cid, "Desculpe, voce ja esta transformado.") end return true end O SEGREDO E SÓ NÃO DESISTIR CASO ENCONTRE UM SCRIPT QUE NÃO FUNCIONE 😉
  13. Testado : ✔️ OTX - 0.3.6 / 8.54 Salve galera, bom depois de algum tempo e com ajuda de alguns amigos, consegui trazer para vocês essa função, eu sei que já tem alguns tópicos referente ao assunto, porém sempre com problemas ou nunca explicado de uma forma simples e objetiva. Para começar vamos ao código Função function onGetFormulaValues(cid, level, skill, attack, factor) local lvl_skill = getPlayerSkillLevel(cid, SKILL_CLUB) local lvl_skill2 = getPlayerSkillLevel(cid, SKILL_FIST) local min = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3 local max = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3 return -min, -max end setCombatCallback(combat1, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") Bom essa função vai calcular o level, skill para dar o dano da spell. Mas vamos a algumas observações e informações sobre ela. Primeiramente você pode configurar ela para calcular mais de uma skill no caso da função acima esta calculando a club e fist Para adicionar ou remover skills a ser calculada você vai remover ou adicionar essa linha local lvl_skill = getPlayerSkillLevel(cid, SKILL_CLUB) Depois de adicionar ou remover você vai editar essa linha local min = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3 local max = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3 Então esta calculando o level a skill club e a skill fist mas tanto pode remover a skill fist ou adicionar outra skill ficando assim Removido local min = (level * 3 + lvl_skill * 5) * 3 local max = (level * 3 + lvl_skill * 5) * 3 Adicionado para calcular e somar mais de uma skill para dar o dano ou seja local min = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5 + lvl_skill3 * 5 + lvl_skill4 * 5) * 3 local max = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5 + lvl_skill3 * 5 + lvl_skill4 * 5) * 3 Assim vai calcular e somar as skills então se tiver 50 de club vai dar um dano se tiver 50 de fist vai somar com a club e o dano vai ser maior e por ai vai com isso da para criar diversos quesitos de rpg por exemplo mestre das armas o jogador treina todas as skills de tipos de armas e a spell vai dar mais dano por conta disso !! ATENÇÃO !! Para o script poder fazer todo esse calculo o jogador precisa estar usando uma arma que upe skill ou seja se ele estiver usando club ele vai calcular a skill do jogador se ele não estiver usando nada nas mãos vai calcular o fist dependendo disso vai afetar no dano que a skill pode dar Bom é isso espero que vocês gostem, Não esqueça de deixar o feedback se gostou, se foi útil etc... Créditos: @Dwarfer @lordzetros
  14. Olá, hoje estou trazendo um script de uma spell que uso no meu servidor. Quando o jogador utiliza, recupera mana a cada segundo, porém não pode se mover e caso leve algum dano a spell é cancelada. Adicionei também para que o jogador só possa utilizar a magia caso esteja com a condição "SOUL", então ele precisa ter matado algum monstro recentemente. Em spells crie um arquivo chamado rest.lua e coloque o seguinte: local config = { storage = 3482142, -- storage para verificar se a spell ta ativa antes de healar cooldownStorage = 3910229, --- storage do cooldown cooldown = 23, --- tempo entre um uso e outro duration = 6, --- duração effect = 12 -- efeito que sai ao falar a spell } function onCastSpell(cid, var) if getCreatureCondition(cid, CONDITION_SOUL) then if os.time() - getPlayerStorageValue(cid, config.cooldownStorage) >= 0 then setPlayerStorageValue(cid, config.storage, os.time() + config.duration) setPlayerStorageValue(cid, config.cooldownStorage, os.time() + config.cooldown) doSendMagicEffect(getCreaturePosition(cid), config.effect) doCreatureSay(cid,"Rest!!!", 19) for i=1,5 do addEvent(healMana, i * 1000, cid) end doCreatureSetNoMove(cid, true) addEvent(doCreatureSetNoMove, 5000, cid, false) return true else doPlayerSendCancel(cid, "Rest in cooldown, you must wait "..(-1 * (os.time() - getPlayerStorageValue(cid, config.cooldownStorage))).." seconds.") return false end else doPlayerSendCancel(cid, "You are not in fight") return false end end function healMana(cid) if getPlayerStorageValue(cid, config.storage) > 0 then local level = getPlayerLevel(cid) local extraMana = math.ceil(level/2) local manaToAdd = 50 + extraMana local maxMana = getCreatureMaxMana(cid) if (manaToAdd > math.ceil(maxMana / 10)) then manaToAdd = math.ceil(maxMana/10) end doCreatureAddMana(cid, manaToAdd) end end Em spells.xml coloque: <instant name="Rest" words="exura kor" lvl="35" manapercent="5" prem="1" range="4" exhaustion="2000" needlearn="0" event="script" value="rest.lua"> <vocation id="9"/> </instant> Em creaturescripts crie um arquivo chamado rest.lua e coloque: function onStatsChange(cid, attacker, type, combat, value) if value >= 1 and (type == STATSCHANGE_HEALTHLOSS) or (getCreatureCondition(cid, CONDITION_MANASHIELD) and type == (STATSCHANGE_MANALOSS)) then if (getPlayerStorageValue(cid,3482142) - os.time() > 0) and isCreature(attacker) then setPlayerStorageValue(cid, 3482142, -1) doCreatureSetNoMove(cid, false) return true end end return true end Adicione no creaturescript.xml <event type="statschange" name="sleepcancel" event="script" value="rest.lua"/> Agora para garantir que funcione é necessário adicionar no login.lua o creatureevent: registerCreatureEvent(cid, "rest") if getPlayerStorageValue(cid, 3482142) ~= 0 then setPlayerStorageValue(cid, 3482142, 0) end Se eu não esqueci de nada, é para funcionar, agora vou mostrar um gif da spell: https://giphy.com/gifs/5nrWO73TnLj4Bkra24 Sugestão: também é possível mudar o cálculo da cura utilizando um math.random, assim não fica valores estáticos.
  15. Opa gente, eu preciso de um script que faz o seguinte: Quando o player utiliza-lo, irá soltar um distance effect em linha reta (5sqm), e depois de 1 segundo, aparecerá um effect que vai atingir todos os blocos percorridos, e ambas causam dano.
  16. Visualizar Anúncio Procuro Spell Maker Procuro Spell Maker experiente, para desenvolver spells, preço a combinar por favor enviar mensagem, 1- preciso de uma spell direcional, que solta um Missile e faz um efeito de buraco negro quando pegar no player as outras spells explico no pm. Anunciante Etherious Date 14/01/2019 Preço R$ 20,00 Categoria Procura-se Freelancers  
  17. THIS ADVERT HAS EXPIRED!

    • Looking for Freelancers
    • To combine

    Procuro Spell Maker experiente, para desenvolver spells, preço a combinar por favor enviar mensagem, 1- preciso de uma spell direcional, que solta um Missile e faz um efeito de buraco negro quando pegar no player as outras spells explico no pm.

    20.00 USD

  18. Olá povo do tibia king, eu queria saber se poderiam criar para mim, um exura res que desse sequenciado, igual o utura, mas em área rs. E queria pedir tbm no embalo se puderem, um item praticamente do mesmo jeito, que você jogue ele e ele fique curando ao redor de onde ele está, quero fzer disso um toten de cura. Desde já agradeço (no caso o totem vai ser lançado por uma runa)
  19. é o seguinte galera, to tentando fazer um crafter e queria uma spell que ele precisasse de tantos itens em suas quantidades exatas, que precise de level e que cada vez que ele usa a magia, ele ganhe um pouco de exp. exemplo eu pego 2 toras de madeira, uma pedra refinada e uns fios, e faço um machado. ganhe uns 20 de experiencia com isso. a verção do meu servidor é 8.60 global server. ajudaria mto se me ajudassem. obrigado desde já
  20. Olá, Estou Com Uma Spells Aqui E Gostaria De Por um Exaust nela, Eu tentei e consegui, so que quando solta a magia so fala o nome e nao aparece nada... Gostaria que alguem ajudasse ai plix. >>>>> Script Com Meu Codigo de Exaaust >>>http://www.hatebin.com/vqrzonqqtn >>>>>Script Sem Codigo De Exaust >>>>http://www.hatebin.com/ghriheqyvc
  21. boa noite preciso de 2 sistemas que andei procurando de forun em forun n encontrei o primeiro preciso da magia no script da magia ter uma storage para checar a condição 1,2 e vai criar outra storage que vai acionar as condições 1 ou 2 Quando a 1 for ativada armazenara o resultado até que a 2 seja verdadeira e depois tipo combo ao usar ela 2 x na segunda sairia uma magia diferente sendo tipo combo chute chute soco soco a segunda preciso de um sistema de action para sumonar uma criatura e depois tirar ela ao clicar em um item id. detalhe : queria que o card n sumise fosse tipo uma pokebola e ao usar pudese sumonar upar e tanbem controlar ele como vocaçao andar com ele usar magia controlar tipo jogador como se fosse uma vocaçao card inventario propio obrigado pela atençao
  22. Bem, resolvi fazer esse tópico porque os NTOs de hoje em dia utilizam bastante Kuchyoses, e esses kuchyoses geralmente limitados e que muitos Ot-Admins não sabem configurar o mesmo. Então, a script ela é automática, nessa tabela você pode configurar todos os summons, deixarei a script e o tutorial de configuração no final do tópico. local t = { [1] = {name = "Rabbit", life = 500, outfit = 10}, [2] = {name = "Demon" , life = 500, outfit = 10} } Em NAME : Coloque o nome do monstro que será sumonado Em LIFE : Coloque a quantidade de life que o summon terá Em OUTFIT : coloque o ID do lookType do summon Voce pode criar quantas tabelas quiser, lembrando que tem que seguir a sequencia e sempre com virgula no final. Na tabela block é simples, são as áreas não permitidas que os players usem a spell, que tambem podem ser feitas quantas tabelas quiser. Agora vamos a script: XML <instant name="Kuchyose exemple" words="Kuchyose exemple " lvl="50" mana="1000" blockwalls="1" agressive="0" exhaustion="5000" needlearn="0" event="script" value="kuchyose.lua"> </instant> Script local block = { -- Areas bloqueadas [1] = {{x = 1261, y = 417, z = 15}, {x = 1317, y = 374, z = 15}}, [2] = {{x = 1261, y = 417, z = 14}, {x = 1317, y = 374, z = 14}}, [3] = {{x = 1261, y = 417, z = 13}, {x = 1317, y = 374, z = 13}}, [4] = {{x = 1036, y = 909, z = 7 } , {x = 1020, y = 894, z = 7}}, } local t = { [1] = {name = "Rabbit", life = 500, outfit = 10}, [2] = {name = "Demon" , life = 500, outfit = 10} } local count_max = 1 -- Máximo de summons para poder usar a spell function onCastSpell(cid, var) if getTileInfo(getThingPos(cid)).protection then doPlayerSendCancel(cid, "You can't cast in ProtectionZone.") return false end for a, b in pairs(block) do if isInRange(getCreaturePosition(cid), b[1], b[2]) then doPlayerSendTextMessage(cid, 20, "Você não pode usar nesse area.") return false end end if table.maxn(getCreatureSummons(cid)) < count_max then for c, d in pairs(t) do clone = doCreateMonster(d.name, getCreaturePosition(cid)) doConvinceCreature(cid, clone) setCreatureMaxHealth(clone, d.life) doCreatureAddHealth(clone, d.life) doCreatureChangeOutfit(clone, {lookType = d.outfit}) end return true else doPlayerSendTextMessage(cid, 27, "Voce ja tem summons online") doSendMagicEffect(getCreaturePosition(cid), 3) return false end return true end
  23. Fala Galerinha do TK, em primeira mente eu queria pedir desculpa se estiver na area errada porque é meu primeiro topico e eu não sei muito bem qual area é, por favor se alguem poder mover para min agradeço. Então a spell que eu gostaria que vocês criassem é mas como (frozen orbe), porem para narutibia 854 com nome katon karyu endan e com extremas modificações. ela funciona da seguinte maneira quando o player (shisui) usar a magia ela ira soltar um (shoot effect, Distance Shoot ou Distance Effect não sei qual nome certo) qual vocês preferirem o distance shoot giraria em volta do player que usou magia no caso shisui em um determinado tempo X ex: um katon na posição north-west depois de um segundo um katon na posição west depois de um segundo um katon na posição west-south e assim sussecivamente, so que eu queria que vocês colocassem o tempo que esta no video para os katon girar, depois de dar esse giro de 360°grau ele lançara um outro katon para cima do player que usou a magia (shisui) e depois que o katon sumisse da tela dessece outro katon encima do target com outro effect junto que chamarei de voltinha :v. No final quando ele atingir o player aparecera outro effect que chamarei de explosão Effect ID explosão:442 voltinha: 92 Distance Effect, Shoot Effect, Distance Shoot katon: 51 Para quem não entendeu muito bem ta aqui o link do video o jutsu se encontra na parte 6:04 (se vocês não entenderam ainda ou acharam que falto alguma que vocês viram no vídeo e eu não citei não exitem em me chamar. Agradeço desde já) NTO Ultimate - TESTANDO A VOCAÇÃO SHISUI.mp4 https://www.youtube.com/watch?v=xKavdKRSrVA
  24. Bom gente eu n vir muito sucesso nos meu outro pedido espero que vcs min ajude pq presciso muito. Bom a spell que eu quero(se n for spell e estiver o jeito de fazer pelo o talkactions Poderia Ser) Kamui In/ Kamui Out poder de Obito, sei tb que varias pessoas quer e vao da rep pra quem cria fora os meus. Kamui In -- Teleport to other dimension -- Leva quem estiver no Redor ou sozinho pra um x lugar. Kamui Out -- Teleport to normal dimension -- Volta todos que foi pow Kamui In pra o lugar onde o player Usou a magia. Bom tem gente que pensa que é vantage mas so que essa magia gastao SOUL. Vou coloca esse video aqui: 0:57 até 1:04 segundos mostra a spell que eu quero. https://www.youtube.com/watch?v=2Meophnnfyo#t=57 Queria quem cria-se prestasse atençao no efeito que vai e que vem, e lembra que os efeito de otserv Naruto sao tudo tortos n fica centralizando. Se eu estive errado como é o spell, pode cria do jeito que vc arranja. Vlw estou esperando ajuda e tb valendo os meus REPs+.
  25. Galera, me ajuda ae por favor, eu queria essa script da spell que está no video (LINK A BAIXO). É uma spell com 2 jutsus (NÃO SEI SE É TUDO NA MESMA SCRIPT) Kamui In: Leva pro mundo e não tem tempo de volta Kamui Out: Tira você e o player que vc levou do mundo, voltando para a posição onde usou a spell. VERSAO: 8.6 Segundos do video, onde mostra a spell: inicio: 0:58 fim: 1:04

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...