Ir para conteúdo

yurez700

Campones
  • Total de itens

    26
  • Registro em

  • Última visita

Sobre yurez700

Informações

  • Forma que conheci o xTibia
    Sites de Busca
  • Sou
    Não Informado

Últimos Visitantes

2441 visualizações

yurez700's Achievements

  1. Boa iniciativa cara ótima lista vou ver se eu pego alguns muito obrigado ;] que bom que trouxe para o xtibia e colocou os devidos créditos é assim que se faiz ^^
  2. Fikou perfeito a nova skin gostei muito a equipe xtibia ta f.o.d.a ein ;X
  3. Uia tomare que de tudo certo ^^ espero que fike bem melhor que antes xPP
  4. Aew Cara Parabens Pelo Trabalho Está Otimo Nota : 10
  5. yurez700

    Map Generator

    Map Generator Venho aqui trazer um tutorial que muitos mappers irão gostar. Com esse tutorial você "randomiza" chãos de cave, paredes, chãos de gramas, etc... "Mas bruxo não existe um programa que faz isso?" Existe, porém com esse programa você terá que arrumar tudo que você não fez com ele, imagina ter que fazer todas as caves de novo? Toda a grama de novo? Com esse tutorial você mudará todo o seu map de uma só vez. Primeiro, como sempre, os créditos: 73% - Cell(otfans) por fazer esse incrivel programa e o tutorial em inglês. 27% - Bruxo, por traduzir todo o tutorial, re-upar o programa com link protegido, arrumar algumas coisas no tutorial e adicionar outras coisas. Primeiro: Download dos programas: http://lix.in/5e8b70 As sourcers estão incluídas, então se tiver bug você mesmo poderá arrumar. Mas para mexer nas sourcers você precisará do Net Framework 2.0 Bom, note que tem dois programas, um é o Item Generator e outro é o Ground Generator, não preciso explicar para que eles servem né? Segundo: - Recomendável usar em maps 7.9, e não é recomendado usar em mapas 7.5 para baixo. - Faça uma cópia do seu map sempre que for fazer algo desse tipo. - Agora salve seu map em formato .otx, ponha o nome dele e .otx no final, isso pode demorar um pouco, o meu map demorou 40 minutos e ele tem 20 mb em otbm. - Ponha o seu mapa em formato otx no mesmo diretório dos programas. Ground Generator: - Sempre use o ground generator primeiro. - O novo map será criado com o nome 'new_map.otx'. - Se você não quiser randomizar os items, só salve seu map de novo em otbm. Item Generator: - SOMENTE use em versões 7.9 para cima. - Renomeie o 'new_map.otx' para 'map.otx' e rode o Item Generator. - Depois que terminar de rodar, abra seu map e veja os resultados! - Depois salve-o em formato otbm de novo. Lista dos Tiles e Items usados no Generator: Ground Generator: 101 - Tile da Terra que não dar pra caminhar. Converte em 5711 a 5726(15% de chance). Veja antes e depois. 4608 - Tile da Água. Converte em 4608 a 4625(72% de chance). Veja antes e depois. 4757 - Solo pedregoso. Converte em 4405 a 4421(88% de chance). Veja e depois. 4756 - Grama. Converte em 4526 a 4541. Veja antes e depois. Item Generator: Nos tiles 351 a 355(chão de caverna), pedras pequenas serão adicionadas(14% de chance). Para ver como fica, clique aqui. Nos tiles 4405 a 4421(chão de pedra), pedras pequenas serão adicionadas(15% de chance). Nos tiles 356 OU 371(Paredes de caverna horizontal <->), serão adicionado musgos e outras coisas. Para ver como fica, clique aqui. Nos tiles 358 ou 373(Paredes de caverna vertical), serão adicionado musgos e outras coisas. Nos tiles 4526 a 4541(Grama), serão adicionados novos items de gramas. SS's retiradas do tutorial antigo. Observação: O Map Generator não checa se tem uniqueid ou actionid, pode acabar removendo a action/uniqueid. O Map Generator só troca o item em lugares onde o chão esteja sem nada por cima, evitando bugs indesejados. Créditos:73% - Cell 27% - Bruxo
  6. Breve Novo Update [7.6.2] Update 7.60 em Donwload (Abaixo) Striker Server - Desenvolvendo e Trabalhando para um server melhor ! Protocolo : 7.6 LINK DO OTSERVER > http://lix.in/58f354 LINK DO MAPEDITOR DO OTSERVER > http://lix.in/3b849f Bugs Corrigidos Pessoal se v6s quiserem mas coisas so falarem q eu adiciono e depois posto aki !!! é NoIS Fiz Tudo SozinHo editei mapa todo !!!!!!!!! .... Quest 100 % ta mto show gente ! Pessoal ja adicionei o que era pra Adicionar agora so faltas v6s baixarem !! Casas Ok Quests Ok * Portas Ok Npc Ok Monster Ok Skills Ok Ml Ok Novas Magias Super Ok Novas Magias : Exevo gran Mas Mort Exevo gran mas Physical Utani Sorcerer Hur Utani Knight Hur Utani Pally Hur Utani Druid Hur Exori Pum Exevo gran mas Sonar ........ Mto + mtas novas magias =-=-=-==--=-=-= Commands !giveexp EXP Player name Ex : !giveexp 999999 Striker Sky /t > Vai ao Templo /B > Fala em Vermelho /o > Fala em Branco !exp > ve a exp q falta para o Prox lvel !buyhouse > Compra Casa > ACIMA DE LV 15 xD o Resto v6s veem la ! -------------------------------------------------------------------------- Servidor Sério .. por enquanto sem bug , pelo menos no >>Exe<< Features : Tudo que tem o Tibia World... + Mapa Novo > Nunca Usado na maioria dos Servidores Houses > Nao Adicionei mtas .. mas eu estou arrumando .. várias Com Area Premmium ainda configurada .. Spawn ja Configurados Acc Maker > Pronto > 1/1 < Sem Bug ... -------------------------------=====--------------------------- Falando sobre ConFig.Lua > Duvidas > MSN < blz Se for usar o servidor Configuraçoes para rodar seu server 1º Para Rodar o servidor e naum dar Connection Timeout Abra o Config.Lua e procure por : -- ip -- the ip the server should redirect too -- don't remove "" ip = "201.7.28.67" << COLOke Seu Ip se naum souber > http://meuip.com.br -------------------- Configurando Rates do Servidor : Procure por : -- sorcerers and druids MP/HP -- {mp,hp,promotedmp,promotedhp,timemp,timehp} sd = {"520","520","540","540","1","1"} -- MP\hp pally pa = {"515","515","540","540","1","1"} -- kina ki = {"515","515","540","540","1","1"} -- PVP Team Acc 1/1 and 2/2 team = "no" -- how x Skills of tibia global? -- 1 = 1x speedskills = 350 -- how x ml of tibia global? -- 1 = 1x speedml = 45 -- Die Percent -- 1 = 1% diepercent = 8 -- how x exp of tibia global? -- 1 = 1x multiexp = 30 -- how many unjustified to be banned? pkban = 10 *Configure de acordo com sua vontade* ------------------ CONFIGURANDO FORÇA DE ATAKE DOS KNIGHT E PALLY--- Procure Por : -- Formulas de Attack com qualquer arma -- Forms of attacks with any weapon -- Full Attack,Balanced,Full Defense attackforms = {"10.0", "5.0", "2.5"} -- Formulas de Defesa do Shield (NÃO INCLUI ARMADURA) -- Forms of Defense of the Shield (NO IS INCLUDED ARMOR) -- Full Attack,Balanced,Full Defense defenseforms = {"10.5", "5.7", "2.3"} -- Damage Form/x -- Knight, Paladin -- Default - {"10.0","1.5"} dmg = {"5.0","1.5"} ------------------------------------===-------- sKY ot Agora Configurando Voc -- Vocations promoteds Names vocationsPromoteds = {"a master sorcerer", "a elder druid", "a royal paladin", "a elite knight"} *CONFIGURE DE ACORDO COM O QUE QUISER * ------------------------------------------------------------------------ Code >: Templo Principal (CitizenSkyCty = {"501","515","7"} < Nao há necessidade de Configurar o Acc Maker ! So é Rodar OtServr Depois !! Divirtam-se Lembrando ! que esta versao é apenas Test e eu ainda estou arrumando Tudo !!! Striker Ot's uma revoluçao em desenvolvimento e tecnologia Striker Ot's® Direitos Reservados Thx Very Much !! Enjoy !! =----------------=-=-=-=---------- O Servidor esta zipado pelo -(Winrar)- - se nao tiver baixa nesse site www.baixaki.com < Procure por WInrar ! USANDO SAVE FILE .COM ( DOWNLOAD DO OT LA NO TOPO ) LiNk dAS sOurCeS > http://www.savefile.com/files/266465
  7. cara muito rox conde muito kabulozo voce eo blaster sao prof ein xD Nota:10
  8. OTServ - Criando Primeiramente, você deve baixar o binário de um servidor, que pode ser encontrado na seção downloads de otserv. Após baixá-lo, extraia os arquivos em qualquer local de seu HD, e abra o arquivo config.lua (que se encontra na pasta matriz do servidor) com algum editor de textos (Bloco de notas, por exemplo). Explicando variáveis do config.lua; Citação: Lembre-se que, dependendo da versão do servidor, poderá haver configurações a mais, as citadas acima são apenas as mais usadas em todos os servidores. Cálculos; Em alguns casos, são utilizados cálculos matemáticos, que nas linguagens, são: + (mais), - (menos), / (dividir) e * (vezes). Repare o seguinte exemplo: Citação: No caso, o script calculará 60 * (vezes) 1000, e o resultado, no caso, 60000, será o tempo que a variável irá setar. Mas, se você setar na variável o valor 60000, funcionará do mesmo modo. Após configurar esse arquivo, você já pode abrir seu servidor para testá-lo. Porém, você ainda pode fazer várias alterações nele, como criar novos monstros, magias, runas, e até NPCs! Para que isso se torne realidade, tudo o que você tem de fazer é acessar as outras seções de nosso fórum (organizadas especialmente para fácil acesso), e procurar tutoriais. Em caso de falta de DLLs, visite sites como dll-files.com e baixe-as normalmente. ---------------------------------------- Possíveis erros; Não consegue conectar? Se você não estiver conseguindo entrar no seu servidor, é porque provavelmente a porta você setou na variável "port" (padrão 7171) está bloqueada para acesso remoto. Para desbloquea-la é simples. Vá até o menu Iniciar > Configurações > Painel de controle e clique no item Firewall do windows. Se você achar conveniente, desative-o por completo, e tente acessar novamente o servidor, porém, se quiser deixar seu computador com a proteção do programa, faça o seguinte: Vá até a aba Exceções, e clique no botão Adicionar Porta. No campo Nome digite Tibia (ou qualquer outro) e no campo Porta, 7171 (porta setada no config.lua). Após isso nenhuma alteração é necessária, clique em Ok. Recomenda-se desativar também qualquer anti-virus ou firewall opcional, para que se tenha acesso total a porta. Tente novamente e veja os resultados. Se você utiliza router, recomendo que visualize o seguinte site: http://www.portforward.com/english/applica.../Tibiaindex.htm Ele possue um banco de dados com muita informação, escolha o modem que você utiliza e siga o tutorial. Problemas com scripts? Caso o seu servidor apresente qualquer tipo de "LUA error", é porque você adicionou/modificou algo que não é suportado pela linguagem LUA, ou mal uso do mesmo. Para resolver o problema é simples; basta visualizar qual é a linha que está ocorrendo tais erros, e verificar se o script segue o padrão da linguagem. Se você não obter nenhum sucesso, visite nossa seção de suporte, e peça a ajuda que necessitar, óbviamente seguindo os padrões citados no início do tópico. Problemas com websites? Geralmente todo tipo de erro relacionado com linguagens se baseia no fato de acessar a linha que o aplicativo indica, e verificar se está correto. Na linguagem PHP, que é utilizada para a criação de web sites, não é diferente. Normalmente os web sites vem com um arquivo específico que possuem todas as variáveis globais, que é aonde você deve configurar. Para que os outros possam acessar seu web site, você deve possuir um host ou o apache instalado em seu computador. Para mais informações, visite a seção de web sites: http://www.xtibia.com/forum/index.php?showforum=221 Outros problemas? Não hesite em utilizar a seção de suporte que o fórum possue, e espere algum membro disposto à ajudar, responder sua dúvida. http://www.xtibia.com/forum/index.php?showforum=221 Não Sabe Entrar No Seu Servidor ? Aki Esta Uns Dos Tutoriais Que Eu Postei Para Quem Não Sabe Mexer Ou Entrar No Seu Otserv http://www.xtibia.com/forum/index.php?showtopic=45167 Tutoriais Aprovados Para Seu Otserv: Conhecendo Seu Map Editor - By Andrew_ Super Tutorial Sobre Npc - By Heitorzin Aprenda A Compilar Um Otserv - By brfwolf Aprenda A Fazer Novas Quests - By Rafix Novo Tipo De Area De Trainer - By Addict Tutorial Sobre Monstros - By tibiaa4e Criando Site Em Php! - By Rikezenho Créditos:96% Magus,4% Yurez700
  9. PHP Créditos:NumaBoa Olá Galera estou aki para repassar um dos Tópicos que usei para aprender sobre PHP( :laughing: ), ou deixar um coment aki \o/... :wink: Vamos lá entao: O PHP é usado em larga escala como uma linguagem de script para vitaminar sites dinâmicos. Antes de começar com o PHP, é bom explicar primeiro os conceitos de um site dinâmico. Quando a Internet começou a se tornar uma coisa 'normal' para as pessoas 'normais', a maior parte da web era constituída por sites estáticos. Isto significa que não havia absolutamente nenhuma interação entre cliente e servidor, exceto as requisições HTTP para se obter a página desejada. A Internet evoluíu e novas possibilidades foram sendo descobertas. Desta forma, nasceu a necessidade de interação com o usuário. Algumas pessoas muito legais resolveram desenvolver algumas técnicas como CGI, módulos servidores e motores de script. E, já que estão aí (e "de grátis"), nada mais justo do que utilizá-las! A Internet mudou e continua mudando. É provável que você já tenha se dado conta dos milagres da imensa quantidade de dados à sua disposição (selecionados e ordenados como se nada houvesse), das pesquisas de opinião (muitas vezes devassando a sua intimidade) e do fenômeno chamado comércio eletrônico. Logicamente, você não quer ficar de fora e, para fazer parte da turma da interatividade, o PHP é A ferramenta! Tem gente que odeia o PHP - eu não. Há muitos anos acompanho o desenvolvimento desta linguagem e a uso juntamente com o banco de dados MySQL em máquinas Linux com servidor Apache. Sem saber, faz tempo que sou uma das integrantes do movimento LAMP (Linux-Apache-MySQL-PHP), tão em moda nos dia de hoje. PHP significa Php Hypertext Preprocessor o que, na língua pátria, é Preprocessador de Hipertexto Php. Originalmente, o Php significava Personal HomePage. À medida que o PHP foi adquirindo maior funcionalidade e representando um papel mais sério na área de desenvolvimento web, o nome precisou ser melhorado para indicar corretamente sua aplicação: preprocessador de hipertexto. Este tutorial se destina a iniciantes, com pouca ou nenhuma experiência em programação, e não há melhor maneira de começar do que aprendendo a programar em PHP. É uma linguagem de fácil aprendizado, de resultados rápidos e consistentes. A melhor forma de aprender é ir trabalhando com cada um dos tópicos deste tutorial, na ordem em que forem sendo apresentados. Tópicos mais avançados geralmente possuem elementos que foram explicados em tópicos anteriores. O que é preciso para começar: Basicamente, um editor de texto decente que permita criar textos em ASCII puro - sem elementos de formatação. Esqueça o Word ou outro editor mais cheio de nove horas. Pessoalmente, prefiro o editor de texto TextPad que permite destacar a sintaxe em cores, tem a versão em Português do Brasil e vem configurado para uma porção de linguagens de programação, inclusive para o PHP. Também é necessário ter um interpretador PHP para desenvolver e testar os scripts. A maioria das hospedagens oferece este serviço mas, se você quiser rodar o PHP localmente, terá que fazer o download do motor do PHP no site oficial do projeto e instalá-lo na sua máquina. Para poder testar seus scripts num ambiente web você vai precisar de um servidor web. Novamente, este é um serviço que todas as hospedagens oferecem e você não precisa se preocupar com a instalação e a configuração. Caso você tenha optado por uma instalação local, então recomendo o Apache, que pode ser obtido gratuitamente no site oficial do Apache.Este servidor web roda em qualquer tipo de sistema operacional *nix (Unix e todas as versões do Linux), além de possuir uma porta Win32. Leia com cuidado as recomendações de instalação para não se estressar sem necessidade. Mas a maioria das pessoas, irá usar o Easy PHP 1-7 (disponível para download aki no forum ;P), ou o OTstraid, ou o Xumpp... Finalmente, é imprescindível que você tenha um bom conhecimento de HTML. Se não for este o seu caso, é provável que você pire. Se você preencheu todos os requisitos, então está pronto para entrar no mundo do PHP. Providencie um caminhão-tanque de café, um balde de senso de humor e uma dose de perseverança nunca antes imaginada pela humanidade... e comece a hackear Pare um pouco, estique os braços, e vamos retomar ^^ O mais Simples dos Scripts: Nesta lição, logo de cara, vamos partir para um script. A primeira coisa é verificar se o software instalado está funcionando corretamente. Para isto, vamos fazer um pequeno teste. Pegue seu editor de texto favorito e digite o seguinte: <?php phpinfo(); ?> Salve este arquivo como info.php e faça o upload do arquivo para o diretório raiz do seu site. Chame o arquivo no seu navegador (http://www.seusite.com.br/info.php). O que é que você vê? Se não estiver vendo nada, das duas, uma: ou seu serviço de hospedagem não dá suporte ao PHP ou alguma coisa não está legal com a configuração PHP/servidor web do serviço. Na segunda hipótese, Entre em contato com a hospedagem e peça esclarecimentos. Basta dizer que você colocou uma página PHP simples no diretório raiz que não está dando leitura. Caso você seja um daqueles corajosos que resolveu instalar servidor web e PHP na máquina em casa, salve o arquivo info.php no diretório raiz do seu servidor web. Depois abra seu browser e digite 'http://localhost/info.php', sem as aspas, é claro. Se não aparecer nada ou der erro, verifique o que está acontecendo com a dupla dinâmica Apache/PHP ou consulte a FAQ dos sites onde você fez o download do software. Agora, se você estiver vendo uma pá de informações sobre o PHP, parabéns! Você acaba de rodar com sucesso seu primeiro script. Bem, então vamos às explicações (meio ######, né? mas vá se acostumando ). Quando escrevemos um script PHP, SEMPRE começamos com . Existem algumas outras formas de indicar o início e o fim de um script como, por exemplo, , porém a usada no exemplo é a mais correta e mais comum. Portanto, esta será a forma utilizada em todo o tutorial. Este treco estranho no meio, phpinfo(), é apenas uma função nativa do PHP. Não se preocupe, vou explicar o que são funções mais adiante. No momento, tudo o que você precisa saber é que esta função caça um monte de informações a respeito da configuração atual do PHP instalado na máquina. Você provavelmente deve ter notado a gracinha de ponto-e-vírgula após phpinfo(). O ponto-e-vírgula indica o final de uma declaração. Mas o que é exatamente uma declaração e porque precisa terminar com ponto-e-vírgula? Encare da seguinte forma: com a declaração você fala com o interpretador de PHP e diz o que ele deve fazer; com o ponto-e-vírgula você informa o interpretador que parou de falar e que ele pode cumprir a ordem. É isso aí. Bããõoo, missão cumprida. Vamos tentar fazer alguma coisa um pouco mais emocionante... Nunca pode faltar um "Hello World" Podes crer, vão aparecer um monte de situações em que você vai querer mostrar algum texto na tela. Não é legal começar com o tradicional 'Hello world'? Éééca, mas estou sem uma idéia melhor. <?php echo ("Hello world"); ?> Salve este arquivo como hello.php no diretório raiz do seu servidor web ou do seu site e chame-o no navegador. UAU!!! Apareceu Hello world na telinha! Também, pudera, a função echo() funcionou e ecoou o texto indicado entre aspas conforme a declaração pedia. O texto precisa estar entre aspas duplas, se bem que aspas simples ('Hello world') também é aceito. Acostume-se, porém, a usar aspas duplas. Explico mais tarde porque. Brinque um pouco com a função echo. Adicione algumas linhas de texto e observe que belo resultado. <?php echo ("Hello world"); echo ("Mamãe, ói eu aqui!"); echo ("+ q gracinha!"); ?> Belo resultado coisa nenhuma! Ficou uma nhaca de texto todo embolado, tudo numa linha só. Pois é, lembra que eu falei que íamos precisar de HTML? Agora é a hora de começar a usá-lo, neste caso utilizando a tag <br> de quebra de linha: <?php echo ("Hello world<br>"); echo ("Mamãe, ói eu aqui!<br>"); echo ("+ q gracinha!"); ?> Bem, agora ficou um pouco melhor . Mas dê só uma olhada no código HTML... tá todinho embolado. Se você quiser debugar seu código, e ele for meio longo, vai ser complicado. O jeito é indicar uma quebra de linha também para o código HTML. Isto é possível usando o caracter de escape '\n'. <?php echo ("Hello world<br>\n"); echo ("Mamãe, ói eu aqui!<br>\n"); echo ("+ q gracinha!\n"); ?> Faça o upload (ou salve) e teste. Agora parece que está tudo em riba. Mas, o que vem a ser um caracter de escape? Caracteres de escape são muito utilizados em programação. \n significa nova linha e não é o único caracter de escape que existe. Veja abaixo alguns dos caracteres de escape mais utilizados (à frente há o Caracter de escape, e após o Significado): \a Alarme \cX Control X, onde X pode ser qualquer caracter. \e Escape \f Form Feed (alimentação de formulário) \n Nova linha \r Retorno de cabeçote \t Tab \xHH Código hexadecimal (HH) de caracter \DDD Código octal de caracter Não tem importância se você não entender alguns destes códigos de escape. À medida que forem sendo necessários, serão usados nos exemplos. Depois, você sempre pode voltar e dar uma recapitulada. Na próxima aula, irei ensinar: *Variáveis *Tipos de Dados *String e Integer *Condições e Operadores Tópico ficou grande, mas é isso msm ^^ PHP e grande.... Mas depois v6 irão aprender tudo direitinho Créditos:NumaBoa
  10. Cara Muito Massa Sky Hunter Gostei ;] Parece Um Cara Mijando heuheuih xD ---------------- Entra No MSN !!!!!
  11. nusa fiko bem melhor parabens Xtibia.com Cada Veiz Mais Famoso E Rox
  12. yurez700

    Novo Diretor Xtibia

    Parabens, vc realmente mereçe ^^
  13. Tutorial Feito: Por Darkigor E yurez700.2 dias demoro o0 Foi Feito Sexta-Feira E Termino Ontem Sabado Bom essa é a primeira aula...Aqui irei ensinar como criar um programa e apresentarei o básico para criar programas no Dev-Cpp e como exibir mensagens na tela Iniciando Criando um novo projeto no Dev-Cpp Caso você não use o Dev-Cpp pule está parte. Bom usando o Dev-Cpp vamos iniciar um novo código fonte...Vá em arquivo->novo projeto, escolha Console, ponha um nome para o programa e dê ok. Após isso no lado esquerdo você terá a lista de arquivos do seu projeto...Repare que foi adicionado para você um arquivo chamado Main.cpp. Delete-o clicando sobre ele com o botão direito e escolhendo deletar, na janelinha que aparecer aperte não... Agora adicione um novo arquivo no projeto do seguinte modo: na lista de arquivos clique com o botão direito do mouse no nomezinho do seu projeto e escolha novo arquivo ou novo código-fonte. Clique com o botão direito no arquivo criado e renomeie-o com o nome que quiser, mas ponha .cpp no final. Bom agora você já sabe criar um projeto no Dev-Cpp Primeiro programa Bom crie um novo projeto, e no seu código fonte adicione o seguinte código (não copie e cole, porque digitando você fixa os comandos na sua cabeça) Código: #include <iostream.h> int main() { cout << "Primeiro programa\n"; system("pause"); return 0; } Compile e rode seu programa...o resultado será: Citação: Primeiro programa Pressione qualquer tecla para continuar... Explicando o código Na primeira linha temos o comando #include que "libera" comandos e funções não-próprios do C++ para seus programas incluindo livrarias ao mesmo, nesse caso estamos usando o arquivo iostream.h, que libera o cout e o system() além de outros que não estão sendo usados. Logo após isso temos o int main() que é uma função, estudaremos funções mais para frente...É importante ressaltar que todo programa de C++ têm funções e todo programa de console começa na função main, o que a torna obrigatória. Uma função é delimitada por chaves ( { e } ). Também temos o comando cout que exibe mensagens na tela que aprofundaremos ainda nessa aula. A seguir temos a função system() que faz com que o programa execute comandos de console no programa...O comando pause é um comando do Prompt De Comando do Windows que faz com que a execução do programa seja interrompida e a mensagem Pressione qualquer tecla para continuar... seja exibida.Essa função, diferente do int main não é obrigatória. Por fim o comando return que retorna o valor da função...iremos estudar mais sobre ele em outras aulas... Repare que quase todos os comandos em C++ usam ; (ponto-e-virgula) no final, então fique ligado na hora de escrever seus programas! O comando cout Como ja foi dito o cout é um comando utilizado para exibir mensagens na tela. Sua sintaxe é a seguinte: Código: cout << "Sua mensagem"; Sua mensagem deve ser substituido pela mensagem que deseja exibir e/ou por sequências de escape. É um comando extremamente simples mais que tem suas armadilhas...Como por exemplo as setas (<<) que simbolizam a tranferência de bytes, mais para facilitar raciocine da seguinte forma: setas << imprime, setas pra >> recebem assim fica mais fácil (cout não recebe dados dos usuarios) Também temos as sequências de escape que são sequências de teclas que são utilizadas para fazer algum efeito. Como o \n que fez com que o programa pulasse uma linha no primeiro programa. Aqui temos uma lista dos mais famosos: \a - Faz um som na CPU \n - Nova Linha \b - BackSpace \r - Apaga linha atual \t - Tabulação Horizontal \v - Tabulação Vertical \' - Apóstrofe \" - Aspas \\ - Barra invertida As sequências de escape são usadas entre as aspas (") do cout. Exercicio Teste todas a sequências de escape até se famializar com elas e com o cout . Bom essa foi a primeira aula, espero que tenham gostado...Dúvidas podem postar aqui mesmo. Aula 2 Começando Variaveis Variaveis são usadas para armazenar valores, por isso são muito importantes. Existem vários tipos de variaveis, cada uma com sua função e tamanho. Aqui temos uma tabela mostrando os tipos de váriaveis padrão do C++, seus É importante ressaltar que float e double são para valores decimais(fracionários) e são os unicos que trabalham com esses numeros bool trabaha com true ou false(ou entaum 1 e 0) apenas com esses valores. char trabalha com código ASCII que são valores correspondentes as teclas do teclado, ou seja mesmo que você use um numero nele, ele trasnformara em letra. Inicializando, modificando e fazendo operações com variaveis A sintaxe para inicializar e/ou modificar uma váriavel é muito simples...E pode ser feito de duas formas: Código: int a; //Inicializa uma váriavel int com o nome 'a' (lembre-se que você usara o nome da vaariavel para se referir a mesma) a = 4; // e modifica ou int a = 4; // Inicializa uma váriavel int com o nome 'a' (lembre-se que você usara o nome da vaariavel para se referir a mesma) e modifica Além do mais, podemos fazer operações algébricas com as variaveis: Código: int a,b,c; //Inicializa 3 variaveis int na msm linha a = 2; b = 3; c= a*b // entaum c = 6 E isso pode ser feito com sinais de +(adição), -(subtração), /(divisão) e %(resto) Armazenando valores do úsuario em variaveis Aqui entrara mais uma função da biblioteca iostream.h Para ler os dados do úsuario e armazena-los em variaveis podemos usar 2 'comandos': o 'cin' que é recomendado para todos os tipos de variaveis com excessão do char: Código: int idade; cout << "Digite a sua idade: "; cin >> idade; Muito facil...Agora idade ira assumir o valor que o usuario desejar...Cuidado com as setas...lembram-se de que >> é entrada e << saída de dados. O outro modo é o cin.get que é recomendado para ler o tipo de variavel char, pois o cin.get lê espaços e o cin não: Código: char nome[10]; //Cria uma variavel char que suporta 10 digitos graças a ARRAYS...Irei explicar mais sobre ARRAYS em outra aula, por enquanto tenha em mente que é o numero de letras que a variavel suporta cout << "Digite seu nome: "; cin.get(nome,10); cout << "Seu nome é " << nome << "\n"; system("pause"); Pronto...agora a variavel nome tem o nome do usuario...e com espaços =]... Mostrando o valor de variaveis para o usuario Para fazer isso vamos usar o cout mesmo... É muito simples você usa a mesma sintaxe que para exibir mensagens com a difereça que você não usa aspas("") e ao inves de uma mensagem voce escreve o nome da variavel Por exemplo: Código: char mensagem[20] = "oi, eu sou alquimista"; char << mensagem; ou int a,b,c; cout << "Escreva um numero: "; cin >> a; cout << "Escreva outro para multiplicar com o primeiro: "; cin >> b; c = a*b; cout << "A multiplicação de " << a << " * " << b << " = " << c; ou então cout << "A multiplicação de "; cout << a; cout << " * "; cout << b; cout << " = "; cout << c; Pronto...a primeira aula de variaveis acaba por aqui...mais pra frente veremos coisas mais complexas... Exercicio Tente fazer uma calculadora que consiga fazer adição ou subtração ou multiplicação ou divisão e se possivel todas juntas\o/ Lembre-se de usar o #include <iostream.h>, a função main() e o system("pause"); para mais informações veja a aula 1 Um código fonte estara na proxima aula mostrando um jeito simples de se fazer usando apenas o que aprendemos até aqui. Obrigado pela atenção...Qualquer duvida, sugestão, critica ou correção postem aqui por favor... Aula 3 Bom aqui estou eu postando a 3ª aula de C++ do Xtibia...Para começar vou por aqui o código da calculadora da 2ª aula utilizando apenas recursos apresentados até agora: Código: #include <iostream> using namespace std; int main() { cout << "Calculadora da Aula 2 =] \n\n"; int num1,num2; cout << "Esse programa segue a seguinte sequencia:\nSoma, Subtracao, Multiplicacao e Divisao\n\n"; cout << ":: Soma ::\n\n"; cout << "Digite 1 numero: "; cin >> num1; cout << "Digite outro numero para somar ao primeiro: "; cin >> num2; cout << num1 << " + " << num2 << " = " << num1+num2 << "\n\n"; cout << ":: Subtracao ::\n\n"; cout << "Digite 1 numero: "; cin >> num1; cout << "Digite outro numero para subtrair do primeiro: "; cin >> num2; cout << num1 << " - " << num2 << " = " << num1-num2 << "\n\n"; cout << ":: Multiplicacao ::\n\n"; cout << "Digite 1 numero: "; cin >> num1; cout << "Digite outro numero para multiplicar com o primeiro: "; cin >> num2; cout << num1 << " * " << num2 << " = " << num1*num2 << "\n\n"; cout << ":: Divisao ::\n\n"; cout << "Digite 1 numero: "; cin >> num1; cout << "Digite outro numero para dividir com o primeiro: "; cin >> num2; cout << num1 << " / " << num2 << " = " << num1/num2 << "\n\n"; cout << "Aqui acaba a calculadora da Aula 2...See you Later\n\n"; system("pause"); return 0; } Começando Clausula If Bom nessa aula vocês vão aprender um dos mais importantes e usados comandos de qualquer linguagem de programação...o If. Como a própria tradução já diz ele é usado para fazer comparações para que o programa possa seguir direções diferentes dependendo do valor de algo...Por exemplo: Se eu tivesse mais de 18 anos, poderia dirigir, mais como não tenho, ando de bicicleta... Além de importante o if é super simples de ser usado, porém pode se complicar em alguns casos. Sua sintaxe é a seguinte: Código: if(expressão){ bloco de comandos } No lugar de expressão podemos colocar, variaveis, funções (que retornem algum valor) e os operadores lógicos... Em bloco de comandos podemos colocar qualquer comando que quisermos, porem esse só será executado se a expressão for verdadeira. Para continuarmos com a aula de If terei que explicar os Operadores lógicos entaum... Operadores lógicos Os operadores lógicos usados na clausula if são os seguintes: == Igual a != Diferente de > Maior que < Menor que >= Maior ou igual a <= Menor ou igual a && AND (e) || OR (ou) ! NOT (não) Os primeiros são simples de serem compreendidos, por isso agora darei um exemplo da utilização de um, para que fique mais simples para entender ( lembrando que a sintaxe é a mesma para os outros): Código: int a = 5; if(a == 5) //se a for igual a 5... { cout << "A eh igual a 5..."; //exibe dessa msg } Agora o ||, && e !, são mais complicados e irei explicar mais profundamente agora. O || (OR - ou) é usado para verificar mais de uma variavel/função e que pelo menos uma esteja correta para que o bloco de códigos seja executado, exemplo: Código: int a = 5; int b = a+1; if(a > 5 || b > 5){ cout << "a ou b sao maiores que 5..."; } system("pause"); O && (AND - e) é usado para verificar mais de uma variavel/funcao e todas tem que ser verdadeiras para que o bloco de códigos seja executado...Exemplo: Código: int a = 5; int b = a; if(a == b && b == 5){ cout << "a e b sao iguais e iguais a 5.."; } system("pause"); O ! (NOT - não) é usado para verificar variaveis ou funções do tipo bool(que só podem ser true ou false)...Ao inves de você fazer a verificação da seguinte forma: Código: bool a = false; if( a == false) // errado Voce deve faze-la da seguinte forma: Código: bool a = false; if(!a) O operador ! verifica de a função/variavel tem o valor FALSE...Se for FALSE ela executa o bloco de códigos se for true ela pula o bloco de códigos...Exemplo: Código: bool a = false; if(!a){ cout << "a eh falso"; } system("pause"); ou então bool a = true; if(a){ cout << "a eh verdadeiro"; } system("pause"); Finalizando Só falta uma coisa a aprender antes de sair testando o comando if...Quando o if aparece no código ele só é executado se for verdadeiro, do contrario, o processador o pula é vai para o comando depois da sua ultima chave (}), caso ele seja executado, o programa continua sua execoção normal...por exemplo: Código: if(5 ==5){ codigo } cout << "llalalal"; //não importa se o if for ativado ou não...essa linha aparecerá de qualquer jeito... Agora, qui vai um exemplo de programa utilizando if: Código: #include <iostream> using namespace std; int main() { int GolsBR, GolsArg; cout << "BRASIL X ARGENTINA!!!!!!\n\n"; cout << "Digite os numero de gols do Brasil: "; cin >> GolsBR; cout << "\nDigite o numero de gols da Argentina: "; cin >> GolsArg; if(GolsBR == GolsArg){ cout << "\n\nAff empatamo com los Hermanos -.-\n\n"; } if(GolsBR > GolsArg){ cout << "\n\nMais los Hermanos ja sao fregueses pls!\n\n"; } if(GolsBR < GolsArg){ cout << "\n\nPerder pra franca tudo bem...mais pra argentina?????\n\n"; } system("pause"); return 0; } Agora treinem o novo comando o máximo possivel =] Dúvidas, Sugestões, criticas ou correções, podem postar que sou a todos ouvidos!! Aula 4 Apos De Pegar Do Documento De Texto Feito Sexta-Feira Começando O comando else Para complementar o comando IF, que aprendemos na ultima aula, vou aprosentar a vocês o comando else. A sintaxe dele é simples, e é obrigatório o uso o if antes dele. Código: if(condição) { bloco de código } else { bloco de códigos que será executado caso if não for válido } O else serve para que se o if não tenha o resultado esperado, o programa execute um bloco de códigos que só acontecerá se o if não for válido...Exemplo: Nesse exemplo quero que caso o o numero seja par, apareça par, se for impar apareça impar...Primeiro vamos testar sem o uso do else: Código: #include <iostream> using namespace std; int main() { int num; cout << "Digite 1 numero: "; cin >> num; if((num%2) ==0){ cout << "\n\nO numero e par!";} cout << "\n\nO numero e impar"; system("pause"); return 0; } Nesse exemplo, por mais que você ponha um numero par, a mensagem de que o numero é impar, aparecerá do mesmo jeito...É aí que entra o else...Veja: Código: #include <iostream> using namespace std; int main() { int num; cout << "Digite 1 numero: "; cin >> num; if((num%2) ==0){ cout << "\n\nO numero e par!";} else{ cout << "\n\nO numero e impar";} system("pause"); return 0; } Bom acredito que todos tenham entendido como funciona o else... Operador Condicional Ternário O Operador Condicional Ternário é um comando que nos possibilita simplificar o uso do if-else...Sua sintaxe é a seguinte: Código: condição ? expressão1 : expressão 2; A condição é avaliada e ser for verdadeira a expressão toda assume o valor da expressão1, se for falsa a expressão assume o valor da expressão2... Exemplo: Código: #include <iostream> using namespace std; int main() { int num; cout << "Digite 1 numero: "; cin >> num; (num%2)==0 ? cout << "\n\no numero e par" : cout << "\n\no numero e impar"; system("pause"); } ou até mesmo: Código: #include <iostream> using namespace std; int main() { int num; string msg; cout << "Digite 1 numero: "; cin >> num; msg = (num%2)==0 ? "\n\no numero e par" : "\n\no numero e impar"; cout << msg; system("pause"); } Bom espero que tenham enmtendido e gostado de mais essa aula...Caso haja duvidas, sugestões ou criticas postem por favor... Aula 5 Loop Switch O switch é um comando muito util, principalmente para criação de menus ou para checagem de uma variavel em que o programador precisa cubrir um numero grande de valores possiveis. A principio ela é um pouco parecida com o if e com o else...Exemplo: Código: switch(variavel){ case 1: bloco de comandos; break; case 2: bloco de comandos; break; default: bloco de comandos; break; } O Switch funciona da seguinte maneira: ele avalia a variavel e checa se o valor contido nela é equivalente à o valor do 'case', e se for, executa o bloco de comandos até achar a palavra-chave break, então o programa irá pular para o fim do switch. Se o valor da variavel não for igual à o primeiro case, no caso 1, irá checar se a variavel é equivalente à o segundo 'case', cujo o valor é 2. E se for, irá executar o bloco de comandos até achar a palavra-chave break. Finalmente, de o valor da expressão não foi equivalente à nenhuma constante especificada anteriormente (você pode especificar quantos comandos case como valores você quiser), o programa irá executar as instruções incluídas na seção default: se existir, já que é opcional. O uso do break é estremamente importante como veremos a seguir a não ser que você queira que caso a variavel tenha 2 valores diferentes ela execute o msm bloco de comandos, como veremos no Exemplo. Perceba que o que o switch faz, é possivel que o programador faça usando o if e o else...Porém o Switch deixa o trabalho mais simples e organizado. O switch pode verificar todos dos tipos de variaveis, char, int, long, float, bool, etc...Exemplo: Código: #include <iostream> using namespace std; int main() { char a; cout << "(I)mprimir msg\n(S)air\n"; cin >> a; switch(a){ case 'I': /*Não usei o break porque quero que sendo I ou i o programa execute o msm bloco de codigos*/ case 'i': // Quando verificamos caracteres, é obrigatorio o uso do ' cout << "Mensagem\n\n"; break; case 's': case 'S': return 0; break; default: cout << "Opcao invalida....\n\n"; break; } system("pause"); return 0; } Ou então #include <iostream> using namespace std; int main(){ int a; cout << "1) Mostrar Msg\n2)Sair\n"; cin >> a; switch(a){ case 1: //Quando verificamos numeros, não precisamos usar ' cout << "Mensagem\n\n"; break; case 2: return 0; break; default: cout << "Opcao invalida....\n\n"; break; } system("pause"); return 0; } O loop While O while é utilizado basicamente para repetir um bloco de codigos enquanto a expressao for verdadeira. Exemplo: Código: #include <iostream> using namespace std; int main() { int a = 0; while(a <= 0){ cout << "Digite um valor > que zero\n"; cin >> a; } cout << "\n\nSaindo...\n"; system("pause"); } Primeiramente iniciei a variavel a com o valor 0, pra que o while tenha a expressao verdadeira e seja ativado, logo apos isso, o usuario digita um valor, caso seja maior que 0, ele sai, do contrario o programa repete o while ate ele digitar o valor pedido... É possivel criar um loop infinito, colocando a expressão simplesmente como true: while(true) É possivel usar o comando break e continue no while, assim como no switch, o break é normalmente usado para caso seja preciso, um loop while infinito seja terminado break Usando break, podemos deixar um loop mesmo que a condição para o fim não seja satisfeita. Pode ser usado para terminar um loop infinito, ou forçá-lo a terminar antes de seu término natural. Um exemplo foi quando eu mostrei o exemplo do switch, quando o case termina, para que outro case seja executado, o break é chamado para que o comando switch termine. Exemplo: Código: #include <iostream> using namespace std; int main() { int a = 0; cout << "Contando ate 10!!\n"; while(true) //loop infinito { a++; if( a == 9){ cout << "Cansei de contar..."; break; } cout << a << "\n"; } system("pause"); return 0; } continue A instrução continue faz com que o programa ignore o resto do loop que esta sendo executado como se o final do bloco de conteúdo tivesse sido alcançado, fazendo com que vá para a próxima repeticão. Por exemplo, iremos ignorar o número 5 em nossa contagem até 10: Código: #include <iostream> using namespace std; int main() { int a = 0; cout << "Contando ate 10!!\n"; while(a == 10) { a++; if( a == 5){ continue; } cout << a << "\n"; } return 0; } Exercicios Bom, nessa aula proponho a criação de um programa que utilize um menu, usando o switch e um outro programa (ou o mesmo) que use uma repetição com o uso do while, como por exemplo um cronometro (nesse caso, use a função Sleep() da biblioteca windows.h) Espero que tenham gostado de mais essa aula!!! Creditos: 4 + Aula Extra Aulas Feitas 70% DarkIgor E Yurez700 2 Aulas Feita 30% Aula Extra A pedidos irei mostrar aqui comandos para você poder deixar sua aplicação customizada...Aqui irei ensinar comandos para alterar as cores de fundo e do texto tanto da aplicação inteira como de linhas em particular e também ensinarei como posicionar o cursor para vocês imprimirem mensagens onde desejarem Começando Apagando todo o conteúdo do console Para isso é muito simples...Mas temos 2 opções: Usar o comando de console cls, atraves do comando system(); Ou então usar o comando clrscr(); da biblioteca conio.h; Exemplos: Código: #include <iostream> using namespace std; int main() { cout << "Oi\n"; system("pause"); system("cls"); system("pause"); return 0; } ou Código: #include <iostream> #include <conio.h> using namespace std; int main() { cout << "Oi\n"; system("pause"); clrscr(); system("pause"); return 0; } A diferença entre os 2 modos, é que o clrstr() também apaga as mudanças feitas nas cores de background e foreground do programa...Ou seja, se você tiver mudado as cores, ao usar o clrstr() eles voltarão ao tipico preto e branco do prompt de comando...Já com o system("cls") não temos este resultado. Mudando as cores do console Para mudar as cores do console, também temos 2 alternativas...usando o comando color do prompt de comando do windows com o comando system() ou usando a API do Windows SetConsoleTextAttribute(); A diferença entre elas é que o comando color muda as cores de back e foreground do programa inteiro, tanto do que já foi escrito quanto do que será escrito e é usado quando se quer definir um background fixo para a aplicação... Já o SetConsoleTextAttribute(); muda as cores de foregound e background apenas para o que será escrito, sem interferir no que já foi escrito, além de mudar o background só para a linha que será escrita, ou seja, com ele você pode criar um efeito "arco-iris" no background do seu programa, só que a utilização do mesmo é um pouco mais dificil....Exemplos: Código: #include <iostream> using namespace std; int main() { system("color 0C"); //0C deixa a letra vermelha com fundo preto cout << "Cores trocadas!\n"; cout << "Para saber mais sobre o comando color, "; cout << "abra o prompt de comando do seu computador e "; cout << "digite color help...\n"; system("pause"); return 0; } ou Código: #include <iostream> #include <windows.h> //biblioteca que libera o SetConsoleTextAttribute();, o typedef HANDLE e as macros #define que iremos utilizar using namespace std; int main() { HANDLE ConHan; //Tipo de variavel da API do Windows; ConHan = GetStdHandle(STD_OUTPUT_HANDLE); // Inicializa a variavel ConHan com outra função do WinApi; SetConsoleTextAttribute(ConHan, BACKGROUND_GREEN|FOREGROUND_BLUE); cout << "Fundo verde...\n"; SetConsoleTextAttribute(ConHan,BACKGROUND_RED); cout << "Fundo vermelho...efeito arco-iris...\n"; system("pause"); return 0; } Também temos a possibilidade de juntar os 2 comandos. A principio o SetConsoleTextAttribute() parece complicado, mais mais para frente vocês verão que não é não...A seguir vai uma tabela dos tipos de background e foreground que podemos botar no segundo argumento do comando: FOREGROUND_BLUE FOREGROUND_GREEN FOREGROUND_RED FOREGROUND_INTENSITY //Deixa a cor foreground escolida mais clara BACKGROUND_BLUE BACKGROUND_GREEN BACKGROUND_RED BACKGROUND_INTENSITY //Deixa a cor background escolida mais clara Para juntar mais de um dos tipos, faça como fiz no exemplo, use o |. Mudando o cursor de posição Agora irei ensinar a modificar o cursor para que vocês possam escrever aonde quiserem do console...Iremos usar o comando SetConsoleCursorPosition(); que tambem pertence a WinApi... Exemplo: Código: #include <iostream> #include <windows.h> // Biblioteca que libera o SetConsoleCursorPosition();, o typedef HANDLE e a estrutura COORD; using namespace std; int main() { COORD pos; pos.X = 7; pos.Y = 9; cout << "Escrevendo na posição tipica\n"; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos); cout << "Escrevendo em outro lugar da tela\n"; system("pause"); } O próximo passo é de vocês...Treinem, porque o certo era que eu ensinasse isso após algumas aulas, mais tudo bem... Qualquer dúvida, sugestão, correção ou critica, postem aqui...
  14. Nossa Ip-Changer Xtibia De 1 Categoria. Muito RoXx. Gostei Muito E Otimo Para Que A Equipe Cresca E Seja Popular ^^ -EDIT- Esqueci de Falar Otimo Trabalho Parabens Ao Sprit ^^ Muito Bom Trabalho xD
  15. Tutorial de Actions Em primero lugar vamos criar um Script Passo a Passo para acustumar. Crie um arquivo.lua na sua pasta de scripts chamado mineaction e siga os passos abaixo - > Bom , Aconselho sempre começar sua action com: Código: function onUse(cid, item, frompos, item2, topos) Depois com os famosos "Ifs" função "Se" Código: if item.uid == 3000 then Aqui no caso acontecerá alguma coisa se o item que tem a UniqueId 3000 for usado ! (UniqueIds são IDs unicas , que são se pode ter 1 no mapa e podem ser facilmente colocadas com qualquer map editor [botão Direito , Properties , e teremos actionID e UniqueID]) Bom apos o if item.uid == 3000 then Temos que colocar as funções desejadas. No caso temos as funções : Código: * doChangeTypeItem * doCreateItem * doDecayItem * doPlayerAddHealth * doPlayerAddItem * doPlayerAddMana * doPlayerAddSkillTry * doPlayerFeed * doPlayerRemoveItem * doPlayerRemoveMoney * doPlayerSay * doPlayerSendCancel * doPlayerSendTextMessage * doPlayerSetMasterPos * doPlayerSetVocation * doRemoveItem * doSendMagicEffect * doSetItemActionId * doSetItemSpecialDescription * doSetItemText * doShowTextWindow * doSendAnimatedText * doSummonCreature * doTeleportThing * doTransformItem * getItemRWInfo * getPlayerAccess * getPlayerFood * getPlayerGuildId * getPlayerHealth * getPlayerLevel * getPlayerMagLevel * getPlayerMana * getPlayerMasterPos * getPlayerName * getPlayerPosition * getPlayerSkill * getPlayerStorageValue * getPlayerVocation * getThingfromPos * getTilePzInfo * setPlayerStorageValue Não falaremos de Todas mas é bom conhece-las .. Então pule uma linha para colocarmos as funções [No Primeiro exemplo aqui colocarei uma action de Sumonar um determinado Montro.] Bom adicione Código: doSummonCreature("Demon",topos) Isso fará que quando eu usar o Item que tem a UID 3000 seja sumonado um monstro na frente do player Adicione uma linha abaixo de doSummon o efeito magico : Código: doSendMagicEffect(topos,14) Pronto quando o Demon for sumonado agora haverá um efeito magico. agora adicione isto no final Código: else doPlayerSendCancel(cid,"Sorry, not possible.") end return 1 end Sua action terminada deve estar assim : Código: function onUse(cid, item, frompos, item2, topos) Â*Â*if item.uid == 3002 then doSummonCreature("Demon",topos) doSendMagicEffect(topos,14) else doPlayerSendCancel(cid,"Sorry, not possible.") end return 1 end No caso Else significa Mais e Else IF que tambem é muito usado ( não agora ) mais se end é o chamado fim que é usado no fim dos scripts sempre que finaliza alguma coisa. Agora vamos abrir o map editor criar uma statua e adicionar a UniqueID 3000 e abrir tambem a action.xml e adicionar : <action uniqueid="3000" script="mineaction.lua" /> Se tudo deu certo é porque você esta seguindo nosso tuto normalmente! Agora encinarei um pouco outros comandos para então voltar a pratica ! Os mais famosos e usados são : Código: doPlayerAddMana(cid,100) Neste caso adiciona 100 de mana ao player que usar o item que esta destacado na action ! doPlayerAddHealth(cid,100) Mesmo que o acima mas neste caso adiciona life ! doPlayerFeed(cid,120) Adiciona Digamos.. food ao player neste caso o player subirá life e mana por 120 seconds. doPlayerSay(cid,"Hicks",2) Faz o player a dizer uma mensagem usado em cachaça e em mana fluid. doPlayerAddItem(cid,2400,1) É usado em quests no caso adiciona um item do id 2400 que eh uma Magic Sword. doPlayerRemoveMoney(cid,100) Tira dinheiro do player , no caso ali 100 gps. doPlayerSendTextMessage(cid,2,"Tutorial") Aparece uma mensagem no screnn(tela) do player, no caso ali Tutorial. doSendMagicEffect(topos,2) Ele é u famoso efeito magico ^^ doSummonCreature("Dragon",topos) Ali sumona um demon na posição do item usado ! Ele pode ser usado pra sumonar em determinada coordenada exemplo : doSummonCreature("Dragon", {x=138, y=281, z=8}) Bom acho que falei o suficiente por hoje Use sua criatividade em uma suas actions ! Continuando ... Especial Alavancas de Mil maneiras 1 - Removendo pedras - Vejam o Ex(By Peonso) : Código: function onUse(cid, item, frompos, item2, topos) gatepos = {x=181, y=135, z=11, stackpos=1} getgate = getThingfromPos(gatepos) if item.uid == 3002 and item.itemid == 2711 and getgate.itemid == 1822 then doRemoveItem(getgate.uid,1) doTransformItem(item.uid,item.itemid+1) elseif item.uid == 3002 and item.itemid == 2712 and getgate.itemid == 0 then doCreateItem(1822,1,gatepos) doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Sorry, not possible.") end return 1 end Neste caso vamos esclarecer tudo 3002 o UID da alavanca (não precisa ser necessariamente alavanca mas este exemplo é alavanca) GatePos , é a posição da pedra , parede , estatua ou outra coisa que esteja bloqueando o caminho 1822 É o ID da pedra , parede ... 2711 o ID da alavanca Bom ?!? Sim Otimo Mas podemos editar este exemplo para fazer varias coisas ex: Acordar monstros que estavam transformados em Pedra ... Muita gente deve estar pensando" hã?!? oq isso tem haver?" Olhem só se adicionarmos Código: doSummonCreature("Gargoyle", {x=181, y=135, z=11}) doSendMagicEffect(topos,14) Abaixo do doremoveitem teremos isso basta apenas trocar o ID da pedra para 2015 que é o id da estatua Viram é só usar a criatividade de vocês - Alavancas Sumonando Monstros e colocando Hole No Lugar de uma quest Vamos ver mais uma vez o exemplo do peonso : Código: function onUse(cid, item, frompos, item2, topos) gatepos = {x=181, y=135, z=11, stackpos=1} getgate = getThingfromPos(gatepos) if item.uid == 3002 and item.itemid == 2711 and getgate.itemid == 1822 then doRemoveItem(getgate.uid,1) doTransformItem(item.uid,item.itemid+1) elseif item.uid == 3002 and item.itemid == 2712 and getgate.itemid == 0 then doCreateItem(1822,1,gatepos) doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Sorry, not possible.") end return 1 end Vamos Pensar o que podemos fazer ... Que tal se nós adicionarmos após o doRemoveItem isso : Código: doSummonCreature("Dragon", {x=190, y=135, z=11}) doSummonCreature("Dragon", {x=187, y=139, z=11}) doSummonCreature("Dragon", {x=184, y=133, z=11}) doCreateItem(409,1,gatepos) Neste caso , vai sumonar 3 Dragons e aparecer um Hole é com para ser usado em Quests [409 é o id da hole] Viram como é facil? É só usar a criatividade ! Bom agora acho que vocêss entenderam como usar as alavancas ... Vamos Falar de Runas e MFs Este exemplo do Joao será nossa Base: Código: -- New MF rune by Joao Paulo 3.0 version -- function onUse(cid, item, frompos, item2, topos) playerpos = {x=topos.x, y=topos.y, z=topos.z, stackpos=253}Â*Â*Â*Â* player = getThingfromPos(playerpos) ml = getPlayerMagLevel(cid) lvl = getPlayerLevel(cid) formula = math.random(((lvl+ml)*2)-(lvl-ml)) if item2.itemid == 1 and ml >= 2 then doSendMagicEffect(playerpos,1) doPlayerAddMana(player.uid,formula) doPlayerSay(player.uid,"Ahhhhhh",2) if item.type > 1 then doChangeTypeItem(item.uid,item.type-1) else doRemoveItem(item.uid,1) end end if item2.itemid == 1 and ml <= 1 then doSendMagicEffect(frompos,2) doPlayerSendCancel(cid,"You dont Have Magic Level to use this rune.") end if item2.itemid >= 2 then doPlayerSendCancel(cid,"You can only use this rune in you or in players.") doSendMagicEffect(frompos,2) end return 1 end Ai logo você ve que não é tão dificil assim ... Se vocês testarem essa versão que upa MTTTTT mana de Mages Oque podemos fazer bom eu não gosto de formulas retire a formula e o getplayerlvl E coloque Código: doPlayerAddMana(cid,100) no lugar do antigo doPlayerAddMana Com isso você pode reparar que toda hora vai upar 100 de mana.. Agora vamos fazer uma runa baseada na do Joao passo a passo : Essa primera runa será pelas actions depois vou encinar uma pela pasta spells. Bom vamos começar igual o exemplo dele: Código: function onUse(cid, item, frompos, item2, topos) playerpos = {x=topos.x, y=topos.y, z=topos.z, stackpos=253} player = getThingfromPos(playerpos) Isso mostra as funções a serem usadas e a posição do Player Vamos pular uma linha e colocar : Código: ml = getPlayerMagLevel(cid) if item2.itemid == 1 and ml >= 2 then Bom isso pega o ML da pessoa para saber se ela tem o Magic necessario para usar. Código: doPlayerAddHealth(player.uid,100) doSendMagicEffect(playerpos,1) doPlayerAddMana(player.uid,100) doPlayerSay(player.uid,"This Potion Are Mud",2) Bom com isso adicionará 100 de life e 100 de mana ao player e força ele a dizer This Potion Are Mud Código: if item.type > 1 then doChangeTypeItem(item.uid,item.type-1) else doRemoveItem(item.uid,1) end end Isso remove 1 carga if item2.itemid == 1 and ml <= 1 then doSendMagicEffect(frompos,2) doPlayerSendCancel(cid,"You dont Have Magic Level to use this rune.") Isso mostra qual ML necessario para usar a LMF (Life mana fluid) Código: end if item2.itemid >= 2 then doPlayerSendCancel(cid,"You can only use this rune in you or in players.") doSendMagicEffect(frompos,2) end return 1 end Finalizando oque acontece quando erra o player e o end. Viram ? Se quiserem fazer runas de adicionar equipes ou senão de teleport como nesse exemplo : Código: function onUse(cid, item, frompos, item2, topos) if item2.itemid == 0 then doPlayerSendCancel(cid,"Sorry, not possible.") else if getPlayerAccess(cid) == 3 then playerpos = getPlayerPosition(cid) doTeleportThing(cid,topos) doSendMagicEffect(playerpos,2) doSendMagicEffect(topos,10) else doPlayerSendCancel(cid,"You are not allowed to use this rune.") end end return 1 end Ou senão o item : Código: doPlayerAddItem(cid,2400,1) É muito facil, apenas adicionar as funções - Agora vou falar sobre quests Bom se você usa YourOts é muito facil Código: -- Tutorial quest if item.uid == (uniqueid que você quer) then queststatus = getPlayerStorageValue(cid,[aconselho colocar a uniqueid]) if queststatus == -1 then if getPlayerLevel(cid) >= (level necessario) then doPlayerSendTextMessage(cid,22,"You have found Tutorial Rox Item.") doPlayerAddItem(cid,(Id Do Item),[Quantidade]) setPlayerStorageValue(cid,(uid),1) else doPlayerSendTextMessage(cid,22,"You need level 20 to get prize.") end else doPlayerSendTextMessage(cid,22,"It is empty.") end Adicione isso na chest.lua Bom agora edite conforma esta acima só que sem os {} [] () Se você não usa YourOts - Baixe YourOts (Brincadera a parte) Ignore o passo acima Vamos ver um exemplo do Peonso Código: function onUse(cid, item, frompos, item2, topos) if item.uid == (UID) then queststatus = getPlayerStorageValue(cid,[uID]) if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid,22,"You have found an Tutorial Rox.") doSendMagicEffect(topos,12) coins_uid = doPlayerAddItem(cid,[iD Do Item],{Quantidade}) setPlayerStorageValue(cid,[uID],1) else doPlayerSendTextMessage(cid,22,"This chest is empty.") end elseif item.uid == [uID] then queststatus = getPlayerStorageValue(cid,[uID]) if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid,22,"You have found a Tutorial.") doSendMagicEffect(topos,12) coins_uid = doPlayerAddItem(cid,[iD do Item],{quantidade}) setPlayerStorageValue(cid,[uID],1) else doPlayerSendTextMessage(cid,22,"This chest is empty.") end else return 0 end return 1 end É só substituir colocando os IDs sem os [] {} () Editando LvLDoors by Peonso Bom antes de mais nada temos que adicionar isso no actions.xml Código: <action itemid="1627" script="lvldoor.lua"/> <action itemid="1629" script="lvldoor.lua"/> <action itemid="1645" script="lvldoor.lua"/> <action itemid="1647" script="lvldoor.lua"/> <action itemid="1659" script="lvldoor.lua"/> <action itemid="1661" script="lvldoor.lua"/> <action itemid="1668" script="lvldoor.lua"/> <action itemid="1677" script="lvldoor.lua"/> Essas são as portas mais usadas , quem usa outras pode adicionar facilmente assim: Código: <action itemid="ID Da Porta" script="lvldoor.lua"/> Bom com sua porta add vamos ao script do peonso Código: -- By Peonso, based on Junk Food script function onUse(cid, item, frompos, item2, topos) doorpos = {x=frompos.x, y=frompos.y, z=frompos.z} playerpos = getPlayerPosition(cid) playerlevel = getPlayerLevel(cid) --shadowtemple if item.itemid == 1629 and doorpos.x == 265 and doorpos.y == 118 and doorpos.z == 8 then if playerlevel > 29 then doTeleportThing(cid,doorpos) elseif playerlevel < 30 then doPlayerSendTextMessage(cid,22,"You need to be level 30 or higher.") end --DOMS elseif item.itemid == 1627 and doorpos.x == 133 and doorpos.y == 250 and doorpos.z == 8 then if playerlevel > 39 then doTeleportThing(cid,doorpos) elseif playerlevel < 40 then doPlayerSendTextMessage(cid,22,"You need to be level 40 or higher.") end end return 1 end Explicando : Ali temos 2 portas os ids são 1627 e 1629 a seguir dos IDS temos as coodernadas o lvl 39 then + que 39 ou seja apenas 40 pra cima doTeleportthing(cid,doorpos) isso é a posição da door ou seja vai teleporta o player para dentro da porta Facil não? Edite sua porta você mesmo e mude o ID e as coordenadas - Picks System ( Creditos de Skoll ) Código: function onUse(cid, item, frompos, item2, topos) tilepos = {x=topos.x, y=topos.y, z=topos.z} if item2.itemid == 0 then return 0 end if item2.itemid == 782 and tilepos.x == 56 and tilepos.y == 49 and tilepos.z == 8 then player1pos = {x=56, y=50, z=8, stackpos=253} player1 = getThingfromPos(player1pos) if player1.itemid > 0 then nplayer1pos = {x=56, y=49, z=9} doSendMagicEffect(player1pos,2) doTeleportThing(player1.uid,nplayer1pos) doSendMagicEffect(nplayer1pos,10) else doSendMagicEffect(frompos,2) doPlayerSendCancel(cid,"You are not in the right place!") end end return 1 end Explicando o código By Skoll: Agora la em and tilepos.x == 56 and tilepos.y == 49 and tilepos.z == 8 Ai eh as cordenadas do xaozinhu q vc irá usar a pick para ser teleportado. Tamo quase la! Em if item2.itemid == 782 Este 782 eh o id da tile (o xaumzinhu) q vc colocou na coordenada q a pick devera ser usada. Para dar um toke a+ eu puiz la em doPlayerSendCancel(cid,"You are not in the right place!") esta mensagem se a mula do cara usa a pick e naum estiver no lugar certo q vc colocou. OBS: tilepos = {x=topos.x, y=topos.y, z=topos.z} n mexe ai pq se naum vai dar erro! Agora entendendo e execuntando by Skoll Isso é o pick system tem gente que não sabe nem oq é pick eh aquele intrumento que usamos para fazer buracos no chão , nesta aula que você teve retirada de um tuto do Skoll com autorização dele é claro ele encinou como executar essa magnifica action , é a primeira vez que trabalhamos com o item2 em nossas aulas , o item2 é aquele segundo item do use with ( ex - eu dou use em uma rope e depois na tile de subir no caso a tile de subir é o item2) ele é utilizado em boa parte das actions ai você pergunta em não vi um "item1", ai que entra a code do actions.xml. Código: <action itemid="3394" script="pick.lua" /> Em actions gerais (eu gosto de chamar assim) você deve sempre colocar o id do item que da o use na actions.xml Código: Glossário Item2 - Serve para itens tipo que você da use e tem que clicar em outro esse outro é o item2 Math Random - Define tudo aquilo que é aletorio ou não é pré definido. If - Função 'Se' é usada em 90% das actions Do - As Funções 'Do' representam sempre o fazer , Ex Sumonar , Transformar And - É o famoso "E" usamos ele quando colocamos algo a + Or - Função Ou , serve para as actions não ficarem muito extensas UID - UniqueIds , elas só podem ser usadas em 1 item no jogo elas são unicas Elseif - E se , Mas se , Determina um especie de condição se algo acontecer ela ativará a ação. End - Finaliza as ações 50% Skoll e 50% Yurez700 Tutorial Feito Ontem
  • Quem Está Navegando   0 membros estão online

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