

Fagunz
Campones-
Total de itens
74 -
Registro em
-
Última visita
Tudo que Fagunz postou
-
Peguei esse Script, porem coloquei ele mais Fraco...
-
Peguei esse Script, porem coloquei ele mais Fraco...
-
Não FUnfo em Meu Servidor ...
-
Tá ae Grande Trabalho... tibiaa4e
-
Pra mim a melhor é o Darkonia, mas essa ta quase superando Parabéns...
-
Esse jogo é um ótimo RPG Espero encontrar alguem que ja jogou tambem.
-
Editores de Imagem Photo Plus Adobe Photoshop CS2 Corel Paint Shop Pro XI PhotoFiltre 0.6.0 Programadores Visual C++ 2005 Express Edition(Desenvolva aplicativos em C++ com este software do pacote Visual Studio 2005.) Cpuestoque(Aplicativo Comercial Integrado completo com os fontes em delphi, possui controle de estoque, contas a pagar...) JavaScript Tools(Adicione milhares de efeitos Javascript em suas páginas) Borland C++ Compiler(Um dos melhores compiladores C/C++ gratuito com a confiabilidade Borland para facilitar a vida do programador.) PHP Editor 2.22(PHP Editor é um editor freeware e totalmente em português destinado a edição de páginas PHP e HTML) Esses Downloads foram Retirados do Baixaki Creditos By Fagunz Obrigado pela Atenção. Abraço.
-
Resolvi Fazer isso Porque acho que vai Ajudar Muita Gente. O que é XML? Extensible Markup Language (XML) é linguagem de marcação de dados (meta-markup language) que provê um formato para descrever dados estruturados. Isso facilita declarações mais precisas do conteúdo e resultados mais significativos de busca através de múltiplas plataformas. O XML também vai permitir o surgimento de uma nova geração de aplicações de manipulação e visualização de dados via internet. O XML permite a definição de um número infinito de tags. Enquanto no HTML, se as tags podem ser usadas para definir a formatação de caracteres e parágrafos, o XML provê um sistema para criar tags para dados estruturados. Um elemento XML pode ter dados declarados como sendo preços de venda, taxas de preço, um título de livro, a quantidade de chuva, ou qualquer outro tipo de elemento de dado. Como as tags XML são adotadas por intranets de organizações, e também via Internet, haverá uma correspondente habilidade em manipular e procurar por dados independentemente das aplicações onde os quais são encontrados. Uma vez que o dado foi encontrado, ele pode ser distribuído pela rede e apresentado em um browser como o Internet Explorer 5 de várias formas possíveis, ou então esse dado pode ser transferido para outras aplicações para processamento futuro e visualização. Representação estruturada dos dados O XML provê uma representação estruturada dos dados que mostrou ser amplamentemente implementável e fácil de ser desenvolvida. Implementações industriais na linguagem SGML (Standard Generalized Markup Language) mostraram a qualidade intrínseca e a força industrial do formato estruturado em árvore dos documentos XML. O XML é um subconjunto do SGML, o qual é otimizado para distribuição através da web, e é definido pelo Word Wide Web Consortium(W3C), assegurando que os dados estruturados serão uniformes e independentes de aplicações e fornecedores. O XML provê um padrão que pode codificar o conteúdo, as semânticas e as esquematizações para uma grande variedade de aplicações desde simples até as mais complexas, dentre elas: · Um simples documento. · Um registro estruturado tal como uma ordem de compra de produtos. · Um objeto com métodos e dados como objetos Java ou controles ActiveX. · Um registro de dados. Um exemplo seria o resultado de uma consulta a bancos de dados. · Apresentação gráfica, como interface de aplicações de usuário. · Entidades e tipos de esquema padrões. · Todos os links entre informações e pessoas na web. Uma característica importante é que uma vez tendo sido recebido o dado pelo cliente, tal dado pode ser manipulado, editado e visualizado sem a necessidade de reacionar o servidor. Dessa forma, os servidores tem menor sobrecarga, reduzindo a necessidade de computação e reduzindo também a requisição de banda passante para as comunicações entre cliente e servidor. O XML é considerado de grande importância na Internet e em grandes intranets porque provê a capacidade de interoperação dos computadores por ter um padrão flexível e aberto e independente de dispositivo. As aplicações podem ser construídas e atualizadas mais rapidamente e também permitem múltiplas formas de visualização dos dados estruturados. Separação entre dados e apresentação A mais importante característica do XML se resume em separar a interface com o usuário (apresentação) dos dados estruturados. O HTML especifica como o documento deve ser apresentado na tela por um navegador. Já o XML define o conteúdo do documento. Por exemplo, em HTML são utilizadas tags para definir tamanho e cor de fonte, assim como formatação de parágrafo. No XML você utiliza as tags para descrever os dados, como exemplo tags de assunto, título, autor, conteúdo, referências, datas, etc... O XML ainda conta com recursos tais como folhas de estilo definidas com Extensible Style Language (XSL) e Cascading Style Sheets(CSS) para a apresentação de dados em um navegador. O XML separa os dados da apresentação e processo, o que permite visualizar e processar o dado como quiser, utilizando diferentes folhas de estilo e aplicações. Exemplo de aplicação Web em três níveis, a qual é flexível e permite a troca de dados entre mainframes e os clientes (desktops). Essa separação dos dados da apresentação permite a integração dos dados de diversas fontes. Informações de consumidores, compras, ordens de compra, resultados de busca, pagamentos, catálogos, etc... podem ser convertidas para XML no middl- tier (espécie de servidor), permitindo que os dados fossem trocados online tão facilmente como as páginas HTML mostram dados hoje em dia. Dessa forma, os dados em XML podem ser distribuídos através da rede para os clientes que desejarem. Estrutura do documento Um documento XML é uma árvore rotulada onde um nó externo consiste de: · dados de caracteres (uma sequência de texto) · instruções de processamento (anotações para os processadores), tipicamente no cabeçalho do documento · um comentário (nunca com semântica acompanhando) · uma declaração de entidade (simples macros) · nós DTD (Document Type Declaration) Um nó interno é um elemento, o qual é rotulado com: · um nome ou · um conjunto de atributos, cada qual consistindo de um nome e um valor. Normalmente, comentários, declarações de entidades e informações DTD não são explicitamente representadas na árvore. Estrutura de uma árvore XML. Geralmente, a árvore tem um nó raiz especial acima do elemento raiz. Uma visão prática das tags Um documento XML é um texto (em formato Unicode) com tags de marcação (markup tags) e outras informações. As markup tags denotam a seguinte estrutura: ...<bla attr="val" ...>...</bla>... | | | | | | | uma tag finalizadora de elemento | | o contexto do elemento | um atributo com nome attr e valor val, com valores delimitados por ' ou " uma tag inicializadora de elemento com nome bla Notação para elementos vazios: ...<bla attr="val".../>... Os documentos XML são sensíveis à letras maiúsculas e minúsculas. Um documento XML é bem formatado quando segue algumas regras básicas. Tais regras são mais simples do que para documentos HTML e permitem que os dados sejam lidos e expostos sem nenhuma descrição externa ou conhecimento do sentido dos dados XML. Documentos bem estruturados: · tem casamentos das tags de início e fim · as tags de elemento tem que ser apropriadamente posicionadas Os elementos não podem se sobrepor. Um exemplo de sobreposição é o seguinte: <title>Descrição dos diveros modelos de carros<sub> da marca Ford </title> Alexandre Manso</sub> E, corrigindo o erro: <title>Descrição dos diversos modelos de carros <sub> da marca Ford</sub> <author> Alexandre Manso</author> </title> Caracteres especiais podem ser digitados usando referências de carcteres Unicode. Exemplo: & = &. Seções CDATA são formas alternativas de se usar dados de caracteres, como: <![CDATA[<greeting>Hello, world!</greeting>]]> Informações adicionais: <!-- comment --> um comentário que será ignorado por todos os processadores. <?target data...?> uma instrução para um processador; target identifica o processador para o qual ela foi direcionada e data é a string contendo a instrução. <!ENTITY name value> declara uma entidade com um nome e um valor; expandida usando a referência entity: &name (entidades externas e referências de entidades de parâmetros são ignorados aqui). <!ELEMENT ...>, <!ATTLIST ...>, ... informações DTD (melhores alternativas são: DSD, XML Schema, que serão explicados posteriormente) Ta aí a primeira Parte Fiquem com Deus Até a Próxima.
-
Bem Resolvi Postar um Tutorial sobre Tcp/ip na minha opinião está muito bom. Introdução Esta é a primeira parte de um total de 100 partes, deste tutorial de TCP/IP. Este curso de Introdução ao TCP/IP é formado pelas partes de 01 a 20. O objetivo da Parte 1 é apresentar o protocolo TCP/IP e os seus aspectos básicos de utilização em redes baseadas no Windows 2000 (Server e Professional) ou Windows Server 2003 e no Windows XP e Windows Vista. Nesta primeira parte faremos uma apresentação do protocolo TCP/IP, de tal maneira que o leitor possa entender exatamente o que é o conjunto de protocolos genericamente conhecido como TCP/IP e como é configurada uma rede baseada neste protocolo. Nas demais partes deste tutorial abordaremos uma série de assuntos, tais como: * O Sistema Binário de Numeração * Conversão de Binário para Decimal * Endereços IP e Máscara de sub-rede * Configurações do TCP/IP no Windows 2000 e no Windows XP * Endereçamento no protocolo IP * Roteamento * DNS * DHCP * WINS * RRAS * IPSec * Firewall * NAT * O conceito de sub-redes e exemplos práticos * Comandos disponíveis no Windows 2000 * Comandos disponíveis no Windows XP Um visão geral do protocolo TCP/IP Para que os computadores de uma rede possam trocar informações entre si é necessário que todos os computadores adotem as mesmas regras para o envio e o recebimento de informações. Este conjunto de regras é conhecido como Protocolo de comunicação. Falando de outra maneira podemos afirmar: “Para que os computadores de uma rede possam trocar informações entre si é necessário que todos estejam utilizando o mesmo protocolo de comunicação”. No protocolo de comunicação estão definidas todas as regras necessárias para que o computador de destino, “entenda” as informações no formato que foram enviadas pelo computador de origem. Dois computadores com diferentes protocolos instalados, não serão capazes de estabelecer uma comunicação e nem serão capazes de trocar informações. Antes da popularização da Internet existiam diferentes protocolos sendo utilizados nas redes das empresas. Os mais utilizados eram os seguintes: * TCP/IP * NETBEUI * IPX/SPX * Apple Talk Se colocarmos dois computadores ligados em rede, um com um protocolo, por exemplo o TCP/IP e o outro com um protocolo diferente, por exemplo NETBEUI, estes dois computadores não serão capazes de estabelecer comunicação e trocar informações entre si. Por exemplo, o computador com o protocolo NETBEUI instalado, não será capaz de acessar uma pasta ou uma Impressora compartilhada no computador com o protocolo TCP/IP instalado. À medida que a Internet começou, a cada dia, tornar-se mais popular, com o aumento exponencial do número de usuários, o protocolo TCP/IP passou a tornar-se um padrão de fato, utilizando não só na Internet, como também nas redes internas das empresas, redes estas que começavam a ser conectadas à Internet. Como as redes internas precisavam conectar-se à Internet, tinham que usar o mesmo protocolo da Internet, ou seja: TCP/IP. Dos principais Sistemas Operacionais do mercado, o UNIX sempre utilizou o protocolo TCP/IP como padrão. O Windows dá suporte ao protocolo TCP/IP desde as primeiras versões, porém, para o Windows, o TCP/IP somente tornou-se o protocolo padrão a partir do Windows 2000. Ser o protocolo padrão significa que o TCP/IP será instalado, automaticamente, durante a instalação do Sistema Operacional, se for detectada a presença de uma placa de rede. Até mesmo o Sistema Operacional Novell, que sempre foi baseado no protocolo IPX/SPX como protocolo padrão, passou a adotar o TCP/IP como padrão a partir da versão 5.0. O que temos hoje, na prática, é a utilização do protocolo TCP/IP na esmagadora maioria das redes. Sendo a sua adoção cada vez maior. Como não poderia deixar de ser, o TCP/IP é o protocolo padrão do Windows 2000, Windows Server 2003, Windows XP e também do Windows Vista (a ser lançado em Fevereiro de 2007) e do Windows Longhorn Server (com lançamento previsto para o final de 2007). Se durante a instalação, o Windows detectar a presença de uma placa de rede, automaticamente será sugerida a instalação do protocolo TCP/IP. Nota: Para pequenas redes, não conectadas à Internet, é recomendada a adoção do protocolo NETBEUI, devido a sua simplicidade de configuração. Porém esta é uma situação muito rara, pois dificilmente teremos uma rede isolada, sem conexão com a Internet ou com parceiros de negócios, como clientes e fornecedores. Agora passaremos a estudar algumas características do protocolo TCP/IP. Veremos que cada equipamento que faz parte de uma rede baseada no TCP/IP tem alguns parâmetros de configuração que devem ser definidos, para que o equipamento possa comunicar-se com sucesso na rede e trocar informações com os demais equipamentos da rede. Configurações do protocolo TCP/IP para um computador em rede Quando utilizamos o protocolo TCP/IP como protocolo de comunicação em uma rede de computadores, temos alguns parâmetros que devem ser configurados em todos os equipamentos que fazem parte da rede (computadores, servidores, hubs, switchs, impressoras de rede, etc). Na Figura a seguir temos uma visão geral de uma pequena rede baseada no protocolo TCP/IP: Figura - Uma rede baseada no protocolo TCP/IP. No exemplo da Figura 1 temos uma rede local para uma pequena empresa. Esta rede local não está conectada a outras redes ou à Internet. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados: * Número IP * Máscara de sub-rede O Número IP é um número no seguinte formato: x.y.z.w ou seja, são quatro números separados por ponto. Não podem existir duas máquinas, com o mesmo número IP, dentro da mesma rede. Caso eu configure um novo equipamento com o mesmo número IP de uma máquina já existente, será gerado um conflito de Número IP e um dos equipamentos, muito provavelmente o novo equipamento que está sendo configurado, não conseguirá se comunicar com a rede. O valor máximo para cada um dos números (x, y, z ou w) é 255. Uma parte do Número IP (1, 2 ou 3 dos 4 números) é a identificação da rede, a outra parte é a identificação da máquina dentro da rede. O que define quantos dos quatro números fazem parte da identificação da rede e quantos fazem parte da identificação da máquina é a máscara de sub-rede (subnet mask). Vamos considerar o exemplo de um dos computadores da rede da Figura 1: * Número IP: 10.200.150.1 * Máscara de Sub-rede: 255.255.255.0 As três primeiras partes da máscara de sub-rede (subnet) iguais a 255 indicam que os três primeiros números representam a identificação da rede e o último número é a identificação do equipamento dentro da rede. Para o nosso exemplo teríamos a rede: 10.200.150, ou seja, todos os equipamentos do nosso exemplo fazem parte da rede 10.200.150 ou, em outras palavras, o número IP de todos os equipamentos da rede começam com 10.200.150. Neste exemplo, onde estamos utilizando os três primeiros números para identificar a rede e somente o quarto número para identificar o equipamento, temos um limite de 254 equipamentos que podem ser ligados neste rede. Observe que são 254 e não 256, pois o primeiro número – 10.200.150.0 e o último número – 10.200.250.255 não podem ser utilizados como números IP de equipamentos de rede. O primeiro é o próprio número da rede: 10.200.150.0 e o último é o endereço de Broadcast: 10.200.150.255. Ao enviar uma mensagem para o endereço de Broadcast, todas as máquinas da rede receberão a mensagem. Nas próximas partes deste tutorial, falaremos um pouco mais sobre Broadcast. Com base no exposto podemos apresentar a seguinte definição: “Para se comunicar em uma rede baseada no protocolo TCP/IP, todo equipamento deve ter, pelo menos, um número IP e uma máscara de sub-rede, sendo que todos os equipamentos da rede devem ter a mesma máscara de sub-rede”. Nota: Existem configurações mais avançadas onde podemos subdividir uma rede TCP/IP em sub-redes menores. O conceito de sub-redes será tratado, em detalhes, na Parte 7 deste tutorial. No exemplo da figura anterior observe que o computador com o IP 10.200.150.7 está com uma máscara de sub-rede diferente da máscara de sub-rede dos demais computadores da rede. Este computador está com a máscara: 255.255.0.0 e os demais computadores da rede estão com a máscara de sub-rede 255.255.255.0. Neste caso é como se o computador com o IP 10.200.150.7 pertencesse a outra rede. Na prática o que irá acontecer é que este computador não conseguirá se comunicar com os demais computadores da rede, por ter uma máscara de sub-rede diferente dos demais. Este é um dos erros de configuração mais comuns. Se a máscara de sub-rede estiver incorreta, ou seja, diferente da máscara dos demais computadores da rede, o computador com a máscara de sub-rede incorreta não conseguirá comunicar-se na rede. Na Tabela a seguir temos alguns exemplos de máscaras de sub-rede e do número máximo de equipamentos em cada uma das respectivas redes. Tabela: Exemplos de máscara de sub-rede. Máscara Número de equipamentos na rede 255.255.255.0 254 255.255.0.0 65.534 255.0.0.0 16.777.214 Quando a rede está isolada, ou seja, não está conectada à Internet ou a outras redes externas, através de links de comunicação de dados, apenas o número IP e a máscara de sub-rede são suficientes para que os computadores possam se comunicar e trocar informações. A conexão da rede local com outras redes é feita através de links de comunicação de dados. Para que essa comunicação seja possível é necessário um equipamento capaz de enviar informações para outras redes e receber informações destas redes. O equipamento utilizado para este fim é o Roteador. Todo pacote de informações que deve ser enviado para outras redes deve, obrigatoriamente, passar pelo Roteador. Todo pacote de informação que vem de outras redes também deve, obrigatoriamente, passar pelo Roteador. Como o Roteador é um equipamento de rede, este também terá um número IP. O número IP do roteador deve ser informado em todos os demais equipamentos que fazem parte da rede, para que estes equipamentos possam se comunicar com os redes externas. O número IP do Roteador é informado no parâmetro conhecido como Default Gateway. Na prática quando configuramos o parâmetro Default Gateway, estamos informando o número IP do Roteador. Quando um computador da rede tenta se comunicar com outros computadores/servidores, o protocolo TCP/IP faz alguns cálculos utilizando o número IP do computador de origem, a máscara de sub-rede e o número IP do computador de destino (veremos estes cálculos em detalhes nas próximas lições deste curso). Se, após feitas as contas, for concluído que os dois computadores fazem parte da mesma rede, os pacotes de informação são enviados para o barramento da rede local e o computador de destino captura e processa as informações que lhe foram enviadas. Se, após feitas as contas, for concluído que o computador de origem e o computador de destino, fazem parte de redes diferentes, os pacotes de informação são enviados para o Roteador (número IP configurado como Default Gateway) e o Roteador é o responsável por achar o caminho (a rota) para a rede de destino. Com isso, para equipamentos que fazem parte de uma rede, baseada no protocolo TCP/IP e conectada a outras redes ou a Internet, devemos configurar, no mínimo, os seguintes parâmetros: * Número IP * Máscara de sub-rede * Default Gateway Em redes empresarias existem outros parâmetros que precisam ser configurados. Um dos parâmetros que deve ser informado é o número IP de um ou mais servidores DNS – Domain Name System. O DNS é o serviço responsável pela resolução de nomes. Toda a comunicação, em redes baseadas no protocolo TCP/IP é feita através do número IP. Por exemplo, quando vamos acessar o meu site: http://www.juliobattisti.com.br/, tem que haver uma maneira de encontrar o número IP do servidor onde fica hospedado o site. O serviço que localiza o número IP associado a um nome é conhecido como Servidor DNS. Por isso a necessidade de informarmos o número IP de pelo menos um servidor DNS, pois sem este serviço de resolução de nomes, muitos recursos da rede estarão indisponíveis, inclusive o acesso à Internet. Existem aplicativos antigos que são baseados em um outro serviço de resolução de nomes conhecido como WINS – Windows Internet Name System. O Windows NT Server 4.0 utilizava intensamente o serviço WINS para a resolução de nomes. Com o Windows 2000 o serviço utilizado é o DNS, porém podem existir aplicações que ainda dependam do WINS. Nestes casos você terá que instalar e configurar um servidor WINS na sua rede e configurar o IP deste servidor em todos os equipamentos da rede. Dica Importante: Em redes baseadas onde ainda existem clientes baseados em versões antigas do Windows, tais como o Windows 95, Windows 98 ou Windows Me, o WINS ainda é necessário. Sem o WINS, poderá haver erro no acesso a aos principais recursos da rede, tais como pastas e impressoras compartilhadas. As configurações do protocolo TCP/IP podem ser definidas manualmente, isto é, configurando cada um dos equipamentos necessários com as informações do protocolo, como por exemplo o Número IP, Máscara de sub-rede, número IP do Default Gateway, número IP de um ou mais servidores DNS e assim por diante. Esta é uma solução razoável para pequenas redes, porém pode ser um problema para redes maiores, com um grande número de equipamentos conectados. Para redes maiores é recomendado o uso do serviço DHCP – Dynamic Host Configuration Protocol. O serviço DHCP pode ser instalado em um servidor com o Windows NT Server 4.0, Windows 2000 Server, Windows Server 2003 ou Windows Longhorn Server. Uma vez disponível e configurado, o serviço DHCP fornece, automaticamente, todos os parâmetros de configuração do protocolo TCP/IP para os equipamentos conectados à rede. Os parâmetros são fornecidos quando o equipamento é inicializado e podem ser renovados em períodos definidos pelo Administrador. Com o uso do DHCP uma série de procedimentos de configuração podem ser automatizados, o que facilita a vida do Administrador e elimina uma série de erros. Dica Importante: Serviços tais como um Servidor DNS e um Servidor DHCP, só podem ser instalados em computadores com uma versão de Servidor do Windows, tais como o Windows NT Server 4.0, Windows 2000 Server, Windows Server 2003 ou Windows Longhorn Server. Estes serviços não estão disponíveis em versões Clientes do Windows, tais como o Windows 95/98/Me, Windows 2000 Professional, Windows XP Professional ou Windows Vista. O uso do DHCP também é muito vantajoso quando são necessárias alterações no número IP dos servidores DNS ou WINS. Vamos imaginar uma rede com 1000 computadores e que não utiliza o DHCP, ou seja, os diversos parâmetros do protocolo TCP/IP são configurados manualmente em cada computador. Agora vamos imaginar que o número IP do servidor DNS foi alterado. Neste caso o Administrador e a sua equipe técnica terão que fazer a alteração do número IP do servidor DNS em todas as estações de trabalho da rede. Um serviço e tanto. Se esta mesma rede estiver utilizando o serviço DHCP, bastará alterar o número do servidor DNS, nas configurações do servidor DHCP. O novo número será fornecido para todas as estações da rede, automaticamente, na próxima vez que a estação for reinicializada. Muito mais simples e prático e, principalmente, com menor probabilidade de erros. Você pode verificar, facilmente, as configurações do protocolo TCP/IP que estão definidas para o seu computador (Windows 2000, Windows XP ou Windows Vista). Para isso siga os seguintes passos: 1. Faça o logon com uma conta com permissão de Administrador. 2. Abra o Prompt de comando: Iniciar -> Programas -> Acessórios -> Prompt de comando. 3. Na janela do Prompt de comando digite o seguinte comando: ipconfig/all e pressione Enter. 4. Serão exibidas as diversas configurações do protocolo TCP/IP, conforme indicado a seguir, no exemplo obtido a partir de um dos meus computadores que eu uso na rede da minha casa: O comando ipconfig exibe informações para as diversas interfaces de rede instaladas – placa de rede, modem, etc. No exemplo anterior temos uma única interface de rede instalada, a qual é relacionada com uma placa de rede Realtek RTL8139 Family PCI Fast Ethernet NIC. Observe que temos o número IP para dois servidores DNS e para um servidor WINS. Outra informação importante é o Endereço físico, mais conhecido como MAC-Address ou endereço da placa. O MAC-Address é um número que identifica a placa de rede. Os seis primeiros números/letras são uma identificação do fabricante da placa e os seis últimos uma identificação da placa. Não existem duas placas com o mesmo MAC-Address, ou seja, este endereço é único para cada placa de rede. No exemplo da listagem a seguir, temos um computador com duas interfaces de rede. Uma das interfaces é ligada a placa de rede (Realtek RTL8029(AS) PCI Ethernet Adapter), a qual conecta o computador a rede local. A outra interface é ligada ao fax-modem (WAN (PPP/SLIP) Interface), o qual conecta o computador à Internet. Para o protocolo TCP/IP a conexão via Fax modem aparece como se fosse mais uma interface de rede, conforme pode ser conferido na listagem a segui Questão de exemplo para os exames de Certificação A seguir coloco um exemplo de questão, relacionada ao TCP/IP, que pode aparecer nos exames de Certificação da Microsoft, onde são cobrados conhecimentos básicos do protocolo TCP/IP. Esta questão faz parte dos simulados gratuitos, disponíveis aqui no site. Questão 01 A seguir estão as configurações básicos do TCP/IP de três estações de trabalho: micro01, micro02 e micro03. Configurações do micro01: Número IP: 100.100.100.3 Máscara de sub-rede: 255.255.255.0 Gateway: 100.100.100.1 Configurações do micro02: Número IP: 100.100.100.4 Máscara de sub-rede: 255.255.240.0 Gateway: 100.100.100.1 Configurações do micro03: Número IP: 100.100.100.5 Máscara de sub-rede: 255.255.255.0 Gateway: 100.100.100.2 O micro 02 não está conseguindo comunicar com os demais computadores da rede. Já o micro03 consegue comunicar-se na rede local, porém não consegue se comunicar com nenhum recurso de outras redes, como por exemplo a Internet. Quais alterações você deve fazer para que todos os computadores possam se comunicar normalmente, tanto na rede local quanto com as redes externas? a) Altere a máscara de sub-rede do micro02 para 255.255.255.0 Altere o Gateway do micro03 para 100.100.100.1 B) Altere a máscara de sub-rede do micro01 para 255.255.240.0 Altere a máscara de sub-rede do micro03 para 255.255.240.0 c) Altere o Gateway do micro01 para 100.100.100.2 Altere o Gateway do micro02 para 100.100.100.2 d) Altere o Gateway do micro03 para 100.100.100.1 e) Altere a máscara de sub-rede do micro02 para 255.255.255.0 Resposta certa: a Comentários: Pelo enunciado o computador micro02 não consegue comunicar com nenhum outro computador da rede. Este é um sintoma típico de problema na máscara de sub-rede. É exatamente o caso, o micro02 está com uma máscara de sub-rede 255.255.240.0, diferente da máscara dos demais computadores. Por isso ele está isolado e não consegue se comunicar com os demais computadores da rede. Já o micro03 não consegue comunicar-se com outras redes, mas consegue comunicar-se na rede local. Este é um sintoma de que a configuração do Gateway está incorreta. Por isso a necessidade de alterar a configuração do Gateway do micro03, para que este utilize a mesma configuração dos demais computadores da rede. Observe como esta questão testa apenas conhecimentos básicos do TCP/IP, tais como Máscara de sub-rede e Default Gateway. Obrigado. Retirado Deste Site
-
Bem aqui vai a segunda parte do Tutorial, passei a noite escrevendo no bloco de notas e vou trazer para o fórum. Agora que você já conheceu um pouco mais do PHP, vamos conhecer mais detalhes da linguagem. Neste módulo você aprenderá como tratar string e números no PHP e no final estará apto a criar um script de envio de informações de um formulário por e-mail. Para aprender uma nova linguagem, costumamos verificar os pontos que listo abaixo: 1) Comentários Todo programa deve possuir comentários, visando o entendimento do código em consultas posteriores. No PHP, existem três tipos de marcadores de comentário, que são: // e # para comentário de uma linha. Por exemplo: // atribui o nome à variável $nome = "Valdir Leite" $email = "valdirleite@ig.com.br" # atribui o E-mail à variável e para comentários que ocupem mais de uma linha, usamos os marcadores /* */. /* Nas linhas abaixo, atribuiremos os valores Do nome e do e-mail às respectivas variáveis */ $nome = "Valdir Leite" $email = "valdirleite@ig.com.br" 2) Variáveis Para começar, vamos ver como o PHP trata suas variáveis (ou constantes), que podem ser variáveis escalares ou não-escalares. As variáveis escalares são aquelas que podem ser retrabalhadas, ou "divididas em pedaços menores", enquanto as não escalares são as arrays (matrizes) e os objetos. A identificação de uma variável, independente do seu tipo é pelo sinal $ colocado como primeiro caractere, como abaixo: $nome = "Valdir Leite"; $matricula = 9843825 $conex = ocilogon("scott", "tiger", "ORA8"); A primeira variável é do tipo string; a segunda, inteiro (ambas escalares); e a terceira é uma variável que possui a referência de um objeto de conexão com um banco de dados Oracle. Vale lembrar que, como a linguagem C, as variáveis $nome e $Nome são consideradas diferentes, pois o PHP as trata como sensíveis ao caso. Na versão 4 do PHP, as variáveis podem receber valor por referência. Isto significa que ao para atribuir o valor a uma variável não usamos um valor, mas um "ponteiro" para o valor em questão. Na verdade, este "ponteiro" é uma outra variável: $nome = "Valdir"; $identificacao = &$nome; Deste modo, a variável $identificacao recebe o valor de $nome e, se uma das duas for atualizada, a outra também será, mantendo o mesmo valor em ambas. Mas não vamos aprofundar nisto, pois é ciosa de versão 4.0, que será tratada posteriormente. 3) Operações Matemáticas As operações no PHP também seguem o padrão das outras linguagens (+, -, *, /, sin(), cos()). Além destas, o PHP tem um completo conjunto de operações matemáticas, que podem ser consultadas nesta página: (http://br.php.net/manual/ref.math.php3) Um exemplo para calcular o valor líquido de um preço, depois de aplicar 10% de desconto sobre o preço bruto: $valorbruto = 10; $desconto = 10 * $valorbruto / 100; $valorliquido = $valorbruto - $desconto; 4) Operações com strings Operações com strings são uma das características mais desenvolvidas do PHP. Entre as mais importantes estão: strlen(), que permite saber quantos caracteres possui a string: echo "A palavra 'internet' possui " . strlen("internet") . " caracteres "; substr(), que devolve uma substring da string informada: echo substr("abcde", 2 , 2); // Esta linha irá exibir os caracteres "cd"; strpos (), para saber se determinado caractere (ou substring) está contida em uma string: if strpos ($email, "@") { echo("Seu e-mail parece estar correto!\n"); } else { echo("O e-mail está inválido\n"); } No exemplo acima, verificamos se o caractere "@" está contida em uma variável $email. Se estiver, exibe a primeira mensagem. Do contrário, exibe a segunda. Outras funções relacionadas à operações com strings podem ser encontradas em: http://br.php.net/manual/ref.strings.html 5) Controlando o fluxo e LOOPS As funções usadas para controlar o fluxo do programa e execução de "loops" são: if ... else ... else if, que segue o padrão da linguagem C: if ($sexo == "m") { echo "Você é do sexo Masculino\n"; } elseif ($sexo == "f") { echo "Você é do sexo Feminino\n"; } else { echo "Por favor, informe corretamente seu sexo\n"; } switch, uma maneira de controlar o fluxo onde a variável de controle do fluxo pode ter várias opções de valores. Este tipo de controle poderia ser feito com uma seqüência de "ifs" e "elseifs", mas o uso do switch torna o código mais legível e faz com que seja executado mais rapidamente, pois a verificação da variável "$sexo" só é feita uma vez e depois comparada com as opções de cada "case". Se não estiver em nenhuma delas, é executado o bloco sob o "default". Já com o "elseif", a comparação é feita novamente a cada sentença. Neste exemplo, a diferença não é tão grande, mas quando o tipo de verificação vai ficando mais complexo a velocidade começa a ser sentida. Na maioria dos casos, vale a pena optar pelo switch. switch ($sexo) { case "m": echo "Você é do sexo Masculino\n"; break; case "f" echo "Você é do sexo Feminino\n"; break; case default: echo "Por favor, informe corretamente seu sexo\n"; break; } Sempre inclua o comando break no final do case. Caso contrário, a execução continuará até encontrar o final do switch (ou a instrução break), fazendo com que as instruções de mais de um case sejam executadas. while, que permite repetir o código enquanto uma condição for verdadeira: while ($contador > 0) { $contador = $contador - 2; } for, para execução de um loop determinada quantidade de vezes: for ($i==0; $i<100; $i++) { echo "$i\n"; } Tratando formulários Com as informações que você já possui, podemos passar para exemplos práticos, úteis no dia-a-dia de um webmaster. Vamos fazer, passo-a-passo, um script para receber os dados de um formulário, consistir as informações e enviar o resultado por e-mail. Este formulário possui campos para digitação do nome, e-mail e telefone. Todos os campos são obrigatórios e a consistência do campo e-mail deve ser feita apenas verificando a existência do caractere @, para facilitar as coisas. Já o campo telefone deve ter, sete oi oito caracteres. Tendo este cenário, mãos a obra! Vamos ao programa: <?php $erro = ""; if ($nome == "") { $erro .= "Digite seu Nome\n"; } if ((strlen($telefone) > 8) or (strlen($telefone) < 7)) { $erro .= "O número do telefone deve ter sete ou oito caracteres\n"; } if strpos ($email, "@") = 0 { $erro .= "O e-mail digitado não é válido\n" } Esta primeira parte faz a consistência dos dados e altera o valor da variável $erro, caso alguma das condições não seja satisfeita. Para prosseguir, devemos verificar a ocorrência de erros e então enviar o e-mail se erros não tiverem ocorrido ou enviar uma tela de resposta informando qual o erro aconteceu. Como o valor de $erro antes da verificação dos campos é "", basta testar se a variável ainda tem este valor para saber se aconteceu ou não um erro. Vamos continuar: echo("<html><title>Envie o formulário abaixo</title><body><center>\n"); # Cabeçalho de resposta. If ($erro == "") { // Não houve nenhum erro no preenchimento do formulário mail("valdirleite@ig.com.br", "Dados do Formulário"," Nome: $nome\n E-mail: $email\n Telefone: $telefone\n","From: $email\nDate: $date\n"; echo("Obrigado por enviar este formulário!\n"); } else echo("Não foi possível enviar o formulário!<br>Verifique as mensagens abaixo<br><br><b> $erro \n"); } echo("</center></body></html>\n"); Pronto! As novidades neste script são: · O comando mail() que é a função nativa do PHP para envio de e-mail. Sua sintaxe é a seguinte: mail(Destinatário, Assunto, Mensagem, Informações_Adicionais); · O echo() que é o equivalente do print no PERL e do response.write do ASP; Veja no próximo módulo No próximo tutorial veremos outras funções de tratamento de strings e como trabalhar com banco de dados. Até lá.
-
Bem Decidi me Dedicar a WebMaster, como estou bem sabidinho ja vou aqui postar um Tutorial, espero que aproveitem. Começando Prestem Atenção. Antes de começarmos a falar do PHP, é interessante abordar o passado. Há muito tempo atrás, a informação na Internet era encontrada por meio das ferramentas Gopher (http://www.gopher.org). Talvez para a época isso fosse suficiente, mas hoje é bem difícil encontrar usuários dessa técnica. O Gopher reinava absoluto até que surgiu a Web e o primeiro navegador, o Mosaic, que possuía a capacidade de exibir o texto e imagens, o que faria com que a Internet se aproximasse mais dos simples mortais. Surgia um novo jeito de formatar a informação contida nos servidores de forma mais agradável e ilustrada. Mas ainda assim, a informação era estática. Tudo muito bonito, mas ainda faltava dinamismo às páginas. Assim surgiu o CGI, (Common Gateway Interface) programas executados sob requisição do navegador e a saída deste programa era encaminhada de volta ao navegador. Por exemplo: para exibir a data em uma página, era necessário executar um programa CGI nos servidor. Este programa lia a data do sistema e informava ao navegador que cuidava da exibição na tela. Para entender um pouco mais de CGI consulte os tutoriais disponíveis aqui. Esta dupla HTML/CGI durou até fins de 1998, início de 1999, sendo utilizada até hoje. E, como sempre, alguém inventou algo melhor. Os programas CGI eram escritos, em sua maioria, com as linguagens C e PERL. E, por isso, causavam uma série de problemas nos servidores, que não vêm ao caso, mas para exemplificar: imagine um site que receba 10 visitas por segundo. Se ele executar um programa CGI em cada uma dessas visitas, serão abertos 10 processos por segundo, o que podia fazer com que o servidor gastasse mais tempo gerenciando estas "threads" do que servindo páginas, função para o qual fora projetado. E para resolver este problema tiveram a brilhante idéia de inserir os comandos que seriam o programa CGI na página HTML, de modo que o servidor, ao enviar esta página, executasse o bloco do comando, no mesmo processo. Deste modo, para exibir a data em nossa página, bastava inserir, em algum ponto desta página, o comando para que a data fosse inserida. Aqui começamos o assunto. Hoje podemos usar comandos da linguagem, que é grátis, portável, aberta, escalável. Como você já deve estar curioso, vamos ver o código de uma página com uma porção PHP. 1 <html> 2 <body bgcolor=white> 3 <center> 4 < 5 </center> 6 </body> 7 </html> Vamos "destrinchar" esta página: Se você não entendeu as três primeiras linhas, vale a pena dar uma olhada no tutorial HTML. A novidade está na linha 4. Note que ela se assemelha com uma TAG HTML, mas tem suas particularidades, por exemplo, um sinal de interrogação para abrir e para fechar. Isto faz com que esta página, quando estiver sendo enviada pelo servidor, passará pelo interpretador do PHP, de modo que apenas código HTML puro chegue ao navegador. Se o usuário acionar o "View Source" de seu navegador, verá o seguinte: 1 <html> 2 <body bgcolor=white> 3 <center> 4 Hello World! 5 </center> 6 </body> 7 </html> Este exemplo, não tem muita utilidade, mas serve para ilustrar a idéia por trás do PHP. Vamos ver algo mais útil: Digamos que em nosso site exista uma página secreta, que só pode ser aberta por quem possuir o código de acesso. Como o HTML não traz nenhuma função para isso, teremos de fazer esta validação usando um outro programa. Este programa deverá ler o valor do campo LOGIN e SENHA do HTML e exibir a página secreto.htm se o par login/senha estiver correto ou a página senhainvalida.htm caso contrário. Pelo que já vimos, isto pode ser feito usando um CGI ou um script in-line (ASP, PHP, etc). Começaremos usando um CGI em PERL: Código da página login.htm <html> <body bgcolor=white> <center> <form action=login.pl method=post> Login: <input type=text name=login><br> Senha: <input type=text name=senha><br> <input type=submit value=" Entrar "> </form> </center> </body> </html> Vamos ver como ficaria o código do CGI login.pl #!/usr/bin/perl read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pares = split(/&/, $buffer); foreach $par (@pares) { ($campo, $valor) = split(/=/, $par); $valor =~ tr/+/ /; $valor =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $valor =~ s///g; $FORM{$campo} = $valor; } if (($FORM{'login'} ne 'scott') || ($FORM{'senha'} ne 'tiger')) { print "Location: senhainvalida\.htm\n\n"; } else { print "Location: paginasecreta\.htm\n\n"; } E vejamos como seria o código em PHP. Para isto, o valor ACTION do formulário teria que ser mudado para login.php3. <?php If (($login <> "scott") || ($senha <> "tiger")) { Header("Location: senhainvalida.htm\n\n"); } else { Header("Location: paginasecreta.htm\n\n"); } ?> Vamos discutir o código acima: A primeira linha é padrão, ela abre um bloco de código PHP. A segunda, faz a comparação dos valores de login e senha. Repare que para recuperar o valor dos campos de formulário basta referenciar aos nomes destes campos como variáveis do PHP. Isto significa que a variável $login conterá o valor digitado no campo LOGIN do HTML e a $senha a mesma coisa, não sendo necessário tratar todo o "Buffer" do HTTP, como é feito no PERL. Dependendo do resultado da comparação da linha 2, o programa seguirá pela linha 3 ou 5. Se o login ou a senha não estiver correto, é executada a linha 3 que devolve um comando para o navegador abrir a página senhainvalida.htm, do contrário, o fluxo é desviado para a linha que dá o camando para o navegador exibir a página secreta. Lógico que este não é um método seguro de se proteger uma página, mas em termos didáticos é suficiente. Veja no próximo módulo Bom, já vimos algumas coisas interessantes do PHP. Na Próxima Parte, iremos tratar de variáveis e constantes, além de ver mais algumas coisas relacionadas à tratamento de formulários. Até lá! Essa foi a primeira parte amanhã vou postar a segunda parte. Obrigado Pela Atenção!
-
Aqui Vai a Lista da Primeira Página do Sub-Fórum de Spells Como fazer uma Spell que Cria Items Y Soy Rebelde! Magias para Druid Spells Retardadas By Tanana Runa Legal Ue de Abóboras Meteors Invocation Um SOnar Diferente Voko Vuko Spell Nunca Vista Colocando Magias no Seu OT Essa Runa ta Valendo! Exori Gran Runa Muito Massa Magia Rox Mesmo Uma Ajudinha com uma Spell Exevo Gran Vis Shock Water Slave Duas Magias para Paladin Exana Flam Death Star Confused Arrow New Runes of Revenger If Hached Orshabaal 1.0 Crusifiked Owns Exani tera Exeta Res Por Mim é um Fixo.
-
Estou Aqui Novamente para Postar 2 Magias que eu fiz ! Exori Mas Vis Exori Sio Caso Não Quiserem Baixar Irei Mandar o Script Por Aqui. 1º-- Exori Mas Vis 2º---Exori Sio Abraço ! Obrigado !
-
Aqui Está Alguns Anti-Virus, entre outras coisas para seu Computador. Anti-Vírus: Avast! Home Edition 4.7.892 AVG Free Edition 7.5.430 Panda Quick Remover 3.2.1.8 Active Virus Shield Seção Variados Dev-C++ 4.9.9.2 Borland C++ Compiler 5.5(Grande Compilador Freeware) phpBB 2.0.21 Cariboost 1.60.4 PHP Editor 2.22(Edita Páginas em PHP e em Html) PhotoPlus 6.0(Edita suas Imagens á seu Gosto) Free Download Manager 2.1(Acelera Seus Download em Até 600%) Bem esse arquivos Foram retirados do BaixaKi! Por Favor Não Copiar Sem Permissão. Obrigado!
-
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 Thotth ) 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 Thotth: 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 thotth 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
-
House Editor 1.0 by Pvdm. O que ele faz? Edita House (Dono e Porta) Reseta House. Com esse programa quando vc resetar seu server vc não vai precisar mais mudar nome de house por house, eh soh configurar a pasta das house e apertar Mudar Todas com o campo Novo Nome em branco x) Link: House_editor
-
Ae arrumei a obsidian knife, arrumei a chance de pegas as peles... a e tirei u demon dust e vamp dust pq tinha viajado mais com demon e vmap dust é no link se quizer.... http://palmaresot.com/downloads/obsidian%20knife.lua Num eskeça de adicionar no actions.xml em qualquer linha: Código: <action itemid="5908" script="obsidian knife.lua"/> Aqui se vc num quizer baxar cria um arquivo.lua chamado obsidian knife.lua Código: --Action By BrunuxX modificado por Cunha para 7.8 ( Re-editado/Simplificado por Pedokas ) --Ultima edição by Fagunz (arrumado as chances de pegar pele) --Não Remover os Creditos! function onUse(cid, item, frompos, item2, topos) if item2.itemid == 0 then return 0 end random = math.random(1,6) if getPlayerLevel(cid) >= 8 then if item2.itemid == 2881 and random == 1 then doTransformItem(item2.uid,2882) doPlayerAddItem(cid,5948,1) doSendMagicEffect(topos,13) elseif item2.itemid == 2881 and random > 1 then doTransformItem(item2.uid,2882) doSendMagicEffect(topos,2) end end random = math.random(1,5) if getPlayerLevel(cid) >= 8 then if item2.itemid == 3104 and random == 1 then doTransformItem(item2.uid,3105) doPlayerAddItem(cid,5877,1) doSendMagicEffect(topos,13) elseif item2.itemid == 3104 and random > 1 then doTransformItem(item2.uid,3105) doSendMagicEffect(topos,2) end end random = math.random(1,4) if getPlayerLevel(cid) >= 8 then if item2.itemid == 2830 and random == 1 then doTransformItem(item2.uid,2831) doPlayerAddItem(cid,5878,1) doSendMagicEffect(topos,13) elseif item2.itemid == 2830 and random > 1 then doTransformItem(item2.uid,2831) doSendMagicEffect(topos,2) end end random = math.random(1,3) if getPlayerLevel(cid) >= 8 then if item2.itemid == 2876 and random == 1 then doTransformItem(item2.uid,2877) doPlayerAddItem(cid,5878,1) doSendMagicEffect(topos,13) elseif item2.itemid == 2876 and random > 1 then doTransformItem(item2.uid,2877) doSendMagicEffect(topos,2) end end random = math.random(1,4) if getPlayerLevel(cid) >= 8 then if item2.itemid == 2871 and random == 1 then doTransformItem(item2.uid,2872) doPlayerAddItem(cid,5878,1) doSendMagicEffect(topos,13) elseif item2.itemid == 2871 and random > 1 then doTransformItem(item2.uid,2872) doSendMagicEffect(topos,2) end end random = math.random(1,3) if getPlayerLevel(cid) >= 8 then if item2.itemid == 2866 and random == 1 then doTransformItem(item2.uid,2867) doPlayerAddItem(cid,5878,1) doSendMagicEffect(topos,13) elseif item2.itemid == 2866 and random > 1 then doTransformItem(item2.uid,2867) doSendMagicEffect(topos,2) end end random = math.random(1,7) if getPlayerLevel(cid) >= 8 then if item2.itemid == 4256 and random == 1 then doTransformItem(item2.uid,4257) doPlayerAddItem(cid,5876,1) doSendMagicEffect(topos,13) elseif item2.itemid == 4256 and random > 1 then doTransformItem(item2.uid,4257) doSendMagicEffect(topos,2) end end random = math.random(1,7) if getPlayerLevel(cid) >= 8 then if item2.itemid == 4259 and random == 1 then doTransformItem(item2.uid,4260) doPlayerAddItem(cid,5876,1) doSendMagicEffect(topos,13) elseif item2.itemid == 4259 and random > 1 then doTransformItem(item2.uid,4260) doSendMagicEffect(topos,2) end end random = math.random(1,7) if getPlayerLevel(cid) >= 8 then if item2.itemid == 4262 and random == 1 then doTransformItem(item2.uid,4263) doPlayerAddItem(cid,5876,1) doSendMagicEffect(topos,13) elseif item2.itemid == 4262 and random > 1 then doTransformItem(item2.uid,4263) doSendMagicEffect(topos,2) end end random = math.random(1,8) if getPlayerLevel(cid) >= 8 then if item2.itemid == 3031 and random == 1 then doTransformItem(item2.uid,3032) doPlayerAddItem(cid,5925,1) doSendMagicEffect(topos,13) elseif item2.itemid == 3031 and random > 1 then doTransformItem(item2.uid,3032) doSendMagicEffect(topos,2) end end random = math.random(1,9) if getPlayerLevel(cid) >= 8 then if item2.itemid == 2931 and random == 1 then doTransformItem(item2.uid,2932) doPlayerAddItem(cid,5893,1) doSendMagicEffect(topos,13) elseif item2.itemid == 2931 and random > 1 then doTransformItem(item2.uid,2932) doSendMagicEffect(topos,2) end end return 1 end Se vc quer mudar a chance do seu geito ali onda tah Código: random = math.random(1,9) Ali no 1 é quantos numeros vao ser sorteados da quantidade ao lado que é 9, entao quando o numero sorteado é 1 vc ganha a pele, pra ser mais dificel voce tem que almental o numero ali no lugar do 9... caso num enteder reclama que eu expliko melhor... Comentem plz... As chances eu tentei dexar meia parecida com RL
-
Bom, essa action muda a vocação do player. Ele, quando clicar numa alavanca ou estatua de UID 3000 mudará sua vocação pra sorcerer. Em alguns server essa action nao sera util, mas se alguem quiser, tente modificar ela só pra lvl 10 menos mudarem de vocação, ai será muito util. Pra mudar a vocação que o player vai ser dps de clicar na alavanva/estatua. modifique o doPlayerSetVocation(cid,1) , se quiser Druid coloque 2, se quiser paladin coloque 3, se quiser knight coloque 4. vocsorc.lua Código: function onUse(cid,item,frompos,item2,topos) if item.uid == 3000 then doPlayerSetVocation(cid,1) doSendMagicEffect(topos,14) doPlayerSendTextMessage(cid,22,"Voce trocou sua vocaçao pra sorcerer.") else doPlayerSendCancel(cid,"You cannot use this object.") end return 1 end abra o actions.xml e coloque isso Código: <action uniqueid="3000" script="vocsorc.lua" /> Creditos By Me !!!
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.