Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 01/21/13 em todas áreas
-
srlua Construindo programas executáveis baseados em códigos Lua Bom dia, galera. Como sabem Lua é uma linguagem bastante rica, utilizada não só na área do Open Tibia, mas em jogos Android, como o Angry Birds ou no gigante da Blizzard, o World of Warcraft. Mas você já parou para se perguntar, será que é possível criar programas em Lua, como você faz com C/C++? Sim, aqueles simples programas de console. Você, estudante de C++, deve lembrar do seu primeiro programa Hello World, você compila ele e através de um arquivo .exe executável, você abre uma janela do console com aquela frase super clichê. Sim, é possível transformar um script Lua em um arquivo executável, uma das maneiras de fazer isso é com auxílio da biblioteca srlua. Com ele, você pode unir um interpretador e script Lua em um executável. Em tese, é o mesmo funcionamento do conhecido por muitos, Molebox. Para fazer isso, basta baixar o pacote srlua, colocar na pasta C:\ (Ou onde você desejar), colocar o script Lua na mesma pasta do pacote baixado e através do cmd, fazer isso: cd X:/srlua glue interpretador.exe script.lua programa.exe O primeiro parâmetro (interpretador.exe) vem com o nome srlua.exe na pasta, o segundo parâmetro (script.lua) é o script que você irá desenvolver e o terceiro parâmetro (programa.exe) é o output, ou seja, o nome do programa final que pode ser qualquer um. Download Binários Sources Contribuição - Vulpes Vulpes Skyen4 pontos
-
[9.60] Azeroth RPG
Arisen Trapzer e 2 outros reagiu a Vmspk por um tópico no fórum
Azeroth Server Updated 28/01/2013: v2.0 by Vmspk Este servidor foi disponibilizado para você gratuitamente, nunca retire os créditos Versões Anteriores: v1.0 [8.70]: http://www.xtibia.co...server-updated/ v1.1 [8.60]: http://www.xtibia.co...oth-rpg-reborn/ Versão: 9.60 Distro: TFS 0.4 Mapa Base: Yourots Edited e Mix Yourots Features: > 7 Cidades: Azeroth Avalon Zatur Liberty Bay Gloria Sand Trap Tiquanda > Mapa RPG bem detalhado para Ots Low e Mid rate. > Inúmeras invasões automáticas, Low e High lvl (ou iniciadas pelo comando /raid "nome"). > NPCs de Travel/Boat diferentes para cada cidade. > Mais de 100 quests (além das principais) espalhadas pelo mapa. > Quests especiais com NPCs > Arena PvP sem perda de items. > Sistema de Guerras pelo Castelo [entre guilds] (mais detalhes abaixo) > Sistema de Refinamento e Slot (mais detalhes abaixo). > Sistema de Mineração (mais detalhes abaixo) > Scripts e sistemas aprimorados para o servidor > Distro SEM erro algum > Equipamentos 9.60 funcionando corretamente > Novas Hunts > Raids de bosses 9.60 > Montarias por quest > Principais Quests: Annihilator Blue Legs Pits of Inferno MMS The Inquisition The Death FireWalker Boots Demon Helmet Draken Hell Conquer Prismatic Armory Deepling Abismal > 27 Raids Automáticas e configuradas: > Sistema de Guerras pelo Castelo [Honor Castle, a oeste de Azeroth] Evento automático. Quando a guerra é anunciada as guilds podem batalhar pelo controle do castelo, dando use no monumento do último andar e permanecendo assim até a guerra acabar. O último jogador a ter o controle do castelo antes do tempo acabar será o vencedor, e sua guild se tornará dona do castelo. Todos os membros da Guild ganharão uma recompensa e poderão acessar o mapa do subsolo. Os membros de outras Guilds serão teleportados para o templo e não poderão acessar o castelo. O sistema envia mensagens a todos antes de o evento começar, quando começar, quando o dono do castelo muda, antes de se finalizar e ao finalizar, relatando o conquistador do castelo e a guild vencedora. Imagens: Raids Honor Castle War Upgrade & Slot System > Histórico: V 0.2 V 0.3 V 0.4 V 1.0 V 1.1 V 2.0 Não há teleports diretos para hunts ou quests. Não há items ou monstros editados(além dos trainers). Não há sistema VIP, VIP 2, VIP 3, VIP 345456364. Não há raids com monstros excessivamente fortes nas cidades iniciais. Créditos: < Unknow YourOts Edited >< Mix Yourots Team >< Crystal Server Team >< Tryller >< Mock >< TFS Team >< TonyHanks >< Centera World >< SmoOker >< Mappers Xtibia e OtservBr >< Vmspk > (Este servidor foi disponibilizado para você gratuitamente, nunca retire os créditos) DOWNLOADS > Opcionais Utilitários - Source *Utilitários inclui: SQLite Studio + Otland Ipchanger > Servidor Azeroth Server v2.0 [MEDIAFIRE] Para entrar no servidor sem usar a internet, ponha no ipchanger localhost Se você estiver usando sqlite, vá até o config.lua e mude ingameGuildManagement = false para ingameGuildManagement = true > Scan Acc do GOD: vmspk/222222 Comandos: !war para executar a guerra pelo castelo manualmente, !reset para interromper o funcionamento da war e !castle para limpar todos os dados, ou seja, o castelo volta a ser terra de ninguém. !info para saber mais sobre as novidades do Azeroth Server. Editável na pasta do Ot, em Notícias. Comando !bless e !rank disponíveis. Para saber os IDs das pedras e outras coisas vá ao Histórico, na versão 1.0. Se acha que ter um OtServ é só baixar, abrir e largar lá, ou ainda editar chars e equipamentos para você mesmo jogar e fazer o que quiser, garanto-lhe que não vai durar 2 dias. Conheça o mapa, crie eventos, interaja com os jogadores, faça torneios Pvp, marque datas para a Honor Castle, faça updates no mapa, crie monstros, hunts e quests, dê suporte e, o mais importante, mantenha o HELP aberto, sempre. Contato: vmspk@hotmail.com Os arquivos dos ots 9.60 estavam muito errados e incompletos, ou melhor, podres. Não duvido que a maioria desses 9.60 postados aqui ou nos outros fóruns estejam infestados de bugs e coisas que não funcionam. Loots errados, monstros copiados, escadas sem registros, novos equipamentos sem movements (propriedades não faziam efeito), bordas de mapas 9.60 fora do lugar, scripts simples como os de Locked Doors em conflito com a lib, etc, etc. Tive um trampo do cão pra arrumar tudo isso. Do meu suor eu digo a vocês, dou-lhes o melhor servidor 9.60 (pelo menos por enquanto) Conheça também o 4Fun Server 9.13 pontos -
Faaaaala galera! Sentiram saudades das minhas entrevistas? =p Venho trazer hoje, uma entrevista com o nosso recém promovido a direção do fórum, Anyur! Nesta entrevista, vocês poderão conhecer um pouco mais sobre o nosso diretor, e saber também um pouco mais sobre os planos dele para 2013! Espero que gostem da entrevista, e boa leitura! Olá Anyuuur! Estes dias você esteve me entrevistando, mas hoje, chegou a minha vez de te entrevistar! =p Vamos começar com a entrevista! Para começarmos poderia nos dizer o seu nome e sua idade? - Me chamo Gabriel Couto, tenho 17 anos! Como você conheceu o jogo Tibia, e o que te trouxe ao XTibia? - O jogo eu conheci em 2004, faz um bom tempo, quando um amigo meu me mostrou como jogar, como era o jogo, etc. O Fórum eu conheci há um bom tempo, 2006 provavelmente, procurando coisas para OTServer mesmo, pois eu e um grupo de um amigos queríamos abrir um servidor na época! Como todos sabemos, você dedicou a maior parte do seu tempo ao mapping. O que mais te chamou a atenção para praticar e conhecer o mapping? - Acho mapping muito legal, e comecei com isso pois tinha um servidor em 2010 e eu que fazia áreas novas, então tomei gosto pelo mapping. Além disso, não me dou bem com códigos, etc, então não gosto de estudar programação e afins, só de dar umas editadas em script, algo de php, então não me dedico à isso! Você já esteve na colaboração, moderação, coordenação, e agora você entrou como Diretor. Como você está se sentindo? Você sente que vem fazendo um bom e satisfatório trabalho até agora? - Cara, estou bem feliz por ter sido promovido, mas a ocasião não foi tão legal, com a saída do Won! Eu esperava já isso, pois eu já estava em alguns testes há alguns dias, fazendo relatórios de equipe, mas a saída dele foi inesperada pra todo mundo! Mas com 1 dia, não deu pra fazer muita coisa, mas já estou fazendo algo, coloquei uma nova pessoa (já era da equipe) na seção de aprovação de downloads, já vou marcar uma reunião em breve, etc, estou querendo levar o fórum de volta ao que era antes. Como coordenador de mapping, você tinha muitos planos para a seção. Mas e agora na direção, como ficarão estes planos e projetos? - Bom, eles vão continuar pois eu continuo como responsável na seção! Mas agora estou contando com a ajuda de uma pessoa, que agora, está se tornando pública essa informação, que é você mesmo, que vai dividir algumas tarefas comigo na seção Qual a sua visão sobre o atual XTibia em termos de organização, e equipe em geral? - Essa coisa de organização é polêmica hahaha, deve gerar algumas respostas bem desagradáveis, talvez, mas vamos lá. Cara, comparando com outros fóruns, como a otland (vários tópicos fora de seção, principalmente em mapping), eu acho que não estamos mal, mas é claro, não estamos perfeitos. Nenhuma comunidade grande vai ter organização de tópicos perfeita, por maior que seja a equipe, pois isso é impossível. Mas nossa equipe trabalha bem, em geral, e vai aumentar a organização agora, novos membros estarão entrando na nossa moderação (hoje são colaboradores), e assim, vamos atingir um nível melhor. Mas, é claro, nada é perfeito e nunca vai ser. O que você acha que precisa melhorar dentro da comunidade, e como melhorar isso? - Acho que algumas seções específicas precisam melhorar, como a de Tibia Global e Spriting, que precisam de mais visualizações. Para melhorar, vamos ter que traçar metas nessas seções para aumentar primeiramente a visualização delas, para podermos formar uma equipe nelas, e então, pensar em melhorar de verdade! Agora que entrou na direção, acredita que os usuários podem e vão esperar mais de você? O que você acha disso? - Claro, agora mudam muitas das minhas antigas obrigações no fórum, e isso inclui contato direto com os interesses de todos os usuários e dos membros da equipe. Isso é bem legal e espero não decepcionar. Além disso, podem esperar o Addict de volta, farei vocês sentirem falta dele Como diretor do XTibia, quais os seus planos para o futuro? Pretende trazer boas e grandes mudanças? - Primeiramente, estabilizar a equipe, estabilizar algumas brigas internas, que são inevitáveis. Depois disso, pretendo sim mudar algo no XTibia, quero investir na publicidade de tópicos, no portal, no facebook, pois eles que são, hoje, os pontos-chave do fórum. Fazendo uma estimativa de chutômetro, talvez 80% dos nossos visitantes a cada 30 minutos não são registrados, e eu quero diminuir isso, quero procurar algo que incentive os nossos só visitantes a se cadastrarem no fórum. Vamos ver o que conseguimos Para você, qual a seção mais promissora do fórum? Por que? - Cara, sinceramente, vou responder a que mais está crescendo atualmente É justamente a sua seção que eu acho no momento a mais promissora. Ela está ressurgindo das cinzas e você usa bem o portal para atrair público à ela, e o número de tópicos e acessos vem crescendo cada vez mais! E qual a seção com mais deficiência atualmente? E o que fazer para melhorá-la? - Acho que a seção de Spriting deve ser a mais deficiente, pois tem pouco conteúdo, poucos tópicos, poucos membros ativos. Estou buscando mais um estagiário (conversarei com o tal em breve) para tentar chamar atenção da área. Vou usar o portal para chamar atenção e também vou me aliar com esses estagiários, que hoje é somente o SmiX e esse provável que deverá vir em breve, para tentar algum concurso, algo que aumente o público! Quais são os planejamentos para as seções? Tem algum? - Bom, estou aguardando poder fazer a reunião geral em breve, com todos os coordenadores, ver as ideias deles e apresentar as minhas. Mas de início, quero ouví-los e fazer propostas para que juntos, em equipe, possamos por em prática as ideias. Qual o membro que você mais se identifica aqui dentro do fórum? Ele pode ser da equipe ou não. - Bom, a maior parte dos meus amigos são da equipe ou ex-equipe, e acho que são quatro com que me identifico bastante, que são Lordfire e Brund, amigos já de um bom tempo, e mais recentes, que são você, Tonynh, e o Won Helder. Do seu ponto de vista, qual membro da equipe você tem mais expectativas e na sua opinião, exerce o cargo melhor que os demais? - Bem difícil a pergunta de ser respondida, mas crio muitas expectativas em algum dos nossos colaboradores, principalmente WH47, nosso destaque agora, com certeza, e Oneshot, que possui um potencial enorme de conteúdo de programação e scripting. O que você acha da seção OFF-Topic? (Principalmente o Barzinho do Éks). - Acho a seção bem legal, venho tentando interagir mais com o pessoal de lá, tentar me tornar colega deles, para que eu possa trabalhar lá também O bar tem essa especificidade, que é a dificuldade em moderar quando não se é de lá, então, antes que eu possa fechar tópicos que mereçam ser fechados (alguns com certeza são), quero me tornar colega deles para que não haja problemas Finalizando as perguntas, gostaria de deixar uma mensagem para os usuários que irão ler esta entrevista? - Sim, saibam que estou aqui para ajudar vocês e tentar realizar seus desejos e ideias para o fórum, e também, em alguns anos, Addict será esquecido dos comentários e seu nome dará lugar ao Anyur. Abraços. FIM DA ENTREVISTA Obrigado Anyur pela ótimas respostas! E é isso pessoal, espero que tenham gostado da entrevista! MIAU! É ISSO AI!2 pontos
-
SUBWAT KAMIKAZE V25
Yakuzashadow e um outro reagiu a rogeriocene por um tópico no fórum
Oque Ha De Novo? - Foi adicionado Shadow Set -Foi Adicionado Demonic Set , E quest Demonic -Foi adicionado King Set -Adicionei Um Shop Por Alavanca -Adicionei Vip2 (shadow vip) -Adicionei Segunda promotion , Shadow knight , Shadow Druid , Shadow Paladin , Shadow sorcerer -Adicionado Npc que vende Segunda promotion -City Shadow VIp -New HUntes -Removi Areas Inuteis do mapa ..Obs> Area que ngm usava e assim deixei o ot mais leve -Novos Monstros -Novos eventos -Todas Vocaçao estao balanceadas -New visual do templo -Novo Group 7 , E um adm Mais poderoso que pode ficar de ghost para gods -Cms,gms nao pode ficar de ghost .. AGORA VAMOS VER ALGUMAS IMAGENS TEMPLO SHOP SHADOW VIP CURTIU O MAP??DA UM +REP AE NUM CUSTA NADA.. E COMENTEM POR FAVOR PARA O TOPICO SUBIR.xD SE TIVEREM DUVIDAS PODEM POSTAR QUE EU ESTAREI AJUDANDO.. DOWNLOAD: http://www.4shared.c...izado2013.html? SCAN: https://www.virustot...sis/1358620343/2 pontos -
Bom Primeiramente Prazer Kausen (AlexSs) só mapper a mais de 6 anos e sempre que possível eu faço uns mapas pra não perde o costume pois sinceramente to velho pra isso "kkk", bom hoje vou ensinar a criar uma natureza de deserto avançado "Passo a Passo". -O'que é Natureza de deserto avançado? R:Não seria uma Natureza mais sim o resto dela pois deserto não tem natureza complexa por ser muito seco. -Mais no deserto tem água e blá blá... R: sim tem água e esses locais que tem água são conhecidos como "OASIS". -Aqui vou ensinar a fazer o deserto com sua pouca vegetação pois como o sol é escaldante e a pouca água em seu local dificilmente terá uma natureza glamurosa. Chega de Conversa vamos a prática. Antes de tudo desative seu auto borde e faz de conta que travou seu RME no RAW pallete. 1º Passo. Iremos até Grounds (sand id:231) faremos seu chão. 2º Passo. Iremos Até Borders( Dry Glass id:8349~8360) e (Glass id:4542~4553) assim distribuiremos as bordas de um jeito que fique bonito. 3º Passo. Agora usaremos as bordas (Sand id:4760~4771) e colocaremos encima das bordas citadas acima. 4º Passo. Usaremos outras bordas para poder usar o "piché" no deserto.Bordas (sand id:8335~8346) assim fazendo que fique o aspecto de deserto escaldante. 5º Passo. Vamos ate NATURE em RAW PALLETE e usaremos debris e pedras. Nunca use tantas pedras no deserto,usar em exagero não deixará o mapa legal. 6º Passo. Ainda em NATURE usaremos alguns tufos, bem poucos e perto do "piché" usaremos mangrove do pequeno apenas perto das bordas. nunca mais longe que 2 sqm's. Na imagem a seguir você perceberá que tem um Caquetos você colocara perto das bordas de grama que foi colocado la no (2º Passo) e assim usando até 3 tufos perto dele. 7º Passo. Finalizando o mapa usei um pouco de debris perto da pedra e nunca usem muito debris de deserto pois ficará feio. FIM. Tutorial Simples Avançado Básico Obrigado. Curtiu Curtiu Rep+2 pontos
-
[ZnoteACC] Sorcerer Template
SkyLigh e um outro reagiu a AlexandreKG por um tópico no fórum
Fala amigos do XTibia,hoje estarei postando um template de certa forma ja conhecido por muitos.O famoso Sorcerer Layout,só que dessa ves para ZnoteACC. sorcerer.zip Download MultiUpload Abraços...2 pontos -
[Oficial] Refugia (8.60) 26/08/2012 0.0.8
felipecaldas199 reagiu a Subwat por um tópico no fórum
Bom pessoal,venho trazer-lhes hoje um trabalho,de meses de mim e de daniel devotti,fizemos um servidor Igual o refugia. e agora venho compartilhar com vocês. SENHA DO GOD account:god senha:GOD Spells Knights :ezzori,ezzori gran. Magos :exevo gran frigo,exevo gran mas mort,exevo gran mas ghost,aurora. Paladinos :exevo gran mas mort,aurora. Sistemas Pet system com mais de 50 pets,Incluindo Pets Donates que você pode vender em seu site! Sistemas de arena duels Para teams ou duplas no segundo andar no templo! Sistema de VIP Coins e (VIP) no nome Igual do Refugia Original! TASK SYSTEM! Sistema De Reborn Monster! adicionado 16/09/11 Ao matar um monstro ele tem 50% de chance de renascer igual no refugia! Items Mais de 100 items editados únicos do servidor! items free bons,quests com items editados e etc. Quests Anihilator demon helmet Aqua quest vermilion quest Pits of inferno Lord vampire quest refugia legs multi Quest dentre várias outras. Screen Shots Trainer's Templo Free Teleports Vip Teleports Free Teleportes para cidades Segundo andar do templo Montanha City Vip City Free NPC's DOWNLOAD: http://adf.ly/IGQ9S http://adf.ly/IGQDJ (SCAN DESATUALIZADO) Créditos Subwat (Gean Riot) Refugia.com.br daniel freire devotti curtiu REP+ Este tópico recebeu destaque em nosso portal!1 ponto -
Olá Galerinha... Vim Postar aki para vocês uma sala de TPS que achei legalzinho .. Vamos ao que interessa!!! FOTOS 1º Andar: 2º Andar: 3º Andar: Download: [8.60] Sala de TELEPORTS - By: MoscaMarinha Créditos:MoscaMarinha Eu(por trazer para vcs)1 ponto
-
Área sera movimentada com no minimo 2 Imagem por semana. Obrigado.1 ponto
-
Prazer, PokeBRO! Um excepcional Poke Tibia!
Felipe1880 reagiu a Administrador por um tópico no fórum
Prazer, PokeBro! Para as pessoas que gostam do bom e velho Pokemon, estamos inaugurando hoje (domingo dia 20/01) um novo conceito em Poke Tibia! Durante quase 1 ano desenvolvemos o PokeBro para ser fielmente igual ao Game Boy! Totalmente diferente de todos os Poke Tibia que existem hoje, temos uma proposta diferente e inovadora! Conheça abaixo algumas coisas boas do game 24 horas! - Duelos com Npcs - Líderes de Ginásio - TV, Boost, Berries, Vitaminas - Todos os Shiny Kanto - Shinies aparecem aleatóriamente - Sistemas Dive, Ride, Surf, Rock, Cut etc... - Quest Log - Pontos de Conquistas - Mapa Próprio e fiel ao Game Boy! - Várias Quests - Pokemons Balanceados 100% - Server Save Ultra Rápido - Habilidades Exclusivas - Sem lag e 24 horas on-line! Assista um vídeo do pokebro! Comece agora, acesse: http://start.pokebro.com Gostou? Quer ajudar? - Participe da comunidade no facebook (veja: http://facebook.com/pokeBrOnline) - Divulgue o projeto em sua assinatura e amigos (veja: banners.pokebro.com) - Que tal dar uma ajuda in-game? Participe da equipe, procure o Help Channel! - Converse conosco e tire suas dúvidas em http://start.pokebro.com Bom galera, recomendo bastante! Conheci eles dos projetos incentivados e desde entao venho ajudando a equipe e incentivando o desenvolvimento deles!1 ponto -
[Dicas] Iniciantes
tatotheus reagiu a Desnecessario por um tópico no fórum
1 ponto -
Comandos Para PhotoShop!
Junior001 reagiu a AlexandreKG por um tópico no fórum
Bom caros amigos,venho por meio deste tutorial para informar os comandos de PhotoShop!Espero que todos prestem a atenção nos nomes,pois facilitará muito na hora de fazer algum trabalho no photoshop.Conhecendo o nome e as ferramentos você se identificará mais facil,quando for fazer algo. F1 - Abre a ajuda do PhotoShop. F5 - Mostrar ou não paleta de prédefinições de Pincéis. F6 - Mostrar ou não paleta de cores. F7 - Mostrar ou não paleta de camadas,canais e desmarcadores F8 - Mostrar ou não paleta de navegador,informações ... F9 - Mostrar ou não paleta de histórico ou ações.. Tab - Mostrar ou não todos os componentes da tela. Shift + Tab - Mostrar ou não todos os componentes da tela.(Excessão barra de ferramentas!) Mantenha o dedo pressionado a tecla SHIFT M - Letreiro retangular V - Mover L - Laço,Laço poligonal,Laço magnético W - Varinha mágica C - Corte desmarcado K - Fatia J - Pincel para recuperação de manchas B - Pincel S - Carimbo Y - Pincel do histórico E - Borracha G - Degradê R - Desfoque O - Subexposição A - Seleção de Marcador T - Texto P - Caneta U - Retângulo N - Observações I - Conta Gotas H - Mão Z - Zoom D - Cores de primeiro plano e Plano de fundo Padrão Comandos abaixo não precisam mais ficar com o dedo pressionado no SHIFT X - Alterar cores de primeiro plano e plano de fundo padrão Q - Alternar entre modo padrão F - Alternar para modo de tela padrão Atalhos para Arquivo CTRL+N - Novo CTRL+O - Abrir CTRL+ALT+0 - Procurar CTRL+ALT+SHIFT+O - Abrir Como CTRL+W - Fechar ALT+CTRL+W- Fechar todas SHIFT+CTRL+W - Fechar e ir para o Bridge CTRL+S - Salvar SHIFT+CTRL+S - Salvar como ... ALT+SHIFT+CTRL+S - Salvar para Web F12 - Reverter CTRL+ALT+SHIFT+I - Info sobre arquivo CTRL+SHIFT+P - Configurar página CTRL+ALT+P - Imprimir com visualização CTRL+P - Imprimir CTRL+ALT+SHIFT+P - Imprimir uma cópia CTRL+Q - Sair Editar Menu Ctrl+Z - Desfazer Ctrl+F - Repetir filtro Ctrl+Shift+Z - Avançar uma etapa Ctrl+Alt+Z - Retroceder uma etapa Ctrl+Shift+F - Atenuar Ctrl+X ou F2 - Recortar Ctrl+C ou F3 - Copiar Ctrl+Shift+C - Copiar mesclado Ctrl+V ou F4 - Colar Ctrl+Shift+V - Colar em Ctrl+T - Transformação livre Ctrl+Shift+T - Transformar novamente Ctrl+Shift+K - Configuração de cores Ctrl+Alt+Shift+K - Atalhos no teclado Ctrl+K - Mudar preferências Atalhos para imagem Ctrl+L - Niveis Ctrl+Shift+Alt+E - Aplicar imagem Ctrl+Shift+L - Niveis automaticos Ctrl+Alt+Shift+L - Contrastes automaticos Ctrl+Shift+B - Cores automaticas Ctrl+M - Curvas Ctrl+B - Equilibrios de cores Ctrl+U - Matiz/saturação Ctrl+Shift+U - Remover saturação Ctrl+I - Inverter Ctrl+Alt+Y - Tamanho da imagem Atalhos para camada Ctrl+Shift+N - Nova camada Crtl+J - Nova camada por cópia Ctrl+Shift+J - Nova camada por corte Ctrl+Alt+G - Criar/soltar máscara de corte Ctrl+G - Agrupar camadas Ctrl+Shift+G - Desagrupar camadas Ctrl+Shift+] - Trazer para o primeiro plano Ctrl+] - Trazer para frente Ctrl+[ - Enviar para trás Ctrl+Shift+[ - Enviar para o plano de fundo Ctrl+E - Mesclar camadas Ctrl+Shift+E - Mesclar camadas visiveis Atalhos de seleção Ctrl+A - Selecionar tudo Ctrl+D - Cancelar seleção Ctrl+Shift+D - Selecionar novamente Ctrl+Shift+I ou Shift+F7 - Inverter seleção Ctrl+Alt+A - Selecionar todas as camadas Ctrl+Alt+D ou Shift+F6 - Difusão Créditos: Mozark001 - Por organizar e criar o tópico1 ponto -
Script Castle War 1.0
levynogueiiraa reagiu a 35383 por um tópico no fórum
Boa Tarde, Pessoal eu notei que não tinha muitos script de Castle War por aqui no forum de Sistemas e Mods e então eu disse pra min mesmo por que eu não crio um script assim então eu comecei a trabalhar Instalando Na Actions Va na pasta data/actions/actions.xml e adicione isso: <action actionid="9999" event="script" value="castelowar1.lua"/> <action actionid="9998" event="script" value="castelodoor1.lua"/> <action actionid="8888" event="script" value="castelowar2.lua"/> <action actionid="8887" event="script" value="castelodoor2.lua"/> Agora que está instalado vá em data/actions/scripts e crie esses 4 arquivos: castelowar1.lua: {script by Sheamus88} function onUse(cid, item, frompos, item2, topos) ------------------ Inicio das Config ------------ local castle_one_name = "Ratim Bum" -- Nome do castelo 1 local storages = {154154,54321,123123} -- Storages ( se vc eh iniciante, deixe como está...) -------PREMIOs I N D I V I D U A L --------- local premio_por_vezes = 1 -- Premio por vezes de conquista de castelo. (1) = Ativo (0) = Desativa. local premio_vezes = 13 -- Caso ativo, a quantidade de conquista que o player tem, para ganhar PREMIO. local premio = 2472 -- ID do Premio local premio_cont = 1 -- Quantidade do Premio local premio_reset = 1 -- Resetar o contador do premio depois que atingir a meta?? (1) = SIM (0) = NAO -------FIM PREMIOs I N D I V I D U A L --------- ----------------- FIM DAS CONFIG ----------------- local sto_ativ = getGlobalStorageValue(storages[2]) position = getCreaturePosition(cid) if isPlayerGuild(cid) == TRUE then if sto_ativ == 1 or sto_ativ == -1 then guildname = getPlayerGuildName(cid) guild = getPlayerGuildId(cid) guild_sto = getGlobalStorageValue(storages[3]) if guild ~= guild_sto then setPlayerStorageValue(cid,guild_sto,guild) if getPlayerStorageValue(cid,storages[1]) == -1 then setPlayerStorageValue(cid,storages[1],0) end sto_vezes = getPlayerStorageValue(cid,storages[1]) setGlobalStorageValue(storages[3],getPlayerGuildId(cid)) setPlayerStorageValue(cid,storages[1], sto_vezes + 1) sto_vezes_total = getPlayerStorageValue(cid,storages[1]) doBroadcastMessage("O(a) "..getCreatureName(cid).." acabou de conquistar o castelo "..castle_one_name.." para a guild \""..guildname.."\" pela "..sto_vezes_total.."ª vez(s).", 22) doSendMagicEffect(position, 39) if premio_por_vezes == 1 then if getPlayerStorageValue(cid,storages[1]) == premio_vezes then if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then doBroadcastMessage("O "..getCreatureName(cid).." ganhou uma(o) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!", 21) doPlayerAddItem(cid, premio,premio_cont) doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!") ----------------------------------------------- -- if premio_reset == 1 then -- setPlayerStorageValue(cid,storages[1],0) -- Resetar a contagem end -- ----------------------------------------------- -- else doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Vamos verificar novamente em 10 segundos!") addEvent(additem,10000,cid,premio,premio_cont,premio_reset) end end end else doPlayerSendCancel(cid,"Este castelo ja foi conquistado pela sua guild!") doSendMagicEffect(position, 2) end else doPlayerSendCancel(cid,"O sistema está desativado") end else doPlayerSendCancel(cid,"É nescessario ter guild para dominar o castelo!") doSendMagicEffect(position, 2) end end {script by Sheamus88} function additem(cid,premio,premio_cont,premio_reset) if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then doPlayerAddItem(cid, premio,premio_cont) doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!") if premio_reset == 1 then setPlayerStorageValue(cid,storages[1],0) end stopEvent(additem) else doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Verificando novamente em 10 segundos!") addEvent(additem,10000,cid) end end {script by Sheamus88} function isPlayerGuild(cid) if getPlayerGuildName(cid) ~= "" then return TRUE else return FALSE end end castelowar2.lua: {Script by Sheamus88} function onUse(cid, item, frompos, item2, topos) ------------------ Inicio das Config ------------ local castle_two_name = "do Dracula" -- Nome do castelo 2 local storages = {154154,54321,321321} -- Storages ( se vc eh iniciante, deixe como está...) -------PREMIOs I N D I V I D U A L --------- local premio_por_vezes = 1 -- Premio por vezes de conquista de castelo. (1) = Ativo (0) = Desativa. local premio_vezes = 13 -- Caso ativo, a quantidade de conquista que o player tem, para ganhar PREMIO. local premio = 2472 -- ID do Premio local premio_cont = 1 -- Quantidade do Premio local premio_reset = 0 -- Resetar o contador do premio depois que atingir a meta?? (1) = SIM (0) = NAO -------FIM PREMIOs I N D I V I D U A L --------- ----------------- FIM DAS CONFIG ----------------- local sto_ativ = getGlobalStorageValue(storages[2]) position = getCreaturePosition(cid) if isPlayerGuild(cid) == TRUE then if sto_ativ == 1 or sto_ativ == -1 then guildname = getPlayerGuildName(cid) guild = getPlayerGuildId(cid) guild_sto = getGlobalStorageValue(storages[3]) if guild ~= guild_sto then setPlayerStorageValue(cid,guild_sto,guild) ----------------------------------------------------- if getPlayerStorageValue(cid,storages[1]) == -1 then setPlayerStorageValue(cid,storages[1],0) end ----------------------------------------------------- sto_vezes = getPlayerStorageValue(cid,storages[1]) setGlobalStorageValue(storages[3],getPlayerGuildId(cid)) setPlayerStorageValue(cid,storages[1], sto_vezes + 1) sto_vezes_total = getPlayerStorageValue(cid,storages[1]) doBroadcastMessage("O(a) "..getCreatureName(cid).." acabou de conquistar o castelo "..castle_two_name.." para a guild \""..guildname.."\" pela "..sto_vezes_total.."ª vez(s).", 22) doSendMagicEffect(position, 39) if premio_por_vezes == 1 then if getPlayerStorageValue(cid,storages[1]) == premio_vezes then if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then doBroadcastMessage("O "..getCreatureName(cid).." ganhou uma(o) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!", 21) doPlayerAddItem(cid, premio,premio_cont) doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!") ----------------------------------------------- -- if premio_reset == 1 then -- setPlayerStorageValue(cid,storages[1],0) -- Resetar a contagem end -- ----------------------------------------------- -- else doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Vamos verificar novamente em 10 segundos!") addEvent(additem,10000,cid,premio,premio_cont,premio_reset) end end end else doPlayerSendCancel(cid,"Este castelo ja foi conquistado pela sua guild!") doSendMagicEffect(position, 2) end else doPlayerSendCancel(cid,"O sistema está desativado") end else doPlayerSendCancel(cid,"É nescessario ter guild para dominar o castelo!") doSendMagicEffect(position, 2) end end ------------------------- Por PC98. function additem(cid,premio,premio_cont,premio_reset) if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then doPlayerAddItem(cid, premio,premio_cont) doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!") if premio_reset == 1 then setPlayerStorageValue(cid,storages[1],0) end stopEvent(additem) else doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Verificando novamente em 10 segundos!") addEvent(additem,10000,cid) end end ------------------------- por pc98 function isPlayerGuild(cid) if getPlayerGuildName(cid) ~= "" then return TRUE else return FALSE end end castelodoor1.lua: {script by Sheamus88} function onUse(cid, item, frompos, item2, topos) -------------------------Config----------------------------------------------------------------- door_opened = 1228 -- ID da porta aberta storage_guild = getGlobalStorageValue(123123) -- A 3ª storage configurada em Castle.lua guarda_ativ = 1 -- Caso um invasor tente abrir a porta, sumonar o Monstro "Guarda"?? | (1) = SIM (0) = NAO guarda_cont = 2 -- Caso ativo: a quantidade de guardas a sumonar guarda_pos = {x=123,y=123,y=7} -- Posiçao a ser sumonada os guardas! -------------------------Fim de Config----------------------------------------------------------- if getPlayerGuildId(cid) == storage_guild then doTeleportThing(cid,getThingPos(item.uid)) doTransformItem(item.uid, door_opened) doPlayerSendTextMessage(cid, 22, "Seja bem vindo a vosso castelo!") return TRUE else if guarda_ativ == 1 then doPlayerSendTextMessage(cid, 22, "Guaaaardas, tirem esses invasores daqui!!") for i=1, guarda_cont do doSummonCreature("Guarda", guarda_pos) end return FALSE else doPlayerSendTextMessage(cid, 22, "Este castelo nao pertence a sua guild") return FALSE end end end castelodoor2.lua: --------------- -----BY PC98------- --------------- function onUse(cid, item, frompos, item2, topos) -------------------------Config----------------------------------------------------------------- door_opened = 1228 -- ID da porta aberta storage_guild = getGlobalStorageValue(321321) -- A 3ª storage configurada ( ja esta configurada o PADRAO ) guarda_ativ = 1 -- Caso um invasor tente abrir a porta, sumonar o Monstro "Guarda"?? | (1) = SIM (0) = NAO guarda_cont = 4 -- Caso ativo: a quantidade de guardas a sumonar guarda_pos = {x=321,y=321,y=7} -- Posiçao a ser sumonada os guardas! -------------------------Fim de Config----------------------------------------------------------- if getPlayerGuildId(cid) == storage_guild then doTeleportThing(cid,getThingPos(item.uid)) doTransformItem(item.uid, door_opened) doPlayerSendTextMessage(cid, 22, "Seja bem vindo a vosso castelo!") return TRUE else if guarda_ativ == 1 then doPlayerSendTextMessage(cid, 22, "Guaaaardas, tirem esses invasores daqui!!") for i=1, guarda_cont do doSummonCreature("Guarda", guarda_pos) end return FALSE else doPlayerSendTextMessage(cid, 22, "Este castelo nao pertence a sua guild") return FALSE end end end Talcktions Vá em data/talcktions/talcktions.xml clique com o botao direito e depois aperte em "Editar" e adicione essa linha: <talkaction words="/war" event="script" value="castelosystem.lua"/> Agora vá em scripts da pasta talcktions e crie um arquivo lua e renomeie para castelosystem.lua e adicione isso: castelosystem.lua: function onSay(cid, words, param) access = 4 -- Coloque aqui o access requirido para Ativar/Desativar o sistema if param == "start" then if getPlayerAccess(cid) == access then setGlobalStorageValue(54321,1) doPlayerSendTextMessage(cid, 20, "Voce ativou o Castle Wars com suscesso!") return TRUE end elseif param == "stop" then if getPlayerAccess(cid) == access then setGlobalStorageValue(54321,2) doPlayerSendTextMessage(cid, 20, "Voce desativou o Castle Wars com suscesso!") return TRUE end end end Monster O monster GUARDA aquele que mensionei ele ficará dentro do castelo Instalando: vá na pasta data/monster/monster.xml,e adicione essa linha aqui: <monster name="Guarda" file="guarda.xml"/> depois crie um arquivo na pasta scripts com o nome guarda.xml guarda.xml <?xml version="1.0"?> <monster name="Guarda" nameDescription="the guard" experience="6000" speed="268" race="Blood"> <health now="20000" max="20000"/> <look type="73" corpse="6080"/> <strategy attack="200" defense="300"/> <targetchange speed="420" chance="1"/> <flags> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag attackable="1"/> <flag pushable="0"/> <flag staticattack="90"/> <flag targetdistance="1"/> </flags> <attacks> <attack name="melee" interval="2000" chance="100" min="-400" max="-800" range="1"/> <attack name="physical" interval="4000" chance="25" min="-600" max="-700" range="7" radius="8" target="1"> <attribute key="shootEffect" value="arrow"/> </attack> </attacks> <defenses defense="45" armor="40"/> <immunities> <immunity name="paralyze"/> <immunity name="invisible"/> </immunities> <voices speed="2200" chance="75"> <voice sentence="Aii Delicia Assim você me mata (8)" yell="1"/> <voice sentence="Saia daqui intrusos!" yell="1"/> <voice sentence="Sua resistencia e inutil!" yell="1"/> <voice sentence="Voce vai ser preso!" yell="1"/> <voice sentence="Quem manda é o Sheamus88!" yell="1"/> </voices> <script> <event name="guard"/> </script> <elements/> <loot/> </monster> Creatures Scripts Bom, agora a gente tem de configurar pra esse bixo nao atacar os donos do castelo neh, se nao ele vai sair porai matando GERAL :fuu:. Vamo nessa. Va na pasta data/creaturescripts e edite o arquivo creaturescripts.xml adicionando esta linha: <event type="combat" name="guard" script="guarda.lua"/> agora abra a pasta scripts, que esta na mesma pasta e crie um arquivo chamado guarda.lua. guarda.lua function onCombat(cid, target) if(not isPlayer(target)) then return TRUE else targets = getMonsterTargetList(cid) if getPlayerGuildId(target) == getGlobalStorageValue(123123) then addEvent(check,1000,cid,targets) return FALSE else return TRUE end end end function check(cid,targets) for i=1, #targets do if getPlayerGuildId(targets[i]) == getGlobalStorageValue(123123) then addEvent(check,1000,cid,targets) return FALSE else stopEvent(check) return TRUE end end end O seu Guarda está configurado vamos para ultima etapa: Instalação no RME Va ate no primeiro castelo, e adicione uma lavanca ( id recomendado: 1945 ) e coloque aonde voce quiser. Depois de colocado a lavanca, clique nela com o botao direito do mouse e va em property. No campo "ActionID:" coloque 5656. Faça a mesma coisa com o segundo castelo, crie la a lavanca, e coloque actionID 5657. Se voce quiser voce pode criar uma porta especial, por onde so os 'donos' do castelo pode entrar, afinal, ja ta instalado! :fail: Coloque ActionID 5659 na porta no primeiro castelo, e actionID 5660 na porta do segundo castelo. Comandos /war star(para ativar o system) /war stop(para desativar o system) Creditos Sheamus88 - Pelos scripts tbm PC98 - Por partes do script MonsterEditor - Pelo mosntro Guarda. ( blackdemon)1 ponto -
[Tutorial] Como colocar uma imagem em HD (Alta definição)
Gabriel Couto reagiu a Overpower por um tópico no fórum
1 - Primeiro abra uma imagem, eu abri essa da cidade... 2 - Duplique a camada e vá em filtro-outros-alta frequência (O meu tem lá em cima por que eu tinha feito isso antes de começar =P) 3- Coloque 3,0 e de um ok. 3- Agora mude as opções de mesclagem para Luz Indireta ou Sobrepor, fica a seu critério. Feito isso já vemos uma diferença nos detalhes Observem: Antes: Depois: A Imagem que eu usei não era boa kk, mais é isso ae obrigado galera e comentem =P1 ponto -
Item que teleporta
VitorEminem reagiu a VitinDruid por um tópico no fórum
Fala ae Galera Do Xtibia Esse e Meu Primeiro Post De Alguma Coisa Importante :s Vou Trazer Pra Vcs A Script De 1 Item q Teleporta Para As Cordenadas Que Vc Kiser Primeiro Va Em Data/Actions/Scripts. Copie e Bloco De Notas Qualquer Exclua Oq Tiver Dentro e Cole Isso e Renomei Para Teleport.lua function onUse (cid, item, itemEx, toPosition, fromPosition) pos = {x=160, y=54, z=7} if doPlayerRemoveItem(cid, 5812, 1) then doPlayerSendTextMessage(cid, 22, "Mensagem Que Ira Aparecer Quando Teleportado.") doTeleportThing(cid,pos) return true end end Feche o Bloco De Notas e Salve La Mesmo. Agr em Data/Actions/Actions.xml Cole Essa Tag : <action itemid="Id Do Item (no meu caso e 5812}" script="teleport.lua"/> Feito Isso Feche e Cole. Descriçao : Azul Agua - Id Do Item Vermelho - Mensagem Verde - Posiçao Para onde o Item Vai Teletransporta Ajudei Rep+ ,Desculpa o Topico Mal Organizado Afinal e Meu Primeiro Post Obs : Nao Sei Se Ja Tem 1 Topico Como Esse Se Tiver, Podem Fechar Esse Afinal Nao Sabia... Creditos : VitinDruid(Vitor) :70% e a Meu Rl (30%)1 ponto -
SUBWAT KAMIKAZE V9.0 ATUALIZADO Oi galera venho postar meu Subwat Kamikaze V9.0. Modificações que eu fiz: -Retirado bugs da VIP 1. -Novas hunts adicionadas. -Novo Super Set. -Novo Lokura Set. -Comando para os itens:Super Absolute UH !superabsoluteuh e Vip Star !vipstar. -Novos itens adicionados:Imperial Shield e Imperial Spear. -Novo NPC Vendedor de Vip Coins na Super Vip. -Loteria dando 1000 vip coins. -Adicionado Evento de Corrida -Novos comandos para o Super Set:!superhelmet,!superarmor,!superlegs,!superboots,!supersword e !supershield -Novos comandos para o Lokura Set:!lokurahelmet,!lokuraarmor,!lokuralegs,!lokuraboots,!lokurasword e !lokurashield -Resets no Look dos players -Novos comandos: !imperialshield e !imperialspear E MUITO MAIS... TEMPLO TPS SUPER VIP Obrigado para gostar do meu mapa. DOWNLOAD: http://www.4shared.c...amiKaze_V9.html SCAN: https://www.virustot...sis/1335053790/ Créditos:Subwat,Afeez,Nadotti. De um rep+ ae.1 ponto
-
tenta trocar isso.. doCreatureChangeOutfit(cid, outfit) para.. addEvent(doCreatureChangeOutfit, 1000, cid, outfit)1 ponto
-
[Encerrado] [PDA Slicer] - Oddish, Gloom e etc!
didogunner reagiu a Slicer por um tópico no fórum
isso se chama 'passive' sao habilidades passivas q os pokes soltam as vezes... podes mudar o specialattack ali onde o stylo flo... e tb podes arrumar o dano da propria passiva em lib/configuration.lua nessa parte.. ["Gloom"] = {move1 = {name = "Absorb", level = 5, cd = 20, dist = 1, target = 1, f = 40, t = "grass"}, move2 = {name = "Leech Seed", level = 7, cd = 20, dist = 3, target = 1, f = 1, t = "grass"}, move3 = {name = "Acid", level = 7, cd = 10, dist = 4, target = 1, f = 45, t = "poison"}, move4 = {name = "Poison Bomb", level = 10, cd = 20, dist = 4, target = 1, f = 70, t = "poison"}, move5 = {name = "Poison Gas", level = 19, cd = 25, dist = 1, target = 0, f = 5, t = "poison"}, move6 = {name = "Sleep Powder", level = 24, cd = 80, dist = 1, target = 0, f = 0, t = "normal"}, move7 = {name = "Stun Spore", level = 16, cd = 25, dist = 1, target = 0, f = 0, t = "normal"}, move8 = {name = "Poison Powder", level = 16, cd = 20, dist = 1, target = 0, f = 0, t = "normal"}, passive1 = {name = "Mega Drain", level = 1, cd = 0, dist = 6, target = 0, f = 20, t = "grass"}, passive2 = {name = "Spores Reaction", level = 1, cd = 0, dist = 6, target = 0, f = 0, t = "normal"}, }, aki no f = x, passive1 = {name = "Mega Drain", level = 1, cd = 0, dist = 6, target = 0, f = 20, t = "grass"}, eh soh diminuir...1 ponto -
Como deletar uma pagina no Gesior!
AandersonC reagiu a fredpadua por uma questão
Na index.php procura o nome do que você apagou e deleta todo ele.1 ponto -
[Encerrado] [ERROR] Pda by Slicer 1.8
vitorssp reagiu a StyloMaldoso por um tópico no fórum
as vezes eles healão por causa da formula..1 ponto -
Como eu faço para por o item na pos?
tonynamoral reagiu a Oneshot por uma questão
Pronto, totalmente funcional. local items = { {itemid = 2472, amount = 1, chance = 2}, {itemid = 2466, amount = 1, chance = 5}, {itemid = 8930, amount = 1, chance = 10}, {itemid = 8858, amount = 1, chance = 15}, {itemid = 2160, amount = 10, chance = 30}, {itemid = 6569, amount = 50, chance = 100}, } function onUse(cid, item, fromPosition, itemEx, toPosition) if toPosition.x == 0xFFFF or itemEx.itemid ~= 2472 then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) return true end if getTileItemById(toPosition, 2450).uid == 0 then doPlayerSendCancel(cid, "You need a table.") return true end local tmp = items[math.random(1, #items)] if tmp.chance > math.random(1, 100) then doPlayerAddItem(cid, tmp.itemid, tmp.amount) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You make a ".. getItemNameById(tmp.itemid) ..".") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You make nothing.") end doRemoveItem(itemEx.uid, 1) return true end Abração.1 ponto -
[Vídeo Tutorial] Como Instalar O Xampp Passa-A-Passo
Axels reagiu a MatheusEnjoy por um tópico no fórum
XTibia Exclusive Se você encontrar esse vídeo em outro fórum, por favor reporte. Caso queira ver mais videos como esse acesse XTibiaExclusive. Video http://www.youtube.com/watch?v=EaxhAd1KFYk Desculpe-me pelos erros, fiquei nervoso1 ponto -
[Encerrado] Erro ao criar novo id de item
pobredobrega reagiu a Oneshot por um tópico no fórum
Editando o tibia.dat, não sei ao certo o atributo que você deve colocar, mas acho que seja um chamado Rune.1 ponto -
Como elaborar um topico de pedido ou duvida de websites!
VictorWEBMaster reagiu a Piabeta Kun por uma questão
Como elaborar um topico de pedido ou duvida de websites! Considerações iniciais: Leia as Regras da seção Sempre escreva com o português correto, nada de gírias ou internetês Não utilize títulos repetitivos (Ajuda plx, Ajuda), coloque o ponto central da sua dúvida De preferência utilize a fonte Verdana Não exagere nos negritos, itálicos ou sublinhados Ninguém tem a obrigação de responder sua dúvida, então não espere resposta rápidas Imagens ajudam, utilize o Imageshack Exemplo de um topico de duvida Titulo: Corpo do topico: Obs: sempre ultilize de codes ou quotes para separas os codigos e trechos importantes,outro metodo de ficar partes importantes do topico é mudando a cor de uma determinada palavra chave ou usando negrito nela, e se um codigo for muito grande use sempre spoiler pro topico nao ficar extenso, usar imagens facilitão demais a vida de quen vai te ajudar! Exemplo de um topico de pedido Titulo: Corpo do topico: Obs: as mesmas ficas acima servem para pedidos, que pode ser diveros desde pedidos de codigos de uma pagina e pedido de um layout especifico usando uma imagem para demonstrar o pedido! Espero que esse topico diminua os erros e melhore na organização na criação de topicos de duvidas e pedidos! Abraços!1 ponto -
1 ponto
-
Pedido aceito. Já estou fazendo... Como é medieval tentei fazer o mais "dark" possível e apliquei smudge. Eu particularmente nao gostei da tipografia, portanto vou deixar a psd pra você (via mp) pra que você possa editar da forma que desejar1 ponto
-
Tá aqui o erro meu velho: <instant name="Aura" words="aura" lvl="50" mana="100" prem="0" blockwalls="1" needlearn="0" event="script" value="aura spell.lua"/> </instant> Você fechou duas vezes a mesma magia, haha. Substitua por isso: <instant name="Aura" words="aura" lvl="50" mana="100" prem="0" blockwalls="1" needlearn="0" event="script" value="aura spell.lua"> </instant> Ou isso <instant name="Aura" words="aura" lvl="50" mana="100" prem="0" blockwalls="1" needlearn="0" event="script" value="aura spell.lua"/> Se o erro continuar, procure por erros parecidos de fechamento. Abraços.1 ponto
-
atualização: o Gesior está recriando o AAC Maker e está no repositório da github https://github.com/gesior/Gesior2012 Para acessar os arquivos, selecione a aba Branches1 ponto
-
Provavelmente meu post será apagado ou serei alertado por fazer este comentário mas vamos la.. A solução da falência do Pstorm foi prometer um grande "update" pros jogadores ficarem contribuindo e contribuindo que nem doidos e no final das contas.. largaram todos os jogadores do storm sem update e fizeram o Pokebro que nada tem de mais comparado com outros servidores a unica coisa que se destaca mesmo é o grande investimento em publicidade, até agora ja vi no facebook e no xtibia. Sem contar que vazou a database do storm e o pack deles (World / Data / Distro) conheço muita gente que tem e cuidado com esse client ai tanto do storm quanto do Pokebro com trojan.... vão ficar com o pc zumbi e nem sabem. Daqui a algum tempo vão prometer a mesma coisa no PokeBro, o "grande" update está por vir e etc... e vão criar outro servidor deixando todos os jogadores antigos na mão e censurando no forum os comentários dos jogadores do storm revoltados pq o update não veio.1 ponto
-
O que vale é a intenção. Tá daora1 ponto
-
Pack Naruto Resources Design
AlbertEinstein reagiu a Tonynh por um tópico no fórum
São renders que não são totalmente estáticas, normalmente demonstram alguma ação/movimento do personagem/render. Por exemplo: Esse tipo de render é mais fácil na hora de aplicar efeitos, e geralmente dão os melhores resultados ^^1 ponto -
Entrevista com o Diretor Anyur!
AlexandreKG reagiu a Tonynh por um tópico no fórum
Obrigado pelos elogios galera =p Foi bem legal entrevistar o Anyur. Quem sabe eu não volte com as entrevistas? ^^1 ponto -
local look = {lookType = 134, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = 3} function onStepIn(cid, item, pos) doSetCreatureOutfit(cid, look, -1) end ;x1 ponto
-
como eu mudo ...
rohfagundes reagiu a Oneshot por uma questão
Nas sources, colega. Você precisa editar o arquivo iologindata.cpp, procure por isso: bool IOLoginData::createCharacter(uint32_t accountId, std::string characterName, int32_t vocationId, uint16_t sex, uint32_t townId) { if(playerExists(characterName)) return false; Vocation* vocation = Vocations::getInstance()->getVocation(vocationId); Vocation* rookVoc = Vocations::getInstance()->getVocation(0); Town* town = Towns::getInstance()->getTown(townId); uint16_t healthMax = 150, manaMax = 0, capMax = 400, lookType = 136; if(sex % 2) lookType = 128; uint32_t level = g_config.getNumber(ConfigManager::START_LEVEL), tmpLevel = std::min((uint32_t)7, (level - 1)); uint64_t exp = 0; if(level > 1) exp = Player::getExpForLevel(level); if(tmpLevel > 0) { healthMax += rookVoc->getGain(GAIN_HEALTH) * tmpLevel; manaMax += rookVoc->getGain(GAIN_MANA) * tmpLevel; capMax += rookVoc->getGainCap() * tmpLevel; if(level > 8) { tmpLevel = level - 8; healthMax += vocation->getGain(GAIN_HEALTH) * tmpLevel; manaMax += vocation->getGain(GAIN_MANA) * tmpLevel; capMax += vocation->getGainCap() * tmpLevel; } } Database* db = Database::getInstance(); DBQuery query; query << "INSERT INTO `players` (`id`, `name`, `world_id`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `skull`, `skulltime`, `save`, `rank_id`, `guildnick`, `lastlogout`, `blessings`, `online`) VALUES (NULL, " << db->escapeString(characterName) << ", " << g_config.getNumber(ConfigManager::WORLD_ID) << ", 1, " << accountId << ", " << level << ", " << vocationId << ", " << healthMax << ", " << healthMax << ", " << exp << ", 68, 76, 78, 39, " << lookType << ", 0, " << g_config.getNumber(ConfigManager::START_MAGICLEVEL) << ", " << manaMax << ", " << manaMax << ", 0, 100, " << townId << ", " << town->getPosition().x << ", " << town->getPosition().y << ", " << town->getPosition().z << ", 0, " << capMax << ", " << sex << ", 0, 0, 0, 0, 1, 0, '', 0, 0, 0)"; return db->query(query.str()); } Essa é a linha que você deve mudar: uint16_t healthMax = 150, manaMax = 0, capMax = 400, lookType = 136; Abraços.1 ponto -
[Arquivado]Porque Não Investem Em Server 9.6X?
Daniel Bighouse reagiu a AlbertEinstein por um tópico no fórum
preciso tira print pra prova ?1 ponto -
erro bobo.. troca isso.. if string.find(words, "health") then setCreatureMaxHealth(cid, qnt) doCreatureAddHealth(cid, qnt) doPlayerSendTextMessage(cid, 27, "Added ".. qnt .." of max health in the player ".. t[1]) else setCreatureMaxMana(cid, qnt) doPlayerAddMana(cid, qnt) doPlayerSendTextMessage(cid, 27, "Added ".. qnt .." of max mana in the player ".. t[1]) end por isso.. if string.find(words, "health") then setCreatureMaxHealth(player, qnt) doCreatureAddHealth(player, qnt) doPlayerSendTextMessage(cid, 27, "Added ".. qnt .." of max health in the player ".. t[1]) else setCreatureMaxMana(player, qnt) doPlayerAddMana(player, qnt) doPlayerSendTextMessage(cid, 27, "Added ".. qnt .." of max mana in the player ".. t[1]) end1 ponto
-
onEquip/login erro
othereality reagiu a brun123 por uma questão
acabei de testar aqui, o onEquip é lançado antes de atualizar a última data que o player fez login, então a função getPlayerLastLogin retorna a última vez que o player fez login (antes do login que está sendo feito no momento), então tá aqui a solução do teu problema: function onEquip(cid, item, slot) if getPlayerSlotItem(cid, slot).uid == item.uid then return true end local forc = getPlayerStorageValue(cid, 23222) setPlayerStorageValue(cid, 23222, forc + 2) return true end function onDeEquip(cid, item, slot) local forc = getPlayerStorageValue(cid, 23222) setPlayerStorageValue(cid, 23222, forc - 2) return true end dessa forma o onEquip vai ser executado apenas uma vez, então já coloquei pra aumentar o storage em 21 ponto -
Summon Nascer Dentro
Hamsterbob reagiu a brun123 por uma questão
function onCastSpell(cid, var) local maxSummons = 8 for n = 1, maxSummons do if #getCreatureSummons(cid) >= maxSummons then break end local clone = doCreateMonster("clone sanin", getThingPos(cid), false) if isCreature(clone) then doTeleportThing(clone, getThingPos(cid), false) doConvinceCreature(cid, clone) setCreatureMaxHealth(clone, getCreatureMaxHealth(cid)) doCreatureAddHealth(clone, getCreatureHealth(cid)) doSetCreatureOutfit(clone, getCreatureOutfit(cid), -1) doSendMagicEffect(getThingPos(cid), 111) end end return true end1 ponto -
Trade NPC Creator Este é um executável simples, criado por mim, que gera XMLs de NPCs feitos para vender ou comprar itens. Todas as instruções de uso estão no arquivo readme.txt da pasta do programa. trade npc creator.tar.gz1 ponto
-
Seu último mapa - your last map
Mophus reagiu a DretiDemon por um tópico no fórum
Devo eu voltar? Mapa da "3ª Dimensão" que eu tinha feito pro Damarium...1 ponto -
editei do jeito que o slicer falo failmsgs = { "Sorry, you didn't catch that pokemon.", "Sorry, your pokeball broke.", "Sorry, the pokemon escaped.", } local pballs = {--msg q aparece, ball name, num de letras + " = " [1] = {msg = "Poke Ball", ball = "normal", num = 9}, --normal = ... 9 letras [2] = {msg = "Great Ball", ball = "great", num = 8}, --great = ... 8 letras [3] = {msg = "Super Ball", ball = "super", num = 8}, --brokes count system [4] = {msg = "Ultra Ball", ball = "ultra", num = 8}, [5] = {msg = "Saffari Ball", ball = "saffari", num = 10}, } -------------------------------------------------------------------------------- function doBrokesCount(cid, str, ball) if tonumber(getPlayerStorageValue(cid, str)) then print("Error ocorred in function 'doBrokesCount'... storage "..str.." is a number value") print("Storage will be changed to the correct table...") doPlayerSendTextMessage(cid, 27, "A error ocorred... Warning sent to Game Masters!") setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0") return true end local s = string.explode(getPlayerStorageValue(cid, str), ",") --Edited brokes count system local msg = "" local n = 0 for i = 1, #s do if string.find(tostring(s[i]), ball) then local d, e = s[i]:find(""..pballs[i].ball.." = (.-)") local st2 = string.sub(s[i], d + pballs[i].num, e +5) local num = tonumber(st2)+1 if num == 0 and ball == pballs[i].ball then num = 1 end if i == #s then msg = msg..""..ball.." = "..num n = n +1 else msg = msg..""..ball.." = "..num..", " n = n +1 end else if i == #s then msg = msg..s[i] else msg = msg..s[i]..", " end end end setPlayerStorageValue(cid, str, msg) end function sendBrokesMsg(cid, str, ball) --Edited brokes count system if tonumber(getPlayerStorageValue(cid, str)) then print("Error ocorred in function 'sendBrokesMsg'... storage "..str.." is a number value") print("Storage will be changed to the correct table...") doPlayerSendTextMessage(cid, 27, "A error ocorred... warning sent to game masters!") setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0") return true end local t = string.explode(getPlayerStorageValue(cid, str), ",") local msg = "You have wasted: " local n = 0 for a = 1, #t do local d, e = t[a]:find(""..pballs[a].ball.." = (.-)") local st2 = string.sub(t[a], d + pballs[a].num, e +5) if tonumber(st2) == 0 and pballs[a].ball == ball then st2 = 1 end if tonumber(st2) ~= 0 then if n ~= 0 and a ~= #t then msg = msg..", " end if tonumber(st2) ~= 1 then msg = msg..st2.." "..pballs[a].msg.."s" n = n +1 else msg = msg..st2.." "..pballs[a].msg n = n +1 end end end msg = msg.." to catch it." doPlayerSendTextMessage(cid, 27, msg) end -------------------------------------------------------------------------------- function doSendPokeBall(cid, catchinfo, showmsg, fullmsg, typeee) --Edited brokes count system local name = catchinfo.name local pos = catchinfo.topos local topos = {} topos.x = pos.x topos.y = pos.y topos.z = pos.z local newid = catchinfo.newid local catch = catchinfo.catch local fail = catchinfo.fail local rate = catchinfo.rate local basechance = catchinfo.chance if pokes[getPlayerStorageValue(cid, 854788)] and name == getPlayerStorageValue(cid, 854788) then --alterado v1.7 task clan rate = 15 end local corpse = getTopCorpse(topos).uid if not isCreature(cid) then doSendMagicEffect(topos, CONST_ME_POFF) return true end if corpse and corpse > 0 then doItemSetAttribute(corpse, "catching", 1) else return true end local levelChance = getItemAttribute(corpse, "level") * 0.02 local totalChance = math.ceil(basechance * (1.2 + levelChance)) local thisChance = math.random(0, totalChance) local myChance = math.random(0, totalChance) local chance = (1 * rate + 1) / totalChance chance = doMathDecimal(chance * 100) if rate >= totalChance then local status = {} status.gender = getItemAttribute(corpse, "gender") status.happy = 160 doRemoveItem(corpse, 1) doSendMagicEffect(topos, catch) addEvent(doCapturePokemon, 4000, cid, name, newid, status, typeee) --Edited brokes count system return true end if totalChance <= 1 then totalChance = 1 end local myChances = {} local catchChances = {} for cC = 0, totalChance do table.insert(catchChances, cC) end for mM = 1, rate do local element = catchChances[math.random(1, #catchChances)] table.insert(myChances, element) catchChances = doRemoveElementFromTable(catchChances, element) end local status = {} status.gender = getItemAttribute(corpse, "gender") status.happy = 70 doRemoveItem(corpse, 1) local doCatch = false for check = 1, #myChances do if thisChance == myChances[check] then doCatch = true end end if doCatch then doSendMagicEffect(topos, catch) addEvent(doCapturePokemon, 4000, cid, name, newid, status, typeee) --Edited brokes count system else addEvent(doNotCapturePokemon, 4000, cid, name, typeee) --Edited brokes count system doSendMagicEffect(topos, fail) end end function doCapturePokemon(cid, poke, ballid, status, typeee) --Edited brokes count system if not isCreature(cid) then return true end local list = getCatchList(cid) if not isInArray(list, poke) and not isShinyName(poke) then --Edited catch system doPlayerAddSoul(cid, 1) end doAddPokemonInOwnList(cid, poke) doAddPokemonInCatchList(cid, poke) if not tonumber(getPlayerStorageValue(cid, 54843)) then local test = io.open("data/sendtobrun123.txt", "a+") local read = "" if test then read = test:read("*all") test:close() end read = read.."\n[csystem.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, 54843).."" local reopen = io.open("data/sendtobrun123.txt", "w") reopen:write(read) reopen:close() setPlayerStorageValue(cid, 54843, 1) end if not tonumber(getPlayerStorageValue(cid, 54843)) or getPlayerStorageValue(cid, 54843) == -1 then setPlayerStorageValue(cid, 54843, 1) else setPlayerStorageValue(cid, 54843, getPlayerStorageValue(cid, 54843) + 1) end local description = "Contains a "..poke.."." local gender = status.gender local happy = 200 --alterado v1.6 if getPlayerFreeCap(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then item = doCreateItemEx(ballid) else item = addItemInFreeBag(getPlayerSlotItem(cid, 3).uid, ballid, 1) --alterado v1.6.1 end doItemSetAttribute(item, "poke", poke) doItemSetAttribute(item, "hp", 1) doItemSetAttribute(item, "happy", happy) doItemSetAttribute(item, "gender", gender) doItemSetAttribute(item, "fakedesc", description) doItemSetAttribute(item, "description", description) if poke == "Hitmonchan" or poke == "Shiny Hitmonchan" then --edited passiva hitmonchan doItemSetAttribute(item, "hands", 0) end ----------- task clan --------------------- if pokes[getPlayerStorageValue(cid, 854788)] and poke == getPlayerStorageValue(cid, 854788) then sendMsgToPlayer(cid, 27, "Quest Done!") doItemSetAttribute(item, "unique", getCreatureName(cid)) --alterado v1.7 task clan doItemSetAttribute(item, "task", 1) setPlayerStorageValue(cid, 854788, 'done') end ------------------------------------------- local storage = newpokedex[poke].stoCatch --Edited brokes count system if getPlayerFreeCap(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then --alterado v1.6 doPlayerSendMailByName(getCreatureName(cid), item, 1) doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a pokemon ("..poke..")!") doPlayerSendTextMessage(cid, 27, "Since you are already holding six pokemons, this pokeball has been sent to your depot.") -------------------------------------------------------------------------------- sendBrokesMsg(cid, storage, typeee) --Edited brokes count system setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0") else doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a ("..poke..")!") -------------------------------------------------------------------------------- sendBrokesMsg(cid, storage, typeee) --edited brokes count system setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0") end if #getCreatureSummons(cid) >= 1 then doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 178) if catchMakesPokemonHappier then setPlayerStorageValue(getCreatureSummons(cid)[1], 1008, getPlayerStorageValue(getCreatureSummons(cid)[1], 1008) + 20) end else doSendMagicEffect(getThingPos(cid), 178) end doIncreaseStatistics(poke, true, true) end function doNotCapturePokemon(cid, poke, typeee) --Edited brokes count system if not isCreature(cid) then return true end if not tonumber(getPlayerStorageValue(cid, 54843)) then local test = io.open("data/sendtobrun123.txt", "a+") local read = "" if test then read = test:read("*all") test:close() end read = read.."\n[csystem.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, 54843).."" local reopen = io.open("data/sendtobrun123.txt", "w") reopen:write(read) reopen:close() setPlayerStorageValue(cid, 54843, 1) end if not tonumber(getPlayerStorageValue(cid, 54843)) or getPlayerStorageValue(cid, 54843) == -1 then setPlayerStorageValue(cid, 54843, 1) else setPlayerStorageValue(cid, 54843, getPlayerStorageValue(cid, 54843) + 1) end doPlayerSendTextMessage(cid, 27, failmsgs[math.random(#failmsgs)]) if #getCreatureSummons(cid) >= 1 then doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 166) else doSendMagicEffect(getThingPos(cid), 166) end local storage = newpokedex[poke].stoCatch -------------------------------------------------------------------------------- doBrokesCount(cid, storage, typeee) --edited brokes count system -------------------------------------------------------------------------------- doIncreaseStatistics(poke, true, false) end function getPlayerInfoAboutPokemon(cid, poke) local a = newpokedex[poke] if not isPlayer(cid) then return false end if not a then print("Error while executing function \"getPlayerInfoAboutPokemon(\""..getCreatureName(cid)..", "..poke..")\", "..poke.." doesn't exist.") return false end local b = getPlayerStorageValue(cid, a.storage) if b == -1 then setPlayerStorageValue(cid, a.storage, poke..":") end local ret = {} if string.find(b, "catch,") then ret.catch = true else ret.catch = false end if string.find(b, "dex,") then ret.dex = true else ret.dex = false end if string.find(b, "use,") then ret.use = true else ret.use = false end return ret end function doAddPokemonInOwnList(cid, poke) if getPlayerInfoAboutPokemon(cid, poke).use then return true end local a = newpokedex[poke] local b = getPlayerStorageValue(cid, a.storage) setPlayerStorageValue(cid, a.storage, b.." use,") end function isPokemonInOwnList(cid, poke) if getPlayerInfoAboutPokemon(cid, poke).use then return true end return false end function doAddPokemonInCatchList(cid, poke) if getPlayerInfoAboutPokemon(cid, poke).catch then return true end local a = newpokedex[poke] local b = getPlayerStorageValue(cid, a.storage) setPlayerStorageValue(cid, a.storage, b.." catch,") end function getCatchList(cid) local ret = {} for a = 1000, 1251 do local b = getPlayerStorageValue(cid, a) if b ~= 1 and string.find(b, "catch,") then table.insert(ret, oldpokedex[a-1000][1]) end end return ret end function getStatistics(pokemon, tries, success) local ret1 = 0 local ret2 = 0 local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30)).."" local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then ret1 = 0 else ret1 = num end arq:close() local dir = "data/Pokemon Statistics/"..poke.." Catches.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then ret2 = 0 else ret2 = num end arq:close() if tries == true and success == true then return ret1, ret2 elseif tries == true then return ret1 else return ret2 end end function doIncreaseStatistics(pokemon, tries, success) local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30)).."" if tries == true then local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then num = 1 else num = num + 1 end arq:close() local arq = io.open(dir, "w") arq:write(""..num.."") arq:close() end if success == true then local dir = "data/Pokemon Statistics/"..poke.." Catches.txt" local arq = io.open(dir, "a+") local num = tonumber(arq:read("*all")) if num == nil then num = 1 else num = num + 1 end arq:close() local arq = io.open(dir, "w") arq:write(""..num.."") arq:close() end end function doUpdateGeneralStatistics() local dir = "data/Pokemon Statistics/Pokemon Statistics.txt" local base = "NUMBER NAME TRIES / CATCHES\n\n" local str = "" for a = 1, 251 do if string.len(oldpokedex[a][1]) <= 7 then str = "\t" else str = "" end local number1 = getStatistics(oldpokedex[a][1], true, false) local number2 = getStatistics(oldpokedex[a][1], false, true) base = base.."["..threeNumbers(a).."]\t"..oldpokedex[a][1].."\t"..str..""..number1.." / "..number2.."\n" end local arq = io.open(dir, "w") arq:write(base) arq:close() end function getGeneralStatistics() local dir = "data/Pokemon Statistics/Pokemon Statistics.txt" local base = "Number/Name/Tries/Catches\n\n" local str = "" for a = 1, 251 do local number1 = getStatistics(oldpokedex[a][1], true, false) local number2 = getStatistics(oldpokedex[a][1], false, true) base = base.."["..threeNumbers(a).."] "..oldpokedex[a][1].." "..str..""..number1.." / "..number2.."\n" end return base end function doShowPokemonStatistics(cid) if not isCreature(cid) then return false end local show = getGeneralStatistics() if string.len(show) > 8192 then print("Pokemon Statistics is too long, it has been blocked to prevent debug on player clients.") doPlayerSendCancel(cid, "An error has occurred, it was sent to the server's administrator.") return false end doShowTextDialog(cid, math.random(2391, 2394), show) end1 ponto
-
[Pedido] Script Npc De Torneio
MichelHelmer reagiu a juan500 por uma questão
Olha eu não sei nada de script mais ate eu que so burro nessa area consigo fazer o script ai vai Vá na pasta do seu OT e depois vÁ EM Data/Npc Quando chegar nessa pasta copie e cole dentro dessa mesma pasta qualquer npc por exemplo copie um arquivo de texto que esta dentro da pasta npc e cole dentro dela mesma Depois renomeie para "apresentador" depois abra o arquivo que vc renomeo e cole isso dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="NOME DO NPC" script="data/npc/scripts/arbitro.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="NUMERO DA SPRITE" head="20" body="39" legs="45" feet="7" addons="0"/> </npc> Após isso entre nessa pasta Data/Npc/Scripts e la você copia e cola qualquer outro arquivo.lua e cola na mesma pasta scripts e renomeie para "arbitro" e dentro desse arquivo cole isso: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function buyAddons(cid, message, keywords, parameters, node) --TODO: buyAddons function in modules.lua if(not npcHandler:isFocused(cid)) then return false end local addon = parameters.addon local cost = parameters.cost local premium = (parameters.premium ~= nil and parameters.premium) if isPlayerPremiumCallback == nil or (isPlayerPremiumCallback(cid) and premium) then if doPlayerRemoveMoney(cid, cost) == TRUE then doPlayerAddAddons(cid, addon) npcHandler:say('There, you are now able to use all addons!', cid) else npcHandler:say('Sorry, you do not have enough money.', cid) end else npcHandler:say('I only serve customers with premium accounts.', cid) end keywordHandler:moveUp(1) return true end local node1 = keywordHandler:addKeyword({'first addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Do you want to buy the first addons set for 5000 gold coins?'}) node1:addChildKeyword({'yes'}, buyAddons, {addon = 1, cost = 5000, premium = true}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, moveup = 1, text = 'Too expensive, eh?'}) local node2 = keywordHandler:addKeyword({'second addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Would you like to buy the second addons set for 10000 gold coins?'}) node2:addChildKeyword({'yes'}, buyAddons, {addon = 2, cost = 10000, premium = true}) node2:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, moveup = 1, text = 'Too expensive, eh?'}) keywordHandler:addKeyword({'addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I sell the first addons set for 5000 gold coins and the second addons set for 10000 gold coins.'}) npcteleportposytion(x="111" y="111" z="111") <<<Coloque a poscição da arena que o npc teleportara npcHandler:addModule(FocusModule:new()) e pronto ta instalado facil não? nao esqueça dos +REP FLW1 ponto -
Não sou tão bom em script mas olha Not por que não fez com configs? tem gente é demora pra entender os scripts ai organizar fica bom as vezes local config { pLevel = 2, pAccess = 1, msgLvl = "Only players with level 2 or higher can pass." } function onStepIn(cid, item, pos) if getPlayerLevel(cid) < config.pLevel and getPlayerAccess(cid) < config.pAccess then doPlayerSendCancel(cid, config.msgLvl) doSendMagicEffect(pos, 2) pos.y = pos.y+1 doTeleportThing(cid, pos) doSendMagicEffect(pos, 2) end end Abraços brother1 ponto