eu ja pensava se o valor de "or" seria "se nao for seria o outro" e mesmo assim estaria certo ai eu vi que sua verifica e de igualdade "==" ou seja esta certo sim.
E claro que isso ia falhar com o not na sua primeira verificaçao mais sua verificaçao era de igualdade e sem outro "boberinha"
Porque ja o and faz as duas verificaçoes
Foi so uma falta de atençao minha
errar e humando




info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino
?
velho, estuda um pouco mais de lua porque está precisando, deixa eu te falar a diferença básica de "and" e "or"...
o "and" sempre vai retornar seu segundo argumento se o primeiro argumento for nil ou false, ou seja, ele só vai executar o bloco que seus argumentos forem verdadeiro, exemplo:
nesse caso só vai executar o script se o nome for joão e a idade for 15, se o nome já não for joão nem vai mais executar nada, depois do "and" ele nem vai mais ler.
o "or" é diferente, é o contrário de "and", ele executa se o seu primeiro bloco é nil ou false:
aqui mesmo que o nome seja maria mas a idade seja 15 ele vai sim executar o script, agora vamos estudar nosso caso
if (getWorldCreatures(0) == 0) or not isInArray(config.days, os.date("%A")) then return true endse não tiver criaturas(players) ou não forem os dias dos fim de semana então
retornar verdadeiro
fim
aqui para executar o script, o primeiro argumento que é para checar sem tem players, porque se tivesse um player no ot ele iria checar o segundo argumento, ja que o primeiro ficaria como "false", então iria checar os dias da semana.
diferente do and, que para executar o script teria que para executar:
se criaturas == 0 e não forem os dias da semana então
retornar verdadeiro
fim
ou seja para checar os dias da semana o primeiro argumento do and teria que ser verdadeiro!
para checar os dias teria que ter 0 criaturas no servidor.
leia mais em: http://www.lua.org/manual/5.1/pt/manual.html#5.4.1
irá te ajudar