Ir para conteúdo

Eventide

Cavaleiro
  • Total de itens

    189
  • Registro em

  • Última visita

Tudo que Eventide postou

  1. coloca meu nome ae, vo participa... :-D 123 = "tente outra vez" brinks edit: e até quando tenho que enviar o script ?
  2. estou planejando fazer um desse, quando eu fizer eu aviso aqui e 6 baxa :-D
  3. na verdade o tópico original de onde ele tirou isso era um tutorial, com o script bem incompleto, só como base, porem bem explicado... com essa adaptação, virou um download incompleto, pelo menos você deveria completar para postar ele assim né champs... :-) caso queira completar, fale comigo que eu te mando e você edita ae @guizo você aqui!? xD achei q tivesse foragido..
  4. é, mereceu o 2° lugar naquele torneio... :-D só achei que deveria ter encurtado mais U.u tá muito grande e sem necessidade.. em breve eu posto o meu script. :-P
  5. ids = {2160 = ["crystal_coin"], 2148 = ["gold_coin"], 100 = ["void"]} tá completamente errado isso... 1° - não se pode declarar números sozinhos como variável. 2° - pra que raios você colocou [] ? poderia ter declarado com uma tabela secundaria ali ou então só a variável e o numero mesmo fora isso, tá bom pro começo do conteúdo... :-D
  6. achei um pequeno erro, você chamou a função antes dela ser declarada... declare ela primeiro e depois chame, da mais certo. ou melhor ainda, coloque a função como local. :-)
  7. lawl já é o segundo tópico meu que eu penso em trazer pro sanduíche tibiano e trazem por mim... só uma dica, coloque os exemplos entre as tags [code.] script[/code.] (sem o "ponto") @tprocheira quando eu fiz o tuto, essa função ainda não estava em desuso.. :-)
  8. uia, eu passei pra colaborador *.* pena que estou viajando e não vou poder postar muita coisa (no pc q eu to demora duas horas pra abrir a página, uhul!)
  9. na verdade isso aqui é tutorial de scripting, alguém move certo isso aqui por favor... :-P scripting também é programação, mas tudo tem que estar no seu devido lugar, mesmo que o nome confunda..
  10. Programação Orientada a Objetos [Lua] Que raios será isso? A orientação a objetos, também conhecida como Programação Orientada a Objetos (POO) ou ainda em inglês Object-Oriented Programming (OOP) é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos. Em alguns contextos, prefere-se usar modelagem orientada ao objeto, em vez de programação. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um sistema de software. O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre estes objetos. Na programação orientada a objetos, implementa-se um conjunto de classes que definem os objetos presentes no sistema de software. Cada classe determina o comportamento (definidos nos métodos) e estados possíveis (atributos) de seus objetos, assim como o relacionamento com outros objetos. fonte: wikipedia :slap: ahn? Traduzindo: É uma forma de organizar e programar seus codes de forma diferente da habitual. Nessa forma são definidas classes e seus atributos e objetos pertencentes a essa classe, "fragam" esses atributos. E como fazer isso em lua? segue o tutorial feito pelo Fusion(graças a insistentes pedidos meus): Tutorial: Como eu(fusion) vi que varias pessoas estão tendo duvidas em relação a 'Lua orientada a objetos', eu resolvi criar um tutorial para esclarece-las. Primeiramente, o que a final de contas é 'Lua orientada a objetos'? É nada mais do que um objeto que é criado a partir de uma 'classe' e que contém informações próprias. E como podemos criar essas tal 'classes'? Bom, existem vários métodos mas o mais utilizado é: Class = {} Mas atenção, não é só isso! Uma classe precisa de um 'banco de dados' para armazenar suas características. Para isso, criamos uma metatable: Class_Metatable { __index = Class } Mas e agora? Como que nós podemos usar essas 'classes' para criar objetos? Para criar um objeto com a 'classe', nós devemos criar uma nova instância dela. Por exemplo: Object = Object or {} Object = setmetatable ( Object, Class_Metatable ) Pronto. Uma nova instância foi criada a partir de uma classe. Mas há outro modo também que é bem mais usado. Criar uma instância por meio de uma função na class normalmente denominada 'new'. Ela fica mais ou menos assim: function Class:new () return setmetatable ( {}, Class_Metatable ) end Caso você queira já definir características nessa função, faça da seguinte maneira: function Class:new ( X ) return setmetatable ( { X = X }, Class_Metatable ) end Ok. Já sabemos como criar classes, instâncias mas e quanto as funções dessa classe e como usá-las? Para criar uma função nesta 'classe' você precisa fornecer a informação para o programa: function Class:Function ( Arguments ) -- Stuff end Facil não? Pois é mas é agora que entra a parte que deve confundir mais as pessoas: como usá-las. Na verdade essa é uma parte bem simples. Você deve fornecer a instância que esta sendo usada ( nesse caso 'Object' ) e depois o comando: Object:Function ( Arguments ) não entendeu como funciona os objetos? observe o desenho: E como podemos criar novas características nessa 'classe'? Em Lua se você usar uma variável inexistente, ela será criada instantaneamente e usada. Nas 'classes' Não é diferente. Para criar novas variáveis para a classe basta adicionar um 'self' na frente. Desse modo: functon Class:Function ( Arguments ) self.name = Arguments.name end Pois é. Mamão com açúcar. Mas e para utiliza-las? Do mesmo jeito. Para utilizar essas variáveis você precisa apenas que colocar um 'self' na frente. Agora ai vai um exemplo de criação e utilização de uma classe: Class = {} Class_Metatable = { __index = Class } function Class:new () return setmetatable ( {}, Class_Metatable ) end function Class:SetName ( name ) self.name = name end function Class:GetName ( ) return self.name end Object = Class:new () Object:SetName ( 'MyClass' ) print ( Object:GetName ) Pronto! Espero que com esse pequeno o tutorial você já possa entender melhor como fazer uma classe em Lua e como utiliza-las.
  11. VB? lawl onde coloca? coloca no global.lua muito bom, vai ajudar muito essas funções :-P
  12. Olá XTibia.com, Gostaria de ser colaborador do XTibia.com na área de scripting porque sinto que posso ajudar a comunidade de alguma forma. Nome Completo: Gustavo junqueira de carvalho Data de Nascimento: 05/02/1994 Cidade - Estado: minas gerais Área que deseja atuar: scripting Link para um de seus trabalhos: [link] [link]
  13. @bolhinha que trade ? " @fliper xô ve o tópico ? :-) @mimow o de report eu testei em 8.22, mas talvez pegue em 8.1 o de enquete, eu testei junto com o autor(haxy) em um ot 8.1 :-)
  14. @tibiaa4e o comando print, exibe um texto no executável do servidor... :-) e o code em c++ q vc se refere deve ser o ctrl+r, esse sistema é por talk, vc só precisa dizer !report "texto e ele cria um report no arquivo txt chamado reports.txt, e no final fica o nome do usuário, ai caso seja flood, o usuário pode ser imediatamente banido... :-) @dandarox & gabriel valeu, que pena que o de enquete não é meu, o que eu fiz foi o de report. T.T
  15. cara, se você faz um OT 7.6 com sprites 8.2, qual é a graça ? pra mim isso ai é 8.2 não 7.7... ( não entendi o objetivo desse projeto... " )
  16. primeiro, gostaria de dizer que ambos os scripts foram feitos para este duelo: http://forums.######/showthread.php?t=63138 Report: Nome do script: sistema de report Versão: acredito que de 8.1 pra cima pegue. Autor: Eventide Script: function onSay(cid, words, param) local names = {} if isInArray(names, getPlayerName(cid)) then --// anti-flood return FALSE --// end the script else local enc = {report = tostring(param), name = getPlayerName(cid)} ---// table with variables io.open(w, "reports.txt") --// opening the report log io.write("reports.txt", tostring(enc.report)"by".. enc.name .."/n") --// writing the report io.close("reports.txt") --//closing the report log table.insert(names, enc.name) --// anti-flood addEvent(ArrayClean, 100, arr) --// 100 is the exhaust time in micro seconds. end end function ArrayClean(arr) for rox = 1,#names do if names[rox] == name then table.remove(names, rox) --//exhaust. break end end end Como Instalar: primeiro vá até a pasta data/talkactions/scripts do seu servidor copie e cole um script qualquer e renomeie para report.lua e copie e cole o script dentro dele, logo depois crie um arquivo chamado reports.txt e não escreva nada nele. depois va até data/talkactions e abra o arquivo talkactions.xml, escreva o seguinte dentro dele: <talkaction words="!report" script="report.lua" /> e... pronto Enquete: nome do script: sistema de enquete versão: 8.1+ autor: Haxy Script: --[[ Primeiramente gostaria de dizer que o script foi dedicado ao duelo: [URL]http://forums.######/showthread.php?p=515871[/URL] O código esta livre para uso, estudo e/ou modificações, desde que mantido os créditos. Créditos: Haxy ]]-- local cmds = { -- Atenção, abaixo seguem os comandos do sistema, caso deseje mudar, mude também em talkactions.xml cmdAbrirVot = '/ligarvota', -- Ligar a votação, e em seguida, após as aspas, a mensagem cmdFecharVot = '/fechavota', -- Encerrar votação cmdVotar = '!votar' -- Para votar, e após as aspas, sim ou nao, caso contrario o volo não será contabilizado } local basicConfig = { access = 3, -- Access minimo para abrir e fechar votações storagePower = 27900, -- Storage value sobre se o sistema esta ligado ou desligado strS = 27901, -- Votos Sim strN = 27902 -- Votos Não } local playersVotaram = {} function onSay(cid, words, param) if words == cmds.cmdAbrirVot and getPlayerAccess(cid) >= basicConfig.access then -- (Z) if getGlobalStorageValue(basicConfig.storagePower) == -1 then -- (ZA) setGlobalStorageValue(basicConfig.storagePower,1) print('Votacao iniciada por ' .. getPlayerName(cid) .. ', com a seguinte pergunta:\n'..param) doPlayerSay(cid,'/B Votação iniciada:\n'..param..'\nUse: '.. cmds.cmdVotar..' "sim para votar sim\n'.. cmds.cmdVotar ..' "nao para votar nao.',1) else -- (ZA) doPlayerSendCancel(cid,'No momento já existe uma votação no ar, digite: ' .. cmds.cmdFecharVot .. ' para finalizar a atual e começar uma nova.') end-- (ZA) elseif words == cmds.cmdVotar then -- (Z) if getGlobalStorageValue(basicConfig.storagePower) == 1 then -- (ZC) local vot = 0 for i = 0,#playersVotaram do -- (ZD) if getPlayerName(cid) == playersVotaram[i] then -- (ZDA) vot = 1 break else -- (ZDA) vot = 0 end -- (ZDA) end -- (ZD) if vot == 0 then -- (ZE) if param == 'sim' then -- (ZEA) if getGlobalStorageValue(basicConfig.strS) == -1 then -- (ZEAA) setGlobalStorageValue(basicConfig.strS,1) else -- (ZEAA) setGlobalStorageValue(basicConfig.strS,getGlobalSt orageValue(basicConfig.strS)+1) end -- (ZEAA) doPlayerSendTextMessage(cid,22,'Obrigado pelo seu voto.') print(getPlayerName(cid)..' votou sim.') table.insert(playersVotaram,getPlayerName(cid)) elseif param == 'nao' then -- (ZEA) if getGlobalStorageValue(basicConfig.strN) == -1 then -- (ZEAB) setGlobalStorageValue(basicConfig.strN,1) else -- (ZEAB) setGlobalStorageValue(basicConfig.strN,getGlobalSt orageValue(basicConfig.strN)+1) end -- (ZEAB) print(getPlayerName(cid)..' votou nao.') doPlayerSendTextMessage(cid,22,'Obrigado pelo seu voto.') table.insert(playersVotaram,getPlayerName(cid)) else -- (ZEA) doPlayerSendCancel(cid,'Desculpe, não entendemos seu voto, use apenas as opções \'sim\' e \'nao\'.') end -- (ZEA) else -- (ZE) doPlayerSendCancel(cid,'Desculpe, mas você não pode votar mais de uma vez em uma unica votação.') end -- (ZE) else -- (ZC) doPlayerSendCancel(cid,'Não esta ocorrendo votações no momento.') end -- (ZC) elseif words == cmds.cmdFecharVot and getPlayerAccess(cid) >= basicConfig.access then -- (Z) if getGlobalStorageValue(basicConfig.storagePower) == 1 then -- (ZB) if getGlobalStorageValue(basicConfig.strS) == -1 then -- (ZBA) setGlobalStorageValue(basicConfig.strS,0) end -- (ZBA) if getGlobalStorageValue(basicConfig.strN) == -1 then -- (ZBB) setGlobalStorageValue(basicConfig.strN,0) end -- (ZBB) doPlayerSay(cid,'/B A votação terminou, Resultado:\nSIM > ' ..getGlobalStorageValue(basicConfig.strS).. ' x ' ..getGlobalStorageValue(basicConfig.strN)..' < NÃO.',1) print('Votacao terminada em Sim '..getGlobalStorageValue(basicConfig.strS).. 'x' .. getGlobalStorageValue(basicConfig.strN) ..' Nao.') playersVotaram = nil setGlobalStorageValue(basicConfig.storagePower,-1) setGlobalStorageValue(basicConfig.strS,-1) setGlobalStorageValue(basicConfig.strN,-1) else -- (ZB) doPlayerSendCancel(cid,'Não existe uma votação iniciada.') end -- (ZB) end -- (Z) end --[[ MODO DE USO! 1° Digitar, /ligarvota "PERGUNTA AQUI 2° Quando quiser encerrar a votação digitar: /fechavota 3° Após o encerramento os resultados terem sido mostrados, use o comando /reload talk Obrigado ]]-- Como instalar: va na pasta data/talkactions/scripts do seu servidor copie e cole um arquivo qualquer renomeie para votesys.lua, e cole o script dentro dele. logo depois va até a pasta data/talkactions e abra o arquivo talkactions.xml, copie e cole isso nele: <talkaction words="/ligarvota" script="votesys.lua" /> <talkaction words="/fechavota" script="votesys.lua" /> <talkaction words="!votar" script="votesys.lua" />
  17. @/\ flooders... @tópico me diga, quem vai querer saber a história do c++ ? as pessoas querem saber como programar, e não esse bla bla bla... curto e grosso...
  18. não vai passar o site para darmos uma olhada ? T.T tirando que está um pouco curta, a entrevista está muito boa, parabéns ae =O
  • Quem Está Navegando   0 membros estão online

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