Ir para conteúdo

Eventide

Cavaleiro
  • Total de itens

    189
  • Registro em

  • Última visita

Tudo que Eventide postou

  1. funções: Library: --[[ ------------------------------------------------------ Eventide Script Library Version: 1 Author: Gustavo Junqueira (Eventide) ------------------------------------------------------- ]] function addNumberOnArray(array, number) for ret = 1,table.getn(array) do if type(array[ret]) == number then array[ret] + number end end end function getArrPosByName(array, name) for ret = 1,table.getn(array) do if array[ret] == name then return ret break end end end function isPlayerOnArea(name, alt, lar, esq) if getPlayerPosition(getPlayerByName(name)) == esq then return TRUE else for T = 1,alt do Pos = {x = esq.x, y = esq.y + T, z = esq.z} if getPlayerPosition(getPlayerByName(name)) == Pos then return TRUE end end for T = 1,lar do if lar == alt then Pos = {x = esq.x - T, y = esq.y + T, z = esq.z} if getPlayerPosition(getPlayerByName(name)) == Pos then return TRUE end else for U = 1,alt do Pos = {x = esq.x - T, y = esq.y + U, z = esq.z} if getPlayerPosition(getPlayerByName(name)) == Pos then return TRUE end end end end end end function getCountOnArr(array, search) count = {0} for T = 1,#array do if array[T] == search table.insert(count, 0) end end final = #count return final end function doCalculateArray(array, calc) if calc == plus then final = math.floor(string.explode(table.concat(array, "+"))) elseif calc == less then final = math.floor(string.explode(table.concat(array, "-"))) elseif calc == mult then final = math.floor(string.explode(table.concat(array, "*"))) elseif calc == div then final = math.floor(string.explode(table.concat(array, "/"))) else return FALSE end return final end function changeLookDir(cid, dir) pp = getPlayerPosition(cid) if dir == north then tp1 = {x = pp.x, y = pp.y - 1, z = pp.z} tp2 = {x = pp.x, y = pp.y + 1, z = pp.z} doTeleportThing(cid, tp1, TRUE) doTeleportThing(cid, tp2, FALSE) elseif dir == south then tp1 = {x = pp.x, y = pp.y + 1, z = pp.z} tp2 = {x = pp.x, y = pp.y - 1, z = pp.z} doTeleportThing(cid, tp1, TRUE) doTeleportThing(cid, tp2, FALSE) elseif dir == right then tp1 = {x = pp.x - 1, y = pp.y, z = pp.z} tp1 = {x = pp.x + 1, y = pp.y, z = pp.z} doTeleportThing(cid, tp1, TRUE) doTeleportThing(cid, tp2, FALSE) elseif dir == left then tp1 = {x = pp.x + 1, y = pp.y, z = pp.z} tp1 = {x = pp.x - 1, y = pp.y, z = pp.z} doTeleportThing(cid, tp1, TRUE) doTeleportThing(cid, tp2, FALSE) else return FALSE end end para instalar simplesmente copie e cole isso no seu global.lua caso seu server seja TFS 0.3, va na pasta data/lib e cole a library no arquivo function.lua
  2. Olá, eu venho aqui para tentar unir os jogadores do Xtibia em uma unica guild... e peço que responda a enquete para escolhermos tudo de forma democrática! sobre os mundos: Xantera, apesar de ser pvp, é bem tranqüilo, nunca tomei PK apesar de ser bem folgado... Titania é um mundo pvp bem sanguinário, lá tem muito random PK, já fui até rookado lá! :~ Lunara é um servidor pvp bem mediano, você não vai encontrar muitos random PKs, mas não de motivos, você pode tomar PK ! Rubera é um mundo bem passifico, assim como Xantera.. (no meu ponto de vista) Luminera um mundo non pvp cheio de bot e trap (e fila também) Inferna pvp enforced Participação: quanto a participação, por favor responda com sinceridade... :~ a quantidade de votos de participação, pode influenciar na decisão de levar a guild para frente ou não Premmy: só vote nessa enquete caso realmente for jogar na guild, ou caso queira colaborar conosco e se tornar leader voluntario.. (testa de ferro plx)
  3. perfeito, isso tornara o processo de responder uma duvida bem mais rápido, e conseqüentemente mais eficiente... :*
  4. vocês pularam a 3° serie? tsc tsc além do mais, Tibia é um mundo de fantasia, sejam criativos.. '-' pensando assim de maneira "fantasiosa" da pra imaginar que ali em baixo da montanha havia um buraco, e que um rio subterrâneo passava ali em baixo, e aquela região tem muita chuva e que em um certo temporal, na montanha desceu uma cachoeira e que formou o lago, que quebrou o tanto de terra que separaria o mesmo do rio, sendo assim, o que desce vai no rio subterrâneo.. se não tiver critica boa, por favor nem a faça.. u.u
  5. @zafor champz, já ouviu falar de rio/passagem subterrânea? e de lençóis d'agua ? pode existir cachoeiras em lagos sim... :-D @schivinato para reportar um flood não é preciso fazer outro.. xD
  6. qual a diferença entre colaborador é colunista? mesmo assim, tá muito bom isso aê! ótima idéia!
  7. Criticas: -Muito Quadrado as casas; ---------> casas são quadradas -Continenente pequeno. ---------> é uma ilha! ;D Sugestões: -Adicione mais detalhes de Interior; ------> vou fazer -Troque os postes que estão na montanha por outro tipo de iluminação; ---------> coloquei postes pois é uma cidade(vila) em montanhas -Coloque um pouco de grama na montanha; -------> vou fazer -Faça um escoamento de toda água da cahoeira indo pro mar, ficará bem bunitinho; --------> a ideia inicial é de um lago, e não tem como abrir um rio para o mar pois há montanha em volta -E por fim, coloque umas plantinhas coloridas perto da cahoeira e do rio(escoamento). -----> vou tentar fazer, mas não sei
  8. aceitarei todo tipo de critica, desde que tenha fundamento... Templo: Àrea de trade: Depot e algumas lojinhas: Barco: Visão área:
  9. FELIZ NATAL PRA TODO MUNDO!
  10. não entendi o que você quer, explique de forma melhor por favor... :-)
  11. pauersin iztu nun eah tiupes, izto eah istupideiz.. ê vuçe eh um sskroto, oks?
  12. por isso q eu nem tenho mais orkut.. O POVIN BURRO EIN SÔ!
  13. já ouviu falar de Nelson Gomes ? rook é um saco, com certeza ele usa Marcio Cunha pra joga em outro char...
  14. shout box é ruim porque precisa ficar dando f5... '-'
  15. team speak é legal, mas eu não gostaria porque não tenho microfone.. :-/ e se limitar a shout box para usuários com mais de 200 posts é sacanagem com os usuários que acabaram de chegar.. :-P o limite poderia ser de uns 50 posts :-) @rodrigo não entendi, porque não mirc?
  16. @jv mirc é muito superior, por exemplo, alguém vai e faz um flood absurdo, ela toma kill automático... além de outras inúmeras vantagens, como por exemplo, você tem a possibilidade de registrar seu nick, eliminando o risco de fakes.. e além do mais tem como enxergar quem é mod e quem não é, sendo que há vários tipos de mod.. ;-D
  17. Isso é um tutorial de scripting! :withstupidsmiley: Programação Orientada a Objetos |Parte 2|-- Herança e utilização Indice: [parte 1] Herança, é uma classe que é baseada em uma classe base Nós criamos uma classe base: BaseClass = {} Depois nós criamos uma outra baseada: BasedClass = {} Mas e agora como nós iremos definir essa classe como uma classe base? Nós iremos definir a metatable da classe para a classe base da seguinte maneira: setmetatable ( BasedClasse, BaseClass ) Lógica: Classe Animal. => Classe base. Classe Gato é um animal. => Classe base = animal. Classe Cachorro é um animal. => Classe base = animal. Representamos em Lua: Animal = {} Animal_Metatable = { __index = Animal } Gato = {} setmetatable ( Gato, Animal ) Gato_Metatable = { __index = Animal } Cachorro = {} setmetatable ( Cachorro, Animal ) Cachorro_Metatable = { __index = Animal } Resumindo, quando há uma herança de classes, uma classe receberá todas as funções e variaveis membro da classe base. Agora um exemplo completo de como usar o metodo: Comida = {} Comida_Metatable = { __index = Comida } function Comida:new ( o ) return setmetatable ( o or {}, Comida_Metatable ) end function Comida:Tipo () return { 'um nada' } end function Comida:Ingredientes () return { 'nada' } end function Comida:Comer () local x = math.random ( 1, 3 ) if ( x == 1 ) then return 'Hmm que delicia!' else return 'Eca!!' end end Hamburger = {} setmetatable ( Hamburger, Comida_Metatable ) Hamburger_Metatable = { __index = Hamburger } function Hamburger:new ( o ) return setmetatable ( o or {}, Hamburger_Metatable ) end function Hamburger:Tipo () return { 'um carboidrato', 'uma proteína' } end function Hamburger:Ingredientes () return { 'pão', 'carne', 'queijo' } end Frango = {} setmetatable ( Frango, Comida_Metatable ) Frango_Metatable = { __index = Frango } function Frango:new ( o ) return setmetatable ( o or {}, Frango_Metatable ) end function Frango:Tipo () return { 'uma proteína' } end MeuHamburger = Hamburger:new () TiposDoMeuHamburger = MeuHamburger:Tipo () HTipos = '' for index, tipo in ipairs ( TiposDoMeuHamburger ) do if ( index == #TiposDoMeuHamburger and #TiposDoMeuHamburger > 1 ) then HTipos = HTipos .. ' e ' elseif ( index > 1 ) then HTipos = HTipos .. ', ' end HTipos = HTipos .. tipo end IngredientesDoMeuHamburger = MeuHamburger:Ingredientes () HIngredientes = '' for index, ingrediente in ipairs ( IngredientesDoMeuHamburger ) do if ( index == #IngredientesDoMeuHamburger and #IngredientesDoMeuHamburger > 1 ) then HIngredientes = HIngredientes .. ' e ' elseif ( index > 1 ) then HIngredientes = HIngredientes .. ', ' end HIngredientes = HIngredientes .. ingrediente end print ( 'O meu hamburger é ' .. HTipos .. ' e é feito com ' .. HIngredientes .. '.\nQue delicia! Vou come-lo!\n\n' .. MeuHamburger:Comer () .. '\n' ) SeuFrango = Frango:new() TiposDoSeuFrango = SeuFrango:Tipo () FTipos = '' for index, tipo in ipairs ( TiposDoSeuFrango ) do if ( index == #TiposDoSeuFrango and #TiposDoSeuFrango > 1 ) then FTipos = FTipos .. ' e ' elseif ( index > 1 ) then FTipos = FTipos .. ', ' end FTipos = FTipos .. tipo end IngredientesDoSeuFrango = SeuFrango:Ingredientes () FIngredientes = '' for index, ingrediente in ipairs ( IngredientesDoSeuFrango ) do if ( index == #IngredientesDoSeuFrango and #IngredientesDoSeuFrango > 1) then FIngredientes = FIngredientes .. ' e ' elseif ( index > 1 ) then FIngredientes = FIngredientes .. ', ' end FIngredientes = FIngredientes .. ingrediente end print ( 'O seu frago é ' .. FTipos .. ' e é feito com ' .. FIngredientes .. '. Ele me parece muito gostoso... Sera que eu...\n\n' .. SeuFrango:Comer () .. '\n\n OPS! Ja era!') Pronto! Espero que com esse pequeno tutorial você jé possa entender melhor como fazer uma classe em Lua e como utiliza-la. --------------------------------------------------------------------------------------------- Creditos: Fusion (tutorial) Eventide (formatação)
  18. excelente script... :-D~ está altamente configurável, excelente! :*
  19. um canal de mirc resolveria tudo, mirc é 100x superior ao msn.. não vou citar suas vantagens pois acredito que todos devem saber quais são..
  20. eu preferia um canal no mirc... ;X
  21. Eventide

    Nota Do Podcast!

    tá dando erro na hora de abrir...
  22. gostei! seria uma boa... ;-o eu até postaria algumas coisinhas.. xD
  23. só para completar, um passarinho me contou que o addEvent() vai acabar, dando origem ao sleep(), bem melhor, não ? :-D
  24. outro: deveria comentar mais tópicos, tutoriais e downloads interessantes... :-D
  25. impossível... :-)
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...