Ir para conteúdo

RigBy

Visconde
  • Total de itens

    411
  • Registro em

  • Última visita

  • Dias Ganhos

    10

Histórico de Reputação

  1. Upvote
    RigBy deu reputação a LionM em [Show Off] LionM.   
    Ya! Sou LionM.
    Venho apresentar meu pequeno cantinho, aqui apresentarei meus trabalhos!
    Critiquem e Avaliem, estarei apto a sempre melhorar. Obrigado!


    Vulcão:


    Caverna dentro da cachoeira:


     
  2. Upvote
    RigBy deu reputação a Felipe Moraes em Utilizando Classes no Java   
    Bom dia XTibia.
     
    Neste tutorial, explicarei como criar classes e instancia-las, utilizando Java.
    Recomendo a leitura dos seguintes tutoriais, para ter que tenha uma noção do que estamos fazendo
    http://www.xtibia.com/forum/topic/236597-criando-sua-primeira-aplicacao-em-java/ http://www.xtibia.com/forum/topic/236685-principios-da-orientacao-a-objetos/  
     
    Esse aula, diferentemente da última, terá um teor mais prático.
    Vamos lá.
     
     
     
    Vamos Usar como exemplo, um sistema de um banco.
    Uma forte canditada, seria uma entidade conta.
    Para o nosso exemplo, usaremos uma conta poupança como referência, que não pode ter saldo negativo.
     
    Primeiramente, o que toda conta tem que será importante em nosso exemplo ?
     
    Títular da conta (nome) Saldo Número da conta O que uma conta deve fazer ? Ou seja, qual será seu comportamento:
     
    Sacar Depositar Saldo Atual Transferir de uma conta para outra Exibir titular da conta  
    Veremos alguns exemplos abaixo:

     
     
    Temos o modelo de como deverá ficar nosso objeto conta. Mas pra isso, precisamos definir uma classe, para que em tempo de execução, nosso objeto possua valores.
     
     
    No Eclipse, crie uma nova classe. Vamos chama-la de Conta. Precisamos definir os atributos dessa conta. São eles:
    Número, do tipo inteiro Cliente, do tipo String Saldo, do tipo double  
    Nossa classe ficou assim:
    public class Conta{ int numero; String cliente; double saldo; } Mas para rodar nosso programa, precisamos do nosso método main. Vamos então:
    Criar uma outra classe, chamada Testadora Adicionar nosso método main Instanciar uma Conta, através do operador new. public class Testadora { public static void main(String[] args) { new Conta(); } } Sendo que, no exemplo acima, não temos nenhuma referência ao nosso objeto.
    Precisamos de uma variável!
     
     
    Do mesmo jeito que criamos uma variável do tipo inteira, por exemplo, criamos nossa variável do objeto.
    Conta conta1; Perceba que nosso tipo, ao invés de ser int, double ou String, é do tipo Conta.
     
    Agora podemos instanciar:
    Conta conta1; conta1 = new Conta(); Podemos encurtar essa leitura, ficando:
    Conta conta1 = new Conta(); Além disso, podemos acessar e modificar os atributos de conta:
    Conta conta1 = new Conta(); conta1.numero = 123; // Número é um atributo de conta, do tipo inteiro. conta1.cliente = "João"; // Cliente é do tipo String. conta1.saldo = 1000.0; // Saldo é do tipo double, devemos usar o ponto para representar casa decimal. Além de tudo, vamos exibir agora o número, o titular e o saldo de nossa conta:
    public class Testadora { public static void main(String[] args) { Conta conta1 = new Conta(); conta1.numero = 123; conta1.cliente = "João"; conta1.saldo = 1000.0; System.out.println("Número da conta: " +conta1.numero+ " o nome do titular: " +conta1.cliente+ " e o saldo atual da conta é: "+conta1.saldo); } } Podemos retirar o valor da conta, utilizando apenas:
    double valorSaque = 500.0; conta1.saldo = conta1.saldo - valorSaque; Com isso, modificamos os atributos de um objeto do tipo conta, apenas utilizando o "."(ponto).
    Entretanto, isso não é considerado uma boa prática. Vejamos o porquê.
     
     
    Vamos lá!
     
    Na classe Conta, criaremos um método, denominado sacar. O que precisamos informar à classe Conta ao efetuarmos um saque ? O valor, é claro. Nosso método ficará assim:
    public void sacar(int valorDoSaque){ } Public porque ele é um método público, isto é, qualquer outra classe de nosso sistema pode chamar esse método.
    Void porque ele não vai retornar nada. Ele apenas vai executar a ação de sacar.
     
    Precisamos também adicionar nossa condicional, certo ?  
    Nossa classe Conta ficará assim:
    public class Conta{ private int numero; private String cliente; private double saldo; public void sacar(int valorDoSaque){ if(this.saldo >= valorDoSaque){ // Aqui, fazemos nossa verificação. O saldo atual tem que ser maior. this.saldo = this.saldo - valorDoSaque; //Se passar na condicional, vai realizar a subtração. System.out.println("Você acabou de sacar "+ valorDoSaque); //Vai exibir uma mensagem de confirmação }else{ // Caso NÃO passe na verificação, ou seja, se o saldo for menor que o saque System.out.println("Desculpe, mas você não possui saldo suficiente"); //Exibe uma mensagem } } } Vamos criar um método para depositar também:
    public void depositar(int valorDeposito){ this.saldo = this.saldo + valorDeposito; System.out.println("Você depositou a quantia de " +valorDeposito); } Perceba também que, foi inserido antes dos nossos atributos o modificador private. Isso porquê agora, eles só serão acessíveis pela própia classe conta.
     
    Como nossos atributos estão encapsulados, precisamos também de um método para consultar o saldo atual, certo ?
    São o que chamamos de getters, pois eles vão recuperar (get = pegar) algum valor.
     
    Vejamos sua implementação.
    public int obterSaldo(){ return this.saldo; } Vejamos que ele retorna um valor do tipo inteiro, que nada mais é do que o nosso saldo.
    Ele também não recebe nenhum parâmetros, afinal, ele não vai modificar nada.
    Perceba o uso do this. Ele apenas quer dizer que estamos nos referenciando ao atributo saldo da própia classe. Isso ficará mais claro quando falarmos de herança.
     
    Nossa classe Testadora ficará assim então:
    public class Testadora { public static void main(String[] args) { Conta conta1 = new Conta(); // conta1.saldo = 1000.0; OPA! NÃO podemos mais nos referenciar aos atributos assim. conta1.depositar(1000.0); System.out.println("Saldo atual da conta é: " +conta1.obterSaldo()); conta1.sacar(700.0) System.out.println("Saldo atual da conta é: " +conta1.obterSaldo()); } } E aí, já se sente preparado ? Que tal você criar os getters e setters dos outros atributos para testar seu conhecimento ?
    Qualquer dúvida, podem postar.
     
     
    Para não me extender muito, vamos criar o método transfere, que vai transferir o saldo de uma conta para outra.
    public void transferir(Conta contaDestino, double valorTransferencia){ this.saldo = this.saldo - valorTransferencia; contaDestino.depositar(valorTransferencia); } Perceba que, nosso método é um set, isto é, ele vai modificar valores, sem retornar nada.
    Como parâmetro, devemos receber um outro objeto Conta, além do valor a ser transferido.
    Primeiro vamos subtrair o valor da transferência da conta de origem, e depois realizar um depósito na conta de destino.
     
     
     
    Vamos precisar instanciar 2 objetos conta em nossa classe Testadora.
    // Veja que usamos variáveis diferentes. Cada uma aponta para um objeto diferente na memória Conta c1 = new Conta(); Conta c2 = new Conta(); // Depositamos os valores iniciais em cada conta. c1.depositar(1000.0); c2.depositar(100.0); // Vamos exibir o saldo das nossas contas System.out.println("Saldo da conta 1: " +c1.obterSaldo()); System.out.println("Saldo da conta 2: " +c2.obterSaldo()); // Aqui vamos transferir valor da conta 1(c1) para a conta 2(c2) a quanta de 200. // A conta que chamou o método é a conta de origem. A conta referenciada no parâmetro é a de destino. c1.transferir(c2, 200.0); // Exibir novamente os valores para notar as alterações System.out.println("Saldo da conta 1: " +c1.obterSaldo()); System.out.println("Saldo da conta 2: " +c2.obterSaldo());  
    Muito bem pessoal, espero que tenham gostado desse tutorial, e que alguém possa ser beneficiado com ele.
    Abraçoss e até a próxima !
  3. Upvote
    RigBy deu reputação a Administrador em Madeira   
    MADEIRA




    Toda a textura no caso da madeira, deve ser bem suave. Logo você precisa usar cores com baixo contraste entre si. Mas que ainda mantenham um nível legal de saturação, do contrário a madeira ficaria cinza demais e parecida petrificada.

    Analise esta caixa:

    Foi dividida em 3 partes:
    + Cima (+ claro) - Cor simbólica "Vermelho"
    + Frente (normal) - Cor simbólica "Verde"
    + Lado ( - claro / + escuro) - Cor simbólica "Amarelo"
    Perceba que existe um contraste LEGAL entre as 3 partes do sprite.

    E cada parte foi individualmente feita com 3 cores, por causa da textura.
    A parte de cima por exemplo, teve sua textura feita com 3 cores:
    + Cima (+ claro) - Cor simbólica "Vermelho"
    + Frente (normal) - Cor simbólica "Verde"
    + Lado ( - claro / + escuro) - Cor simbólica "Amarelo"





    Créditos: André
  4. Upvote
    RigBy deu reputação a Felipe Moraes em A melhor Sprite #1   
    Ótima iniciativa.
    Nunca fiz uma sprite, mas aprenderei apenas para participar !
     
  5. Upvote
    RigBy deu reputação a iRyu em A melhor Sprite #1   
    Agora sim, irei participar com certeza!
  6. Upvote
    RigBy deu reputação a iRyu em Precisamos de você!   
    É uma ideia que tive quando tava em outro fórum a muito tempo atrás, porem acabei não sendo ouvido pelos Administradores!

    "Adote um Aluno"
     
    Estamos colocando em suas mãos uma grande oportunidade de ser feliz ao adotar membros que desejam se especializar/ aprender alguma área (scripts, mapas, etc..), mas que enfrentam algumas dificuldades para aprender ou até mesmo não sabem por onde começar. Um tutorial ou aulas é, para muitos membros, a única oportunidade que encontram para aprender.

    "Ao participar do Projeto Adote um Aluno você estará fazendo parte desses sonhos e tendo a alegria e as recompensas dos resultados. As vitórias deles serão suas também."
    Como um "Professor/ Pai", você devera acompanhar o desenvolvimento do "aluno" ajudando a aumentar seu conhecimento na área escolhida, você poderá escolher conversar por SKYPE, FACEBOOK ou se preferir pode conversar apenas por MP aqui no fórum. Sendo assim você terá acesso a tudo que envolva seu "ALUNO".
     
     
    A ideia em si é basicamente isso você adota um membro e ajuda ele a melhorar seu conhecimento na área, qualquer um que tiver força de vontade de aprender pode participar.
  7. Upvote
    RigBy deu reputação a Mudrock em BBcodes para seu Tópico!   
    BBCodes



    Ola pessoal Xtibiano!, hoje venho através desse tópico, dar uma enfase aos nossos BBCodes do fórum, que podem ser usados por qualquer usuário, e que deixam seu tópico com uma cara melhor para que seja visualizado pelos demais membros.






    Oque são BBCodes ?


    BBCode (abreviação de Bulletin Board Code) é uma pequena Linguagem criada pelos fóruns phpBB e agora está presente na maioria dos fóruns do mundo. O BBCode utiliza das tags para formatar ou adicionar efeitos nas mensagens (posts) em fóruns. As Tags normalmente aparecem entre colchetes com uma letra ou palavra no meio.








    BBCodes do Fórum


    Quero deixar em destaque alguns que são de extrema utilidade e que devem ser usados em tópicos!



    1. Alerta




    Pode ser usado para prevenir alguma ação ou alertar alguem sobre algo!.
    Para usa em tópicos:


    [alerta]SEU TEXTO[/alerta]

    2. Sucesso


    Pode ser usado para indicar algo para download ou qualquer outro assunto que seja " bom " a seu tópico
    Para usa em tópicos:


    [sucesso] Seu Texto aqui [/sucesso]

    3. Titulos




    Titulo do seu tópico ou um "sub-assunto" para ficar separado ( também pode ser usado como separado de texto
    Para usa em tópicos:


    [titulo] Seu texto aqui [/titulo]
    Esses são os novos no fórum, mais você pode escolher uma variedade de BBCodes para seu tópico clicando em BBCode Especial, que fica localizado do lado da Fonte do seu texto. ( um quadradinho Azul verde e branco )



    Isso é tudo! Obrigado pessoal

  8. Upvote
    RigBy deu reputação a SkyLigh em A melhor Sprite #1   
    parabéns pela iniciativa
  9. Upvote
    RigBy recebeu reputação de Lumus em A melhor Sprite #1   
    Bem vindo, essa sera a primeira edição desda ultima em abril de 2014, espero a participação de todo mundo mesmo que seja iniciante.


    Regras:
    1 - qualquer pessoa pode participar do concurso. 2 - A dimensão máxima da sprite deve seguida 3 - As sprites devem ser enviadas dentro do prazo via pm (mensagem privada) para mim (The JV) 4 - Não é permitido mais de uma sprite por usuário. 5 - Não é permitido reaproveitar trabalhos antigos sejam eles seus ou de alheios. Em caso de comprovação de ripping o membro será desqualificado. 6 - Se a sprite tiver fora do tema sera ignorada. 7 - Não sera aceita sprites fora do prazo. 8 - Usuários que forem pegos com contas falsas durante a votação, serão banidos. 9 - não é permitido o uso de marcas D'agua.

    Datas:
    Abertura da edição: 10/09/2015
    Termino/Abertura da votação: 17/09/2015
    Fechamento da votação: 20/09/2015
    Resultado: 21/09/2015


    Tema:
    (A dimensão máxima sera 32x32)
    Como essa é a primeira edição escolhi um tema fácil, o tema vai ser:


     
     
    Premiação:

    1º lugar - 15 reps + medalha de ouro + Divulgação no portal 2º lugar - 10 reps + medalha de prata 3º lugar - 6 reps + medalha de bronze

    É isso ai pessoal, conto com a participação de vocês.




  10. Upvote
    RigBy deu reputação a Administrador em A melhor Sprite #1   
    Vou participar!!! Gostei do tema.
    Uma exemplo, bow e arrow formam um conjunto na temática, não é permitido fazer os dois mesmo assim? Eu acho meio vago, se for fazer o bow, não fazer as arrows haha
     
  11. Upvote
    RigBy deu reputação a Felipe Moraes em Introdução ao Unity 3D (criação de jogos)   
    Segue mais um tutorial, explicando a plataforma Unity 3D, uma ferramenta poderosa para a criação de jogos 2D e 3D.




     
    Até a próxima
    Abraçoss
  12. Upvote
    RigBy deu reputação a Overpower em PIV - Projeto Identidade Visual   
    Hero ! O que vocês acham??

    v2

    Vou começar as de membros.
  13. Upvote
    RigBy deu reputação a Bruno em [Encerrado]WinSoft Recrutando   
    Pessoal,
     
    Estou montando uma equipe de Games Online, e o intuito a princípio é abrir 3 servidores (2 deles já estão previamente online). Então, preciso de uma equipe para dar andamento, nas quais as vagas são:
     
    Servidor Global - 10.80 / 10.81
    - Mapper
     
    Servidor Baiak - 8.60
    - Mapper
     
    Servidor Derivado - Pokemon
    - Mapper
    - Spriter
     
    Interessado? Deixe aqui seu contato e se possível algum trabalho.
  14. Upvote
    RigBy deu reputação a Administrador em xTibia Recomenda! Vaneheim Global   
    Indico a vocês este servidor muito maneiro que está ganhando espaço! O Vaneheim Global é um servidor open-source, é um dos mais completos do mercado e oferece a melhor jogabilidade e diversão para você!



    O intuito deste projeto é oferecer um servidor opensource na qual qualquer pessoa pode utilizar e ajudar, pois está disponível em projeto no GitHub, que poderá ser acompanhado através do link: https://www.github.com/otsolutions/Vanaheim. O Vaneheim é um exemplo para você comprovar o que estamos falando!









    • O projeto está sendo patrocinado pelo xTibia e pela ServerSoft que é uma empresa que nós recomendados para todos aquele que buscam uma host de qualidade para oferecer aos seus jogadores, além de possuir o OTPanel que é uma ferramente muito útil e fácil de utilizar, principalmente para quem está começando a hostear um servidor.








  15. Upvote
    RigBy deu reputação a Administrador em xTibia Global - O servidor oficial do xTibia!   
    global.xtibia.com
    Eai galera, venho anunciar a vocês, o servidor global oficial do xTibia!
    Bom não há muito o que falar, mas a partir do lançamento do servidor, recompensas in-game farão parte de alguns eventos do xTibia. Espero que curtam a ideia!
    Servidor Patrocinado pelo xTibia e pela Serversoft! Então já sabem... É tipo friboi. Confiança e Qualidade








    #UPDATE 15/09

     

    Curta nossa página:







     
  16. Upvote
    RigBy deu reputação a Bruno em Vanaheim global open source   
    m método diferente de agir. Escolhas diferentes, um projeto surpreendente, e o melhor é open source. Sim, você pode ter acesso a este servidor que estou desenvolvendo em parceria com a Serversoft para você.

    Um servidor com uma mega estrutura para suportar seus jogadores online sem nenhum problema como: debug, bug de clonagem, instabilidade entre diversos outros dos servidores free's disponíveis para download nessa vasta internet tibiana.

    Uma inovação no ramo de OTservers, distribuindo não só a datapack como as sourcers e os sistemas, absolutamente tudo que você procura. Basta baixar, compilar... Mas eu não sei compilar. Não há problema nisso, o OTPanel da Serversoft faz tudo isso para você. Basta clicar num botão de "play" e ver a mágica acontecer.

    O projeto Vanaheim, foi criado com o intuito de ser inteiramente grátis para toda a comunidade. Um servidor no qual a diversão é o fator principal, um projeto com viabilidade absoluta por todos os tibianos.

    O projeto conta com uma área exclusiva no GitHub para que todos possam acompanhar a evolução do mesmo, dia a dia, diversas atualizações estarão disponíveis a todos. Desde uma action até uma modificação na source vocês terão acesso.

    O servidor conta com um mapa Global Full, quando eu digo full, quero dizer que está 99.99% do mapa completo, sem bugs entre outros.
    Um servidor que você escolhe a rate experience/skill que desejar, ele vai se adaptar! Você pode escolher se quer ou não que as quests tenham as missões originais 100%!
     

    GITHUB  
    Para acompanhar e baixar o servidor atualizado, segue o link do nosso projeto no GitHub:

     

    DOWNLOADS  
     
    Servidor
    Mapa
    Yasir
    Scan
     

    CRÉDITOS
    TFS Team
    Orts Project
     
  17. Upvote
    RigBy deu reputação a gonorreiaswat em Sistema: Cassino Slots   
    Bom dia turma,
    Após um pedido aqui no outro fórum sobre um sistema de Cassino, decidi então criar este e disponibilizar para vocês.
     
    Introdução:
    Bom, este script simula a máquina de Cassino conhecida como Cassino Slots, pra quem não conhece é a máquina que se encontra no spoiler abaixo:
     
     
     
     
    Como funciona?
    O jogador precisa escolher 1 (um) dos 10 (dez) itens disponíveis (da para configurar a quantidade de itens) como seu Item da Sorte, e após feito isso, terá que girar a alavanca e torcer para que a máquina sorteie 3 itens repetidos igual ao que o jogador em questão escolheu.
    Para tornar um pouco mais fácil de vencer, criei para que a máquina dê pequenos brindes à quem acertar 1 ou 2 itens dos sorteados (configurável).
     
    Como jogar?
    Para jogar é simples, como desenvolvi todo script em apenas um arquivo, para facilitar na criação, na instalação e até mesmo na jogabilidade, o jogo se baseia na posição em que o jogador está para identificar qual ação executar.
    Selecionar Item da Sorte: com seu personagem virado para baixo (sul), clique na alavanca e automaticamente o item da sorte aparecerá na mesa configurada no script, caso queira outro item, basta ir usando a alavanca até encontrar o item desejado.
    Como Jogar: Após ter selecionado seu item da sorte, que deve estar à mostra em cima da mesa própria, basta virar seu personagem para cima (norte) e clicar novamente na alavanca.
    E se virar esquerda ou direita?: Nada acontecerá, apenas uma mensagem ensinando como jogar será enviada para que o jogador se oriente.
     
    Dicas de instalação!
    Sugiro que quando for criar o mapa para o evento, não faça como do vídeo, pois os itens criados nas mesas não estão com atributos para que não possam ser movidos, sendo assim é provável que jogadores de má fé venham a roubar itens... Faça como a imagem abaixo:
     
     
    Instalando:
    Basta criar um arquivo na pasta “data/actions/scripts” chamado “cassino_slots.lua” e adicionar o código abaixo dentro:
     

    Agora em “actions.xml” adicione a tag abaixo:
     

    Agora basta configurar de acordo com as informações disponíveis no início do script.
     
     
    Vejam o vídeo demonstrativo do Sistema em funcionamento.

     
     
     
     
    Criado por: Adriano Swatt'
  18. Upvote
    RigBy deu reputação a Felipe Moraes em Lista de Constantes para scripts   
    Segue a lista com as constantes (enum) do TFS, útil especialmente na criação, edição e personalização de scripts em geral.
    Você encontra essas informações no luascript.cpp da sua distro, porém preferi resumi-las em um local para facilitar o acesso.
    Lembrando que pode haver pequenas variações entre as versões.
     
     
    Espero que seja útil para alguém.
     
    Tipos de Contas
    ACCOUNT_TYPE_NORMAL ACCOUNT_TYPE_TUTOR ACCOUNT_TYPE_SENIORTUTOR ACCOUNT_TYPE_GAMEMASTER ACCOUNT_TYPE_GOD Callback(base para o dano)
    CALLBACK_PARAM_LEVELMAGICVALUE CALLBACK_PARAM_SKILLVALUE CALLBACK_PARAM_TARGETTILE CALLBACK_PARAM_TARGETCREATURE Fórmulas
    COMBAT_FORMULA_UNDEFINED COMBAT_FORMULA_LEVELMAGIC COMBAT_FORMULA_SKILL COMBAT_FORMULA_DAMAGE Direções
    NORTH EAST SOUTH WEST SOUTHWEST SOUTHEAST NORTHWEST NORTHEAST Tipos de Dano
    COMBAT_NONE COMBAT_PHYSICALDAMAGE COMBAT_ENERGYDAMAGE COMBAT_EARTHDAMAGE COMBAT_FIREDAMAGE COMBAT_UNDEFINEDDAMAGE COMBAT_LIFEDRAIN COMBAT_MANADRAIN COMBAT_HEALING COMBAT_DROWNDAMAGE COMBAT_ICEDAMAGE COMBAT_HOLYDAMAGE COMBAT_DEATHDAMAGE Tipos de Animação (geral)
    COMBAT_PARAM_TYPE COMBAT_PARAM_EFFECT COMBAT_PARAM_DISTANCEEFFECT COMBAT_PARAM_BLOCKSHIELD COMBAT_PARAM_BLOCKARMOR COMBAT_PARAM_TARGETCASTERORTOPMOST COMBAT_PARAM_CREATEITEM COMBAT_PARAM_AGGRESSIVE COMBAT_PARAM_DISPEL COMBAT_PARAM_USECHARGES Condições (estados mutáveis)
    CONDITION_NONE CONDITION_POISON CONDITION_FIRE CONDITION_ENERGY CONDITION_BLEEDING CONDITION_HASTE CONDITION_PARALYZE CONDITION_OUTFIT CONDITION_INVISIBLE CONDITION_LIGHT CONDITION_MANASHIELD CONDITION_INFIGHT CONDITION_DRUNK CONDITION_EXHAUST_WEAPON CONDITION_REGENERATION CONDITION_SOUL CONDITION_DROWN CONDITION_MUTED CONDITION_CHANNELMUTEDTICKS CONDITION_YELLTICKS CONDITION_ATTRIBUTES CONDITION_FREEZING CONDITION_DAZZLED CONDITION_CURSED CONDITION_EXHAUST_COMBAT CONDITION_EXHAUST_HEAL CONDITION_PACIFIED CONDITION_SPELLCOOLDOWN CONDITION_SPELLGROUPCOOLDOWN Estado do Slot
    CONDITIONID_DEFAULT CONDITIONID_COMBAT CONDITIONID_HEAD CONDITIONID_NECKLACE CONDITIONID_BACKPACK CONDITIONID_ARMOR CONDITIONID_RIGHT CONDITIONID_LEFT CONDITIONID_LEGS CONDITIONID_FEET CONDITIONID_RING CONDITIONID_AMMO Condições (atributos)
    CONDITION_PARAM_OWNER CONDITION_PARAM_TICKS CONDITION_PARAM_HEALTHGAIN CONDITION_PARAM_HEALTHTICKS CONDITION_PARAM_MANAGAIN CONDITION_PARAM_MANATICKS CONDITION_PARAM_DELAYED CONDITION_PARAM_SPEED CONDITION_PARAM_LIGHT_LEVEL CONDITION_PARAM_LIGHT_COLOR CONDITION_PARAM_SOULGAIN CONDITION_PARAM_SOULTICKS CONDITION_PARAM_MINVALUE CONDITION_PARAM_MAXVALUE CONDITION_PARAM_STARTVALUE CONDITION_PARAM_TICKINTERVAL CONDITION_PARAM_FORCEUPDATE CONDITION_PARAM_SKILL_MELEE CONDITION_PARAM_SKILL_FIST CONDITION_PARAM_SKILL_CLUB CONDITION_PARAM_SKILL_SWORD CONDITION_PARAM_SKILL_AXE CONDITION_PARAM_SKILL_DISTANCE CONDITION_PARAM_SKILL_SHIELD CONDITION_PARAM_SKILL_FISHING CONDITION_PARAM_STAT_MAXHITPOINTS CONDITION_PARAM_STAT_MAXMANAPOINTS CONDITION_PARAM_STAT_SOULPOINTS CONDITION_PARAM_STAT_MAGICPOINTS CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT CONDITION_PARAM_STAT_SOULPOINTSPERCENT CONDITION_PARAM_STAT_MAGICPOINTSPERCENT CONDITION_PARAM_PERIODICDAMAGE CONDITION_PARAM_SKILL_MELEEPERCENT CONDITION_PARAM_SKILL_FISTPERCENT CONDITION_PARAM_SKILL_CLUBPERCENT CONDITION_PARAM_SKILL_SWORDPERCENT CONDITION_PARAM_SKILL_AXEPERCENT CONDITION_PARAM_SKILL_DISTANCEPERCENT CONDITION_PARAM_SKILL_SHIELDPERCENT CONDITION_PARAM_SKILL_FISHINGPERCENT CONDITION_PARAM_BUFF_SPELL CONDITION_PARAM_SUBID CONDITION_PARAM_FIELD Animações de Magias
    CONST_ME_DRAWBLOOD CONST_ME_LOSEENERGY CONST_ME_POFF CONST_ME_BLOCKHIT CONST_ME_EXPLOSIONAREA CONST_ME_EXPLOSIONHIT CONST_ME_FIREAREA CONST_ME_YELLOW_RINGS CONST_ME_GREEN_RINGS CONST_ME_HITAREA CONST_ME_TELEPORT CONST_ME_ENERGYHIT CONST_ME_MAGIC_BLUE CONST_ME_MAGIC_RED CONST_ME_MAGIC_GREEN CONST_ME_HITBYFIRE CONST_ME_HITBYPOISON CONST_ME_MORTAREA CONST_ME_SOUND_GREEN CONST_ME_SOUND_RED CONST_ME_POISONAREA CONST_ME_SOUND_YELLOW CONST_ME_SOUND_PURPLE CONST_ME_SOUND_BLUE CONST_ME_SOUND_WHITE CONST_ME_BUBBLES CONST_ME_CRAPS CONST_ME_GIFT_WRAPS CONST_ME_FIREWORK_YELLOW CONST_ME_FIREWORK_RED CONST_ME_FIREWORK_BLUE CONST_ME_STUN CONST_ME_SLEEP CONST_ME_WATERCREATURE CONST_ME_GROUNDSHAKER CONST_ME_HEARTS CONST_ME_FIREATTACK CONST_ME_ENERGYAREA CONST_ME_SMALLCLOUDS CONST_ME_HOLYDAMAGE CONST_ME_BIGCLOUDS CONST_ME_ICEAREA CONST_ME_ICETORNADO CONST_ME_ICEATTACK CONST_ME_STONES CONST_ME_SMALLPLANTS CONST_ME_CARNIPHILA CONST_ME_PURPLEENERGY CONST_ME_YELLOWENERGY CONST_ME_HOLYAREA CONST_ME_BIGPLANTS CONST_ME_CAKE CONST_ME_GIANTICE CONST_ME_WATERSPLASH CONST_ME_PLANTATTACK CONST_ME_TUTORIALARROW CONST_ME_TUTORIALSQUARE CONST_ME_MIRRORHORIZONTAL CONST_ME_MIRRORVERTICAL CONST_ME_SKULLHORIZONTAL CONST_ME_SKULLVERTICAL CONST_ME_ASSASSIN CONST_ME_STEPSHORIZONTAL CONST_ME_BLOODYSTEPS CONST_ME_STEPSVERTICAL CONST_ME_YALAHARIGHOST CONST_ME_BATS CONST_ME_SMOKE CONST_ME_INSECTS CONST_ME_DRAGONHEAD CONST_ME_ORCSHAMAN CONST_ME_ORCSHAMAN_FIRE CONST_ME_THUNDER CONST_ME_FERUMBRAS CONST_ME_CONFETTI_HORIZONTAL CONST_ME_CONFETTI_VERTICAL CONST_ME_BLACKSMOKE CONST_ME_NONE Animações de ataque à distância
    CONST_ANI_SPEAR CONST_ANI_BOLT CONST_ANI_ARROW CONST_ANI_FIRE CONST_ANI_ENERGY CONST_ANI_POISONARROW CONST_ANI_BURSTARROW CONST_ANI_THROWINGSTAR CONST_ANI_THROWINGKNIFE CONST_ANI_SMALLSTONE CONST_ANI_DEATH CONST_ANI_LARGEROCK CONST_ANI_SNOWBALL CONST_ANI_POWERBOLT CONST_ANI_POISON CONST_ANI_INFERNALBOLT CONST_ANI_HUNTINGSPEAR CONST_ANI_ENCHANTEDSPEAR CONST_ANI_REDSTAR CONST_ANI_GREENSTAR CONST_ANI_ROYALSPEAR CONST_ANI_SNIPERARROW CONST_ANI_ONYXARROW CONST_ANI_PIERCINGBOLT CONST_ANI_WHIRLWINDSWORD CONST_ANI_WHIRLWINDAXE CONST_ANI_WHIRLWINDCLUB CONST_ANI_ETHEREALSPEAR CONST_ANI_ICE CONST_ANI_EARTH CONST_ANI_HOLY CONST_ANI_SUDDENDEATH CONST_ANI_FLASHARROW CONST_ANI_FLAMMINGARROW CONST_ANI_SHIVERARROW CONST_ANI_ENERGYBALL CONST_ANI_SMALLICE CONST_ANI_SMALLHOLY CONST_ANI_SMALLEARTH CONST_ANI_EARTHARROW CONST_ANI_EXPLOSION CONST_ANI_CAKE CONST_ANI_TARSALARROW CONST_ANI_VORTEXBOLT CONST_ANI_PRISMATICBOLT CONST_ANI_CRYSTALLINEARROW CONST_ANI_DRILLBOLT CONST_ANI_ENVENOMEDARROW CONST_ANI_WEAPONTYPE CONST_ANI_NONE Propiedade de Objetos
    CONST_PROP_BLOCKSOLID CONST_PROP_HASHEIGHT CONST_PROP_BLOCKPROJECTILE CONST_PROP_BLOCKPATH CONST_PROP_ISVERTICAL CONST_PROP_ISHORIZONTAL CONST_PROP_MOVEABLE CONST_PROP_IMMOVABLEBLOCKSOLID CONST_PROP_IMMOVABLEBLOCKPATH CONST_PROP_IMMOVABLENOFIELDBLOCKPATH CONST_PROP_NOFIELDBLOCKPATH CONST_PROP_SUPPORTHANGABLE Slots
    CONST_SLOT_HEAD CONST_SLOT_NECKLACE CONST_SLOT_BACKPACK CONST_SLOT_ARMOR CONST_SLOT_RIGHT CONST_SLOT_LEFT CONST_SLOT_LEGS CONST_SLOT_FEET CONST_SLOT_RING CONST_SLOT_AMMO Estado do Servidor
    GAME_STATE_STARTUP GAME_STATE_INIT GAME_STATE_NORMAL GAME_STATE_CLOSED GAME_STATE_SHUTDOWN GAME_STATE_CLOSING GAME_STATE_MAINTAIN Tipos de Texto (eventos)
    MESSAGE_STATUS_CONSOLE_BLUE MESSAGE_STATUS_CONSOLE_RED MESSAGE_STATUS_DEFAULT MESSAGE_STATUS_WARNING MESSAGE_EVENT_ADVANCE MESSAGE_STATUS_SMALL MESSAGE_INFO_DESCR MESSAGE_DAMAGE_DEALT MESSAGE_DAMAGE_RECEIVED MESSAGE_HEALED MESSAGE_EXPERIENCE MESSAGE_DAMAGE_OTHERS MESSAGE_HEALED_OTHERS MESSAGE_EXPERIENCE_OTHERS MESSAGE_EVENT_DEFAULT MESSAGE_EVENT_ORANGE MESSAGE_STATUS_CONSOLE_ORANGE Sistema Operacional do Cliente
    CLIENTOS_LINUX CLIENTOS_WINDOWS CLIENTOS_FLASH CLIENTOS_OTCLIENT_LINUX CLIENTOS_OTCLIENT_WINDOWS CLIENTOS_OTCLIENT_MAC Atributo de Itens
    ITEM_ATTRIBUTE_NONE ITEM_ATTRIBUTE_ACTIONID ITEM_ATTRIBUTE_UNIQUEID ITEM_ATTRIBUTE_DESCRIPTION ITEM_ATTRIBUTE_TEXT ITEM_ATTRIBUTE_DATE ITEM_ATTRIBUTE_WRITER ITEM_ATTRIBUTE_NAME ITEM_ATTRIBUTE_ARTICLE ITEM_ATTRIBUTE_PLURALNAME ITEM_ATTRIBUTE_WEIGHT ITEM_ATTRIBUTE_ATTACK ITEM_ATTRIBUTE_DEFENSE ITEM_ATTRIBUTE_EXTRADEFENSE ITEM_ATTRIBUTE_ARMOR ITEM_ATTRIBUTE_HITCHANCE ITEM_ATTRIBUTE_SHOOTRANGE ITEM_ATTRIBUTE_OWNER ITEM_ATTRIBUTE_DURATION ITEM_ATTRIBUTE_DECAYSTATE ITEM_ATTRIBUTE_CORPSEOWNER ITEM_ATTRIBUTE_CHARGES ITEM_ATTRIBUTE_FLUIDTYPE ITEM_ATTRIBUTE_DOORID Tipo do Item
    ITEM_TYPE_DEPOT ITEM_TYPE_MAILBOX ITEM_TYPE_TRASHHOLDER ITEM_TYPE_CONTAINER ITEM_TYPE_DOOR ITEM_TYPE_MAGICFIELD ITEM_TYPE_TELEPORT ITEM_TYPE_BED ITEM_TYPE_KEY ITEM_TYPE_RUNE Constante do item (geralmente itens imutáveis)
    ITEM_GOLD_COIN ITEM_PLATINUM_COIN ITEM_CRYSTAL_COIN ITEM_PARCEL ITEM_LABEL ITEM_FIREFIELD_PVP_FULL ITEM_FIREFIELD_PVP_MEDIUM ITEM_FIREFIELD_PVP_SMALL ITEM_FIREFIELD_PERSISTENT_FULL ITEM_FIREFIELD_PERSISTENT_MEDIUM ITEM_FIREFIELD_PERSISTENT_SMALL ITEM_FIREFIELD_NOPVP ITEM_POISONFIELD_PVP ITEM_POISONFIELD_PERSISTENT ITEM_POISONFIELD_NOPVP ITEM_ENERGYFIELD_PVP ITEM_ENERGYFIELD_PERSISTENT ITEM_ENERGYFIELD_NOPVP ITEM_MAGICWALL ITEM_MAGICWALL_PERSISTENT ITEM_MAGICWALL_SAFE ITEM_WILDGROWTH ITEM_WILDGROWTH_PERSISTENT ITEM_WILDGROWTH_SAFE Flags do jogador
    PlayerFlag_CannotUseCombat PlayerFlag_CannotAttackPlayer PlayerFlag_CannotAttackMonster PlayerFlag_CannotBeAttacked PlayerFlag_CanConvinceAll PlayerFlag_CanSummonAll PlayerFlag_CanIllusionAll PlayerFlag_CanSenseInvisibility PlayerFlag_IgnoredByMonsters PlayerFlag_NotGainInFight PlayerFlag_HasInfiniteMana PlayerFlag_HasInfiniteSoul PlayerFlag_HasNoExhaustion PlayerFlag_CannotUseSpells PlayerFlag_CannotPickupItem PlayerFlag_CanAlwaysLogin PlayerFlag_CanBroadcast PlayerFlag_CanEditHouses PlayerFlag_CannotBeBanned PlayerFlag_CannotBePushed PlayerFlag_HasInfiniteCapacity PlayerFlag_CanPushAllCreatures PlayerFlag_CanTalkRedPrivate PlayerFlag_CanTalkRedChannel PlayerFlag_TalkOrangeHelpChannel PlayerFlag_NotGainExperience PlayerFlag_NotGainMana PlayerFlag_NotGainHealth PlayerFlag_NotGainSkill PlayerFlag_SetMaxSpeed PlayerFlag_SpecialVIP PlayerFlag_NotGenerateLoot PlayerFlag_CanTalkRedChannelAnonymous PlayerFlag_IgnoreProtectionZone PlayerFlag_IgnoreSpellCheck PlayerFlag_IgnoreWeaponCheck PlayerFlag_CannotBeMuted PlayerFlag_IsAlwaysPremium Sexo
    PLAYERSEX_FEMALE PLAYERSEX_MALE Skills
    SKILL_FIST SKILL_CLUB SKILL_SWORD SKILL_AXE SKILL_DISTANCE SKILL_SHIELD SKILL_FISHING SKILL_MAGLEVEL SKILLVALUE_LEVEL Skulls
    SKULL_NONE SKULL_YELLOW SKULL_GREEN SKULL_WHITE SKULL_RED SKULL_BLACK SKULL_ORANGE Tipo da Mensagem
    TALKTYPE_SAY TALKTYPE_WHISPER TALKTYPE_YELL TALKTYPE_PRIVATE_FROM TALKTYPE_PRIVATE_TO TALKTYPE_CHANNEL_Y TALKTYPE_CHANNEL_O TALKTYPE_PRIVATE_NP TALKTYPE_PRIVATE_PN TALKTYPE_BROADCAST TALKTYPE_CHANNEL_R1 TALKTYPE_PRIVATE_RED_FROM TALKTYPE_PRIVATE_RED_TO TALKTYPE_MONSTER_SAY TALKTYPE_MONSTER_YELL TALKTYPE_CHANNEL_R2 TALKTYPE_CHANNEL_W Cor da Mensagem
    TEXTCOLOR_BLUE TEXTCOLOR_LIGHTGREEN TEXTCOLOR_LIGHTBLUE TEXTCOLOR_MAYABLUE TEXTCOLOR_DARKRED TEXTCOLOR_LIGHTGREY TEXTCOLOR_SKYBLUE TEXTCOLOR_PURPLE TEXTCOLOR_RED TEXTCOLOR_ORANGE TEXTCOLOR_YELLOW TEXTCOLOR_WHITE_EXP TEXTCOLOR_NONE Atributo do tile (chão)
    TILESTATE_NONE TILESTATE_PROTECTIONZONE TILESTATE_DEPRECATED_HOUSE TILESTATE_NOPVPZONE TILESTATE_NOLOGOUT TILESTATE_PVPZONE TILESTATE_REFRESH TILESTATE_HOUSE TILESTATE_FLOORCHANGE TILESTATE_FLOORCHANGE_DOWN TILESTATE_FLOORCHANGE_NORTH TILESTATE_FLOORCHANGE_SOUTH TILESTATE_FLOORCHANGE_EAST TILESTATE_FLOORCHANGE_WEST TILESTATE_TELEPORT TILESTATE_MAGICFIELD TILESTATE_MAILBOX TILESTATE_TRASHHOLDER TILESTATE_BED TILESTATE_DEPOT TILESTATE_BLOCKSOLID TILESTATE_BLOCKPATH TILESTATE_IMMOVABLEBLOCKSOLID TILESTATE_IMMOVABLEBLOCKPATH TILESTATE_IMMOVABLENOFIELDBLOCKPATH TILESTATE_NOFIELDBLOCKPATH TILESTATE_DYNAMIC_TILE TILESTATE_FLOORCHANGE_SOUTH_ALT TILESTATE_FLOORCHANGE_EAST_ALT TILESTATE_SUPPORTS_HANGABLE Tipo de Armas
    WEAPON_NONE WEAPON_SWORD WEAPON_CLUB WEAPON_AXE WEAPON_SHIELD WEAPON_DISTANCE WEAPON_WAND WEAPON_AMMO Modo PVP
    WORLD_TYPE_NO_PVP WORLD_TYPE_PVP WORLD_TYPE_PVP_ENFORCED Outras Flags
    FLAG_NOLIMIT FLAG_IGNOREBLOCKITEM FLAG_IGNOREBLOCKCREATURE FLAG_CHILDISOWNER FLAG_PATHFINDING FLAG_IGNOREFIELDDAMAGE FLAG_IGNORENOTMOVEABLE FLAG_IGNOREAUTOSTACK Posição Slot (slot position)
    SLOTP_WHEREEVER SLOTP_HEAD SLOTP_NECKLACE SLOTP_BACKPACK SLOTP_ARMOR SLOTP_RIGHT SLOTP_LEFT SLOTP_LEGS SLOTP_FEET SLOTP_RING SLOTP_AMMO SLOTP_DEPOT SLOTP_TWO_HAND Origem do Combate
    ORIGIN_NONE ORIGIN_CONDITION ORIGIN_SPELL ORIGIN_MELEE ORIGIN_RANGED Acesso à House
    GUEST_LIST SUBOWNER_LIST Janelas (trade, etc)
    SPEECHBUBBLE_NONE SPEECHBUBBLE_NORMAL SPEECHBUBBLE_TRADE SPEECHBUBBLE_QUEST SPEECHBUBBLE_QUESTTRADER Marcadores (mapa)
    MAPMARK_TICK MAPMARK_QUESTION MAPMARK_EXCLAMATION MAPMARK_STAR MAPMARK_CROSS MAPMARK_TEMPLE MAPMARK_KISS MAPMARK_SHOVEL MAPMARK_SWORD MAPMARK_FLAG MAPMARK_LOCK MAPMARK_BAG MAPMARK_SKULL MAPMARK_DOLLAR MAPMARK_REDNORTH MAPMARK_REDSOUTH MAPMARK_REDEAST MAPMARK_REDWEST MAPMARK_GREENNORTH MAPMARK_GREENSOUTH Condições de Retorno (mensagens do sistema)
    RETURNVALUE_NOERROR RETURNVALUE_NOTPOSSIBLE RETURNVALUE_NOTENOUGHROOM RETURNVALUE_PLAYERISPZLOCKED RETURNVALUE_PLAYERISNOTINVITED RETURNVALUE_CANNOTTHROW RETURNVALUE_THEREISNOWAY RETURNVALUE_DESTINATIONOUTOFREACH RETURNVALUE_CREATUREBLOCK RETURNVALUE_NOTMOVEABLE RETURNVALUE_DROPTWOHANDEDITEM RETURNVALUE_BOTHHANDSNEEDTOBEFREE RETURNVALUE_CANONLYUSEONEWEAPON RETURNVALUE_NEEDEXCHANGE RETURNVALUE_CANNOTBEDRESSED RETURNVALUE_PUTTHISOBJECTINYOURHAND RETURNVALUE_PUTTHISOBJECTINBOTHHANDS RETURNVALUE_TOOFARAWAY RETURNVALUE_FIRSTGODOWNSTAIRS RETURNVALUE_FIRSTGOUPSTAIRS RETURNVALUE_CONTAINERNOTENOUGHROOM RETURNVALUE_NOTENOUGHCAPACITY RETURNVALUE_CANNOTPICKUP RETURNVALUE_THISISIMPOSSIBLE RETURNVALUE_DEPOTISFULL RETURNVALUE_CREATUREDOESNOTEXIST RETURNVALUE_CANNOTUSETHISOBJECT RETURNVALUE_PLAYERWITHTHISNAMEISNOTONLINE RETURNVALUE_NOTREQUIREDLEVELTOUSERUNE RETURNVALUE_YOUAREALREADYTRADING RETURNVALUE_THISPLAYERISALREADYTRADING RETURNVALUE_YOUMAYNOTLOGOUTDURINGAFIGHT RETURNVALUE_DIRECTPLAYERSHOOT RETURNVALUE_NOTENOUGHLEVEL RETURNVALUE_NOTENOUGHMAGICLEVEL RETURNVALUE_NOTENOUGHMANA RETURNVALUE_NOTENOUGHSOUL RETURNVALUE_YOUAREEXHAUSTED RETURNVALUE_PLAYERISNOTREACHABLE RETURNVALUE_CANONLYUSETHISRUNEONCREATURES RETURNVALUE_ACTIONNOTPERMITTEDINPROTECTIONZONE RETURNVALUE_YOUMAYNOTATTACKTHISPLAYER RETURNVALUE_YOUMAYNOTATTACKAPERSONINPROTECTIONZONE RETURNVALUE_YOUMAYNOTATTACKAPERSONWHILEINPROTECTIONZONE RETURNVALUE_YOUMAYNOTATTACKTHISCREATURE RETURNVALUE_YOUCANONLYUSEITONCREATURES RETURNVALUE_CREATUREISNOTREACHABLE RETURNVALUE_TURNSECUREMODETOATTACKUNMARKEDPLAYERS RETURNVALUE_YOUNEEDPREMIUMACCOUNT RETURNVALUE_YOUNEEDTOLEARNTHISSPELL RETURNVALUE_YOURVOCATIONCANNOTUSETHISSPELL RETURNVALUE_YOUNEEDAWEAPONTOUSETHISSPELL RETURNVALUE_PLAYERISPZLOCKEDLEAVEPVPZONE RETURNVALUE_PLAYERISPZLOCKEDENTERPVPZONE RETURNVALUE_ACTIONNOTPERMITTEDINANOPVPZONE RETURNVALUE_YOUCANNOTLOGOUTHERE RETURNVALUE_YOUNEEDAMAGICITEMTOCASTSPELL RETURNVALUE_CANNOTCONJUREITEMHERE RETURNVALUE_YOUNEEDTOSPLITYOURSPEARS RETURNVALUE_NAMEISTOOAMBIGIOUS RETURNVALUE_CANONLYUSEONESHIELD RETURNVALUE_NOPARTYMEMBERSINRANGE RETURNVALUE_YOUARENOTTHEOWNER Variáveis config.lua
    ALLOW_CHANGEOUTFIT CANNOT_ATTACK_SAME_LOOKFEET ONE_PLAYER_ON_ACCOUNT AIMBOT_HOTKEY_ENABLED REMOVE_AMMO REMOVE_RUNE_CHARGES EXPERIENCE_FROM_PLAYERS FREE_PREMIUM REPLACE_KICK_ON_LOGIN ALLOW_CLONES BIND_ONLY_GLOBAL_ADDRESS OPTIMIZE_DATABASE MARKET_PREMIUM EMOTE_SPELLS STAMINA_SYSTEM WARN_UNSAFE_SCRIPTS CONVERT_UNSAFE_SCRIPTS MAP_NAME HOUSE_RENT_PERIOD SERVER_NAME OWNER_NAME OWNER_EMAIL URL LOCATION IP MOTD WORLD_TYPE MYSQL_HOST MYSQL_USER MYSQL_PASS MYSQL_DB MYSQL_SOCK DEFAULT_PRIORITY MAP_AUTHOR SQL_PORT MAX_PLAYERS PZ_LOCKED DEFAULT_DESPAWNRANGE DEFAULT_DESPAWNRADIUS RATE_EXPERIENCE RATE_SKILL RATE_LOOT RATE_MAGIC RATE_SPAWN HOUSE_PRICE KILLS_TO_RED KILLS_TO_BLACK MAX_MESSAGEBUFFER ACTIONS_DELAY_INTERVAL EX_ACTIONS_DELAY_INTERVAL KICK_AFTER_MINUTES PROTECTION_LEVEL DEATH_LOSE_PERCENT STATUSQUERY_TIMEOUT FRAG_TIME WHITE_SKULL_TIME GAME_PORT LOGIN_PORT STATUS_PORT STAIRHOP_DELAY MARKET_OFFER_DURATION CHECK_EXPIRED_MARKET_OFFERS_EACH_MINUTES MAX_MARKET_OFFERS_AT_A_TIME_PER_PLAYER EXP_FROM_PLAYERS_LEVEL_RANGE MAX_PACKETS_PER_SECOND
  19. Upvote
    RigBy deu reputação a Mudrock em Ranking diferente in-game   




    Comando para utilizar
    !highscores

    TUTORIAL

    /globalevents/globalevents.xml
    <globalevent type="startup" name="Highscore" script="highscores.lua"/> <globalevent interval="10800000" name="Highscores" script="highscores.lua"/> /globalevents/scripts/highscores.lua
    local QueryList = { ['Level'] = {'`name`, `level` AS `score` FROM `players`', 'ORDER BY `experience` DESC'}, ['Magic Level'] = {'`name`, `maglevel` AS `score` FROM `players`', 'ORDER BY `maglevel` DESC, `manaspent` DESC'}, --['Storage'] = {'`players`.`name` AS `name`, `value` AS `score` FROM `player_storage` LEFT JOIN `players` ON `player_storage`.`player_id` = `players`.`id`', 'AND `key` = 1550 ORDER BY `value` DESC'} } for i, skill in ipairs({'fist','club','sword','axe','dist','shielding','fishing'}) do local index = (skill == 'dist' and 'Distance' or skill:gsub('^%l',string.upper)) .. (i < 6 and ' Fighting' or '') QueryList[index] = {'`name`, `skill_' .. skill .. '` AS `score` FROM `players`','ORDER BY `skill_' .. skill .. '` DESC, `skill_' .. skill .. '_tries` DESC'} end function updateHighscores() for skill, query in pairs(QueryList) do local t, Query = {}, db.storeQuery('SELECT ' .. query[1] .. ' WHERE `deletion` = 0 AND `group_id` < 3 ' .. query[2] .. ' LIMIT 30;') if Query ~= false then repeat table.insert(t, {result.getDataString(Query, 'name'), result.getDataInt(Query, 'score')}) until not result.next(Query) result.free(Query) setGlobalStorageValue(skill, t) end end setGlobalStorageValue('highscores', os.time()) end function onStartup() updateHighscores() end function onThink(interval) updateHighscores() return true end/creaturescripts/creaturescripts.xml<event type="modalwindow" name="Highscores" script="highscores.lua"/>/creaturescripts/scripts/highscores.luaSkillWindow = { [1337] = 'Local highscores at ' .. getConfigInfo('serverName'), [1338] = 'Level', [1339] = 'Magic Level', [1340] = 'Shielding', [1341] = 'Distance Fighting', [1342] = 'Sword Fighting', [1343] = 'Club Fighting', [1344] = 'Axe Fighting', [1345] = 'Fist Fighting', [1346] = 'Fishing', --[1347] = 'Storage' } highscores = ModalWindow(1337, SkillWindow[1337], 'Choose a category:') for i, skill in ipairs({'Level','Magic','Shielding','Distance','Sword','Club','Axe','Fist','Fishing'}) do highscores:addChoice(i, skill) end --highscores:addChoice(10, 'Storage') highscores:addButton(1, 'Show') highscores:addButton(2, 'Close') highscores:addButton(3, 'Info') highscores:setDefaultEnterButton(1) highscores:setDefaultEscapeButton(2) highscores:setPriority(true) function string.diff(diff) --by Colandus and fixed by Cykotitan local format = { {'day', diff / 60 / 60 / 24}, {'hour', diff / 60 / 60 % 24}, {'minute', diff / 60 % 60}, {'second', diff % 60} } local out = {} for k, t in ipairs(format) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find('second') then local a, b = ret:find(' and ') ret = ret:sub(b+1) end return ret end function string.abbr(first, final, limit) local str = first .. final if str:len() > limit then str = first:sub(1, limit-(final:len())) .. final end return str end function sendSkillWindow(cid, windowId) local highscore = ModalWindow(windowId, 'Ranking for ' .. SkillWindow[windowId], 'Scroll down for entire list') for rank, score in ipairs(getGlobalStorageValue(SkillWindow[windowId])) do highscore:addChoice(rank, string.abbr(rank .. '. ' .. score[1], '... ' .. score[2], 30)) end highscore:addButton(1, 'Back') highscore:addButton(2, 'Close') highscore:addButton(3, 'Info') highscore:setDefaultEscapeButton(2) highscore:setPriority(true) highscore:sendToPlayer(cid) end function onModalWindow(cid, modalWindowId, buttonId, choiceId) if not SkillWindow[modalWindowId] then return end if buttonId == 3 then doPlayerPopupFYI(cid, 'Local highscores were last updated ' .. string.diff(os.time()-getGlobalStorageValue('highscores')) .. ' ago.') elseif buttonId == 1 then if modalWindowId == 1337 then sendSkillWindow(cid, 1337+choiceId) else highscores:sendToPlayer(cid) end return end return unregisterCreatureEvent(cid, 'Highscores') end /talkactions/talkactions.xml
    <talkaction words="!highscores" script="highscores.lua" /> /talkactions/scripts/highscores.lua
    function onSay(cid, words, param) registerCreatureEvent(cid, 'Highscores') highscores:sendToPlayer(cid) return false end Créditos :
    cbrm
  20. Upvote
    RigBy deu reputação a gonorreiaswat em [Encerrado]Servidor Alternativo [Child's Play]   
    Bom dia galera, se me permitem gastar uns minutinhos do seu tempo.
    Bom algumas pessoas aqui do Fórum já me conhecem, ou pelo menos já me viram por aí, já que mantenho o lado ativo há muitos anos por aqui.
     
    Hoje estou passando apenas para anunciar que estou com um Projeto em desenvolvimento para ser lançado muito em breve (já fiz testes betas e farei mais alguns), sendo ele focado em "Brincadeiras Infantis", ou seja, é um servidor completamente diferente de tudo que já viram.
    Não há matança de monstros (mas estou estudando a possibilidade de adicionar de modo bem bolado), nem matança de players, nem nada que pelo menos eu tenha já visto antes... [editado]
    O único jeito de morrer por aqui é de fome. haha'
     
    × Brincadeiras já funcionando:
    Pega-Pega Pega-Pega Coletivo Detetive & Ladrão × Brincadeiras sendo adicionadas:
    Esconde-Esconde → Em testes Pega-Pega Congela → Em desenvolvimento League of Legends Tibia → Em desenvolvimento e testes × Brincadeiras que estão nos planos:
    See You in My Nightmare (local de caça de monstros) Batata-Quente  
    Bom, esta é a Logo que fiz correndo para que possamos dar início aos "Tests Beta".
    Abaixo, veja um pouco do Como Funciona cada brincadeira que já estão disponíveis:
    Obs: As descritas abaixo estão prontas porém ainda sendo ajustadas, por isso a necessidade dos Betas Tests.
     
    Pega-Pega, todos já sabem como funciona né?
    Todo mundo já brincou disso um dia, sendo assim, dos princípios básicos não preciso falar muito, abaixo segue algumas informações que considero importante:
     
     
     
    Pega-Pega Coletivo, é quase a mesma coisa do anterior, só que o número de bobos multiplica.
     
     
     
    Detetive & Ladrão.
     
     
     
    O que é o Templo Principal (Home Temple)?
     
     
     
    Como adquirimos Experiência, bens e itens?
     
     
     
    Aos poucos irei editando e adicionando as novidades no tópico.
    Breve irei gravar um vídeo básico mostrando o jogo em funcionamento para os que ainda não conhecem.
     
     
     
    Obrigado a todos.
  21. Upvote
    RigBy deu reputação a Administrador em Daniel Spriting   
  22. Upvote
    RigBy deu reputação a Administrador em Contraste, Luz, Sombra e Pillow Shading   
    CONTRASTE, LUZ, SOMBRA E PILLOW-SHADING!





    Contraste é a diferença entre duais coisas. Quanto mais uma coisa é diferente da outra, maior é o contraste entre elas. Na figura abaixo, estamos analisando o lado ESQUERDO (em azul) e o lado DIREITO (em vermelho) do nosso "sprite" que está no meio. Conforme vamos adicionando LUZ no lado ESQUERDO e adicionando SOMBRA no lado DIREITO, vamos aumentando a diferença entre os lados. Isso significa que estamos AUMENTANDO o contraste entre eles




    Existe luz...luz média e sombra. Mas existe também um pouco de reflexo que ilumina parte da sombra.
    Por exemplo:
    I - Luz forte
    II Luz média
    III - Sombra
    IV - Reflexo






    Perceba que a cor do reflexo é um pouco mais clara que a cor da sombra. Como se fosse uma luz baixa, na sombra.



    Quanto ao Pillow-Shading:


    Quando acontece o Pillow-Shading?

    * Quando você usa pouco contraste entre a sombra e aluz.
    * Quando você suaviza demais as cores com AA (AA serve pra diminuir o contraste)
    * Quando você usa uma cor dentro da outra em progressão de luminosidade (branco dentro do cinza claro, centro do cinza escuro, dentro do preto - Como na terceira ombreira)

    Prefira...

    * Trabalhar com reflexos
    * Usar só UMA camada de AA (só um pixel entre cores que tem contraste alto entre elas)
    * Não usar AA em todas as " bordas" de uma "mancha" de cor, para suavizar ela com o fundo. Use apenas em lugares que o contraste é extremamente alto ex: Quinas e cantos de ombreiras)





    Créditos: André
  23. Upvote
    RigBy recebeu reputação de Kalashnikov Jr em Escada da Ice Island   
    Deve ser porque a montanha ta embaixo da escada, tenta tirar a montanha e testa.
  24. Upvote
    RigBy deu reputação a Felipe Moraes em Criando sua Primeira Aplicação em Java   
    Olá, bom dia a todos.
     
    Venho neste tutorial, mostrar para vocês como criar sua primeira aplicação em Java.
     
    Primeiramente, o que você vai precisar:
     
    JDK (Pacote da Oracle com todas as bibliotecas que precisamos para executar o código em Java) IDE (Onde vamos criar nossas classes, escrever nossos códigos e executar nossa aplicação)  
     
    Você pode fazer o download da última versão do JDK diretamente no site da Oracle:
    http://http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    A instalação é simples, basta apenas seguir o passo-a-passo.
    Só preste atenção no local de instalação. Sistemas 64 bits recomendo que instale na pasta Arquivos de Programas, e não em Arquivos de Programas (x86) - no caso de Windows.
     
     
    Para o nosso tutorial, usarei o Eclipse como IDE, mas você pode optar por outros, como NetBeans ou BlueJ.
    Acesse o site: https://eclipse.org/downloads/?osType=win32
    Você verá 2 opções:
    Eclipse IDE for Java EE Developers Eclipse IDE for Java Developers  
    A primeira contem recursos adicionais para o desenvolvimento de java para web (webservices, sessões, etc), e não será necessária para nosso tutorial, mas fiquem à vontade para baixa-la, pois ela complementa a segunda.
     
    A instalação é simples, e não requer muita explicação também.
     
     
     
    Após a instalação, abra o Eclipse. Lhe será pedido para informar onde o eclipse deve salvar automaticamente as configurações do seu perfil. Após, você verá a tela de Boas Vindas.  
    Vá em File -> New - > Java Project (caso não exiba essa opção, vá em Project e depois sim em Java Project)
     
    Dê um nome para nosso Projeto e clique em Finish
     
     
    Você verá que foi criado o projeto, e ele está disponível no seu Project Explorer
     
    OBS: As janelas do Eclipse são totalmente customizáveis, isto é, você pode esconde-las, move-las de lugar, dentre outros. Caso não esteja vendo a janela com o projeto, vá em Window -> Show View -> Project Explorer
     
     
    Feito isso, vamos criar nossa primeira classe. Clique com o botão direito sobre a pasta src e vá em New -> Class
     
    Dê um nome à classe, e clique em Finish.
     
    Você verá nossa classe, que é onde iniciaremos o nosso código.
     
     
    No Java SE, para executarmos algum projeto, precisamos de um método estático main, que é o ponto de partida para nosso código.
     
    Sendo assim, vamos criar nosso método, que nada mais é do que uma função. public static void main(String args[]){} Um método público, visível para todo o projeto. Estático, para ser chamado sem a necessidade de instanciar a classe. Não retorna nada(void). E que pode receber uma string como argumento pelo compilador.
     
    Nosso código ficou assim então
     
     
    Muito bem. Entretanto, ao rodarmos ele, veremos que nada (supostamente) acontece.
     
    Para executar o código, clique com o botão direito sobre a pasta do projeto, vá em Run As -> Java Application.
     
    Você deverá estar com a janela do Console aberto para visualizar (Windows -> Show View -> Console)
     
     
    Isso se deve ao fato de que, claro, não inserimos nada no código.
    Vamos exibir uma mensagem na tela ?
    A sintaxe no java para exibir no console é:
    System.out.println(); Lembrando que java é CaSe sEnSiTiVe.
     
     
    Para isto, vamos adicionar alguma mensagem.
     
     
    E agora, vamos rodar novamente.
     
     
     
    Bem pessoal, espero que eu tenha ajudado alguém com esse tutorial. Bem simples como eu disse.
    Se possível, gostaria que postassem o resultado de vocês também.
     
    Abraços, e até a próxima
     
     
  25. Upvote
    RigBy deu reputação a Felipe Moraes em Dungeon Finder   
    Esse script coloca o player em uma fila. Quando entrar outros 5 jogadores na fila, é criada uma party e todos são teleportados para a dungeon. Lembrando que a diferença de nível entre os jogadores é de no máximo 50 levels.
    Adicione uma nova tabela em seu banco de dados
    Talkactions
    GlobalEvents
    CreatureEvents
    Agora nas sources (c++) luascript.cpp Procure por:
    E insira isto depois:
    E procure por:
    E insira isto depois:
    Agora em creatureevent.h Procure por:
    E insira isto depois
    Procure por:
    E insira isto depois:
    Procure por:
    E insira isto depois:
    creatureevent.cpp Procure por:
    Insira isto logo em seguida:
    Procure por:
    E insira isto logo após:
    Busque por:

    Insira isto logo em seguida:
    Busque essa função:
    E insira isso, após a função acima:
    game.cpp Altere esse bloco
    Para esse:  
    Todos os créditos vão para Tekman, pela autoria do código.
  • Quem Está Navegando   0 membros estão online

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