antiblock
Rodnia | Alpha & Omega

DanielCR

Membro
  • Content Count

    5
  • Joined

  • Last visited


Reputation Activity

  1. Upvote
    DanielCR reacted to obetuno in (Tut) Instalação Do Web Server No Freebsd   
    INTRODUÇÃO:
    Vim por meio deste criar o meu primeiro tutorial fruto do meu curso de FreeBSD que estou ainda iniciante.
    Mas o pouco que aprendi posso passar como conhecimento para nosso fórum.
    Vou vos ensinar a meter o site do jogo ON de dentro do próprio freeBSD que hospeda vossos servidores de Metin, assim como há nas files do Daroo e em outras por ai... Vou utilizar uma linguagem bem simples para que todos possam entender. Se alguém quiser opinar ou me corrigir em qualquer coisa que venha ser lida fiquem a vontade para corrigir usando este mesmo tópico. (Todos os comandos sÃo antecedidos pelo símbolo “#” e logo abaixo do comando vos explico o que ele faz).
    Mas por que colocar o site lá dentro?
    - FreeBSD é um sistema operacional para servidores, seguro, usado em várias empresas assim como a famosa Yahoo.
    - Possui uma plataforma para instalaÇÃo do servidor web Apache, MySQL e PHP5... Todas as ferramentas que necessitamos para hospedar nosso site
    - Sem nenhuma configuraÇÃo no ipfw (firewall do FreeBSD), o sistema já possui implantado várias proteÇões necessárias para um site de jogo, que convenhamos, é alvo a todo momento de Hackers ou pessoas que se denominam como tal. Vem com um ant DDoS e ant Flood sem configurar nada.
    - Para aqueles que nÃo sabem, ataques como estes (mais comuns) bloqueiam o acesso de vosso site com envio de pacotes em excesso, que de alguma forma deixam o servidor sobrecarregado, forÇando o mesmo a cair ou em outros casos um programa que bloqueia a comunicaÇÃo (porta 80) do servidor web ou qualquer outra porta que esteja usando nesta funÇÃo.
    - O FreeBSD descarta pacotes inutilizáveis e você pode até mesmo bloquear o IP da pessoa que está te atacando, deixando o servidor web inacessível para ela.
    - Existem outras maneiras também que logo irei comentar que você pode mandar o ataque do inimigo de volta para ele mesmo, deixando sua internet lenta... O seu servidor devolve cada pacote enviado de volta para quem mandou, e usa da sua capacidade de servidor para floodar o computador desktop.
    - Claro que as proteÇões existentes a default no FreeBSD sÃo suficientes para deter estes inimigos e há mais proteÇões que podemos implementar. Mas o foco do tutorial é instalaÇÃo do servidor web! Vamos comeÇar...
    O que é necessário para a instalaÇÃo da HTTP Service:
    - A maquina FreeBSD (seja virtual ou dedicada) deve estar conectada a internet !
    - Você precisa executar todos os passos em modo Administrador (ROOT)
    - O tutorial foi testado em versões 7.1, 8.2 e 9.0 tanto 32 quanto 64bits, o processo é o mesmo.
    - Recomendo que para treinar, nÃo utilize sua máquina do servidor... Formate uma maquina virtual nova com uma versÃo qualquer do FreeBSD para isto ! Qualquer erro basta comeÇar de novo (foi assim que aprendi... ERRANDO).
    - Acesso SSH pelo root já configurado. Se já tiveres o Metin na máquina, provavelmente já vem configurado.
    - O MySQL já deve estar instalado. (MOTIVO: NÃo posso vos mostrar como instalar o MySQL pois isso já faz parte da instalaÇÃo de um servidor Dedicado Raiz). Se você roda o Metin nas suas files, provavelmente o MySQL já está instalado...
    - NÃo irei explicar a respeito do SSL... Isto é opcional.
    DESENVOLVIMENTO:
    (Passo a passo, comandos indiretos e auto-explicativo)
    1º Passo (Atualizando o Ports)
    O FreeBSD possui um tipo de Pack de programas dentro dele mesmo. Pode ser instalado opcionalmente na formataÇÃo da maquina ou baixado de dentro do próprio sistema operacional, diferente de antigamente que para dominar servidores Unix era necessário muito conhecimento técnico. As versões BSD, estÃo a cada dia tornando mais fácil a nossa vida ! J Já nÃo é mais necessário ser técnico, com apenas alguins comandos o FreeBSD faz tudo sozinho.
    Utilizando o PuTTy ou Filezilla, vá até a pasta “/usr” e verifique se você possui a pasta PORTS ! Ela é nosso pack de programas. Se você já possui o Metin2 instalado, é quase certeza que ela já existe, pois o metin exige a instalaÇÃo do MySQL para funcionar.
    Caso nÃo tenha terá que baixar Mas vou deixar a default no nosso tutorial o que vai ser o caso da maioria.
    Em modo ROOT, mande os seguintes comandos:
    # portsnap fetch update
    (Este comando irá atualizar o nosso Pack de Programas)
    - Pode ser demorado, depende do tamanho da atualizaÇÃo.
    # portsnap extract
    (Este comando irá extrair a pasta Ports para “/usr/ports”)
    Vai comeÇar cair muitas linhas no console ! é normal o.o NÃo te preocupas, mas o processo pode demorar.
    Ao término, o console irá mostrar a linha de comando vazia assim:
    NOME_DO_HOST# Aí já podemos seguir o próximo passo.
    2º Passo (InstalaÇÃo do MySQL) - Que iremos Pular
    Como dito anteriormente, MySQL já entra na instalaÇÃo do Metin Server.
    Se as files já possuem Metin2, o MySQL já deve estar instalado.
    3º Passo (InstalaÇÃo do Apache)
    # cd /usr/ports/www/apache22/
    (Este comando irá a pasta de instalaÇÃo do Apache22)
    # make config
    (Este comando abrirá as opÇões da instalaÇÃo)
    ATENÇÃO PARA MARCAR ESSAS OPÇõES
    QUALQUER ERRO RESULTA NO MAU-FUNCIONAMENTO DO WEBSERVER
    [X] THREADS Enable threads support in APR
    [X] MYSQL Enable MySQL support for apr-dbd
    [X] IPV6 Enable IPv6 support
    [X] BDB Enable BerkeleyDB dbm
    [X] AUTH_BASIC Enable mod_auth_basic
    [X] AUTH_DIGEST Enable mod_auth_digest
    [X] AUTHN_FILE Enable mod_authn_file
    [X] AUTHN_DBD Enable mod_authn_dbd
    [X] AUTHN_DBM Enable mod_authn_dbm
    [X] AUTHN_ANON Enable mod_authn_anon
    [X] AUTHN_DEFAULT Enable mod_authn_default
    [X] AUTHN_ALIAS Enable mod_authn_alias
    [X] AUTHZ_HOST Enable mod_authz_host
    [X] AUTHZ_GROUPFILE Enable mod_authz_groupfile
    [X] AUTHZ_USER Enable mod_authz_user
    [X] AUTHZ_DBM Enable mod_authz_dbm
    [X] AUTHZ_OWNER Enable mod_authz_owner
    [X] AUTHZ_DEFAULT Enable mod_authz_default
    [X] CACHE Enable mod_cache
    [X] DISK_CACHE Enable mod_disk_cache
    [X] FILE_CACHE Enable mod_file_cache
    [X] DAV Enable mod_dav
    [X] DAV_FS Enable mod_dav_fs
    [X] ACTIONS Enable mod_actions
    [X] ALIAS Enable mod_alias
    [X] ASIS Enable mod_asis
    [X] AUTOINDEX Enable mod_autoindex
    [X] CERN_META Enable mod_cern_meta
    [X] CHARSET_LITE Enable mod_charset_lite
    [X] DBD Enable mod_dbd
    [X] DEFLATE Enable mod_deflate
    [X] DIR Enable mod_dir
    [X] DUMPIO Enable mod_dumpio
    [X] ENV Enable mod_env
    [X] EXPIRES Enable mod_expires
    [X] HEADERS Enable mod_headers
    [X] IMAGEMAP Enable mod_imagemap
    [X] INCLUDE Enable mod_include
    [X] INFO Enable mod_info
    [X] LOG_CONFIG Enable mod_log_config
    [X] LOGIO Enable mod_logio
    [X] MIME Enable mod_mime
    [X] MIME_MAGIC Enable mod_mime_magic
    [X] NEGOTIATION Enable mod_negotiation
    [X] REWRITE Enable mod_rewrite
    [X] SETENVIF Enable mod_setenvif
    [X] SPELING Enable mod_speling
    [X] STATUS Enable mod_status
    [X] UNIQUE_ID Enable mod_unique_id
    [X] USERDIR Enable mod_userdir
    [X] USERTRACK Enable mod_usertrack
    [X] VHOST_ALIAS Enable mod_vhost_alias
    [X] FILTER Enable mod_filter
    [X] VERSION Enable mod_version
    [X] PROXY Enable mod_proxy
    [X] SSL Enable mod_ssl
    [X] SUEXEC Enable mod_suexec
    Só marque as linhas mencionadas acima!
    Aperte TAB e depois OK !
    PS: Tem que apertar OK... Se usar ESC ou CANCELAR, irá usar o default. E causará erros futuros.
    # make install clean clean-depends
    (Este comando irá instalar o Apache22)
    Vai aparecer as opÇões do Pearl !
    ATENÇÃO PARA MARCAR ESSAS OPÇõES
    QUALQUER ERRO RESULTA NO MAU-FUNCIONAMENTO DO WEBSERVER
    [X] PERL_MALLOC Use Perl malloc
    [X] PERL_64BITINT Use 64 bit integers (on i386)
    [X] USE_PERL Rewrite links in /usr/bin
    Vai aparecer as opÇões do M4 !
    ATENÇÃO PARA MARCAR ESSAS OPÇõES
    QUALQUER ERRO RESULTA NO MAU-FUNCIONAMENTO DO WEBSERVER
    - Dê OK sem configurar NADA !!!
    [ ] LIBSIGSEGV Use libsigsegv for better diagnostics
    *O PROCESSO DE INSTALAÇÃO é DEMORADO MESMO ! PACIêNCIA !
    # echo ‘apache22_enable=”YES”‘ >> /etc/rc.conf
    (Este comando adiciona a linha de configuraÇÃo do Boot no FreeBSD, assim toda vez que reiniciar a máquina ela já liga o Apache)
    - Mas recomendo abrir o arquivo usando um editor vi ou ee do FreeBSD:
    # ee etc/rc.conf
    (este comando abrirá um editor de texto no FreeBSD e após terminar a ediÇÃo basta apertar ESC e salvar).
    # /usr/local/etc/rc.d/apache22 start
    (Este comando ativa o serviÇo HTTP)
    - caso tenha algum erro na instalaÇÃo, o serviÇo nÃo iniciará e o sistema ainda vos explica o motivo... Mas se seguir o tutorial a risca, nÃo tem erro.
    4º Passo (Testando o serviÇo HTTP)
    Quando iniciado o serviÇo HTTP, já é possível ter um site simples em HTML em seu servidor...
    Vá ao navegador, e digite o IP da máquina FreeBSD para testarmos o servidor do Apache:
    Exemplo:
    BROWSER DO NAVEGADOR: http://IP_DO_SERVIDOR
    Se seu servidor for instalado correctamente, vai aparecer a menssagem: IT WORKS !
    Significa que está funcionando e podemos ir às configuraÇões...
    5º Passo (Configurando o Apache)
    # cd /usr/local/etc/apache22/
    (Este comando irá a pasta onde está o ficheiro httpd.conf)
    - Este ficheiro estÃo as configuraÇões principais do Apache !
    # vi httpd.conf
    (Este comando irá abrir o ficheiro com um editor de texto)
    Agora vamos acrescentar linhas de Módulos ! basta copiar essas linhas e colar das abaixo já configuradas no ficheiro. Melhor seria se abrisse o ficheiro usando o NotePad++ em uma estaÇÃo Windows.
    #LoadModule authz_owner_module libexec/apache22/mod_authz_owner.so
    #LoadModule file_cache_module libexec/apache22/mod_file_cache.so
    #LoadModule cache_module libexec/apache22/mod_cache.so
    #LoadModule disk_cache_module libexec/apache22/mod_disk_cache.so
    #ScriptAlias /cgi-bin/ “/usr/local/www/apache22/cgi-bin/”
    Altere as seguintes as seguintes linhas para isto:
    ServerAdmin [email protected]
    DirectoryIndex index.html index.htm index.php
    O local onde deves colocar os ficheiros do site vem por padrÃo esta linha:
    => DocumentRoot “/usr/local/WWW/apache22/data”
    Se vc desejar trocar o diretório do DocumentRoot para qualquer outro lugar basta modificar a linha com o endereÇo da pasta, mas recomendo deixar default.
    Salve e feche o ficheiro !
    # /usr/local/etc/rc.d/apache22 restart
    (Este comando reiniciará o serviÇo HTTP com as novas configuraÇões)
    - Caso apareÇa algum erro, se apresentará agora.
    Se colocares os ficheiros do seu site em “/usr/local/WWW/apache22/data” e abrir no navegador, provavelmente irá abrir o código fonte de sua index.php. Isso se deve ao fato de que para seu servidor web entenda a linguagem PHP, deve-se instalar o PHP5 !
    NÃo estranhe tantas instalaÇões... Normalmente em estaÇões Windows existem programas como XAMPP e outros que te instalam os 3 serviÇos (Apache + MySQL + PHP5) em um único programa de uma só vez.
    6º Passo (InstalaÇÃo do PHP5)
    # cd /usr/ports/lang/php5
    Este comando irá até a pasta de instalaÇÃo do PHP)
    # make config (Este comando irá configurar as opÇões pré-instalaÇÃo)
    - Muita atenÇÃo novamente para as opÇões a marcar !!!
    [X] CLI Build CLI version
    [X] CGI Build CGI version
    [X] APACHE Build Apache module
    [X] DEBUG Enable debug
    [X] SUHOSIN Enable Suhosin protection system (not for jails)
    [X] MULTIBYTE Enable zend multibyte support
    [X] IPV6 Enable ipv6 support
    [X] MAILHEAD Enable mail header patch
    [X] REDIRECT Enable force-cgi-redirect support (CGI only)
    [X] DISCARD Enable discard-path support (CGI only)
    [X] FASTCGI Enable fastcgi support (CGI only)
    [X] PATHINFO Enable path-info-check support (CGI only)
    Só marque as linhas mencionadas acima!
    # make install clean
    (Este comando irá instalar o PHP5)
    - O processo é demorado ! Paciência...
    # cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini
    (Este comando irá copiar e renomear o PHP.ini para a pasta dele, necessário para o funcionamento do web Server)
    Em alguns casos, este comando pode dar erro ! Por uma simples questÃo...
    Este ficheiro “php.ini-recommended” pode estar com outro nome... algo como “php.ini-develompent” ou algo parecido. Caso queira fazer o comando manualmente, abra com o Filezilla na pasta “/usr/local/etc/” copie o php.ini-xxxx para “/usr/local/etc/” e renomeie o arquivo para “php.ini”.
    Aproveitando o Filezilla... Abra novamente aquele arquivo de configuraÇÃo do Apache ! O httpd.conf ! Vamos configurar o Apache para se comunicar com o PHP5.
    # vi /usr/local/etc/apache22/httpd.conf
    (Este comando abre o ficheiro em um editor de texto)
    Com o editor de texto aberto, vamos adicionar as seguintes linhas:
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    Adicione esta linha ao DirectoryIndex deixando assim:
    DirectoryIndex index.html index.htm index.php
    - Assim, o apache iniciará o site apartir do nosso ficheiro index.php também
    # vi /usr/local/etc/php.ini
    (Este comando irá abrir o editor de texto das configuraÇões do PHP)
    - Altere a seguinte linha:
    short_open_tag = On
    7º Passo (InstalaÇÃo do PHP-extensions)
    # cd /usr/ports/lang/php5-extensions
    (Este comando irá até a pasta de instalaÇÃo)
    # make install clean (Este comando irá instalar o extensions do PHP)
    - AtenÇÃo novamente às opÇões a serem marcadas !
    [X] BZ2 bzip2 library support
    [X] CTYPE ctype functions
    [X] CURL CURL support
    [X] DBA dba support
    [X] DOM DOM support
    [X] FILEINFO fileinfo support
    [X] FILTER input filter support
    [X] FTP FTP support
    [X] GD GD library support
    [X] HASH HASH Message Digest Framework
    [X] ICONV iconv support
    [X] IMAP IMAP support
    [X] JSON JavaScript Object Serialization support
    [X] MCRYPT Encryption support
    [X] MHASH Crypto-hashing support
    [X] MYSQL MySQL database support
    [X] PDO PHP Data Objects Interface (PDO)
    [X] PDO_SQLITE PDO sqlite driver
    [X] POSIX POSIX-like functions
    [X] SESSION session support
    [X] SHMOP shmop support
    [X] SIMPLEXML simplexml support
    [X] SOAP SOAP support
    [X] SOCKETS sockets support
    [X] SPL Standard PHP Library
    [X] SQLITE sqlite support
    [X] TOKENIZER tokenizer support
    [X] XML XML support
    [X] XMLREADER XMLReader support
    [X] XMLRPC XMLRPC-EPI support
    [X] XMLWRITER XMLWriter support
    [X] ZIP ZIP support
    Deixe marcado o que esta por padrÃo para todas as próximas opÇões
    O processo é demorado ! Paciência...
    Como a pasta onde ficam os arquivos do site está um pouco distante, podemos criar um links simbólicos para ir até ela de maneira mais direta ! Use esses comandos:
    # cd /root
    (Este comando irá até a pasta inicial root)
    # ln –s /usr/local/WWW/apache22/data data &
    (Este comando cria o link direto, vai aparecer o PID)
    # [ENTER] novamente para criar!
    # cd /
    (Este comando irá até a raiz do servidor)
    # ln –s /usr/local/WWW/apache22/data data &
    (Este comando cria o link direto também aqui)
    # [ENTER] novamente para criar!
    Por fim, dê um reboot na máquina... Verifique se no boot ela inicia o serviÇo do apache correctamente...
    Pode colocar o site no directório e testar tuas funcionalidades. é só isso.
    CONCLUSÃO:
    Espero que tenha sido claro, tentei ser o mais explicativo possível.
    Volto a repetir que caso algo esteja errado neste tutorial estou aberto a correÇões a fim de ajudar a todos.
    Posso tentar ajudar alguns membros aqui do fórum, mas lembre-se que ainda estou no início de meu curso, meu conhecimento é pouco.
    Pode-se a todo o momento sofrer ediÇões a fim de corrigir ou melhorar seu conteúdo.
    PS: O funcionamento do Web Server consome dos recursos da máquina, esteja ciente disso !
    By Obetuno
  2. Upvote
    DanielCR reacted to Rancoroso in Overgame By Rancoroso   
    Olá pessoal, bom hoje trago o meu trabalho em montar uma serverfiles ótima para disponibilizar para que as pessoas não tenha dificuldade de entender e de compreender basicamente como essa serverfiles funcionar. Essa serverfiles foi criada por mim não está totalmente completar falta 30% para completar pois falta quests e eventos, está serverfiles pode ser pvm ou pvp vai ao gosto do seu desenvolvedor, as quests iníciais foram removidas por mim então só tem as quests importante como você vai nota assim que você baixar para testa mas já garanto de início que está serverfiles estão ótima.
    Atenção!
    Para iníciar os 10 channels necessário 12 Gbs de Ram.
    Ser você gostou do meu trabalho não esqueça de agradecer.
    Bem-vindo ao Overgame Beta.
    Descrição do servidor Overgame:
    Proteções contra ataques.
    Gamecore2089.
    Dbcore1667.
    Lib2010.
    Nível máximo 120.
    Contém 10 channels.
    Contém sistema de install quest.
    Contém sistema de backup manual.
    Contém sistema de clear manual.
    Sistema de energia.
    Sistema de costume.
    Sistema de vouchers.
    Sistema de mascotes.
    Sistema imperial.
    Sistema de auto-potes.
    Sistema de novas montarias (22-30).
    Guild wars Fixed.
    OX QUIZ Fixed.
    Guerra de reinos.
    Guerra da Tochas.
    Todas as montarias oficiais.
    Todos os penteados oficiais.
    Quase todas as metins novas oficiais.
    Quase todos os itens novos oficiais.
    Todas as refinações oficiais.
    Novos monstros.
    Sexta skill warrior e ninja.
    Terceiro andar da Gomi
    Mapas da invasão.
    Caverna demoniaca.
    Quase todos os pets.
    Mapa gm_guild_castle.
    Mapa gm_guild_build.
    Gruta chun fixed.
    Lojas normais.
    Sem bug de gold.
    Novo locale.lua.
    Vários bugs corrigido.
    Todas as quest basicas configuradas.
    Linguagem alemão 91%, 1% br, 6% chinês e 2% inglês.
    Descrição do FreeBSD 7.4:
    Instalado Apache2.2
    Instalado Mysql5.1
    Instalado PHP5
    Instalado IP Firewall Rules.
    Instalado Paketfilter e Antiflood.
    Instalado Kernel.
    Instalado Serverfiles2011 criado por Rancoroso.
    Tamanho do hd virtual 80 Gbs.
    Login do VirtualBox:
    User: root
    Password: 123456
    Login da MySql:
    User: rancoroso
    Password: 123456
    Login da conta:
    User: rancoroso
    Password: 123456
    Portas do channels:
    13001,13002,13003,13004,13005,13006,13007,13008,13009,13010.
    Comandos da serverfiles2011:
    Iníciar o servidor: sh start
    Limpar logs: sh del
    Criar backup: sh backup
    Re-instalar quests: sh quest
    Reiniciar o servidor: reboot
    Caminho de arquivos:
    game2089: /usr/rancoroso/share/game
    dbcore1667: /usr/rancoroso/database/db
    backup.sh: /usr/rancoroso/backup.sh
    start.sh: /usr/rancoroso/start.sh
    clear.sh: /usr/rancoroso/clear.sh
    channel: /usr/rancoroso/channels/
    backup: /usr/rancoroso/backup/
    quest: /usr/rancoroso/share/locale/germany/quest
    www: /usr/local/www/apache22/data/index.php
    Novos comandos:
    /go gm1
    /go gm2
    /go devil1
    Novos monstros:
    2600 gnoll_helhound
    2601 gnoll_warrior
    2602 gnoll_mage
    2603 gnoll_commander
    2620 gnoll_minotaur
    2630 troll_warrior
    2631 troll_archer
    2632 troll_mage
    2633 troll_commander
    2650 troll_argus
    2660 naga_soldier
    2661 naga_archer
    2662 naga_mage
    2663 naga_warrior
    2680 naga_commander
    Novos npcs:
    30129 Sr.Coelho.
    33002 Sr.Lorey.
    33008 Sr.Jack.
    30121 Espectro Shura.
    33003 até 33007 Andarilho Desafortunado.
    Montarias:
    ID: 20110 até 20119.
    ID: 20213 até 20219.
    Pets:
    ID: 20120 até 20143.
    ID: 34001 até 34003.
    Download do Overgame Beta
    Cliente Oficial das Serverfiles
    Criado por Rancoroso.
    Autor: Rancoroso.
    Créditos: Rancoroso.
    Skype: invisionbrazil.
    Qualquer dúvida entra em contato com o criador.

    Bom, amigos deixo aqui o stop para minha serverfiles2011.
    Tutorial incluído no download....
    Download do stop dos channels full
    https://www.virustot...sis/1361309828/
    depois de adicionar basta usar o comando
    sh stop
    bom, é isso sejam feliz.
  3. Upvote
    DanielCR reacted to Rancoroso in Metin2 Map Pointer V1.0   
    Bom achei ele aplicativo muito bom pra quem quer adicionar mobs em mapas sem dificuldades nenhuma.
    Como usar é simples basta extrair o mapa que quer adicionar os mobs, exemplo map_a2 ki é o vale dos orcs, depois disso adicione a pasta do mapa junto ao aplicativo e inicie o aplicativo Metin2 Map Pointer v1.0 e selecione a pasta do mapa que quer criar regen.txt dos mobs.
    imagem:

    Você pode colocar apenas clicando no monstro, mas tudo deve ser auto-explicativo.
    Há algumas exceções não tratadas em que uma mensagem. NET Framework vem (pelo menos do jeito que você precisa. NET Framework 3.5), porque o tempo ichh e não quer me levar para onde, não se surpreenda ...
    Quem estiver interessado na linguagem de programação: CSharp.
    Uma pequena nota:
    Seu mob_proto.xml deve ser codificado com UTF-8, o programa faz isso automaticamente, mas na versão automática são caracteres especiais não são exibidos corretamente. Que você pode segurar, dando o seu mob_proto.xml
    no Notepad + + abre a aba "codificação" em "Converter para UTF-8" cliques e lojas.
    O group.txt e group_group.txt deve ter sempre o delimitado, isto causaria problemas durante a leitura (você então receber uma mensagem incluindo a linha ofensiva).
    Então, agora escrito bastante, se divertir com a ferramenta.
    saudação
    musicinstructor
    €: A atualização para v1.0 são algumas correções.
    http://www.4shared.c...ointer_v10.html
  4. Upvote
    DanielCR reacted to Rancoroso in [Ajuda] Problemas Com As Texturas De Armaduras   
    definiu tudo certinho item_proto
    item_list
    Na query existe o value3 no value3 coloca-mos sempre o numero que colocamos no script do warrior_m.msm
    Feito isto na query o jogo ja vai reconhecer que o ID 48050 e uma nova armadura!
  5. Upvote
    DanielCR reacted to quenii in [Ajuda] Problemas Com As Texturas De Armaduras   
    Verifica se o numero que ta no ShapeIndex esta também no value3 do item proto
  6. Upvote
    DanielCR reacted to Rancoroso in [Release]Masterepack 5.5.5 - Compilador-Descompilador   
    Opção 1 Download: https://mega.nz/#!V0RQlYZC!fq9uvsfLP_G_zdrYvf3cnoSuP6MPqee5wGdt_0zAN1A
    Opção 2 Download: http://www.mediafire...hnty5790d87fwvk
    Opção 3 Download: http://www.4shared.c...terEPack_5.html
     

    Natal começou com o pé direito! : D De qualquer forma, Hawkings e eu fiz uma nova atualização, muito maior do que o último.
    Na verdade, o compilador feita a partir de 0 a um máximo e tentar optimizar a adição e remoção de colocar funções desnecessárias na pele dos utilizadores.

    Como sempre, a equipe é composta do mesmo:
    Anghios(Coder)
    Hawkings(Coder)
    Anzert(Designer)
    Danibonilla1(Tester)

    Eu diria que o trabalho que leva o bolo é o Danibonilla1, já sabemos codearlo tudo do zero, sem qualquer problema, mas encontrou muitas falhas que nos permitiu corrigir antes de públicos versão :)

    Novos recursos:

    -Design editado. Agora perder menos tempo para compilar e descompilar tempo, você pode fazê-lo a partir de uma rota externa ou da aplicação. Tudo muito mais fácil e prático! :)
    Otimizado código novamente implementação, mais suave.
    Limpou-a pasta do aplicativo, movendo todo o conteúdo essencial para uma pasta chamada "sistema" fora do caminho dos outros arquivos.

    -Adicionado um erro de sistema e excepção à aplicação que será salvo em "sistema \ errores.txt"
    Automática de arquivos de reparação. XML ... Você pode dizer adeus a erros de compilação! : Icon_mrgreen:

    -Quando você iniciar o aplicativo ou tentando atualizá-lo, falta de arquivos essenciais pode usar automaticamente o download da nossa hospedagem: icon_cool:

    -Nós removemos o registro, pouco usado. Mas, se alguém usou e pode reivindicar o 5.1 está pronto: P

    -Introduziu um sistema de atualização automática do aplicativo ou outras funções.

    -Adicionado uma notícia para iniciar o programa, carga, ou não pode ser exibido. Ele é frequentemente usado para avisar que novas atualizações ou outras coisas necessárias para a aplicação.

    -Você pode descompilar, criptografar e backup de arquivos a partir de uma rota externa. Apenas problema? como a construção de sempre feito no caminho do aplicativo.

    -Quando você fechar ou abrir o aplicativo, caso tenha alterado a rota externa é salvo automaticamente.
    NOVO

    -Adicionado um sistema para alterar extensões de arquivo. Por exemplo Metin2.epk e Metin2.eix para Metin2.ang e Metin2.haw

    Como faço para obter a versão 5.0?

    Você pode apenas fazer o download do anexo, ou se você tiver versões anteriores você pode clicar em "Sobre" e fazer o download de lá! :)

    Créditos indirectos: Tim Niederhausen (epvpers) por la creación de los m2.exe.

    MasterEPack by Anghios & Hawkings is licensed under a Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported License.
    Permissions beyond the scope of this license may be available at [email protected]
  7. Upvote
    DanielCR reacted to Valenza in Adicionar armas / armaduras / itens na files e cliente metin2   
    Boas Familia Cyber,
    Hoje, venho ensinar de uma forma mais clara de como implementar as armas, armaduras e itens em geral nos files e cliente de metin2,
    Como meter no cliente (para que possa ser visto e usado)
    Simples... Siga abaixo o tutorial que não tem erro!
    Ps: Importante fazer back up dos seus arquivos eix e epk que estarão sendo modificados, para caso faça algo de errado, não tenha que recomeçar seu projeto novamente...
    Vamos lá:
    --> Icons: (são aqueles desenhos que ficam no seu inventário [em relação a itens])
    Uma imagem para mostrar o que eu digo:

    Como exemplo, isso são icones , agora vamos para o proximo passo:
    - No seu cliente, abra a pasta Pack e dentro dele , procure o arquivo icon.eix e icon.epk e descompacte-o (ver tutorial do Origin caso não saiba descompactar arquivos Eix e Epk [ se me permite postar ] http://cyber-gamers....ctador-eix-epk/ )
    - Depois de descompactado entre na pasta icon / item e jogue todos os icons das suas armaduras que queira implementar.
    - Após fazer este passo, compacte e jogue no seu cliente.
    -->Modelos e texturas:
    - No seu cliente, abra a pasta Pack e dentro dele , procure o arquivo item.eix e item.epk e descompacte-o
    - Depois de descompactado entre na pasta ymir work/item/weapon e jogar as texturas e os modelos pra lá
    - Após fazer este passo, compacte e jogue no seu cliente.
    --> Item Proto , sao nada mais que a leitura dos itens para isso veja como fazer abaixo:
    - no seu cliente , abra a pasta Pack e dentro dele , procure o arquivo locale_de.eix e locale_de.epk e descompacte-o ( a parte do _de vai depender de cada cliente , pode ser _br _it , etc)
    - Depois de descompactado, procure um arquivo chamado Item Proto e descompacte este arquivo (não é como descompactar os arquivos eix e epk, para isso usa este programa aqui >> http://www.mediafire...d2o2abj888d245b << )
    PS: O programa não é dificil entender , mas caso precise de alguma ajuda, peça por PM aqui na Cyber mesmo , ou via Skype adicionado ao meu perfil
    - Após o item proto descompactado, adicionar os nomes ao item proto ( geralmente os autores dos itens já deixam pronto para adicionar, copie e cole e pronto, mas caso nao tenha , existe software que cria esses itens proto , o que agora nao tenho para download )
    Veja um modelo do item proto (varia de cada item)

    <Item vnum="19" name="'µµ+9'" gb2312name=" Espada+9" type="1" subtype="0" weight="0" size="2" antiflag="32" flag="1" wearflag="16" immuneflag="0" gold="100" buy_price="750" limittype0="1" limitvalue0="0" limittype1="0" limitvalue1="0" applytype0="7" applyvalue0="22" applytype1="0" applyvalue1="0" applytype2="0" applyvalue2="0" value0="0" value1="15" value2="19" value3="13" value4="15" value5="63" socket0="0" socket1="64992" socket2="127" socket3="64976" socket4="21631" socket5="4855" refine_vnum="0" refine_set="0" magic_pct="15" specular="100" socket_pct="1" /> - agora, nesta mesma pasta onde encontrou o Item proto ( locale eix e epk descompactado ) , localize o arquivo item_list.txt , e lá coloque o diretorio do Icone, um exemplo que eu peguei do meu servidor: Esclarescendo:
    29110 e é o numero que segue na sequencia do anterior, no qual 29109 vinha anteriormente
    Weapon , é o tipo do item (acho que seja apenas para entendimento , mas sempre é bom especificar em inglês)
    icon/item/11000.tga , é o diretorio, no qual tem que esta no formato Pasta primaria (Icon) , pasta secundaria (item) , nome do icone (ex:11000) e a extensão dele ( .tga )
    Geralmente os autores dos itens já facilitam e deixam ja prontos para adicionar, mas caso nao esteja faça como base o meu modelo acima.
    -> Para o ServerFiles:
    Ir no navicat, logar no seu servidor, entrar na aba player / queries , e clicar em New Query , colocar sua query la e apertar em Run e fechar (caso queira deixar visivel este query para futuramente modificar, aperte em Save As e coloque um nome que você saiba identificar o que é e logo que toda vez que entrar na aba queries, vai estar la para editar)
    se caso não saiba criar queries, baixe este programa criado pelo BiffJunior e upado para um novo host por mim http://www.mediafire...rnvp4qw01n515ng , la é só pegar seu item proto (do seu item que quer adicionar), colocar na janela de cima , clicar para converter, e por fim, copiar o que ele gerou, (mas geralmente vem com query, mas sempre tem uma excessão, rs)
    Imagem abaixo:
    Um modelo de query para que não se confundam ( cada query tem seu status , portanto toma-se isto como exemplo ) :

    INSERT INTO player.item_proto VALUES (3230, 'Espada do Valenza+0', 'Espada do Valenza+0', 1, 0, 0, 2, 32, 1, 16, 0, 10000, 10000, 3231, 0, 0, 15, 1, 85, 0, 0, 7, 10, 9, 10, 3, 2, 0, 280, 310, 400, 450, 22, -1, -1, -1, -1, -1, -1, 0, 3, -1);INSERT INTO player.item_proto VALUES (3231, 'Espada d oValenza+1', 'Espada do Valenza+1', 1, 0, 0, 2, 32, 1, 16, 0, 10000, 10000, 3232, 0, 0, 15, 1, 85, 0, 0, 7, 12, 9, 12, 3, 4, 0, 280, 310, 400, 450, 34, -1, -1, -1, -1, -1, -1, 0, 3, -1);INSERT INTO player.item_proto VALUES (3232, 'Espada doValenza+2', 'Espada do Valenza+2', 1, 0, 0, 2, 32, 1, 16, 0, 10000, 10000, 3233, 0, 0, 15, 1, 86, 0, 0, 7, 13, 9, 13, 3, 6, 0, 280, 310, 400, 450, 46, -1, -1, -1, -1, -1, -1, 0, 3, -1);INSERT INTO player.item_proto VALUES (3233, 'Espada do Valenza+3', 'Espada doValenza+3', 1, 0, 0, 2, 32, 1, 16, 0, 10000, 10000, 3234, 0, 0, 15, 1, 86, 0, 0, 7, 14, 9, 14, 3, 8, 0, 280, 310, 400, 450, 58, -1, -1, -1, -1, -1, -1, 0, 3, -1);INSERT INTO player.item_proto VALUES (3234, 'Espada do Valenza+4', 'Espada do Valenza+4', 1, 0, 0, 2, 32, 1, 16, 0, 10000, 10000, 3235, 0, 0, 15, 1, 87, 0, 0, 7, 16, 9, 16, 3, 10, 0, 280, 310, 400, 450, 60, -1, -1, -1, -1, -1, -1, 0, 3, -1);INSERT INTO player.item_proto VALUES (3235, 'Espada do Valenza+5', 'Espada do Valenza+5', 1, 0, 0, 2, 32, 1, 16, 0, 10000, 10000, 3236, 0, 0, 15, 1, 87, 0, 0, 7, 17, 9, 17, 3, 12, 0, 280, 310, 400, 450, 82, -1, -1, -1, -1, -1, -1, 0, 3, -1);INSERT INTO player.item_proto VALUES (3236, 'Espada do Valenza+6', 'Espada do Valenza+6', 1, 0, 0, 2, 32, 1, 16, 0, 10000, 10000, 3237, 0, 0, 15, 1, 88, 0, 0, 7, 18, 9, 18, 3, 14, 0, 280, 310, 400, 450, 94, -1, -1, -1, -1, -1, -1, 0, 3, -1);INSERT INTO player.item_proto VALUES (3237, 'Espada do Valenza+7', 'Espada do Valenza+7', 1, 0, 0, 2, 32, 1, 16, 0, 10000, 10000, 3238, 0, 0, 15, 1, 88, 0, 0, 7, 20, 9, 20, 3, 16, 0, 280, 310, 400, 450, 106, -1, -1, -1, -1, -1, -1, 0, 3, -1);INSERT INTO player.item_proto VALUES (3238, 'Espada do Valenza+8', 'Espada da Valenza+8', 1, 0, 0, 2, 32, 1, 16, 0, 10000, 10000, 3239, 0, 0, 15, 1, 88, 0, 0, 7, 22, 9, 22, 3, 18, 0, 280, 310, 400, 450, 118, -1, -1, -1, -1, -1, -1, 0, 3, -1);INSERT INTO player.item_proto VALUES (3239, 'Espada do Valenza+9', 'Espada do Valenza+9', 1, 0, 0, 2, 32, 1, 16, 0, 10000, 10000, 0, 0, 0, 15, 1, 89, 0, 0, 7, 25, 9, 25, 3, 20, 0, 280, 310, 400, 450, 130, -1, -1, -1, -1, -1, -1, 0, 3, -1); e pronto, dê reboot e testem , o fim disto tudo é claro, muita perfeição e beleza! vejam um video de como que fica (não é tutorial de como implementar mas o resultado)

    http-~~-//www.youtube.com/watch?v=A_0i031LgIQ&feature=player_embedded
    Acho que não falta mais nada http://cyber-gamers.org/public/style_emoticons/default/laugh.png
    Créditos Valenza
    Cumprimentos,
  8. Upvote
    DanielCR reacted to µทԲi૨૯ in [Software] Descompactador De Arquivos "Eix Epk" E "Proto"   
    Penso que este ainda não esteja por cá na cyber mas se estiver digam algo.

    Este extractor é muito bom ainda não encontrei nada que ele não descompactasse.

    Como usar:

    Teram de meter os arquivos que desejam extrair para dentro da pasta Tool By Gherusio.

    Depois teram de abrir o ficheiro "decriptpack" e ai metem o vosso directório que deverá ser algo do tipo isto " C:UsersUsersDesktopTool By GherusioNOME DO FICHEIRO sem os .epk ou .eix apenas o nome guardam e fecham.

    Depois é so abrir o " Compiler-Decompiler By Gherusio" e metem decrypt pack e pronto está extraído.

    Depois reparam que não criou o ficheiro .xml mas sim ele está la mas com outro nome de " myrootpack".

    Se calhar está um pouco confuso mas estou com outro pc e não tenho a possibilidade de meter print's


    Se ajudei mete ali ^^

    Download: Removido
  9. Upvote
    DanielCR reacted to GunTL in [HOT]Script´s de Npc´s Traduzidos e melhorados   
    Boas Comunidade
    Venho Disponibilizar Alguns Scripts(NPC´s) Traduzidos e corrijidos!
    Aproveitem!

    Npc´s,Scripts:
    9005 = Armazem
    9006 - old_woman - oldwoman = Idosa
    9009 = Pescador
    9011 = Ajudante de Casamento
    9012 = Teleportador
    11000 - guild_man1 = Guarda da Cidade Reino Vermelho-----|
    11001 = Belgin de Batalha Reino Vermelho|||||||||||||||||||||||||||||||||
    11002 - guild_man2 = Guarda da Cidade Reino Amarelo------|----> notarget
    11003 = Belgin de Batalha Reino Amarelo|||||||||||||||||||||||||||||||||||
    11004 - guild_man3 = Guarda da Cidade Reino Azul------------|
    11005 = Belgin de Batalha Reino Azul
    20002 = Aranyo
    20003 = Ah-Yu
    20005 = Yonah
    20006 = Mirine
    20008 = Octavio
    20010 = Vendedor Ambulante
    20011 = Uriel
    20012 = Yu-Rang
    20014 = Taurean
    20016 = Ferreiro
    20017 = Yu-Hwan
    20018 = Baek-Go
    20019 = Yang-Shin
    20020 = traidor Balso
    20021 = Ariyoung
    20022 = Hu-Ahn-So
    20023 = Sr. Soon
    20024 = Harang
    20040 = Guarda do Terreno "GUILD"
    20044 = Ferreiro de Armas "GUILD"
    20045 = Ferreiro de Armaduras "GUILD"
    20046 = Ferreiro de Acessórios "GUILD"
    20060 = Alquimista de Diamantes "GUILD"
    20061 = Alquimista de Âmbar "GUILD"
    20062 = Alquimista de Minério de Fóssil "GUILD"
    20063 = Alquimista de Cobre "GUILD"
    20064 = Alquimista de Prata "GUILD"
    20065 = Alquimista de Ouro "GUILD"
    20066 = Alquimista de Jade "GUILD"
    20067 = Alquimista de ébano "GUILD"
    20068 = Alquimista de Pérolas "GUILD"
    20069 = Alquimista de Platina "GUILD"
    20070 = Alquimista de Cristal "GUILD"
    20071 = Alquimista de Ametista "GUILD"
    20072 = Alquimista de Safira "GUILD"
    20074 = Ferreiro de Armas "TORRE"
    20075 = Ferreiro de Armaduras "TORRE"
    20076 = Ferreiro de Acessórios "TORRE"
    20077 = Guarda do Altar "GUILD"
    20078 = Guarda do Altar "GUILD"
    20079 = Guarda do Altar "GUILD"
    20081 = Selo "Guerra de Reinos"
    20088 = Chuk-Sal "Calaboiço das Aranhas do Piso 1 para o Piso 2" "Com Script Corrigida" "NOVO"
    20089 = Pung-Ho "Calaboiço das Aranhas do Piso 2 para o Piso 1" "Primeiro corrija o BUG do V1"
    20090 = Heuk-Young
    20097 = Portão de Guerra de Reinos do Reino Vermelho
    20098 = Portão de Guerra de Reinos do Reino Amarelo
    20099 = Portão de Guerra de Reinos do Reino Azul
    50051 = Cavalo Iniciante "Com novas Script"
    50052 = Cavalo Armado "Com novas Script"
    50053 = Cavalo Militar "Com novas Script"

    Meter as pastas nesse directório:
    /usr/home/game/share/locale/germany/quest/object
    e substituir pelas existente

    Locale:
    Meter os ficheiros neste directório:
    /usr/home/game/share/locale/germany
    e substituir pelos existente
    Atenção
    Download: Locale_String 100% Pt-Pt

    Download de todos Scripts:



    Disfrutem...

    Ajude-nos a Crescer partilhando os seus conhecimentos!!!!
    Divulga o Forúm e nós divulgamos Tutoriais que te Ajudaram nos teus PServers!
    Com a Cyber Quem Quiser, Contra a Cyber Quem puder(ninguem):D
    Creditos: {ƿэ∂я๏}™
    Font : HG
  10. Upvote
    DanielCR reacted to ƤāƱŁѲ ƒēƦƦēƗƦā in [*Hot*]Server Files Oldschool!   
    Bem, encontrei estas files e decidi postar, até porque são boas e 100% oldschool!
    Bem comecemos!
    Imagens set inicial:
    Imagens Lojas:
    Transmutações!
    Upar Aços Azuis de +6 até +9!
    Transmutações de armas:
    Itens de Azurite:
    Sapatos:
    Drops dos Bosses:
    Quest's das catacumbas:

    Como instalar as server files:
    1º Fazer download disto: http://www.mediafire...bswudxy71y6jso7 e disto: http://www.mediafire...37g95k560b3x21i
    2º Colocar as Files.tar.gz na directoria /usr;
    3º Colocar o Mysql.tar.gz na directoria /var/db;
    4º Escrever na máquina virtual isto:

    cd /usr
    rm -rf game
    cd /var/db
    rm -rf mysql
    cd /usr
    tar zxvf Files.tar.gz
    cd /var/db
    tar zxvf Mysql.tar.gz
    reboot
    5º Ligar o server, fazer login com a conta root e a pass; 6ª Para ligar o servidor escrevem:

    cd /usr/game
    sh baslat.sh
    Não costuma dar Operation Time Out, se der só dá 1 vez. PS: As server files contêm 2 CH's operacionais.
    PS2: Peço desculpa pelas imagens que não se vir não dava para colocar mais xD, carreguem no link! :)
    Ajudei? Agradeçam. :)
    Cumprimentos.
  11. Upvote
    DanielCR reacted to p0w3r0ff in Criador de NPC, Mob, Portal, Metins e Loaker Warp (Metin2)   
    Olá Comunidade,
    Este Software funciona muito bem. Com ele podem fazer o que quiserem, NPC, Mob, Portal, Metins e Loaker Warp.
    Creditos: universojuegos
  12. Upvote
    DanielCR reacted to p0w3r0ff in Visualizar Ficheiros TGA e DDS [Ver item armas e armaduras]   
    Boas Comunidade
    Vou postar dois programas para voçe Visualizar Ficheiros TGA e DDS para ver item,armas,armaduras etc etc etc.
    IrfanView
    O IrfanView é um visualizador de imagens cheio de recursos,
    indicado para os mais variados tipos de usuários, dos mais iniciantes aos mais avançados
    1- Voçe vai Site http://www.irfanview.com/ Instala IrfanView
    2- Depois instalado o IrfanView voçe instala plugins/addOns
    E voila...


    MysticThumbs
    MysticThumbs gera miniaturas de muitos formatos de imagem não suportados pelo Windows.
    Ele se conecta ao Windows Explorer, assim você não terá que executar um aplicativo separado para visualizar as imagens,
    pode vê-los todos no shell nativo.

    1- Vai site http://mysticcoder.n...sticThumbs.html e Instala o programa.
    2-Escolhe formato que quere visualizar
    Cumprimentos




    Creditos: Google
  13. Upvote
    DanielCR reacted to p0w3r0ff in Colocar Todos Npc Com Varias Janelas [Pedido Para Elite]   
    Boas Comunidade fiz este tutorial a pedido de um membro Elite.
    Perceber como funciona uma quest assim não foi nada fácil na altura fiz uma direta para entender logica da quest e da bd.
    Muita gente tem problemas ao organizar os npcs com este tutorial você poderá ter vários itens em um só npc.
    Tentei criar uma quest com minimo de linhas possíveis para tentar evitar lags.
    Primeiro Vamos criar estes arquivos no notepad+ e guardam.
    npc_shop.start.0.arg
    npc_shop.start.0.script
    npc_shop.start.0.when
    Dentro do npc_shop.start.0.arg

    e volta guardar
    Dentro do npc_shop.start.0.script

    e volta guardar
    No npc_shop.start.0.when deixam vazio
    Segundo Vamos criar estes arquivos no notepad+ e guardam
    npc_shop.start.1.arg
    npc_shop.start.1.script
    npc_shop.start.1.when
    Dentro do npc_shop.start.0.arg

    e volta guardar

    Dentro do npc_shop.start.0.script
    e volta guardar

    No npc_shop.start.1.when deixam vazioTerceiro Vamos criar estes arquivos no notepad+ e guardam
    npc_shop.start.2.arg
    npc_shop.start.2.script
    npc_shop.start.2.when
    Dentro do npc_shop.start.2.arg

    e volta guardar

    Dentro do npc_shop.start.2.script
    e volta guardar

    No npc_shop.start.2.when deixam vazio

    Quarto Vamos directorio object no filezilla e procuramos pasta com id 9003
    colocamos todos arquivos dentro dessa pasta.
    E escrevemos este comando na maquina .qc nomedaquest.quest
    [Comando pode ser diferente depende das files eu uso este comando por exemplo quest -> instala a quest]

    Quinto Vamos Navicat --> Player --> Shop



    Em Shop tem 3 tabelas



    Vnum - Colocamos vnum que usamos na quest por exemplo 6180
    Name - Podem Escolher um Nome
    Npc_Vnum - Tem ser id do NPC que vai usar neste caso e o 9003 - Loja Geral

    Vamos adicionar 3 linhas novas Clicando no




    Agora e só dar Reboot e ire loja Geral ver se ta tudo bem.
    Cumprimentos

    Resultado:


    Download da quest já pronta:
    Creditos: Cyber-Gamers.org
    Criado por PowerOff
  14. Upvote
    DanielCR reacted to RulleZ in Serverfiles "M2M" Feitas Por Glossy   
    Nivel máximo : 250 ou 255
    Serverfiles 2010 , com 4 Canais.
    Reboot em 5 segundos
    Novas Montadas
    Novos Itens
    Novos Mobs
    Entre outros..
    Alguns comandos do servidor:
    ./iniciar - Inicia o servidor;
    ./parar - desliga o servidor;
    ./reiniciar - reinicia o servidor
    ./reiniciar_soft - reinicia SOMENTE os canais (recomendado se tiverem alterado quests ou mapas) (não recarrega as tabelas);
    ./reiniciar_hard - desliga o servidor e reinicia a máquina virtual (ao iniciar a máquina virtual, efetuar o comando ./iniciar);
    ./limpar - limpar todos os registos (logs) do sistema de Metin2;
    ./instalar_1 - instalar 1 canal;
    ./instalar_2 - instalar 2 canais;
    ./instalar_3 - instalar 3 canais;
    ./instalar_4 - instalar 4 canais.
    Contas de sistema
    IP: 127.0.0.1
    Utilizador: root
    Palavra-passe: changeme (deverá ser alterada efetuando o comando "passwd").
    MySQL (Navicat)
    IP: 127.0.0.1
    Utilizador: db_manage
    Palavra-passe: changeme (deverá ser alterada).
    PortMap - http://www.4shared.c...cY/PortMap.html
    Cliente e Serverfiles
    [download][/download]

    Cliente e Traduçao:
    http://cyber-gamers.org/index.php?/topic/2495-cliente-metin2master/
    Server Files:
    Link de Download

    Prints:












    Depois eu meto download para tradução do cliente :)
    Creditos; Glossy
  15. Upvote
    DanielCR reacted to luiscarlosgraca in Relatório do Projecto de Programação de Sistemas Informáticos [Metin2 Servidor Privado]   
    A professora pediu-nos que fizessemos um projecto e eu como gosto de Metin2 desenvolvi isto:
    Ver este Tutorial em PDF

    Espero que gostem
    E s c o l a S e c u n d á r i a D r . J o r g e C o r r e i a
    por: Paulo Gonçalves
    Aluno nº19 da turma TGPSI
    De 24/04/2012 a 08/05/2012
    Relatório do Projecto de Programação de Sistemas Informáticos
    1
    Paulo Gonçalves – Projecto de PSI
    Índice
    Índice 1
    Introdução 2
    Objectivos 3
    Desenvolvimento do Projecto 4
    Ponto 1 – Instalação e configuração dos Ficheiros do Servidor 4
    Ponto 2 – Instalação e configuração dos programas de acesso ao servidor 7
    Parte I – Instalação e configuração do Navicat 7
    Parte II - instalação e configuração do Filezilla 7
    Ponto 3 – Criação de uma conta e tornar o nosso personagem GameMaster (administrador) 8
    Parte I – Criação de uma conta. 8
    Parte II – Tornar o nosso personagem GameMaster (administrador) 9
    Ponto 4 – Ligar o cliente ao servidor. 10
    Ponto 5 – Estudo das bases de Dados. 11
    Parte I – Estudo da Base de Dados Accounts. 11
    Parte II – Base de Dados common . 12
    Parte III – Base de Dados Player. 13
    Ponto 6 – Implementação de itens, NPCS e monstros(mobs) 15
    Parte I – Implementação de itens. 15
    Parte II – Implementação de NPCS. 20
    Parte III – Implementação de monstros(mobs). 22
    Dificuldades Sentidas. 25
    Conclusão. 26
    Girias utilizadas neste documento e no mundo dos jogos. 27
    Bibliografia e Netgrafia. 28
    2
    Paulo Gonçalves – Projecto de PSI
    Introdução
    Neste módulo foi proposto pela professora desenvolvermos-mos um projecto individual sobre algo aprendido na disciplina de Programação de Sistemas de Informação e propus-me a desenvolver e explicar o processo de instalação e configuração de um servidor de jogos,
    Metin2, e ainda conectar as bases de dados do servidor com o cliente de jogo. Escolhi este projecto porque engloba várias áreas da informática, nomeadamente Sistemas Operativos, Arquitectura de Computadores, Redes de Comunicações e Programação de Sistemas de Informação.
    Para tal efeito utilizei os seguintes programas:
    -Navicat 10.0;
    -Notepad++;
    -Filezilla;
    -Virtual PC 2007;
    -M2 extractor;
    -Portmap;
    -DUC Client No-ip;
    -Ficheiros do Servidor;
    -GIMP 2.8
    -Cliente.
    O servidor como requer bibliotecas somente disponibilizadas pelo sistema operativo FreeBSD toda a configuração e instalação foi feita numa máquina virtual. Os ficheiros do servidor assim como as bases de dados foram criados por outras pessoas sendo o meu objectivo apenas o de
    melhorar os aspectos defeituosos deixados pelos criadores. Todo o conhecimento que adquiri sobre este assunto foi nos fóruns da Internet, Youtube e na
    escola, tendo tido muito trabalho de pesquisa antes de poder fazer qualquer alteração.
    3
    Paulo Gonçalves – Projecto de PSI
    Objectivos
    Este projecto tem como objectivos principais:
    -Instalação e Configuração do Servidor de Metin2;
    -Instalação e Configuração dos programas de acesso;
    -Criar uma conta e tornar o nosso personagem GameMaster (administrador);
    -Ligar o cliente ao servidor;
    -Estudo das Bases de Dados;
    -Implementação de novos itens, NPCS e monstros (mobs).
    -Desenvolvimento de um programa para fazer a transferência dos arquivos mais recentes e
    actualizados em relação ao servidor (Patcher).
    4
    Paulo Gonçalves – Projecto de PSI
    Imagem 1 - Escolha da placa de rede
    Desenvolvimento do Projecto
    Ponto 1 – Instalação e configuração dos Ficheiros do Servidor
    Primeiro comecei por fazer a instalação de uma nova placa de rede. Para este passo fui no menu Iniciar do Windows, depois na pesquisa escrevi hdwwiz. Carreguei no botão Seguinte, seleccionei o ponto Instalar o hardware que eu seleccionar manualmente a partir de uma lista e carreguei no botão
    Seguinte. Nesta lista seleccionei a aba placas de rede e cliquei no botão seguinte. Na aba fabricante escolhi Microsoft e depois
    Microsoft Adaptor Loopback. Depois Seguinte, Seguinte e ele instala. Quando a placa de rede for instalada cliquei em concluir.

    Depois segue-se a configuração da placa de rede. Para este passo fui ao Menu Iniciar, Painel de Controlo, Centro de rede e partilha e no
    meu caso cliquei na conexão local 3. Fui as propriedades e editei as configurações IP v4. Pus
    para atribuir um IP fixo com as seguintes configurações.

    Ilustração 2 - Propriedade do Protocolo IP v4
    Pus um visto no Validar Definições ao Sair e OK.
    5
    Paulo Gonçalves – Projecto de PSI

    Feito isto tive que fazer três transferências.
    Ficheiros do Servidor + Maquina Virtual: http://depositfiles....files/g1o5m24f6
    Virtual PC 2007:http://www.microsoft.com/en-us/download/details.aspx?id=4580
    Portmap: http://www.mediafire...v1fvn8e62f8zb4a

    Extrai o Portmap e os ficheiros do Servidor e instalei como um programa normal o virtual PC.
    A senha dos ficheiros do servidor é “cyber-gamers.org”.

    De seguida abri o Virtual PC e cliquei no botão New...,
    Next, Create a Virtual Machine, Next, Next. No Operating System coloquei Others, Next, Adjusting the RAM, pus 1024MB de RAM e Next.
    Escolhi a opção An existing Virtual Hard Disk e Next.
    Coloquei a localização dos ficheiros do Servidor extraÍdos (um ficheiro .vhd) e cliquei Next.
    Tendo feito isto seleccionei a máquina e cliquei em Settings. Na aba Networking seleccionei o Microsoft Adaptor Loopback.
    Depois cliquei Finish. Seleccionei a minha máquina e cliquei Start.
    O programa Virtual PC vai iniciar um sistema operativo virtual. O utilizador que usamos é o root com a password mcncc.com
    (pode ser mudada posteriormente). Depois de colocar o login e a password na consola escrevi sysinstall. Depois escolhi a opção configure



    e depois Networking, Interfaces. Optei pela opção de0 e carreguei em No, No e coloquei as seguintes configurações:



    Ok, Yes, Esc, Esc. Outra configuração que fiz neste menu foi a configuração do Teclado. Para isso fui à opção Keymap e escolhi Portuguese (accent).
    Feito isto carreguei ESC e escrevi na linha de comandos /etc/rc.d/netif restart para reiniciar as configurações de rede.
    Depois escrevi reboot para reiniciar a máquina.
    Quando a máquina reiniciou inseri o login e password e escrevi na linha de comandos ./start para iniciar o servidor.
    Depois liguei o Portmap abrindo o programa.
    Chegando ao fim da instalação e configuração da máquina fui configurar os programas de acesso.
    7
    Paulo Gonçalves – Projecto de PSI

    Ponto 2 – Instalação e configuração dos programas de acesso ao servidor
    Parte I – Instalação e configuração do Navicat Primeiro transferi o programa. http://www.mediafire...s82q276b8gd8wtd
    Extrai e instalei normalmente. Quando me pediu para inserir o Serial abri o programa encontrado na pasta
    LZ0 (keygen.exe). Colei o serial e registei o programa. Abri o navicat e fui configurar uma nova ligação.
    Para isto cliquei na opção connect e escolhi mysql.


    Ilustração 5 - Nova ligação SQL

    Depois no connection name pus um nome à minha escolha
    (metin2). No host name coloquei 192.168.5.100. O port fica igual (3306). O utilizador fica root e a password é
    123456. Pus um visto no Save Password e Cliquei no OK.
    A parte da ligação à base de dados está feita.
    Parte II - instalação e configuração do Filezilla Efectuei a transferência no site:
    http://filezilla-project.org/
    Instalei como um programa normal e procedi a configuração. Para tal fui a aba Ficheiro, Gestor de Sitios, Novo sitio.


    Ilustração 6 - Novo Sitio

    No anfitrião coloquei 192.168.5.100, na Porta 22, no protocolo SFTPD – SSH File Transfer Protocol. Na parte
    do tipo de inÍcio de sessão coloquei normal e no utilizador root com a palavra passe mcncc.com.
    Feito isto cliquei em OK e a configuração do Filezilla está feita.
    8
    Paulo Gonçalves – Projecto de PSI

    Ponto 3 – Criação de uma conta e tornar o nosso personagem GameMaster (administrador)
    Parte I – Criação de uma conta.
    Este passo é indispensável pois sem uma conta não é possÍvel fazer a ligação ao servidor através de um cliente. Neste caso usei o navicat, mas de futuro usarei uma página criada por mim, para qualquer pessoa ter acesso e poder criar uma conta.
    Para tal efeito abri o navicat e acedi à ligação previamente configurada. Seleccionei a base de dados account e abri a tabela accounts.
    Na coluna id coloquei um número que ainda não foi usado(neste caso 2) e no login o nome usado para efectuar o login no cliente.


    Ilustração 7 - Adicionar uma conta

    A password utiliza uma encriptação por tive que fazer uma consulta antes, de modo que, fui a parte query, New Query, e escrevi
    SELECT PASSWORD(‘123456’);

    Ilustração 8 – Query para gerar a password encriptada

    Cliquei em run e copiei o valor obtido e colei na coluna password.
    Depois no real_name pus o nome verdadeiro, social_id o código para apagar as personagens, e no email o meu email.
    Feito isto a conta estava criada.
    9
    Paulo Gonçalves – Projecto de PSI

    Parte II – Tornar o nosso personagem GameMaster (administrador)
    Agora com a conta criada deveremos nos tornar administradores do jogo para que possamos fazer testes e outras coisas.
    No navicat abri a base de dados common e a tabela gmlist. Lá inseri um novo registo e coloquei os seguintes valores:
    mID: um número que ainda não fosse utilizado;
    mAccount: o login da conta que foi criada anteriormente;
    mName: o nome que o personagem irá ter;
    mAuthority: IMPLEMENTOR.


    Ilustração 9 - Adicionar uma personagem à tabela dos GMs

    Quando acabei este passo ao fazer ligação com aquela conta e ao criar um personagem com o nome escolhido, este se tornava GameMaster.
    10
    Paulo Gonçalves – Projecto de PSI

    Ponto 4 – Ligar o cliente ao servidor
    Após as configurações anteriores tive que criar o personagem e testar se o servidor estava a funcionar correctamente.
    Para isso fiz as configurações necessárias no cliente para poder ligarme ao servidor.
    Para efectuar a transferência do cliente acedi a este link:
    http://uploaded.to/file/jlxzczc8
    Extrai, abri o ficheiro serverimfo.py com o notepad++ , e coloquei o ip da máquina virtual (192.168.5.100).
    Abri o programa metin2_2010.exe cliquei em START e pus as minhas credências da conta.


    Ilustração 10 - Metin2_2010.exe


    Ilustração 11 - Inserir as credenciais de conta

    Fiz a ligação ao servidor e cliquei no botão criar. Escolhi a classe e o sexo (Guerreiro e Masculino),


    Ilustração 13 - Criar o Personagem

    o nome foi aquele que coloquei previamente na tabela de gmlist e escolhi a cor que desejava que o equipamento fosse (cor 2).
    Cliquei em criar e depois quando me apareceu para escolher o personagem cliquei em começar.
    Esperei o loading e apreceu o meu personagem com o simbolo GM acima da cabeça (significando que é GameMaster).


    Ilustração 12 - Personagem no Mundo do Jogo

    Como conseguimos jogar, o servidor estava funcional.
    11
    Paulo Gonçalves – Projecto de PSI

    Ponto 5 – Estudo das bases de Dados
    Existem 3 bases de dados que são fundamentais à execução do servidor.
    Elas são Accounts, Common e Player.
    Dentro das mesmas existem tabelas que exigem a nossa compreenção. Sem saber para que serve um campo em questão uma alteração na base de dados pode
    compremeter todo o funcionamento do servidor, desde dar erro ao escolher a personagem a o servidor nem ligar.
    Parte I – Estudo da Base de Dados Accounts
    Esta base de dados serve para guardar as contas que são criadas.
    Dentro desta existe apenas uma tabela que se precisa compreender, accounts, que tem os seguintes campos:

    Id, login, password, real_name, social_id, email, phone1, phone2, zipcode, adress,
    create_time, question1, answer1, question2, answer2, is_testor, status, securitycode,
    newsletter, empire, name_checked, availDt, cash, gold_expire, silver_expire, safebox_expire,
    autoloot_expire, fish_mind_expire, marriage_fast_expire, money_drop_rate_expire,
    ttl_cash, ttl_mileage, channel_company, last_play.
    Destes todos apenas precisei de compreender o funcionamento dos seguintes:
    Id, login, password, real_name, social_id, email, phone1, phone2, zipcode, adress, question1,
    answer1, question2, answer2, status, gold_expire, silver_expire, safebox_expire,
    autoloot_expire, fish_mind_expire, marriage_fast_expire e money_drop_rate_expire.

    Destes apenas os seguintes não podem ser nulos:
    Id, login, password, social_id

    Após estudar o funcionamento de cada campo cheguei a conclusão de que os campos actuam segundo o seguinte:
    Id, é uma chave primária. Serve para identificar a que conta os personagens pertencem.
    Este campo é auto increment por isso não precisamos de especificar um valor.
    Login, é o nome utilizado para se fazer o login no cliente. Este campo tem que ser único.
    Password, é a password utilizada para se fazer o login no cliente. Este campo utiliza a
    encriptação de Password do MySQL. Este processo é irreversivel, portanto só se pode encriptar
    e não se pode desencriptar fazendo com que seja uma palavra passe muito segura.
    Social_id, é o código que vai ser utilizado ao eliminar uma personagem, fazendo assim com
    que a personagem só possa ser eliminada pelo criador da conta.
    Real_name, é o nome real do dono da conta.
    Email, é o email a que a conta está associada. Se usarmos num site uma recuperação da
    password por email, este campo torna-se essencial.
    Phone1, phone2, é um campo para que se coloque o número de telemóvel.
    Não tem muito interesse pois o utilizador nunca vai ser contactado via telemovel e no jogo não há nada que seja feito a partir do telemovel.

    Zipcode, adress, Informações relactivamente a morada. Não tem muita utilidade nesta base de dados.
    Question1, question2, São as perguntas de segurança. Se for feito a reposição de password com perguntas secretas estes campos tornam-se essenciais.
    Answer1, answer2, São as respostas as perguntas de segurança.
    Se for feito a reposição de password com perguntas secretas estes campos tornam-se essenciais.
    Status, Quando o valor deste campo for OK, poderemos fazer o login no cliente normalmente.
    Este campo é de extrema utilidade se utilizarmos algum método de validação por email.
    gold_expire, silver_expire, safebox_expire, autoloot_expire, fish_mind_expire, marriage_fast_expire e money_drop_rate_expire,
    bónus do jogo, são do tipo data e guardam
    até que dia estes bónus estão activos. São extremamente uteis caso queiramos fazer um sistema VIP.
    Feito este estudo cheguei a conclusão de que a query óptima para acrescentar uma nova conta é:

    INSERT INTO accounts(login, password, social_id, email, question1, question2, answer1,answer2, status, gold_expire, silver_expire, safebox_expire, autoloot_expire,fish_mind_expire, marriage_fast_expire e money_drop_rate_expire) VALUES (‘login’,PASSWORD(‘password’), ‘código de apagar a personagem’, ‘email’, ‘questão 1’, ‘questão2’,‘resposta1’, ‘resposta2’, ‘OK’, ‘data de hoje mais dez dias’, data de hoje mais dez dias’, datade hoje mais dez dias’, data de hoje mais dez dias’, data de hoje mais dez dias’, data de hojemais dez dias’, data de hoje mais dez dias’); Parte II – Base de Dados common
    Esta base de dados serve para guardar as coisas comuns ao servidor.
    Uma das tabelas é a gmlist, que serve para guardar os GameMasters que o servidor tem.
    Esta tem os seguintes campos: mID, mAccount, mName, mAuthority, mContactIP, mServerIP
    Destes apenas os seguintes não podem ser nulos:
    mID, mAccount, mName, mAuthority Depois de estudar esta tabela cheguei à conclusão que:
    O campo mID é a chave primária e guarda o número do GM.
    O campo mAccount serve para dizer a que conta o GM pertence, para que se for criado um
    personagem com o mesmo nome do GM este não ter poderes de administração.
    O campo mName é o nome do personagem que é GM.
    O campo mAuthority é onde se designa que tipo de GM ele é, Implementor, que tem acesso a
    tudo ou apenas um Wizard, que pode só fazer apenas algumas coisas.


    13
    Paulo Gonçalves – Projecto de PSI

    Com isto cheguei a conclusão que a query optima é:

    INSERT INTO gmlist(mID, mAccount, mName, mAuthority, mServerIP) VALUES (‘id’, ‘nome daconta’, ‘nome do personagem’, ‘IMPLEMENTOR’, ‘ALL’); Parte III – Base de Dados Player
    Esta base de dados guarda todos os dados relactivamente ao jogo.
    Todas as tabelas são deveras importantes, embora para atingir o meu objectivo só precisei compreender as tabelas
    item_proto e mob_proto. Outras tabelas importantes são a player que guarda os registos dos
    personagems, guild, que guarda todas as alianças feitas no jogo, land, que guarda os terrenos das alianças, item, que guarda a quem pertence tal item, item_atrr, que guarda os especiais e quantidades que podem ser aplicados nos items, shop, que designa a determinado NPC uma
    loja e shop_item que determina que lojas vendem determinado item e que quantidades.
    Vou começar por falar da tabela item_proto.
    Ao estudar a tabela vi que tem os seguintes campos:

    Vnum, name, locale_name,type, subtype, weight, size, antiflag, flag, wearflag, immuneflag,
    gold, shop_buy_price, refined_vnum, refine_set, refine_set2, magic_pct, limittype0,
    limitvalue0, limittype1, limitvalue1, applytype0, applyvalue0, applytype1, applyvalue1,
    applytype2, applyvalue2, value0, value1, value2, value3, value4, value5, socket0, socket1,
    socket2, socket3, socket4, socket5, specular, socket_pct, addon_type.

    Vnum serve para identificar o id do item.
    Name serve para identificar o nome do item nos ficheiros do servidor.
    Locale_name serve para identificar os nomes dos itens no cliente.
    Type, subtype, servem para identificar qual o tipo de item (espada, leque, poção, item normal,).
    Size, o tamanho que ocupa no inventario.
    Antiflag, flag, wearflag, immuneflag, Restrições de raça, se pode ser vendido e se se pode deixar cair.
    Shop_buy_price, preço ao vender o item numa loja do jogo.
    Refined_vnum, refine_set, refine_set2, informações sobre a refinação do item.
    limittype0, limitvalue0, limittype1, limitvalue1, restrições de nivel.
    applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, bonus daquela arma.
    value0, value1, value2, value3, value4, value5, valores referentes ao tipo de item que é.
    E depois estudei a tabela mob_proto que tem os seguintes campos:

    14
    Paulo Gonçalves – Projecto de PSI

    vnum, name, locale_name, rank, type, battle_type, level, size, ai_flag, mount_capacity,
    setRaceFlag, setImmuneFlag, empire, folder, on_click, st, dx, ht, iq, damage_min,
    damage_max, max_hp, regen_cycle, regen_percent, gold_min, gold_max, exp, def,
    attack_speed, move_speed, aggressive_hp_pct, aggressive_sight, attack_range, drop_item,
    resurrection_vnum, enchant_curse, enchant_slow, enchant_poison, enchant_stun,
    enchant_critical, enchant_penetrate, resist_sword, resist_twohand, resist_dagger, resist_bell,
    resist_fan, resist_bow, resist_fire, resist_elect, resist_magic, resist_wind, resist_poison,
    dam_multiply, summon, drain_sp, mob_color, polymorph_item, skill_level0, skill_vnum0,
    skill_level1, skill_vnum1, sp_berserk, sp_stoneskin, sp_godspeed, sp_deathblow, sp_revive,
    skill_level2, skill_vnum2, skill_level3, skill_vnum3, skill_level4, skill_vnum4

    vnum, o id que identifica o mob.
    Name, o nome que identifica nos ficheiros do servidor.
    Locale_name, o numero que identifica no cliente.
    Rank, o nivel de dificuldade.
    Type, o tipo de mob que é.
    Level, o nivel do mob.
    Ai_flag, como o mob se comporta.
    Empire, o império ao qual pertence o moob.
    On_click, o que o mob faz quando se clica nele.
    St, dx, ht, iq, status do mob.
    Damage_min, damage_max, dam_multiply, valores de dano do mob.
    skill_level1, skill_vnum1, skill_level2, skill_vnum2, skill_level3, skill_vnum3, skill_level4, skill_vnum4, que habilidades o moob tem.
    resist_sword, resist_twohand, resist_dagger, resist_bell, resist_fan, resist_bow, resist_fire, resist_elect, resist_magic, resist_wind, resist_poison, resistencias aos personagens que o mob tem.

    15
    Paulo Gonçalves – Projecto de PSI

    Ponto 6 – Implementação de itens, NPCS e monstros(mobs)
    Para concluir este passo já é preciso descompactar ficheiros do servidor. Para tal usamos a ferramenta do M2 Extractor.
    Como já é uma ferramenta antigo que eu possuo e não aencontro já disponibilizada na internet eu próprio fiz o upload.
    Primeiro fiz a transferência do M2 Extractor http://www.mediafire.com/?jxao19gjw5oboqa
    Depois copiei para o caminho C:m2 e extrai. Fiquei com um programa chamado m2.exe.
    Este programa trabalha com os ficheiros .eix e .epk do cliente através de ficheiros .xml.
    Para o usar tive que ir à linha de comandos do Windows (Menu Iniciar e na pesquisa escrever cmd) e ir para a pasta do programa (cd c:m2).
    Feito isto tive que criar um ficheiro .xml e copiar o arquivo que desejo descompactar do cliente.
    Depois escrevi na consola m2 ficheiro.xml e ele extraiu-me os ficheiros para a pasta Source.Depois tive que ir através do navegador do Windows (explorer) ir a pasta c:m2source e lá encontravam-se todos os ficheiros que estavam dentro do ficheiro .epk.
    Parte I – Implementação de itens.
    Nesta parte adicionei 3 itens comuns que irão fazer parte de uma missão. O nome desses itens
    são, Chave de Azurite, Cabeça Encolhida e Totem do Resto. Todos estes itens têm um Ícone. Os Ícones podem ser encontrados nestes links:
    Chave de Azurite
    Cabeça Encolhida
    Totem do Resto
    Guardei as 3 imagens no meu computador.
    De seguida criei 4 ficheiros XML, icon.xml, root.xml, locale_de.xml, item_proto.xml em que os conteúdos eram os seguintes:
    icon.xml

    <Buildfile version="1.1"><Action type="extract" archivePath="C:m2icon" outputPath="Source" extractAll="YES"createXML="YES" xmlPath="iconpack.xml" /></Buildfile>16
    Paulo Gonçalves – Projecto de PSI

    locale_de.xml
    item_proto.xml
    De seguida copiei os ficheiros icon.epk, icon.eix, locale_de.epk, locale_de.eix da pasta pack do cliente para a pasta c:m2 e os ficheiros criados para a pasta c:m2.
    Abri a consola e fui para a pasta m2. Escrevi m2 root.xml. O programa extraiu sem quaisquer erros.
    Ilustração 14 - Linha de comandos Windows

    Fiz o mesmo para o ficheiro icon.xml e locale_de.xml. Foi criado a pasta Source, o ficheiro
    rootpack.xml,o ficheiro locale_depack.xml e o ficheiro iconpack.xml.
    No explorador do Windows fui à pasta c:m2Source e lá tinha os ficheiros todos que estavam dentro dos ficheiros .epk.
    Feito isto editei as imagens no GIMP para passar de png para tga, o formato de imagem do metin2.
    Para efectuar este passo abri as imagens no GIMP e na
    aba ficheiro -> exportar selecionei a extensão .tga.

    Ilustração 15 - Edição das imagens no GIMP

    Primeiro copiei as três imagens editadas para a pasta c:m2sourceiconitem

    <Buildfile version="1.1"><Action type="extract" archivePath="C:m2locale_de" outputPath="Source" extractAll="YES"createXML="YES" xmlPath="locale_depack.xml" /></Buildfile><Buildfile version="1.1"><Action type="item_proto_extract" path="item_proto" output="item_proto_dump.xml" /></Buildfile>17
    Paulo Gonçalves – Projecto de PSI

    Depois abri o ficheiro c:m2sourcelocaledeitemlist.txt com o notepad++.
    Efectuei uma pesquisa (CTRL + F) com o número 30311, 30312 e 30319 para verificar se já existiam entradas
    desse número nesse ficheiro. Como não existia entrada para esses números eu fui acrescentar estas linhas:
    Depois editei o ficheiro c:m2sourcelocaledeitem_desc.txt com o notepad++. Efectuei uma
    pesquisa (CTRL + F) com o número 30311, 30312 e 30319 para verificar se já existiam entradas
    desse número nesse ficheiro. Como não existia adicionei as seguintes linhas:
    Agora copiei o ficheiro c:m2Sourcelocaledeitem_proto para a pasta c:m2. Executei na
    consola do Windows, na pasta c:m2, o comando m2 item_proto.xml. Isto criou o ficheiro item_proto_dump.xml.
    Editei esse ficheiro. Fiz a pesquisa acima referida, e mais uma vez como não existia adicionei as seguintes linhas:

    30311 ETC icon/item/30311.tga30312 ETC icon/item/30312.tga30319 ETC icon/item/30319.tga30311 Chave de Azurite Esta delicada chave, com uma pedra de Azurite, abre a
    passagem para o 2º Andar das Catacumbas do Demónio.
    30312 Totem de Rosto Este pedaço de madeira com um rosto cravado serve como
    chave para o 6º Andar das Catacumbas do Demónio.
    30319 Cabeça Encolhida Esta cabeça de demónio encolhida abre o selo para o 3º Andar das Catacumbas do Demónio. Este item é negociável.

    <Item vnum="30311" name="Chave de Azurite" gb2312name="Chave de Azurite" type="5" subtype="0"weight="0" size="1" antiflag="0" flag="4" wearflag="0" immuneflag="0" gold="0" buy_price="0" limittype0="0"limitvalue0="0" limittype1="0" limitvalue1="0" applytype0="0" applyvalue0="0" applytype1="0" applyvalue1="0"applytype2="0" applyvalue2="0" value0="0" value1="0" value2="0" value3="0" value4="0" value5="0" socket0="0"socket1="64944" socket2="127" socket3="65008" socket4="21631" socket5="4855" refine_vnum="0" refine_set="0"magic_pct="0" specular="0" socket_pct="0" /><Item vnum="30312" name="Totem do Resto" gb2312name="Totem do Resto" type="5" subtype="0" weight="0"size="1" antiflag="0" flag="4" wearflag="0" immuneflag="0" gold="0" buy_price="0" limittype0="0" limitvalue0="0"limittype1="0" limitvalue1="0" applytype0="0" applyvalue0="0" applytype1="0" applyvalue1="0" applytype2="0"applyvalue2="0" value0="0" value1="0" value2="0" value3="0" value4="0" value5="0" socket0="0" socket1="64944"socket2="127" socket3="65008" socket4="21631" socket5="4855" refine_vnum="0" refine_set="0" magic_pct="0"specular="0" socket_pct="0" /><Item vnum="30319" name="Cabeça Encolhida" gb2312name="Cabeça Encolhida" type="5" subtype="0"weight="0" size="1" antiflag="0" flag="4" wearflag="0" immuneflag="0" gold="0" buy_price="0" limittype0="0"limitvalue0="0" limittype1="0" limitvalue1="0" applytype0="0" applyvalue0="0" applytype1="0" applyvalue1="0"applytype2="0" applyvalue2="0" value0="0" value1="0" value2="0" value3="0" value4="0" value5="0" socket0="0"socket1="64944" socket2="127" socket3="65008" socket4="21631" socket5="4855" refine_vnum="0" refine_set="0"magic_pct="0" specular="0" socket_pct="0" />18
    Paulo Gonçalves – Projecto de PSI

    Agora compactei os arquivos de novo para colocar no cliente.
    Para tal o que eu fiz primeiro foi a criacção de um outro ficheiro .xml, item_protopack.xml com o seguinte conteudo:
    Ainda acrescentei no ficheiro iconpack.xml as seguintes linhas:
    Executei na consola do Windows, na pasta c:m2, o comando m2 item_protopack.xml.
    Isto criou o ficheiro item_proto. Copiei o item_proto para a pasta c:m2Sourcelocalede e
    Voltei a compactar tudo com os seguintes comandos:
    m2 locale_depack.xml
    m2 iconpack.xml
    Copiei os ficheiros icon.epk, icon.eix, locale_de.epk e locale_de.eix para a pasta pack do cliente.
    Abri o navicat, liguei-me a ligação ahamachi(nome escolhido anteriormente), escolhi a base de dados player e em new query inseri a seguinte query:

    <Buildfile version="1.1"><Action type="item_proto_create" path="item_proto_dump.xml" output="item_proto" /></Buildfile>INSERT INTO item_proto VALUES ('30311', 'Chave de Azurite', 'Chave de Azurite', '5', '0', '0', '1','0', '4', '0', '', '0','0', '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0', '-1', '-1', '-1', '-1','-1', '-1', '0', '0', '0');INSERT INTO item_proto VALUES ('30312', 'Totem do Resto', 'Totem do Resto', '5', '0', '0', '1','0', '4', '0', '', '0','0', '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0', '-1', '-1', '-1', '-1','-1', '-1', '0', '0', '0');INSERT INTO item_proto VALUES ('30319', 'Cabeça Encolhida', 'Cabeça Encolhida', '5', '0', '0', '1','0', '4', '0', '', '0','0', '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0', '-1', '-1', '-1', '-1','-1', '-1', '0', '0', '0');<File archivedPath="icon/item/30311.tga"type="1"><![CDATA[Sourceiconitem30311.tga]]></File><File archivedPath="icon/item/30312.tga"type="1"><![CDATA[Sourceiconitem30312.tga]]></File><File archivedPath="icon/item/30319.tga"type="1"><![CDATA[Sourceiconitem30319.tga]]></File>19
    Paulo Gonçalves – Projecto de PSI

    Feito isto fui ao cliente, fiz login, escolhi a personagem e no chat escrevi /reload p para fazer um recarregamento as tabelas _proto.
    Depois no chat fiz /i 30311. Verifiquei se apareceu o item. Repeti o mesmo passo para os items 30312 e 30319.
    Ilustração 16 - Os três novos itens

    20
    Paulo Gonçalves – Projecto de PSI

    Parte II – Implementação de NPCS.
    Nesta parte foi adicionado um NPC (Non Playable Character), para fazer o teletransporte para dentro uma nova zona implementada.
    Para isso usei um modelo já existente de NPC (um ficheiro .gr2).
    As únicas coisas que fiz foi a instrução SQL e integrar o NPC com o cliente para que o possamos visionar.
    O primeiro passo que tomei foi extrair o ficheiro root.epk, e para tal efeito criei o ficheiro root.xml.
    Nele escrevi o seguinte:
    Copiei os ficheiros root.epk e root.eix, executei o seguinte comando na pasta c:m2: m2 root.xml e o programa descompactou os ficheiros contidos dentro do ficheiro root.
    Editei o documento c:m2sourcenpclist.txt com o notepad++ e pesquisei para ver se existe a linha 20133.
    Como não existia adicionei a seguinte linha nesse mesmo ficheiro:
    Feito isto guardei o documento e na consola executei o comando m2 rootpack.xml.
    Copiei o root.epk e root.eix gerados e colei dentro da pasta pack do cliente.

    Ilustração 17 - Modelo do NPC

    <Buildfile version="1.1"><Action type="extract" archivePath="C:m2root"outputPath="Source" extractAll="YES" createXML="YES"xmlPath="rootpack.xml" /></Buildfile>20133 jinno_patrol_spear21
    Paulo Gonçalves – Projecto de PSI

    Depois fiz a query SQL:
    Fiz login no jogo, digitei no chat /reload p e depois /m 20133.
    Ilustração 18 - NPC adicionado

    INSERT INTO mob_proto VALUES (20133, 'Guardião das Catacumbas', 'Guardião dasCatacumbas', '5', '1', '0', '120', '', 'NOMOVE', '0', '', 'STUN,SLOW,CURSE,TERROR', '0', '', '2','0','0','0','0','0','0', '120', '3', '1', '0','0', '100', '4', '100', '100', '0', '2000', '150', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', null, null, null, null, null, null);[/center][center]22
    Paulo Gonçalves – Projecto de PSI

    Parte III – Implementação de monstros(mobs).
    O cliente que fiz a transferência já tem todos os monstros que quero inserir implementados,
    portanto só precisei de trabalhar as querys SQL que foram as seguintes:
    INSERT INTO `mob_proto` VALUES ('2501', 'zombie_diseased_kid', 0x48F66C6C656E7175616C6C65, '1', '0', '0', '100', '', 'AGGR', '0', 'HUMAN', '', '0', '', '0','30', '40', '200', '10', '300', '450', '15000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2502', 'zombie_diseased_dog', 0x48F66C6C656E68756E64, '1', '0', '0', '98', '', 'AGGR', '0', 'HUMAN', '', '0', '', '0', '33','40', '200', '10', '300', '450', '15000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2503', 'Zombie', 0x48F66C6C656E6F6666697A696572, '2', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', '', '0', '', '0', '34', '40','200', '10', '300', '450', '15000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2504', 'zombie_diseased_sword', 0x48F66C6C656E6F6666697A696572, '2', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', '', '0','', '0', '40', '40', '200', '10', '300', '450', '15000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2505', 'zombie_diseased_spear', 0x48F66C6C656E77E46368746572, '2', '0', '0', '110', '', 'AGGR', '0', 'HUMAN','SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '120', '40', '150', '10', '300', '700', '50000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100','5000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2506', 'zombie_diseased_bow', 0x5A7765696B6F70662D48F66C6C656E736368FC747A65, '2', '0', '0', '105', '', 'AGGR','0', 'HUMAN', '', '0', '', '0', '43', '40', '200', '10', '300', '450', '15000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2507', 'zombie_diseased_boss', 0x48F66C6C656E67726569666572, '4', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', '', '0', '','0', '47', '40', '200', '10', '300', '450', '15000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2508', 'zombie_soldier_scythe', 0x48F66C6C656E6B726965676572, '3', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', '', '0', '','0', '65', '40', '200', '10', '600', '800', '150000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '11974', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2509', 'zombie_soldier_bow', 0x48F66C6C656E736368FC747A65, '3', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', '', '0', '', '0','59', '40', '200', '10', '300', '450', '30000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2510', 'zombie_soldier_spear', 0x48F66C6C656E73706565726BE46D70666572, '3', '0', '0', '105', '', 'AGGR', '0','HUMAN', '', '0', '', '0', '70', '40', '200', '10', '300', '450', '30000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2511', 'zombie_magician', 0x48F66C6C656E7072696573746572, '3', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', '', '0', '', '0','80', '40', '200', '10', '300', '450', '30000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2512', 'zombie_bigboss', 0x48F66C6C656E6D616A6F72, '4', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', '', '0', '', '0', '80', '40','200', '10', '300', '450', '30000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2513', 'zombie_ghost', 0x48F66C6C656E6D65747A6C6572, '2', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', '', '0', '', '0', '67','40', '200', '10', '300', '450', '30000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2514', 'zombie_general', 0x48F66C6C656E67656E6572616C, '4', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', '', '0', '', '0', '86','40', '200', '10', '300', '450', '30000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');23
    Paulo Gonçalves – Projecto de PSI

    INSERT INTO `mob_proto` VALUES ('2541', 'zombie_soldier_scy', 0x42F67365722048F66C6C656E6B726965676572, '4', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', '', '0', '', '0', '81', '40', '200', '10', '600','800', '150000', '3', '3', '8500000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '11973', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2542', 'zombie_soldier_bow', 0x42F67365722048F66C6C656E736368FC747A65, '2', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', '', '0', '', '0', '66', '40', '200', '10', '300','450', '50000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2543', 'zombie_soldier_spear', 0x42F67365722048F66C6C656E73706565726BE46D70666572, '2', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', '', '0', '', '0', '70', '40', '200','10', '300', '450', '50000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2544', 'zombie_magician', 0x42F67365722048F66C6C656E7072696573746572, '2', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', '', '0', '', '0', '59', '40', '200', '10', '300','450', '50000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2545', 'zombie_bigboss', 0x42F67365722048F66C6C656E6D616A6F72, '4', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', '', '0', '', '0', '76', '40', '200', '10', '300', '450','50000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2546', 'zombie_ghost', 0x42F67365722048F66C6C656E6D65747A6C6572, '3', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', '', '0', '', '0', '80', '40', '200', '10', '300', '450','50000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2547', 'zombie_general', 0x42F67365722048F66C6C656E67656E6572616C, '5', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', 'SLOW,FALL,CURSE,POISON,TERROR', '0', '','0', '90', '40', '200', '10', '300', '450', '50000', '3', '3', '5000000', '5000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2591', 'zombie_king', 0x5461727461726F73, '5', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', 'SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '90', '40', '200', '10', '450','800', '200000', '3', '3', '12000000', '12000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2592', 'zombie_king', 0x48F66C6C656E62617374617264, '5', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', 'SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '90', '40', '200','10', '450', '800', '200000', '3', '3', '12000000', '12000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2593', 'zombie_king', 0x48F66C6C656E62617374617264, '5', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', 'SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '90', '40', '200','10', '450', '800', '200000', '3', '3', '12000000', '12000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2594', 'zombie_king', 0x48F66C6C656E62617374617264, '5', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', 'SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '90', '40', '200','10', '450', '800', '200000', '3', '3', '14000000', '14000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2595', 'zombie_king', 0x457265626F73, '5', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', 'SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '90', '40', '200', '10', '450', '800','200000', '3', '3', '14000000', '14000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2596', 'zombie_king', 0x417A7261656C732042727574, '5', '0', '0', '105', '', 'AGGR', '0', 'HUMAN', 'SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '90', '40', '200', '10','700', '900', '200000', '3', '3', '14000000', '14000000', '350000', '70', '100', '100', '100', '2000', '120', '11972', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2597', 'zombie_god', 0x436861726F6E, '5', '0', '0', '120', '', 'AGGR', '0', 'HUMAN', 'SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '90', '40', '200', '10', '700', '800','200000', '3', '3', '16000000', '16000000', '350000', '70', '100', '100', '100', '2000', '120', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('2598', 'zombie_god', 0x417A7261656C, '5', '0', '0', '120', '', 'AGGR', '0', 'HUMAN', 'SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '120', '40', '150', '10', '800', '1000','250000', '3', '3', '16000000', '16000000', '600000', '70', '100', '100', '100', '5000', '120', '11971', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0');24
    Paulo Gonçalves – Projecto de PSI

    Tendo efectuado as querys foi ao cliente, fiz /reload p e expirimentei evocar todos os mobs que adicionei tendo sido eles:

    2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2541,
    2542, 2543, 2544, 2545, 2546, 2547, 2591, 2592, 2593, 2594, 2595, 2596, 2507, 2598, 30101,
    30102, 30103, 30104, 30111, 30112, 30113, 30114, 30115, 30116, 30117, 30118, 30119.
    Ilustração 19 - Monstros implementados

    INSERT INTO `mob_proto` VALUES ('30101', '?????', 0x53746174756520646573204B7564, '5', '1', '0', '70', '', 'NOMOVE', '0', '', 'STUN,SLOW,CURSE,TERROR', '0', '', '2', '0', '0', '0', '0', '0', '0', '3954','3', '1', '0', '0', '562', '79', '100', '100', '0', '2000', '150', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('30102', '?????', 0x426173616C742D4F62656C69736B, '5', '1', '0', '70', '', 'NOMOVE', '0', '', 'STUN,SLOW,CURSE,TERROR', '0', '', '2', '0', '0', '0', '0', '0', '0', '3954','3', '1', '0', '0', '562', '79', '100', '100', '0', '2000', '150', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('30103', '?????', 0x536368696C646B72F674656E66656C73, '5', '1', '0', '70', '', 'NOMOVE', '0', '', 'STUN,SLOW,CURSE,TERROR', '0', '', '2', '0', '0', '0', '0', '0', '0','3954', '3', '1', '0', '0', '562', '79', '100', '100', '0', '2000', '150', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0','0', '0');INSERT INTO `mob_proto` VALUES ('30104', '?????', 0x52756E656E706661686C, '5', '1', '0', '70', '', 'NOMOVE', '0', '', 'STUN,SLOW,CURSE,TERROR', '0', '', '2', '0', '0', '0', '0', '0', '0', '3954', '3', '1', '0','0', '562', '79', '100', '100', '0', '2000', '150', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('30111', 'zombie_ghost_door', 0x312E20546F72206465722056657264616D6D6E6973, '5', '0', '0', '120', '', 'AGGR', '0', 'HUMAN','SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '120', '40', '150', '10', '800', '1000', '250000', '3', '3', '16000000', '16000000', '600000', '70', '100', '100', '100', '5000', '120', '11971', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('30112', 'zombie_ghost_door', 0x322E20546F72206465722056657264616D6D6E6973, '5', '0', '0', '120', '', 'AGGR', '0', 'HUMAN','SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '120', '40', '150', '10', '800', '1000', '250000', '3', '3', '16000000', '16000000', '600000', '70', '100', '100', '100', '5000', '120', '11971', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('30113', 'zombie_ghost_door', 0x332E20546F72206465722056657264616D6D6E6973, '5', '0', '0', '120', '', 'AGGR', '0', 'HUMAN','SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '120', '40', '150', '10', '800', '1000', '250000', '3', '3', '16000000', '16000000', '600000', '70', '100', '100', '100', '5000', '120', '11971', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('30114', 'zombie_ghost_door', 0x342E20546F72206465722056657264616D6D6E6973, '5', '0', '0', '120', '', 'AGGR', '0', 'HUMAN','SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '120', '40', '150', '10', '800', '1000', '250000', '3', '3', '16000000', '16000000', '600000', '70', '100', '100', '100', '5000', '120', '11971', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('30115', 'zombie_ghost_door', 0x352E20546F72206465722056657264616D6D6E6973, '5', '0', '0', '120', '', 'AGGR', '0', 'HUMAN','SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '120', '40', '150', '10', '800', '1000', '250000', '3', '3', '16000000', '16000000', '600000', '70', '100', '100', '100', '5000', '120', '11971', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('30116', 'zombie_ghost_door', 0x362E20546F72206465722056657264616D6D6E6973, '5', '0', '0', '120', '', 'AGGR', '0', 'HUMAN','SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '120', '40', '150', '10', '800', '1000', '250000', '3', '3', '16000000', '16000000', '600000', '70', '100', '100', '100', '5000', '120', '11971', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('30117', 'zombie_ghost_door', 0x372E20546F72206465722056657264616D6D6E6973, '5', '0', '0', '120', '', 'AGGR', '0', 'HUMAN','SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '120', '40', '150', '10', '800', '1000', '250000', '3', '3', '16000000', '16000000', '600000', '70', '100', '100', '100', '5000', '120', '11971', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('30118', 'zombie_ghost_door', 0x382E20546F72206465722056657264616D6D6E6973, '5', '0', '0', '120', '', 'AGGR', '0', 'HUMAN','SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '120', '40', '150', '10', '800', '1000', '250000', '3', '3', '16000000', '16000000', '600000', '70', '100', '100', '100', '5000', '120', '11971', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `mob_proto` VALUES ('30119', 'zombie_ghost_door', 0x392E20546F72206465722056657264616D6D6E6973, '5', '0', '0', '120', '', 'AGGR', '0', 'HUMAN','SLOW,FALL,CURSE,POISON,TERROR', '0', '', '0', '120', '40', '150', '10', '800', '1000', '250000', '3', '3', '16000000', '16000000', '600000', '70', '100', '100', '100', '5000', '120', '11971', '0', '0', '0', '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');25
    Paulo Gonçalves – Projecto de PSI

    Dificuldades Sentidas
    Uma das dificuldades que senti no desenvolvimento deste projecto foi o de encontrar uns ficheiros de servior funcionais,
    pois todas as transferências que efectuei davam erros de configuração.
    Outra dificuldade foi o tempo que tive para a concretização do mesmo.

    26
    Paulo Gonçalves – Projecto de PSI

    Conclusão
    Diverti-me a realizar este projecto pois é uma coisa de que gosto muito.
    Embora não tenha conseguido concretizar todos os objectivos por falta de tempo, penso que o tempo foi bem
    distribuido para as tarefas, e consegui fazer o máximo que o tempo me permitia.
    Passei grandes momentos a fazer pesquisas, falar com outras pessoas sobre problemas encontrados
    nos ficheiros do servidor e a publicar tuturiais de minha autoria sobre este assunto.
    Tive ajuda do meu irmão Luis Carlos Graça, pois ele me disponibilizou um computador para montar os ficheiros de servidor,
    embora esteja a usar o meu computador de momento por falhas de configurações.
    No futuro desejo abrir o servidor ao público para que mais pessoas possam disfrutar do meu
    trabalho e desenvolver os objectivos que me faltam. Desejo ainda implementar mais coisas a
    nivel de missões, profissões, masmorras e campos de batalha.
    Para concluir espero que este relatório seja objectivo e de fácil compreensão.
    Paulo Gonçalves

    27
    Paulo Gonçalves – Projecto de PSI

    Girias utilizadas neste documento e no mundo dos jogos
    Download – Transferência;
    Upload – Alojar o ficheiro num servidor;
    Cliente – Programa que estabelece a ligação entre o utilizador e o servidor;
    NPC – Non Playable Character – Personagem comandada pelo computador;
    Mob – NPC com o qual o jogador luta para adquirir experiência, bens e dinheiro;
    Masmorras – Mapa que se tem de fazer determinadas condições para ir passando para a
    próxima área, normalmente precisa-se de um grupo para conseguir completar uma masmorra;
    Campo de Batalha – Mapa em que os jogadores se defrontam com o objectivo de marcar mais
    pontos. Cada morte de um jogador equivale a um ponto;
    Alianças – Uniões feitas entre jogadores com os mesmos ideais ou fins;
    Grupo – Junção temporário de Vários jogadores com o fim de atingir determinado objectivo;
    HP – Health Points – Pontos de Vida, é o tanto de vida que um jogador tem;
    SP – Spirit Points – Pontos de Espirito, é o tanto de mana que o jogador tem para executar as habilidades;
    Skills – Habilidades – Ataques especiais que só podem ser executados por determinada raça;
    Noob – Jogador novato, sem experiência de jogo;
    Leet – Jogador experiente, já jogou bastantes horas o jogo de forma que aprendeu muitos
    truques e dicas para fazer o máximo dinheiro e/ou experiência;
    Experiência – Quando se chega a uns determinados pontos de experiência o jogador sobe um nÍvel.
    Dinheiro – Moeda de troca no jogo.

    28
    Paulo Gonçalves – Projecto de PSI

    Bibliografia e Netgrafia
    http://cyber-gamers.org/ - Tutoriais escritos em português
    http://www.youtube.com/user/mt2tuguinha - Tutoriais em Video
    http://newmetin2.net/2010/02/02/codigos-gm-pt-pt/ - Códigos utilizados pelos GMs
    http://www.elitepvpers.com/forum/metin2-pserver-discussions-questions/ - Tutoriais escritos em alemão.
  16. Upvote
    DanielCR reacted to AkashaM2 in Editor de Lojas [Metin2 Shop Editor]   
    Já percebi como funca ! xD1) Quando ele ligar , ir a "Einstellungen" ;2) No "Verbindungsdaten benutzername" : root / Hamachi Ip : Meter o IP do hamachi acabado em 100 / Password : meter password do navicat ;3) no "Ordner mit den Bildern" : meter a localização do programa ;4) Só depois de ligar é que o programa fica mais rápido e que se pode meter em inglês etcDepois acho que no video já diz o resto , espero ter ajudado , porque eu tinha essa duvida xDAh e Metin2Europa , não te preocupes que não buga , eu próprio testei x)
  17. Upvote
    DanielCR reacted to Strimblaster in Como traduzir/editar bonus,a entrada no server, etc no client Metin2   
    Boas, aqui esta o video: