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 258 results

  1. Boas. Achei engraçado "copiar" esta feature que o nosso companheiro Skype tem, para um client de metin2, para que fosse da mesma forma útil para os que estão ingame. Como poderão ver é algo bastante simples de desenvolver, e requer apenas 5 minutos para tal. A sua implementação também não é nada do outro mundo. ## game.py #### Adicionar antes da class GameWindow import time MESSENGER_LOGGINED = "" MESSENGER_STOPPING_TIME = 0 #### Adicionar ao def Open(self) #### antes do self.Show() self.__msgLoginBoard = ui.Board() self.__msgLoginBoard.SetParent(self) self.__msgLoginBoard.SetSize(200, 40) self.__msgLoginBoard.SetPosition(wndMgr.GetScreenWidth() - 210, wndMgr.GetScreenHeight() - 200) self.__msgLoginBoard.Hide() self.__msgLoginBoard.memberName = ui.TextLine() self.__msgLoginBoard.memberName.SetParent(self.__msgLoginBoard) self.__msgLoginBoard.memberName.SetText("None") self.__msgLoginBoard.memberName.SetWindowHorizontalAlignCenter() self.__msgLoginBoard.memberName.SetWindowVerticalAlignCenter() self.__msgLoginBoard.memberName.SetHorizontalAlignCenter() self.__msgLoginBoard.memberName.SetVerticalAlignCenter() self.__msgLoginBoard.memberName.Show() #### Adicionar ao def OnUpdate(self) global MESSENGER_LOGGINED, MESSENGER_STOPPING_TIME if MESSENGER_LOGGINED != "" and time.clock() < MESSENGER_STOPPING_TIME: self.__msgLoginBoard.memberName.SetText("%s esta online!" % MESSENGER_LOGGINED) self.__msgLoginBoard.Show() else: self.__msgLoginBoard.Hide() MESSENGER_LOGGINED = "" MESSENGER_STOPPING_TIME = 0 ## uiMessenger.py #### Adicionar ao def OnLogin import game, time game.MESSENGER_LOGGINED = name game.MESSENGER_STOPPING_TIME = time.clock() + 10.0 Compilar o vosso root, e testar. Abraço :)
  2. Comando: /e eventflag valor mob_dam [value] Set mobs damage (default 100) mob_gold, mob_gold_buyer [value] Set gold drop rate for free and premium* user (default 100) mob_gold_pct, mob_gold_pct_buyer [value] Set yang bomb drop rate for free and premium* user (default 100) mob_exp, mob_exp_buyer [value] Set experience rate for free and premium* user (default 100) mob_item, mob_item_buyer [value] Set item drop rate for free and premium* user arena_potion_limit [bool] Enable limit of potions that you can use in Musician's Yu-Hwan duel arena (thanks to TÜRK) arena_potion_limit_count [value] Number of potions that can be used if arena_potion_limit is true (thanks to TÜRK) eclipse [bool] Enable and disable night mode. gold_drop_limit_time [sec] Time in seconds before Yang can be dropped again (anti drop bot measure) guild_disband_delay [bool] Set a 24 hours waiting time after a guild is disbanded, for the members to join another guild. (Default: 1) (thanks to pedr0caz) guild_withdraw_delay [bool] Set a 24 hours waiting time after being kicked from a guild, for the player to join another guild. (Default: 1) (thanks to pedr0caz) hivalue_item_sell [bool] Value 1 enables sale of Blessing Marble and Perpetual Iron in shops. MonarchHealGold [yang] Amount of kingdom Yang required to cast Monarch Heal buff. personal_shop [tax %] Place a tax on private shop sales. The Yang goes to the Kingdom vault. 2006_drop [drop rate 1/x] Enable drop of Chinese New Year 2006 - Hexagonal Box (vnum 50037) 2007_drop [drop rate 1/x] Enable drop of Chinese New Year 2007 - Hexagonal Box (vnum 50043) dragon_boat_festival_drop [?] Enable drop of 50085 drop_moon [bool] Enable drop of moonlight boxes. Drop rate can NOT be changed! easter_drop [?] Enable/set drop of item 50160 to 50179 - Easter Egg (Thanks to miguelmig) football_drop [?] Enable/set drop of 50096 - Football Ball (World Cup GF event) (thanks to miguelmig) halloween_drop [?] Enable/set drop of 50095 - Pumpkin (thanks to miguelmig) hc_drop [drop rate 1/x] Drop rate of item 30178 - Gameforge event for the opening of Grotto of Exile (thanks to miguelmig) horse_skill_book_drop [drop rate 1/x] Set drop rate of Horse Skill books. kids_day_drop [drop rate 1/x] Drop rate of Puzzle box (50034) for low level players. kids_day_drop_high [drop rate 1/x] Drop rate of Puzzle Box (50034) for high level players. lotto_drop [drop rate 1/x] Enables drop of Lottery Tickets with unique numbers. The dropped ticket numbers can be found in player.lotto_list table for further processing. lotto_round [value] Choose a number to mark the lottery tickets with. This is useful if you want to run different Lottery events and make sure a ticket is not used twice. mars_drop [drop rate 1/x] Enable global drop of Perpetual Iron. newyear_fire [?] Enable drop of Chinese Fire Crackers (Chinese New Year event) newyear_mob [bool] Randomly spawns Hae-Tae in City 2 (Chinese New Year event) newyear_moon [?] Moon Paste event, enables drop of vnums 50016~50017~50018~50019 (Chinese New Year event) new_xmas_event [bool] Spawns the new christmas tree design in town. ramadan_drop [drop rate 1/x] Enable drop of bread (30315) for Gameforge Ramadan event. three_skill_item [drop rate 1/x] Set drop rate of Soulstones (from metins and bosses only) threeway_war_boss_count [value] Number of Elite Nine Tails that will be summoned for the winning Kingdom in Nation War. threeway_war_pass_idx [mapidx] Map index of Nation War pass map. This is filled automatically with a random map from the list in share/locale/whatever/forkedmapindex.txt; do not edit this event flag but change the txt file instead. threeway_war_sungzi_idx [mapidx] Map index of Nation War Sungzi map. This is filled automatically with a random map from the list in share/locale/whatever/forkedmapindex.txt; do not edit this event flag but change the txt file instead. valentine_drop [bool?] Enable drop of Chocolate and Roses whiteday_drop [?] Enable drop of items 50031 - 50032 xmas_boom [bool] Enable night mode, firework sound, and Event Helper (NPC selling fireworks) xmas_snow [bool] Enable snow. xmas_sock [drop rate 1/x] Enable drop of Christmas socks. xmas_song [bool] Play Christmas song everywhere. xmas_tree [0-3] Enable the original Christmas Tree NPC. 3 models available (1,2,3) Yet unknown: fish_miss_pct gold_trade_cycle gold_trade_enable indepence_day japan_regen medal_part_drop user_dam user_dam_buyer crcdisconnect pre_event_hc refine_box guild_invite_limit refine_box_drop refine_box_low refine_box_mid refine_box_high drop_char_stone drop_char_stone.level_range dropevent.drop_char_stone drop_char_stone.percent_lv01_10 drop_char_stone.percent_lv11_30 drop_char_stone.percent_lv31_MX independence_day spawn_block_log threeway_war_choice threeway_war_kill_count threeway_war_dead_count xmas_santa guild_invite_limit manwoo fishevent poly update_refine_time O bool significa que ou podes colocar "false" ou "true" é basicamente como se fosse 1 ou 0.... Fonte: Metin2dev
  3. Bom Pessoal ! da Cyber - Gamers. Venho fazer um bom tutorial, que foi a pedido. Eu acho bem simples mais to fazendo pra dar uma boa ajuda, espero que gostem... que é "Como coloca o nome do servidor no cliente e apaga os Channels. Segue abaixo o tutorial 1º Desemcopacte o aquivo Root.eix e Root.epk 2º Procure o Arquivo "Serverinfo.py" Vou deixa aqui abaixo, o Serverinfo.py completo. Role pra baixo pra ver o arquivo completo. ******************************** ARQUIVO ABAIXO ******************************** import os import app import locale import debugInfo CHINA_PORT = 50000 def BuildServerList(orderList): retMarkAddrDict = {} retAuthAddrDict = {} retRegion0 = {} ridx = 1 for region, auth, mark, channels in orderList: cidx = 1 channelDict = {} for channel in channels: key = ridx * 10 + cidx channel["key"] = key channelDict[cidx] = channel cidx += 1 region["channel"] = channelDict retRegion0[ridx] = region retAuthAddrDict[ridx] = auth retMarkAddrDict[ridx*10] = mark ridx += 1 return retRegion0, retAuthAddrDict, retMarkAddrDict app.ServerName = None if locale.IsEUROPE(): STATE_NONE = "...." STATE_DICT = { 0 : "....", 1 : "NORM", 2 : "BUSY", 3 : "FULL" } SERVER01_CHANNEL_DICT = { 1:{"key":11,"name":"AKUMA-1 ","ip":"","tcp_port":13001,"udp_port":13001,"state":STATE_NONE,}, 3:{"key":12,"name":"AKUMA-2 ","ip":"","tcp_port":13002,"udp_port":13002,"state":STATE_NONE,}, 4:{"key":12,"name":"AKUMA-2 ","ip":"","tcp_port":13002,"udp_port":13002,"state":STATE_NONE,}, 5:{"key":12,"name":"AKUMA-2 ","ip":"","tcp_port":13002,"udp_port":13002,"state":STATE_NONE,}, 6:{"key":12,"name":"AKUMA-2 ","ip":"","tcp_port":13002,"udp_port":13002,"state":STATE_NONE,}, 7:{"key":12,"name":"AKUMA-2 ","ip":"","tcp_port":13002,"udp_port":13002,"state":STATE_NONE,}, 8:{"key":12,"name":"AKUMA-2 ","ip":"","tcp_port":13002,"udp_port":13002,"state":STATE_NONE,}, } MARKADDR_DICT = { 10 : { "ip" : "192.168.3.100", "tcp_port" : 13001, "mark" : "10.tga", "symbol_path" : "10", }, } REGION_NAME_DICT = { 0 : "GERMANY", } REGION_AUTH_SERVER_DICT = { 0 : { 1 : { "ip":"192.168.3.100", "port":11002, }, } } REGION_DICT = { 0 : { 1 : { "name" : "AKUMA-MT2", "channel" : SERVER01_CHANNEL_DICT, }, }, } if locale.IsTAIWAN(): name = app.GetLocalePath().replace("/", "_") + ".addr" path = os.sep.join(("pack", name)) if os.access(path, os.R_OK): print "load_locale_addr:", path data = app.LoadLocaleAddr(path) import cPickle import cStringIO info = cPickle.load(cStringIO.StringIO(data)) STATE_NONE = "..." STATE_DICT = { 0 : "....", 1 : "NORM", 2 : "BUSY", 3 : "FULL" } REGION_NAME_DICT = info["NAME"] REGION_AUTH_SERVER_DICT = info["AUTHADDR"] REGION_DICT = info["GAMEADDR"] MARKADDR_DICT = info["MARKADDR"] *************************** TUTORIAL DA EDIÇÃO *************************** Bom pessoal, vamos na parte das edições... SERVER01_CHANNEL_DICT = { 1:{"key":11,"name":"AKUMA-1 ","ip":"","tcp_port":13001,"udp_port":13001,"state":STATE_NONE,}, 3:{"key":12,"name":"AKUMA-2 ","ip":"","tcp_port":13002,"udp_port":13002,"state":STATE_NONE,}, 4:{"key":12,"name":"AKUMA-3 ","ip":"","tcp_port":13002,"udp_port":13002,"state":STATE_NONE,}, 5:{"key":12,"name":"AKUMA-4 ","ip":"","tcp_port":13002,"udp_port":13002,"state":STATE_NONE,}, 6:{"key":12,"name":"AKUMA-5 ","ip":"","tcp_port":13002,"udp_port":13002,"state":STATE_NONE,}, 7:{"key":12,"name":"AKUMA-6 ","ip":"","tcp_port":13002,"udp_port":13002,"state":STATE_NONE,}, 8:{"key":12,"name":"AKUMA-7 ","ip":"","tcp_port":13002,"udp_port":13002,"state":STATE_NONE,}, } Aonde está -> name":" AKUMA-2 <- Essa parte é que fica o nome do Sevidor tipo "CH1" que é o original de todo sevido que eu vejo, você pode editar da sua vontade. Outra Parte do Tutorial ! REGION_DICT = { 0 : { 1 : { "name" : "AKUMA-MT2", "channel" : SERVER01_CHANNEL_DICT, }, }, } Aonde está -> {"name":"AKUMA-MT2 <- Esse é nome do Sevidor da parte Esqueda... Tipo o nome do seu sevidor "Metin2". Outra parte do Tutorial ! SERVER01_CHANNEL_DICT = { 1:{"key":11,"name":"AKUMA-1 ","ip":"","tcp_port":13001,"udp_port":13001,"state":STATE_NONE,} Pessoal, primeiramente estou usando o cliente do rancoroso para fazer este tutorial, no cliente do rancoroso vem 10 Channel, para você que não gosta tanto de CH... Você apagam essa aba -> 1:{"key":11,"name":"AKUMA-1 ","ip":"","tcp_port":13001,"udp_port":13001,"state":STATE_NONE,} Esse 1 que está na frente é a numeração de tanto de CH. Ex: tem 10 CH você apagando 5 e deixando 5, quando você compactar e coloca no cliente, o cliente ficara com 5 CH. Pessoal esse foi um simples tutorial bem simples, se eu errei alguma coisa digam, eu ajeito. ! Se gostou da Mim ajuda muito. Obrigado Ateciosamente: Renan Tutoria
  4. Boas pessoal Peguei no codigo http://cyber-gamers.org/topic/20963-sistema-day-night-em-phyton-com-skybox/ que aqui está, que está muito mal feito e horrível, e simplifiquei a cena. root/constInfo.py CURRENT_DAY_MODE = 0 root/game.py # SYSTEM_DAYMODE def DayModeSystem(self): localtime = time.strftime("%H") dayMode = constInfo.CURRENT_DAY_MODE if (localtime >= "21" and localtime <= "23") or (localtime >= "00" and localtime <= "04"): #NOITE dayMode = 6 if localtime >= "11" and localtime <= "16": #DIA CLARO dayMode = 3 if localtime >= "05" and localtime <= "07": #AMANHECER dayMode = 1 if localtime >= "08" and localtime <= "10": #MANHÃ dayMode = 2 if localtime == "17" or localtime == "18": #TARDE dayMode = 4 if localtime == "19" or localtime == "20": #ANOITECER dayMode = 5 if constInfo.CURRENT_DAY_MODE == dayMode: return constInfo.CURRENT_DAY_MODE = dayMode self.dayModesDirectories ={ 1 : {1 : "d:/ymir work/environment/mtthunder.msenv", 2 : 2}, 2 : {1 : "d:/ymir work/environment/morning.msenv", 2 : 2}, 3 : {1 : "d:/ymir work/environment/capedragonhead.msenv", 2 : 2}, 4 : {1 : "d:/ymir work/environment/evening.msenv", 2 : 2}, 5 : {1 : "d:/ymir work/environment/bayblacksand.msenv", 2 : 2}, 6 : {1 : "d:/ymir work/environment/moonlight04.msenv", 2 : 1}, } background.RegisterEnvironmentData(self.dayModesDirectories[dayMode][2], self.dayModesDirectories[dayMode][1]) background.SetEnvironmentData(self.dayModesDirectories[dayMode][2]) # END_SYSTEM_DAYMODE e no def OnUpdate adicionem: self.DayModeSystem() Codigo muito mais limpo e facil de entender/modificar/whatever. Comparem o codigo dos dois, plz. Hasta
  5. Boas Comunidade. Venho trazer-vos um tutorial de como adicionam o "@" para enviarem uma mensagem privada pelo chat. Basicamente um sistema parecido com o do chat aqui da cyber, mas, no chat do jogo. Exemplo: 1º Lugar Descompactar o ficheiro root, e abrir o ficheiro uichat.py 2º Lugar Procurar por: def __SendChatPacket(self, text, type): 3º Lugar Alterar o localizado em cima para: def __SendChatPacket(self, text, type): if text.find("@") ==0: text = text.split(" ") user = text[0] user = text[0].split("@") user = user[1] del text[0] realtext = "" for i in xrange(len(text)): if i > 0: realtext = realtext + " " + text[i] else: realtext = realtext + text[i] if len(realtext) > 0: net.SendWhisperPacket(user, realtext) chat.AppendChat(chat.CHAT_TYPE_INFO, "Envias-te uma mensagem ao " + user + ", por favor aguarde pela respposta.") else: chat.AppendChat(chat.CHAT_TYPE_INFO, "Tens que escrever uma mensagem..") elif net.IsChatInsultIn(text): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.CHAT_INSULT_STRING) else: net.SendChatPacket(text, type) 4º Lugar Compactar o root e substituir o mesmo no cliente. Nota: Basta escrever "@nomedojogador mensagem" no chat que enviará uma mensagem somente para ele. Atenção: O "@" e o nome do jogador são juntos, seguido de um espaço para a mensagem. Cumprimentos, Motoko
  6. Ontem fiz-o através do tutorial e sei que não está igual xD Fonte: SesO
  7. Izi tutorial de como, ao clicarem na letra Z ou \ , apanharem os itens no chão mais rápido. src_client UserInterface - PythonPlayer.cpp if (dwCurTime >= s_dwNextTCPTime) { s_dwNextTCPTime=dwCurTime + 500; 500 é o delay em ms que cada item será apanhado Exemplo a 100 if (dwCurTime >= s_dwNextTCPTime) { s_dwNextTCPTime=dwCurTime + 100; Compilar, done.
  8. Vejo muita gente com dúvidas de como usar as files do Ivan [RAIN 2010 - Sistema reconfigurado], por isso vou fazer um breve tutorial para os demais: Para quem não entendeu essas files direito, só foi alterado o sistema LINUX e não o sistema METIN2, elas são apenas as files Rain 2010 sem nenhuma alteração (limpas, "instant server"). Existem 2 usuários na maquina virtual, "root" e "metin2", quando baixa as files, não deves entrar na conta "root" e nem alterar a rede, deixe "host-only, Virtual BOX adapter", quando aparecer-te o login, fazes: LOGIN: metin2 SENHA: changeme (Altere a sua senha com o comando "passwd".) Certo! Logou na máquina... Agora vamos fazer conexão com o banco dados (MySQL, "Navicat"): IP: 192.168.56.101 User: db_manage Pass: changeme Certo! Logou no MySQL... Agora vamos fazer conexão com o FTP ("Filezilla"): IP: 192.168.56.101 USER: metin2 PASS: changeme Pronto! Uma files comum como outra qualquer! E o que mudou? Os comandos da conta "metin2": inciar = INICIA O SERVIDOR. (6 SEC JÁ ESTÁ ON) parar = PARA O SERVIDOR. (3 SEC JÁ ESTÁ) reiniciar = COMANDO "reboot" MAS SEM REINICIAR O FREEBSD, VAI APENAS REINICIAR O JOGO. (10 SEC JÁ DEU REBOOT :D) reiniciar_soft = REINICIAR QUESTS E MAPAS (NÃO IRÁ REINICIAR O BANCO DE DADOS) status = VER OS STATUS DO SERVIDOR. (CHANNELS ON OU OFF) login = VAI PARA O LOGIN PARA PODER LOGAR OUTRA CONTA. Os comandos da conta "root": sysinstall = CONFIGURAÇÕES (NÃO NECESSÁRIO, NÃO FAÇAS ISSO, APENAS ALTERE QUANDO FOR COLOCAR EM DEDICADO). passwd = ALTERA A SENHA DA CONTA "root". login = VAI PARA O LOGIN PARA PODER LOGAR OUTRA CONTA. reboot = NÃO PRECISO EXPLICAR O QUE É REBOOT NÉ? Não está conseguindo logar no jogo? Mude o arquivo "serverinfo.py" PARA O IP: 192.168.56.101 (Cliente 2010) Cliente compatíveis: Clientes versão 2010, exemplo: sandoz 94 Versão do game: game_2098 O que já vem implementado? - Nada, é uma serverfiles RAIN, para você criar seu Metin2 do 0, mas com um sistema em FreeBSD 9.0 totalmente reconfigurado e optimizado. Por que usar essas files? - Utiliza 85% menos memória RAM e espaço em disco que as demais serverfiles. - Não gera grande número de logs Link do tópico da serverfiles: × Tópico ×
  9. Para remover a verificação do game com os servidores da YMIR, vão ao ficheiro game/src/main.cpp Procuram por: void Metin2Server_Check() { #ifdef _USE_SERVER_KEY_ if (false == CheckServer::CheckIp(g_szPublicIP)) { #ifdef _WIN32 fprintf(stderr, "check ip failed\n"); #endif g_isInvalidServer = true; } return; #endif if (LC_IsEurope() || test_server) return; // 브라질 ip if (strncmp (g_szPublicIP, "189.112.1", 9) == 0) { return; } // 캐나다 ip if (strncmp (g_szPublicIP, "74.200.6", 8) == 0) { return; } return; static const size_t CheckServerListSize = 1; static const char* CheckServerList[] = { "202.31.178.251"}; static const int CheckServerPort = 7120; socket_t sockConnector = INVALID_SOCKET; for (size_t i = 0 ; i < CheckServerListSize ; i++) { sockConnector = socket_connect( CheckServerList[i], CheckServerPort ); if (0 < sockConnector) break; } if (0 > sockConnector) { if (true != LC_IsEurope()) // 유럽은 접속을 하지 못하면 인증된 것으로 간주 g_isInvalidServer = true; return; } char buf[256] = { 0, }; socket_read(sockConnector, buf, sizeof(buf) - 1); sys_log(0, "recv[%s]", buf); if (strncmp(buf, "OK", 2) == 0) g_isInvalidServer = false; else if (strncmp(buf, "CK", 2) == 0) g_isInvalidServer = true; socket_close(sockConnector); } E substituem a função toda por: void Metin2Server_Check() { g_isInvalidServer = false; } Guardam e compilam. Fonte: ElitePvPers
  10. https://youtu.be/5uYPxIamkEM Fonte: Swerve Graphic Designer