antiblock
Cyphriun

Search the Community

Showing results for tags '[tutorial]'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Comunidade
    • Community Servers
    • Anúncios
    • Apresentações
    • Sugestões
    • Suporte (Tickets)
    • Lixeira do fórum
  • Patrocínios
  • Hardware e Software
    • Smartphones e Tablets
    • Desktops e Laptops
    • Sistemas Operativos
  • Ensino
    • Programação
    • Web Design
    • Ensino Escolar
  • Gaming
    • Gaming Mobile
    • Battle Royale
    • Ação e FPS
    • MOBA
    • RPG e MMORPG
    • Outros Géneros
    • Consolas
  • Gerenciamento de Servidores e Clientes
    • Metin2
    • Minecraft
    • Counter-Strike
    • FiveM
    • Browser
    • Outros Servidores
  • Design World
    • Geral e Galerias de Arte
    • Pedidos de Designer
    • Tutoriais e Recursos
  • WebMaster
    • Geral
    • Alojamento Web
    • Plataformas Web
  • Discussão Geral
    • Notícias
    • Computador
    • Video-Sharing e Streaming
    • Automóveis & Motos
    • Desporto
    • Entretenimento
    • Anúncios e Comércio
    • FunZone
    • Off-Tópic

Categories

  • DEVs/Resellers
    • Plechito
    • iBeast
    • dracaryS
    • Vegas
    • Dungeons
  • Leaks Metin2
    • C++ / C# / Python
    • Unpacked
    • ServerFiles
    • Programs and tools
  • Graphics & 3D & Costume
    • Maps
    • Npc & Mobs
    • Equipment
    • Websites, Designs and Scripts
  • FiveM
  • Windows
    • Releases
  • Música
    • Hip-Hop
  • Trash
    • Metin2
    • Android
    • Aplicações
    • WebMaster
    • Jogos PC

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Discord


E-mail


Website URL


Localizaçao


Sobre mim

Found 259 results

  1. Boas pessoal! Venho apresentar-vos um tutorial feito por mim, para toda a comunidade! Este tutorial vai ensinar vocês a instalar a Kill-Gui. Print Final: Quest: Download Contém: Print do Kill-Gui no Conversor de Imagem (Paint.NET [Conversor]): Descrição do Ambiente de Trabalho: Desarrumado! (Trabalho muito lá por isso tem muita tralha). Tutorial: Downloads: https://mega.co.nz/#...I20oqY8LQmlFCk4 https://www.virustotal.com/pt/file/9da897ada513d5e99573f9e0c689f8a7114ef6fb82290e8f584db72e87ec74f4/analysis/1365595131/ Obrigado especial a: [*]ToBii [*].Avenue Cumprimentos, .HaveGone // Luis Bizarro
  2. Olá eu estava com um problema no cliente do rancoroso pq o sapato do vento não mostra ele mostra tipo um pote no lugar dele, ai nem criai tópico aki pra pedir ajuda ai passado uns dias tive a coriosidade de olhar no icons.*** la dentro destes arquivos no "item" casei o item "72702" que e o sapatos, e não tava la o icon, então eu peguei o icon de outro cliente e xmls do sapato e testei e funciono dexo printo do que irar mudar ... https://mega.co.nz/#!1AwgyDTS!NcJacRYGkF4p1bnDAuB8fVy2-qoyfzOvd6CwbUhQY3Y https://www.virustotal.com/pt/file/c1d798273ed94b02e070476f0b92f86cb033b83365d081a2be6989104dd19339/analysis/1364898708/ Peço desculpa por ter postado errado no 1º tópico.
  3. Olá novamente, quando eu estava passando algumas query pra 2010, ond tira o "NULL" e poem "0" ou " '0' " descobri um geito rapido, e eficiente, abra o bloco de notas ou outro ponha as query la, feche salva, abre novamete com "notepad++" , e clica "C+F", va aparecer uma janela so seguir os prints que vcs vão ver como é; Uma coisa simples que eu descobri... Si for pra copiar pra outras comunidades peso que não retire os créditos do autor. Tutorial Especialmente para Cyber Gamers Créditos Sinval Cumprimentos,
  4. Hj andando por ai achei um tutorial de por portmap ligar sosinho, achei interesante pois me deu mo geito, então vo dexa o tutu ae... 1º- Ter notepadd++/PortMap 2º-Abra o PortMap com o notepadd++ carregue CTRL + F e procure: EURE IP HAMACHI Depois é só mudar o EURE IP HAMACHI por o ip do seu server. Créditos : Não tinha Criador tópico : MasSaCrE Fonte : Elite... C. Sinval
  5. Boas Pessoal! Venho-vos apresentar uma proteção para o vosso client. Explicação: Quando abrirem o client este ficheiro .py ele irá verificar todos os ficheiros que estão lá. Caso não encontre ou tenha um amais ele abrirá uma pop-up a dizer: Cliente a fechar agora! Por favor apague: Nome dos Itens &--#60;- Em caso de têm amais. Falta: Nome dos Itens &--#60;- Caso falte algum. Código.py: import dbgimport appdef RunCheckUp():Whitelist = ['artpclnt.dll', 'channel.inf', 'ClientStarter.exe', 'config.exe','check.py', 'devil.dll', 'DSETUP.dll', 'errorlog.exe', 'granny2.dll', 'guieditor', 'ignore.cfg', 'ijl15.dll', 'ilu.dll', 'index', 'lib', 'locale.cfg', 'mark', 'metin2.cfg', 'miles', 'mouse.cfg', 'mscoree.dll', 'MSS32.DLL', 'msvcp60.dll', 'MSVCRTD.DLL', 'pack', 'python22.dll', 'py_loader.dll', 'screenshot', 'Settings', 'SpeedTreeRT.dll', 'syserr.txt', 'unicows.dll', 'upload']path = os.getcwd()k = os.listdir(path)if k != Whitelist: ####Starting_Phase01##### for item in k: if not item in Whitelist: dbg.LogBox("Remover: " + str(item)) try: os.remove(item) except: dbg.LogBox("Cliente a fechar agora!") dbg.LogBox("Por favor remova: " + str(item)) app.Abort() else: passif Whitelist != k: #####-Starting_Phase02####### for missing in Whitelist: if not missing in k: dbg.LogBox("Falta: " + str(missing)) else: passRunCheckUp()Download:https://mega.co.nz/#!WIty0BDB!U5u3Ah_ZZRr8HPFmHKSIvUrMB1AEHnrKiSCU0Tr7sxA VirusTotal: https://www.virustot...sis/1364148933/ Créditos: [*] ShuzZzle - Criação. [*] Notepad++ - Software de edição. [*] Ymir - Plataforma. [*] Luis Bizarro - Tópico. C, Luis Bizarro
  6. Boas pessoal! Venho aqui apresentar um tutorial novo de como meter a percentagem na barra de loading! ROOT 1º Descompatar o Root 2º Abrir o introloading.py 3º Procurar: self.loadingImage.SetScale(width, height)4º Depois disso colocar: self.loadingGage.SetPercentage(2, 100)5º Procurar: self.loadingGage=self.GetChild("FullGage")6º Colocar depois da alinea anterior: self.loadingLoadingPercent=self.GetChild("LoadingPercent_Text")7º Procurar: self.loadingGage.SetPercentage(2+98*p/100, 100)8º Depois da alinea anterior colar: self.loadingLoadingPercent.SetText(str(2+98*p/100)+"%")9º Compatar o root UIScript 10º Descompactar o UIScript 11º Abrir o loadingwindow.py 12º Procurar por: "name" : "FullGage",13º Depois dessa secção colocar: { "name" : "LoadingPercent_Text", "type" : "text", "x" : 190, "y" : -20, "text" : "", "vertical_align" : "center", },14º Compatar o UIScript Créditos: [*]Ymir - Ofereceu a plataforma para testar. [*]Notepad++ - Software de edição. [*]Luis Bizarro - Tutorial. [*]MKMT2 - Client "Cobaia". Cumprimentos, Luis Bizarro
  7. Essa função faz com que você consiga banir o ip de um player por região. ------------------------------ Primeiramente coloque essa Query em Account no seu MYSQL DROP TABLE IF EXISTS `iptocountry`;CREATE TABLE `iptocountry` ( `IP_FROM` varchar(30) NOT NULL default '', `IP_TO` varchar(30) NOT NULL, `COUNTRY_NAME` varchar(30) NOT NULL, PRIMARY KEY (`IP_FROM`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;Feito, agora abra a nova tabela (iptocountry) Agora você irá adicionar os ips... IP_FROM: Inicio do IP a ser banido IP_TO: Final do IP a ser banido COUNTRY_NAME: ( Você que ira adicionar o local ) Exemplo em imagem E feito, ip banido. ### Função testada e aprovada by - TURK - ### Pseudo Code C++ int __cdecl add_blocked_country_ip(int a1){ int v1; // eax@1 int v2; // edx@1 char *v3; // ecx@1 char v4; // zf@1 int v6; // [sp+20h] [bp-8h]@1 v1 = operator new(8); v6 = v1; v2 = v1; v3 = *(char **)&s_blocked_ip[4]; v4 = *(_DWORD *)&s_blocked_ip[4] == *(_DWORD *)&s_blocked_ip[8]; *(_DWORD *)v1 = *(_DWORD *)a1; *(_DWORD *)(v1 + 4) = *(_DWORD *)(a1 + 4); if ( v4 ) { std__vector_T_BLOCK_IP___std__allocator_T_BLOCK_IP_______M_insert_aux((int)s_blocked_ip, v3, (int)&v6); v2 = v6; } else { if ( v3 ) { *(_DWORD *)v3 = v1; v2 = v6; } *(_DWORD *)&s_blocked_ip[4] = v3 + 4; } return dev_log( (int)"block_country.cpp", 86, (int)"add_blocked_country_ip", 2048, "BLOCKED_IP = %u - %u", *(_DWORD *)v2, *(_DWORD *)(v2 + 4));} signed int __cdecl is_blocked_country_ip(int arg){ int v1; // eax@2 unsigned int v2; // ecx@2 int v3; // ecx@2 char v4; // t0@2 char v5; // t1@2 signed int result; // eax@8 int v7; // [sp+4h] [bp-24h]@7 int v8; // [sp+8h] [bp-20h]@7 signed int v9; // [sp+Ch] [bp-1Ch]@7 const char *v10; // [sp+10h] [bp-18h]@7 int v11; // [sp+14h] [bp-14h]@7 int v12; // [sp+1Ch] [bp-Ch]@1 if ( __inet_aton(arg, &v12) ) { v1 = *(_DWORD *)s_blocked_ip; v3 = v12; v4 = BYTE1(v3); BYTE1(v3) = v12; LOBYTE(v3) = v4; v2 = __ROR__(v3, 16); v5 = BYTE1(v2); BYTE1(v2) = v2; LOBYTE(v2) = v5; while ( v1 != *(_DWORD *)&s_blocked_ip[4] ) { if ( **(_DWORD **)v1 &--#60;= v2 && v2 &--#60;= *(_DWORD *)(*(_DWORD *)v1 + 4) ) { v11 = arg; v10 = "BLOCKED_COUNTRY_IP (%s) : YES"; v9 = 16; v8 = (int)"is_blocked_country_ip"; v7 = 128; goto LABEL_8; } v1 += 4; } dev_log((int)"block_country.cpp", 133, (int)"is_blocked_country_ip", 16, "BLOCKED_COUNTRY_IP (%s) : NO", arg); result = 0; } else { v11 = arg; v9 = 16; v8 = (int)"is_blocked_country_ip"; v10 = "BLOCKED_COUNTRY_IP (%s) : YES"; v7 = 118;LABEL_8: dev_log((int)"block_country.cpp", v7, v8, v9, v10, v11); result = 1; } return result;} void __cdecl __static_initialization_and_destruction_0(int a1, int a2){ int v2; // eax@17 int v3; // [sp+4h] [bp-34h]@12 if ( a2 == 65535 ) { if ( a1 == 1 ) { std__ios_base__Init__Init(&std____ioinit); *(_DWORD *)s_blocked_ip = 0; *(_DWORD *)&s_blocked_ip[4] = 0; *(_DWORD *)&s_blocked_ip[8] = 0; *(_DWORD *)s_block_exception = 0; v2 = std____default_alloc_template_true_0___allocate(0); *(_DWORD *)s_block_exception = v2; *(_DWORD *)(v2 + 4) = 0; *(_DWORD *)v2 = 0; *(_DWORD *)&s_block_exception[4] = 0; *(_DWORD *)(*(_DWORD *)s_block_exception + 8) = *(_DWORD *)s_block_exception; *(_DWORD *)(*(_DWORD *)s_block_exception + 12) = *(_DWORD *)s_block_exception; } if ( !a1 ) { if ( *(_DWORD *)&s_block_exception[4] ) { std___Rb_tree_std__string_std__string_std___Identity_std__string__std__less_std__string__std__allocator_std__string_____M_erase( (int)s_block_exception, *(void **)(*(_DWORD *)s_block_exception + 4)); *(_DWORD *)(*(_DWORD *)s_block_exception + 8) = *(_DWORD *)s_block_exception; *(_DWORD *)(*(_DWORD *)s_block_exception + 4) = 0; *(_DWORD *)(*(_DWORD *)s_block_exception + 12) = *(_DWORD *)s_block_exception; *(_DWORD *)&s_block_exception[4] = 0; } std____default_alloc_template_true_0___deallocate(*(_DWORD *)s_block_exception, 20); } if ( a2 == 65535 ) { if ( !a1 ) { if ( (*(_DWORD *)&s_blocked_ip[8] - *(_DWORD *)s_blocked_ip) &--#62;&--#62; 2 ) std____default_alloc_template_true_0___deallocate( *(_DWORD *)s_blocked_ip, 4 * ((*(_DWORD *)&s_blocked_ip[8] - *(_DWORD *)s_blocked_ip) &--#62;&--#62; 2)); } if ( a2 == 65535 ) { if ( !a1 ) std__ios_base__Init___Init(&std____ioinit, v3); } } }}Thats all! Créditos pela função: - TURK -
  8. Oi, hoje vou falar sobre os when. Bem já no tópico anterior, falei no que consistem os when e alguns dos when mais utilizados. Utilizamos como exemplo o login, mas desta vez faremos um pouco de tudo. when x begin Deixaremos o when em x (não existe, é só uma incógnita). A incógnita poderá tomar diferentes ações: when id_item.use Quando se utilizar o item com o ID: id_item, começa a ação. when id_npc.click Quando clicar no npc com o ID: id_npc, começa a ação. when id_npc.chat."texto" Quando clicar no npc com o ID: id_npc, irá aparecer uma janela para escolher várias opções (apenas uma neste caso), no caso do exemplo, quando clicarem na opção texto começa a ação. when id_npc.target.click Quando clicar no target (objetivo) com o ID: id_npc, começa a ação. (Quando começarmos com os local darei um exemplo deste). when login Quando fizer login, começa a ação. when logout Quando fizer logout, começa a ação. when button Tem a ver com as letter (missões em pergaminhos). Explicarei noutro dia. when info Tem a ver com as letter (missões em pergaminhos). Explicarei noutro dia. when letter Missão em pergaminho. Explicarei noutro dia. when nome.timer Quando o timer nome começar, iniciará a ação. when kill Quando o jogador matar algo (seja mob, seja outra personagem), começa a ação. when levelup Quando o jogador subir/descer de nível, começa a ação. Outras... Exemplos: Até aqui percebido certo? Então vamos complicar um pouco. Juntar a incógnita x com outras Funções. Como são muitas e muitas mesmo, é normal que por vezes nos esqueçamos de algumas funções, por isso, deixo aqui o Tópico que uso quando me esqueço de alguma. Ora bem vamos usar uma função simples utilizada na quest exemplo_levelup. O pc.get_level(). Esta função, lê o nível da pessoa que pratica a ação, sendo assim, para ler um valor atribuído ao nível do jogador, somos obrigados a usar os símbolos de igualdade, superioridade e inferioridade. (=, >, <). Por exemplo, se quisermos que a ação seja praticada quando se faça login e o jogador esteja a nível 5 ou maior, o when seria desta forma: when login with pc.get_level() >= 5 begin Percebido? E se fosse, menor ou igual? when login with pc.get_level() =< begin E igual, é só colocar um =... Errado! É necessário sempre 2 simbolos. Ou seja: maior ou igual: >= menor ou igual: =< igual: == As funções ligam-se à ação graças ao with. É um elemento importante quando queremos fazer quests algo mais trabalhadas. Então, vocês a partir daqui, chegam à conclusão que o with serve para ligar 2 ou mais funções à ação. Errado! Para ligar mais que uma função à ação, passamos a utilizar o and em vez do with. Isto é: when levelup with pc.get_level() == 5 and pc.get_map_index() == 1 begin Queremos usar vários when, então fazemos um, fechamo-lo e abrimos outro. Sim, mas existe outra maneira mais simples de o fazer. Nesses casos, utilizamos o or. when 9001.chat."Texto1" or 9002.chat."Texto2" or 9003.chat."Texto3" begin Com isto tudo já conseguimos complicar um when. Ou seja, juntar um or, com um with e um and no mesmo when. Vejamos: when login or levelup with pc.get_map_index() == 1 and pc.get_empire() == 1 begin Fácil? Ora bem, não vou andar a explicar em que consistem cada uma das funções quest. É coincidência que um membro tenha postado o significado das funções mais usuais nas quests. Poderão vê-lo neste Tópico. Acho que é tudo. Dúvidas, comentem aqui no tópico. Espero não estar a fazer isto para nada, se for assim deixarei de fazê-lo porque ninguém quer aprender. Se alguém estiver a tentar aprender isto, que diga, assim para a próxima faremos um pequeno "exercício" com os conhecimentos lecionados até agora. Cumprimentos. Edit: Na quest exemplo_login vemos uma função nova (para alguns) que é o timer("nome", tempo em segundos), esta função apenas adiciona um temporizador, por assim dizer, à quest. Para dar início ao temporizador o nosso when tem que estar da seguinte forma: when nome.timer begin
  9. Bem, não sou um quester profissional, mas ensinar isto a todos aqueles que não sabem, será um prazer :D Vamos aprender o básico de fazer quests. Ultimamente tenho visto, tanto no skype, como no fórum, gente que precisa bastante de quests que são muito simples. Venho aqui a fazer um pequenino tutorial sobre o básico das quests, para quem não sabe. [*]A primeira coisa que temos que saber é que TODAS as quests começam por: quest nome begin Onde em nome colocamos o nome da quest. Assim damos ordem de iniciar a quest. [*]Depois disto, prosseguimos para o state. state start begin [*]Agora, vejamos, quest serve para dar início à quest, e o state, serve para... ? O state é tipo uma divisão da quest, em todas as quests o state inicial será sempre start e a partir daí podemos mudar o state para que seja possível praticar várias ações. [*]E continuamos para o início da ação: when ação begin No when há vários tipos de ações: - button; - enter; - info; - kill; - leave; - letter; - levelup; - login; - logout; - target; - unmount; - chat; - click; - use. Onde as mais usuais são: - button; - info; - kill; - letter; - levelup; - login; - target; - chat; - click; - use. [*]Ora bem, onde é que se costumam usar estes tipos de when? Se repararem, nas quests do biólogo usam-se estes whens todos. Mas nós nos iremos concentrar mais no login, até porque será usado no exemplo. Vamos lá traduzir então estas 3 primeiras linhas de uma quest: Quando a quest nome iniciar, o state start iniciará, fazendo com que a ação inicie. [*]Parece complicado falando portuquês? Falemos então em quest, na linguagem .lua: quest teste beginstate start begin when login begin say("Vais mudar de state") set_state(aprender) endendstate aprender begin when login begin say("Estás no state aprender") endendend Ora bem, vejamos pouco a pouco. quest teste begin Início da quest. state start begin Início do state start. when login begin Início do when, isto fará com que o jogador quando logue na personagem (incluindo quando nos teleportamos a um mapa) sofra uma ação. say("Vais mudar de state") É a ação que o jogador irá sofrer quando fizer login. set_state(aprender) Mudança do state para que o jogador sofra outra ação. end Fecho do when. end Fecho do state. state aprender begin Início do novo state que fizémos. when login begin Início do when, isto fará com que o jogador quando logue na personagem (incluindo quando nos teleportamos a um mapa) sofra uma ação diferente da ação do state start. say("Estás no state aprender") É a ação que o jogador irá sofrer no state aprender. end Fecho do when. end Fecho do state. end Fecho da quest. Fácil? Então, vamos prosseguir. [*]Há alguma maneira de mudar de state entre quests? Sim, com a função set_quest_state("nome_da_quest", "nome_do_state"). Vejamos: quest teste4 beginstate start begin when 9010.chat."Ae" begin say("Ae cara") set_quest_state("teste5", "hi") endendend quest teste5 beginstate start begin when 9003.chat."Olá" begin say("Olá") set_state(hi) endendstate hi begin when 9001.chat."Hi" begin say("Hello, nice to meet you!") endendend [*]O que irá acontecer aqui? Quando for ao npc 9010 e clicar na opção Ae, irá aparecer uma mensagem a dizer Ae cara e irá mudar para o state hi, da quest teste5 que fará com que ao ir ao npc 9001 e clicar na opção Hi, aparecerá a mensagem Hello, nice to meet you! É simples! Ou seja, o state hi só será ativado, quando a quest teste4 acabar! [*]O que são os ends? Tal como os begin dão inicio a algo, os end fecham-no. [*]Como sabemos quantos ends colocar numa quest? Isso é simples e fácil, para que uma quest funcione, além de uma boa sintaxe, necessita de estar devidamente fechada. Dito isto, e observando a quest, conseguimos deduzir que: - O quest, state e when são obrigatórios levarem sempre um end. Ou seja, em todas as quests sempre são necessários, 3 end, estes 3 são obrigatórios! Um para a quest, outro para o state e outro para o when. Além destas, os if também levam end, sempre! Exemplificando: quest aprender beginstate start begin when login begin say("Já sei usar os ends") end -> end do whenend -> end do stateend -> end da quest Simples, não? [*]E se quiser usar 2 when numa quest, tenho sempre que mudar de state? Não, nem sempre, apenas quando o jogador sofre uma ação digamos, bastante diferente da primeira, ou seja, se for para colocar vários when num npc, por exemplo, para abrir várias lojas, então antes de começar um segundo when, teriamos que fechar o primeiro. Isto é: quest teste2 beginstate start begin when 9003.chat."The End" begin say("Oi") end -> end do primeiro when when 9003.chat."The End2" begin say("Adeus") end -> end do segundo whenend -> end do stateend -> end da quest E o mesmo se passa com os state, mas não com a quest porque a quest inclui isto tudo, se fechas uma quest, não podes adicionar outra no mesmo documento. [*]Estrutura de uma quest Esta pode ser como vocês quiserem, mas se tiverem dúvidas nos ends que colocar aconselho a usarem a que eu uso: Desta maneira sabemos o que é que estamos a fechar. E é tudo! Qualquer dúvida digam e se quiserem noutro dia, outro tópico destes, avisem! Espero ter sido explícito. Cumprimentos.
  10. Olá, como pedido do TiiToino aqui está o Script Anti login bug + Autokill Log's. Este é um sistema anti login bug que apaga automaticamente os log's que originam o tal "login bug" Tutorial: autolog.sh É um bocado dificil de explicar porque existem milhares de serverfiles diferentes, quem tiver duvidas adicione skype: senhordarua - Fazem o download do ficheiro autolog.sh - Editam o ficheiro com o notepad++ - Em "conf/login" colocam o directório do auth - E onde taem "../../log/login/syslog" colocam o directório onde é criado o syslog do auth (login) - Onde taem "script/login/autolog.sh" colocão o directório onde irão meter o ficheiro - Colocam o ficheiro onde estão os outros scripts, exemplo: start.sh, clear.sh, etc... - Clicar com botão direito do rato e dar permissões 777 ​- Reboot :) Tutorial: autologDB.sh - Fazem o download do ficheiro autologDB.sh - Editam o ficheiro com o notepad++ - Em "cd conf" alteram so o "conf" para o directório da database - E onde taem "../log/syslog" colocam o directório onde é criado o syslog da database (Base de dados) - Onde taem "script/db/autologDB.sh" colocão o directório onde irão meter o ficheiro - Colocam o ficheiro onde estão os outros scripts, exemplo: start.sh, clear.sh, etc... - Clicar com botão direito do rato e dar permissões 777 - Reboot :) Download autolog.sh:http://www.4shared.c...5K/autolog.html Download autolog.sh(db):http://www.4shared.c.../autologDB.html Virustotal(autolog.sh):https://www.virustot...sis/1362325476/ Virustotal(autologDB.sh):https://www.virustot...sis/1362327166/ Script autolog.sh: #!/bin/shcdcd conf/loginSERVER_NAME=gamewhile ( : ) do DATE=`date` echo "autogame starting game $DATE" >> ../../log/login/syslog echo "running" $SERVER_NAME >> ../../log/login/syslog# cp -f $SERVER_NAME $SERVER_NAME.current $SERVER_NAME rm cores/core.1 mv cores/core.2 cores/core.1 mv cores/core.3 cores/core.2 mv cores/core.4 cores/core.3 mv cores/core.5 cores/core.4 mv cores/core.6 cores/core.5 mv $SERVER_NAME.core cores/core.6 if [ ! -r .fastboot ]; then sleep 3 else rm .fastboot sleep 3 fi if [ -r .killscript ]; then DATE=`date`; echo "autoscript killed $DATE" >> ../../log/login/syslog rm .killscript exit fi while [ -r pause ]; do sleep 60 donedonecdsh script/login/autolog.sh & Script autologDB.sh: #!/bin/shcdcd confSERVER_NAME=dbwhile ( : ) do DATE=`date` echo "autogame starting game $DATE" >> ../log/syslog echo "running" $SERVER_NAME >> ../log/syslog# cp -f $SERVER_NAME $SERVER_NAME.current $SERVER_NAME rm cores/core.1 mv cores/core.2 cores/core.1 mv cores/core.3 cores/core.2 mv cores/core.4 cores/core.3 mv cores/core.5 cores/core.4 mv cores/core.6 cores/core.5 mv $SERVER_NAME.core cores/core.6 if [ ! -r .fastboot ]; then sleep 3 else rm .fastboot sleep 3 fi if [ -r .killscript ]; then DATE=`date`; echo "autoscript killed $DATE" >> ../log/syslog rm .killscript exit fi while [ -r pause ]; do sleep 60 donedonecdsh script/db/autologDB.sh & Cumprimentos SNiK Problemas ou duvidas Skype: senhordarua
  11. Tutorial de como criar servidor de metin 2
  12. Exemplo do erro: SYSERR: Oct1011:32:11 :: GetMotionFileName: Motion: dog have not motlist.txt vnum(101) folder(dog) Como resolver: Bem no meu caso o erro é no mob 101 (cão) como podem verificar aqui "vnum(101)"; - Entramos na Base De Dados, vamos a tabela mob_proto; - Procuramos pelo mob do erro, no meu caso é 101 (cão); - Uma ves encontrado procuramos pela coluna folder e déve lá tar "uma coisa qualquer", voces colocam o nome do mob, no meu caso é "dog"; - Reboot e problema resolvido; Cumprimentos SNiK
  13. Exemplo do erro: SYSERR:Oct1011:32:11::DoRefineWithScroll:REFINE:Unknown refine scroll item.Value0:1 Como resolver: - Entramos na Base De Dados, vamos a tabela item_proto; - Procuramos pelo item "25041" (Metal Mágico); - Uma ves encontrado procuramos pela coluna value0 e déve lá tar um "1" e vocês substituem por um "0"; - Reboot e o erro estará resolvido; Cumprimentos SNiK
  14. Bem pessoal andava eu a testar umas serverfiles quando deparei-me com esse seguinte erro: Pensava ser um bicho de sete cabeças, mas a sua resolução é muito simples, embora muitas pessoas não sabem como resolver, basta fazerem o seguinte: 1- Abram o VirtualBox 2- Vão a configurações no disco que vocês têm o problema. 3- Selecciona a aba Sistema -> Processador 4- basta seleccionarem o quadrado que diz: Habilitar PAE/NX E está concluído, agora ligam a máquina normalmente :) Se ajudei http://cyber-gamers.org/public/style_emoticons/default/451960.gif que não custa nada :p Créditos: Cátia Almeida :)
  15. Ola a todos venho aqui ensinar a adicionar outros tipos de skills em outro chars. Exemplo: warrior corpo com buffs. E simples 1º-vão a pasta do metin abrem este de-comento playersettingmodule_new.py em bloco de notas, 2º-ai vão a "SKILL_INDEX_DICT = {" e onde esta warrior em cima e skills corpo em baixo mental vou deixar 1 exemplo: JOB_WARRIOR : { 1 : (1, 2, 3, 4, 5, 91, 92, 93, 137, 0, 138, 0, 139, 0,), 2 : (16, 17, 18, 19, 20, 0, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,), }, 3º-Guardar. e pronto o que mudei e o que esta sublinhado estava 0 e meti 3's skills chaman, 1 coisa o 3 skill para ser visto e mudar para skills cavalo e mudar skills normal de novo Espero ter ajudado créditos: epvp
  16. Olá pessoal do Cyber Gamers, hoje eu vim postar uma Tutorial feita por mim ^^ 1º- Abra o VirtualBOX, e inicie seu server! 2º - Logue no seu servidor 3º - Digite ee /etc/ssh/sshd_config 4º- aperte a tecla de SETA PARA BAIXO, até achar o #Port 22 5º- apague o "#" e substitua o "22" pela porta que quiser (OBS: só pode até 4 números) 6º- Depois que colocar a porta, aperte a tecla "ESC" e de ENTER na opção "a) leave editor" 7º- Depois clique na opção "a) save changes" e de ENTER 8°- Depois de Reboot e Fim Créditos: W3BD3S1GN3R Se te ajudei da http://cyber-gamers.org/public/style_emoticons/default/451960.gif
  17. Boas comunidade venho-vos apresentar um tutorial! Um pouco antigo mas usual. 1º Passo: Descompatar Root.eix/.epk 2º Passo: Encontrar o ficheiro denominado "constinfo" 3º Passo: Abri-lo com um softwere de edição de texto 4º Passo: Procurar IN_GAME_SHOP_ENABLE = 1 5º Passo: Substituir o 1 por 0 6º Passo: Compatar o Root.eix/.epk Resultado: Créditos: [*]Base: Ymir Co. [*]Tutorial: Luis Bizarro [*]Ideia: Achilles (epvp) [*]Imagem: Achilles (epvp) [*]Softwere de edição: Notepad++ É tudo por agora, Luis Bizarro
  18. Boas comunidade! Venho-vos apresentar um tutorial novo 100% feito por mim. Váh, vamos começar: 1º Passo: Procurar na pasta do vosso game o ficheiro com o nome config. 2º Passo: Abri-lo num programa de texto como por exemplo Notepad++ 3º Passo: No ficheiro procurar: MAX_LEVEL: 4º Passo: Alterar para MAX_LEVEL: "Nivel Máximo" (Tirar aspas e colocar o numero) !Atenção o Game têm de ter as tabelas de experiencia prontas para a troca de nivel. Créditos: [*]Base: Ymir Co. [*]Tutorial: Luis Bizarro [*]Softwere de edição: Notepad++ É tudo por agora, Luis Bizarro
  19. Função - Ao clicar no Npc , irão aparecer 4 Sub-Janelas.[ *Cavalo Principiante : Se escolheres esta opção terás de teres os requisitos mínimos ( Level 25 e 1.000.000 Gold ) e receberás Cavalo Principiante ( Level 1 Horse ) * Cavalo Armado : Se escolheres esta opção terás de teres os requisitos mínimos ( Level 35 e 2.500.000 Gold ) e receberás Cavalo Armado ( Level 11 Horse ) * Cavalo Militar : Se escolheres esta opção terás de teres os requisitos mínimos ( Level 50 e 5.000.000 Gold ) e receberás Cavalo Militar ( Level 21 Horse ) * Skill's de Cavalo : Se escolheres esta opção terás de teres os requisitos mínimos ( Level 50 e 10.000.000 Gold e Cavalo Militar ) e receberás as Skills do Militar ( Skills M1 ) Download :http://www.4shared.com/file/krSb-Wvl/npc_Cavalo.html E so colocar com o ftp na pasta /hongkong/Quest/Object/ e/ou dao reboot ao servidor ou escrevem /reload q no shout. Depois e so fazer /m 20080 Créditos: Tut-mt2 Henrique "Razy" Soares Não se esqueçam http://cyber-gamers.org/public/style_emoticons/default/451960.gif
  20. Olá pessoal,Bom como vir que aqui no fórum não tem o tutorial de como bloquear ataques DDoS resolvir postar o tutorial.Antes de iniciar o guia, vamos ver primeiro o que é um vetor de ataque DDoS.DDoS é a abreviatura de "Distributed Denial of Service", que em espanhol se torna "A degeneração de Ataque de Serviço". Basicamente, este tipo de ataque é baseada em tributar a máquina ou o que vai para o ataque. É um ataque bastante comum e que é foda o suficiente, então aqui está o guia para ataque DDoS em nosso servidor Metin2 pelo FreeBSD.Primeiro vamos ativar o firewall (firewall) e devemos adicionar as seguintes linhas ao seu rc.conf,que está localizado no arquivo/etc/: pf_enable="YES"pf_rules="/etc/pf.conf"pf_flags=""pflog_enable="YES"pflog_logfile="/var/log/pflog"pflog_flags=""Agora vamos configurar o firewall, por isso, vamos /etc/pf.conf e abra com um editor de texto que usamos e adicione as seguintes linhas:block in allpass in quick on lo0pass out quick on lo0table <bloqueo> persist file "/var/db/antiddos(chamamos-lo como quiser eu dei o nome de antiddos.)"block quick from <bloqueo>pass in quick on sis0 proto tcp from any to any port 22 keep statepass in quick on sis0 proto tcp from any to any port 80 keep statepass in quick on sis0 proto tcp from any to any port 3690 keep statepass out all keep stateAssim, bloquear as entradas.Agora vamos criar "antiddos" (ou qualquer nome que você escolheu) e, para isso, dar a seguinte permissão:touch /var/db/antiddoschmod 644 /var/db/antiddosAgora vamos criar o script para que chamaremos de bloqueio e dar-lhe permissão para salvar chmod 751:#!/usr/bin/perluse strict;my @assholes = ();open (IN, "/var/log/auth.log");while (<IN>) { if ($_ =~ /Invalid user.*from ([0-9]+.[0-9]+.[0-9]+.[0-9]+)/) { push(@assholes, $1); } if ($_ =~ /Did not receive identification string from ([0-9]+.[0-9]+.[0-9]+.[0-9]+)/) { push(@assholes, $1); }}close (IN);@assholes = sort {lc($a) cmp lc($b)} @assholes;my @allowedIPs = ();open (IN, "/var/db/allowed-ips");while (<IN>) { if ($_ =~ /[0-9]+.[0-9]+.[0-9]+.[0-9]+/) { push(@allowedIPs, $_); }}close (IN);chop(@allowedIPs);my $tmp = "";foreach my $asshole (@assholes) { if ($asshole eq $tmp) { $asshole = ""; } else { if ($asshole =~ /127.0.0.1/) { $asshole = ""; } if ($asshole =~ /192.168.[0-9]+.[0-9]+/) { $asshole = ""; } foreach my $allowedIP (@allowedIPs) { if ($asshole =~ /$allowedIP/) { $asshole = ""; } } $tmp = $asshole; }}@assholes = sort {lc($b) cmp lc($a)} @assholes;my $popCount = 0;foreach my $asshole (reverse @assholes) { if ($asshole eq "") { $popCount++; }}for (my $i = 0; $i < $popCount; $i++) { pop (@assholes);}my $list = "";foreach my $asshole (@assholes) { $list = $list . $asshole . " ";}exec "/sbin/pfctl -t bloqueo -T add $list";Agora vamos /etc/syslog.conf e abri-lo para edição e adicionar a seguinte linha:auth.info;authpriv.info | exec /usr/bin/perl /sbin/bloqueo.plcorrendo assim o script para bloquear ips externos.Eu espero que vocês tenha aprendido.Funcionar perfeitamente.Fonte: universojuegos.Créditos: DjZed.Traduzido por Rancoroso.
  21. ° Boa noite ° não sei se já existe o topico mais vejo que tem alguns que estão com uns dificuldades nisso como digita && pra poder da o reboot ? 1° Digite no virtual box sysinstall 2° Selecione essa opçâo Key map 3° Selecione a opção Central Europe ISO 4° SEJA FELIZ PODE USAR && ATE O TECLADO CANSAR ! Sé ajudei da http://cyber-gamers.org/public/style_emoticons/default/451960.gif ae vlws !
  22. Olá, Pediram para fazer um tutorial para implementar mobs, e aqui vai, tentarei ser o mais explícito possível. Portanto, já alguma vez devem ter visto o que contém a pasta de algum mob. Contém vários ficheiros (.gr2, .msa, .msm, .mse, .tga/.dds e o motlist.txt) [*]O GR2 é o que contém, digamos, a forma do mob, a sua estrutura e os movimentos do mesmo. [*]Os ficheiros .msm e/ou .msa servem para que se possa aplicar o GR2. [*]Os ficheiros .mse tratam dos efeitos do mob. [*]O .tga ou .dds é a textura do mob. [*]E o motlist.txt indica os movimentos correspondentes a cada gr2. Para colocarmos o mob temos antes que verificar se a sua pasta contém estes ficheiros todos. Agora, instalar a pasta do mob no cliente. Bem, a meu ver, é mais fácil fazer um .eix e .epk que contenha só os ficheiros do dito mob, mas podem sempre colocá-lo em outro ficheiro. Para saber onde colocar, abrem o .msm e irão encontrar um diretório. Por exemplo: BaseModelFileName "D:Ymir Workmonster2crustacean_bosscrustacean_boss.GR2" Esse diretório indica onde é que vai buscar o .gr2 do mob. Sendo assim, descompactam o monster2.eix/.epk e vão até: ymir workmonster2 E colocam lá a pasta do mob. Depois no ficheiro .xml, que foi criado na altura de descompactar o monster2, devem adicionar as linhas dos ficheiros adicionados para que se possa compactar também no ficheiro e não seja excluído. Por exemplo: É imprescindível ter o .xml do ficheiro(s) adicionado(s), caso contrário, a alteração/adição não será aplicada. Bem, até aqui simples. O que devem fazer a seguir, é descompactar o root.eix/.epk e procurar por um ficheiro denominado: npclist.txt. O que lá contém é: id_mob [tabulador] nome_msm Isto servirá para que consigam ver o mob. Exemplo: 7052 scorpionman_sword7053 scorpionman_bow7054 snakeman_sword É obrigatório estar separado o nome do .msm do id do mob pelo tabulador. Após isto, guardam o npclist.txt e voltam a compactar o root. Sendo assim, vamos à parte final. A query: Ora bem, para o mob existir, devem cria-lo no mob_proto do navicat, se não, os passos anteriores efetuados, apenas enchiam o cliente de murraça por um mob que não existe. Para facilitar a vida, deixarei aqui uma query (serverside/clientside) para usarem como base para o vosso novo mob. Esta query não tem nada editado, vem com os valores no mínimo, portanto vocês já editam o que quiserem nela. Navicat -> Player -> Query -> New Query: -> Run Na query vocês editam o ID e o nome_mob. E por último, vem o mob_proto do cliente. Descompactam o locale e, de seguida, o mob_proto. Depois no final, adicionam: Fecham e guardam o mob_proto, compactam, colocam de novo no locale e compactam-no. Depois, os ficheiros todos (monster2, root, locale) colocam na pasta pack do vosso cliente. Entram no vosso servidor, fazem /reload p e depois testam o vosso novo mob. (/m id_mob). É tudo! Espero ter sido explícito, qualquer dúvida não hesitem em perguntar. Cumprimentos e Boa sorte.
  23. Boas, Este é O Meu 1º Tópico. Caso Encontre Erros, Mande PM a Equipa Para Vir Mudar Alguma Coisa de Imediato Instant Server http://bayfiles.com/file/3dlH/Ov6A2y/InstantServer_By_PrivateServers_%26_xip17.rar ou http://min.us/m1EfXEdE3 Port Map http://bayfiles.com/file/3dmJ/qPhAcG/PortMap_PrivateServers_%26_xip17.rar ou http://min.us/mbqZkf4QAr Navicat http://min.us/mqPFYveoC ou http://bayfiles.com/file/3dnv/ocNSIL/Navicat_8.0_PrivateServers_%26_xip17.rar Xampp http://min.us/msqTUrXby ou http://bayfiles.com/file/3dG9/aVBFTC/XAMPP_PrivateServers_%26_xip17.rar VirtualPC http://min.us/m6wC7bMMp ou http://bayfiles.com/file/3dvV/xA5C1m/VirtualPC_%2832x-64x%29_PrivateServers_%26_xip17.rar Creditos: ReiSupremo
  24. Boas, Neste tópico vou ensinar, passo a passo, a meter um link direto no chat de uma mensagem de um player para um PM, ou seja, ao carregares no nome do player que aparece no chat, aparece um PM para essa pessoa. Vamos Começar. Descompactem o root.epk e root.eix, abram o uichat.py e procurem: e por debaixo disto, metam: Depois, no ínicio do mesmo ficheiro (uichat.py) metam: Guardem o ficheiro. Depois abram o ficheiro interfacemodule.py no root ainda e procurem: Debaixo do def, metam: Guardem os ficheiros e compactem os root. Agora, vão ao game das vossas serverfiles (atenção, o game tem de ser de versão game2089) e metam os seguintes diffs: Testem e Aproveitem :) Eu testei e comigo funcionou. Créditos: EPVP Tradução feita por mim.
  25. POST DELETADO POR BIRRINHA De credito dizendo que é de outro sendo que é meu ! ​Post Encerrado