wevertonvrb 25 Postado Fevereiro 6, 2017 Share Postado Fevereiro 6, 2017 (editado) 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 elseifmodo 1 Spoiler 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 Spoiler 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, 2017 por wevertonvrb Link para o comentário Compartilhar em outros sites More sharing options...
0 Lordfire 309 Postado Fevereiro 9, 2017 Share Postado Fevereiro 9, 2017 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 Link para o comentário Compartilhar em outros sites More sharing options...
0 Gengo 199 Postado Fevereiro 6, 2017 Share Postado Fevereiro 6, 2017 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. Link para o comentário Compartilhar em outros sites More sharing options...
0 Poccnn 385 Postado Fevereiro 6, 2017 Share Postado Fevereiro 6, 2017 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. Citar if getItemAttribute(slotball, "TMN") == 2 then No seu caso, esse "if" só será executado se esse outro "if" for verdadeiro. Citar if getItemAttribute(idd, "skt2") then Isso que chamamos de cadeia em cascata. Link para o comentário Compartilhar em outros sites More sharing options...
0 wevertonvrb 25 Postado Fevereiro 7, 2017 Autor Share Postado Fevereiro 7, 2017 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 Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
wevertonvrb 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
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados