Ir para conteúdo

LuckOake

Marquês
  • Total de itens

    1104
  • Registro em

  • Última visita

  • Dias Ganhos

    20

Histórico de Reputação

  1. Upvote
    LuckOake recebeu reputação de GokuBlack em Partner System 2.0 [Atualizado]   
    Olááá galera do Ékz. Esses dias o XTibia tá muito parado, não tem nem pedido direito pra atender, e no último Sds teve poucos scripts. Entããão resolvi postar um sisteminha que eu fiz com base num pedido em algum lugar da internet.
     
    É o Partner System.
     
    O que ele faz: Você chama um amigo seu para jogar o server, mas para dar um ânimo nele, você convida-o para ser seu Partner, e enquanto ele for abaixo de tal level (configurável, default 50), ele terá um bônus de EXP (configurável, default 10%). Assim que chegar no level limite, o bônus acaba.
     
    Motivos para usar o sistema? Ora, como já disse anteriormente, serve para animar o jogo do player, para incentivá-lo a jogar mais.
     
    Chega de blablabla e vamos ao script:
     
     
     
     
    Novidades:

    • Agora você pode aceitar ou rejeitar convites mesmo que a pessoa que te convidou esteja offline • Quando você convida alguém e ele rejeita ou aceita o convite com você offline, ao logar você recebe uma mensagem informando a decisão da pessoa. • Todos os bugs corrigidos
     
    Configurando:

    waittime = 24 -- Tempo de espera em horas para convidar alguém novamente storage = 4651 level = 100 -- Level necessário para convidar alguém maxlevel = 50000 -- Level máximo para alguém virar partner e para ter bônus de EXP maxp = 5 -- Maximo de partners que alguém pode ter rate = 1.1 -- Rate do bônus
     
    Uso:

    Player: !partner Fulano -- Fulano foi convidado Fulano: !partner aceitar ou rejeitar -- Fulano aceita ou rejeita o convite.
     
    Observações:
    1) Todos os bugs corrigidos. 2) Funciona em TFS versão 0.3.6 pra frente.
     
    Créditos:

    LuckOake -- Pelo sistema Vodkart -- Pela ideia e ajudas
  2. Upvote
    LuckOake recebeu reputação de Bloode em Aprendendo A Scriptear   
    Olá galera. Muitos de vocês que são iniciantes em scripting tem certa dificuldade para criar scripts, uns por falta de ideias, outros por realmente não conseguirem montar nada. Por isso, resolvi fazer esse tutorial simples e claro.



    Aprendendo a Scriptear


    Introdução: Bom, primeiramente, você já se perguntou "por quê quero scriptear"? Se sim, legal, mas chegou à uma resposta? Se não, pense nisso. Tente chegar à algo que te inspire, seja observando trabalhos de scripters mais conhecidos e habilidosos ou simplesmente querendo criar novas coisas para ter seu nome conhecido. Sem uma inspiração você não vai avançar, acredite em mim.

    Começando no mundo dos scripts: Quando você tentou aprender a scriptear pela primeira vez, o que você fez? 95% das pessoas responderiam: "Eu li tutoriais". Tudo bem, mas será que isso é certo? Posso te assegurar que não. É claro, ler um tutorial abre sua mente para a parte teórica de scriptear, mas nada muito grande, de pouco adianta a teoria se você não entende a prática.

    Como praticar: Vou compartilhar com vocês uma experiência de vida. Eu tenho um server que está atualmente fechado para reformas, mas antigamente, eu necessitava sempre de inovar para agradar os players, só que os scripts que eu queria nem sempre estavam disponíveis na net. O que eu fazia? Simples, procurava scripts que possuiam as funções que eu precisava e ia juntando os pedaços até formar o que eu queria. Não, nunca funcionava de primeira, tinha vez que eu levava umas 2 horas para montar um script não muito avançado.

    Resultados da prática: Com a prática dita acima, você aprende as funções (como elas funcionam, o que significam, etc), aprende a estrutura de um script (if, else, end, etc), e o principal, aprende a criar.

    Moral: Não leia tutoriais apenas, pratique à partir do que você já conhece. Exemplo disso: Você conhece as cores azul e vermelho. Se você juntar as duas, você conhecerá uma nova cor, a cor roxa. Ou seja, juntando seus conhecimentos você obtêm mais sabedoria.



    Aprendendo a Imaginar


    Introdução: Bom, o maior problema de todo scripter é a falta de idéias, mas nem todos sabem resolver isso e encalham, alguns até desistem. Como resolver? Mas antes de tudo, vamos ao por quê.

    Por quê não tenho ideias? Você provavelmente já se perguntou isso. Se não, SE PERGUNTE. É importante. Parte das pessoas diriam que é porquê tudo já foi inventado, mas acredite, isso tá errado. Eu mesmo tinha essa visão, mas aprendi a imaginar, mesmo que às vezes seja difícil. Você não tem ideias bem provavelmente porquê você não tentou ter. Ou se tentou, fez da maneira errada.

    Então como ter ideias? Cara, você mora num universo que provavelmente está dentro de outras imensidões que seres humanos como nós são incapazes de compreender, mas fiquemos na Terra mesmo. O que tem na Terra? Muitas coisas, e a cada dia são criadas mais e mais coisas. Observe o mundo ao seu redor, se você prestar atenção em cada detalhe, verá que existem objetos, pessoas e até ambientes que você nunca imaginava que existisse. Você, tendo um pingo de criatividade, pode criar na sua mente um paraíso inteiro à partir de um simples campo de futebol.

    Moral: Você aprende a imaginar à partir do que já existe, isso é fato, mas com isso, você pode muito bem tirar uma base da sua imaginação ou até mesmo da realidade e criar um sistema que não existe, afinal, muitas coisas ainda não existem.



    Conclusão Final


    Você aprende praticando, e com a prática você evolui, mas para praticar você precisa de uma inspiração, e a partir da inspiração você tem ideias, e a partir das ideias você pratica, e com a prática você evolui, e fica nesse ciclo infinito.

    ---------------------------------------------------------------------------------------------

    Obrigado galera, espero que vocês tenham entendido o que eu quis dizer.

    Att. Luck Oake
  3. Upvote
    LuckOake recebeu reputação de Furabio em O melhor tutorial de Programação Orientada a Objetos em Lua (Em português)   
    Introdução ao OOP (Object-Oriented Programming)



    "A orientação a objetos é 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."

    Traduzindo, cada coisa que está presente em um programa é considerado um objeto. Exemplo disso são os jogos. Os personagens são objetos, podendo ser da classe NPC, Character, Monster...

    Mas o que é classe e objeto?

    - Definições

    Existem algumas definições essenciais para entender a orientação a objetos. As principais são classe, objeto, método e atributo.

    Classe: Podemos dizer que classes são grupos com características inicialmente iguais. Exemplo, na vida real, temos as classes "Humano", "Pássaro", "Inseto", etc. Cada classe tem seus membros, que são os objetos, suas características, que são os atributos, e suas ações, que são os métodos.
    Objeto: Cada membro das classes é chamado de objeto, por exemplo, na classe "Humano" existem os objetos eu, você, seu amigo, etc. Dá pra dizer que cada pessoa é um objeto da classe "Humano".
    Atributo: São as características da classe. Exemplo, na classe "Humano" temos algumas características como "Nome", "Altura" e "Idade", que variam de indivíduo para indivíduo, ou em programação, que variam de objeto para objeto.
    Método: São as ações que os objetos de uma classe podem realizar. Exemplo, objetos da classe "Humano" podem realizar ações como Beber, Comer, Correr. Em programação, cada ação dessa seria uma função ligada à classe, que é executada por um objeto.

    - OOP em Lua

    Lua, na verdade, não é uma linguagem orientada a objetos. Porém, possui uma biblioteca com artifícios que simulam isso, que são os meta-métodos e meta-tabelas.

    A principal função dessa biblioteca é a setmetatable. Ela transforma uma tabela normal em uma "tabela-objeto".

    - Criando classes:

    Para deixar mais claro, vamos criar uma tabela normal.


    Humano = {}

    OBS: Em orientação a objetos, sempre use Camel Case, que é deixar os nomes de classes e métodos iniciando com letra maiúscula. É só pra deixar o código mais bonito mesmo.

    Agora que criamos a tabela Humano, vamos colocar alguns atributos (características) nela:


    Humano = {
    nome = "",
    altura = 0,
    idade = 0,
    }

    Agora temos uma classe Humano com os atributos nome, altura e idade. Agora vamos criar um objeto dessa classe. Para isso, vamos criar uma função que transforma essa tabela em uma meta-tabela.

    Para isso, usamos a função setmetatable(table, metatable):


    function Humano:New(nome, altura, idade)
    local obj = {}
    obj.nome = nome
    obj.altura = altura
    obj.idade = idade

    return setmetatable(obj, {__index = self})
    end

    Mas o que fiz ali? Simples. Peguei os parâmetros da função, coloquei dentro da tabela obj e depois criei uma meta-tabela.

    O que significa aquele self? Bom, o parâmetro self está implícito, então fica meio confuso. Você poderia fazer assim:


    function Humano.New(self, nome, altura, idade)

    No lugar de:


    function Humano:New(nome, altura, idade)

    Ou seja, aqueles : (dois pontos) são para não precisar declarar o self.

    O self serve para retornar o objeto da classe. Fazendo {__index = self}, você consegue acessar os atributos direto do objeto. Você entenderá isso um pouco mais pra frente.

    - Criando métodos:

    Vamos agora criar métodos, ou seja, o que os objetos da classe conseguem fazer, ou melhor, as funções que eles conseguem executar.

    Criaremos um método que faz a altura do objeto da classe Humano aumentar. Traduzindo, a pessoa cresce.


    function Humano:Grow(amount)
    amount = amount == nil and 1 or amount
    self.altura = self.altura+amount
    end

    O que fizemos ali? Primeiro, criamos um método ligado à classe Humano, chamado Grow (crescer em inglês).
    Depois, fizemos o seguinte para não dar erro: amount = amount == nil and 1 or amount. Ou seja, se o amount não for declarado, ele passa a valer 1.
    Depois, pegamos o atributo altura do objeto utilizando self.altura (lembra do self?) e acrescentamos o amount. Ou seja, se amount = 3, acrescentará 3 na altura do objeto.

    Simples, não?

    OBS: Métodos criados ligados à uma classe só podem ser executados por objetos dessa mesma classe! Se você tem um objeto da classe "Inseto", você não pode utilizar nele os métodos da classe "Humano".

    - Criando objetos

    Agora que você sabe criar classes e métodos, você pode criar objetos. É super simples, só fazer assim:


    hi = Humano:New("Manoel", 1.77, 16)

    Pronto, agora você tem um objeto na variável hi com o nome Manoel, altura de 1.77 e 16 anos.

    E como executar métodos nesse objeto? Simples também, veja:


    hi:Grow(0.34)

    No caso, o objeto da variável hi vai ter a altura aumentada em 0.34.

    E como modificar atributos do objeto sem precisar de funções? Outra coisa muito simples:


    hi.altura = 1.80

    Isso fará a altura do objeto da variável hi ficar em 1.80.

    - Percepções

    Agora que você já sabe uma base de orientação a objetos, você perceberá que quando você usa uma função como string.lower(str), você está usando orientação a objetos, com um método da classe string.


    local a = "Batata"

    string.lower(a) é o mesmo que a:lower()

    Por que? Porque string é uma classe, lower é um método, e o método é string:lower(). Lembra do self implícito?

    - Final

    Bom galera, muito obrigado por lerem esse tutorial. Fiz ele dedicado ao meu amigo Manoel Neto.

    Utilizei como base os conhecimentos passados pelo meu mestre Oneshot.

    Quaisquer dúvidas e/ou sugestões, podem postar aqui no tópico.


    Proibido postar em qualquer outro fórum de Open Tibia brasileiro.

  4. Upvote
    LuckOake recebeu reputação de Josegvb em Ajuda: [Error - Moveevent::executestep] Call Stack Overflow.   
    @PedroSouza
     
    Só alterar aqui:
     

    functiono nStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
     
    ficando assim:
     

    function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
     
    Tá com um erro de digitação no começo do script.
  5. Upvote
    LuckOake recebeu reputação de Bluetooth em Aprendendo A Scriptear   
    Olá galera. Muitos de vocês que são iniciantes em scripting tem certa dificuldade para criar scripts, uns por falta de ideias, outros por realmente não conseguirem montar nada. Por isso, resolvi fazer esse tutorial simples e claro.



    Aprendendo a Scriptear


    Introdução: Bom, primeiramente, você já se perguntou "por quê quero scriptear"? Se sim, legal, mas chegou à uma resposta? Se não, pense nisso. Tente chegar à algo que te inspire, seja observando trabalhos de scripters mais conhecidos e habilidosos ou simplesmente querendo criar novas coisas para ter seu nome conhecido. Sem uma inspiração você não vai avançar, acredite em mim.

    Começando no mundo dos scripts: Quando você tentou aprender a scriptear pela primeira vez, o que você fez? 95% das pessoas responderiam: "Eu li tutoriais". Tudo bem, mas será que isso é certo? Posso te assegurar que não. É claro, ler um tutorial abre sua mente para a parte teórica de scriptear, mas nada muito grande, de pouco adianta a teoria se você não entende a prática.

    Como praticar: Vou compartilhar com vocês uma experiência de vida. Eu tenho um server que está atualmente fechado para reformas, mas antigamente, eu necessitava sempre de inovar para agradar os players, só que os scripts que eu queria nem sempre estavam disponíveis na net. O que eu fazia? Simples, procurava scripts que possuiam as funções que eu precisava e ia juntando os pedaços até formar o que eu queria. Não, nunca funcionava de primeira, tinha vez que eu levava umas 2 horas para montar um script não muito avançado.

    Resultados da prática: Com a prática dita acima, você aprende as funções (como elas funcionam, o que significam, etc), aprende a estrutura de um script (if, else, end, etc), e o principal, aprende a criar.

    Moral: Não leia tutoriais apenas, pratique à partir do que você já conhece. Exemplo disso: Você conhece as cores azul e vermelho. Se você juntar as duas, você conhecerá uma nova cor, a cor roxa. Ou seja, juntando seus conhecimentos você obtêm mais sabedoria.



    Aprendendo a Imaginar


    Introdução: Bom, o maior problema de todo scripter é a falta de idéias, mas nem todos sabem resolver isso e encalham, alguns até desistem. Como resolver? Mas antes de tudo, vamos ao por quê.

    Por quê não tenho ideias? Você provavelmente já se perguntou isso. Se não, SE PERGUNTE. É importante. Parte das pessoas diriam que é porquê tudo já foi inventado, mas acredite, isso tá errado. Eu mesmo tinha essa visão, mas aprendi a imaginar, mesmo que às vezes seja difícil. Você não tem ideias bem provavelmente porquê você não tentou ter. Ou se tentou, fez da maneira errada.

    Então como ter ideias? Cara, você mora num universo que provavelmente está dentro de outras imensidões que seres humanos como nós são incapazes de compreender, mas fiquemos na Terra mesmo. O que tem na Terra? Muitas coisas, e a cada dia são criadas mais e mais coisas. Observe o mundo ao seu redor, se você prestar atenção em cada detalhe, verá que existem objetos, pessoas e até ambientes que você nunca imaginava que existisse. Você, tendo um pingo de criatividade, pode criar na sua mente um paraíso inteiro à partir de um simples campo de futebol.

    Moral: Você aprende a imaginar à partir do que já existe, isso é fato, mas com isso, você pode muito bem tirar uma base da sua imaginação ou até mesmo da realidade e criar um sistema que não existe, afinal, muitas coisas ainda não existem.



    Conclusão Final


    Você aprende praticando, e com a prática você evolui, mas para praticar você precisa de uma inspiração, e a partir da inspiração você tem ideias, e a partir das ideias você pratica, e com a prática você evolui, e fica nesse ciclo infinito.

    ---------------------------------------------------------------------------------------------

    Obrigado galera, espero que vocês tenham entendido o que eu quis dizer.

    Att. Luck Oake
  6. Upvote
    LuckOake recebeu reputação de Bluetooth em getSearchString (Função da spell Exiva feita em Lua)   
    Olá galera.
     
    Devido a um pedido, refiz a função getSearchString das sources do TFS em Lua, e vou aproveitar e postar ela aqui, caso alguém vá a precisar um dia.
     
     
     
     
    Explicando os parâmetros da função getSearchString(fromPos, toPos, isFromCreature, isToCreature):
    fromPos = posição inicial toPos = posição do objeto procurado isFromCreature = a posição inicial é uma posição de uma criatura? (true / false) [default = false] isToCreature = a posição do objeto é uma posição de uma criatura? (true / false) [default = false] E pra facilitar o uso, já aproveitei e fiz a função para usar o comando exiva: useExiva(cid, pid).
    cid = o uid do player que usa pid = o uid do player procurado Ambas as funções estão no code.
     
    Bom uso.
  7. Upvote
    LuckOake recebeu reputação de williamserravalle em Caixa Eletrônico   
    Oooi povo Ékztibiano
     
    Eu (novamente) trouxe outro sistema pra vocês. Infelizmente quase ninguém posta conteúdo útil atualmente, então tô tentando erguer essa seção novamente, tanto é que vira e mexe eu posto sistemas aqui, e daqui a uns dias eu vou postar outros que tô fazendo.
     
    Bom, comecemos.
     
    O que é: Um sistema em que você insere um Cartão de Crédito em um Caixa Eletrônico para executar ações iguais às de um banco de verdade.
     
    Script:
     
     
     
    Configurando:
     
     
    Imagens:
     
     
     
    Observações:

    - Para usar o caixa eletrônico, você tem que dar Use With nele com o cartão.
     
    Créditos:

    LuckOake -- Pelo sistema
  8. Upvote
    LuckOake recebeu reputação de Miinerva em Advanced Quiz System   
    Olá galeres, maais um sistema pra vocês aqui. E novidade, dessa vez eu não usei MOD
     
    O que é: Um sistema em que o GOD cria uma pergunta com a resposta que quiser e os players devem respondê-la. Quem acerta, ganha 1 ponto, que posteriormente poderá ser trocado por quiz bags, que dão prêmios aleatórios ou simplesmente podem rasgar se você tiver azar.
     
    Scripts:
     
     
    Configurando:
     
     
     
    Imagens:
     
     
    Observações:
    • Não há bugs até o momento • Testado apenas em TFS 0.3.6
     
    Créditos:
    LuckOake -- Pelo sistema em geral Vodkart -- Por arrumar a talkaction Demonbholder -- Por ajudar com o NPC
     
    Just this, obrigado.
     

  9. Upvote
    LuckOake recebeu reputação de Miinerva em Radbr Banishment System [Atualizado]   
    FAAALA GALERES
     
    Eu (DE NOVO) trouxe pra vocês um sistema. MAAAS dessa vez, não é um sistema qualquer. Dessa vez é aquele tão cobiçado sistema de banimento do servidor RadBr!
     
    O que é: É um sistema de banimento através de warnings setadas pelo GOD em um player, e outro player poderá desbanir este já banido por barras (Default ID: 9971), dependendo do número de warnings.
     
    Script:
     
     
    Configurando:
     
     
     
    Imagens:
     
     
    Uso:
    /ban Nome,Motivo,Warnings* !unban Nome *OBS: Não é obrigatório especificar as warnings no comando /ban. Se não forem especificadas, serão adicionadas +1 warning automaticamente. (Exemplo: /ban Nome,Motivo)
     
    Observações:

    - Sou lindo, eu sei
     
    Créditos:

    - LuckOake (Pelo Sistema)
  10. Upvote
    LuckOake recebeu reputação de Rioshii em Aprendendo A Scriptear   
    Olá galera. Muitos de vocês que são iniciantes em scripting tem certa dificuldade para criar scripts, uns por falta de ideias, outros por realmente não conseguirem montar nada. Por isso, resolvi fazer esse tutorial simples e claro.



    Aprendendo a Scriptear


    Introdução: Bom, primeiramente, você já se perguntou "por quê quero scriptear"? Se sim, legal, mas chegou à uma resposta? Se não, pense nisso. Tente chegar à algo que te inspire, seja observando trabalhos de scripters mais conhecidos e habilidosos ou simplesmente querendo criar novas coisas para ter seu nome conhecido. Sem uma inspiração você não vai avançar, acredite em mim.

    Começando no mundo dos scripts: Quando você tentou aprender a scriptear pela primeira vez, o que você fez? 95% das pessoas responderiam: "Eu li tutoriais". Tudo bem, mas será que isso é certo? Posso te assegurar que não. É claro, ler um tutorial abre sua mente para a parte teórica de scriptear, mas nada muito grande, de pouco adianta a teoria se você não entende a prática.

    Como praticar: Vou compartilhar com vocês uma experiência de vida. Eu tenho um server que está atualmente fechado para reformas, mas antigamente, eu necessitava sempre de inovar para agradar os players, só que os scripts que eu queria nem sempre estavam disponíveis na net. O que eu fazia? Simples, procurava scripts que possuiam as funções que eu precisava e ia juntando os pedaços até formar o que eu queria. Não, nunca funcionava de primeira, tinha vez que eu levava umas 2 horas para montar um script não muito avançado.

    Resultados da prática: Com a prática dita acima, você aprende as funções (como elas funcionam, o que significam, etc), aprende a estrutura de um script (if, else, end, etc), e o principal, aprende a criar.

    Moral: Não leia tutoriais apenas, pratique à partir do que você já conhece. Exemplo disso: Você conhece as cores azul e vermelho. Se você juntar as duas, você conhecerá uma nova cor, a cor roxa. Ou seja, juntando seus conhecimentos você obtêm mais sabedoria.



    Aprendendo a Imaginar


    Introdução: Bom, o maior problema de todo scripter é a falta de idéias, mas nem todos sabem resolver isso e encalham, alguns até desistem. Como resolver? Mas antes de tudo, vamos ao por quê.

    Por quê não tenho ideias? Você provavelmente já se perguntou isso. Se não, SE PERGUNTE. É importante. Parte das pessoas diriam que é porquê tudo já foi inventado, mas acredite, isso tá errado. Eu mesmo tinha essa visão, mas aprendi a imaginar, mesmo que às vezes seja difícil. Você não tem ideias bem provavelmente porquê você não tentou ter. Ou se tentou, fez da maneira errada.

    Então como ter ideias? Cara, você mora num universo que provavelmente está dentro de outras imensidões que seres humanos como nós são incapazes de compreender, mas fiquemos na Terra mesmo. O que tem na Terra? Muitas coisas, e a cada dia são criadas mais e mais coisas. Observe o mundo ao seu redor, se você prestar atenção em cada detalhe, verá que existem objetos, pessoas e até ambientes que você nunca imaginava que existisse. Você, tendo um pingo de criatividade, pode criar na sua mente um paraíso inteiro à partir de um simples campo de futebol.

    Moral: Você aprende a imaginar à partir do que já existe, isso é fato, mas com isso, você pode muito bem tirar uma base da sua imaginação ou até mesmo da realidade e criar um sistema que não existe, afinal, muitas coisas ainda não existem.



    Conclusão Final


    Você aprende praticando, e com a prática você evolui, mas para praticar você precisa de uma inspiração, e a partir da inspiração você tem ideias, e a partir das ideias você pratica, e com a prática você evolui, e fica nesse ciclo infinito.

    ---------------------------------------------------------------------------------------------

    Obrigado galera, espero que vocês tenham entendido o que eu quis dizer.

    Att. Luck Oake
  11. Upvote
    LuckOake recebeu reputação de lucao2010 em Lua Script Maker   
    Olá galera, para testar minhas habilidades de programador em Lua resolvi fazer um programa que cria scripts a seu gosto. Atualmente ele tem suporte para Actions, Talkactions e StepIn (Movement).
     
    Nada muito complexo, é apenas pra ajudar os iniciantes mesmo. O programa e sua source seguem em anexo na mensagem.
     
    Imagem:
     
     
    OBS: Programa feito em Lua.
     
    Download aqui em baixo \/
     



    Lua Script Maker.rar
  12. Upvote
    LuckOake recebeu reputação de felipenchagas em Lua Script Maker   
    Olá galera, para testar minhas habilidades de programador em Lua resolvi fazer um programa que cria scripts a seu gosto. Atualmente ele tem suporte para Actions, Talkactions e StepIn (Movement).
     
    Nada muito complexo, é apenas pra ajudar os iniciantes mesmo. O programa e sua source seguem em anexo na mensagem.
     
    Imagem:
     
     
    OBS: Programa feito em Lua.
     
    Download aqui em baixo \/
     



    Lua Script Maker.rar
  13. Upvote
    LuckOake recebeu reputação de curruwilliam em Perfect Reset System 1.0   
    Olá galera. Esses dias um amigo meu veio me pedir ajuda com o sistema de resets do server dele, que tava bugando toda hora e travando tudo. Ele me mandou o tópico do sistema de reset que ele usava, um tal de Advanced Reset System 2.0. Olhei o código com calma e vi que tinha umas coisas interessantes como stages, mas o script era uma redação de tão grande e tava lotado de coisa inútil e que poderia ser removida sem problemas. Resultado, fiquei incomodado com o tamanho do negócio e a quantidade de coisas sem sentido, então fiz um próprio que está sem bugs e que é três vezes menor que o outro e possui suporte à contagem de resets via database ou storage (obs: sei que storage também faz parte da database, mas você me entendeu).
     
    O que é: Oras, é um sistema de reset, como já diz o nome. Ele reseta seu personagem para o level que você escolher.
     
    Bônus: Como já dito, o script tem suporte à contagem de resets via database ou storage, ficando a seu critério escolher, e junto dele vem um pequeno script para o GOD poder adicionar resets em um character.
     
    Script (reset.lua):
     
     
    Tag (talkactions.xml):
    <talkaction words="!reset;/addresets" script="reset.lua"/>
     
    OBS: Lembre-se de colocar o nome do o arquivo.lua como reset.lua.
     
    Configurando:
     
     
    Para usar o sistema, use os seguintes comandos:

    !reset -- Para resetar /addresets nome,quantidade -- Para o GOD adicionar resets em um character
     
    Observações:
     
    Créditos:
    LuckOake -- Pelo script
     
    Obrigado.
  14. Upvote
    LuckOake recebeu reputação de mkbrabsolute em Regicide Event   
    Olá galere do mal. Trouxe para vocês um sistema inovador, que muitos vão gostar.
     
    Do que se trata? Quem já jogou Age of Empires 2 Age of Kings e já batalhou no modo Regicídio deve saber mais ou menos como funciona.
     
    Explicação: São dois times. Um tem um rei e deve protegê-lo, o outro deve matar esse rei. O primeiro time (Protectors) deve matar todos do outro time para vencer, e o segundo time (Killers) devem matar o rei, como já dito antes.
     
    (Bônus) Função exclusiva: Se você for um Protector e dar Attack no King, ele passa a seguir você até você dar Attack nele novamente.
     
    Script:
     
     
    Instalando:
     
     
     
    Para controlar o evento, use os comandos:

    /regicide open -- Para abrir /regicide force -- Para iniciar o evento mesmo se não tiver o número maximo de players /regicide reset -- Para fechar o evento, caso dê algum problema.
     
    Caso alguém queira disponibilizar um vídeo ou o download de uma área (de preferência, de um castelo grande que incentive a war), por favor, faça isso, será retribuído.
     
    Créditos para Demonbholder, Skymagnum e Vodkart, que me ajudaram em algumas funções.
  15. Upvote
    LuckOake recebeu reputação de TioItachi em Aprendendo A Scriptear   
    Olá galera. Muitos de vocês que são iniciantes em scripting tem certa dificuldade para criar scripts, uns por falta de ideias, outros por realmente não conseguirem montar nada. Por isso, resolvi fazer esse tutorial simples e claro.



    Aprendendo a Scriptear


    Introdução: Bom, primeiramente, você já se perguntou "por quê quero scriptear"? Se sim, legal, mas chegou à uma resposta? Se não, pense nisso. Tente chegar à algo que te inspire, seja observando trabalhos de scripters mais conhecidos e habilidosos ou simplesmente querendo criar novas coisas para ter seu nome conhecido. Sem uma inspiração você não vai avançar, acredite em mim.

    Começando no mundo dos scripts: Quando você tentou aprender a scriptear pela primeira vez, o que você fez? 95% das pessoas responderiam: "Eu li tutoriais". Tudo bem, mas será que isso é certo? Posso te assegurar que não. É claro, ler um tutorial abre sua mente para a parte teórica de scriptear, mas nada muito grande, de pouco adianta a teoria se você não entende a prática.

    Como praticar: Vou compartilhar com vocês uma experiência de vida. Eu tenho um server que está atualmente fechado para reformas, mas antigamente, eu necessitava sempre de inovar para agradar os players, só que os scripts que eu queria nem sempre estavam disponíveis na net. O que eu fazia? Simples, procurava scripts que possuiam as funções que eu precisava e ia juntando os pedaços até formar o que eu queria. Não, nunca funcionava de primeira, tinha vez que eu levava umas 2 horas para montar um script não muito avançado.

    Resultados da prática: Com a prática dita acima, você aprende as funções (como elas funcionam, o que significam, etc), aprende a estrutura de um script (if, else, end, etc), e o principal, aprende a criar.

    Moral: Não leia tutoriais apenas, pratique à partir do que você já conhece. Exemplo disso: Você conhece as cores azul e vermelho. Se você juntar as duas, você conhecerá uma nova cor, a cor roxa. Ou seja, juntando seus conhecimentos você obtêm mais sabedoria.



    Aprendendo a Imaginar


    Introdução: Bom, o maior problema de todo scripter é a falta de idéias, mas nem todos sabem resolver isso e encalham, alguns até desistem. Como resolver? Mas antes de tudo, vamos ao por quê.

    Por quê não tenho ideias? Você provavelmente já se perguntou isso. Se não, SE PERGUNTE. É importante. Parte das pessoas diriam que é porquê tudo já foi inventado, mas acredite, isso tá errado. Eu mesmo tinha essa visão, mas aprendi a imaginar, mesmo que às vezes seja difícil. Você não tem ideias bem provavelmente porquê você não tentou ter. Ou se tentou, fez da maneira errada.

    Então como ter ideias? Cara, você mora num universo que provavelmente está dentro de outras imensidões que seres humanos como nós são incapazes de compreender, mas fiquemos na Terra mesmo. O que tem na Terra? Muitas coisas, e a cada dia são criadas mais e mais coisas. Observe o mundo ao seu redor, se você prestar atenção em cada detalhe, verá que existem objetos, pessoas e até ambientes que você nunca imaginava que existisse. Você, tendo um pingo de criatividade, pode criar na sua mente um paraíso inteiro à partir de um simples campo de futebol.

    Moral: Você aprende a imaginar à partir do que já existe, isso é fato, mas com isso, você pode muito bem tirar uma base da sua imaginação ou até mesmo da realidade e criar um sistema que não existe, afinal, muitas coisas ainda não existem.



    Conclusão Final


    Você aprende praticando, e com a prática você evolui, mas para praticar você precisa de uma inspiração, e a partir da inspiração você tem ideias, e a partir das ideias você pratica, e com a prática você evolui, e fica nesse ciclo infinito.

    ---------------------------------------------------------------------------------------------

    Obrigado galera, espero que vocês tenham entendido o que eu quis dizer.

    Att. Luck Oake
  16. Upvote
    LuckOake recebeu reputação de pedroszmatos em Aprendendo A Scriptear   
    Olá galera. Muitos de vocês que são iniciantes em scripting tem certa dificuldade para criar scripts, uns por falta de ideias, outros por realmente não conseguirem montar nada. Por isso, resolvi fazer esse tutorial simples e claro.



    Aprendendo a Scriptear


    Introdução: Bom, primeiramente, você já se perguntou "por quê quero scriptear"? Se sim, legal, mas chegou à uma resposta? Se não, pense nisso. Tente chegar à algo que te inspire, seja observando trabalhos de scripters mais conhecidos e habilidosos ou simplesmente querendo criar novas coisas para ter seu nome conhecido. Sem uma inspiração você não vai avançar, acredite em mim.

    Começando no mundo dos scripts: Quando você tentou aprender a scriptear pela primeira vez, o que você fez? 95% das pessoas responderiam: "Eu li tutoriais". Tudo bem, mas será que isso é certo? Posso te assegurar que não. É claro, ler um tutorial abre sua mente para a parte teórica de scriptear, mas nada muito grande, de pouco adianta a teoria se você não entende a prática.

    Como praticar: Vou compartilhar com vocês uma experiência de vida. Eu tenho um server que está atualmente fechado para reformas, mas antigamente, eu necessitava sempre de inovar para agradar os players, só que os scripts que eu queria nem sempre estavam disponíveis na net. O que eu fazia? Simples, procurava scripts que possuiam as funções que eu precisava e ia juntando os pedaços até formar o que eu queria. Não, nunca funcionava de primeira, tinha vez que eu levava umas 2 horas para montar um script não muito avançado.

    Resultados da prática: Com a prática dita acima, você aprende as funções (como elas funcionam, o que significam, etc), aprende a estrutura de um script (if, else, end, etc), e o principal, aprende a criar.

    Moral: Não leia tutoriais apenas, pratique à partir do que você já conhece. Exemplo disso: Você conhece as cores azul e vermelho. Se você juntar as duas, você conhecerá uma nova cor, a cor roxa. Ou seja, juntando seus conhecimentos você obtêm mais sabedoria.



    Aprendendo a Imaginar


    Introdução: Bom, o maior problema de todo scripter é a falta de idéias, mas nem todos sabem resolver isso e encalham, alguns até desistem. Como resolver? Mas antes de tudo, vamos ao por quê.

    Por quê não tenho ideias? Você provavelmente já se perguntou isso. Se não, SE PERGUNTE. É importante. Parte das pessoas diriam que é porquê tudo já foi inventado, mas acredite, isso tá errado. Eu mesmo tinha essa visão, mas aprendi a imaginar, mesmo que às vezes seja difícil. Você não tem ideias bem provavelmente porquê você não tentou ter. Ou se tentou, fez da maneira errada.

    Então como ter ideias? Cara, você mora num universo que provavelmente está dentro de outras imensidões que seres humanos como nós são incapazes de compreender, mas fiquemos na Terra mesmo. O que tem na Terra? Muitas coisas, e a cada dia são criadas mais e mais coisas. Observe o mundo ao seu redor, se você prestar atenção em cada detalhe, verá que existem objetos, pessoas e até ambientes que você nunca imaginava que existisse. Você, tendo um pingo de criatividade, pode criar na sua mente um paraíso inteiro à partir de um simples campo de futebol.

    Moral: Você aprende a imaginar à partir do que já existe, isso é fato, mas com isso, você pode muito bem tirar uma base da sua imaginação ou até mesmo da realidade e criar um sistema que não existe, afinal, muitas coisas ainda não existem.



    Conclusão Final


    Você aprende praticando, e com a prática você evolui, mas para praticar você precisa de uma inspiração, e a partir da inspiração você tem ideias, e a partir das ideias você pratica, e com a prática você evolui, e fica nesse ciclo infinito.

    ---------------------------------------------------------------------------------------------

    Obrigado galera, espero que vocês tenham entendido o que eu quis dizer.

    Att. Luck Oake
  17. Upvote
    LuckOake recebeu reputação de titon em [REMAKE] Scripts antigos refeitos [PACK]   
    Olá galera
     
    Já viram aqueles scripts antigos, lá de 2006, 2007 ~~ 2011, que são totalmente bagunçados e é um saco pra configurar e/ou adicionar coisas novas? Pois é, eu tive a ideia de refazê-los para melhorar sua formatação e aprimorar suas funcionalidades.
     
    O que é: É um pacote que conta atualmente com 13 scripts (actions e talks) de scripts antigos que foram refeitos por mim. Download está no fim da mensagem, no anexo. Ou se quiserem, podem pegar algum script sozinho aqui no tópico, que jájá vou editar e colocar isso.
     
    Actions:
    - Absorb Rune - Bread System - Future Orb - Trash Lever - Multifunctional Rune - Present Box - Steal Rune - Teleport Rune - Vocation Chest - Vocation Door
     
    Talks:
    - AFK - Change Status - Terror - Vote System
     
    Scripts:
     
     
    OBS: Caso encontre algum bug, avise aqui no tópico.
    OBS²: Caso tenha algum outro script antigo que você gostaria que eu refizesse, poste aqui no tópico.
    OBS³: Sim, eu sei que tem poucos scripts ainda, mas é por isso que eu quero que vocês peçam mais scripts antigos, como no OBS².
    Remakes.rar
  18. Upvote
    LuckOake recebeu reputação de Martelix em Auto Loot Money   
    Vi que muitos voltaram, principalmente meu mestre Oneshot, então voltei também. Não sei se voltei pra ficar ativo, mas de qualquer maneira, vou quebrar o gelo e postar um sistema depois de mais de um semestre inativo no fórum.
     
    Sinceramente, a qualidade da seção de scripting caiu consideravelmente. Chega a dar vergonha ver como está andando atualmente em comparação à época de novembro/dezembro do ano passado até fevereiro desse ano, em que deu aqueles problemas. São poucas as coisas que aparecem aqui que realmente são bem feitas. Bom, de qualquer maneira, fazer o quê se a maioria dos membros não consegue ver isso, deixemos rolar e tentemos restaurar o que era, né.
     
    Voltando ao tópico, trouxe pra vocês um sisteminha que funciona como um autoloot, porém, ele looteia apenas money e envia ele direto pra backpack ou direto para o banco do player (configurável), cobrando uma porcentagem do dinheiro looteado como troca pelo serviço. Exemplo, looteou 10 gold coins, cobra 10% (1 gold coin), dando pro player 9 gold coins no total.
     
    Scripts:
    Configurando:
    Para usar o sistema, use o comando /autoloot. Créditos: - Luck Oake  
  19. Upvote
    LuckOake recebeu reputação de otavio101 em Partner System 2.0 [Atualizado]   
    Olááá galera do Ékz. Esses dias o XTibia tá muito parado, não tem nem pedido direito pra atender, e no último Sds teve poucos scripts. Entããão resolvi postar um sisteminha que eu fiz com base num pedido em algum lugar da internet.
     
    É o Partner System.
     
    O que ele faz: Você chama um amigo seu para jogar o server, mas para dar um ânimo nele, você convida-o para ser seu Partner, e enquanto ele for abaixo de tal level (configurável, default 50), ele terá um bônus de EXP (configurável, default 10%). Assim que chegar no level limite, o bônus acaba.
     
    Motivos para usar o sistema? Ora, como já disse anteriormente, serve para animar o jogo do player, para incentivá-lo a jogar mais.
     
    Chega de blablabla e vamos ao script:
     
     
     
     
    Novidades:

    • Agora você pode aceitar ou rejeitar convites mesmo que a pessoa que te convidou esteja offline • Quando você convida alguém e ele rejeita ou aceita o convite com você offline, ao logar você recebe uma mensagem informando a decisão da pessoa. • Todos os bugs corrigidos
     
    Configurando:

    waittime = 24 -- Tempo de espera em horas para convidar alguém novamente storage = 4651 level = 100 -- Level necessário para convidar alguém maxlevel = 50000 -- Level máximo para alguém virar partner e para ter bônus de EXP maxp = 5 -- Maximo de partners que alguém pode ter rate = 1.1 -- Rate do bônus
     
    Uso:

    Player: !partner Fulano -- Fulano foi convidado Fulano: !partner aceitar ou rejeitar -- Fulano aceita ou rejeita o convite.
     
    Observações:
    1) Todos os bugs corrigidos. 2) Funciona em TFS versão 0.3.6 pra frente.
     
    Créditos:

    LuckOake -- Pelo sistema Vodkart -- Pela ideia e ajudas
  20. Upvote
    LuckOake recebeu reputação de Omega em Onde esta o erro neste script? (checar description)   
    Corrigido:
    function onStepIn(cid, item, position, fromPosition) local player_item = getPlayerItemById(cid, true, 1678) if player_item.uid > 0 then if getItemAttribute(player_item.uid, "description") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "A descrição do seu item é "..getItemAttribute(player_item.uid, "description")..".") elseif getItemInfo(player_item.itemid).description ~= "" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "A descrição do seu item é "..(getItemInfo(player_item.itemid).description)..".") end end return true end
  21. Upvote
    LuckOake recebeu reputação de Omega em attempt to call global 'unregisterCreatureEvent' - como resolver?   
    A função unregisterCreatureEvent só pode ser adicionada nas sources. Tá aqui o código:
     
    luascript.cpp:
    //unregisterCreatureEvent(uid, eventName) lua_register(m_luaState, "unregisterCreatureEvent", LuaInterface::luaUnregisterCreatureEvent); int32_t LuaInterface::luaUnregisterCreatureEvent(lua_State* L) { //unregisterCreatureEvent(cid, name) std::string name = popString(L); ScriptEnviroment* env = getEnv(); if(Creature* creature = env->getCreatureByUID(popNumber(L))) lua_pushboolean(L, creature->unregisterCreatureEvent(name)); else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } luascript.h:
    static int32_t luaUnregisterCreatureEvent(lua_State* L); creature.cpp:
    bool Creature::unregisterCreatureEvent(const std::string& name) { CreatureEvent* event = g_creatureEvents->getEventByName(name); if(!event || !event->isLoaded()) //check for existance return false; for(CreatureEventList::iterator it = eventsList.begin(); it != eventsList.end(); ++it) { if((*it) != event) continue; eventsList.erase(it); return true; // we shouldn't have a duplicate } return false; } creature.h:
    bool unregisterCreatureEvent(const std::string& name); Só adicionar perto das linhas parecidas.
     

     
    Sobre o RSA, não sei te responder com precisão, mas dava esse erro no meu server quando alguém tentava entrar com a porta 7172.
  22. Upvote
    LuckOake recebeu reputação de Omega em Luck Oake's Debugger 3.0 (LOD)   
    Olá galera.

    Um tempo atrás, para ajudar um amigo, fiz um debugger que permite usar algumas funções de Tibia de maneira mais "real", pois eu estava ensinando Lua para ele, e ele estava com dificuldades.

    De uns dias para cá eu atualizei bastante o programa, adicionei muitas features novas, deixando o mais completo possível. Adicionei Syntax Highlighting, Auto Indent, aprimorei a função de debug, etc.

    A principal novidade mesmo é que agora ele tem suporte pra mods. Sim, agora você pode criar extensões para o programa se souber mexer com wxLua.


    Changelog:



    Imagem:


    Download em anexo no tópico.

    Bom uso

    Luck Oake's Debugger.rar
  23. Upvote
    LuckOake recebeu reputação de Omega em Script setar Cordenada do account amanager   
    Script (Pasta creaturescripts) accmanagerpos.lua:
    local pos = {x = 100, y = 60, z = 7} -- Posição function onLogout(cid) doTeleportThing(cid, pos) return true end Login.lua, antes do último return true:
    if getCreatureName(cid) == "Account Manager" then registerCreatureEvent(cid, "AccountManagerPos") end Creaturescripts.xml:
    <event type="logout" name="AccountManagerPos" script="accmanagerpos.lua"/> Configure aqui:
    local pos = {x = 100, y = 60, z = 7} -- Posição
  24. Upvote
    LuckOake recebeu reputação de Omega em Jungle Maw Prison   
    Não adianta usar mayNotMove em monstros, não vai funcionar.
     
    Use doChangeSpeed(cid, -getCreatureSpeed(cid)).
     
    Tá aqui o script:
    local tempo = 30 -- Tempo em segundos function onStepIn(cid, item, pos) if isMonster(cid) then doCreatureSetStorage(cid, "base_speed", getCreatureBaseSpeed(cid)) doChangeSpeed(cid, -getCreatureSpeed(cid)) else mayNotMove(cid, true) end doCreatureAddHealth(cid, -30) addEvent(function() if not isCreature(cid) then return true end if isMonster(cid) then doChangeSpeed(cid, getCreatureStorage(cid, "base_speed")) else mayNotMove(cid, false) end end, tempo*1000) doTransformItem(item.uid, 4209) return true end
  25. Upvote
    LuckOake recebeu reputação de Omega em Script setar Cordenada do account amanager   
    Realmente esqueci de verificar se é o Account Manager. Obrigado por corrigir.
     
    Mas acho melhor colocar a verificação no próprio login.lua:
    if getCreatureName(cid) == "Account Manager" then registerCreatureEvent(cid, "AccountManagerPos") end Aí o script não fica sendo executado toda vez que um player desloga.
  • Quem Está Navegando   0 membros estão online

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