Ir para conteúdo
Entre para seguir isso  
Conde2

Tópico das Funções !!

Recommended Posts

Conde2    0
Conde2

tecnicamente while tambem é uma função

uma função de repetição xD

mais ai fica muito difícil hahahaa depois vo postar mais alguma de OTServer =D

Compartilhar este post


Link para o post
Compartilhar em outros sites
Gpwjhlkdcf    21
Gpwjhlkdcf
tecnicamente while tambem é uma função

uma função de repetição xD

mais ai fica muito difícil hahahaa depois vo postar mais alguma de OTServer =D

while é uma estrutura de controle, não uma função... '-'

Compartilhar este post


Link para o post
Compartilhar em outros sites
Flatronez    1
Flatronez

Substitui a função table.find

 

function table_find(tabela, valor)
   if valor ~= nil then
       for i, v in pairs(tabela) do
           if valor == tabela[i] then
             return i
           end
       end
   end
end

Editado por Mickfern

Compartilhar este post


Link para o post
Compartilhar em outros sites
Eventide    7
Eventide

substituindo "tabela" por "v", o código é processado mais rápido =)~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Flatronez    1
Flatronez

@Evesys

 

Não sei pq (acho que é coisa do meu pc mesmo) mas dá erro se usar o v no lugar de tabela >_<

Compartilhar este post


Link para o post
Compartilhar em outros sites
Mock    32
Mock

function math.pi()
  return 3.1415926535898
end

a função mais complexa from ever!

Editado por Mickfern

Compartilhar este post


Link para o post
Compartilhar em outros sites
Conde2    0
Conde2

@Mock

Mock e suas funções de 100000 linhas xD

Mesmo assim não deixa de estar certo =P

@Tópico

Esse é um outro jeito de fazer a função math.max =D

 

function math.maxx(a,
 local var = math.min(a,
      if var == a then
          return b
    else
           return a
    end
end

Compartilhar este post


Link para o post
Compartilhar em outros sites
Mock    32
Mock

function math.mainn(a,
 local var = math.max(a,
      if var == a then
          return a
    else
           return b
    end
end  

vlws :D

ripei a sua

Editado por Mickfern

Compartilhar este post


Link para o post
Compartilhar em outros sites
Gpwjhlkdcf    21
Gpwjhlkdcf
function math.pi()
  return 3.1415926535898
end

a função mais complexa from ever!

math.pi não é uma função, é uma variável :loool::loool:

math.pi = 3.1415926535898

Agora está certo hehehe

Editado por Mickfern

Compartilhar este post


Link para o post
Compartilhar em outros sites
Conde2    0
Conde2

@Skyen Hasus

Sempre com suas lições de LUA

hahahahhaha mais obrigado por ensirnar agente =D

 

 

@Mock

Tava só esperando pra ve quem ia rippa minha função pra faze ela inversa =D

Mock rippper hahahah (Brinks =P)

 

 

@Tópico

Queria que alguem fala-se se isso ta certo fiz agora de cabeça mais não sei se ta certo hahaha =D

function string.rep(str,num)
local count = 0
local rep = ""

       while count ~= num do
         count = count + 1
         rep = rep..str
    end
return rep
end

Editado por Conde2

Compartilhar este post


Link para o post
Compartilhar em outros sites
Gpwjhlkdcf    21
Gpwjhlkdcf
@Tópico

Queria que alguem fala-se se isso ta certo fiz agora de cabeça mais não sei se ta certo hahaha =D

function string.rep(str,num)
local count = 0
local rep = ""

       while count ~= num do
         count = count + 1
         rep = rep + str
    end
return rep
end

Deu isso:

ERROR: untitled.lua:7: attempt to perform arithmetic on local 'rep' (a string value)

Você tentou concatenar com um sinal de adição (+)! :pirate:

O operador de concatenação são dois pontos (..)

Além disso o código ficou muito grande... ._.

 

function string.rep(s, n)
 local ret = ""
   for times = 1, n do
     ret = ret..s
   end
 return ret
end

Agora está legalzinho... ;)

Editado por Mickfern

Compartilhar este post


Link para o post
Compartilhar em outros sites
Conde2    0
Conde2

PUTZ

Que erro idiota o.O

Eu consegui erra uma coisa que eu sabia =/

É que tambem olha a hora que eu mandei o script lá pelas 00:30

Tava morrendo de sono =S

 

Obrigado Skyen Hasus ~~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Magus    2
Magus

Já que ninguém fez nenhuma das iterator functions :S

 

function ipairs(t)
   local c = 0
   return function()
       c = c + 1
       if (t[c]) then return c, t[c] else return end
   end
end

function lines(file) -- io.lines
   local file = io.open(file, 'r')
   return function()
       return file:read("*l")
   end
end

As mais simples, hehe

Editado por Mickfern

Compartilhar este post


Link para o post
Compartilhar em outros sites
GDLib    2
GDLib

Um math.random bem simples:

 

math.random

 

function math.randomM(w, z)
        z = 36969 * bit.band(z, 65535) + (bit.rshift(z, 16)
        w = 18000 * bit.band(w, 65535) + (bit.rshift(w, 16)
        return bit.lshift(z, 16) + w
end

 

 

Se eu tiver tempo depois crio um com geração não-uniforme.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Mock    32
Mock

@GDLib

pensei que vc tivesse deixado 4 ever a otnet ^^

so tem um ( amais nas linhas 2 e 3.

:P

testei aqui math.randomM(1,10)

o return foi: -1541781936

@topic

Tava lendo o manual de php ai saiu isso:

function string.implode(arr,sep) 
  local str = ""
  sep = sep or ""
  for i=1,#arr do
     str = str..arr[i]..sep
  end
  return str:sub(1,str:len()-1)
end

Editado por Mickfern

Compartilhar este post


Link para o post
Compartilhar em outros sites
Gpwjhlkdcf    21
Gpwjhlkdcf
Um math.random bem simples:

 

math.random

 

function math.randomM(w, z)
        z = 36969 * bit.band(z, 65535) + (bit.rshift(z, 16)
        w = 18000 * bit.band(w, 65535) + (bit.rshift(w, 16)
        return bit.lshift(z, 16) + w
end

 

 

Se eu tiver tempo depois crio um com geração não-uniforme.

Tem 2 parênteses a mais, um na linha 2 e um na linha 3, antes da função rshift...

 

Tentei fazer um math.random aqui, sem usar seed nem nenhuma biblioteca externa (Como o GDLib fez):

function math.random(min, max)
   if min >= max then
     print("Interval is empty.")
     return
   end
 last = ((min-max)*(last or 2000)-1)%((max-min+1)*97531)
 return math.floor((last+min)/97531)+1
end

Não vai haver nenhuma variação se o intervalo entre o minimo e máximo for 1. É um defeito da função que eu não consegui arrumar... ;/ O resto espero estar funcionando...

 

Me baseei no algoritmo do Gerador Congruente Linear (LCG ou GCL), mas com algumas alterações...

Editado por Mickfern

Compartilhar este post


Link para o post
Compartilhar em outros sites
Undead Slayer    0
Undead Slayer
Um math.random bem simples:

 

math.random

 

function math.randomM(w, z)
        z = 36969 * bit.band(z, 65535) + (bit.rshift(z, 16)
        w = 18000 * bit.band(w, 65535) + (bit.rshift(w, 16)
        return bit.lshift(z, 16) + w
end

 

 

Se eu tiver tempo depois crio um com geração não-uniforme.

 

O script ficou ate legal , mas tinha um pequeno erro [pequeno mais fatal...].

Da proxima vez, revise melhor o script e não faça correndo apenas para se exibir....:slap:

<~>No More, Undead Slayer<~>

Compartilhar este post


Link para o post
Compartilhar em outros sites
GDLib    2
GDLib

@Undead Slayer

Não fiz para me exibir, até porque não rodei e testei.

Ao invés de criticar os outros baseado em questões pessoais, tente pelo menos fazer algo.

 

@Mock

Não é parênteses a mais e sim a menos, na verdade faltou fechar.

 

@Skyen Hasus

Acho muito triste a linguagem Lua não ter suporte a operadores bitwise.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Mock    32
Mock

@Undead

O script ficou ate legal , mas tinha um pequeno erro [pequeno mais fatal...].

Da proxima vez, revise melhor o script e não faça correndo apenas para se exibir...

Suponho que ele nao fez pra se exibir

@skyen

o seu random ta bom o problema que ele repete sempre q vc for usar da primeira vez, tenta colocar o last = os.clock ou os.time, pois pelomenos o os.time nunca é igual.

Compartilhar este post


Link para o post
Compartilhar em outros sites
GDLib    2
GDLib

@Mock

Essa idéia sua é semelhante a usar um seedrandom com uso de os.time. Bastante interessante, porém eu não acho que ELE deveria implementar na função dele e sim O USUÁRIO que fosse a usar a função dele que deveria semear a seed.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×