Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''spells''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

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

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. Olá, estou usando como base o server PokeNumb. Minha dúvida é: os cooldowns das spells dos pokemons estão diminuindo enquanto os pokemons estão dentro das balls. Gostaria que diminuísse somente quando o pokemons está pra fora. Alguém sabe onde posso mudar isso?
  2. [21/04/2023 17:21:09] [Error - Spell Interface] [21/04/2023 17:21:09] data/spells/scripts/ps/Multi-Punch.lua:onCastSpell [21/04/2023 17:21:09] Description: [21/04/2023 17:21:09] (luaGetPlayerSlotItem) Player not found [21/04/2023 17:21:14] [Error - Spell Interface] [21/04/2023 17:21:14] data/spells/scripts/ps/Multi-Punch.lua:onCastSpell [21/04/2023 17:21:14] Description: [21/04/2023 17:21:14] (luaGetPlayerSlotItem) Player not found pokemon moves.lua
  3. local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 136) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 141) function tsubi(cid, level, maglevel) local min = -(level * 2.0+ maglevel * 4 +50) local max = -(level * 2.0+ maglevel * 4.5 +50) return min, max end setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "tsubi") local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 136) setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 141) function tsubi1(cid, level, maglevel) local min = -(level * 2.0+ maglevel * 4 +50) local max = -(level * 2.0+ maglevel * 4.5 +50) return min, max end setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "tsubi1") local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 136) setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 141) function tsubi1(cid, level, maglevel) local min = -(level * 2.0+ maglevel * 4 +50) local max = -(level * 2.0+ maglevel * 4.5 +50) return min, max end setCombatCallback(combat3, CALLBACK_PARAM_LEVELMAGICVALUE, "tsubi1") local combat4 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 136) setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 141) function tsubi1(cid, level, maglevel) local min = -(level * 2.0+ maglevel * 4 +50) local max = -(level * 2.0+ maglevel * 4.5 +50) return min, max end setCombatCallback(combat3, CALLBACK_PARAM_LEVELMAGICVALUE, "tsubi1") local combat5 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 136) setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 141) function tsubi1(cid, level, maglevel) local min = -(level * 2.0+ maglevel * 4 +50) local max = -(level * 2.0+ maglevel * 4.5 +50) return min, max end setCombatCallback(combat3, CALLBACK_PARAM_LEVELMAGICVALUE, "tsubi1") local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, parameters.combat3, parameters.var) end local function onCastSpell4(parameters) doCombat(parameters.cid, parameters.combat4, parameters.var) end local function onCastSpell5(parameters) doCombat(parameters.cid, parameters.combat5, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5 } addEvent(onCastSpell1, 0, parameters) addEvent(onCastSpell2, 200, parameters) addEvent(onCastSpell3, 400, parameters) addEvent(onCastSpell3, 500, parameters) addEvent(onCastSpell3, 600, parameters) return true end Como os efeitos são desproporcionais no meu serve algumas sprtis saem erradas, gostaria de ter o controle da position delas!
  4. Evollutions

    Magia stun

    Ola pessoal, estou precisando de um script de spell, já testei alguns e todos deram erro. Meu servidor é um baiak 10.90, tfs 1.0 Queria uma magia que funcionasse como stun (incapacitar) durante x segundos, e que o target incapacitado não consiga andar nem usar magias/runas. E se não for muito trabalho, uma variação da mesma spell, mas em área (na mesma área do exori). Edit: esqueci de dizer que tem que ter CD de 1 min Obrigado desde já!
  5. Galera baixei a base do pokeRoxy aqui e os pokemon selvagem nao esta dando dano nas spells somento nos ataq basico alguem sabe resolver?
  6. Fala galera, tudo certo com vocês? Estou tentando implementar um sistema que a princípio parece simples (e deve ser mesmo), mas que está me tirando o sono hahaha A ideia é a do título mesmo, ao matar um monstro o player tem a chance de aprender uma determinada spell. Dei uma pesquisada, criei um script, entretanto ele não funciona (e não da erro no log do servidor) Alguém poderia me dar um help? Provavelmente devo estar escrevendo o código errado, faz tempo que não sei o que é programação :v Desde já obrigado!
  7. Este script carrega Spells.xml quando solicitado pelo usuário no painel admin, e cria um arquivo php salvando todas as magias em arrays. Ele tem opções de classificação exatamente como a página do Tibia. Ele funciona com ambas as distribuições 0.2 e 0.3. Preview: Vamos ao tutorial: Configuração: engine/function/general.php Em ?> Adicione function build_spells($xml, $display_groups) { $t_count = 0; $rune = array(); $string = '<?php'."\n".'#Generated spells file from admin panel'."\n".'#Edit at your own risk!'; $string .= "\n".'$show_spells_groups = '.($display_groups ? 'true' : 'false').';'."\n".'$spells = array('; foreach($xml as $key => $value) { if($value['lvl']) { if($key == 'rune') { if($display_groups) { if($value['group'] == NULL) { echo '<span style="color:orange;font-weight:bold">WARNING: Group not found at spell "'.$value['name'].'", set to "Attack".</span><br>'; } $rune[(string)$value['name']] = ($value['group'] == NULL) ? 'Attack' : $value['group']; } continue; } $t_count++; $string .= "\n\t".'array('; if($display_groups) { $string .= "\n\t\t".'"group" => '; { if($value['function'] == 'conjureRune') { $string .= '\''.ucfirst($rune[(string)$value['name']]).'\''; } else { if($value['group'] == NULL) { echo '<span style="color:orange;font-weight:bold">WARNING: Group not found at spell "'.$value['name'].'", set to "Attack".</span><br>'; } $string .= '\''.ucfirst(($value['group'] == NULL) ? 'Attack' : $value['group']).'\''; } } $string .= ','; } $string .= "\n\t\t".'"type" => '; if(config('TFSVersion') == 'TFS_02') { $string .= (($value['function'] == 'conjureRune') ? '\'Rune\'' : '\'Instant\''); } if(config('TFSVersion') == 'TFS_03') { $string .= (($value['value'] == 'conjureRune') ? '\'Rune\'' : '\'Instant\''); } $string .= ','; $string .= "\n\t\t".'"name" => "'.$value['name'].'",'; $string .= "\n\t\t".'"words" => \''.$value['words'].'\','; $string .= "\n\t\t".'"level" => '.$value['lvl'].','; $string .= "\n\t\t".'"mana" => '; $string .= (($value['mana'] == NULL) or ($value['mana'] == '')) ? '\'Var.\'' : $value['mana']; $string .= ','; $string .= "\n\t\t".'"premium" => '; if($value['prem']) { $string .= ($value['prem'] == 1) ? '\'yes\'' : '\'no\''; } else { $string .= '\'no\''; } $string .= ','; $vocs = array(); $string .= "\n\t\t".'"vocation" => array('; foreach($value->vocation as $vocation) { if(config('TFSVersion') == 'TFS_02') { $vocs[] = '\''.$vocation[0]['name'].'\''; } elseif(config('TFSVersion') == 'TFS_03') { if(strpos($vocation[0]['id'], ';') !== FALSE) { $array = explode(';', $vocation[0]['id']); foreach($array as $voc) { $vocs[] = '\''.vocation_id_to_name($voc).'\''; } } else { $vocs[] = '\''.vocation_id_to_name((int)$vocation[0]['id']).'\''; } } } if(count($vocs) < 1) foreach(config('vocations') as $id => $name) if($id > 0) $vocs[] = '\''.$name.'\''; $string .= implode(', ',$vocs).')'."\n\t".'),'; } } $string .= "\n".'); ?>'; echo('Loaded '. $t_count .' spells!<br>'); echo 'File "spell.php" '.(file_exists('spell.php') ? 'updated' : 'created').'!<br>'; $file = fopen('spell.php', 'w'); fwrite($file, $string); fclose($file); } admin.php Antes </ul> <?php include 'layout/overall/footer.php'; ?> Adicione <li> <b>Update spells from file:</b><br> <?php if (!isset($_POST['action'])) { $_POST['action'] = 'undefine'; } if ($_POST['action'] == 'upload') { $xml = $_FILES['file']; $_POST['action'] = 'undefine'; if($xml['tmp_name']) { if($xml['name'] == 'spells.xml') { $groups = (isset($_POST['show_groups']) && $_POST['show_groups'] == 'yes') ? true : false; echo 'Successfully fetched spells.xml!<br>'; echo 'Using temporal file: '. $_FILES['file']['tmp_name'] .'<br>'; build_spells(simplexml_load_file($xml['tmp_name']), $groups); } else { echo '<span style="color:red;font-weight:bold">ERROR: File "spells.xml" not found.</span>'; } } else { echo '<span style="color:red;font-weight:bold">ERROR: Upload failed.</span>'; } } ?> <form enctype='multipart/form-data' method='POST'> <input type='checkbox' name='show_groups' value='yes'> Show spells groups (Only for TFS 0.2.9+)<br> <input type='hidden' name='action' value='upload' /> <input type='file' name='file' /> <input type='submit' value='Submit' /> </form> </li> Crie o arquivo Spell.php e adicione dentro: <?php require_once 'engine/init.php'; include 'layout/overall/header.php'; echo '<h1>Spells</h1>'; if(file_exists('spell.php')) { require_once 'spell.php'; ?> <table> <tr class="yellow"> <td><b>Name</b></td> <?php if($show_spells_groups) echo '<td><b>Group</b></td>'; ?> <td><b>Type</b></td> <td><b>Exp Lvl</b></td> <td><b>Mana</b></td> <td><b>Premium</b></td> </span> </tr> <?php @$sort = $_REQUEST['sort']; if(!isset($sort)) $sort = 'name'; @$vocation = $_REQUEST['vocation']; if(!isset($vocation)) $vocation = 'vall'; if($show_spells_groups) { @$group = $_REQUEST['_group']; if(!isset($group)) $group = 'gall'; } @$type = $_REQUEST['_type']; if(!isset($type)) $type = 'tall'; @$premium = $_REQUEST['_premium']; if(!isset($premium)) $premium = 'pall'; $order = array(); foreach($spells as $key => $row) { $order[$key] = $row[$sort]; } array_multisort($order, SORT_ASC, $spells); foreach($spells as $spell) { if($vocation != 'vall') { if(!in_array($vocation, $spell['vocation'])) continue; } if($show_spells_groups && $group != 'gall') { if($spell['group'] != $group) continue; } if($type != 'tall') { if($spell['type'] != $type) continue; } if($premium != 'pall') { if($spell['premium'] != $premium) continue; } ?> <tr> <td><?php echo '<b>'.$spell['name'].'</b> ('.$spell['words'].')'; ?></td> <?php if($show_spells_groups) echo '<td>'.$spell['group'].'</td>'; ?> <td><?php echo $spell['type']; ?></td> <td><?php echo $spell['level']; ?></td> <td><?php echo $spell['mana']; ?></td> <td><?php echo $spell['premium']; ?></td> </tr> <?php } echo '</table>'; ?> <form action='spells.php' method='post'> <table> <tr class="yellow"> <td colspan=4><b>Spell Search</b></td></tr> <tr class="yellow"> <?php if($show_spells_groups) { echo'<td width=25%><b>vocation</b></td> <td width=25%><b>group</b></td> <td width=25%><b>type</b></td> <td width=25%><b>premium</b></td>';} else { echo'<td width=40%><b>vocation</b></td> <td width=30%><b>type</b></td> <td width=30%><b>premium</b></td>';}?> </tr> <tr> <td valign='top'> <input type='radio' name='vocation' value='vall' checked> all<br> <?php foreach(config('vocations') as $id => $vocation) { if($id > 0) { echo "<input type='radio' name='vocation' value='".$vocation."'> ".$vocation."<br>"; } } ?> </td> <?php if($show_spells_groups) echo" <td valign='top'> <input type='radio' name='_group' value='gall' checked> all<br> <input type='radio' name='_group' value='Attack'> attack<br> <input type='radio' name='_group' value='Healing'> healing<br> <input type='radio' name='_group' value='Support'> support</td>"; ?> <td valign='top'> <input type='radio' name='_type' value='tall' checked> all<br> <input type='radio' name='_type' value='Instant'> instant<br> <input type='radio' name='_type' value='Rune'> rune </td> <td valign='top'> <input type='radio' name='_premium' value='pall' checked> all<br> <input type='radio' name='_premium' value='no'> no<br> <input type='radio' name='_premium' value='yes'> yes </td> </tr> <tr> <td>sort by: <select name='sort'> <option value='name' selected>name <option value='words'>words <?php if($show_spells_groups) echo "<option value='group' >group"; ?> <option value='type' >type <option value='level' >exp lvl <option value='mana' >mana <option value='premium' >premium </select> </td> <td colspan='3'> <input type='submit' name='submit'> </td> </tr> </table> </form> <?php } else { echo 'This page has not been configured yet.'; }; include 'layout/overall/footer.php'; ?> Depois Adicionar o link da página ao seu layout layout padrão: /layout/menu.php Adicione na lista de páginas: <li><a href="spells.php">Spells</a></li> Fim do Tutorial ? Eu não posso garantir que ele vai trabalhar com todas as distros TFS. Lembre-se que você pode editar seu arquivo spell.php, principalmente necessário se você usar spells personalizadas. Créditos: cbrm(otland)
  8. Esta spell ao ser utilizada pelo player teleporta ele para sua cidade com um delay para se teleportar. spells.xml <instant name="Konoha teleport" words="Konoha teleport" lvl="1" mana="0" prem="1" aggressive="0" selftarget="1" exhaustion="10000" needlearn="0" event="script" value="citytp.lua"> </instant> citytp.lua function onCastSpell(cid, var) local waittime = 15.0 -- Tempo de exhaustion local storage = 115518 local function doTeleport(cid, count) if (not isPlayer(cid)) then return true end doSendAnimatedText(getCreaturePosition(cid), (10 - count).."s", COLOR_ORANGE) doSendMagicEffect(getCreaturePosition(cid), 54) if (count == 10) then return doCreatureSetNoMove(cid, false) and doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) else addEvent(doTeleport, 1000, cid, count + 1) end return true end if (not isPlayerPzLocked(cid)) then if (not getCreatureCondition(cid, 1024)) then return doCreatureSetNoMove(cid, true) and doTeleport(cid, 0) else doPlayerSendTextMessage(cid,MESSAGE_STATUS_SMALL,"You cannot use this command while you are infight.") return false end else doPlayerSendTextMessage(cid,MESSAGE_STATUS_SMALL,"You cannot use this command while you are pz locked.") return false end end
  9. Sistema Jinchuuriki De Servidores de Naruto. Selar um dos monstros e ser seu jinchuuriki , usando a magia só quando o Monstro estiver com 20% ou menos de vida. A Magia tem a range de 1 sqm, ou seja, você tem que usar a magia colado no monstro e Apenas um jogador conseguira selar o Monstro e ser seu jinchuuriki. Após selar um dos monstros você será o jinchuuriki dela por 10 dias, caso selar um outro Monstro você perdera a anterior e ficara com a nova e o tempo será renovado! Em data/spells/script crie um arquivo chamado Jinchuuriki.lua local storagecool = 89758local storagemob = 89759local tempo = 10 * 24 * 60 * 60 -- 10 diaslocal mobs = { ["kurama"] = 1, ["hachibi"] = 2, ["demon"] = 3, -- sempre letra minuscula e o numero q ele representa}function onCastSpell(cid, var) local target = variantToNumber(var) if target and isMonster(target) then if getCreatureHealth(target) <= math.floor(0.2 * getCreatureMaxHealth(target)) then if getCreatureName(target) and mobs[getCreatureName(target):lower()] then doPlayerSetStorageValue(cid, storagecool, os.time() + tempo) doPlayerSetStorageValue(cid, storagemob, mobs[getCreatureName(target):lower()]) doSendMagicEffect(getPlayerPosition(cid), 13) -- efeito no player doSendMagicEffect(getPlayerPosition(target), 13) -- efeito no monstro doRemoveCreature(target) doPlayerSendCancel(cid, "Você selou a criatura!") else doPlayerSendCancel(cid, "Essa criatura nao pode ser selada.") end else doPlayerSendCancel(cid, "O monstro precisa ter menos de 20% de vida para ser selado.") end else doPlayerSendCancel(cid, "Spell somente pode ser usada em monstros.") endreturn trueend Em spells.xml <instant name="Selar Bijuu" words="Selar Bijuu" lvl="200" mana="20000" prem="1" range="1" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="Jinchuuriki.lua"> <vocation id="1-10"/> </instant> Vantagens de ser um Jinchuuriki: Buff Especial que voce domina ela. data/spells/ Hachibi.lua local tempo = 60 -- tempo em segundoslocal effect = {134} -- effect no playerlocal exausted = 1 -- em minutoslocal points = 60 -- quantos ira aumentar os skillslocal outfit = {lookType = 350}-- outfit que ira darlocal 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, points)setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, points)setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, points)setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, points)setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, points)setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, points)setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, points)setCombatCondition(combat, condition)local condition = createConditionObject(CONDITION_OUTFIT)setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)addOutfitCondition(condition, outfit)setCombatCondition(combat, condition)function Magica(cid) if isCreature(cid) then for i=1, #effect do local position = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} doSendMagicEffect(position, effect) end endendfunction onCastSpell(cid, var) if getPlayerStorageValue(cid, 91546) ~= 2 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce nao eh um jinchuriki da Hachibi!") return false elseif getPlayerStorageValue(cid, 17456)-os.time() > 1 then local seetime = getPlayerStorageValue(cid, 17456)-os.time() local minutes, seconds = math.floor(seetime/60), math.floor(seetime%60) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde "..minutes.." minuto(s) e "..seconds.." segundo(s) para usar novamente!") return false end setPlayerStorageValue(cid, 17456, exausted*60+os.time()) doCombat(cid, combat, var) local tempo2 = 0 while (tempo2 <= (tempo*1000)) do addEvent(Magica, tempo2, cid) tempo2 = tempo2 + 300 end return trueend
  10. Olá galera do XTibia , tudo tranquilo ? Bom , gostaria de pedir a vocês , um NPC que adicionasse uma spell ao player , e mudasse a outfit do mesmo. Exemplo : Bom , é isso galera ^.^ Desde já muito obrigado XD
  11. Salve comunidade, estou com um problema em duas magias que possuem a função addEvent. Caso algum programador queira me ajudar, ficarei grato. Versão 10.96, TFS 1.2 Spells:
  12. Gostaria de fazer um pepido, acho q o nome e ''Aura System'', pois bem entei ne um ot server hj e ao falar !aura on ficando o efeito da death rodando intorno no char. Sera que alguem q tenha esse script possa disponibiliazar ?
  13. Entao gente, queria saber se alguem poder colocar paralizy nesse script de spells atk -- SpellCreator generated. -- =============== COMBAT VARS =============== -- Areas/Combat for 0ms local combat0_Brush = createCombatObject() setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat0_Brush,createCombatArea({{0, 1, 1, 1, 0}, {1, 1, 1, 1, 1}, {1, 1, 3, 1, 1}, {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}})) function getDmg_Brush(cid, level, maglevel) return (3000)*-1,(8000)*-1 end setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat0_Brush = {CONST_ANI_EXPLOSION,0,0,0,1,-1,1,-1,0,-1,-1,0,-1,1,-1,1,0,1,1,1,2,0,2,-1,2,-1,-2,0,-2,1,-2,-2,0,-2,1,2,1,2,0,2,-1,-2,-1} -- =============== CORE FUNCTIONS =============== local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part if (isCreature(cid)) then doCombat(cid, c, var) if (dirList ~= nil) then -- Emit distance effects local i = 2; while (i < #dirList) do doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList,y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1]) i = i + 2 end end end end function onCastSpell(cid, var) local startPos = getCreaturePosition(cid) RunPart(combat0_Brush,cid,var,dfcombat0_Brush,startPos) return true end
  14. GALERA ALGUÉM MANJA DE PASSIVA no meu serve pelo que vi nos xml config.lua ele ja tem mais quando ligo o game não pega .....nao sei fazer pega
  15. Olá Pessoal, Estou precisando da Ajuda De vocês! seus lindos Preciso de uma Magia que recupere Mana. Uma quantia minima e uma máxima. Porém que essa recuperação seja com o player Parado,com um efeito contínuo e se movimentar-se ou entrar em Battle, a magia Para. Já vi parecidos com DBO e tudo mais, mas não consegui Migrar. PS: A Magia não recupera a mana instantaneamente, e sim por TICKS. Obrigado Pessoal! <3
  16. Eae pessoal, no meu projeto de dragon ball como poucos conhecem, eu estou tentando utilizar o estilo de spells com troca de outfit, como mostra o gif abaixo. Acham que vale a pena?
  17. Olá xTibianos, eu tenho uma dúvida pequena, queria saber se existe alguma função onde o player fica parado quando executa a spell/talkaction, e que esse tempo seja configurável, existe algo assim?
  18. Script : Spells e versao 8.54 Pokemon Dash Advanced (1.0) Sou nivel medio de experience Bom... Eu ja tenho as Mega evolucaos 100% (so de 15 pokemons) mais falta 1 error aqui que Nao sei como faz vai na imagem e vei o ataque que tem Charizard para poder faz Mega Despois ele tranforma O que eu quero faz e do que o ataque que eu vo usar Colocar esse imagem
  19. Script : Spells e versao 8.54 Pokemon Dash Advanced (1.0) Sou nivel medio de experience
  20. Não sei se é a área certa, mas queria saber se alguns de vocês tem videos ou gifs dessas spells da PXG, porque estou refazendo os moves do meu servidor, e preciso ver como são essas "novas" magias. Conforme eu for vendo mais irei postando aqui. No momento são essas: Flame Burst Brine Aeroblast Gunk Shot Shockwave Flash Bulldoze Earth Power Dig
  21. Queria saber como faço uma magia que saia hemorragia assim que o player for atacado, ou quando ele atacar o monstro fica subindo um tanto de dano do monstro.
  22. Olá galerinha, Suave? Hoje eu vim pedir a vocês para colocar uma formula de MagicLevel nesta Spell: e nesta próxima Spell gostaria que adicionassem um 'BUFF', está spell e como a 'utura' ou 'utura gran' ela heala aos poucos só que quando o jogador se mover e ela estiver ativada o 'BUFF' desativa a spell e manda a mensagem 'utura foi desativada'. [spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_REGENERATION) setConditionParam(condition, CONDITION_PARAM_SUBID, 1) setConditionParam(condition, CONDITION_PARAM_BUFF_SPELL, 1) setConditionParam(condition, CONDITION_PARAM_TICKS, 20 * 1000) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, 200) setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end *Então é isso espero que me ajudem e agradeço desde já a intenção e a força de vontade.
  23. Boa noite galera, tudo bem? Venho compartilhar com vocês hoje um sisteminha que desenvolvi para as magias do tipo "shoot'. Foi feito inicialmente para funcionar com magias que usam a posição do mouse como referência e adaptei para cipclientes poderem usar em runas e magias de tiro. O funcionamento do sistema é simples: Ao usar uma runa ou castar uma magia "shoot" com esse sistema criaturas e objetos no caminho irão interferir na trajetória, isto é, receberão o combate no lugar do alvo inicial. Ilustrativo: Bom, vamos ao que interessa. Vá em data/lib/ e crie um novo arquivo chamado spellsLib.lua (pode-se utilizar também o arquivo spells.lua contido em data/spells/lib). Dentro dele inclua as seguintes funções: IsWalkable (by Nord) GetPositionsAround (by Skulls) CheckInterceptions (by Skulls) SetSpellTarget (by Skulls) Feito isso, está tudo configurado. Basta agora adicionar às magias que você queira. Abra o .lua da magia, por exemplo death strike.lua. Lá você terá, entre outras coisas, a função onCastSpell como abaixo: function onCastSpell(cid, var) return doCombat(cid, combat, var) end Substitua isso por: local range = 5 function onCastSpell(cid, var) if getCreatureTarget(cid) == 0 then doPlayerSendCancel(cid, "Please choose a target.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end if getDistanceBetween(getPlayerPosition(cid), getCreaturePosition(getCreatureTarget(cid))) > range then doPlayerSendCancel(cid, "Target is not reachable.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false endreturn doCombat(cid, combat, setSpellTarget(cid, var)) end Retire qualquer tag que esteja relacionada a target (needtarget, casterTargetOrDirection, etc) Pronto, a sua magia "Exori Mort" será parada por criaturas ou obstáculos (qualquer item que não seja móvel). Bom é isso, espero que gostem. Queria agradecer ao @@nightwolf e ao @Caronte pelas ajudas tentando entender alguns parâmetros e me dando algumas luzes. Ao @@nightwolf, ainda, um agradecimento especial pela maravilhosa lib dele *-*. Abraços, Um exemplo de magia que utiliza esse sistema: http://www.xtibia.com/forum/topic/239460-exori-grab-vis/ @@Daniel, na verdade move pra mim pra Downloads Spells, acho que seria mais correto.
  24. Bom dia pessoal, Recentemente estou tendo um problema com meu servidor de WODBO ( Dragon Ball Z TIBIA), ele fica gerando um LOG de erro no TFS e após algumas horas aberto normalmente, ele fecha. Já verifiquei as spells, monstros, está tudo ok, gostaria de saber o motivo deste erro, também uma possível solução. Imagem do erro: Obrigado pela atenção.
  25. Bom Dia Xtibia!!! eu estou com uma grande dificuldade para editar essa magia, Nesse Script contem 2 spells, Spells Free, e Spells Vip, Sendo que a spells free basta o player compra promotion que o player poderá usar a magia, e a vip o player terá que fazer uma quest e assim que ele termina de mata o monstro a magia ira involuir para VIP, eu queria que a Vip não fosse ativa pela quest, mais sim quando adquirisse Premium Account alguém poderia editar pra mim por favor? to a 2 dias tentando fazer isso infelizmente não estou conseguindo Aqui esta o script, nome da spells = Housenka local config = { seconds = 10, storage = 10, msg = "Você precisa aguardar %d segundos para usar essa magia novamente.", mana = 2400, semMana = "Você não tem mana suficiente.", } local function useAgain(cid) setPlayerStorageValue(cid, config.storage, 2) return TRUE end local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 52) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -4.2, -150, -4.6, -250) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 52) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -4.2, -150, -4.6, -250) local combat10 = createCombatObject() setCombatParam(combat10, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat10, COMBAT_PARAM_EFFECT, 52) setCombatFormula(combat10, COMBAT_FORMULA_LEVELMAGIC, -3.6, -32, -3.8, -32) local combat20 = createCombatObject() setCombatParam(combat20, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat20, COMBAT_PARAM_EFFECT, 43) setCombatFormula(combat20, COMBAT_FORMULA_LEVELMAGIC, -3.6, -32, -3.9, -32) arr1 = { {0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr2 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0}, } arr10 = { {0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr20 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area10 = createCombatArea(arr10) local area20 = createCombatArea(arr20) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat10, area10) setCombatArea(combat20, area20) function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storage) == -1 then setPlayerStorageValue(cid, config.storage, os.time()-config.seconds) end if config.seconds-(os.time()-getPlayerStorageValue(cid, config.storage)) > 0 then doPlayerSendCancel(cid, string.format(config.msg, config.seconds-(os.time()-getPlayerStorageValue(cid, config.storage)))) return true end if getPlayerMana(cid) >= config.mana then doPlayerAddMana(cid, -config.mana) setPlayerStorageValue(cid, config.storage, os.time()) if getPlayerStorageValue(cid, 10007) >= 1 then addEvent(doCombat, 000, cid, combat1, var) addEvent(doCombat, 600, cid, combat2, var) else addEvent(doCombat, 000, cid, combat10, var) addEvent(doCombat, 700, cid, combat20, var) end else doPlayerSendCancel(cid, config.semMana) doSendMagicEffect(getPlayerPosition(cid),2) end return true end
×
×
  • Criar Novo...