Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 03/24/16 em todas áreas

  1. Aula - Lógica de programação fala pessoal, essa aula é a primeira do conjunto que estarei criando para ensinar programação através da linguagem LUA, e depois, aprender como aplicar no tibia. as informações apresentadas a seguir são fundamentais para o apropriado entendimento da logica de programação, porém... Caso você esteja buscando a parte mais prática, pule para: Criando Algoritmos Sem mais delongas, precisamos entender o que é o conceito de lógica de programação, Lógica está contida em um conjunto de atitudes/eventos que tem um sentido por trás, lógica pode tomar várias formas e definições, porém, a que vamos aprender é Lógica de Computador, ela é EXTREMAMENTE necessária para você poder criar scripts, e programar códigos de qualquer tipo e linguagem. A lógica de computador não pode ser argumentada, essa lógica tudo é ou não é, não existe o meio termo ou argumento, ela pode ser entendida na Lógica de Aristóteles com a lei da não contradição, ou é verdadeiro, ou falso. Nós somos quase totalmente diferentes de máquinas, apesar do nosso cérebro funcionar também por eletricidade, a voltagem é fraca e ele não depende só de eletricidade, mas isso não vem ao caso, o que interessa é a nossa maneira de pensar e agir, aí sim, é totalmente diferente de um computador, Porque Será? Ao pensarmos, nosso cérebro trabalha no consciente e inconsciente, alguns cientistas acreditam que a decisão acontece já no inconsciente, através de experiências já vividas e considerações, ou seja, você não sabe que seu cérebro já tomou a decisão, até ficar consciente dela (não acredito 100% nisso, essa informação não tem muita base, tem deduções), mas o que temos que entender é que a gente avalia de acordo com o nosso conhecimento já adquirido, e por meio disso, a decisão é tomada através do nosso conhecimento de certo ou errado, e a decisão não precisa ser exata. Já o computador trabalha através de instruções de linguagens não sofisticadas (códigos de máquina, exemplo: código binário, 0 ou 1), algo que é praticamente incompreensível para os humanos (se não fosse compreensível, não existiria computador), por causa da dificuldade de programar em código de máquina foi criada uma linguagem chamada Assembly que torna muito mais fácil programar, e depois dessa linguagem, foram criadas outras mais sofisticadas. Criando Algoritmos. Agora o que precisamos entender é que a nossa maneira de pensar na resolução de problemas é diferente de como devemos escrever para um computador entender, o computador é muito mais burro na hora de interpretar as ideias, pois ele não tem quase nada para se basear além das suas instruções. Para explicar, vou criar um algoritmo simples para mandar um humano fazer uma determinada tarefa, comprar pão, e depois, vou explicar porque um computador não pode usar o mesmo algoritmo. Vou usar os seguintes substantivos: Pão Dinheiro Troco Casa Padaria Compra Vou usar os seguintes verbos: Pegar Ir / Voltar Fazer Dar Essas são as palavras chaves. Os verbos numa linguagem normal são geralmente chamados de Sintaxe (ou parte dela), ela é quem dirige a logica, e que faz o script ter sentido. Já os substantivos são dados valiosos, são variáveis! , variável é uma incógnita sobre o qual você tem controle, e sabe o valor , ela serve para você resumir dados e guardar, vão ser muito usadas se você quiser programar bastante, ela ajuda a identificar dados, e tornar o programa mais legível. • Vamos ao algoritmo: Bom, uma tarefa com instruções tão gerais não poderia ser seguida por um computador. A menos que sejam funções, porém isso não é assunto para agora. O fato é que essas instruções são bem mais do que a quantidade necessária para um humano, você pode falar: “Vá à padaria comprar pão”, e ele irá executar perfeitamente. Porém, se você quer dar um algoritmo de como ir para a padaria para um computador executar terá que ser bem mais específico e falar todas as tarefas que ficam subentendidas para um humano, mas que não são nem um pouco claras para um computador. Para o computador entender algo parecido do que o humano entende, seria necessária muita inteligência artificial, o que não contamos quando vamos programar em LUA, novamente falo, o computador é burro. Agora vamos ao algoritmo mais próximo do que um computador precisa, vamos precisar adicionar mais termos ao nosso vocabulário: Expressões condicionais: E alguns verbos e termos a mais. Vamos ao algoritmo: As expressões condicionais servem para verificar antes de fazer alguma tarefa, assim, evitamos possíveis erros, por exemplo, caso não tenha dinheiro! Se você mandar o computador pegar o dinheiro e o valor dinheiro não existe, irá gerar erros no seu script. Expressões condicionais não servem somente para verificar, servem para selecionar também, por exemplo, uma Quest que precise de level 20 para entrar. Esse algoritmo acima já dá uma parte de script, se escrito como LUA. A expressão condicional que acabei de passar é considerada fácil, mas para uma Quest é simplesmente isso e mais algumas coisas simples. Bom, esse é o final da aula de algoritmos, gostaria de saber se fui claro em relação ao tutorial e se alguma coisa passou despercebida que merece alguma atenção a mais, assim posso editar o tópico para ficar melhor. Exercício: Resposta: [Aula 2] Booleanos e Operadores ---->>
    7 pontos
  2. Fala rapaziada! Como sabem, é de costume da OTpanel lançar promoções incríveis e tentadoras. Não é diferente nesta vez, compre VPS Linux de16GB de RAM pelo preço de 8GB: · 30% de desconto no plano trimestral · Firewall gratuito · Entrega em 60 segundos Mas fique atento! Essa promoção é válida somente até o final de março! Não conhece a empresa? Saiba porque nós à indicamos: http://www.otpanel.com/
    2 pontos
  3. HadesBR

    Yurots 1.2 (sem edição)

    Yurots 1.2 Não tem muito o que falar do server, mapa simples, Yurots versão 8.10 atualizado para versão 8.60 sem editar, A distro é TFS 0.4 mas coloquei o download só da pasta data caso queira usar outra, quem ja jogou conhece, quem não viu, vale a pena conferir. Ótimo para editar pois é bem leve, apesar de alguns bugs no mapa que são simples. Download completo Download (somente a pasta Data) Creditos: •TFS Team •God Bon
    1 ponto
  4. Olá EkzTibianos, tenho o prazer de informar que estarei criando conteúdos para uma nova seção! Aulas de Scripting, e conto muito com a sua presença. Se VOCÊ quer aprender LUA de um jeito fácil e descomplicado, junte-se a nós, e venha ver as aulas que vão lhe ensinar a fazer scripts do nível de quest à sistemas bem desenvolvidos. Com a minha ajuda, e talvez a ajuda de membros e equipe, vamos nos prontificar à criar um espaço de suporte na própria seção de aprendizado, para que suas dúvidas em relação à scripting sejam tiradas rápidamente. As aulas irão explicar conteúdos em etapas, cada aula antecessora será uma base para a sucessora, já tenho rascunho de conteúdos da Aula-[0], que irá trabalhar com a velha e chata lógica de programação (extremamente necessária - porém de um jeito diferente) e alguns termos que serão utilizados posteriormente. Também contaremos com Deveres de casa, para que possam por em prática o que aprenderam na aula atual, esses deveres irão render pontos para quem cumprir com sagacidade, que servirão para outra novidade que ainda virá. Estou esperando o feedback de vocês ansiosamente neste tópico, eu vou gostar muito caso tenha uma repercussão boa e que possa ajudar o máximo de pessoas possíveis...
    1 ponto
  5. já arrumei valeu, era tirar os os trem antes das escritas por causa do mysql
    1 ponto
  6. Novos monstros, nova deusa, novas hunts, novas quests e muito mais! "Eu estava procurando pela minha aliança que havia caído na areia. Me deparei com um escorpião e usei minha pá para matá-lo, como sou desajeitado, errei alguns golpes com a pá antes de acertá-lo... E notei que logo ao lado do escorpião morto havia um local escondido pela areia..." Nova cave no deserto de Tanaris. Foi criada uma hunt free de Chakal com restrição de 35 resets e idade 3. Neste local foi criada uma nova quest. Nova cave no deserto de Tanaris. Nova cave no deserto de Tanaris. "Minha nossa! Veja quantas aranhas! Quanto mais mato, mais surgem... Será que não tem fim?!" Hunt de Crystal Spider Champion. Novos monstros: Crystal Spider Champion & Glacie Spinne . Hunt de Glacie Spinne. Nova hunt free de Crystal Spider Champion. Possui restrição de 5 resets (tem conexão com a hunt de Glacie Spinne). Nova hunt (também para jogadores free) de Glacie Spinne. Possui restrição de 10 resets e idade 1 (tem conexão com a nova expansão de Everfrost). "Estávamos caçando Abomináveis em um grupo de 7 fortes pessoas, sentimos um arrepio estranho, e quando percebemos, estávamos cercados por dezenas de Abomináveis. Nós corremos e eu senti um frio muito intenso. Olhei para trás e vi os cadáveres dos meus companheiros cobertos por neve... 'Vocês são fracos. Congelarei não só suas carnes e ossos... Como suas almas!' Era o que ela gritava enquanto eu fugia. Não pode... Ela não pode ser humana." Expansão da Hunt de Abominável de Everfrost. Expansão da "cave grande" de Abominável de Everfrost. Essa expansão é free e pode ser acessada pela nova hunt de Glacie Spinne. A restrição para jogadores free é de 30 resets e idade 4. Para jogadores VIPs é de 20 resets e idade 3. Expansão da Hunt de Abominável de Everfrost. Expansão da Hunt de Abominável de Everfrost. Nova quest: Annihilator 3. Possui restrição de 35 resets.​ Annihilator III. Nova invasão: Skadi (), a deusa do inverno. Novo set para Sorcerers e Druids: Glacier Set: . Skadi, a deusa do inverno. Nova montaria: Ursagrodon () [VIP]. O item para domar essa criatura é o Melting Horn (). Medidas para conter a desvalorização do gold no jogo: ​Mudanças em algumas criaturas:Loot de platinum coins da Rotworm Mãe reduzido em 30%. Removido loot de crystal coins da Rotworm Mãe [ * ]. Reduzido loot do Anubis. Personagens com 5 ou mais resets pagarão 4 vezes mais pelas passagens de barco (exceto para a cidade de Southshire). Jogadores VIPs continuarão pagando metade do preço. Sistema de sorteio aleatório de crystal coins removido do jogo. Redução na premiação do evento Desafio dos Monstros:Nivel 1: 100k. Nivel 2: 250k. Nivel 3: 350k. Nivel 4: 500k. Valor do aluguel das houses foi dobrado para os jogadores free e vip account. Preço de algumas runas e alimento foram aumentados:​Super UH aumentado de 25k para 50k. NPCs free:Destroy Field de 5gps para 25gps. Fire Bomb de 58gps para 78gps. Magic Wall de 58gps para 78gps. Paralyze de 350gps para 460gps. Brown Mushroom de 17gps para 21gps. NPCs vip:Destroy Field de 5gps para 23gps. Fire Bomb de 56gps para 76gps. Magic Wall de 55gps para 75gps. Paralyze Rune de 360gps para 450gps. Brown Mushroom de 17gps para 20gps. Novidades no site:Jogadores que estiverem com cast aberto, aparecerá um icone na página do site. Nova condição ao comprar conta:"Houve transferência de personagens nas contas envolvidas a pouco tempo. Verifique os personagens e tente comprar novamente mais tarde". Quando uma conta for trocada e/ou excluída, todos os tickets serão excluídos por motivos de segurança. Novidades em NPCs:NPC Jockey alugará cavalos por pacotes semanais. NPCs Ruppert e Ema aprimoraram seus estudos e agora conseguem levar os jogadores até os Anubis de Tanaris. NPC Yuki possui novos desafios para jogadores com altos resets:Chakal [bOSS]. Lagarto Escolhido [bOSS]. Abominável [bOSS]. Novos NPCs foram implantados: Visconde & Almulk Alttijara. O que será que eles fazem? Modificações em criaturas:Loot do Ferumbras melhorado. Loot do Marte melhorado. Marte está mais forte. Alterações em eventos:Jogadores com skill melee 150+ ou ml 135+ não poderão mais participar do Evento do Castelo em Tanaris. Não é mais permitido entrar com Winter Dragon Boots no Evento Bomberman. Configurado para Drunous poderem usar Armadura de Flamas . Desintegrate Rune não funcionará mais em corpos. Melhorias em algumas magias:A magia transeamus! passou a alcançar 4 sqm ao invés de 3 sqm para a área de alcance. As magias exevo flam hur, exevo frigo hur e exevo gran frigo hur tiverem seus danos aumentados. Mudanças no shopping:Duração da stamina up extendida de 30 horas para 40 horas (não aumenta stamina bônus). Diminuído preço de 7 barras para 5 barras. Mudanças no Phoenix:Ethershreck e Dhonatello foram adicionados ao sistema de recompensa (apenas os que não são de invasão ou respawn). Confira mais informações sobre o sistema de recompensa clicando aqui. Criado uma enquete in-game que apenas jogadores acima do level 100 poderão participar. Para responder, basta seguir as instruções da mensagem ao logar. Criada restrição de 1 reset para jogadores free alugarem house. Possibilidade de remover MW e rush wood ("gravetos") jogadas por personagens nulos de PvP, não sendo possível remover as próprias mws ou de um jogador PvP ativo. Além disso, ao dar look na Magic Wall ou Rush Wood aparecerá qual personagem jogou. Novidades na equipe:Saída do (Moderador) Departures. Agradecemos pela ajuda prestada durante este período. Promoção do (Senior Tutor) Shakkatsun a nível 1 de Senior Tutor. Promoção do (GM) Puppets a nível de 1 de GM. Novo membro da equipe: (Sub-Moderadora) Wendy. Seja bem-vinda a equipe RadBR e esperamos que a sua estadia seja longa e próspera! Fórum:Foram criadas algumas sub-seções referentes as cidades do RadBR na seção Spoilers para melhor organização. Proibido spoilers deste patch por 6 meses. O inverno terminou no hemisfério norte e com isso, o gelo de Wisland foi derretido e a cidade voltou ao normal. Adicionado exhausted nos comandos do Mercado. Passagem para os Anubis em Tanaris foi aumentada para evitar alguns problemas. Agora não é mais possível ficar preso dentro da King Shield Quest quando não houver 5 personagens para seguir adiante. Erros reportados foram arrumados, dentre eles, a dragon scale boots que não estava protegendo contra fogo, algumas houses de Wisland que não dava para colocar cortinas e alguns locais de Garath que impossibilitava de abrir corpses. ▬ Loteria RadBR: "Tente a sua sorte! A vida é feita de oportunidades. O homem que vai mais longe é quase sempre aquele que tem coragem de arriscar." - Dale Carnegie Quer ganhar um Ornate Shield ? Então participe da loteria do RadBR! NPC Moros (Wisland). O NPC Moros, que fica localizado em Wisland, estará vendendo bilhetes que servem para concorrer a este item valioso. Todos os jogadores a partir do level 8 poderão participar do sorteio. Quando o jogador comprar o bilhete, ele estará participando automaticamente do sorteio e receberá um item (), que servirá somente para consulta. Apenas serão sorteados bilhetes comprados diretamente com o NPC. O Moros sabe exatamente para quem ele vendeu os bilhetes e entregará o prêmio somente para quem comprou o bilhete diretamente com ele, portanto, o bilhete recebido poderá ser comercializado normalmente entre os jogadores, porém não terá utilidade. A troca de nome do personagem não interfere no sorteio. O 1º sorteio da loteria RadBR será realizado no dia 24 de Abril, às 21h (horário de Brasília). O nome do vencedor de cada loteria será anunciado via broadcast (mensagem vermelha) no respectivo servidor. Caso o personagem migrar de um servidor para outro e/ou o personagem for deletado ele não estará mais participando da loteria. Se ocorrer a venda e/ou a troca do personagem, o bilhete continuará sendo válido, ou seja, quem comprou o personagem terá direito ao prêmio caso seja sorteado. ▬ Matador de aluguel: "Cansado dos power abuser? Não pode sair do depot que te matam? Um carinha não foi com a sua cara e agora você está hunted? Quer sacanear aquele seu amigo que fala que é imortal? Te mataram red skull e você dropou as baga? Quer se vingar? Então o Matador de Aluguel resolve o seu problema!" NPC John The Killer (Moonglade). Agora quem quiser pode colocar uma recompensa pela cabeça de outro personagem. Se vingar ficou muito mais fácil! Você pode colocar uma recompensa para que alguém mate um inimigo seu (pode ser em barras de ouro ou em gold). O NPC cobra uma pequena taxa pelo serviço (10% se for em barras e 15% se for em crystal coins). Caso ninguém mate o personagem em até 7 dias, a recompensa (- valor da taxa) é devolvida para quem criou. A mudança de nome, quests e participantes da mesma guild não interfere durante o período de hunteds. É possível ver os personagens com a corda no pescoço através de uma página exclusiva para o sistema em nosso site. Para pegar a recompensa, basta falar com o NPC e posteriormente matar o personagem da lista de caçados. Mais informações, fale com o NPC John The Killer, que fica localizado em Moonglade. Lista dos hunteds no site. ▬ Descongelando o Ursagrodon: Para descongela-lo, é necessário usar Melting Horns (). Existem 3 fases de descongelamento: . Basta dar "use with" no Melting Horn, o item irá sumir cada vez que for usado, podendo falhar e não descongelar o Ursagrodon. Após o descongelamento total das 3 fases, aparecerá o monstro. É necessário reduzir a vida e usar um outro Melting Horn para domá-lo. Para conseguir um Melting Horn você precisa de um Fireproof Horn () e procurar um local extremamente quente. ▬ Watering Can: Já pensou ter sua própria planta no RadBR e ainda cuidar delas para que elas se tornem um objeto valioso no futuro e ainda valorizá-la esteticamente? Dentro de algumas semanas será possível! Se você quiser saber como obter algumas das plantas abaixo, consulte a NPC Hortencia, que estará disponível no jogo em breve. Ela poderá pedir que o jogador realize algumas tarefas antes de conseguir o watering can. A aparição dela será aleatória, surgindo em alguns locais do mapa, como em Nighthaven, Everfrost e em Zanknore. Ela também estará vendendo algumas plantas (que não tem relação com o sistema watering can) para o jogador. → →→ →→ →→ →→ →→ →→ → Estágio das plantas. Existem 4 estágios das plantas, os dois primeiros são idênticos de todos os tipos de plantas. Quando o jogador conseguir o Watering Can () através da NPC Hortencia, é necessário que o jogador regue as suas plantas usando o mesmo. Ao regar a planta, existe a possibilidade dela mudar de estágio ou morrer (), caso ela não seja regada poderá morrer após um tempo, portanto, tomem cuidado!. ​ No dia 01/04/2016 teremos uma varredura no banco de dados dos servidores que acarretará na exclusão de personagens: Nível 100 ou menor sem reset que não logam no jogo há mais de 6 meses. Qualquer nível sem reset que não logam no jogo há mais de 1 ano. ​Até 5 resets nos servidores Orion (antigo servidor 2) e servidor 3. Este processo é [red]irreversível[/red], portanto, personagens deletados não serão recuperados. Se você tem algum personagem que não quer que seja deletado, que se enquadra nas especificações acima, basta logar e deslogar para evitar que ele seja deletado. Isso resultará em um banco de dados mais leve e desbloqueio de nomes já utilizados por estes personagens. O conflito entre os Coelhos da Páscoa e os Coelhos Malvados chegou a um ponto que não há mais como voltar atrás. A Varinha da Páscoa foi usada por muitos anos para conter a maldade dos Coelhos Malvados, mas o Senhor Coelho que fornecia o poder para a varinha já está com uma idade avançada e não tem mais como ajudar. Para piorar, o Krampus - que foi derrotado no natal - resolveu emprestar seu poder para os Coelhos Malvados e com esse poder eles conseguiram descobrir onde fica a Ilha Pascal - local onde os Coelhos da Páscoa ficam enquanto não é Páscoa. E agora?! Ilha Pascal. Os jogadores poderão escolher ajudar um dos dois lados: Coelhos da Páscoa (Senhor Coelho) ou Coelhos Malvados (Demoniac Bunny). Surgirão Coelhos Malvados e Coelhos da Páscoa em qualquer respawn de monstros que dão 700+ de exp (1x). Para cada coelho que um personagem matar ele receberá ponto individual. Se ele matar: - Coelhos Malvados receberá pontos no rank do Senhor Coelho e perderá pontos com o Demoniac Bunny. - Coelhos da Páscoa receberá pontos no rank do Demoniac Bunny e perderá pontos com o Senhor Coelho. Ou seja, o jogador deverá matar sempre o mesmo tipo de coelho para subir no rank. Utilizando o comando !pascoa, é possível acompanhar a própria pontuação durante o evento. O evento funcionará em Duskwood (exceto nas invasões). Além disso, haverá um rank global entre os Coelhos da Páscoa vs Coelhos Malvados que será divulgado no fim do evento. O jogador que fizer parte do rank vencedor (e tiver ao menos 300 pontos) ganhará um prêmio extra, veja mais detalhes na parte de premiação. Todos os coelhos têm chances de dropar os ovos de páscoa que são descritos mais abaixo, além disso, tem uma pequena chance de dropar o item Rabbit's Foot , que serve para domar o Emerald Waccoon (VIP). Os ovos não aparecem no loot dos coelhos, eles vão diretamente para a backpack (aparece uma mensagem na tela), porém o Rabbit's Foot irá para o corpo. Nem sempre os coelhos dropam os ovos. Todos os dias às 19h haverá invasões do Senhor Coelho (e seus Coelhos da Páscoa) e o Demoniac Bunny (e seus Coelhos Malvados) na Ilha Pascal (local no-pvp). O acesso será por um teleport que surgirá somente no horário do evento, na antiga casa do Senhor Coelho (em uma montanha a sudoeste de Wisland). Cuidado, eles são consideravelmente fortes! Invasão - Ilha Pascal. Invasão - Ilha Pascal. Premiação: Para o jogador que fizer mais pontos (um único jogador para todos servidores): The Epic Wisdom. Maior quantidade de pontos (independente do rank, serão três ganhadores por servidor): 1º - 60 Barras de Ouro. 2º -40 Barras de Ouro. 3º -20 Barras de Ouro. Todos que conseguirem 300 pontos ganharão: Montaria Steelbeak (FREE)​. + 10 dias de VIP (no dia 11/04, apenas se os pontos forem no rank com maior pontuação no rank global). Efeito dos ovos de páscoa: Verde, regenera 1/4 de vida. Roxo, regenera 1/5 de mana. Azul, aumenta 5 de ml por 2 horas (apenas para Sorcerers, Druids e Infernalists). Vermelho, aumenta 15 de distance e fist por 2 horas (apenas para Paladins e Knockers). Amarelo, aumenta 15 de melee por 2 horas (sword, axe e club) (apenas para Knights e Drunous). * Os ovos existentes antes deste evento continuarão dando o mesmo prêmio do ano passado. * Em caso de empate, vencerá quem matou o último coelho primeiro. * Os efeitos dos ovos não são cumulativos. [red]Cuidado[/red] ao comprar ovos de outros jogadores: Para identificar se o ovo tem efeito deste evento ou de um evento anterior, basta dar look, na descrição do item que mostrará se o ovo tem efeito do evento de 2014 (apenas experiência), 2015 ou se tem efeito deste evento de 2016 (os efeitos citados acima). O evento será ativado dia 24/03/2016 e encerrado às 06:00 do dia 13/04/2016. Atenção! Evitem assuntos que não tenham relação com o tópico. Em relação ao sistema anti-entrosa, a equipe está ciente desta sugestão através dos diversos meios de comunicação internos, tanto no jogo, no fórum e nos tickets. Estaremos analisando a possibilidade de implantação deste sistema no futuro. Desejamos uma boa páscoa a todos! Atenciosamente, Equipe RadBR
    1 ponto
  7. O math.random ta fora do callback por isso sempre da a mesma quantidade hahaha, tenta agora : local config = { exhaustionMinutes = 60, -- exausted em minutos effectChar = 30, -- efeito no char. storageUse = 34542 -- storage usado/ não mude caso não entenda. } function onUse(cid, item, fromPosition, itemEx, toPosition) local stonesMinerar = { -- [id da pedra] = {minerioid = id do item que ganha, chance= a % de chance que ele tem conseguir ou não o item, count = countidade que ganha} [5709] = {minerioid = 5944, chance= 10, count = math.random(1, 10)}, [5624] = {minerioid = 6277, chance= 10, count = math.random(1, 5)}, [8748] = {minerioid = 5880, chance= 10, count = math.random(1, 5)}, [5619] = {minerioid = 12700, chance= 10, count = math.random(1, 3)} } if exhaustion.check(cid, config.storageUse) then if exhaustion.get(cid, config.storageUse >= 60 then doPlayerSendCancel(cid, "Voçê só pode usar após [" .. math.floor(exhaustion.get(cid, config.storageUse) / 60 + 1) .."] minutos.") end if exhaustion.get(cid, config.storageUse <= 60 then doPlayerSendCancel(cid, "Voçê só pode usar após [" .. exhaustion.get(cid, config.storageUse).."] segundos.") end return true end local random = math.random(1, 100) local itemMinerar = stonesMinerar[itemEx.itemid] if itemMinerar then if random <= itemMinerar.chance then doPlayerAddItem(cid, itemMinerar.minerioid, itemMinerar.count) doPlayerSendTextMessage(cid, 19, "Você recebeu "..(itemMinerar.count).." "..getItemNameById(itemMinerar.minerioid).."!") doSendMagicEffect(getPlayerPosition(cid), config.effectChar) exhaustion.set(cid, config.storageUse, config.exhaustionMinutes*60) else doPlayerSendCancel(cid, "Você falhou.") end else doPlayerSendCancel(cid, "Você não pode minerar isso.") end return true end
    1 ponto
  8. Na verdade esse math.random no count que você está vendo não é a chance de ser obtido e sim a quantidade, ou seja a quantidade pode vir de 1 a 4 dependendo a sua sorte e no outro de 1 a 10. A configuração da chance de cada item está em chance, "chance=10" ele tem 10% de chance de conseguir o item ... modifique a seu gosto. local stonesMinerar = { -- [id da pedra] = {minerioid = id do item que ganha, chance= a % de chance que ele tem conseguir ou não o item, count = countidade que ganha} [5709] = {minerioid = 5944, chance= 10, count = math.random(1, 10)}, [5624] = {minerioid = 6277, chance= 10, count = math.random(1, 5)}, [8748] = {minerioid = 5880, chance= 10, count = math.random(1, 5)}, [5619] = {minerioid = 12700, chance= 10, count = math.random(1, 3)} } local config = { exhaustionMinutes = 60, -- exausted em minutos effectChar = 30, -- efeito no char. storageUse = 34542 -- storage usado/ não mude caso não entenda. } function onUse(cid, item, fromPosition, itemEx, toPosition) if exhaustion.check(cid, config.storageUse) then if exhaustion.get(cid, config.storageUse >= 60 then doPlayerSendCancel(cid, "Voçê só pode usar após [" .. math.floor(exhaustion.get(cid, config.storageUse) / 60 + 1) .."] minutos.") end if exhaustion.get(cid, config.storageUse <= 60 then doPlayerSendCancel(cid, "Voçê só pode usar após [" .. exhaustion.get(cid, config.storageUse).."] segundos.") end return true end local random = math.random(1, 100) local itemMinerar = stonesMinerar[itemEx.itemid] if itemMinerar then if random <= itemMinerar.chance then doPlayerAddItem(cid, itemMinerar.minerioid, itemMinerar.count) doPlayerSendTextMessage(cid, 19, "Você recebeu "..(itemMinerar.count).." "..getItemNameById(itemMinerar.minerioid).."!") doSendMagicEffect(getPlayerPosition(cid), config.effectChar) exhaustion.set(cid, config.storageUse, config.exhaustionMinutes*60) else doPlayerSendCancel(cid, "Você falhou.") end else doPlayerSendCancel(cid, "Você não pode minerar isso.") end return true end
    1 ponto
  9. SkyLigh

    Tutorial Reflexo [Photoshop]

    Opa, Mais um tutorial de design no photoshop simples porem muito util e muitos tem dúvidas. 1. Para começar, abra a imagem que quer aplicar o efeito – no nosso caso, escolhemos o logo do Softonic. Em seguida, duplique o layer, como na figura – pusemos o nome de “Reflexo” em nosso layer duplicado. 2. Como vamos criar um reflexo, é necessário aumentar a área da figura para que o mesmo caiba perfeitamente. Para isso, vá a "Image>Canvas Size". 3. Como o reflexo terá mais ou menos o dobro da imagem inicial, duplique a altura da área. No nosso caso, de 124px, passamos para 248px. 4. Ambos os layers estão preparados e com a mesma área. Agora, é hora de girar um deles e criar o efeito de espelho. Para fazer isso, selecione o layer “Reflexo”, vá a"Edit>Transform>Flip Vertical". 5. Aparentemente, está tudo igual. No entanto, você precisa mover a imagem do layer “Reflexo” para baixo: ela só está escondida atrás da original. 6. Depois de posicionar os layers, chegou a hora de mudar a transparência da imagem inferior. Selecione o layer da imagem e, na parte superior do painel, mova o cursor de “Opacity” a 40%. 7. Falta apenas criar um efeito degradé. Para isso, selecione novamente o layer “Reflexo” e, na parte inferior do painel, clique na janelinha com uma bola no meio. O recurso é “Add layer mask” que nada mais é do que criar uma máscara no layer atual. 8. Depois, no Painel de Ferramentas principal do Photoshop, selecione a ferramenta de degradé ou “Gradient Tool”. Para conseguir o efeito, trace uma linha vertical sobre a imagem do layer “Reflexo” até conseguir o degradé que mais lhe agrade. Créditos : Artigos.Softonic
    1 ponto
  10. Danihcv

    Erro Em Dois Scripts

    Tenta ae: mount: -- [( Mount System 1.4 created by Doidin for XTibia.com )] -- function onUse(cid, item) local outfit = {lookType = 4} -- Outfit da montaria! local exhaust = 60 -- Tempo para player poder usar o item novamente! (tempo em segundos) local time = 60 -- Tempo para ficar na montaria! (tempo em segundos) local speed = 300 -- Velocidade adicionada ao player após usar o item! (300 = velocidade, quanto maior mais rapido...) local mana = 500 -- Quantidade de mana que o player necessita para usar o sistema! local premium = "yes" -- Apenas players premium accounts "yes" or "no"!? local storage = 9393 -- Não mexa aqui! if (premium == "yes") and (not isPremium(cid)) and (isPlayer(cid)) then return doPlayerSendTextMessage(cid, 23, "Sorry, only premium players.") end if(getCreatureMana(cid) < mana) then return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA) end if isPlayer(cid) then if (getPlayerStorageValue(cid, storage) <= os.time()) then doCreatureSay(cid, "Yeeeah!!!\nYou went up on his ride.", 19) doSetCreatureOutfit(cid, outfit, time*1000) doChangeSpeed(cid, speed) doSendMagicEffect(getCreaturePosition(cid), 34) setPlayerStorageValue(cid, storage, os.time()+exhaust) doPlayerAddMana(cid, -mana) addEvent(doChangeSpeed, time*1000+40, cid, -speed) addEvent(doPlayerSendTextMessage, time*1000+45, cid, 23, "Mount System is time out!") addEvent(doSendMagicEffect, time*1000+50, getCreaturePosition(cid), 2) else doPlayerSendCancel(cid, "Sorry, you only can again use this item after "..exhaust.." seconds.") end end return true end o outro: local GemsConfig = { [2153] = { vocations = {4, 8, 12}, effect = CONST_ME_EXPLOSIONAREA, conditions = { [CONDITION_ATTRIBUTES] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_SKILL_MELEEPERCENT] = 112, [CONDITION_PARAM_BUFF] = true, [CONDITION_PARAM_SUBID] = 200 }, [CONDITION_HASTE] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_SPEED] = 40 } } }, [2154] = { vocations = {3, 7, 11}, effect = CONST_ME_HOLYDAMAGE, conditions = { [CONDITION_ATTRIBUTES] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_SKILL_DISTANCEPERCENT] = 112, [CONDITION_PARAM_BUFF] = true, [CONDITION_PARAM_SUBID] = 200 }, [CONDITION_HASTE] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_SPEED] = 40 } } }, [2156] = { vocations = {1, 5, 9}, effect = CONST_ME_MORTAREA, conditions = { [CONDITION_ATTRIBUTES] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_STAT_MAGICLEVELPERCENT] = 112, [CONDITION_PARAM_BUFF] = true, [CONDITION_PARAM_SUBID] = 200 }, [CONDITION_HASTE] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_SPEED] = 40 } } }, [2158] = { vocations = {2, 6, 10}, effect = CONST_ME_SMALLPLANTS, conditions = { [CONDITION_ATTRIBUTES] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_STAT_MAGICLEVELPERCENT] = 112, [CONDITION_PARAM_BUFF] = true, [CONDITION_PARAM_SUBID] = 200 }, [CONDITION_HASTE] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_SPEED] = 40 } } } } local Conditions = {} for itemid, info in pairs(GemsConfig) do Conditions[itemid] = {} for condition, parameters in pairs(info.conditions) do local new = createConditionObject(condition) for parameter, value in pairs(parameters) do setConditionParam(new, parameter, value) end table.insert(Conditions[itemid], new) end end local function doShowGemAura(cid, type) if isCreature(cid) then local position = getThingPosition(cid) doSendMagicEffect(position, type) if isCreature(cid) then if getCreatureCondition(cid, CONDITION_ATTRIBUTES, 200) then addEvent(doShowGemAura, 1 * 1000, cid, type) end end end return true end function onUse(cid, item, fromPosition, itemEx, toPosition) if not GemsConfig[item.itemid] then return false end if not isInArray(GemsConfig[item.itemid].vocations, getPlayerVocation(cid)) then return doPlayerSendCancel(cid, "You cannot use this spirit gem.") end if getCreatureCondition(cid, CONDITION_ATTRIBUTES, 200) then return false end for _, condition in pairs(Conditions[item.itemid]) do doAddCondition(cid, condition) end doCreatureSay(cid, "AAAAH! I FEEL THE POWER!", TALKTYPE_ORANGE_1) doSendMagicEffect(toPosition, GemsConfig[item.itemid].effect) addEvent(doShowGemAura, 1 * 1000, cid, GemsConfig[item.itemid].effect) doRemoveItem(item.uid, 1) return true end
    1 ponto
  11. Furabio

    Ajuda Com Script

    ^^ diasdonate.lua : function onSay(cid, words, param) if (getPlayerStorageValue(cid, 85258) - os.time()) > 0 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você possui " .. math.floor((getPlayerStorageValue(cid, 85258) - os.time()) / (60*60*24)) .. " dia(s) de VIP!") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não possui VIP!") end return true end tag.XML : <talkaction log="yes" words="!diasdonate " event="script" value="diasdonate.lua"/>
    1 ponto
  12. Yan Liima

    Ajuda com arena PVP

    Caramba mudou muita coisa na versão 10.91 em... Seria igual o meu? : Creio que seria a mesma coisa, apos clicar na alavanca teria que ter X level e cada player ia para um lado, apos morrer também cada player iria para um lado Acho que não funcionaria na versão sua mais daria pra adaptar, só não conheço as funções dessa versão.
    1 ponto
  13. Daae galera, eu sempre gosto de editar meus mapas e uma das walls que eu mais gosto e a limestone wall, então decidi adicionar ela ao meu RME, e hoje vou trazer para vocês como fazer isso. Primeiramente, teremos de ir a Pasta do Remeres Map Editor. Depois disso va em data/(versão desejada)/tilesets.xml Apos abrir o Tilests, Vá até esta linha. <brush name="stone wall"/> <brush name="rock wall"/> Agora no meio deles coloque este script: <brush name="limestone wall"/> Pronto. Bom, agora que colocamos para o Remeres Map Editor ter a Limestone Wall, precisamos ajustar os ID's das paredes, portas etc. Então, agora vamos até o data/(versao desejada)/walls.xml Após você abrir O walls, você tera de adicionar este script: <brush name="limestone wall" type="wall" server_lookid="10178"> <wall type="horizontal"> <item id="10178" chance="1"/> <item id="10180" chance="0"/> <item id="10181" chance="0"/> <door id="10195" type="archway" open="false"/> <door id="10196" type="archway" open="false"/> <door id="10468" type="normal" open="false"/> <door id="10469" type="normal" open="false"/> <door id="10470" type="normal" open="true"/> <door id="10471" type="locked" open="false"/> <door id="10472" type="locked" open="true"/> <door id="10475" type="quest" open="false"/> <door id="10476" type="quest" open="true"/> <door id="10473" type="magic" open="false"/> <door id="10474" type="magic" open="true"/> <door id="10488" type="hatch_window" open="false"/> <door id="10490" type="hatch_window" open="true"/> <door id="10486" type="window"/> </wall> <wall type="vertical"> <item id="10177" chance="1"/> <item id="10182" chance="0"/> <item id="10184" chance="0"/> <door id="10192" type="archway" open="false"/> <door id="10193" type="archway" open="false"/> <door id="10477" type="normal" open="false"/> <door id="10478" type="normal" open="false"/> <door id="10479" type="normal" open="true"/> <door id="10480" type="locked" open="false"/> <door id="10481" type="locked" open="true"/> <door id="10482" type="quest" open="false"/> <door id="10483" type="quest" open="true"/> <door id="10484" type="magic" open="false"/> <door id="10485" type="magic" open="true"/> <door id="10489" type="hatch_window" open="false"/> <door id="10491" type="hatch_window" open="true"/> <door id="10487" type="window"/> </wall> <wall type="corner"> <item id="10181" chance="1"/> <item id="10183" chance="0"/> <item id="10185" chance="0"/> <item id="10187" chance="0"/> </wall> <wall type="pole"> <item id="10179" chance="1"/> </wall> </brush> ATENÇÂO:Você tem que tomar cuidado, pois você tem que adicionar este script depois de qualquer <brush>, e so pode haver apenas UM </brush> no final do script. Bom, após você fazer isso, você precisa abrir seu RME, e ir até "Terrain Palette/Town" Você tera algo assim... Bom obrigado por ver o tutorial... Pretendo mais no futuro fazer mais extensions para vocês (= Obrigado, se gostou, REP+
    1 ponto
  14. Bom galera, como to sempre presissando dessa wall e fica dificil usa no RAW resolvi coloca no RME, vamos ao que intereça vai Remere's Map Editor\data\860\tilesets.XML E procure a seguinte linha <brush name="stone wall"/> e Em baixo Adcione essa linha... <brush name="framework wall"/> Ficando assim.... <brush name="stone wall"/> <brush name="framework wall"/> Depois De ter Feito Isso va em walls.XML (NA MESMA PASTA) E la em baixo adicione isso... <brush name="framework wall" type="wall" server_lookid="1037"> <wall type="horizontal"> <item id="10227" chance="500"/> <item id="10229" chance="0"/> -- This needs to be here for backwards compability -- <item id="10235" chance="0"/> -- This needs to be here for backwards compability -- <item id="10245" chance="150"/> <item id="10246" chance="150"/> <door id="10271" type="normal" open="false"/> <door id="10272" type="normal" open="false"/> <door id="10273" type="normal" open="true"/> <door id="10276" type="locked" open="false"/> <door id="10277" type="locked" open="true"/> <door id="10280" type="quest" open="false"/> <door id="10281" type="quest" open="true"/> <door id="10284" type="magic" open="false"/> <door id="10285" type="magic" open="true"/> <door id="10264" type="hatch_window" open="false"/> <door id="10266" type="hatch_window" open="true"/> <door id="10262" type="window"/> </wall> <wall type="vertical"> <item id="10226" chance="400"/> <item id="10231" chance="0"/> -- This needs to be here for backwards compability -- <item id="10233" chance="0"/> -- This needs to be here for backwards compability -- <item id="10247" chance="150"/> <item id="10248" chance="150"/> <door id="10268" type="normal" open="false"/> <door id="10269" type="normal" open="false"/> <door id="10270" type="normal" open="true"/> <door id="10274" type="locked" open="false"/> <door id="10275" type="locked" open="true"/> <door id="10278" type="quest" open="false"/> <door id="10279" type="quest" open="true"/> <door id="10282" type="magic" open="false"/> <door id="10283" type="magic" open="true"/> <door id="10265" type="hatch_window" open="false"/> <door id="10267" type="hatch_window" open="true"/> <door id="10263" type="window"/> </wall> <wall type="corner"> <item id="10230" chance="1000"/> <item id="10232" chance="0"/> -- This needs to be here for backwards compability -- <item id="10234" chance="0"/> -- This needs to be here for backwards compability -- <item id="10236" chance="0"/> -- This needs to be here for backwards compability -- <item id="10237" chance="0"/> -- This needs to be here for backwards compability -- <item id="10238" chance="0"/> -- This needs to be here for backwards compability -- </wall> <wall type="pole"> <item id="10228" chance="1000"/> </wall> </brush> ATENÇÂO:Você tem que tomar cuidado, pois você tem que adicionar este script depois de qualquer <brush>, e so pode haver apenas UM </brush> no final do script. Bom, após você fazer isso, você precisa abrir seu RME, e ir até "Terrain Palette/Town" Você tera algo assim... Gente sei que é um Script, mto Simples+ pra qualque mapper ira FACILITAR muita a vida ^^ Se gostaram+rep so clica ali :arrow:
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...