Tópico na seção errada, favor prestar mais atenção da próxima vez.
Movido para pedidos e dúvidas - servidores derivados.
- Forums
- OTServ
- Suporte
- Tópicos Sem Resposta
- [Encerrado] Jutsu sennin modo
[Encerrado] Jutsu sennin modo
By matheuspeixoto12, 30 de out. de 2013 in Tópicos Sem Resposta
info
Group: Marquês
Joined: 16/06/07
Posts: 1.2k
Reputation: +377
Gender: Masculino
Tibia Character: Nenhum

info
Group: Cavaleiro
Joined: 28/08/12
Posts: 171
Reputation: +4

desculpe ![]()
info
Group: Herói
Joined: 12/06/12
Posts: 2.2k
Reputation: +739
Gender: Masculino
Tibia Character: Supreme Player

Tópico movido para a seção de dúvidas e pedidos resolvidos.
info
Group: Cavaleiro
Joined: 28/08/12
Posts: 171
Reputation: +4

não está resolvido não !
info
Group: Conde
Joined: 16/09/07
Posts: 600
Reputation: +151
Gender: Masculino
Tibia Character: NãoJogoMais

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.
Edited Novembro 14 by Adriano Swatt
info
Group: Cavaleiro
Joined: 28/08/12
Posts: 171
Reputation: +4

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
info
Group: Conde
Joined: 16/09/07
Posts: 600
Reputation: +151
Gender: Masculino
Tibia Character: NãoJogoMais

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'?
Edited Novembro 17 by Adriano Swatt
info
Group: Cavaleiro
Joined: 28/08/12
Posts: 171
Reputation: +4

Desculpe, estive fora de casa por uns dias, então pode ser por storage mesmo, como que se faz?
info
Group: Conde
Joined: 16/09/07
Posts: 600
Reputation: +151
Gender: Masculino
Tibia Character: NãoJogoMais

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.
info
Group: Cavaleiro
Joined: 28/08/12
Posts: 171
Reputation: +4

info
Group: Conde
Joined: 16/09/07
Posts: 600
Reputation: +151
Gender: Masculino
Tibia Character: NãoJogoMais

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.
Edited Novembro 21 by Adriano Swatt
info
Group: Cavaleiro
Joined: 28/08/12
Posts: 171
Reputation: +4

achei 2 erros, o sennin está sem exausted e o amaterasu não está funcionando.
OBS: não apareceu nenhum erro no distro
info
Group: Conde
Joined: 16/09/07
Posts: 600
Reputation: +151
Gender: Masculino
Tibia Character: NãoJogoMais

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.
Edited Novembro 21 by Adriano Swatt
info
Group: Cavaleiro
Joined: 28/08/12
Posts: 171
Reputation: +4

vou testa-la aqui novamente depois que eu chegar do inglês pois funcionava hehe




info
Group: Cavaleiro
Joined: 28/08/12
Posts: 171
Reputation: +4
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.