Ir para conteúdo

zlattan

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    zlattan deu reputação a Ryzor em Sistema De Barco   
    Informações do Script

    Nome: Sistema de Barco
    Autor: zathao
    Testado em: The Forgotten Server Version 0.3.6 / Tibia 8.54
    Descrição: Este script foi desenvolvido por mim exclusivamente para esse fórum.
    Nele o jogador poderá viajar por uma rota pré-definida através de um barco.

    Video Demonstrativo




    Códigos e Instalação

    O sistema irá apenas utilizar apenas 2 Npcs, facilitando ainda mais a instalação.

    - Crie um arquivo chamado barco.lua em data/npc/scripts e adicione isso no arquivo:






    - Nome da rota: Esse será o nome que o npc irá reconhecer
    e apresentar para o jogador como escolha de viagem.

    - Id's: O barco possui 3 partes. Cada parte tem um id diferente.
    Quando esta na posição vertical a sequencia é uma, e na horizontal
    a sequencia é outra. Por padrão, o primeiro npc começa com o barco na
    sequencia vertical, e o outro na sequencia horizontal

    ATENÇÃO! - MUITO IMPORTANTE
    - Posição: Se trata da posição inicial de cada peça do barco. O script irá
    utilizar elas como referência para as próximas posições, portanto cuidado.
    Vale lembra que ele considera que o barco irá ter apenas 3 partes, e o player irá ficar
    na posição do meio, no caso barcoPos[2] .

    - Padrão: Por padrão, o barco na vertical ira partir para o sul e o barco
    na horizontal irá partir para leste. Aproveite isso na hora
    de usar a criatividade no mapa, claro que também é possível fazer alterações, mas
    o teste do script foi feito usando os próprios padrões.

    Criando a rota

    Com tudo configurado, posições iniciais e nomes, você já esta pronto para criar as 2 rotas.
    Claro que nada impede que seu server tenha muitas rotas, considerando
    um npc para cada rota é claro.

    - Esta é a área inicial do NPC1, onde irei começar a fazer a primeira rota.






    - Selecione a ferramenta “ NO LOGOUT ZONE “ Padrão do seu MAP EDITOR para marcar a rota. Assim você facilita a visualização para colocar os Actions corretamente e tambem evita que alguem tente logar durante a viagem.






    - Tenha em mente, de que cada NPC apenas uma rota. Marque toda sua rota com a ferramenta “NO LOGOUT”.






    - O final de sua rota deve possuir um sqm livre para o jogador poder desembarcar corretamente.





    - Até agora, o barco apenas irá seguir uma unica direção, o sentido inicial da primeira rota (por padrão SUL). Como solução, para não irmos sempre pela mesma direção, iremos colocar sqms especiais, que irão fazer o barco mudar de direção

    - Para isso, selecione ultimo sqm da direção atual e adicione um action id conforme a tabela abaixo.

    7001 = Vira o barco para leste
    7002 = Vira o barco para oeste
    7003 = Vira o barco para norte
    7004 = Vira o barco para sul

    obs: Só é possível mudar de uma direção vertical para uma horizontal e vice-versa. Ex: Norte/Sul para Leste/Oeste






    - Na imagem abaixo é possível visualizar uma série de sqm configurados corretamente.






    - Para finalizar a primeira rota, iremos colocar uma action id especial no ultimo sqm.






    - De acordo com sua rota, utilize a action mais indicada para seu desembarque conforme a tabela abaixo.

    Desembarques:
    7005 = Desembarca personagem para direita
    7006 = Desembarca personagem para esquerda
    7007 = Desembarca personagem para cima
    7008 = Desembarca personagem para baixo

    obs: Só é possível desembarcar para um sentido paralelo a sua atual direção. Ex: Norte/Sul para direita/esquerda

    - Com a primeira rota ja pronta, iremos agora configurar a viagem do segundo NPC! Tenha cuidado para não se confundir com as marcações da “NO LOGOUT ZONE”. Não se preocupe com conflitos entre as rotas, pois as actions ids irão ser diferentes para cada NPC . Abaixo segue as tabelas que configuram a segunda rota.

    Direções:
    7009 = Vira o barco para leste
    7010 = Vira o barco para oeste
    7011 = Vira o barco para norte
    7012 = Vira o barco para sul

    Desembarques:
    7013 = Desembarca personagem para direita
    7014 = Desembarca personagem para esquerda
    7015 = Desembarca personagem para cima
    7016 = Desembarca personagem para baixo






    - Como ja dito antes, não há problema nenhum entre conflito de rotas, pois elas utilizam actions diferentes. Porém mantive cautela em marcar a rota, para não se confundir, e ter mais clareza na hora da marcação.








    comente!
  2. Gostei
    zlattan deu reputação a Ryzor em Player morre e nasce em posiçao errada   
    Cara se for por site pa cria conta em seu ot serv vai em xamp/htdocs/accountmanagement.php

    procure por essa linha > posx < ai vai ter 3 linhas vc poe a posição do seu templo exemplo 160 51 7..

    ajudei ? rep+ ae


    Hospede seu OTServ na LKM www.LkmHosting.com
    Compilação do OT em Linux!! Proteção DDoS!! Equipe especializada!! Migração de Windows para Linux!!
    E muito mais!
  3. Gostei
    zlattan deu reputação a diegolopes em Player morre e nasce em posiçao errada   
    Eaai galera , blz??
    entao quando player morre no meu otserv ele nasce em posiçao errada , poderiam me ajudar???

    arrumei posiçao na database , na config , mais nao adianto..
    ajudem pf!
  4. Gostei
    zlattan deu reputação a Ryzor em Manual de Referencia c++/Rapido   
    Referência Rápida de C++

    Variáveis
     
    tipo tamanho(bytes) descrição   char 1 representa um caractere ( valores entre 0 - 255 )
    short int 2 valor inteiro curto
    int 2,4 valor inteiro
    long int 4 valor inteiro longo
    float 4 valor real (ponto flutuante)
    double 8 valor real (precisao dupla)
    long double 10 valor real long (precisao dupla)

    signed indica que o valor possui sinal
    unsigned indica que o valor não possui sinal

    void tipo vazio Constantes

    Constantes do pré-processador:
    (PS: não se utiliza ponto-e-vírgula no final deste tipo de constante)
     
      #define <constante> <valor> exemplo:
     
      #define PI 3.1415926 Tipos Constantes:
     
      const <tipo> <nome> = <valor>; exemplo:
     
      const float PI = 3.1415926; Variáveis Estáticas

    (uma variável estática mantém seu valor inalterado, mesmo quando
    seu escopo não for mais válido)
     
      static <tipo> <nome>; exemplo:
    (variável estática de tipo inteiro)
     
      static int indice; Operadores Matemáticos e de Atribuição
      = atribuição (uma variável recebe um valor ou outra variável)
    + soma
    - subtração
    * multiplicação
    / divisão
    % resto da divisão (módulo)
    ++ incrementa uma variável (em uma unidade)
    -- decrementa uma variável (em uma unidade)
    += x = x + y
    -= x = x - y
    *= x = x * y
    /= x = x / y
    %= x = x % y Operadores Condicionais e Lógicos
     
      == comparação de igualdade (é igual)
    != comparação negada de igualdade (não é igual)
    > maior que
    < menor que
    <= menor ou igual
    >= maior ou igual
    && operador lógico 'E' (AND)
    || operador lógico 'OU' (OR)
    ! operador lógico 'NÃO' (NOT) Estruturas Condicionais

    Comando if
     
      if(<expressão condicional>)
    {
    <comandos>
    }
    else
    {
    <comandos>
    } exemplo:
     
      if(valor > 10)
    {
    cout << "O valor é maior que 10" << endl;
    }
    else
    {
    cout << "O valor é menor ou igual a 10" << endl;
    }
      Comando switch
    (a condição "default:" é executada quando nenhuma das outras é válida)
     
      switch(<variavel>)
    {
    case <valor>:
    <comandos>
    break;
    case <valor>:
    <comandos>
    break;
    ...

    default:
    <comandos>
    break;
    } exemplo:
     
      switch(opcao)
    {
    case 1:
    cout << "primeira opcao" << endl;
    break;

    case 2:
    cout << "segunda opcao" << endl;
    break;
    default:
    cout << "opcao invalida" << endl;
    break;
    } Estruturas de Repetição

    Comando for 
    (o número de repetições é conhecido)
    (pode-se entender a expressão condicional da seguinte forma: 
    "enquanto a expressão for verdadeira repita..." )
     
      for( <inicialização>; <expressão condicional>; <incremento> )
    {
    <comandos>
    }
      exemplo:
     
      for ( i = 0; i < 10; i++ )
    {
    cout << "valor de i = " << i << endl;
    } Comando while
    (o número de repetições não é conhecido, teste no início)
     
      while(<expressão condicional>)
    {
    <comandos>
    } exemplo:
     
      while( var != 1 )
    {
    cout << "Repitindo enquanto var for diferente de 1"<< endl;
    } Comando do while
    (o número de repetições não é conhecido, teste no final)
    (os comandos são executados pelo menos uma vez)
     
      do
    {
    <comandos>
    }while ( < expressão condicional > ); exemplo:
     
      do
    {
    cout << "Repitindo enquanto var é igual a 1"<< endl;
    }while( var == 1); Estruturas de Dados

    Vetores

    Declarando um vetor:
     
      <tipo> <nome>[tamanho]; exemplo:
    (declara um vetor de inteiros com 10 elementos)
     
      int vetor[10]; Acessando/Atribuindo um valor em um vetor:
    ( vetores são indexados a partir do valor 0 (zero)
    em um vetor de 10 elementos, o primeiro elemento é o 0 (zero)
    e o ultimo elemento é o 9 )
     
      <nome>[posição] = <valor ou variável>; exemplo:
     
      vetor[2] = 10; exemplo:
    (Percorrendo todas as posições de um vetor)
     
      for(int i = 0; i < 10; i++)
    {
    vetor = 0;
    } Matrizes

    Declarando uma Matriz:
     
      <tipo> <nome>[número de linha][número de colunas]; exemplo:
    (declara uma matriz de inteiros com 3 linhas e 6 colunas)
     
      int matriz[3][6]; Acessando/Atribuindo um valor em uma matriz:
     
      <nome>[<linha>][<coluna>] = <valor ou variável>; exemplo:
     
      matriz[1][2] = 10; exemplo:
    (Percorrendo todas as posições de uma matriz)
     
      for(int i = 0; i < 3; i++)
    {
    for(int j = 0; j < 6 ; j++)
    {
    matriz[j] = 0;
    }
    } Estruturas

    Uma estrutura permite agrupar uma série
    de tipos de variaveis a partir de um 
    único identificador (nome da variável)
     
      struct <novo tipo> 
    {
    <tipo> <nome>;
    <tipo> <nome>;
    ...
    <tipo> <nome>;
    }; exemplo:
     
      struct registro
    {
    string nome;
    string cargo;
    float salario;
    }; quando se declara um estrutura
    um novo tipo de dado é criado.
    No exemplo anterior o tipo de dado
    "registro" foi criado.
    Para declara e acessar um determinado campo
    desta estrutura deve-se fazer o seguinte:
     
      registro var;

    var.nome = "Fulano da Silva";
    var.cargo = "Programador";
    var.salario = 20000.00; Strings

    Strings armazenam uma cadeia de caracteres
    Em C++ utilizaremos o tipo string da biblioteca STL ( Standard Template Library)
    para isso é necessário adicionar o arquivo de cabeçalho <string> no código fonte

    #include <string>

    A forma de utilização da string do STL é simples, sem 
    ser necessário a preocupação com os seu tamanho e 
    limites de memória.

    A maioria dos operadores funcionam como 
    nos valores numéricos (+=, >, < , ==, etc)

    exemplo:

     
      string texto1;
    string texto2;

    texto1 = "Fulano ";
    texto2 = "da Silva";

    texto1 = texto1 + texto2;
    // agora texto1 possui o texto "Fulano da Silva" Funções

    Declarando funções:
    (se uma função possuir um tipo de retorno diferente de "void"
    é necessário retornar um valor utilizando o comando "return" )
     
      <tipo de retorno> <nome>( <lista de parametros> )
    {
    }

    exemplo:

    int soma ( int a, int b )
    {
    return a + b;
    } Chamando uma função:

    exemplo:
     
      int x;
    x = soma(2,2); Passagem de Parâmetro

    Passagem de parâmetro por valor:

    (a variável declarada na lista de parâmetros recebe
    o VALOR da variável utilizada na chamada da função)
     
      <tipo de retorno> <nome da função> ( <tipo1> <parâmetro1>, ... ,<tipoN> <parâmetroN> ) exemplo:
     
      int soma ( int a, int b )
    {
    return a + b;
    } Passagem de parâmetro por referência:

    (a varíavel declarada na lista de parâmetros passa a ser
    um APELIDO (alias) para a variável utilizada na chamada
    da função: LEMBRE_SE: modificando a variável do parâmetro 
    modifica também a variável utilizada na chamada da função )

    (um '&' é adicionado no final do tipo para representar
    que o parâmetro é uma referência)
     
      <tipo de retorno> <nome da função> ( <tipo1>& <parâmetro1>, ... ,<tipoN>& <parâmetroN> ) exemplo:
      void soma ( int& a, int& b )
    {
    a = a + b;
    } Funções com valores padrão

    ( C++ permite que as variáveis declaradas nos parâmetros
    de uma funções possuam um valor padrão, facilitando a chamada de função )
    (Estes parâmetros devem ser colocados no final da lista, de traz para frente)

    exemplo:
     
      float divide ( float a, float b = 2.0)
    {
    return a / b;
    } ( para chamar a função temos duas alternativas )
     
      float x;
    x = divide(2);
    x = divide(2,3); ( se um valor for omitido, ele assume seu valor padrão )


    Entrada e Saída

    Para a utilização dos operadores de entrada
    e saída de dados é necessário adicionar o arquivo
    de cabeçalho <iostream> no código fonte

    #include <iostream>


    cin

    (le um valor do teclado e armazena em uma variavel)
    (um valor é lido após um <enter> um <espaço> ou um TAB)
    (cin utiliza o operador de extração ">>" )
     
      cin >> <variável1> >> <variável2> >> ... >> <variávelN>; exemplo:
     
      int opcao;
    cin >> opcao; cout

    (escreve na tela valores ou variáveis)
    (cout utiliza o operador de inserção "<<" )
     
      cout << <variavel ou valor> << ... << <variável ou valor>; exemplo:
     
      int var = 10;
    cout << "Fulano da Silva";
    cout << var; Formatando cout

    para formatar a siada de cout se utiliza os manipulador
    definidos no arquivo de cabeçalho <iomanip>
     
      #define <iomanip> Lista dos principais manipuladores:
     
      dec os numeros são exibidos em decimal
    oct os numeros são exibidos em octal
    hex os numeros sao exibidos e hexadecimal

    fixed representação fixa
    scientific representação científica
    setprecision(n) determina que o numero possuirá n digitos de precisão

    endl indica linha nova
    left alinha a esquerda
    right alinha a direita exemplo:
     
      float val = 10.2345;
    cout << fixed << setprecision(2) << val;
    // val será mostrado na tela como "10.23"  
    Espero que ajude alguem!
     
     
    Creditos:
    vyctor17
     
     
     
  5. Gostei
    zlattan deu reputação a Ryzor em Scripting Dictionary   
    Scripting Dictionary

    Antes de tudo
    Olá comunidade Tibia King. Venho através desse tutorial facilitar a vida de muitos scripters.
    Trago a vocês o Scripting Dictionary. Uma forma mais simples de entender aquelas siglas ou palavrinhas chatas encontradas em todos os scripts e que poucas pessoas sabem o significado ou o motivo de estar ali.
    Vocês também podem ajudar a aumentar o conteúdo desse dicionário enviando-me as palavras que vocês gostariam de serem adicionadas. Para isso, poste nesse mesmo tópico.
    Estou disposto a atualizar sempre que for preciso o tópico, mas, caso algum imprevisto aconteça, a moderação está liberada para editar, adicionando dicas e palavras, sempre seguindo o mesmo padrão de postagem, enfatizando as palavras. Assim teremos uma melhor organização.
    Por fim, gostaria que todos os scripters, experientes ou não, e principalmente os que estão iniciando sua possível carreira na área, dentro da comunidade TK, lessem e corrigissem, se necessário.





    Começando


    array
    Array é uma variável onde há dois ou mais valores. É conhecido como vetor ou lista. Dependendo do caso, também pode ser conhecida como matriz. Cada valor dentro da array tem sua posição que é dada por um índice e que, geralmente, segue uma sequência de números inteiros. Pode ser local ou global.
    Exemplo: local arr = {1, 2, "valor 3", 503, variavelTeste}

    cid
    Normalmente uma variável onde é atribuida a identificação da criatura que, em muitos casos, está executando o script. A sigla cid vem do inglês Creature Identification.
    Exemplo: if isPlayer(cid) == TRUE then

    concatenação
    Éo ato de juntar uma ou mais strings. Em Lua, a concatenação é feita com o simbolo Ponto-Ponto (..)
    Exemplo: print("Skyen".."_".."Hasus")
    A saída gerada por esse comando seria: Skyen_Hasus.

    do
    1. Normalmente usada no começo de funções que exercem alguma ação. Pode ser usada separada (sozinha) ou em alguma condição (ex. if). Tem sua tradução mais próxima da palavra fazer.
    2. É utilizado em conjunto com o FOR, tendo de estar, obrigatoriamente, no final da linha em que há o loop for.
    Exemplo: doSendMagicEffect(pos, effect)
    Exemplo: for i =1, 10 do

    else
    É utilizado em condições. Caso todas as outras não sejam verdadeiras, o else será executado. É sempre usado sozinho e pode ser entendido como "Se não:". É utilizado em conjunto do if.
    Exemplo:

    if 1 > 2 then
    else
    -- script
    end[/code] [b]elseif[/b]
    Assim como o else, é utilizado em conjunto do if e serve para verificar se há outra possível condição. Pode ser entendido como "Ou se:".
    Exemplo:

    [code=lua]
    if 1 > 2 then
    elseif 1 < 2 then
    --script
    end end
    End é utilizado para fechar todas as condições, inclusive o loop for. Significa FIM. Tudo o que abre (if e for) deve ser fechado com um end.
    Exemplo:

    if 1 > 2 then
    else
    -- script
    end[/code] [b]get[/b]
    É muito encontrada em funções, onde sempre é retornado um valor, nulo ou não. Get, em inglês, no nosso caso, tem a tradução mais próxima de obter. As funções que começam com get, nunca estarão sozinhas, e sim, dando valor a alguma variável ou comparado a algo.
    Exemplo: local level = getPlayerLevel(cid)

    [b]if[/b]
    Obrigatoriamente deve ter em um script. Claro, há excessões, sempre há excessões. Serve para impor uma condição. Essa condição pode ser verdadeira ou falsa. Caso seje verdadeira, a continuação do script continuará até encontrar um END, caso contrário, verificará os elseifs e se não for verdadeiro com nenhum, havendo um else, será executado o código a partir dele.
    A palavra if é proveniente do inglês e significa SE.
    Exemplo: if level >= 30 then -- (Se level maior ou igual a 30, então)

    [b]is[/b]
    Is, no começo de funções, é para fazer uma verificação. Sempre é usada em alguma condição e tem seu significado mais próximo da palavra é.
    Exemplo: if isPlayer(cid) == TRUE then

    [b]loop[/b]
    Loop é o nome dado a função que é executada várias vezes até que haja a condição para que ele pare. O mais utilizado é o for, mas também, na linguagem LUA temos o while e repeat.
    Exemplo: for i = 1, 10 do

    [b]parâmetros[/b]
    Parâmetros de uma função são todas as variáveis que se encontram entre os parênteses.
    Exemplo: doRemoveItem(uid) -- uid é o parâmetro da função doRemoveItem

    [b]syntax sugars[/b]
    São as facilidades que a linguagem de programação permite ao programador.
    Exemplo 1:
    [code=lua]
    var = "Skyen Hasus"
    print(string.upper(var)) -- Normal
    print(var:upper()) -- Syntax Sugar
    Ambas as saídas geradas seriam: SKYEN HASUS.

    Exemplo 2:

    teste = function(s) -- Normal
    end
    function teste(s) -- Syntax Sugar
    end[/code] Apesar de parecerem legais, evite usar Syntax Sugars quando desnecessário, pois podem causar problemas se usadas incorretamente.


    [b]set[/b]
    Palavra utilizada no começo de nomes de funções que estabelecem valor de algo. É muito utilizado por iniciantes apenas para quests, mas tem muito mais importância que isso. No português, tem o significado mais próximo de estabelecer. [color=DarkRed](conteúdo a ser ampliado)[/color]
    Exemplo: setPlayerStorageValue(cid, 3001, 1)

    [b]string[/b]
    Corresponde a um texto, as strings sempre são entre aspas.
    Exemplos: "string" ou 'string'
    Note que há dois tipos de aspas, as duas são válidas.

    [b]then[/b]
    Utilizado em conjunto do if ou do elseif. Pode ser entendido como ENTÃO. Sempre será encontrado no fim da linha em que haja as condições citadas.
    Exemplo: if getPlayerStorageValue(cid, 3001) > 0 then

    [b]variáveis[/b]
    Variáveis são valores reservados na memória ram do computador para serem utilizados durante o script. Pode-se entender por variável, quando é encontrado a palavra var ou variable (em inglês). Variáveis podem ser locais ou globais, nesse último caso, tendo uso em mais de uma função.
    Exemplo: local level = getPlayerLevel(cid)
    Exemplo: global estatistica = estatistica + 1


    [b]Você também pode ajudar[/b]
    Perguntando o que você não entendeu é uma forma de ajudar. Poste suas dúvidas aqui, não tenha vergonha.
    Outro modo de ajudar, é postando mensagem com as palavras que você não sabe o significado ou sabe e não está aqui.
    Quero deixar claro que eu não sou expert e não saberei tudo. Pesquisarei e tentarei deixar o mais claro possível todo o conteúdo aqui contido.
    Eu gostaria que esse dicionário funcionasse como a wikipedia, onde todos podem editar e corrigir. Mas como não há a possibilidade de todos editarem, postem.

    Se você editou algo, ponha seu nome.
    Se você postar conteúdo a ser adicionado, seu nome irá ser posto aqui.

    [b]Atualizações[/b]
    05.08.2009 - Adicionado as palavras array, loop e set.
    06.08.2009 - Adicionado as palavras if, else, elseif, end, string (Nord) e then.
    06.08.2009 - Atualizado a palavra do.
    09.08.2009 - Adicionado as palavras concatenação e syntax sugars. (Skyen Hasus)
    18.08.2009 - Atualizado a palavra end. (marcryzius)


    Creditos

    Pivizz
  6. Gostei
    zlattan deu reputação a Ryzor em Declarando variáveis de forma simples   
    {B}em... muitos vezes vejo nos meus e nos scripts de outras pessoas sendo declarandas variáveis uma embaixo da outra, como por exemplo:



    local stor1 = getPlayerStorageValue(cid,5551) local stor2 = getPlayerStorageValue(cid,5552) local stor3 = getPlayerStorageValue(cid,5553) local stor4 = getPlayerStorageValue(cid,5554) local stor5 = getPlayerStorageValue(cid,5555) local stor6 = getPlayerStorageValue(cid,5556) {U}ma forma de simplificar isto seria separando as variáveis por vírgula, colocando todas antes de um igual(=) e colocando, depois do igual(=), o valor atribuído a cada variável RESPECTIVAMENTE. Usando o exemplo acima, ficaria assim: local stor1, stor2, stor3, stor4, stor5, stor6 = getPlayerStorageValue(cid,5551), getPlayerStorageValue(cid,5552), getPlayerStorageValue(cid,5553), getPlayerStorageValue(cid,5554), getPlayerStorageValue(cid,5555), getPlayerStorageValue(cid,5556)


    {S}e você não faz assim não quer dizer que está errado, afinal cada um acha mais fácil uma maneira... meu objetivo é apenas ampliar seu conhecimento, afinal, não é porque você só faz de uma maneira que não precisa saber outras...


    Creditos

    Antharaz
  7. Gostei
    zlattan deu reputação a Ryzor em Sistema de Transformação   
    Nome: Tranformação
    Autor: SkyFail
    Versão Testada: Original Tibia 8.54 - Cliente 8.54

    Informações Adicionais
    Transformações de Classes
    Obs:So Serve em Servers ATS pois não pode Trocar Outfuit Cada Classe Tem que ter a Propria.

    Vamos la, Va em:

    Código PHP:
    Data/Talkaction/Talkaction.xml
    Adicione esta Tag:
    Código PHP:
    <talkaction words="!transf" event="script" value="transf.lua"/>

    Entre em:

    Código PHP:
    Data/Talkaction/Script


    Copie um Arquivo Qualquer Renomeie para: transf e apague o que estiver dentro e adicione:




  8. Gostei
    zlattan deu reputação a Ryzor em Como Criar uma Calculadora em C++   
    Primeiramente você deve ter um Editor de Texto e um Compilador.
    Recomendados:
    Windowns - Dev-ccp
    Linux - Gedit e Terminal (G++) Acredito que em todos Linux já venha integrado.

    1º Abra seu Editor(Gedit ou Dev-Ccp) e escreva as libs que vamos usar
    Código: [#include <string> #include <iostream> 2º Digite int main() e Abra seu Escopo.
    3º Agora Vamos Criar as Variáveis:
    Código:   char SkyFail; std::string r("potencia"); double x=0; double y=0; double z=0; Vou Explicar
    SkyFail = a Variavel onde ira guardar o tipo de Conta
    std::string r("potencia"); = Necessário para que você posa usar Letras no IF.
    double z x e y = Onde ira guardar os numeros da soma
    Agora uma parte muito importante:
    Código:   std::cout<<"Informe o X: "; std::cin>>x; std::cout<<"Informe a Operação: (+, -, *, /, %, potencia): "; std::cin>>r; Ira Enviar a Mensagem Informe o X ai você ira falar o numero que quer no X
    Informe a Operação - Você deve informar qual o tipo de operação deseja fazer.
    Lembra do std::string? Usaremos ele agora:
    Código:   if(r.compare("potencia")==0) { std::cout<<"Quadrado(2) ou Cubo(3)? : "; std::cin>>SkyFail; } else { std::cout<<"+, -, *,/ ou %? : "; std::cin>>SkyFail; std::cout<<"Informe o Y: "; std::cin>>y; } Se a Pessoa Dizer que quer fazer potencia perguntara se deseja Quadrado(Digite 2) ou Cubo(Digite 3)
    se não dizer Potência Refaz a pergunta de qual operaçao deseja.
    Agora a Parte Final Onde Estará as Contas.
    Código:   switch(SkyFail) { case '+': z = x + y; break; case '-': z=x-y; break; case '*': z=x*y; break; case '/': z=x/y; break; case '%': z=x*y/100; break; case '3': z=x*x*x; break; case '2': z=x*x; break; } std::cout<<"O Resultado e:"<<z<<"\n"; } Case '+': z=x+y
    Se o player escrever + fazer x+y(Que ja foi pedido antes) e z = resultado
    std::count Irá mostrar o resultado <<z e o <<"\n" serve para que a resposta não fique pregada ao texto do CMD ou Terminal.
    os std::cin>>Serve para Registrar o que você digitou.

    Obs:Se for windowns no final coloque
    system("PAUSE");
    return EXIT_SUCCESS;
    Obrigado
     
  9. Gostei
    zlattan deu reputação a Ryzor em sistema de refinamento perfeito 2.0   
    Autor : Mock
    Servidor Testado : TFS 0.3.6


    Vamos instalar.
    Adcione essa tag no actions.xml:

    <action itemid="8306" event="script" value="upgrade.lua"/>
    <action itemid="8305" event="script" value="upgrade.lua"/>
    Bom a segunda é um segundo item que tem 100% a mais de chance de acertou, ou seja esse nunca falha, e o normal com nem uma chance adcional é o itemid 8305.
    Agora em upgrade.lua coloque isso:







    Veja ele funcionando:


    E agora com a possibilidade do slot ssystem conjunto com esse sistema vc pode fazer coisas assim:

    Código:
    12:02 You see a knife +1 [hp.+7%] (Atk:8, Def:6).

    Creditos
    Mock ( Por Fazer O Script )
    GodMarini ( Por Trazer Ao TK )
  10. Gostei
    zlattan deu reputação a Ryzor em Glossário - Fundamentos de PHP e OTServ   
    PHP e OTServ
    Glossário de Fundamentos Básicos
     
     
    Olá!
    No intuito de expansão do conhecimento da linguagem de programação PHP, tive a idéia de montar um guia prático de iniciação e de manipulação em PHP. Inicialmente, irei abordar os vários conceitos básicos do PHP e, posteriormente, a interação entre PHP e OTServ. Para isso, Boleta(eu) e Lancer irão, ao longo dos dias, atualizar o tópico com novos assuntos, funcionalidades, tutoriais... Portanto, não é um tópico "finito", inicialmente, pois estaremos sempre trazendo novidades. - O Funcionamento do Tópico
    Para uma boa organização e visualização do tópico, ao final de cada atualização iremos adicionar um "log" com todas as modificações feitas. Esse "log" ficará no fim da página. Também editaremos o título do tópico para que fiquem bem visíveis as mudanças.

    Teremos, também, um índice, onde ficará muito fácil localizar os conteúdos do tópico. -Observações Importantes
    Não haverá tolerância em relação aos engraçadinhos que entram no tópico para falar "não entendi nada", "nossa você é bom mesmo", "legal o tópico" ou comentários do gênero. Caso seja visto, encaminharei o caso aos moderadores.

    O tópico está totalmente aberto à qualquer tipo de dúvidas relacionadas à PHP . Pedidos, dúvidas sobre OTServ ou coisas parecidas estão completamente dispensados.

    Nós não temos a obrigação de te ajudar. Criamos esse tópico para auxílio e não somos obrigados a tolerar qualquer tipo de indolência, desrespeito e inveja. Entenda que ajudaremos quando possível.
    Não envie mensagens particulares com perguntas. Caso tenha dúvidas, faça um post aqui .

    Não faça plagio do tópico. Ele foi criado para a OTServ Networks. Caso retire qualquer conteúdo do mesmo, deixe explícito os devidos créditos. Caso a regra acima não seja respeitada, iremos tomar providências muito severas com os responsáveis.
    Índice

    1 - Introdução 1.1 - O que é PHP
    1.2 - Como usar o PHP
    1.3 - XAMPP
    1.4 - Banco de Dados MySql
    2 - Iniciando 2.1 - Página
    2.2 - Tag PHP
    2.3 – Rotinas ----------------------------------

    1 - Introdução
    1.1 - O que é PHP PHP é uma Linguagem de Programação em ambiente WEB onde se idealiza e cria websites. É uma das linguagens mais usadas para esse fim e é muito flexível. Para os programadores com experiência em outras linguagens de programação, PHP se torna uma linguagem simples e de fácil uso. Seu website oficial é o www.php.net, onde se econtra tudo sobre PHP.

    A versão atual do PHP é a versão 5, e nosso curso é baseado nela.
    1.2 - Como usar o PHP O PHP é uma ferramenta que nescessita de um servidor para que funcione. Junto a esse servidor é nescessário, também, um Web Servidor, que faz com que eu, você e qualquer outro possamos acessar páginas na Web.

    Atualmente, existem Kits práticos que integram ambas as funcionalidades em um único softwares. Nesse mini-curso, usaremos o Xampp, que é um dos melhores que existem no mercado atualmente. 1.3 - XAMPP
     
     
     

    Site Oficial: http://www.xampp.org/
    Download Link (Windows): http://www.apachefriends.org/download.php?xampp-win32-1.6.6a-installer.exe
    Download Link (Linux): http://www.apachefriends.org/download.php?xampp-linux-1.6.6.tar.gz

    Faça o download do XAMPP e instale-o em seu computador.
    Após instalá-lo, inicie o Xampp Control Panel. Em frente à Apache e Mysql, veremos 2 botões, chamados "Start". Clique nos dois e assim iniciaremos ao mesmo tempo o WebServidor + Servidor PHP (Apache) e o Servidor MySQL (Banco de Dados). Ficará mais ou menos assim:



    Só isso? Sim, só isso. Agora temos um servidor web rodando e um servidor mysql rodando. Para ver a página inicial criada pelo XAMPP, acesse http://localhost/.
    1.4 - Banco de Dados MySql Acredito, eu, que a maioria de vocês já ouviu falar em banco de dados. Pois bem, para aqueles que não sabem o que é, um banco de dados serve para guardar informações, desde pequenos números até longos textos.

    Podemos usar o Banco de dados MySql em qualquer plataforma e de maneira fácil. De acesso de longa distância a acesso local. Será nele que trabalharemos nosso curso.

    Só para exemplificar, os grandes OTServs (a maioria deles) usam o MySql para guardarem as informações do seu servidor. Contas, guilds, casas, etc. 2 - Iniciando 2.1 - Página

    Em PHP não possuímos um compilador, como na maioria das linguagens de programação para ambiente windows. Todas as páginas são criadas a partir de arquivos, onde a extensão pode variar. Normalmente, usa-se a extensão .php, que indica que a página exibida está sendo "nutrida" por um servidor PHP.

    No Xampp, colocamos todos os arquivos dentro da pasta "htdocs" (C:\Xampp\htdocs [o diretório vai depender de onde você instalou o Xampp]) que é a pasta raiz. Aconselho a você que se quiser montar vários sites, crie pastas para cada um. Estes serão acessíveis no link http://localhost/pasta/ .

    Quando acessamos um link sem especificar o arquivo (como no exemplo acima), o webserver procura o arquivo index (.php, .html, .htm, etc) e exibe seu conteúdo no navegador. Páginas específicas são acessadas assim: http://localhost/pasta/pagina2.php . Além disso, pode-se acessar arquivos em subspastas:http://localhost/pasta/pasta2/pasta3/arquivo5.php .

    Por questão de segurança, é importante que você mantenha uma página index.php em todas as subpastas do seu site, para que ninguém possa acessar seus arquivos e obtê-los.
    Por enquanto não abordaremos HTML, mas aconselho a vocês que deem uma olhada nos tópicos referente ao assunto, ainda nessa seção do fórum. 2.2 - Tag PHP O PHP é uma linguagem onde não se executa nenhum código no browser do usuário, ou seja, todas as informações são processadas e executadas no servidor e em seguida são enviados, ou não, dados ao navegador. 

    Para exemplificar bem, imagine que sua professora peça a você um trabalho sobre literatura. Você o faz e entrega para ela apenas o trabalho pronto. Em PHP, temos uma situação parecida: o navegador requisita, ao servidor, uma página (função da professora) e o aluno, após fazer as pesquisas e rascunhos (função do programador), monta o trabalho completo e entrega à professora apenas o resultado de tudo que ele pesquisou, processou, executou (função do servidor).
    Nosso trabalho, como programadores, é montar os rascunhos e entregá-los de presente ao servidor. Para isso, usamos as páginas, como vimos no tópico acima.

    O Servidor PHP funcionará da seguinte maneira:
    Abrirá o arquivo indicado, procurará por todos os códigos PHP que possam existir dentro desse arquivo, processará e, caso haja nescessidade de retorno de informações, "escreverá" na página. É importante ressaltar que o navegador não entra em contado com os códigos feitos pelo programador em nenhum momento, pois esse já terá sido "eliminado" pelo servidor PHP.

    Uma página Web, em 99,9% das vezes, não é feita só de códigos PHP. Sendo assim, devemos indicar, no arquivo, o espaço reservado à execução dos códigos PHP. Isso é feito da seguinte maneira:
    Código PHP:   <?php ?>  
    Chamada de Tag PHP, esse espaço delimitado criado por nós faz com que todo o código que esteja depois de <?php e antes de ?> seja depurado pelo servidor. É importante resaltar que podemos ter quantas Tags PHP quizermos dentro de nossa página.
     
    2.3 - Rotinas Em PHP, como toda linguagem de programação, temos como base o uso de Rotinas. Em programação, usar uma Rotina quer dizer ordenar ao servidor que execute algo. Para exemplificar, imagine que você esteja com sede e ordena à sua mãe que busque para você um copo d'água. Esse "ordenar" exerce a mesma função da Rotina. Para ser mais claro, vamos ao nosso primeiro exemplo prático. Quando programamos, passamos por 3 fases: a fase onde se escolhe o que vai fazer, a fase em que se cria a ideologia do código, ou seja cria-se, mentalmente, um código falado (algorítimo), e a fase em que se monta o código que executará aquilo que você deseja. Vamos em partes: 1ª Fase: Quero que o programa escreva na tela: "Ser ou não ser, eis a questão". (É o que eu quero fazer) 2ª Fase: Escreve na tela: "Ser ou não ser, eis a questão". (Ordem: Diz que quer escrever na tela um texto, em língua portuguesa) 3ª Fase: Código PHP:   <?php echo 'Ser ou não ser, eis a questão'; ?> (Código)
    E pronto! Temos montada nossa primeira linha de código:
    Usamos a rotina Echo, que faz com que o servidor insira, à página, certo texto. Logo em seguida, informo ao echo o que quero que ele escreva na tela. Esse complemento, que auxilia a rotina, é chamado de parâmetro (podemos ter vários em uma só rotina). Logo depois, inserimos o ponto e virgula ( ; ) para informarmos que chegamos ao fim daquela rotina. Para testar, cole o código acima em um arquivo qualquer (dentro da pasta htdocs, claro), salve-o e acesse o arquivo (pelo navegador da internet).  
     
     
               Creditos:
     
                     Boleta
                     GodMarini
     
  11. Gostei
    zlattan deu reputação a Ryzor em [PEDIDO] RME   
    Bom como fiquei muiito tempo afastado do [ Tibia ] , agora estou querendo voltar a mecher , e presisava do RME mais atulizado sem bugs que pode rodar em todas versões do tibia...
     
     
    Att: Marini!
  12. Gostei
    zlattan deu reputação a Ryzor em [Action] Destruir Paredes   
    Olá pessoal eu venho aqui contribuir com algo que creio eu que não á por aqui.
    é o meu primeiro Script (action) que fiz com a intenção de trazer mais RPG a
    servidores.

    Testado em: TFS 0.3.6 (8.60)
    Descrição: O Script funciona da seguinte maneira, o player da use em um Machado e clica na parede, logo
    depois a parede será destruida, a parede quebra em 3 Partes, ou seja tem que usar o machado 3
    vezes na parede.

    Bom vamos ao Script

    1° Primeiramente você tera que ir no RME e colar um UniqueID na parede que será destruída

    Em data/actions/scripts copie um arquivo qualquer e renomeie para destruction.lua






    2° Agora em data/actions/actions.xml adicione:


    Código:
    <action itemid="2391" event="script" value="destruction.lua"/>
    Legenda:
    Verde: ID do item que será usado para destruir a parede, eu uso este:
    Vermelho: São os id das paredes, Ex: parede normal, parede destruida, parede mais destruida.
    Azul: São os id das paredes depois de destruida, Ex: id 3361 vai virar 3399, depois 3399 vai virar 3387 assim por diante



    Vídeo mostrando o Sistema;

    http://youtu.be/-01nLh9L3Bg



    Créditos:
    Bloodwalker ( Por Fazer O Script )
    GodMarini ( Por trazer Ao TK )
  13. Gostei
    zlattan deu reputação a Ryzor em Global Event Boate(Otimizado)   
    Nome: Boite System(Mock)
    Autor: Mock - Remake #GodMarini
    Versão Testada: The forgotten server 0.3.5 PL1 - 8.50


    Em data/globalevents/globalevents.xml coloque esta tag:
    Código PHP:

    <globalevent name="boate" interval="1" script="boate.lua"/>


    Em data/globalevents/scripts crie um arquivo chamado boate.lua e coloque isto em seu conteúdo:





    E agora, como eu configuro?

    Simples, viu aquela parte lá, POSITIONS?


    POSITIONS = {
    [1] = {x=146, y=59, z=8},
    [2] = {x=138, y=61, z=8},
    [3] = {x=142, y=57, z=8},
    }



    Para adicionar mais é só aumentar um dos números entre colchetes, colocar a posição igual tá os outros, e no final colocar uma vírgula.
    Por exemplo:

    Código:
    [4] = {x=1044, y=1023, z=7},E assim vai.

    2 avisos:
    ºOs monstros devem estar PARADOS, ou seja, tranque-os em celas ou ponha pz ao seu redor.

    ºFaça somente se estiver de noite ou for em um sub-solo. Senão a luz será a luz do dia.
  14. Gostei
    zlattan deu reputação a Ryzor em Removedor Automático de frags   
    Vamos lá, faça uma cópia de qualquer arquivo dentro da pasta globalevents\scripts e renomeie para "removeFrags.lua"
    Agora abra o arquivo, apague tudo que tiver dentro e coloque isso:







    Agora vá em globalevents.xml e adicione isso:


    Código:
    <globalevent name="removeFrags" interval="18000" event="script" value="removeFrags.lua"/>

    Pronto, agora é só rodar

    Agora vou explicar o script:

    Onde está em...

    Vermelho: É o tempo de intervalo entre uma remoção e outra. 18000 são 5 horas pois 18000 ai está em segundos, e 18000 segundos = 5 horas
    Caso queira mudar, já sabe como fazer né? Mas não se esqueça de mudar a mensagem também caso vá mudar o intervalo.

    Roxo: É uma função pra pegar todos os players online pra mim, e fazer uma ação em cada um deles. Pra quem não entende muito bem, o "pid" ali é o ID do player na qual ela está checando.

    Verde: É a função que é executada em todos os players.

    Marrom: É a mensagem que é mandada após a remoção.


    Creditos
    Ramza ( Por Fazer O Script )
    GodMarini (Por Trazer Ao TK )

Informação Importante

Confirmação de Termo