Pessoal que faz jogos no rob (lox), é possivel usar o script "if print("oi") then alguma coisa"?
Obs : matéria fake, mas se puder e tiver um amigo que cria jogos no rob (lox), passe essa pergunta pra ele.
Soluções para a tarefa
Resposta Direta: Sim, mas não vai executar o que está dentro do then
O jogo em sí usa Lua como linguagem, portanto quando passada uma função ao IF, o compilador não vai executar o que está dentro do "then", porque de uma forma ou outra a função não é um booleano Verdadeiro, mas vai executar o print("oi"), pois o IF não previne a execução da função fora do escopo then.
Um teste direto:
1. if print("Teste") then
2. print("Deu certo")
3. end
>>> Teste
Aí você me pergunta "Porque não deu erro?", porque apesar de tudo, passar uma função ao IF é pedir para o compilador ler seu retorno, como eu falei lá em cima querendo ou não o valor não é Verdadeiro, é Nulo, pois print retorna valores Nulos.
Usando um else:
1. if print("Teste") then
2. print("Deu certo")
3. else
4. print("Oops")
5. end
>>> Teste
>>> Oops
Isso prova que Lua considera a função (com os parênteses) como se fosse o valor booleano Falso, pra dar verdadeiro simplesmente tire os argumentos.
Se quis printar o "oi", simplesmente coloque uma condição e passe a função pra dentro do escopo then.
Bom Código :)
Fonte: Wikibooks sobre Game Development
O script que eu tava pensando era:
if Baseplate.Lighting.Transparency = 1 then
print ("oi")
if print ("oi") then
Baseplate.Lighting.Transparency = 0