Tem diferença sim, não posso falar qual é a melhor forma de se fazer, depende do que você quer fazer da sua logica as duas formas estão corretas.
- Fórum
- OTServ
- Suporte
- Resolvidos
- qual a diferença neste script
info
Grupo: Cavaleiro
Registrado: 10/03/13
Posts: 177
Reputação: +202
Gênero: Masculino
Char no Tibia: stor akia

info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

Existe uma coisa chamada cadeia de cascata.
Ao abrir um "if" ele cria um bloco que vai até o próximo "end" que finalizar ele. Tudo o que tiver dentro desse "if" só será executado se a condição (condição criada para esse if) for verdadeira.
Citarif getItemAttribute(slotball, "TMN") == 2 then
No seu caso, esse "if" só será executado se esse outro "if" for verdadeiro.
Citarif getItemAttribute(idd, "skt2") then
Isso que chamamos de cadeia em cascata.
info
Grupo: Visconde
Registrado: 21/05/13
Posts: 303
Reputação: +25

Em 06/02/2017 at 09:16, Poccnn disse:Existe uma coisa chamada cadeia de cascata.
Ao abrir um "if" ele cria um bloco que vai até o próximo "end" que finalizar ele. Tudo o que tiver dentro desse "if" só será executado se a condição (condição criada para esse if) for verdadeira.
No seu caso, esse "if" só será executado se esse outro "if" for verdadeiro.
Isso que chamamos de cadeia em cascata.
sim acabei percebendo isso de uma maneira triste simplesmetem da forma que coloquei n funciona acabei bugando tudo e tendo q desmanchar, tentarei refazer hoje
info
Grupo: Lenda
Registrado: 03/10/06
Posts: 2.6k
Reputação: +309
Gênero: Masculino
Char no Tibia: Knight Orion

Quando um if é seguido de um elseif, se o código entrar no bloco do if, ele não executa o teste do elseif e pula até o end que fecha o if. Sem elseif, ele vai testar as 2 situações, uma depois da outra, e isso pode alterar o resultado do script - no seu caso, pode mudar o conteúdo de move




info
Grupo: Visconde
Registrado: 21/05/13
Posts: 303
Reputação: +25
então gente eu tou add um sistema no meu serve e gostaria da ajuda de voces para me ajudarem numa pequena duvida
segue
como devo deixar o script? tem alguma diferença entre os 2 modos ao executa-lo?
if ou elseif
modo 1
if it == "2" then
if getItemAttribute(idd, "skt2") then
move = movestable[getItemAttribute(idd, "skt2")].move2
elseif getItemAttribute(slotball, "TMN") == 2 then
move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0}
else
move = movestable[name].move2
end
end
modo 2
if it == "2" then
if getItemAttribute(idd, "skt2") then
move = movestable[getItemAttribute(idd, "skt2")].move2
if getItemAttribute(slotball, "TMN") == 2 then
move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0}
else
move = movestable[name].move2
end
end
Editado Fevereiro 6 por wevertonvrb