Ir para conteúdo
Banner com Efeitos

xWhiteWolf

Héroi
  • Registro em

  • Última visita

Tudo que xWhiteWolf postou

  1. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    callstack overflow é quando você faz alguma coisa tendendo a infinito.. tipo while x < 5 do x = 3 end ele vai ficar executando infinitamente já que ele executa enquanto X for menor que 5 e sempre vai fazer x = 3. O server tá falando que é em movements em algum script de StepIn ou StepOut. Procura os ultimos scripts de movements que você adicionou e checa se tem algum problema nelas
  2. O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Scripting → CreatureScripts, GlobalEvents e MoveMents" Para: "OTServ → Scripting → Tutoriais de Scripting"
  3. então, mas no caso essa função creatureEvent foi justamente a função q ele criou que eu disse q era complexa auheuhuha eu não sei mexer nisso aí não
  4. quem fica é quem usa ou quem foi atingido?
  5. só uma correção: é sempre wand (mesmo que seja rod você coloca wand) e o shootType é o tipo de efeito que sai da wand e que vai até o player
  6. o jeito que eu sei fazer daria erro caso o player morresse :/ não vai ser possível
  7. você entendeu como que mexe nesse script ou quer que eu faça um mini tutorial? Você quer que paralyze 100% de forma que o cara não possa andar ou quer que ele só fique lento?
  8. vai em data/lib/constant e cria lá
  9. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Scripting → Geral" Para: "OTServ → Suporte OTServ → Suporte de Scripts"
  10. O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Suporte OTServ → Suporte de OTServ Geral" Para: "OTServ → Suporte OTServ → Suporte de WebSites"
  11. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    function onUse(cid, item) local magia = "Target Spell" if getPlayerLearnedInstantSpell(cid, magia) then doPlayerSendTextMessage(cid,25,"You are already learned this spell.") elseif doPlayerLearnInstantSpell(cid, magia) then local pos = getCreaturePosition(cid) doSendMagicEffect(pos, 0) doPlayerSendTextMessage(cid,19,"By switching the lever you agreed the terms of the pact and received the powers of "..magia..".") end end Pra editar é só colocar o nome da magia ali em local magia. Se você quiser fazer que se aprender uma não pode aprender a outra é só substituir isso: por isso local magia2 = "Nome da segunda magia" if getPlayerLearnedInstantSpell(cid, magia) and getPlayerLearnedInstantSpell(cid, magia2) then Lembre-se que é pra usar o nome da spell e não as palavras que você usa pra conjurar.
  12. local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 48) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 8) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end local pisos = {} function onCastSpell(cid, var) local config = { tempo = 4 } local pos = getThingPos(cid) table.insert(pisos, getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid) local list = tonumber(#pisos) local position = { [1] = {x = pos.x, y = pos.y - 1, z = pos.z}, [2] = {x = pos.x + 1, y = pos.y - 1, z = pos.z}, [3] = {x = pos.x + 1, y = pos.y, z = pos.z}, [4] = {x = pos.x + 1, y = pos.y + 1, z = pos.z}, [5] = {x = pos.x, y = pos.y + 1, z = pos.z}, [6] = {x = pos.x - 1, y = pos.y + 1, z = pos.z}, [7] = {x = pos.x - 1, y = pos.y, z = pos.z}, [8] = {x = pos.x - 1, y = pos.y - 1, z = pos.z}, [9] = {x = pos.x, y = pos.y, z = pos.z}, } local id = { [1] = 8336, [2] = 8341, [3] = 8337, [4] = 8339, [5] = 8335, [6] = 8340, [7] = 8338, [8] = 8342, [9] = 231 } local msg = { [1] = "Hakke Rokujuuyonshou", [2] = "Ninshou", [3] = "Yonshou", [4] = "Hashou", [5] = "Juurokushou", [6] = "Sanjuunishou", [7] = "ROKUJUUYONSHOU!", } function canEffect(pos, pz, proj) -- Night Wolf based on Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTilePzInfo(pos) and not pz then return false 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 RemoveItem(cid, i) local tile = getTileItemById(position[i], id[i]) if tile.uid > 0 and i < #id then doRemoveItem(tile.uid) elseif tile.uid > 0 and i == #id then doTransformItem(tile.uid, pisos[list]) end end for i = 1, #id do if canEffect(position[i]) then doCreateItem(id[i], 1, position[i]) addEvent(RemoveItem, config.tempo*1000, cid, i) end end local parameters = {cid = cid, var = var, combat1 = combat1} for k = 1, #msg do addEvent(function() if isPlayer(cid) then addEvent(onCastSpell1, 1, parameters) doCreatureSay(cid, msg[k], 20, false, 0, pos) end end, 1 + ((k-1) * 500)) end return true end <instant name="Criar item embaixo de vc como se fosse efeito" words="forum" lvl="23" mana="25" range="1" needtarget="1" exhaustion="1000" blockwalls="1" needlearn="0" event="script" value="especiais/forum.lua"> </instant> Antes de mexer em qualquer coisa testa essa daqui do jeito que tá que se for isso mesmo que você queria eu te ensino a mexer.
  13. function onUse(cid, item, frompos, item2, topos) if item2.itemid == 8921 then doTransformItem(item2.uid, 2191) doRemoveItem(item.uid, 1) doSendMagicEffect(frompos, 7) else doPlayerSendCancel(cid, "You can't use this item here.") end return true end em actions.xml: <action itemid="2263" script="wand.lua"/> Lembre-se que o id do item que será usado tem que ser algo que dê pra dar use with (assim como as potions e runas)
  14. aquilo foi pra responder a dúvida do @kbpaulo... eu não sei arrumar esse script seu aí não
  15. Errado meu amigo, quando vc seta o valor de um storage como sendo os.time() você está na verdade falando que o novo valor daquele storage vai ser o tempo atual em unix time (segundos que se passaram desde 1 de janeiro de 1970) e o storage não vai diminuir de valor, o valor é fixo. Oque dá pra fazer é comparar qnd for usar novamente se o tempo atual naquele momento é maior que o tempo salvo no storage (oque obviamente vai ser) + a soma de um intervalo de tempo. Ex: Quero um script que só possa ser usado a cada 15 segundos: if os.time() - getPlayerStorageValue(cid, 62164) >= 15 then setPlayerStorageValue(cid, 62164, os.time()) RESTO DO SCRIPT AQUI ​ end @Topic esse script foi feito de uma forma muito, mas MUITO complexa. Aparentemente ele criou uma nova função pra zerar o storage depois de um determinado tempo mas se você diz que não tá funcionando então deve ser algum erro de lógica que mudou com o passar do tempo; Usa esse script aqui http://www.tibiaking.com/forum/topic/28522-pergaminho-de-exp-com-tempo/ que é a mesma coisa, em menos linhas
  16. cara, acho que você tá meio confuso.. esse negócio que vc postou aparentemente não tem nada a ver com os tiles que serão criados.. mas já te adianto que o script tem que ser feito usando duas tabelas local pos = { pos1 pos2 pos3 . . . posn } local id = { id1 id2 id3 . . . idn } e fazer um for de i = 1, #id local item = doCreateItem(id[1], 1, pos) addEvent(doRemoveItem, tempo, item, 1) end
  17. não é tão simples assim, se um deles morrer ele vai permanecer com o nome do inimigo. Eu precisaria ter a função na minha source pra testar e tentar achar uma forma de fazer isso sem bugar.
  18. Faz falta ter a source do servidor uhauhauha, vlw aí.
  19. mudar nome é complicado auhahua não tem nenhuma função em Lua que faça isso, se não me engano dá pra adicionar a SetCreatureName na source e usar ela mas acho que aí já ficaria zoado demais
  20. vc vai querer só pra bow/crossbow com determinadas flechas ou diversos tipos de arma?
  21. Olha, até o dia 8 de Setembro eu to indisponível pra tentar fazer um script desse porte mas até lá eu vou ir pensando numa forma de fazer e assim que começar minhas férias (dia 9) eu começo a trabalhar nele. Se eu conseguir eu posto aqui ;]
  22. as tasks são aleatórias? E a exp é igual independente da dificuldade e do tamanho?
  23. se vc quiser que hite 10* o ml deixe assim: setCombatFormula(combat, type,-1, 0, -1, 0, 0, 0, 10, 10 ) DANO MINIMO: (LEVEL * A + ML * B) * C + D DANO MAXIMO: (LEVEL * K + ML * L) * M + N resulta numa fórmula assim: setCombatFormula(combat, type,C, D, M, N, A, K, B, L ) Usei um conversor de fórmulas pra te dar essa resposta, pode ser que esteja errado mas não custa tentar haha
  24. local tempo = 5 local pos = {} function onCastSpell(cid, var) ------- OUTFIT ----------- addEvent(doSetCreatureOutfit, 1, variantToNumber(var), getCreatureOutfit(cid), (tempo * 1000) - 1) doSetCreatureOutfit(cid, getCreatureOutfit(variantToNumber(var)), tempo * 1000) --------- TELEPORTE ------------ addEvent(function() if isPlayer(cid) and isPlayer(variantToNumber(var)) then table.insert(pos, getThingPos(cid)) table.insert(pos, getThingPos(variantToNumber(var))) end end, 1000*tempo) addEvent(function() if isPlayer(cid) and isPlayer(variantToNumber(var)) and #pos > 1 then doTeleportThing(cid, pos[2], true) doSendMagicEffect(pos[2], 10) doSendMagicEffect( pos[1], 10) doTeleportThing(variantToNumber(var), pos[1], true) table.remove(pos, 2) table.remove(pos, 1) end end, (1000*tempo) + 1) doSendMagicEffect(getThingPos(cid), 10) addEvent(doSendMagicEffect, 1, getThingPos(variantToNumber(var)), 10) addEvent(doTeleportThing, 1, variantToNumber(var), getThingPos(cid)) doTeleportThing(cid, getThingPos(variantToNumber(var))) return true end prontinho x)

Informação Importante

Confirmação de Termo