Ir para conteúdo

Leoprotons

Cavaleiro
  • Total de itens

    186
  • Registro em

  • Última visita

  • Dias Ganhos

    1

Histórico de Reputação

  1. Upvote
    Leoprotons recebeu reputação de GameTwu em [Arquivado]Acha Que É Um Mapper? Descubra Agora A Verdade!.   
    O que é ser mapper? Porque ser um mapper? onde é que isto irá me levar? são perguntas que ja me fiz um dia,e talvez tenha sido tambem a pergunta feita a si mesmo caro leitor. Bem não há um fato concreto, nem uma formula exata que possa responder as perguntas citadas, porém há alguns bons argumentos que podem ser usados para a formação da sua ideia sobre a arte do mapping, estes que irei citar agora.





    Primeiramente é presciso entender que não é qualquer um que pode ser um mapper, isto é, para ser um mapper é presciso ser dedicado ao ponto de perder uma noite mapeando, criativo para improvisar sempre que presciso (e sempre será preciso) e persistente para ir de contra todos que irão lhe aconselhar a desistir , caracteristicas que somente cabem a si mesmos, oque não é nescessariamente fácil.

    Entendendo isto você já pode inicar sua carreira de mapper, mas se voce ainda tiver duvidas sobre o porque voce deveria desperdiçar o seu prescioso tempo no computador montando um quebra-cabeça sem fim, está e sua resposta. Não entendeu? o Facebook assim como o twiter que como orkut proveniente do foto blog vindo do fotolog acabam, e não alimentam sua mente com uma unica ideia verdadeiramente positiva e produtiva (não que eu não tenha ou use algum destes), já o mapper ele desenvolve sua mente com criatividade, raciocínio e memorização, oque algum dia podera lhe servir e não é uma moda passageira.



    Se leu este artigo até aqui significa que você tem grandes chances de ser um bom mapper, pois você tem um requisito que não citei antes, que é o interesse pelo assundo, um bom mapper não vive de mapas e sim da sua curiosidade, sendo que a melhor arma de um mapper é conseguir captar uma ideia e transformar la em um arquivo OTBM. (extensão de um mapa). Seja sempre pronto a aceitar uma ideia desde que ela seja original e coerente (coerência não é um requisito, você ser louco


    so não deixe que percebam).


    Para quem não tinha nenhuma ideia do mapper ou sobre a arte, agora pode abrir sua mente e ver que mapper não é uma brincadeira de criança, e sim um trabalho


    muito serio e que deve ser respeitado, para aqueles que desejam ser um mapper, apenas leia o artigo, entenda-o e elabore sua propria ideia, pois como disse William Shakespeare "Aceita o conselho dos outros, mas nunca desistas da tua própria opinião".


     
     

    Leonardo Mascarenhas


  2. Upvote
    Leoprotons deu reputação a Zt0ffe em [SWEDEN] Zelera [8.6 RealMap & custom!]   
    Starts 2014-01-04 18:00 CET (15.00 brazil time)

    Information about Zelera:



    Zelera is a customised real map server, offering a variety of ingame activities which we hope will provide something for everyone to enjoy.


    The features of our server include:
    - Stable server!
    - Cast system!
    - Events!
    - Lots of hunting areas!
    - Achievements.
    - Addon bonuses.
    - Automatic Raids.
    - Free blessings until level 80!
    - Real Map with extra cities. Gengia, Pyre, Oken, Vinea, Vinera, Ghenov, Ethno & Zenit.

    Connection information:
    Client: 8.60
    IP: zelera.eu
    Port: 7171
    Homepage: http://zelera.eu

    Free points and rewards at:
    At level 100 you will receive 5 points.
    At level 120 you will receive 5 points.
    At level 150 you will receive 5 points.
    At level 20 you will receive 30k.
    At level 50 you will receive 50k.
    At level 70 you will receive 50k.
    At level 100 you will receive 100k.
    You will also receive items depending on what vocation you are.

    - Exp rate:
    1 - 40, 100x
    41 - 60, 70x
    61 - 80, 50x
    81 - 100, 20x
    101 - 120, 15x
    121 - 140, 10x
    141 - 160, 7x
    161 - 180, 5x
    181 - 200, 4x
    201+, 2x

    - Rates:
    Skill rate 15x
    Magic rate 8x
    Loot rate: 3x

    - PvP:
    Red Skull
    15 kills / day
    60 kills / week
    120 kills / month

    Join us and see all our featuers at: http://zelera.eu
  3. Upvote
    Leoprotons recebeu reputação de LeoTK em como mudar isso pra um dia de duraçao   
    so multiplicar
    segundos x minutos x horas
     
    60 * 60 * 24 = 86400
     
    <item id="11394" article="a" name="Gunbai Temporaria"> <attribute key="weight" value="7500" /> <attribute key="weaponType" value="wand" /> <attribute key="range" value="6" /> <attribute key="duration" value="86400" /> <attribute key="decayTo" value="0" /> <attribute key="showduration" value="1" />
  4. Upvote
    Leoprotons recebeu reputação de murluka em Problema com as Houses   
    Se todas as houses estiverem com bug acesse o documento
    • Config.lua
    e verifique se o valor
    housePriceEachSquare =
    não está 0
    ------------------------ // ----------------- // ---------------------
     
    Se as outras houses estiverem normais, faça o seguinte procedimento.
    vá em:
    • Pasta do seu server -// data -// world
    clique com botão direito em cima de
    • NomeDoMapa House.xml
    e verifique se existe houses com o seguinte valor
    • rent="0"
     
    Tomara que ajude, boa tarde.
  5. Upvote
    Leoprotons recebeu reputação de vital900 em Problema com as Houses   
    Se todas as houses estiverem com bug acesse o documento
    • Config.lua
    e verifique se o valor
    housePriceEachSquare =
    não está 0
    ------------------------ // ----------------- // ---------------------
     
    Se as outras houses estiverem normais, faça o seguinte procedimento.
    vá em:
    • Pasta do seu server -// data -// world
    clique com botão direito em cima de
    • NomeDoMapa House.xml
    e verifique se existe houses com o seguinte valor
    • rent="0"
     
    Tomara que ajude, boa tarde.
  6. Upvote
    Leoprotons deu reputação a vital900 em CAM#09- Cemitério   
    Este concurso acontecerá de 2 em 2 semanas, tendo como intuito avaliar de uma forma diferente os jogadores.
    Por ser um concurso voltado aos mappers mais experientes não haverá neste postagem de tutorial ou de imagens de inspiração, caso algum membro o faça, este poderá ser punido.
    »Como inovação este concurso traz a seus competidores algumas novas regras:
    Seguir o tema proposto; Em cada edição haverá ao menos 3 itens obrigatórios a se ter em seu mapa, caso não haja os itens obrigatórios em seu mapa, pontos serão descontados! Ao termino do prazo de entrega, todos os mapas enviados ao juiz serão postados neste tópico de forma anônima (ou seja, os mapas não virão acompanhados do nome do criador). Estes serão votados em forma de enquete, e para que não haja erros será aplicado 'proporção'. Vale lembrar que houve uma mudança nos critérios avaliativos, para adequar a esta nova regra. Prêmios:
    1º lugar (5reps) + Medals
    2º lugar (3reps)
    3º lugar (2rep)

    Tema: Cemitério
    Jurado: vital900
    Itens Obrigatórios da edição:


    O mapa deve ser enviado por Mensagem Privada [MP] ao jurado fixo. Com o título da edição (CAM#09- Cemitério) e o seu nick.
    Exemplo: (CAM#09- Cemitério) - vital900
    Data de entrega: 11/01/2014 (23:59)
    Votos Públicos: DIA 12
    Resultado: 12/01/2014 (23:59)

    Obs: A regra 3, onde o vencedor poderia escolher o próximo tema fora retirada.

    Este concurso terá medalhas!



  7. Upvote
    Leoprotons recebeu reputação de vital900 em O Meu rme não abre 2 mapas   
    Costuma ser versão diferente. Fassa o seguinte:
    •Abra um dos mapas
    •Aperte ctrl + p.
    •Observe qual é o Mapa Version.
    •Feche o RME.
    •Abra o outro mapa.
    •Aperte ctrl + p novamente.
    •Troque o Mapa Version para o mesmo observado da etapa 3º.
    • Tente abrir o primeiro mapa novamente.
     
    Espero que funcione para você !!! boa noite.
  8. Upvote
    Leoprotons recebeu reputação de vital900 em Pedido Storage de Rank Level   
    Jurava que ninguem tinha respondido a pergunta Oo.. Valeus vo testar.
  9. Upvote
    Leoprotons recebeu reputação de KlebesonXDesigner em O Meu rme não abre 2 mapas   
    Costuma ser versão diferente. Fassa o seguinte:
    •Abra um dos mapas
    •Aperte ctrl + p.
    •Observe qual é o Mapa Version.
    •Feche o RME.
    •Abra o outro mapa.
    •Aperte ctrl + p novamente.
    •Troque o Mapa Version para o mesmo observado da etapa 3º.
    • Tente abrir o primeiro mapa novamente.
     
    Espero que funcione para você !!! boa noite.
  10. Upvote
    Leoprotons deu reputação a Omega em Pedido Storage de Rank Level   
    local storage_key1 = local storage_value1 = local storage_key2 = localstorage_value2 = local online_players = getPlayersOnline() table.sort(online_players, function(a, b) return getPlayerLevel(a) > getPlayerLevel(b) end) for i = 1, 3 do local player = online_players[i] if player then setPlayerStorageValue(player, storage_key1, storage_value1) end end for i = 4, 7 do local player = online_players[i] if player then setPlayerStorageValue(player, storage_key2, storage_value2) end end Aí é só mudar o storage_key1 para o número do storage que você quer pros 3 primeiros e storage_value1, o valor que esse storage vai receber. Depois a mesma coisa pro 2 (do 4º ao 7º). Qualquer dúvida em relação ao código, pode perguntar.
  11. Upvote
    Leoprotons deu reputação a vital900 em CAM#08 [Hunt - Desert]   
    Este concurso acontecerá de 2 em 2 semanas, tendo como intuito avaliar de uma forma diferente os jogadores.
    Por ser um concurso voltado aos mappers mais experientes não haverá neste postagem de tutorial ou de imagens de inspiração, caso algum membro o faça, este poderá ser punido.
    »Como inovação este concurso traz a seus competidores algumas novas regras:
    Seguir o tema proposto; Em cada edição haverá ao menos 3 itens obrigatórios a se ter em seu mapa, caso não haja os itens obrigatórios em seu mapa, pontos serão descontados! Ao termino do prazo de entrega, todos os mapas enviados ao juiz serão postados neste tópico de forma anônima (ou seja, os mapas não virão acompanhados do nome do criador). Estes serão votados em forma de enquete, e para que não haja erros será aplicado 'proporção'. Vale lembrar que houve uma mudança nos critérios avaliativos, para adequar a esta nova regra. Prêmios:
    1º lugar (5reps) + Medals
    2º lugar (3reps)
    3º lugar (2rep)

    Tema: [Hunt] Desert
    Jurado: vital900
    Itens Obrigatórios da edição:
    Rock (3325 ou/até 3340) Campfire (1421) Skull (2320) O mapa deve ser enviado por Mensagem Privada [MP] ao jurado fixo. Com o título da edição (CAM#08- [Hunt] Desert ) e o seu nick.
    Exemplo: (CAM#08- [Hunt] Desert ) - vital900
    Data de entrega: 25/12/2013 (23:59)
    Votos Públicos: 26/12/2013
    Resultado: 26/12/2013 (23:59)

    Obs: A regra 3, onde o vencedor poderia escolher o próximo tema fora retirada.

    Este concurso terá medalhas!


  12. Upvote
    Leoprotons recebeu reputação de je19921992 em [Encerrado] Database Com Players Inativos   
    Por nada, bom eu me esqueci de citar que eu coloquei o globalevent pra poder executar de 12 em 12 horas, você pode colocar o tempo que quiser basta transformar o tempo em segundos e colocar aonde esta o numero 46200.
     
    Obs: lembre-se que ele não sera execultado caso o servidor não fique on pelo tempo descrito em interval.
  13. Upvote
    Leoprotons recebeu reputação de juliok80 em [Encerrado] Erro Server Cai   
    A solução do seu problema e a mesma dos membros acima
    Abra a sua Database, e execute este comando

    ALTER TABLE `players` ADD `rep` INT( 11 ) NOT NULL DEFAULT '0';
     
    Pronto..
  14. Upvote
    Leoprotons recebeu reputação de CQC em Bueiro, Etc   
    Discupa ai irmão, geralmente gosto pra caramba dos seus mapas, mais desse eu não gostei muito não.Isso porque bueiros, geralmente são sujos e feios, e esse ta muito limpinho e bonito...Falto sujeira, musgo, arvores e estatuas dentro de um bueiro. Fico meio estranho. Gostei das formas, isso achei bem legal...
     
    Ha, me desbloqueia la do msn, para de graça... :angry_smile:
  15. Upvote
    Leoprotons deu reputação a darklight em [Semi-Intermediário] - Criando Uma Casa   
    Introdução


    Humpf! Estava a mexer em meu RME, então ao olhar uma casa que eu havia feito decidi fazer um tutorial com base nela.




    *Antes de iniciar o primeiro passo, irei deixar uma tabela com alguns dos IDs usados:






    - Primeiro Passo:


    . Faça a base da casa no formato que desejar. No meu caso fiz na forma retangular:



    - Segundo Passo:

    . Ainda não terminamos a base, ou seja, temos ainda de detalhar; fiz uma variação nas paredes, adicionei janelas, uma porta, etc. etc.



    - Terceiro Passo:

    . Ahh! A base foi terminada. Agora vamos para o primeiro andar, se quiser fazer mais um, caso não queira, apenas faça o telhado.



    - Quinto Passo:

    . Eu não fiz o cômodo superior do mesmo tamanho do de baixo, então eu irei fazer algo a mais que irei mostrar depois!



    - Sexto Passo:

    . Hmm! Hora de detalhar o andar superior: adicionei uma varanda, fiz a variação de wall, adicionei janelas e uma varanda! Não esqueça de detalha-la; pode adicionar as "plantinhas" que eu coloquei, colocar pedrinhas, enfim, fique à vontade para fazer o que quiser.



    - Sétimo Passo:

    . Yep! É quase o fim. Agora é hora de fazer o telhado; quem vem acompanhando meu tutorias saberá como fazê-lo:





    - Oitavo Passo:


    . Uhul! É o fim, mas é algo opcional, ou seja, se quiser adicione algo chamativo por volta da casa, um exemplo:







    Créditos:


    Left4Dead



    Bom galera, como o tutorial é para intermediário não postei os IDs das coisas, mas se quiserem que eu poste é só dizer!

  16. Upvote
    Leoprotons deu reputação a darklight em Lidandeon Map Project - Wait For It...   
    Uso o paint mesmo; o que sobra de preto clico em Preencher cor e coloco tudo branco.
  17. Upvote
    Leoprotons recebeu reputação de beto06 em [Arquivado]Acha Que É Um Mapper? Descubra Agora A Verdade!.   
    O que é ser mapper? Porque ser um mapper? onde é que isto irá me levar? são perguntas que ja me fiz um dia,e talvez tenha sido tambem a pergunta feita a si mesmo caro leitor. Bem não há um fato concreto, nem uma formula exata que possa responder as perguntas citadas, porém há alguns bons argumentos que podem ser usados para a formação da sua ideia sobre a arte do mapping, estes que irei citar agora.





    Primeiramente é presciso entender que não é qualquer um que pode ser um mapper, isto é, para ser um mapper é presciso ser dedicado ao ponto de perder uma noite mapeando, criativo para improvisar sempre que presciso (e sempre será preciso) e persistente para ir de contra todos que irão lhe aconselhar a desistir , caracteristicas que somente cabem a si mesmos, oque não é nescessariamente fácil.

    Entendendo isto você já pode inicar sua carreira de mapper, mas se voce ainda tiver duvidas sobre o porque voce deveria desperdiçar o seu prescioso tempo no computador montando um quebra-cabeça sem fim, está e sua resposta. Não entendeu? o Facebook assim como o twiter que como orkut proveniente do foto blog vindo do fotolog acabam, e não alimentam sua mente com uma unica ideia verdadeiramente positiva e produtiva (não que eu não tenha ou use algum destes), já o mapper ele desenvolve sua mente com criatividade, raciocínio e memorização, oque algum dia podera lhe servir e não é uma moda passageira.



    Se leu este artigo até aqui significa que você tem grandes chances de ser um bom mapper, pois você tem um requisito que não citei antes, que é o interesse pelo assundo, um bom mapper não vive de mapas e sim da sua curiosidade, sendo que a melhor arma de um mapper é conseguir captar uma ideia e transformar la em um arquivo OTBM. (extensão de um mapa). Seja sempre pronto a aceitar uma ideia desde que ela seja original e coerente (coerência não é um requisito, você ser louco


    so não deixe que percebam).


    Para quem não tinha nenhuma ideia do mapper ou sobre a arte, agora pode abrir sua mente e ver que mapper não é uma brincadeira de criança, e sim um trabalho


    muito serio e que deve ser respeitado, para aqueles que desejam ser um mapper, apenas leia o artigo, entenda-o e elabore sua propria ideia, pois como disse William Shakespeare "Aceita o conselho dos outros, mas nunca desistas da tua própria opinião".


     
     

    Leonardo Mascarenhas


  18. Upvote
    Leoprotons recebeu reputação de LordZezim em [Arquivado]Acha Que É Um Mapper? Descubra Agora A Verdade!.   
    O que é ser mapper? Porque ser um mapper? onde é que isto irá me levar? são perguntas que ja me fiz um dia,e talvez tenha sido tambem a pergunta feita a si mesmo caro leitor. Bem não há um fato concreto, nem uma formula exata que possa responder as perguntas citadas, porém há alguns bons argumentos que podem ser usados para a formação da sua ideia sobre a arte do mapping, estes que irei citar agora.





    Primeiramente é presciso entender que não é qualquer um que pode ser um mapper, isto é, para ser um mapper é presciso ser dedicado ao ponto de perder uma noite mapeando, criativo para improvisar sempre que presciso (e sempre será preciso) e persistente para ir de contra todos que irão lhe aconselhar a desistir , caracteristicas que somente cabem a si mesmos, oque não é nescessariamente fácil.

    Entendendo isto você já pode inicar sua carreira de mapper, mas se voce ainda tiver duvidas sobre o porque voce deveria desperdiçar o seu prescioso tempo no computador montando um quebra-cabeça sem fim, está e sua resposta. Não entendeu? o Facebook assim como o twiter que como orkut proveniente do foto blog vindo do fotolog acabam, e não alimentam sua mente com uma unica ideia verdadeiramente positiva e produtiva (não que eu não tenha ou use algum destes), já o mapper ele desenvolve sua mente com criatividade, raciocínio e memorização, oque algum dia podera lhe servir e não é uma moda passageira.



    Se leu este artigo até aqui significa que você tem grandes chances de ser um bom mapper, pois você tem um requisito que não citei antes, que é o interesse pelo assundo, um bom mapper não vive de mapas e sim da sua curiosidade, sendo que a melhor arma de um mapper é conseguir captar uma ideia e transformar la em um arquivo OTBM. (extensão de um mapa). Seja sempre pronto a aceitar uma ideia desde que ela seja original e coerente (coerência não é um requisito, você ser louco


    so não deixe que percebam).


    Para quem não tinha nenhuma ideia do mapper ou sobre a arte, agora pode abrir sua mente e ver que mapper não é uma brincadeira de criança, e sim um trabalho


    muito serio e que deve ser respeitado, para aqueles que desejam ser um mapper, apenas leia o artigo, entenda-o e elabore sua propria ideia, pois como disse William Shakespeare "Aceita o conselho dos outros, mas nunca desistas da tua própria opinião".


     
     

    Leonardo Mascarenhas


  19. Upvote
    Leoprotons recebeu reputação de Vilden em [Arquivado]Acha Que É Um Mapper? Descubra Agora A Verdade!.   
    O que é ser mapper? Porque ser um mapper? onde é que isto irá me levar? são perguntas que ja me fiz um dia,e talvez tenha sido tambem a pergunta feita a si mesmo caro leitor. Bem não há um fato concreto, nem uma formula exata que possa responder as perguntas citadas, porém há alguns bons argumentos que podem ser usados para a formação da sua ideia sobre a arte do mapping, estes que irei citar agora.





    Primeiramente é presciso entender que não é qualquer um que pode ser um mapper, isto é, para ser um mapper é presciso ser dedicado ao ponto de perder uma noite mapeando, criativo para improvisar sempre que presciso (e sempre será preciso) e persistente para ir de contra todos que irão lhe aconselhar a desistir , caracteristicas que somente cabem a si mesmos, oque não é nescessariamente fácil.

    Entendendo isto você já pode inicar sua carreira de mapper, mas se voce ainda tiver duvidas sobre o porque voce deveria desperdiçar o seu prescioso tempo no computador montando um quebra-cabeça sem fim, está e sua resposta. Não entendeu? o Facebook assim como o twiter que como orkut proveniente do foto blog vindo do fotolog acabam, e não alimentam sua mente com uma unica ideia verdadeiramente positiva e produtiva (não que eu não tenha ou use algum destes), já o mapper ele desenvolve sua mente com criatividade, raciocínio e memorização, oque algum dia podera lhe servir e não é uma moda passageira.



    Se leu este artigo até aqui significa que você tem grandes chances de ser um bom mapper, pois você tem um requisito que não citei antes, que é o interesse pelo assundo, um bom mapper não vive de mapas e sim da sua curiosidade, sendo que a melhor arma de um mapper é conseguir captar uma ideia e transformar la em um arquivo OTBM. (extensão de um mapa). Seja sempre pronto a aceitar uma ideia desde que ela seja original e coerente (coerência não é um requisito, você ser louco


    so não deixe que percebam).


    Para quem não tinha nenhuma ideia do mapper ou sobre a arte, agora pode abrir sua mente e ver que mapper não é uma brincadeira de criança, e sim um trabalho


    muito serio e que deve ser respeitado, para aqueles que desejam ser um mapper, apenas leia o artigo, entenda-o e elabore sua propria ideia, pois como disse William Shakespeare "Aceita o conselho dos outros, mas nunca desistas da tua própria opinião".


     
     

    Leonardo Mascarenhas


  20. Upvote
    Leoprotons recebeu reputação de alldakie em [Arquivado]Acha Que É Um Mapper? Descubra Agora A Verdade!.   
    O que é ser mapper? Porque ser um mapper? onde é que isto irá me levar? são perguntas que ja me fiz um dia,e talvez tenha sido tambem a pergunta feita a si mesmo caro leitor. Bem não há um fato concreto, nem uma formula exata que possa responder as perguntas citadas, porém há alguns bons argumentos que podem ser usados para a formação da sua ideia sobre a arte do mapping, estes que irei citar agora.





    Primeiramente é presciso entender que não é qualquer um que pode ser um mapper, isto é, para ser um mapper é presciso ser dedicado ao ponto de perder uma noite mapeando, criativo para improvisar sempre que presciso (e sempre será preciso) e persistente para ir de contra todos que irão lhe aconselhar a desistir , caracteristicas que somente cabem a si mesmos, oque não é nescessariamente fácil.

    Entendendo isto você já pode inicar sua carreira de mapper, mas se voce ainda tiver duvidas sobre o porque voce deveria desperdiçar o seu prescioso tempo no computador montando um quebra-cabeça sem fim, está e sua resposta. Não entendeu? o Facebook assim como o twiter que como orkut proveniente do foto blog vindo do fotolog acabam, e não alimentam sua mente com uma unica ideia verdadeiramente positiva e produtiva (não que eu não tenha ou use algum destes), já o mapper ele desenvolve sua mente com criatividade, raciocínio e memorização, oque algum dia podera lhe servir e não é uma moda passageira.



    Se leu este artigo até aqui significa que você tem grandes chances de ser um bom mapper, pois você tem um requisito que não citei antes, que é o interesse pelo assundo, um bom mapper não vive de mapas e sim da sua curiosidade, sendo que a melhor arma de um mapper é conseguir captar uma ideia e transformar la em um arquivo OTBM. (extensão de um mapa). Seja sempre pronto a aceitar uma ideia desde que ela seja original e coerente (coerência não é um requisito, você ser louco


    so não deixe que percebam).


    Para quem não tinha nenhuma ideia do mapper ou sobre a arte, agora pode abrir sua mente e ver que mapper não é uma brincadeira de criança, e sim um trabalho


    muito serio e que deve ser respeitado, para aqueles que desejam ser um mapper, apenas leia o artigo, entenda-o e elabore sua propria ideia, pois como disse William Shakespeare "Aceita o conselho dos outros, mas nunca desistas da tua própria opinião".


     
     

    Leonardo Mascarenhas


  21. Upvote
    Leoprotons deu reputação a darklight em [Básico] - Árvore Grande   
    Introdução


    Através de um pedido de um membro, decidi fazer este tutorial de como fazer uma árvore grande; de forma fácil e simples!



    1. Faça o tronco base:

    - IDs caso não saiba:



    - Se quiser coloque vines no tronco, IDs:



    - Ficando assim, em ambos os casos:





    2. Ahh, hora de fazer a parte de cima da árvore; coloque o tronco e alguns outros detalhes:

    - IDs da folha e troncos:



    - Ficando assim:






    3. Yep! Quase no fim: faça agora a parte de cima, faça a folhagem mais densa e maior:



    - Para quem usou vine, não se esqueça:






    - Ficou assim, em ambos os casos:







    4. Fim! Mas há outro modo de se fazer este tipo de árvore:


    - Use para a folhagem os seguintes IDs:




    - Dá até para usar a "antiga folhagem" para se fazer um novo tipo de arbusto:








    Créditos:


    100% Left4Dead




    Façam bom proveito do tutorial!


  22. Upvote
    Leoprotons deu reputação a Eder009 em Como Deixar Seu Servidor 100%   
    Como deixar seu servidor 100%


    E ai galera estou ai para postar para voces um modo de deixar seu servidor 100%
     

    1 - programas utilizados 2 - criando um ip fixo 3 - liberando portas 4 - instalando wampserver 2 5 - tirando erros de php do wampserver 6 - criando seu gesior 7 - paginas uteis para gesior 8 - tirando bugs do gesior 9 - instalandi gesior 10 - adicionando sistemas novos em seu servidor  
     
     
     
    _________________________________1_____________________________
    Wampserver 2 clique aqui
    Um mapa de sua escolha
    Gesior:clique aki feito pelo doidin
    No-ip :clique aqui
    Remeres:clique aqui
    Clientes do remeres:clique aqui
    _______________________________________________________________
    _________________________________2_____________________________
    Acesse o site do no ip
    clique aqui
     
    e crie sua conta, apos isso va em seu email e confirme, volte no site e baixe o no-ip instale normalmente, apos isso logue na sua conta no site e va em ADD A HOST, apos isso tera os seguintes itens
     

     
     



     
    O serviço no-ip faz com que seu ip vire um endereço Web paracido com este: kbaustutoriais.no-ip.com ou kbaustutoriais.servegame.com dentre outras opções.
     
    Assim, mesmo que seu ip mude de uma hora para outra, o seu endereço seria o mesmo e assim seus amigos sempre poderão entrar sem qualquer problema.
     
    Chega de papo e vamos ao Tutorial:
     
    1º - Vá até o site do no-ip e faça seu cadastro: http://www.no-ip.com/newUser.php
     
    2º - Quando fizer seu cadastro, a equipe do no-ip irá lhe enviar um e-mail para ser confirmado,
    (Oque é e como confirmar o endereço de e-mail e qual a importância !)
     
    3º- Após ter confirmado seu e-mail, faça login no site www.no-ip.com (basta colocar seu e-mail e senha)
     
     
    4º - Quando fizer login, clique na opção 1 (Your no-ip) e depois na opção 2 (Add a Host) ( como mostra a imagem abaixo )



     
    5º - Agora basta você escolher um nome para seu servidor e um sub-dominio.
    No nosso host de teste, eu criei assim
     
    Nome: kbaus
    Sub-dominio: serveblog.net
     
    Oque vai ficar assim: kbaus.serveblog.com
     
    depois basta clicar em "Criate host"
     
    Veja a imagem abaixo.



    6º - Quando clicar em "Criate Host", você já estará com seu servidor pronto, veja abaixo.



     
    Agora é só baixar o programa de atualização do no-ip ( NO-IP DUC ). Clique aqui (para windows)
     
    pra que serve este programa ?
     
    muito simples.
    este programa irá dizer ao no-ip quando seu ip irá mudar e assim ele irá atualizar seu servidor para manter o acesso dos seus amigos e clientes.
     
    O programa é bem levinho ( 1 mega ), e pode deixar ele rodando junto com o windows.
     
    quando você intalar, ele vai pedir seu e-mail e senha.
     
     



     
    quando logar, basta você "Marcar a caixinha" que seu servidor se encontra, clicar em save e pronto.
     



     
    7º- Pronto veja como irá ficar o programa, agora basta fechar ( SEU ENDEREÇO ESTÁ NO AR )
     



    _______________________________________________________________________3________________________________________________________________________

    para liberar as portas do windosw 7 basta ir em
     
    iniciar/painel de controle/sistema de segurança/firewall do windows/configuraçoes avançadas/liberar as portas de entrada e saida do seu servidor portas 7171 e 7272 e aplicar, e proto suas portas estao liberadas
     
    Video
     
     
     

    http://www.youtube.com/watch?v=mgmeeciBBRo
     
    _______________________________________________________________
    _________________________________4_____________________________
    baixe o wamp server acima apos isso voce vera um icone do wampserver no canto abaixo de sua tela bota estar all service, apos isso va em php.ini e tire os erros de php do site que se necontra nesta parte, de ctrol+f e encontre esta parte
     
     
    Common Values:
    ; E_ALL & ~E_NOTICE (Show all errors, except for notices and coding standards warnings.)
    ; E_ALL & ~E_NOTICE | E_STRICT (Show all errors, except for notices)
    ; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)
    ; E_ALL | E_STRICT (Show all errors, warnings and notices including coding standards.)
    ; Default Value: E_ALL & ~E_NOTICE
    ; Development Value: E_ALL | E_STRICT
    ; Production Value: E_ALL & ~E_DEPRECATED
    ; http://php.net/error-reporting
    error_reporting = E_ALL <<<<
     
     
    ; Common Values:
    ; E_ALL & ~E_NOTICE (Show all errors, except for notices and coding standards warnings.)
    ; E_ALL & ~E_NOTICE | E_STRICT (Show all errors, except for notices)
    ; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)
    ; E_ALL | E_STRICT (Show all errors, warnings and notices including coding standards.)
    ; Default Value: E_ALL & ~E_NOTICE
    ; Development Value: E_ALL | E_STRICT
    ; Production Value: E_ALL & ~E_DEPRECATED
    ; http://php.net/error-reporting
    error_reporting = E_ALL & ~E_NOTICE
     
    e de save e bote em restart all service e pronto
     
     
    apos isso vamos para o apache/httpd.conf
     
     
    abaixo de
     
    #Listen 12.34.56.78:80
    Listen 80
     
    bote assim
     
    #Listen 12.34.56.78:80
    Listen 8090 bote aki tbm
    Listen seuipfixo.servegame.com:8090 <<<<
    e pronto seu wamserver esta funcionando com php e com seu ip para funcionar seu gesior
     

    _________________________________6_____________________________
     
    apos baixar o gesior va para seu servidor e va no config.lua
     
     
    tire todos os espaçoes e toda as linhas sem ecessao que tem --
     
    apos isso de save
     
     
    baixe o gesior na area de download acima e extraia e bote tudo na pasta www do wampserver e va em phpmyadmin e crie uma detabase com o nome de tibia e extraia seu mysql que se enconta na pasta schemas apos criar sua db extraia sua db pra ela
    apos isso volte para o config.lua e va em
     
     
    worldId = 0
    ip = "127.0.0.1" <<< bote o ip fixo que voce criou no no ip
    bindOnlyConfiguredIpAddress = false
    loginPort = 7171
    gamePort = 7172
    adminPort = 7171
    statusPort = 7171
    loginTries = 10
    retryTimeout = 5 * 1000
    loginTimeout = 60 * 1000
    maxPlayers = 212
    motd = "Welcome to the Styller 8.60!Veja em !notice todas as novidades."
    displayOnOrOffAtCharlist = false
    onePlayerOnlinePerAccount = true
    allowClones = false
    serverName = "Styller"
    loginMessage = "Welcome to the Styller World!Veja em !notice todas as novidades."
    statusTimeout = 5 * 60 * 1000
    replaceKickOnLogin = true
    forceSlowConnectionsToDisconnect = false
    loginOnlyWithLoginServer = false
    premiumPlayerSkipWaitList = false
     
    sqlType = "sqlite" < sqlHost = "localhost"
    sqlPort = 3306
    sqlUser = "root"
    sqlPass = "" << a senha se tiver senha no sem phpmyadmin
    sqlDatabase = "" nomeda sua detabase
    sqlFile = "Styller.s3db" << bote ex:forgetserver.s3db
    sqlKeepAlive = 0
    mysqlReadTimeout = 10
    mysqlWriteTimeout = 10
    encryptionType = "plain" <<< se seu servidor for com tfs4 bote sha1
     
    e pronto salve e feche
    va no seu wampserver e va em localhost
     
    siga o video
     

     
    e tirando bug do gesior
     

     
    apos instalar seu servidor
     
    basta ligar seu servidor e com a conta admin do site crie seu char
    apos isso va para o wampserver e em phpmyadmin e va na sua detabase e mude seu nome no caso [GOD] seu nome
    apos isso bote seu god que seria accoun ip numero 1 players 2 tutor 3 senior tutor 4 game master 5 cominic manager 6 god
    bote 6 que no caso seria de god apos isso volte para seu servidor e logue e voce estara como god
     
    ______________________________________________________________
     
    pulamos diretamente pro 10 pois as outras ja forao diretamente sitadas acima
     
     
    existem varios sistemas sugiro uzar esses
     
    war system clique aqui
    woe clique aqui
    zombi event clique aqui
     
    todos eles uzao o tfs4 menos do zombi event
     
     
     
     
    tutorial feito por min God Elder
     
    downloads do gesior feito por
    Doidin
     
    zumbi event postado originalmente por
     
    Isbigo
     
    war system com escudos feitos por
     
    Leoprotons
  23. Upvote
    Leoprotons recebeu reputação de Vilden em Guild War System Com Escudos   
    Bom vamos começar pelo site :
     
     
     
    Vá em Xampp/Htdocs e crie e um arquivo chamado wars.php,dentro add isto:

    <?php $main_content = "<h1 align=\"center\">Guild Wars</h1> <script type=\"text/javascript\"><!-- function show_hide(flip) { var tmp = document.getElementById(flip); if(tmp) tmp.style.display = tmp.style.display == 'none' ? '' : 'none'; } --></script> <a onclick=\"show_hide('information'); return false;\" style=\"cursor: pointer;\"><h1><center>» Click to se the commands «<center></h1></a> <table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"4\" id=\"information\" style=\"display: none;\";> <tr align=\"center\"><b>You must send this commands in GUILD CHAT.</tr> <tr style=\"background: #512e0b;\"><td align=\"center\" class=\"white\"><b>Command</b></td><td colspan=\"2\" align=\"center\" class=\"white\"><b>Description</b></td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/war invite, guild name, fraglimit</b></td><td>Sends an invitation to start the war. Example: <font color=red><BR>/war invite, Chickens, 150<BR></font><B>(Invite a guild to war with 150 frags count.)</B></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/war invite, guild name, fraglimit, money</b></td><td>Send the invitation to start the war. Example: <font color=red><BR>/war invite, Chickens, 150, 10000</font><br><B> (Invite a guild to war with 150 frags count and payment of 10000 gold coins <- you need donate to guild to use it.)<B></td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/war accept, guild name</b></td><td>Accepts the invitation to start a war. Example: <font color=red><BR>/war accept, Chickens</font><BR><B>(Accept the war against guild \"Chickens\".)</b></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/war reject, guild name</b></td><td>Rejects the invitation to start a war. Example: <font color=red><BR>/war reject, Chickens</font><BR><B>(Reject a invitation to war from Chickens.)</B></td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/war cancel, guild name</b></td><td>Cancels the invitation. Example: <font color=red><BR>/war cancel, Chickens</font><br><b>(Cancel my guild invitation to war with Chickens.)</b></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/balance</b></td><td>See the guild balance - balance of money.</td></tr> <tr style=\"background: #F1E0C6;\"><td><b>/balance donate value</b></td><td>Deposits money on the guild's bank account. All players can donate. Example: <font color=red><BR>/balance donate 100000 </font><BR><B>(You will donate 100k to your guild balance.)</B></td></tr> <tr style=\"background: #D4C0A1;\"><td><b>/balance pick value</b></td><td>Withdraws money from the guild's bank account. Can be used only by the guild leader. Example: <font color=red><BR>/balance pick 100000 </font><BR><B>(You will withdraw 100k from your guild balance.)</B></td></tr> </table> <table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"4\"> <tr> <td style=\"background: #512e0b\" class=\"white\" width=\"150\"><b>Aggressor</b></td> <td style=\"background: #512e0b\" class=\"white\"><b>Information</b></td> <td style=\"background: #512e0b\" class=\"white\" width=\"150\"><b>Enemy</b></td> </tr><tr style=\"background: #F1E0C6;\">"; $count = 0; foreach($SQL->query('SELECT * FROM `guild_wars` WHERE `status` IN (1,4) OR ((`end` >= (UNIX_TIMESTAMP() - 604800) OR `end` = 0) AND `status` IN (0,5));') as $war) { $a = $ots->createObject('Guild'); $a->load($war['guild_id']); if(!$a->isLoaded()) continue; $e = $ots->createObject('Guild'); $e->load($war['enemy_id']); if(!$e->isLoaded()) continue; $alogo = $a->getCustomField('logo_gfx_name'); if(empty($alogo) || !file_exists('guilds/' . $alogo)) $alogo = 'default_logo.gif'; $elogo = $e->getCustomField('logo_gfx_name'); if(empty($elogo) || !file_exists('guilds/' . $elogo)) $elogo = 'default_logo.gif'; $count++; $main_content .= "<tr style=\"background: " . (is_int($count / 2) ? $config['site']['darkborder'] : $config['site']['lightborder']) . ";\"> <td align=\"center\"><a href=\"?subtopic=guilds&action=show&guild=".$a->getId()."\"><img src=\"guilds/".$alogo."\" width=\"64\" height=\"64\" border=\"0\"/><br />".$a->getName()."</a></td> <td align=\"center\">"; switch($war['status']) { case 0: { $main_content .= "<b>Pending acceptation</b><br />Invited on " . date("M d Y, H:i:s", $war['begin']) . " for " . ($war['end'] > 0 ? (($war['end'] - $war['begin']) / 86400) : "unspecified") . " days. The frag limit is set to " . $war['frags'] . " frags, " . ($war['payment'] > 0 ? "with payment of " . $war['payment'] . " bronze coins." : "without any payment.")."<br />Will expire in three days."; break; } case 3: { $main_content .= "<s>Canceled invitation</s><br />Sent invite on " . date("M d Y, H:i:s", $war['begin']) . ", canceled on " . date("M d Y, H:i:s", $war['end']) . "."; break; } case 2: { $main_content .= "Rejected invitation<br />Invited on " . date("M d Y, H:i:s", $war['begin']) . ", rejected on " . date("M d Y, H:i:s", $war['end']) . "."; break; } case 1: { $main_content .= "<font size=\"6\"><span style=\"color: red;\">" . $war['guild_kills'] . "</span> : <span style=\"color: lime;\">" . $war['enemy_kills'] . "</span></font><br /><br /><span style=\"color: darkred; font-weight: bold;\">On a brutal war</span><br />Began on " . date("M d Y, H:i:s", $war['begin']) . ($war['end'] > 0 ? ", will end up at " . date("M d Y, H:i:s", $war['end']) : "") . ".<br />The frag limit is set to " . $war['frags'] . " frags, " . ($war['payment'] > 0 ? "with payment of " . $war['payment'] . " bronze coins." : "without any payment."); break; } case 4: { $main_content .= "<font size=\"6\"><span style=\"color: red;\">" . $war['guild_kills'] . "</span> : <span style=\"color: lime;\">" . $war['enemy_kills'] . "</span></font><br /><br /><span style=\"color: darkred;\">Pending end</span><br />Began on " . date("M d Y, H:i:s", $war['begin']) . ", signed armstice on " . date("M d Y, H:i:s", $war['end']) . ".<br />Will expire after reaching " . $war['frags'] . " frags. ".($war['payment'] > 0 ? "The payment is set to " . $war['payment'] . " bronze coins." : "There's no payment set."); break; } case 5: { $main_content .= "<i>Ended</i><br />Began on " . date("M d Y, H:i:s", $war['begin']) . ", ended on " . date("M d Y, H:i:s", $war['end']) . ". Frag statistics: <span style=\"color: red;\">" . $war['guild_kills'] . "</span> to <span style=\"color: lime;\">" . $war['enemy_kills'] . "</span>."; break; } default: { $main_content .= "Unknown, please contact with gamemaster."; break; } } $main_content .= "<br /><br /><a onclick=\"show_hide('war-details:" . $war['id'] . "'); return false;\" style=\"cursor: pointer;\">» Details «</a></td> <td align=\"center\"><a href=\"?subtopic=guilds&action=show&guild=".$e->getId()."\"><img src=\"guilds/".$elogo."\" width=\"64\" height=\"64\" border=\"0\"/><br />".$e->getName()."</a></td> </tr> <tr id=\"war-details:" . $war['id'] . "\" style=\"display: none; background: " . (is_int($count / 2) ? $config['site']['darkborder'] : $config['site']['lightborder']) . ";\"> <td colspan=\"3\">"; if(in_array($war['status'], array(1,4,5))) { $deaths = $SQL->query('SELECT `pd`.`id`, `pd`.`date`, `gk`.`guild_id` AS `enemy`, `p`.`name`, `pd`.`level` FROM `guild_kills` gk LEFT JOIN `player_deaths` pd ON `gk`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `gk`.`war_id` = ' . $war['id'] . ' AND `p`.`deleted` = 0 ORDER BY `pd`.`date` DESC')->fetchAll(); if(!empty($deaths)) { foreach($deaths as $death) { $killers = $SQL->query('SELECT `p`.`name` AS `player_name`, `p`.`deleted` AS `player_exists`, `k`.`war` AS `is_war` FROM `killers` k LEFT JOIN `player_killers` pk ON `k`.`id` = `pk`.`kill_id` LEFT JOIN `players` p ON `p`.`id` = `pk`.`player_id` WHERE `k`.`death_id` = ' . $death['id'] . ' ORDER BY `k`.`final_hit` DESC, `k`.`id` ASC')->fetchAll(); $count = count($killers); $i = 0; $others = false; $main_content .= date("j M Y, H:i", $death['date']) . " <span style=\"font-weight: bold; color: " . ($death['enemy'] == $war['guild_id'] ? "red" : "lime") . ";\">+</span> <a href=\"index.php?subtopic=characters&name=" . urlencode($death['name']) . "\"><b>".$death['name']."</b></a> "; foreach($killers as $killer) { $i++; if($killer['is_war'] != 0) { if($i == 1) $main_content .= "killed at level <b>".$death['level']."</b> by "; else if($i == $count && $others == false) $main_content .= " and by "; else $main_content .= ", "; if($killer['player_exists'] == 0) $main_content .= "<a href=\"index.php?subtopic=characters&name=".urlencode($killer['player_name'])."\">"; $main_content .= $killer['player_name']; if($killer['player_exists'] == 0) $main_content .= "</a>"; } else $others = true; if($i == $count) { if($others == true) $main_content .= " and few others"; $main_content .= ".<br />"; } } } } else $main_content .= "<center>There were no frags on this war so far.</center>"; } else $main_content .= "<center>This war did not began yet.</center>"; $main_content .= "</td> </tr>"; } if($count == 0) $main_content .= "<tr style=\"background: ".$config['site']['darkborder'].";\"> <td colspan=\"3\">Currently there are no active wars.</td> </tr>"; $main_content .= "</table>"; $main_content .= '<div align="right"><small><b>Customized by: <a href="http://www.xtibia.com/forum/user/240289-walef-xavier">Walef Xavier</a></b></small></div><br />'; ?>
     
     
     
    Agora vá em Xampp/Htdocs/index.php e add o seguinte:

    case "wars"; $subtopic = "wars"; $topic = "Guild Wars"; include("wars.php"); break;
     
     
    Agora para finalizar a parte do site vá em Xampp/Htdocs/Layout/Tibiacom/layout.php e add o seguinte:

    <a href='?subtopic=wars'> <div id='submenu_wars' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_polls' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'><font color=red>Guild Wars</font></div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a>
     
     
    Agora vamos para seu Ot:
     
     
     
    Va em GlobalEvents/scripts/start.lua e add o seguinte:

    executeQuery("DELETE FROM `guild_wars` WHERE `status` = 0 AND `begin` < " .. (os.time() - 2 * 86400) .. ";") db.executeQuery("UPDATE `guild_wars` SET `status` = 5, `end` = " .. os.time() .. " WHERE `status` = 1 AND `end` > 0 AND `end` < " .. os.time() .. ";")
     
     
    Agora vá em Lib e crie um arquivo .lua chamado 101-war,dentro add o seguinte:

    WAR_GUILD = 0 WAR_ENEMY = 1
     
     
    Agora para finalizar vamos colocar os comandos em Talkactions !
     
     
     
    Vá em Talkactions/scripts e crie dois arquivos chamados war.lua e balance.lua,dentro add o seguinte:
     
    War.lua

    function onSay(cid, words, param, channel) local guild = getPlayerGuildId(cid) if(not guild or getPlayerGuildLevel(cid) < GUILDLEVEL_LEADER) then doPlayerSendChannelMessage(cid, "", "You cannot execute this talkaction.", TALKTYPE_CHANNEL_W, 0) return true end local t = string.explode(param, ",") if(not t[2]) then doPlayerSendChannelMessage(cid, "", "Not enough param(s).", TALKTYPE_CHANNEL_W, 0) return true end local enemy = getGuildId(t[2]) if(not enemy) then doPlayerSendChannelMessage(cid, "", "Guild \"" .. t[2] .. "\" does not exists.", TALKTYPE_CHANNEL_W, 0) return true end if(enemy == guild) then doPlayerSendChannelMessage(cid, "", "You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_W, 0) return true end local enemyName, tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy) if(tmp:getID() ~= -1) then enemyName = tmp:getDataString("name") tmp:free() end if(isInArray({"accept", "reject", "cancel"}, t[1])) then local query = "`guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild if(t[1] == "cancel") then query = "`guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy end tmp = db.getResult("SELECT `id`, `begin`, `end`, `payment` FROM `guild_wars` WHERE " .. query .. " AND `status` = 0") if(tmp:getID() == -1) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending invitation for a war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end if(t[1] == "accept") then local _tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = _tmp:getID() < 0 or _tmp:getDataInt("balance") < tmp:getDataInt("payment") _tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low to accept this invitation.", TALKTYPE_CHANNEL_W, 0) return true end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. tmp:getDataInt("payment") .. " WHERE `id` = " .. guild) end query = "UPDATE `guild_wars` SET " local msg = "accepted " .. enemyName .. " invitation to war." if(t[1] == "reject") then query = query .. "`end` = " .. os.time() .. ", `status` = 2" msg = "rejected " .. enemyName .. " invitation to war." elseif(t[1] == "cancel") then query = query .. "`end` = " .. os.time() .. ", `status` = 3" msg = "canceled invitation to a war with " .. enemyName .. "." else query = query .. "`begin` = " .. os.time() .. ", `end` = " .. (tmp:getDataInt("end") > 0 and (os.time() + ((tmp:getDataInt("begin") - tmp:getDataInt("end")) / 86400)) or 0) .. ", `status` = 1" end query = query .. " WHERE `id` = " .. tmp:getDataInt("id") if(t[1] == "accept") then doGuildAddEnemy(guild, enemy, tmp:getDataInt("id"), WAR_GUILD) doGuildAddEnemy(enemy, guild, tmp:getDataInt("id"), WAR_ENEMY) end tmp:free() db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. msg, MESSAGE_EVENT_ADVANCE) return true end if(t[1] == "invite") then local str = "" tmp = db.getResult("SELECT `guild_id`, `status` FROM `guild_wars` WHERE `guild_id` IN (" .. guild .. "," .. enemy .. ") AND `enemy_id` IN (" .. enemy .. "," .. guild .. ") AND `status` IN (0, 1)") if(tmp:getID() ~= -1) then if(tmp:getDataInt("status") == 0) then if(tmp:getDataInt("guild_id") == guild) then str = "You have already invited " .. enemyName .. " to war." else str = enemyName .. " have already invited you to war." end else str = "You are already on a war with " .. enemyName .. "." end tmp:free() end if(str ~= "") then doPlayerSendChannelMessage(cid, "", str, TALKTYPE_CHANNEL_W, 0) return true end local frags = tonumber(t[3]) if(frags ~= nil) then frags = math.max(10, math.min(1000, frags)) else frags = 100 end local payment = tonumber(t[4]) if(payment ~= nil) then payment = math.max(100000, math.min(1000000000, payment)) tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = tmp:getID() < 0 or tmp:getDataInt("balance") < payment tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low for such payment.", TALKTYPE_CHANNEL_W, 0) return true end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. payment .. " WHERE `id` = " .. guild) else payment = 0 end local begining, ending = os.time(), tonumber(t[5]) if(ending ~= nil and ending ~= 0) then ending = begining + (ending * 86400) else ending = 0 end db.query("INSERT INTO `guild_wars` (`guild_id`, `enemy_id`, `begin`, `end`, `frags`, `payment`) VALUES (" .. guild .. ", " .. enemy .. ", " .. begining .. ", " .. ending .. ", " .. frags .. ", " .. payment .. ");") doBroadcastMessage(getPlayerGuildName(cid) .. " has invited " .. enemyName .. " to war till " .. frags .. " frags.", MESSAGE_EVENT_ADVANCE) return true end if(not isInArray({"end", "finish"}, t[1])) then return false end local status = (t[1] == "end" and 1 or 4) tmp = db.getResult("SELECT `id` FROM `guild_wars` WHERE `guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy .. " AND `status` = " .. status) if(tmp:getID() ~= -1) then local query = "UPDATE `guild_wars` SET `end` = " .. os.time() .. ", `status` = 5 WHERE `id` = " .. tmp:getDataInt("id") tmp:free() doGuildRemoveEnemy(guild, enemy) doGuildRemoveEnemy(enemy, guild) db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. (status == 4 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end if(status == 4) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending war truce from " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end tmp = db.getResult("SELECT `id`, `end` FROM `guild_wars` WHERE `guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild .. " AND `status` = 1") if(tmp:getID() ~= -1) then if(tmp:getDataInt("end") > 0) then tmp:free() doPlayerSendChannelMessage(cid, "", "You cannot request ending for war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end local query = "UPDATE `guild_wars` SET `status` = 4, `end` = " .. os.time() .. " WHERE `id` = " .. tmp:getDataInt("id") tmp:free() db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has signed an armstice declaration on a war with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end doPlayerSendChannelMessage(cid, "", "Currently there's no active war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true
     
     
    balance.lua

    local function isValidMoney(value) if(value == nil) then return false end return (value > 0 and value <= 99999999999999) end function onSay(cid, words, param, channel) local guild = getPlayerGuildId(cid) if(guild == 0) then return false end local t = string.explode(param, ' ', 1) if(getPlayerGuildLevel(cid) == GUILDLEVEL_LEADER and isInArray({ 'pick' }, t[1])) then if(t[1] == 'pick') then local money = { tonumber(t[2]) } if(not isValidMoney(money[1])) then doPlayerSendChannelMessage(cid, '', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_W, 0) return true end local result = db.getResult('SELECT `balance` FROM `guilds` WHERE `id` = ' .. guild) if(result:getID() == -1) then return false end money[2] = result:getDataLong('balance') result:free() if(money[1] > money[2]) then doPlayerSendChannelMessage(cid, '', 'The balance is too low for such amount.', TALKTYPE_CHANNEL_W, 0) return true end if(not db.query('UPDATE `guilds` SET `balance` = `balance` - ' .. money[1] .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;')) then return false end doPlayerAddMoney(cid, money[1]) doPlayerSendChannelMessage(cid, '', 'You have just picked ' .. money[1] .. ' money from your guild balance.', TALKTYPE_CHANNEL_W, 0) else doPlayerSendChannelMessage(cid, '', 'Invalid sub-command.', TALKTYPE_CHANNEL_W, 0) end elseif(t[1] == 'donate') then local money = tonumber(t[2]) if(not isValidMoney(money)) then doPlayerSendChannelMessage(cid, '', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_W, 0) return true end if(getPlayerMoney(cid) < money) then doPlayerSendChannelMessage(cid, '', 'You don\'t have enough money.', TALKTYPE_CHANNEL_W, 0) return true end if(not doPlayerRemoveMoney(cid, money)) then return false end db.query('UPDATE `guilds` SET `balance` = `balance` + ' .. money .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;') doPlayerSendChannelMessage(cid, '', 'You have transfered ' .. money .. ' money to your guild balance.', TALKTYPE_CHANNEL_W, 0) else local result = db.getResult('SELECT `name`, `balance` FROM `guilds` WHERE `id` = ' .. guild) if(result:getID() == -1) then return false end doPlayerSendChannelMessage(cid, '', 'Current balance of guild ' .. result:getDataString('name') .. ' is: ' .. result:getDataLong('balance') .. ' bronze coins.', TALKTYPE_CHANNEL_W, 0) result:free() end return true end
     
     
     
    Agora vá em Talkactions/talkactions.xml e add as duas tags:

    <talkaction words="/war" channel="0" event="script" value="war.lua" desc="(Guild channel command) War management."/> <talkaction words="/balance" channel="0" event="script" value="balance.lua" desc="(Guild channel command) Balance management."/>
     
     
     
    Pronto,seu Guild War Systema está instalado...mas para funcionar necessitará das tabelas na sua database e do Tfs 0.4 .Vou posta-los abaixo,respectivamente.
     
    . Tabelas .
     
    Para quem ainda não sabe add tabelas a sua database,vou ensinar:
     
    Acesse seu phpmyadmin,digite sua senha (caso tenha),clique no nome da sua database a esquerda,assim que carregar a sua database clique em SQL lá em cima...Aparecerá um espaço em branco lá voce irá add as seguintes tabelas...e depois clicar em Executar.
     
     
     

    CREATE TABLE IF NOT EXISTS `guild_wars` ( `id` INT NOT NULL AUTO_INCREMENT, `guild_id` INT NOT NULL, `enemy_id` INT NOT NULL, `begin` BIGINT NOT NULL DEFAULT '0', `end` BIGINT NOT NULL DEFAULT '0', `frags` INT UNSIGNED NOT NULL DEFAULT '0', `payment` BIGINT UNSIGNED NOT NULL DEFAULT '0', `guild_kills` INT UNSIGNED NOT NULL DEFAULT '0', `enemy_kills` INT UNSIGNED NOT NULL DEFAULT '0', `status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `status` (`status`), KEY `guild_id` (`guild_id`), KEY `enemy_id` (`enemy_id`) ) ENGINE=InnoDB; ALTER TABLE `guild_wars` ADD CONSTRAINT `guild_wars_ibfk_1` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_wars_ibfk_2` FOREIGN KEY (`enemy_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE; ALTER TABLE `guilds` ADD `balance` BIGINT UNSIGNED NOT NULL AFTER `motd`; CREATE TABLE IF NOT EXISTS `guild_kills` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `guild_id` INT NOT NULL, `war_id` INT NOT NULL, `death_id` INT NOT NULL ) ENGINE = InnoDB; ALTER TABLE `guild_kills` ADD CONSTRAINT `guild_kills_ibfk_1` FOREIGN KEY (`war_id`) REFERENCES `guild_wars` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_kills_ibfk_2` FOREIGN KEY (`death_id`) REFERENCES `player_deaths` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_kills_ibfk_3` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE; ALTER TABLE `killers` ADD `war` INT NOT NULL DEFAULT 0;
     
    Para finalizar é necessário que o seu .exe tenha incluído na compilação o parâmetro, -D__WAR_SYSTEM__.
    Como adiciono?
    Para adicionar é necessário ter a source do otserver que você utiliza. Abra a source em um dev-cpp aperte alt+p na coluna paraments add -D__WAR_SYSTEM__ da ok e compila.
     
    Se você não souber compilar existem tutorias bem explicativas que tornam fácil aprender a compilar, veja abaixo:
     
    Compilando no Windows
    Compilando no Linux ubuntu
     
     
    Pronto o Guild Wars System está totalmente instalado!
     
    Para os preguiçosos Ocupados coloquei o download do sistema completo.
     
    Download Aqui
     
    Link do Scan
     
    Creditos: Walef Xavier - War System
    AgaSsI - Tópico original
    Gm Beckman - Completou o tópico
  24. Upvote
    Leoprotons recebeu reputação de snoop18 em [Encerrado] Erro Server Cai   
    Sim,
    depois de abrir aperte
    Alt + e
    cole o comando e aperte em F9.
  25. Upvote
    Leoprotons recebeu reputação de BrunowOts em [Encerrado] Erro Server Cai   
    Te respondi tua pm, qualquer coisa só perguntar!!
  • Quem Está Navegando   0 membros estão online

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