eita mano as 2 formas de comparaçao ficaram muito bem feitas kkk nunca ia pensar nessa segunda ae... vlw por disponibilizar ^^
- Fórum
- OTServ
- Recursos
- Scripting
- Mods, funções e outros
- isArrayEquals(a,b)
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

info
Grupo: Conde
Registrado: 30/10/11
Posts: 625
Reputação: +101
Gênero: Masculino

a segunda n funciona se o index n for continuo(concat so pega a parte que é em seguencia (1,2,3...))
ex: {['a'] = 2,1} {1, [3] = 1} seriam iguais
a primeira se b tiver outro elemento que n contenha em a ainda sim vai ser considerado igual,então é melhor vc usar recursividade invertendo a por b(ou outro metodo)
ex: {1} e {1,2} seria considerado igual
ficando assim
function isArrayEquals(a,b,recheck) for x,i in pairs(a) do if i ~= b[x] then return false end end if not recheck then return isArrayEquals(b,a,true) else return true end end
Editado Janeiro 17 por lordbug99
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

achu q vc n leu oq ele flo..
'O que ela faz é comparar duas matrizes unidimensionais'
info
Grupo: Marquês
Registrado: 29/10/11
Posts: 1.2k
Reputação: +134
Gênero: Masculino

Bela função obrigado por disponibilizar.
Apesar de eu só ter entendido um pouco pra q server,vou dar uma relida para entender melhor.
xD
Na verdade é mesmo só para unidimensionais, mas ele deixou mais completinho... Acho que ficou melhor mesmo, ele compara todo o tipo que eu testei... Parabéns.
info
Grupo: Conde
Registrado: 30/10/11
Posts: 625
Reputação: +101
Gênero: Masculino

achu q vc n leu oq ele flo..
'O que ela faz é comparar duas matrizes unidimensionais'
se n sabe n fala
{ ["a"] = 1} é unidimensional
multi seria {{1,2},{4,}}
Editado Janeiro 17 por lordbug99
ok, você "venceu", agora relaxa mano '-'
info
Grupo: Conde
Registrado: 30/10/11
Posts: 625
Reputação: +101
Gênero: Masculino

n cara to falando como slicer,to de boa, é que esse Slicer vem me critica sem nem sabe o que uma matris unidimensional
essa que editei so coloquei uma recursividade,e ela ainda n server para mutidimensinais,cuntinua sendo para unidimesionais
-edit-
se fosse pra competi com alguem ia no duelos kkk
é so critica construtiva
Editado Janeiro 17 por lordbug99




info
Grupo: Barão
Registrado: 19/11/11
Posts: 221
Reputação: +70
O que ela faz é comparar duas matrizes unidimensionais [vlw lf], e retornar true caso os valores forem iguais
Bom, há um tempo eu já ia fazer essa função, ela não é difícil, mas eu ia fazer ela com um for in pairs e comparando cada valor e tal.
Mas eu resolvi entrar na onda de deixar os scripts o mais curto possível, fugindo da POG, e disso:
Foi pra isso:
Exemplo:
local array1 = {1,2,3,4,0} local array2 = {1,2,3,4,0} print(tostring(compair(array1,array2)))No caso ia printar true, mas, se qualquer valor do array2 fosse diferente do array1 (na mesma posição) printaria false
Numa rápida pesquisa no google não achei a função aqui, mas espero que eu tenha conseguido deixar o menor possível xD
Espero que seja útil, pelo menos pra mim vai ser, comparar vetores é daora mano
Editado Janeiro 17 por 20cm