Tópico na seção errada, favor prestar mais atenção da próxima vez.
Movido para pedidos e dúvidas - servidores derivados.
- Fórum
- OTServ
- Suporte
- Tópicos Sem Resposta
- [Encerrado] Jutsu sennin modo
[Encerrado] Jutsu sennin modo
Por matheuspeixoto12, 30 de out. de 2013 em Tópicos Sem Resposta
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

info
Grupo: Cavaleiro
Registrado: 28/08/12
Posts: 171
Reputação: +4

desculpe ![]()
info
Grupo: Herói
Registrado: 12/06/12
Posts: 2.2k
Reputação: +739
Gênero: Masculino
Char no Tibia: Supreme Player

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

não está resolvido não !
info
Grupo: Conde
Registrado: 16/09/07
Posts: 600
Reputação: +151
Gênero: Masculino
Char no Tibia: 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.
Editado Novembro 14 por Adriano Swatt
info
Grupo: Cavaleiro
Registrado: 28/08/12
Posts: 171
Reputação: +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
Grupo: Conde
Registrado: 16/09/07
Posts: 600
Reputação: +151
Gênero: Masculino
Char no Tibia: 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'?
Editado Novembro 17 por Adriano Swatt
info
Grupo: Cavaleiro
Registrado: 28/08/12
Posts: 171
Reputação: +4

Desculpe, estive fora de casa por uns dias, então pode ser por storage mesmo, como que se faz?
info
Grupo: Conde
Registrado: 16/09/07
Posts: 600
Reputação: +151
Gênero: Masculino
Char no Tibia: 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
Grupo: Cavaleiro
Registrado: 28/08/12
Posts: 171
Reputação: +4

info
Grupo: Conde
Registrado: 16/09/07
Posts: 600
Reputação: +151
Gênero: Masculino
Char no Tibia: 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.
Editado Novembro 21 por Adriano Swatt
info
Grupo: Cavaleiro
Registrado: 28/08/12
Posts: 171
Reputação: +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
Grupo: Conde
Registrado: 16/09/07
Posts: 600
Reputação: +151
Gênero: Masculino
Char no Tibia: 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.
Editado Novembro 21 por Adriano Swatt
info
Grupo: Cavaleiro
Registrado: 28/08/12
Posts: 171
Reputação: +4

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




info
Grupo: Cavaleiro
Registrado: 28/08/12
Posts: 171
Reputação: +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.