Ir para conteúdo
Banner com Efeitos

xWhiteWolf

Héroi
  • Registro em

  • Última visita

Tudo que xWhiteWolf postou

  1. exatamente meu caro.
  2. não vai ser por event, vai ser por spell mesmo. coloca no attack lá a linha que eu falei
  3. eu não sei porque não to acostumado com tanta tabela, acho melhor vc pedir ajuda pro Max porque eu to ficando confuso só de olhar kkk eu faria de outra forma: [iD do item] = id dele com a transformação. pegar o item na posição, se for [iD do item] e pegar a gema na outra posição e for capaz de remover ela, então transform o [id do Item] pra id com transformação. Faria isso dividindo por posições já que vc mesmo falou q seriam 4 locais
  4. local config = { cooldown = 10, -- tempo entre uma magia e outra time = 10, -- tempo em segundos que ficará healando percent = 5, --- porcentagem da vida que cura storage = 19330, effect = 12, --- efeito que vai sair mana = 40 -- quanto custa de mana } function onCastSpell(cid, var) if getCreatureMana(cid) >= config.mana then if os.time() - getPlayerStorageValue(cid, config.storage) >= config.cooldown then doPlayerSetStorageValue(cid, config.storage, os.time()) local i = 0 doCreatureAddMana(cid, -config.mana, 0) while i < config.time do i = i+1 addEvent(function() if isCreature(cid) then if getCreatureMaxHealth(cid) ~= getCreatureHealth(cid) then local lifedraw = math.ceil(getCreatureMaxHealth(cid) * (config.percent)/100) local pos = getPlayerPosition(cid) doCreatureAddHealth(cid, lifedraw, 1) doSendAnimatedText(pos, "+"..lifedraw , TEXTCOLOR_GREEN) doSendMagicEffect(pos, config.effect) end end end, 1000*i) end else doPlayerSendCancel(cid, "Your Mass Healing is at cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, config.storage))).." seconds.") end else doPlayerSendCancel(cid, 36) end return false end as duas estão nesse script, pra conseguir a segunda é só aumenta a % pra 50 e colocar time = 1 daí é só colocar no spells.xml <instant name="NOME DA MAGIA" words="PALAVRAS PRA CONJURAR" lvl="40" mana="0" prem="1" aggressive="0" exhaustion="1500" needlearn="0" event="script" value="especiais/healingtime.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="4"/> <vocation id="8"/> </instant> OBS: lembra que se vc quiser ter as duas ao mesmo tempo no server vc tem que duplicar o script e mudar o storage. OBS2: Como a magia tem return false, ao usar ela é como se vc n tivesse usado então pra remover mana vc tem que editar pelo próprio script e não pela linha do spells.xml
  5. o for 1,15 tá executando tudo que tá dentro dele 15 vezes.. na primeira ele faz isso: getitemfire = getThingfromPos(chancepos[1].posignitum) ou seja, ele pega a coisa que tá nessa posição. Porém, na segunda vez já não tem nada nessa posição então o getitemfire vai resultador nil (valor nulo). e todas as vezes seguintes tb vão resultar nulo. Você tem que fazer uma condicional if getitemfire ~= 0 então vale tudo a seguir
  6. aparentemente você migrou de server e os items.xml estavam configurados para a versão antiga. [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:29] [Warning - Items::loadFromXml] Unknown key value fieldAbsorbPercentFire dá CTRL+F no items.xml e muda todos os items que tiverem type = rune e procura fieldAbsorbPercentFire << isso tá errado, dá ctlr F em PercentFire e você vai achar qual é o jeito certo de se colocar e muda nesse daí q tá errado.
  7. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    function onAttack(cid, target) if(not isCreature(cid)) then return false end if not isSummon(target) and not isMonster (target) and (isPlayer (target)) then if getCreatureSummons(target) ~= 0 then doMonsterSetTarget(cid, getCreatureSummons(target)[1]) end end return true end PS: use onCombat ao invés de onAttack porque daí se o monstro usar uma magia em área vai te acertar.
  8. é só fazer uma spells bem danosa com doCreatureSay(pra falar a frase que vc quer) no function oncastSpell, daí faz um addEvent do doCombat pra magia ficar do jeitinho q vc quer, feito isso é só colocar pro monstro usar essa spell. . Coisas úteis: 1) Uma spell qualquer 2) adicionar essa linha embaixo de function onCastSpell doCreatureSay(cid, "seu texto aqui ", type) 3) saber que o type de fala dos monstros é o 19, e o grito dos monstros é o 20. TALKTYPE_MONSTER = 19 TALKTYPE_MONSTER_YELL = 20 Feito isso vc vai ter que fazer o addEvent: addEvent(function() if isCreature(cid) then doCombat(cid, combat, var) end end, 5000) 5000 seriam os milisegundos entre a fala e o dano. 1000 milisegundos = 1 segundo. Se vc quiser 15 segundos coloque 15000 ali. Agora sua magia final ficaria assim: XXXX XXX XX X X Xx ====>>>> aqui são as coisas que vc for editar, area, dano, conditions, etc. x X X X function onCastSpell(cid, var) doCreatureSay(cid, "I WILL UNLEASH THE FURY OF HELL!", 20) addEvent(function() if isCreature(cid) then doCombat(cid, combat, var) end end, 5000) return false end agora é só adicionar no spells.xml e colocar needlearn = "1" para que os players não tenham acesso. Feito isso é só adicionar no seu monstro essa linha: <attack type="instant" name="NOME DA MAGIA AQUI" exhaustion="2400" cycleticks="5000" probability="70"/> em name é o nome da magia, NOME MESMO, não a palavra que vc usa pra castá-la exaustion é a exaust que o player vai ter ao usar a magia (significa q ele vai usar ela e ficar 2,4 segundos sem fazer nada em seguida. cycleticks = não faço a mínima ideia probability = probabilidade de ele soltar essa magia. Acho q isso é tudo, tenta fazer oque eu falei e se não der certo me avisa.
  9. http://www.tibiaking.com/forum/topic/33675-heal-aura-system/ pede pro dono do tópico ajustar do jeito que vc quer, é só colocar um math.random pros efeitos (colocar dentro da function) e trocar a storage e o nome. Daí vc seta a condition que vc quer que adicione.
  10. é uma talkaction igual a /i só que qnd tem os parameters nome e dedicatória ela faz duas coisas: nome: setItemName(uid) dedicatória: doSetItemSpecialDescription(uid, desc) lembrando que se vc colocar só setItemName vai mudar o nome todo do seu item, se vc quiser adicionar só o nome do player faça assim: setItemName(uid, ""..getPlayerName(cid).."\'s "..getItemName(uid).."") e com a description, bom, vai depender doque vc quiser.. doSetItemSpecialDescription(uid, "You did it") isso vai deixar uma mensagem no item escrito: You did it MAS... você tb pode pegar a descrição atual e adicionar uma linha dessa forma: doSetItemSpecialDescription(uid, ""..getItemSpecialDescription(uid).."\nYou did it.") assim ele vai pegar a descrição atual do item e adicionar na linha debaixo You did it. (o \n que faz com que seja na linha debaixo)
  11. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    vai ser dificil achar alguém que saiba te responder isso... eu mesmo to no ramo de tibia a uns 7 anos e nunca mexi com coisa do 7.4
  12. que isso cara kk fico feliz em ter ajudado :]
  13. qq isso tem a ver com meu tópico?? em todo caso é só ir no login.lua do creaturescripts e colocar isso antes do ultimo return true: if isPlayer(cid) then local slowSpeed = 100 doChangeSpeed(cid, -getCreatureSpeed(cid)+slowSpeed) end
  14. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    ainda não entendi a ideia do script mas acho que com um if vc arruma ele. Se você me explicar, talvez eu faça pra você
  15. cara, aquilo que eu te passei era pra vc substituir no seu script;;; ficando assim: local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 100, 120, 120, 150) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) setConditionParam(condition, CONDITION_PARAM_SPEED, -500) setConditionFormula(condition, -0.9, 1, -0.9, 1) setCombatCondition(combat, condition) local arr = { {0, 0, 0, 0, 0}, {0, 1, 1, 1, 0}, {0, 1, 2, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 0, 0, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) if getPlayerStorageValue(cid, 378378) >=3 then doCombat(cid, combat, var) return true else doPlayerSendCancel(cid, "You need to have at least 3 resets to cast this spell.") return false end end toda vez que quiser editar uma spell pra poder usar só com X resets vc só substitui o functionOnCastSpell por esse daí que eu te passei. Mas mantém a estrutura da spell... se não, não vai funcionar né... auheuhauheuh
  16. pensei que vc queria igual ao ignite do lol ué auheuhuha, diminui o cooldown ou coloca 0 se vc quiser sem. Eu prefiri fazer por cooldown porque qnd vc tenta colocar um exhaust muito grande vc acaba atrapalhando outras magias que sejam do mesmo tipo, daí se eu quisesse usar uma spell de ataque que não fosse o ignite eu ia ter que esperar o exhaust da magia do ignite passar.
  17. tem vários jeitos de arrumar mas o mais simpleszinho seria adicionar "or" no if. local config = { day1 = "Friday", day2 = "Monday", monster = "Demon", pos = {x=166, y=40, z=7}, -- Posição aonde sera criado o teleport msg_open = "The Boss invade.", -- mensagem ao abrir o teleport } function onTimer() if (os.date("%A") == config.day1) or (os.date("%A") == config.day2) then doSummonCreature(config.monster, config.pos) doBroadcastMessage(config.msg_open) addEvent(doBroadcastMessage) end return true end
  18. function onStepIn(cid, item, position, fromPosition) local castle_one_name = "Ratim Bum" -- Nome do castelo 1 local storages = {154154,54321,123123} -- Storages ( se vc eh iniciante, deixe como est&#225;...) local sto_ativ = getGlobalStorageValue(storages[2]) position = getCreaturePosition(cid) if isPlayerGuild(cid) == TRUE then if sto_ativ == 1 or sto_ativ == -1 then guildname = getPlayerGuildName(cid) guild = getPlayerGuildId(cid) guild_sto = getGlobalStorageValue(storages[3]) if guild ~= guild_sto then doBroadcastMessage("O(a) "..getCreatureName(cid).." estest&#225; tentando invadir o castelo "..castle_one_name.." para a guild \""..guildname..".", 22) doSendMagicEffect(position, 39) else doPlayerSendCancel(cid,"Este castelo ja foi conquistado pela sua guild!") doSendMagicEffect(position, 2) end else doPlayerSendCancel(cid,"O sistema est&#225; desativado") end else doPlayerSendCancel(cid,"&#201; nescessario ter guild para dominar o castelo!") doSendMagicEffect(position, 2) end return true end function isPlayerGuild(cid) if getPlayerGuildName(cid) ~= "" then return TRUE else return FALSE end end
  19. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    ?????????? qq seria isso?
  20. foca em fazer o sistema que eu te passei pegar, quando vc conseguir fazer tudo funcionar perfeito eu te ajudo a transformar aquele sistema no sistema que vc quer.
  21. http://www.tibiaking.com/forum/topic/8016-castle-war-20/
  22. 30% de sua vida por 15 segundos. como vc quer que faça isso? ficou meio ambíguo. Durante 15 segundos ele vai recuperando quantidades pequenas de vida que ao serem somadas darão 30% da vida total ou seria ficar aumentando 30% da vida a cada segundo durante 15 segundos? A segunda seria só uma magia que recupera metade da vida? No caso ela adicionar metade da vida total ou metade da vida atual do player?
  23. você que tem que colocar como resolvido, para isso clique em "Melhor Resposta" na resposta que eu te dei e o tópico ficará como [RESOLVIDO]
  24. deleta a primeira linha e escreve ela de novo (sério) isso deve resolver. Caso o problema persista muda o nome da table e altera nos lugares que ela tá sendo chamada tb
  25. pra editar a outfit do pet é só usar os comandos de setar outfit, tem um monte. Procura algum sistema de pet que funcione que eu tento adicionar essas outras coisas que vc quer como level e o npc que mude a looktype

Informação Importante

Confirmação de Termo