Pallyfox 0 Postado Novembro 2, 2009 Share Postado Novembro 2, 2009 (editado) Eu uso: Tibia 8.50, TFS 0.3.5 Pessoal eu tenho uma magia chamada "magic" ela não é agressiva, a magia deve ter 20 seg. de exaust, mas quando eu coloco exaust pelo spells.xml fica com exaust em todas as magias, sendo 20 segundos de espera para atacar qualquer magia, Então eu acho que deve ter algum jeito para colocar no próprio código de exaust da spell. Mas esse exaust será apenas para aquela magia, ou seja, ao usar a magia, eu fico com exaust de 20 segundos somente para aquela magia (magic), podendo usar outra magia mesmo com exaust da magia "magic". Eu quero: Um script que quando usa a magia o player fica exausto por 20 segundos somente para aquela magia. Exemplo: EU uso magia e depois de 1 segundo eu posso usar qualquer magia menos a magia que tem 20 segundos de exaust. Por favor, quem puder ajudar eu fico muito grato. Se você não entendeu escreva suas dúvidas ai! SEI QUE É DIFICIL DE ENTENDER, SE PRECISO, COLOCAREI UM VIDEO EXPLICATIVO! TAG DA MAGIA: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 31) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local speed = createConditionObject(CONDITION_HASTE) setConditionParam(speed, CONDITION_PARAM_TICKS, 3000) setConditionFormula(speed, 9.9, -999, 9.9, -999) setCombatCondition(combat, speed) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Editado Novembro 3, 2009 por Pallyfox Link para o comentário https://xtibia.com/forum/topic/122722-como-eu-fa%C3%A7o-para-quando-usar-a-magia-dar-20-segundos-de-exaust/ Compartilhar em outros sites More sharing options...
canovas 3 Postado Novembro 2, 2009 Share Postado Novembro 2, 2009 Poste o script e a tag da magia, para que alguem possa te ajudar melhor Link para o comentário https://xtibia.com/forum/topic/122722-como-eu-fa%C3%A7o-para-quando-usar-a-magia-dar-20-segundos-de-exaust/#findComment-809799 Compartilhar em outros sites More sharing options...
Pallyfox 0 Postado Novembro 2, 2009 Autor Share Postado Novembro 2, 2009 (editado) Poste o script e a tag da magia, para que alguem possa te ajudar melhor TAG DA MAGIA: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 31) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local speed = createConditionObject(CONDITION_HASTE) setConditionParam(speed, CONDITION_PARAM_TICKS, 3000) setConditionFormula(speed, 9.9, -999, 9.9, -999) setCombatCondition(combat, speed) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Essa ai é uma magia de exemplo, por que na verdade quero colocar em uma outras magias, mas as outras são exclusiva do meu server... Acho que qualquer scripter lua saberia... Editado Novembro 2, 2009 por Pallyfox Link para o comentário https://xtibia.com/forum/topic/122722-como-eu-fa%C3%A7o-para-quando-usar-a-magia-dar-20-segundos-de-exaust/#findComment-809804 Compartilhar em outros sites More sharing options...
kevinsz 3 Postado Novembro 3, 2009 Share Postado Novembro 3, 2009 se quer uma magia com exhaust ou uma action? Link para o comentário https://xtibia.com/forum/topic/122722-como-eu-fa%C3%A7o-para-quando-usar-a-magia-dar-20-segundos-de-exaust/#findComment-810260 Compartilhar em outros sites More sharing options...
Pallyfox 0 Postado Novembro 3, 2009 Autor Share Postado Novembro 3, 2009 O que??? Leia atetaamente você vai descobrir! :smile_positivo: Link para o comentário https://xtibia.com/forum/topic/122722-como-eu-fa%C3%A7o-para-quando-usar-a-magia-dar-20-segundos-de-exaust/#findComment-810518 Compartilhar em outros sites More sharing options...
kevinsz 3 Postado Novembro 4, 2009 Share Postado Novembro 4, 2009 Bom, pelo que entendi -> se você quer uma spell com exhaust, Acho que você vai ter que fazer um storage somente para aquela magia, certo? Mas isso é deve ser facil... Só que eu não sou scripter.. Quem puder ajudar pallyfox ai! Link para o comentário https://xtibia.com/forum/topic/122722-como-eu-fa%C3%A7o-para-quando-usar-a-magia-dar-20-segundos-de-exaust/#findComment-810644 Compartilhar em outros sites More sharing options...
Pallyfox 0 Postado Novembro 4, 2009 Autor Share Postado Novembro 4, 2009 Pois é, Não deve ser tão dificil, mas você não sabe como criar um pra mim? Link para o comentário https://xtibia.com/forum/topic/122722-como-eu-fa%C3%A7o-para-quando-usar-a-magia-dar-20-segundos-de-exaust/#findComment-810874 Compartilhar em outros sites More sharing options...
kevinsz 3 Postado Novembro 4, 2009 Share Postado Novembro 4, 2009 Não sei se vai dar: Tenta: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 31) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local speed = createConditionObject(CONDITION_HASTE) setConditionParam(speed, CONDITION_PARAM_TICKS, 3000) setConditionFormula(speed, 9.9, -999, 9.9, -999) setCombatCondition(combat, speed) function onCastSpell(cid, var) if getPlayerExhaust(cid,storage,segundos) == -1 then return doCombat(cid, combat, var) else doPlayerSendCancel(cid,"You are exhausted.") end end Onde esta em negrito vc edita: Storage: Qualquer numero para o storge. segundos: o quanto de segundos vai ser de exhaust. Link para o comentário https://xtibia.com/forum/topic/122722-como-eu-fa%C3%A7o-para-quando-usar-a-magia-dar-20-segundos-de-exaust/#findComment-810996 Compartilhar em outros sites More sharing options...
Lordfire 309 Postado Novembro 4, 2009 Share Postado Novembro 4, 2009 (editado) Vai em data/spells/lib/spells.lua e põe isso no final: function getPlayerExhaust(player,number,time) now = os.time() before = getPlayerStorageValue(player,number) exhaust = os.difftime(now,before) if before == -1 then setPlayerStorageValue(player,number,now) return -1 else if exhaust >= time then setPlayerStorageValue(player,number,now) return -1 else return 1 end end end A função na spell é essa: if getPlayerExhaust(cid,storage,tempo) == 1 then e também dá uma olhada no post de baixo Editado Novembro 4, 2009 por Lordfire Link para o comentário https://xtibia.com/forum/topic/122722-como-eu-fa%C3%A7o-para-quando-usar-a-magia-dar-20-segundos-de-exaust/#findComment-811004 Compartilhar em outros sites More sharing options...
rockstar96 4 Postado Novembro 4, 2009 Share Postado Novembro 4, 2009 (editado) Com o bagulho do Lordfire: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 31) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local speed = createConditionObject(CONDITION_HASTE) setConditionParam(speed, CONDITION_PARAM_TICKS, 3000) setConditionFormula(speed, 9.9, -999, 9.9, -999) setCombatCondition(combat, speed) function onCastSpell(cid, var) if getPlayerExhaust(cid, 62033, 20000) <= 0 then return doCombat(cid, combat, var) else return doPlayerSendCancel(cid, "You are exhausted.") and doSendMagicEffect(getThingPos(cid), 2) end end Editado Novembro 4, 2009 por iRockStar Link para o comentário https://xtibia.com/forum/topic/122722-como-eu-fa%C3%A7o-para-quando-usar-a-magia-dar-20-segundos-de-exaust/#findComment-811014 Compartilhar em outros sites More sharing options...
Pallyfox 0 Postado Novembro 4, 2009 Autor Share Postado Novembro 4, 2009 (editado) Deu tudo certo ma quero acrescentar em outras magia E se a magia terminar assim: function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2 } addEvent(onCastSpell1, 000, parameters) addEvent(onCastSpell2, 000, parameters) return TRUE end Como que eu faço? Outra coisa.. O exhausted funciona. Mas ta tirando mana sem exhaust e com exhaust. Não devia tirar mana.. ah E alem disso Toda vez que fala a magia ele acrescenta + 20 segundos de exhaust.. se eu fala 2 veses a magia, eu fico com 40 seg de exhaust... o que eu faço? Editado Novembro 4, 2009 por Pallyfox Link para o comentário https://xtibia.com/forum/topic/122722-como-eu-fa%C3%A7o-para-quando-usar-a-magia-dar-20-segundos-de-exaust/#findComment-811136 Compartilhar em outros sites More sharing options...
kevinsz 3 Postado Novembro 5, 2009 Share Postado Novembro 5, 2009 (editado) Deu tudo certo ma quero acrescentar em outras magia E se a magia terminar assim: function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2 } addEvent(onCastSpell1, 000, parameters) addEvent(onCastSpell2, 000, parameters) return TRUE end Como que eu faço? Outra coisa.. O exhausted funciona. Mas ta tirando mana sem exhaust e com exhaust. Não devia tirar mana.. ah E alem disso Toda vez que fala a magia ele acrescenta + 20 segundos de exhaust.. se eu fala 2 veses a magia, eu fico com 40 seg de exhaust... o que eu faço? Pra isso não acontecer de tira mana mesmo com exhaust você coloca embaixo do "else" e acrescenta: doPlayerAddMana(cid, aqui você poem o tanto de mana que a magia vai gastar) O exhaust é em segundos então você coloca assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 31) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local speed = createConditionObject(CONDITION_HASTE) setConditionParam(speed, CONDITION_PARAM_TICKS, 3000) setConditionFormula(speed, 9.9, -999, 9.9, -999) setCombatCondition(combat, speed) function onCastSpell(cid, var) if getPlayerExhaust(cid, 62033, 20) == -1 then return doCombat(cid, combat, var) else return doPlayerSendCancel(cid, "You are exhausted.") and doSendMagicEffect(getThingPos(cid), 2) end end O que vc faalo: function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2 } addEvent(onCastSpell1, 000, parameters) addEvent(onCastSpell2, 000, parameters) return TRUE end troca por function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2 } if getPlayerExhaust(cid, 62033, 20) == -1 then addEvent(onCastSpell1, 000, parameters) addEvent(onCastSpell2, 000, parameters) return TRUE else return doPlayerSendCancel(cid, "You are exhaustedo.") and doSendMagicEffect(getThingPos(cid), 2) end end Esperoo ter ajudado... Editado Novembro 5, 2009 por Focost Link para o comentário https://xtibia.com/forum/topic/122722-como-eu-fa%C3%A7o-para-quando-usar-a-magia-dar-20-segundos-de-exaust/#findComment-811299 Compartilhar em outros sites More sharing options...
Pallyfox 0 Postado Novembro 6, 2009 Autor Share Postado Novembro 6, 2009 Nossa! Eu fiz tudo certo... Eu tava testando aqui faz tempo.. e eu entendi o que você quis dizer com doPlayerAddMana, no meu caso se caso estar exhaust ele vai add mana.. Maiis tem uma coisa! E se a magia for em porcento? EXEMPLO: <instant name="Magia" words="Magia" lvl="100" manapercent="40" prem="1" needlearn="0" script="magia.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="3"/> <vocation id="4"/> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> Como que eu faço pra add mana em % ?????? Link para o comentário https://xtibia.com/forum/topic/122722-como-eu-fa%C3%A7o-para-quando-usar-a-magia-dar-20-segundos-de-exaust/#findComment-811595 Compartilhar em outros sites More sharing options...
kaique_sorcerer 1 Postado Novembro 6, 2009 Share Postado Novembro 6, 2009 o Do Lordfire Deu certo aqui tenta denovo Link para o comentário https://xtibia.com/forum/topic/122722-como-eu-fa%C3%A7o-para-quando-usar-a-magia-dar-20-segundos-de-exaust/#findComment-811650 Compartilhar em outros sites More sharing options...
Pallyfox 0 Postado Novembro 6, 2009 Autor Share Postado Novembro 6, 2009 o Do Lordfire Deu certo aqui tenta denovo Tentar denovo????????? Eu ja consegui.. Só falta colocar um código tipo: doPlayerAddMana(cid,20%) Mas isso não da certo... Gostariaa de saber se tem outro jeito.. Link para o comentário https://xtibia.com/forum/topic/122722-como-eu-fa%C3%A7o-para-quando-usar-a-magia-dar-20-segundos-de-exaust/#findComment-811704 Compartilhar em outros sites More sharing options...
Posts Recomendados