Ir para conteúdo

xWhiteWolf

Héroi
  • Registro em

  • Última visita

Tudo que xWhiteWolf postou

  1. não cara... needtarget="1" params="1" indica que é necessário ter um target (foco da magia) e que esse target vai ser por param ("nome do player). Essa parte tá certa, eu testei a spell aqui antes de te enviar.. não é possível haha. Copia o script e tag nova e testa dnv.
  2. digita henge no jutso "nome do player e tem que estar no máximo a 3 sqm's de distância... se vc quiser mais longe muda o range
  3. você quer dizer uma spell que dê 3 ou mais hits seguidos? É por addEvent que se faz
  4. testa antes de falar alguma coisa cara
  5. vou fazer e colocar um máximo que o player pode stackar pra evitar que o cara deixe no bot stackando infinitos dodges hahaha.. vou colocar 20 por padrão
  6. procura o id do item em movements.xml.. se não tiver, adiciona e segue o padrão dos outros itens
  7. oque eu perguntei é oque vc quis dizer com essa %... é tipo 30% de chance de esquivar (não tomar dano) e remover 1 carga da spell ou seria algo como esquivar apenas 30% do dano?
  8. não entendi oque vc quis dizer com isso: se o player usar 20 vezes o kawarimi e depois tomar dano ele irá se esquivar ou absorver 20 danos, porém terá uma % para não ficar muito apelativo.
  9. algum erro no console? instala a OTAL e vê se resolve esse problema
  10. no caso vc precisaria ter essa função da OTAL, testa assim e vê se resolve 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 onCastSpell(cid, var) local pos = getPlayerPosition(cid) local maxsummon = 3 local summons = getCreatureSummons(cid) local possible = { {x = pos.x, y = pos.y - 2, z = pos.z, stackpos = 0}, {x = pos.x, y = pos.y + 2, z = pos.z, stackpos = 0}, {x = pos.x - 2, y = pos.y, z = pos.z, stackpos = 0}, {x = pos.x + 2, y = pos.y, z = pos.z, stackpos = 0}, {x = pos.x - 2, y = pos.y - 1, z = pos.z, stackpos = 0}, {x = pos.x + 2, y = pos.y - 1, z = pos.z, stackpos = 0}, {x = pos.x + 2, y = pos.y + 1, z = pos.z, stackpos = 0}, {x = pos.x - 2, y = pos.y + 1, z = pos.z, stackpos = 0}, {x = pos.x - 1, y = pos.y - 2, z = pos.z, stackpos = 0}, {x = pos.x + 1, y = pos.y - 2, z = pos.z, stackpos = 0}, {x = pos.x + 1, y = pos.y + 2, z = pos.z, stackpos = 0}, ---- {x = pos.x, y = pos.y - 1, z = pos.z, stackpos = 0}, {x = pos.x, y = pos.y + 1, z = pos.z, stackpos = 0}, {x = pos.x - 1, y = pos.y, z = pos.z, stackpos = 0}, {x = pos.x + 1, y = pos.y, z = pos.z, stackpos = 0}, {x = pos.x - 1, y = pos.y + 1, z = pos.z, stackpos = 0}, {x = pos.x - 1, y = pos.y - 1, z = pos.z, stackpos = 0}, {x = pos.x + 1, y = pos.y - 1, z = pos.z, stackpos = 0}, {x = pos.x + 1, y = pos.y + 1, z = pos.z, stackpos = 0}, ------ {x = pos.x - 1, y = pos.y + 2, z = pos.z, stackpos = 0} } summonpos = 0 if(table.maxn(summons) < maxsummon) then for i = 1, #possible do if isWalkable(possible[i], true, false, true) then summonpos = possible[i] end end if summonpos ~= 0 then doConvinceCreature(cid, doCreateMonster("Clone Spider", summonpos)) doSendMagicEffect(pos, 12) doSendMagicEffect(summonpos, 10) doCreatureSay(cid, "Volatile Spiderling!", 20) else doPlayerSendCancel(cid, "There is not enough room.") doSendMagicEffect(pos, 2) return true end else doSendMagicEffect(pos, 2) doPlayerSendCancel(cid, "You cannot summon more than "..maxsummon.." creature(s).") end end
  11. essa é a unica parte que não é possivel : Após isso, o Target ficará com um Efeito Death (como um poison) que dará o Dano de Level *1, 10 vezes (1 por segundo). As conditions tem que ser declaradas no começo do script (fora do callback) e o jogo só consegue pegar o seu level dentro do callback (quando a magia é executada), ou seja, não dá pra você criar nenhuma condition que dependa de algo do player
  12. não dá pra mim prestar atenção em todos os tópicos haha, as vezes eu fico ausente por uns dias e se a pessoa não dá up eu não consigo ver que ela postou aquilo
  13. cria a spell que vai encher a vida/mana local config = { health = 300, mana = 300 } function onCastSpell(cid, var) if getCreatureMaster(cid) then local master = getCreatureMaster(cid) if isInParty(master) then local members = getPartyMembers(getPlayerParty(master)) local health = math.ceil( config.health / #members ) local mana = math.ceil( config.mana / #members ) for i = 1, #members do doCreatureAddHealth(members[i], health) doCreatureAddMana(members[i], mana) doSendAnimatedText(getCreaturePosition(members[i]), "+"..health, 18) doSendMagicEffect(getCreaturePosition(members[i]), 12) end else doCreatureAddHealth(master, config.health) doCreatureAddMana(master, config.mana) doSendAnimatedText(getCreaturePosition(master), "+"..config.health, 18) doSendMagicEffect(getCreaturePosition(master), 12) end end return true end declara ela e coloca pra só monstros poderem usar: <instant name="healmaster" words="healmaster" lvl="0" mana="0" prem="0" aggressive="0" exhaustion="1500" needlearn="1" event="script" value="especiais/healmaster.lua"> </instant> agora vá no xml do monstro que vc quer que solte essa magia e embaixo de <defenses armor="7" defense="5"> coloque isso daqui: <defense name="healmaster" interval="10000" chance="99" duration="100"> </defense> No final, se seu monstro não usar nenhuma outra magia de defesa, deve ficar assim: <defenses armor="7" defense="5"> <defense name="healmaster" interval="10000" chance="99" duration="100"> </defense> </defenses> esse /defense fecha a magia e o /defenses fecha a armor lá em cima
  14. local condition = createConditionObject(CONDITION_MUTED) setConditionParam(condition, CONDITION_PARAM_TICKS, 2000) local chance = 60 function silence(tar, text) if(isCreature(tar) == true) then doSendAnimatedText(getCreaturePosition(tar), text, 215) doAddCondition(tar, condition) end return true end function onCastSpell(cid, var) local tar = getCreatureTarget(cid) if hasCondition(tar, CONDITION_MUTED) == true then return false else if isCreature(tar) == true then if math.random(1,100) <= chance then local text = "SILENCE" silence(tar, text) else local text = "MISS" doSendAnimatedText(getCreaturePosition(tar), text, 215) end else if isPlayer(cid) == true then doPlayerSendCancel(cid, "Silence can be cast only on other creatures.") end return false end end return true end <instant name="Narutinho" words="naruto silence" lvl="300" mana="200" prem="1" range="4" needtarget="1" exhaustion="1000" needlearn="0" event="script" value="especiais/silencenaruto.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="3"/> <vocation id="4"/> </instant>
  15. -- =============== COMBAT VARS =============== -- Areas/Combat for 100ms local combat1_Ice_Area_Hit = createCombatObject() setCombatParam(combat1_Ice_Area_Hit, COMBAT_PARAM_EFFECT, 5) setCombatParam(combat1_Ice_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat1_Ice_Area_Hit,createCombatArea({ {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, 1, 1, 1, 3, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 1, 1, 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}, } )) setCombatFormula(combat1_Ice_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) -- Areas/Combat for 200ms local combat2_Ice_Area_Hit = createCombatObject() setCombatParam(combat2_Ice_Area_Hit, COMBAT_PARAM_EFFECT, 5) setCombatParam(combat2_Ice_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat2_Ice_Area_Hit,createCombatArea({ {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, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 2, 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}, })) setCombatFormula(combat2_Ice_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) -- Areas/Combat for 300ms local combat3_Ice_Area_Hit = createCombatObject() setCombatParam(combat3_Ice_Area_Hit, COMBAT_PARAM_EFFECT, 5) setCombatParam(combat3_Ice_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat3_Ice_Area_Hit,createCombatArea({ {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, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 2, 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}, })) setCombatFormula(combat3_Ice_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) -- Areas/Combat for 500ms local combat4_Ice_Area_Hit = createCombatObject() setCombatParam(combat4_Ice_Area_Hit, COMBAT_PARAM_EFFECT, 5) setCombatParam(combat4_Ice_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat4_Ice_Area_Hit,createCombatArea({ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 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, 2, 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}, })) setCombatFormula(combat4_Ice_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60) local function RunPart(c,cid,var,dirList,dirEmitPos,startDir) -- Part if (isCreature(cid)) then doCombat(cid, c, var) if (dirList ~= nil) then -- Emit distance effects local i = 2; while (i < #dirList) do if (startDir == 0) then -- N doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1]) elseif (startDir == 2) then -- S doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i],y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1]) elseif (startDir == 1) then -- E doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList[i],z=dirEmitPos.z},dirList[1]) else -- W / Something weird happened doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i+1],y=dirEmitPos.y-dirList[i],z=dirEmitPos.z},dirList[1]) end i = i + 2 end end end end function onCastSpell(cid, var) local startPos = getCreaturePosition(cid) local startDir = getCreatureLookDirection(cid) addEvent(RunPart,200,combat1_Ice_Area_Hit,cid,var) addEvent(RunPart,350,combat2_Ice_Area_Hit,cid,var) addEvent(RunPart,500,combat3_Ice_Area_Hit,cid,var) addEvent(RunPart,600,combat4_Ice_Area_Hit,cid,var) return true end <instant name="ahahahaa" words="testinho" lvl="16" mana="500" prem="1" range="3" direction="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="especiais/hahaha.lua"> <vocation id="3"/> <vocation id="7"/> </instant>
  16. <instant name="Nome Qualquer" words="henge no jutso" lvl="23" mana="25" range="4" needtarget="1" params="1" exhaustion="1000" blockwalls="1" needlearn="0" event="script" value="especiais/henge.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/></instant> function onCastSpell(cid, var) doSetCreatureOutfit(cid, getCreatureOutfit(variantToNumber(var)), 5000) return true end
  17. eu to meio atolado de coisa da facul, esse fds eu tento fazer pra você.. é só fazer uma spell pra monstro que use master = getCreatureMaster(cid) e adicione 300 de vida e mana pro master
  18. depende do seu script de jetsky ué haha, posta ele aqui que eu tento analisar
  19. não ficaria muito apelão se ficar 5 caras em party e cada um sumonar 3 desses? Vida infinita huehueuh
  20. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    function onUse(cid, item, fromPosition, itemEx, toPosition) local formula_min = ((getPlayerLevel(cid)*0.7 + getPlayerMagLevel(cid)*3) * 6.0) local formula_max = ((getPlayerLevel(cid)*0.7 + getPlayerMagLevel(cid)*3) * 7.0) if itemEx.uid == cid then if getPlayerLevel(cid) >= 24 and getPlayerMagLevel(cid) >= 4 then doCreatureAddHealth(cid, math.random(formula_min, formula_max)) doSendMagicEffect(getPlayerPosition(cid), 12) else doPlayerSendCancel(cid, "You don't have level 24 or magic level 4.") end elseif isPlayer(itemEx.uid) then doCreatureAddHealth(itemEx.uid, math.random(formula_min, formula_max)) doSendMagicEffect(getPlayerPosition(itemEx.uid), 12) end return true end
  21. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    porque não? auhauh é só fazer uma checagem no itemEx.uid e substituir todos os cid's por itemEx.uid haha posta o script aqui que eu te ajudo
  22. só fazer edição na source do 8.4 e adicionar a função onStatsChange que vai funcionar haha
  23. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    vish kk nesse caso teria que passar ela pra actions pra resolver esse problema haha
  24. ficou muito ambígua a sua frase, summon que ataque normal o monstro??? 10 em 10 segundos encha 300 de vida e mana de quem?
  25. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    edita o script pra se itemEx.itemid == iddofogoroxo ele não permitir colocar a magic wall, simples assim

Informação Importante

Confirmação de Termo