Ir para conteúdo
  • Cadastre-se

Derivado [Resolvido] Como Adicionar efeitos diferentes na mesma spell?


Posts Recomendados

Por Exemplo: Earthquake tem 2 efeitos diferentes, um azul para o Crystal Onix e um Normal para o resto dos pokemons.

 

Minha dúvida: Como adicionar esse mesmo efeito do Earthquake do Crystal Onix em outro pokemon (Crystal Steelix) ?

 

Earthquake do Pokemon Moves.lua:

elseif spell == "Earthquake" then
local eff = getSubName(cid, target) == "Shiny Onix"  and 175 or 118  --alterado v1.6.1

local function doQuake(cid)
if not isCreature(cid) then return false end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
   doMoveInArea2(cid, eff, confusion, GROUNDDAMAGE, min, max, spell)
end
times = {0, 500, 1000, 1500, 2300, 2800, 3300, 3800, 4600, 5100, 5600, 6100, 6900, 7400, 7900, 8400, 9200, 10000}
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 10000, cid, 3644587, -1)
for i = 1, #times do                   --alterado v1.4
    addEvent(doQuake, times[i], cid)
    
end

OBS: Effect Azul = 175, Effect Normal = 118.

Acho que já deu pra entender, mas vou deixar uma imagem do effect azul que quero também no Crystal Steelix que adicionei no server.

 

 

 

 

earthquake sh onix.png

 

 

 

 

[Resolvido]

Por tentativa e erro acabei aprendendo como fazer. Vou mostrar o que editar caso alguem tenha a mesma dúvida!

 

 

elseif spell == "Earthquake" then


if getSubName(cid, target) == "Shiny Onix" then
     eff = 179
     elseif getSubName(cid, target) == "Shiny Steelix" then
     eff = 179
     else
     eff = 127
      end
  

local function doQuake(cid)
if not isCreature(cid) then return false end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
   doMoveInArea2(cid, eff, confusion, GROUNDDAMAGE, min, max, spell)
end

times = {0, 500, 1000, 1500, 2300, 2800, 3300, 3800, 4600, 5100, 5600, 6100, 6900, 7400, 7900, 8400, 9200, 10000}

setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 10000, cid, 3644587, -1)
for i = 1, #times do                   --alterado v1.4
    addEvent(doQuake, times, cid)
    
end

 

 

 

Nas Linhas Vermelhas: Alterar o nome do pokemon entre " "

Nas Linhas Azuis: Alterar o número do efeito da spell para o pokemon citado na linha vermelha acima

Na Linha Amarela: Alterar o número do efeito para os demais pokemons

 

 

 

OBS: Caso queira adicionar outro pokemon com efeito diferente do padrão (em amarelo), deixe assim:

 

if getSubName(cid, target) == "Shiny Onix" then
     eff = 179
     elseif getSubName(cid, target) == "Shiny Steelix" then
     eff = 179

    elseif getSubName(cid, target) == "NomeDoPokemon" then
     eff = NumeroDoEfeito
     else
     eff = 127
      end

 

Editado por samlecter
[RESOLVIDO] Explicação no Post! (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Você terá que adicionar o mesmo ataque do Cristal Onix no Cristal Steelix no configuration.lua do seu servidor.

Se você adicionou o Cristal Steelix, deve saber editar o configuration.lua.

Editado por Hadagalberto Jr. (veja o histórico de edições)

pc.php?pc=7trCBDN1LhgE9IcLElu7nDpBFewxq5

Link para o post
Compartilhar em outros sites
22 minutos atrás, Hadagalberto Jr. disse:

Você terá que adicionar o mesmo ataque do Cristal Onix no Cristal Steelix no configuration.lua do seu servidor.

Se você adicionou o Cristal Steelix, deve saber editar o configuration.lua.

 

 

 

Sei sim rsrs, vou testar se funfar edito aki 

Edited

Não funcionou, eu já esperava isso porque não são 2 spells diferentes, é a mesma spell, só que no pokemon moves.lua fui adicionada uma exceção para quando a Spell  for usada pelo pokemon Crystal Onix, o efeito ser outro, quero adicioanar outro exceção para quando o Crystal Steelix usar a spell, o efeito ser igual do Crystal Onix.

 

Olha:

elseif spell == "Earthshock" then

local eff = getSubName(cid, target) == "Shiny Onix" and 179 or 127 --alterado v1.6.1              

    doAreaCombatHealth(cid, GROUNDDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 255)

    local sps = getThingPosWithDebug(cid)
    sps.x = sps.x+1
    sps.y = sps.y+1
    doSendMagicEffect(sps, eff)

 

Essa Linha Escrita em Vermelho que adiciona essa Exceção, eu consegui adicionar outro efeito na spell Revenge caso fosse usada pelo Shiny Heracross, funcionou, eu só não sei como adicionar em mais de 1 pokemon, essa execeção é só pro Shiny Onix, queria adicionar para mais de 1 pokemon, Exemplo: que fosse pra "Shiny Onix" e "Miltank"

 

179 é o efeito azul caso a spell seja usada pelo Crystal Onix

127 é o efeito normal caso a spell seja usada por qualquer outro pokemon diferente do Crystal Onix 

OBS: Falo crystal onix mas sei que no server ta com nome de Shiny Onix e devo escrever shiny onix para que funcione ^^ 

 

 

 

Editado por samlecter (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Adicione isso abaixo desse script:

 

elseif spell == "Earthshock" then
local eff = getSubName(cid, target) == "Shiny Steelix" and 179 or 127 --alterado v1.6.1              
    doAreaCombatHealth(cid, GROUNDDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 255)
    local sps = getThingPosWithDebug(cid)
    sps.x = sps.x+1
    sps.y = sps.y+1
    doSendMagicEffect(sps, eff)

Teste e responda se deu certo, se não vou adicionar o Steelix no próprio script.

pc.php?pc=7trCBDN1LhgE9IcLElu7nDpBFewxq5

Link para o post
Compartilhar em outros sites
3 minutos atrás, Hadagalberto Jr. disse:

Adicione isso abaixo desse script:

 


elseif spell == "Earthshock" then
local eff = getSubName(cid, target) == "Shiny Steelix" and 179 or 127 --alterado v1.6.1              
    doAreaCombatHealth(cid, GROUNDDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 255)
    local sps = getThingPosWithDebug(cid)
    sps.x = sps.x+1
    sps.y = sps.y+1
    doSendMagicEffect(sps, eff)

Teste e responda se deu certo, se não vou adicionar o Steelix no próprio script.

 

 

Trocando:

elseif spell == "Earthshock" then
local eff = getSubName(cid, target) == "Shiny Onix" and 179 or 127 --alterado v1.6.1              
    doAreaCombatHealth(cid, GROUNDDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 255)
    local sps = getThingPosWithDebug(cid)
    sps.x = sps.x+1
    sps.y = sps.y+1
    doSendMagicEffect(sps, eff)

Por:

elseif spell == "Earthshock" then
local eff = getSubName(cid, target) == "Shiny Steelix" and 179 or 127 --alterado v1.6.1              
    doAreaCombatHealth(cid, GROUNDDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 255)
    local sps = getThingPosWithDebug(cid)
    sps.x = sps.x+1
    sps.y = sps.y+1
    doSendMagicEffect(sps, eff)

O Shiny Steelix Agora possui o Efeito Azul como eu queria, porém o Shiny Onix perdeu.

 

 

 

Adicionando o que vc falou abaixo da existente, ficando assim:

elseif spell == "Earthshock" then

local eff = getSubName(cid, target) == "Shiny Onix" and 179 or 127 --alterado v1.6.1              

	doAreaCombatHealth(cid, GROUNDDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 255)

	local sps = getThingPosWithDebug(cid)
	sps.x = sps.x+1
	sps.y = sps.y+1
	doSendMagicEffect(sps, eff)
	

elseif spell == "Earthshock" then

local eff = getSubName(cid, target) == "Shiny Steelix" and 179 or 127 --alterado v1.6.1        
      
    doAreaCombatHealth(cid, GROUNDDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 255)
	
    local sps = getThingPosWithDebug(cid)
    sps.x = sps.x+1
    sps.y = sps.y+1
    doSendMagicEffect(sps, eff)

O Shiny Onix Voltou a ter o Efeito Azul e o Shiny Steelix Perdeu, ou seja a de cima que conta, tem adicionar o nome dos dois exemplo ..."Shiny Onix", "Shiny Steelix"... 

o problema é que não sei como, separando só com espaço não foi, com virgula não foi, com or não foi, com and também não, não entendo muito de script.

Link para o post
Compartilhar em outros sites

Então tenta assim:

elseif spell == "Earthshock" then
local eff = getSubName(cid, target) == "Shiny Onix" or "Shiny Steelix" and 179 or 127 --alterado v1.6.1              
    doAreaCombatHealth(cid, GROUNDDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 255)
    local sps = getThingPosWithDebug(cid)
    sps.x = sps.x+1
    sps.y = sps.y+1
    doSendMagicEffect(sps, eff)

Se não ocorrer bem avisa ate conseguirmos.

pc.php?pc=7trCBDN1LhgE9IcLElu7nDpBFewxq5

Link para o post
Compartilhar em outros sites
23 minutos atrás, Hadagalberto Jr. disse:

Então tenta assim:


elseif spell == "Earthshock" then
local eff = getSubName(cid, target) == "Shiny Onix" or "Shiny Steelix" and 179 or 127 --alterado v1.6.1              
    doAreaCombatHealth(cid, GROUNDDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 255)
    local sps = getThingPosWithDebug(cid)
    sps.x = sps.x+1
    sps.y = sps.y+1
    doSendMagicEffect(sps, eff)

Se não ocorrer bem avisa ate conseguirmos.

Ok, se conseguirmos vou te encher de Rep+ ^^ 

Edited:

TODOS Ficaram com efeito azul exceto o Shiny Onix

Shiny Steelix com efeito azul,Ok

Shiny Onix ficou com efeito de Safeguard quando usa a spell

Outros Pokemons também estão com efeito azul.

 

Tentei Fazer com outra spell, Earthquake, o Shiny Steelix ficou com efeito azul,ok e o Shiny Onix denovo com efeito safeguard, e os outros pokemons também ficaram com efeito azul.

 

Shiny Onix ficou usando o earthquake normal mas com outro efeito (safeguard)

Abri o Object Builder, e esse efeito que aparece do Safeguard, é o Efeito Numero 2, no script teria que por numero 1 pois sempre diminui 1 do efeito.

 

Print:

 

 

 

crystalfail.png

crystalfailsafeguard.png

Editado por samlecter (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
10 minutos atrás, Hadagalberto Jr. disse:

Posta o script do Earthquake pra eu poder avaliar.

 

elseif spell == "Earthshock" then
local eff = getSubName(cid, target) == "Shiny Onix" and 179 or 127 --alterado v1.6.1              
    doAreaCombatHealth(cid, GROUNDDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 255)
    local sps = getThingPosWithDebug(cid)
    sps.x = sps.x+1
    sps.y = sps.y+1
    doSendMagicEffect(sps, eff)	
	
	
-- Earthquake


elseif spell == "Earthquake" then


local eff = getSubName(cid, target) == "Shiny Onix"  and 175 or 118  --alterado v1.6.1  
  

local function doQuake(cid)
if not isCreature(cid) then return false end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
   doMoveInArea2(cid, eff, confusion, GROUNDDAMAGE, min, max, spell)
end

times = {0, 500, 1000, 1500, 2300, 2800, 3300, 3800, 4600, 5100, 5600, 6100, 6900, 7400, 7900, 8400, 9200, 10000}

setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 10000, cid, 3644587, -1)
for i = 1, #times do                   --alterado v1.4
    addEvent(doQuake, times[i], cid)
	
end
	
	
	
	
-- Stomp	
elseif spell == "Stomp" then
    

Padrão de como estava antes das modificações, desse jeito o Shiny Onix tem efeito azul na skill e os outros pokes tem o efeito normal

Editado por samlecter (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
1 minuto atrás, Hadagalberto Jr. disse:

Seria mais fácil adicionar uma nova magia, não acha? Tipo um 'Cristal Earthquake'.

Concordo, se fosse com 1 magia só, mas são várias com efeito azul, Rock Throw, EarthShock, Earthquake, Rock Slide, Falling Rocks...

Imagina ter que criar todas esses magias só pra mudar o effect, tendo como mudar pelo pokemon moves :/ 

Fora que pretendo fazer isso para outras skill, exemplo tenho um effect do Revenge preto, eu adicionei essa exceção pra quando o Shiny heracross usar ser esse effect preto, funcionou mas se eu quiser adicionar outro pokemon para usar com esse effect não consigo :/ 

Link para o post
Compartilhar em outros sites

Então tá.

Estou no meu PC sem ot pra ir testando algumas modificaçoes, mas hoje a noite (no outro) vou tentar arrumar um script que funcione, ok?

Editado por Hadagalberto Jr. (veja o histórico de edições)

pc.php?pc=7trCBDN1LhgE9IcLElu7nDpBFewxq5

Link para o post
Compartilhar em outros sites
Agora, Hadagalberto Jr. disse:

Então tá.

Estou no meu PC sem ot pra ir testando algumas modificaçoes, mas hoje a noite vou tentar arrumar um script que funcione, ok?

Beleza, vlw pela atenção

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por UnknowLoad
      Olá pessoas, eu preciso de um NPC que teleporte o player para essa coordenada: (PDA BY BOZ 2,3)
      {x = 951, y = 1463, z = 7}
      Outflit: 300
      Nick: Monge
       
      Alguém me disponibiliza?
      Urgente
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo