matheuspeixoto12 4 Postado Outubro 30, 2013 Share Postado Outubro 30, 2013 Boa tarde pessoal, tudo bem? estava pensando em um jutsu para meu server, mas como não sou bom em criar scripts de spells venho pedir para alguém me ajudar rs vamos ao jutsu: Então pensei em um jutsu que o player primeiramente o consegue em um npc, porém isso eu sei fazer, depois ele usa o jutsu e muda a outfit e fica saindo efeito por 5 minutos (configuravel) enquanto o jutsu está ativo ele poderá usar mais 1 jutsu novo e quando o jutsu "acabar" irá aparecer uma mensagem dizendo "você não está no modo sennin". Alguém pode me ajudar? também tenho mais 1 tópico, se quiserem olhar http://www.xtibia.com/forum/topic/223281-jutsu-de-andar-na-agua/ Obrigado, dúvidas deixem nos comentários. Link para o comentário Compartilhar em outros sites More sharing options...
Omega 377 Postado Outubro 30, 2013 Share Postado Outubro 30, 2013 Tópico na seção errada, favor prestar mais atenção da próxima vez.Movido para pedidos e dúvidas - servidores derivados. Link para o comentário Compartilhar em outros sites More sharing options...
matheuspeixoto12 4 Postado Outubro 30, 2013 Autor Share Postado Outubro 30, 2013 desculpe Link para o comentário Compartilhar em outros sites More sharing options...
Gabrieltxu 736 Postado Novembro 8, 2013 Share Postado Novembro 8, 2013 Tópico movido para a seção de dúvidas e pedidos resolvidos. Link para o comentário Compartilhar em outros sites More sharing options...
matheuspeixoto12 4 Postado Novembro 10, 2013 Autor Share Postado Novembro 10, 2013 não está resolvido não ! Link para o comentário Compartilhar em outros sites More sharing options...
gonorreiaswat 151 Postado Novembro 14, 2013 Share Postado Novembro 14, 2013 (editado) Boa noite. Fiz o script conforme entendi, e ainda adicionei para quando se tornar um "Sennin", além do Outfit e Efeito, ficar mais ágil também. Obs: Coloquei o Condition Infight para evitar que players efetuem logout enquanto estão com o script, porém, NÃO bugará mesmo se ocorrer. Tudo facilmente configurável. Sem mais delongas, abaixo segue o script: Esta tag vai em spells.xml: <instant name="Sennin" words="sennin" lvl="1" mana="0" aggressive="0" selftarget="1" exhaustion="1000" needlearn="0" event="script" value="sennin.lua"/> E agora o arquivo sennin.lua, cole este script abaixo: local tempo = 5 -- Tempo em minutos para a duração local repetindo = 1000 -- Tempo em milésimos entre um efeito e outro local transform = {lookType = 25} -- aqui a LookType do outfit local strg = 50078 -- aqui não precisa mexer local condition_outfit = createConditionObject(CONDITION_OUTFIT) setConditionParam(condition_outfit, CONDITION_PARAM_OUTFIT, true) setConditionParam(condition_outfit, CONDITION_PARAM_TICKS, -1) addOutfitCondition(condition_outfit, transform) local condition_haste = createConditionObject(CONDITION_HASTE) setConditionParam(condition_haste, CONDITION_PARAM_TICKS, tempo * 60 * 1000) setConditionFormula(condition_haste, 0.5, -34, 0.5, -34) local condition_infight = createConditionObject(CONDITION_INFIGHT) setConditionParam(condition_infight, CONDITION_PARAM_TICKS, -1) function onCastSpell(cid, var) doAddCondition(cid, condition_outfit) doAddCondition(cid, condition_haste) doAddCondition(cid, condition_infight) setPlayerStorageValue(cid, strg, 1) Effect(cid) addEvent(StopEffect, tempo * 60 * 1000, cid) end function Effect(cid) if (isCreature(cid)) then if (getPlayerStorageValue(cid, strg) == 1) then local position = getCreaturePosition(cid) local efeito = CONST_ME_MAGIC_GREEN setPlayerStorageValue(cid, strg, 1) doSendMagicEffect(position, efeito) end addEvent(Effect, repetindo, cid) else return StopEffect(cid) end end function StopEffect(cid) if (getPlayerStorageValue(cid, strg) == 1) then setPlayerStorageValue(cid, strg, 0) doPlayerSendTextMessage(cid, 27, "Voce nao esta mais no modo Sennin.") doRemoveCondition(cid, CONDITION_OUTFIT) doRemoveCondition(cid, CONDITION_HASTE) doRemoveCondition(cid, CONDITION_INFIGHT) end return TRUE end Testei aqui e funcionou perfeitamente. Caso apresente algum erro, poste aqui para resolvermos. Boa sorte. Editado Novembro 14, 2013 por Adriano Swatt Link para o comentário Compartilhar em outros sites More sharing options...
matheuspeixoto12 4 Postado Novembro 14, 2013 Autor Share Postado Novembro 14, 2013 e tem como eu colocar para mudar a vocação e quando acabar voltar ? no caso eu queria colocar 2 spells para apenas quem estiver no modo sennin usar Link para o comentário Compartilhar em outros sites More sharing options...
gonorreiaswat 151 Postado Novembro 17, 2013 Share Postado Novembro 17, 2013 (editado) Poderia até ser, porém, poderia por para só usar essas spells se tivesse tal storage que ganha quando se torna Sennin. Acho que seria mais fácil. Mas se necessitar mesmo da nova vocação, da também. -edit- Agora fica a seu critério decidir se vai querer. Eu acho mais fácil trabalhar com storage para liberar magias do que vocações, pois podem haver bugs e dá mais trabalho para remover esta se o player conseguir fazer logout e etc.. -edit²- Tópico abandonado? Posso solicitar o 'fechamento'? Editado Novembro 17, 2013 por Adriano Swatt Link para o comentário Compartilhar em outros sites More sharing options...
matheuspeixoto12 4 Postado Novembro 18, 2013 Autor Share Postado Novembro 18, 2013 Desculpe, estive fora de casa por uns dias, então pode ser por storage mesmo, como que se faz? Link para o comentário Compartilhar em outros sites More sharing options...
gonorreiaswat 151 Postado Novembro 18, 2013 Share Postado Novembro 18, 2013 Você já tem as magias prontas? Se tiver, poste-as aqui para que eu configure as mesmas para poder ser usadas somente se tiver tal storage. Logo em seguida eu adiciono ao script que postei para adicionar storage quando "transformar" em Sennin. Então, aguardo a postagem das magias. Link para o comentário Compartilhar em outros sites More sharing options...
matheuspeixoto12 4 Postado Novembro 21, 2013 Autor Share Postado Novembro 21, 2013 No caso desta é o amaterasu do sasuke, mas pode se com ela pois irei adicionar mais coisas além do sennin modo local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT,134) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -8.2, 1, -9.2, 1) function onCastSpell(cid, var) local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position1, 79) local efeito = 110 doSendMagicEffect(getThingPos(cid), efeito) doCreatureSay(cid, "Amaterasu", TALKTYPE_MONSTER) doCombat(cid, combat, var) end Link para o comentário Compartilhar em outros sites More sharing options...
gonorreiaswat 151 Postado Novembro 21, 2013 Share Postado Novembro 21, 2013 (editado) Teste este abaixo. Me avise do resultado. local strg = 50078 -- este valor tem que ser o mesmo que o do script do Sennin, então se não alterou o que postei, deixe-o assim mesmo. local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z} local efeito = 110 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT,134) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -8.2, 1, -9.2, 1) function onCastSpell(cid, var) if getPlayerStorageValue(cid, strg) == 1 then doSendMagicEffect(position1, 79) doSendMagicEffect(getThingPos(cid), efeito) doCreatureSay(cid, "Amaterasu", TALKTYPE_MONSTER) doCombat(cid, combat, var) else doPlayerSendCancel(cid, "Voce precisa estar no modo Sennin para usar esta magia.") end end Boa sorte. Editado Novembro 21, 2013 por Adriano Swatt Link para o comentário Compartilhar em outros sites More sharing options...
matheuspeixoto12 4 Postado Novembro 21, 2013 Autor Share Postado Novembro 21, 2013 achei 2 erros, o sennin está sem exausted e o amaterasu não está funcionando. OBS: não apareceu nenhum erro no distro Link para o comentário Compartilhar em outros sites More sharing options...
gonorreiaswat 151 Postado Novembro 21, 2013 Share Postado Novembro 21, 2013 (editado) O Exhaust do Modo Sennin já está pronto. local tempo = 5 -- Tempo em minutos para a duração local repetindo = 1000 -- Tempo em milésimos entre um efeito e outro local transform = {lookType = 25} -- aqui a LookType do outfit local strg = 50078 -- aqui não precisa mexer local strg_exhaust = 50079 local tempo_exhaust = 5 -- em minutos local condition_outfit = createConditionObject(CONDITION_OUTFIT) setConditionParam(condition_outfit, CONDITION_PARAM_OUTFIT, true) setConditionParam(condition_outfit, CONDITION_PARAM_TICKS, -1) addOutfitCondition(condition_outfit, transform) local condition_haste = createConditionObject(CONDITION_HASTE) setConditionParam(condition_haste, CONDITION_PARAM_TICKS, tempo * 60 * 1000) setConditionFormula(condition_haste, 0.5, -34, 0.5, -34) local condition_infight = createConditionObject(CONDITION_INFIGHT) setConditionParam(condition_infight, CONDITION_PARAM_TICKS, -1) function onCastSpell(cid, var) if getPlayerStorageValue(cid, strg) == 1 then doPlayerSendCancel(cid, "Voce ja esta no modo Sennin.") else if getPlayerStorageValue(cid, strg_exhaust) - os.time() >= 0 then doPlayerSendCancel(cid, "Voce precisa esperar " .. getPlayerStorageValue(cid, strg_exhaust) - os.time() .. " segundos para usar novamente.") else doAddCondition(cid, condition_outfit) doAddCondition(cid, condition_haste) doAddCondition(cid, condition_infight) setPlayerStorageValue(cid, strg, 1) Effect(cid) addEvent(StopEffect, tempo * 60 * 1000, cid) end end end function Effect(cid) if (isCreature(cid)) then if (getPlayerStorageValue(cid, strg) == 1) then local position = getCreaturePosition(cid) local efeito = CONST_ME_MAGIC_GREEN setPlayerStorageValue(cid, strg, 1) doSendMagicEffect(position, efeito) end addEvent(Effect, repetindo, cid) else return StopEffect(cid) end end function StopEffect(cid) if (getPlayerStorageValue(cid, strg) == 1) then setPlayerStorageValue(cid, strg, 0) setPlayerStorageValue(cid, strg_exhaust, os.time() + tempo_exhaust * 60) doPlayerSendTextMessage(cid, 27, "Voce nao esta mais no modo Sennin.") doRemoveCondition(cid, CONDITION_OUTFIT) doRemoveCondition(cid, CONDITION_HASTE) doRemoveCondition(cid, CONDITION_INFIGHT) end return TRUE end Testado e 100% funcional. Agora o da magia, nem magia em si está funcionando. Testei do jeito que me mandou e não funciona, por isto deu erro quando adaptei o script. Me envie a magia que deseja, funcionando, e eu adiciono o script para usar somente no modo Sennin. -EDIT- Agora o da magia está funcionando perfeitamente, eu que havia cometido um erro bobo aqui na hora de registrá-la. E só funciona no modo Sennin, bom agora está tudo perfeito e testado. A magia deve ficar assim: local strg = 50078 -- este valor tem que ser o mesmo que o do script do Sennin, então se não alterou o que postei, deixe-o assim mesmo. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT,134) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -8.2, 1, -9.2, 1) function onCastSpell(cid, var) if getPlayerStorageValue(cid, strg) == 1 then local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position1, 79) local efeito = 110 doSendMagicEffect(getThingPos(cid), efeito) doCreatureSay(cid, "Amaterasu", TALKTYPE_MONSTER) doCombat(cid, combat, var) else doPlayerSendCancel(cid, "Voce precisa estar no modo Sennin para usar esta magia.") end end Como disse acima, tudo testado e funcionando perfeitamente. Boa sorte. Editado Novembro 21, 2013 por Adriano Swatt Link para o comentário Compartilhar em outros sites More sharing options...
matheuspeixoto12 4 Postado Novembro 21, 2013 Autor Share Postado Novembro 21, 2013 vou testa-la aqui novamente depois que eu chegar do inglês pois funcionava hehe Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados