antiblock
diamwall

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. Esse é um script muito bom para quem tem servidor pvp, é uma mais valia! Deixo aqui um print de como é: Download Do SW : https://mega.co.nz/#!Vs8H1JwC!TXgAMk39NbZmjrOFfO6CekIp3m9qAE52cu1uLzlrZtg 1- Descompactar o root.eix/epk 2- Procurar o game.py 3- Crtl+f e procurar por: onPressKeyDict[app.DIK_F4] 4- Abaixo disso colocar: onPressKeyDict[app.DIK_F7] [TAB]= lambda : self.__PressF7Key() 5- Procurar por: self.onClickKeyDict=onClickKeyDict 6- Dar 2 [enter] e toque seta para cima ( para ficar tanto encima como embaixo 1 linha de espaço entre funções) e colar isso: [TAB]def __PressF7Key(self): ##Pré-visualizei o tópico e fico um espaço muito grande do __, se sair certo blz, mas se não sair, é so 1 barra de espaço. (1x) [3XTAB]import SwitchBot [3XTAB]self.switchBot1 = switchbot.SwitchBotDialog() [3XTAB]self.switchBot1.Show() <File archivedPath="switchbot.py" type="2"><![CDATA[sourceswitchbot.py]]></File> 7- Agora pegua no ficheiro que fez o download e mete dentro do root descompilado. Abre e edita as seguintes linhas de acordo com o ID do item de aprimoramento do servidor; Boniswitchvalue = 71084 ## ID do item item.IsAntiFlag(0) ## AntiFlag do Item item.IsFlag(4) ##Flag do Item PS : PARA ABRIR O BOT É NO F7 Créditos : epvp Cumprimentos .
  2. Boas, já existe um tópico semelhante mas como não funciona decidi criar um meu e explicar como se mete a funcionar o sistema de chat. Este sistema permite as pessoas do outros reinos falarem entre si através do chat geral. Para game 2089M precisam de meter estas diffs: Para game 34083 precisamos de usar estas 2 diffs: Para quem tem algumas duvidas para que servem as diffs, uma delas serve para os reinos usarem todos o mesmo chat, a outra diff serve para ao falarmos no chat não ser necessário ter o Vidro da Perspicácia. Parte do client: Precisamos de extrair o ficheiro chamado root.epk / eix que se encontra na pasta pack do nosso client. Abrimos o ficheiro chamado uichat.py e metemos no inicio " import player " Caso já tenho não é necessário meter. De seguida procuramos def __SendChatPacket(self, text, type): Seleccionamos tudo tal como esta na imagem: Colamos a ficar como esta na imagem: (O uichat.py vem no download mais abaixo) Após isto basta compactar o root e meter de novo na pasta pack do nosso client. Assim que conseguir meter o nome [Chunjo] atrás do nome irei atualizar o tópico. Download: https://mega.co.nz/#!LEM2DRrZ!OXK0bJ6R0pa9a7h77K_eHUYlJBQHxjldXuehkvkOGW0 Password do Zip: ColoradoMt2 Vírus Total: https://www.virustotal.com/pt/file/c0bc94870170416af9e971f9c028dd2c8591cfb1dbdbf6ff93687087bc2c04f4/analysis/1394987082/ Créditos: Metin2Zone & Me
  3. Boas Comunidade Cyber-Gamers! Eu tenho estado muito fora dos topicos.Porque estive a tratar do meu servidor mas como agora já esta tudo! Bora la! 1º Ir ao seguinte directorio /usr/home/game/share/locale/germany/map/metin2_map_a1 Esse é o mapa da cidade dos reds cidade 1 podem meter ao fim c1 , b1 Agora abram o ficheiro chamado npc.txt 2º Vai vos aparecer alguns npcs lá por exemplo vamos mudar o Sura da atlantida para a cidade 1 dos vermelhos, adicionao lá isto m 684 575 0 0 0 0 1m 100 1 20091 Onde dis 684 e 575 é as cordenadas. voces podem mudar! e 20091 é o NPC . depois guardão e dão reboot! E pronto tuturial Feito espero que tenhao gostado comentem e Não se esquecão do http://cyber-gamers.org/public/style_emoticons/default/451960.gif se ajudei claro ^^
  4. Boas Comunidade hoje vou ensinar mudar a interface de login. Como inserir no cliente: 1) descompactar o root.epk e eix 2) Substitua o Intrologin.py 3) compactar o root.epk e eix 4) Extrair o Locale_XX 5) Substituir Loginwindow.py 6) compactar Locale_XX 7) Inicie o cliente Cumprimentos http://cyber-gamers.org/public/style_emoticons/default/icon.png Créditos: Epvp Criado por .Restince Adaptação do texto e Upload por PowerOff
  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. 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 :)
  7. Boas Pessoal. Não sei se já existia este tutorial, mas vim aqui posta-lo. Vou deixar tutorial descritivo e tutorial em vídeo. -Como alterar o nome do Launcher do Rancoroso: http://prntscr.com/54esxu Vamos lá ao tutorial. 1º Passo: -Baixar os 2 ficheiros que irei disponibilizar no final do tutorial. 2º Passo: -Abrir o HxD e ir a File > Open e colocar o ficheiro Overgame http://prntscr.com/54et47 3º Passo: - Clicar CTRL + F e colocar igual à imagem http://prntscr.com/54etcv 4º Passo: -Depois dão OK e clicam com o rato aqui: http://prntscr.com/54etsd 5º Passo: -Escreverem o que quiserem . (Atenção! Não pode chegar à letra ô) Exemplo: http://prntscr.com/54eu4p 6º Passo -Fechar e Guardar 7º Passo -Irá ser criado o seguinte ficheiro "MT2Overgame.exe.bak" http://prntscr.com/54euc4 8º Passo -Como vão ver, foi mudado o nome: http://prntscr.com/54euje 9º Passo -Ao abrirem o Launcher vai criar um decumento txt dizendo : "servidor" que é onde vão por o IP 10º Passo -Depois copiam os 3 ficheiros e colam no cliente ! http://prntscr.com/54eupi Tutorial em Vídeo: ----------------------------------------- Download do MT2Overgame: http://www.4shared.com/rar/E66nNUTU/MT2Overgame Download do HxD: http://www.baixaki.com.br/download/hex-workshop.htm --------------------------------------------- O vídeo foi feito à algum tempo, pelo meu antigo canal [Gibellini Gi , mas o nome alterou para Francisco Torres (hà mt tempo)] Não te esqueças de dar Cumprimentos,
  8. Bem eu que pensei que a minha ultima release fosse o sistema novo dos oficiais, Dragon Soul System, mas pronto sm PC n o pude acabar :( como tinha postado isto na tech, posta-se aqui tbm. Nao tenho PC para vos ajudar. O tuto está aqui. Obrigado ao C3rberuS por ter feito upload.
  9. 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
  10. Boas comunidade irei postar como implementar Bonus ao lado do inventario. [download][/download] irem a pasta pack do vosso cliente e descompactar os ficheiros locale_??.epk e locale_??.eix Depois de descompactarem irem a pasta ui e meter o ficheiro que vem no download na pasta locale e metam substituir. E compactam e metam os locale_?? na pasta do seu cliente Em seguida descompactar os ficheiros root.epk e root.eix Substituirem o ficheiro que vem no download na pasta root. Compactar e metam os root na pasta do seu cliente Resultado: Fonte:EPVP Traduzido por mim
  11. 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
  12. Boas comunidade... Hoje venho aqui revelar um segredo por assim dizer de muitos servidores para tornar o seu cliente mais organizado e protegido por assim dizer. Tentei realizar este tutorial de modo a que todos vós percebam. 1º- Vocês iram criar uma pasta no directório C:/ com o nome "Cliente" 2º- movem todo o conteúdo presente na pasta do vosso cliente para a pasta criada 3º- Abrem o CMD abrindo o menu inicial e digitando CMD 4º- Dão o comando: CD C:/Cliente 5º- Após darem este comando dão o comando: attrib +h +s +a pack/root.epk 6º- Iram ver que o ficheiro "root.epk" foi ocultado Caso vocês queiram reaver o ficheiro ocultado basta dar o comando: attrib -h -s -a pack/root.epk Caso vocês tenham o cliente do mylast façam isto: 1º- Abrem o CMD abrindo o menu inicial e digitando CMD 2º Digitam: cd [Directório do cliente do mylast] 3º Após dar o comando anterior dão o seguinte: attrib /s /d -h -s -a Iram ver todos os ficheiros ocultos presentes no cliente. Nota: Ao meterem no vosso sistema para ver ficheiros e unidades ocultas não irá ter efeito com este tutorial,os ficheiros iram continuar ocultos. Cumprimentos ProYang
  13. 1º - Descompactar a raiz (root.epk) 2º - Abram o ficheiro " uiiventory.py " 3º - Procuram por " defRefreshStatus " Acho isto interessante!
  14. 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.
  15. 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
  16. Não vou andar com grande introdução. Não querem converter o item_proto do pt para .sql e substituirem o vosso? Não querem traduzir à mão? Então... vamos lá.
  17. 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.
  18. Ontem fiz-o através do tutorial e sei que não está igual xD Fonte: SesO
  19. Olá a todos, Prevejo que a busca não é bem completo, pois é um trabalho que eu deixei algumas semanas e eu não acho que irá completar apenas por falta de desejo. O que está faltando: para completar a missão realmente sinto falta de algumas funções, incluindo a gestão e convocar cavalo animal de estimação na aplicação do bônus para o estilo de luta eu acho que não há mais nada a acrescentar (se bem me lembro). a busca é muito flexível, você pode adicionar diferentes estilos de luta que você encontra já realizados 2 como um exemplo .. Eu tinha uma idéia que saltou à mente ultimamente e que são geridos de forma diferente a partir de agora você pode obter bônus diferentes fixada para cada estilo e não como agora, que todos podem escolher o bônus de uma lista .. mas isso é apenas uma idéia para aqueles que querem desenvolver. Altere o caminho "local DATA_PATH = "locale/italy/quest/object/pet/" no script e add no questlib.lua: PetExpTable = { [1] = 300, [2] = 600, [3] = 900, [4] = 1200, [5] = 1500, [6] = 1800, [7] = 2100, [8] = 2400, [9] = 2700, [10] = 3000, [11] = 3300, [12] = 3600, [13] = 3900, [14] = 4200, [15] = 4500, [16] = 4800, [17] = 5100, [18] = 5400, [19] = 5700, [20] = 6000, [21] = 6300, [22] = 6600, [23] = 6900, [24] = 7200, [25] = 7500, [26] = 7800, [27] = 8100, [28] = 8400, [29] = 8700, [30] = 9000, [31] = 9300, [32] = 9600, [33] = 9900, [34] = 10200, [35] = 10500, [36] = 10800, [37] = 11100, [38] = 11400, [39] = 11700, [40] = 12000, [41] = 12300, [42] = 12600, [43] = 12900, [44] = 13200, [45] = 13500, [46] = 13800, [47] = 14100, [48] = 14400, [49] = 14700, [50] = 15000, [51] = 15300, [52] = 15600, [53] = 15900, [54] = 16200, [55] = 16500, [56] = 16800, [57] = 17100, [58] = 17400, [59] = 17700, [60] = 18000, [61] = 18300, [62] = 18600, [63] = 18900, [64] = 19200, [65] = 19500, [66] = 19800, [67] = 20100, [68] = 20400, [69] = 20700, [70] = 21000, [71] = 21300, [72] = 21600, [73] = 21900, [74] = 22200, [75] = 22500, [76] = 22800, [77] = 23100, [78] = 23400, [79] = 23700, [80] = 24000, [81] = 24300, [82] = 24600, [83] = 24900, [84] = 25200, [85] = 25500, [86] = 25800, [87] = 26100, [88] = 26400, [89] = 26700, [90] = 27000, [91] = 27300, [92] = 27600, [93] = 27900, [94] = 28200, [95] = 28500, [96] = 28800, [97] = 29100, [98] = 29400, [99] = 29700, [100] = 30000, [101] = 30300, [102] = 30600, [103] = 30900, [104] = 31200, [105] = 31500, [106] = 31800, [107] = 32100, [108] = 32400, [109] = 32700, [110] = 33000, [111] = 33300, [112] = 33600, [113] = 33900, [114] = 34200, [115] = 34500, [116] = 34800, [117] = 35100, [118] = 35400, [119] = 35700, [120] = 36000, [121] = 36300, [122] = 36600, [123] = 36900, [124] = 37200, [125] = 37500, [126] = 37800, [127] = 38100, [128] = 38400, [129] = 38700, [130] = 39000, [131] = 39300, [132] = 39600, [133] = 39900, [134] = 40200, [135] = 40500, [136] = 40800, [137] = 41100, [138] = 41400, [139] = 41700, [140] = 42000, [141] = 42300, [142] = 42600, [143] = 42900, [144] = 43200, [145] = 43500, [146] = 43800, [147] = 44100, [148] = 44400, [149] = 44700, [150] = 45000,}PetBonus = { { "offensivo", { "Valore Attacco Fisico","Valore Attacco Magico", }, { "Forte Vs War","Forte Vs Ninja","Forte Vs Sura","Forte Vs Shamy","Forte Vs Mostri", }, { "Danni Critici","Danni Trafiggenti", }, { "Stordimento","Avvelenamento","Rallentamento", }, }, { "difensivo", { "Difesa Attacco Fisico","Difesa Attacco Magico", }, { "Res. Spada","Res. Spadone","Res. Pugnali","Res. Campana","Res. Ventaglio","Res. Freccia","Res. Magia", }, { "Max HP","Max MP", }, { "Rigenerazione HP","Rigenerazione MP", }, }, { 1, { 53,55, }, { 59,60,61,62,63, }, { 15,16, }, { 13,12,14, }, }, { 2, { 54,56, }, { 29,30,31,32,33,34,37, }, { 1,2, }, { 10,11, }, },}PetArray = { {53001, "fenice_rossa", "Fenice Rossa", 30068, PetExpTable, { 3,1,3,1, }, }, {53002, "fenice_blu", "Fenice Blu", 30068, PetExpTable, { 3,3,1,1, }, }, {53003, "renna", "Renna", 30068, PetExpTable, { 3,1,1,3, }, }, {53005, "azarel", "Azarel", 30068, PetExpTable, { 2,1,3,2, }, }, {53006, "cane", "Cane", 30068, PetExpTable, { 1,3,1,3, }, }, {53007, "leone", "Leone", 30068, PetExpTable, { 1,1,3,3, }, }, {53008, "cinghiale", "Cinghiale", 30068, PetExpTable, { 1,3,3,1, }, }, {53009, "tigre", "Tigre", 30068, PetExpTable, { 2,3,2,1, }, },}PET_NAME = 1PET_LEVEL = 2PET_EXP = 3PET_TYPE = 1PET_BON1 = 2PET_BON2 = 3PET_BON3 = 4PET_BON4 = 5PET_SUMMON = 0PET_UNSUMMON = 1PET_READ = 0PET_WRITE = 1PET_DATA = 0PET_BONUS = 1function inizializza(i) say_title("Pet System:") say("") say("Ciao, hai adottato un nuovo cucciolo") say("per poterlo evocare, come prima cosa") say("dovrai dargli un nome.") local scelta = select("Voglio dargli un nome","Non ora") if scelta == 2 then return -1 end say_title("Pet System:") say("") say("Assegna un nome al tuo cucciolo") say("") say_reward("Nome:") local PetName = tostring(input()) if PetName == "" then say_title("Pet System:") say("") say_reward("Non puoi lasciare l'input vuoto!") return -1 end local DATA_PATH = "locale/italy/quest/object/pet/" local LOCAL_PATH = pc.get_name().."/" local PET_FILE = PetArray[i][2]..".txt" local PET_BONUS_FILE = PetArray[i][2].."_bonus.txt" if pc.getqf("local_path") != 1 then os.execute("cd "..DATA_PATH.." && mkdir "..LOCAL_PATH.." && chmod 777 "..LOCAL_PATH) pc.setqf("local_path", 1) end local file = io.open(DATA_PATH..LOCAL_PATH..PET_FILE , "w") file:write(PetName.."n1n0n") --nome livello exp io.close(file) local bonus = io.open(DATA_PATH..LOCAL_PATH..PET_BONUS_FILE , "w") bonus:write("0n0n0n0n0n") io.close(bonus) os.execute("cd "..DATA_PATH..LOCAL_PATH.." && chmod 777 *.txt") return 0endfunction GetGrade(i) local PetLevel = tonumber(data_tool(i, PET_LEVEL, PET_DATA, PET_READ)) local x = 0 local y = 0 local Grade = 1 while true do x = x + 1 y = y + 1 if y == 10 then Grade = Grade + 1 y = 0 end if x == PetLevel then return Grade end endend function evoca(i, stato) local bonus = { 3,4,5,6, } local status = PetArray[i][6] local PetGrade = tonumber(GetGrade(i)) local PetName = data_tool(i, PET_NAME, PET_DATA, PET_READ) local PetLevel = tonumber(data_tool(i, PET_LEVEL, PET_DATA, PET_READ)) local horse_level = horse.get_level() local apply = 0 local level = 21 + i if stato == PET_SUMMON then local z = 1 while true do if bonus[z] == nil then break end apply = PetGrade*status[z] affect.add_collect(bonus[z], apply, 60*60*8) z = z + 1 end horse.set_level(level) horse.set_name(PetName) horse.summon() chat("Il pet e' stato evocato") horse.set_level(horse_level) else local z = 1 while true do if bonus[z] == nil then break end apply = PetGrade*status[z] affect.remove_collect(bonus[z], apply, 60*60*8) z = z + 1 end horse.set_level(level) horse.unsummon() chat("Il tuo pet e' andato a riposare") horse.set_level(horse_level) endendfunction PetInfo(x) while true do say_title("Pet System:") say("Informazioni abilita':") say("") say("Lo stile "..PetBonus[x][1].." si divide in 4") say("categorie principali.") say("potrai sviluppare una sola tecnica per categoria") local y = 0 if x == 1 then y = select( "Valore Attacco","Attacco Vs. Razza","Aumento del danno","Tecniche Speciali","Indietro") else y = select( "Valore Difesa","Difesa Vs. Arma","Aumento dei valori vitali","Tecniche Rigenerative","Indietro") end if y == 5 then break end while true do say_title("Pet System:") say("Informazioni abilita':") say("") say("Con l'apprendimento di questa tecnica potrai") say("incrementare il valore "..PetBonus[x][1]) say("Tecniche disponibili:") say("") local z = 1 while true do if PetBonus[x][y+1][z] == nil then break end say_reward(PetBonus[x][y+1][z]) z = z + 1 end local b = select("Indietro") if b == 1 then break end end endendfunction PetSet(i, t) say_title("Pet System:") say("Gestione abilita':") say("") say("Hai scelto uno stile di combattimento") say("del tipo "..PetBonus[t][1].." per il tuo pet") say_reward("confermi?") local conferma = select("Si","No") if conferma == 2 then return end say_title("Pet System:") say("Gestione abilita':") say("") say("Una volta scelto lo stile di combattimento") say("hai la possibilita' di allenare nuove abilita'") say("scegli con cura le abilita' da sviluppare") say("") local k = select("Scelgo ora","Scelgo dopo") if k == 2 then return end local w = 2 local bonus = {} local bon = {} while true do if PetBonus[t][w] == nil then break end say_title("Pet System:") say("Gestione abilita': ") say("") say_reward("Puoi allenare solo una delle seguenti abilita'") say_reward("sceglila con cura...") say("") local x = select_table( PetBonus[t][w] ) bonus[w-1] = x bon[w-1] = PetBonus[t][w][x] w = w + 1 end say_title("Pet System:") say("Gestione abilita':") say("") say("Hai scelto:") say("") say("Bonus 1: "..bon[1]) say("Bonus 2: "..bon[2]) say("Bonus 3: "..bon[3]) say("Bonus 4: "..bon[4]) say("") say_reward("Confermi?") say("") local c = select("Si","No") if c == 2 then return end data_tool(i, t.."n"..bonus[1].."n"..bonus[2].."n"..bonus[3].."n"..bonus[4].."n", PET_BONUS, PET_WRITE)endfunction PetMenuAbi(i) local check = tonumber(data_tool(i, PET_TYPE, PET_BONUS, PET_READ)) local status = PetArray[i][6] local PetGrade = tonumber(GetGrade(i)) local PetType = tonumber(data_tool(i, PET_TYPE, PET_BONUS, PET_READ)) local bon1 = tonumber(data_tool(i, PET_BON1, PET_BONUS, PET_READ)) local bon2 = tonumber(data_tool(i, PET_BON2, PET_BONUS, PET_READ)) local bon3 = tonumber(data_tool(i, PET_BON3, PET_BONUS, PET_READ)) local bon4 = tonumber(data_tool(i, PET_BON4, PET_BONUS, PET_READ)) if check == 0 then while true do say_title("Pet System:") say("Benvenuto nel sistema di gestione abilita'") say("come prima cosa devi decidere che tipo") say("di istruzione vuoi dare al tuo pet") local z = select( "Offensiva","Difensiva","Informazioni","Chiudi") if z == 1 then PetSet(i, z) return elseif z == 2 then PetSet(i, z) return elseif z == 3 then while true do say_title("Pet System:") say("Informazioni abilita':") say("") say("Ogni pet può sviluppare 4 abilita'") say("a seconda dello stile di combattimento") say("") local x = select( "Stile Offensivo","Stile Difensivo","Indietro") if x == 1 then PetInfo(x) elseif x == 2 then PetInfo(x) elseif x == 3 then break end end elseif z == 4 then break end end else say_title("Pet System:") say("Gestione abilita':") say("") say_reward("Cosa desideri fare?") say("") local y = select("Stato abilita'","Reset Abilita'","Chiudi") if y == 1 then local point = {} local p = 1 while true do if status[p] == nil then break end point[p] = status[p]*PetGrade p = p + 1 end say_title("Pet System:") say("Stato abilita':") say("") say_reward("Status:") say("VIT: +"..point[1]) say("INT: +"..point[2]) say("STR: +"..point[3]) say("DEX: +"..point[4]) say_reward("Bonus:") say(PetBonus[PetType][2][bon1]..": +"..PetGrade) say(PetBonus[PetType][3][bon2]..": +"..PetGrade) say(PetBonus[PetType][4][bon3]..": +"..PetGrade) say(PetBonus[PetType][5][bon4]..": +"..PetGrade) elseif y == 2 then say_title("Pet System:") say("Reset abilita'") say("che tipo di istruzione vuoi dare al tuo pet?") say_reward("Ricorda il reset può essere usato ogni 3 giorni") local j = select("Stile Offensivo","Stile Difensivo","Chiudi") if j == 1 then PetSet(i, j) elseif j == 2 then PetSet(i, j) else return end elseif y == 3 then return end endendfunction show_pet_menu(i) local PetName = data_tool(i, PET_NAME, PET_DATA, PET_READ) local PetRace = PetArray[i][3] local PetFood = PetArray[i][4] local PetGrade = tonumber(GetGrade(i)) local PetLevel = tonumber(data_tool(i, PET_LEVEL, PET_DATA, PET_READ)) local PetExp = tonumber(data_tool(i, PET_EXP, PET_DATA, PET_READ)) local PetNextExp = PetArray[i][5][PetLevel] while true do say_title("Pet System:") say("Benvenuto nel sistema di gestione del pet") say("") say_reward("cosa desideri fare?") local s = select("Stato Pet", "Ciba Pet", "Abilita' Pet", "Altro", "Chiudi" ) if s == 4 then say_title("Pet System:") say("Benvenuto nel sistema di gestione del pet") say("") say_reward("cosa desideri fare?") local z = select( "Cambia Nome", "Manda via", "Indietro", "Chiudi" ) if z == 1 then say_title("Pet System:") say("") say("Assegna un nuovo nome al tuo cucciolo") say("") say_reward("Nome:") local PetNewName = tostring(input()) if PetNewName == "" then say_title("Pet System:") say("") say_reward("Non puoi lasciare l'input vuoto!") return end if PetNewName == nome then say_title("Pet System:") say("") say_reward("Non puoi usare lo stesso nome!") return end data_tool(i, PetNewName.."n"..PetLevel.."n"..PetExp.."n", PET_DATA, PET_WRITE) evoca(i, PET_UNSUMMON) evoca(i, PET_SUMMON) return elseif z == 2 then evoca(i, PET_UNSUMMON) return elseif z == 3 then elseif z == 4 then break end elseif s == 1 then say_title("Pet System:") say("") say("Nome: "..PetName) say("Razza: "..PetRace) say("Livello: "..PetLevel) say("Grado Istruzione: "..PetGrade) say("Exp: "..PetExp.." / "..PetNextExp) say("Salute: "..horse.get_health_pct().."%") say("Resistenza: "..horse.get_stamina_pct().."%") say("Cibo: "..item_name(PetFood)) return elseif s == 2 then if pc.countitem(PetFood) &--#62; 0 then say_title("Pet System:") say("") say("Il tuo cucciolo e' felice") say("per l'ottimo spuntino che ha fatto") pc.removeitem(PetFood, 1) horse.feed() return else say_title("Pet System:") say("") say("Per cibare il tuo cucciolo") say("hai bisogno di: "..item_name(PetFood)) say("") return end elseif s == 3 then if PetLevel &--#62;= 10 then PetMenuAbi(i) return else say_title("Pet System:") say("") say_reward("Il Pet deve essere almeno Lv 10") return end elseif s == 5 then break end endendfunction PetGiveExp(i, Point) local PetName = data_tool(i, PET_NAME, PET_DATA, PET_READ) local PetLevel = tonumber(data_tool(i, PET_LEVEL, PET_DATA, PET_READ)) local PetExp = tonumber(data_tool(i, PET_EXP, PET_DATA, PET_READ)) local PetNextExp = PetArray[i][5][PetLevel] if PetLevel == 150 then return end local PetNewExp = PetExp + Point while true do if PetNewExp &--#60; PetNextExp then break end PetNewExp = PetNewExp - PetNextExp PetLevel = PetLevel + 1 end data_tool(i, PetName.."n"..PetLevel.."n"..PetNewExp.."n", PET_DATA, PET_WRITE)endfunction data_tool(i, linea, tipo, modo) local DATA_PATH = "locale/italy/quest/object/pet/" local LOCAL_PATH = pc.get_name().."/" local x = 1 local file = "" local PET_FILE = "" local PET_BACKUP = "" if tipo == PET_DATA then PET_FILE = PetArray[i][2]..".txt" PET_BACKUP = PetArray[i][2]..".bak" elseif tipo == PET_BONUS then PET_FILE = PetArray[i][2].."_bonus.txt" PET_BACKUP = PetArray[i][2].."_bonus.bak" end if modo == PET_READ then file = io.open(DATA_PATH..LOCAL_PATH..PET_FILE, "r") while true do local line = file:read("*l") if line == nil then break end text = string.gsub(line, "n", "") if x == linea then io.close(file) return text end x = x + 1 end io.close(file) elseif modo == PET_WRITE then os.execute("cd "..DATA_PATH..LOCAL_PATH.." && mv "..PET_FILE.." "..PET_BACKUP) file = io.open(DATA_PATH..LOCAL_PATH..PET_FILE, "w") file:write(linea) io.close(file) os.execute("cd "..DATA_PATH..LOCAL_PATH.." && chmod 777 "..PET_FILE) endend pet_system.quest: quest pet_system begin state start begin when 53001.use or 53002.use or 53003.use or 53005.use or 53006.use or 53007.use or 53008.use or 53009.use begin local ItemValue = item.vnum for i = 1, table.getn(PetArray), 1 do if PetArray[i][1] == ItemValue then local PetState = PetArray[i][2] if pc.getqf("pet_index") == 0 then if pc.getqf(PetState) == 0 then local check = inizializza(i) if check != 0 then return end pc.setqf(PetState, 1) end pc.setqf("pet_index", i) evoca(i, PET_SUMMON) else evoca(i, PET_UNSUMMON) pc.setqf("pet_index", 0) end end end end when 20120.click with pc.getqf("pet_index") == 1 begin show_pet_menu(1) end when 20121.click with pc.getqf("pet_index") == 1 begin show_pet_menu(1) end when 20122.click with pc.getqf("pet_index") == 1 begin show_pet_menu(1) end when 20123.click with pc.getqf("pet_index") == 2 begin show_pet_menu(2) end when 20124.click with pc.getqf("pet_index") == 2 begin show_pet_menu(2) end when 20125.click with pc.getqf("pet_index") == 2 begin show_pet_menu(2) end when 20126.click with pc.getqf("pet_index") == 3 begin show_pet_menu(3) end when 20127.click with pc.getqf("pet_index") == 3 begin show_pet_menu(3) end when 20128.click with pc.getqf("pet_index") == 3 begin show_pet_menu(3) end when 20129.click with pc.getqf("pet_index") == 4 begin show_pet_menu(4) end when 20130.click with pc.getqf("pet_index") == 4 begin show_pet_menu(4) end when 20131.click with pc.getqf("pet_index") == 4 begin show_pet_menu(4) end when 20132.click with pc.getqf("pet_index") == 5 begin show_pet_menu(5) end when 20133.click with pc.getqf("pet_index") == 5 begin show_pet_menu(5) end when 20134.click with pc.getqf("pet_index") == 5 begin show_pet_menu(5) end when 20135.click with pc.getqf("pet_index") == 6 begin show_pet_menu(6) end when 20136.click with pc.getqf("pet_index") == 6 begin show_pet_menu(6) end when 20137.click with pc.getqf("pet_index") == 6 begin show_pet_menu(6) end when 20138.click with pc.getqf("pet_index") == 7 begin show_pet_menu(7) end when 20139.click with pc.getqf("pet_index") == 7 begin show_pet_menu(7) end when 20140.click with pc.getqf("pet_index") == 7 begin show_pet_menu(7) end when 20141.click with pc.getqf("pet_index") == 8 begin show_pet_menu(8) end when 20142.click with pc.getqf("pet_index") == 8 begin show_pet_menu(8) end when 20143.click with pc.getqf("pet_index") == 8 begin show_pet_menu(8) end when kill with pc.getqf("pet_index") != 0 begin local i = pc.getqf("pet_index") if pc.get_level() &--#62; (npc.get_level() + 15) then return end if pc.get_level() &--#60;= npc.get_level() then PetGiveExp(i, 5) elseif pc.get_level() &--#60;= (npc.get_level() + 5) then PetGiveExp(i, 4) elseif pc.get_level() &--#60;= (npc.get_level() + 10) then PetGiveExp(i, 3) elseif pc.get_level() &--#60;= (npc.get_level() + 15) then PetGiveExp(i, 1) end end when logout with pc.getqf("pet_index") != 0 begin local i = pc.getqf("pet_index") evoca(i, PET_UNSUMMON) pc.setqf("pet_index", 0) end when login with pc.getqf("pet_index") != 0 begin local i = pc.getqf("pet_index") evoca(i, PET_UNSUMMON) pc.setqf("pet_index", 0) end endendDif da function npc.get_level para o game2089: This difference file is created by The Interactive Disassemblergame20890014E762: 89 900014E763: C3 900014E764: 74 750014E765: 07 610014E766: 8B 900014E767: 50 900014E768: 24 900014E769: 85 900014E76A: D2 900014E76B: 74 900014E76C: 33 900014E7C7: 24 0F0014E7C8: 04 B60014E7C9: E8 800014E7CA: 82 0A0014E7CB: F5 050014E7CC: 17 0000312349: 72 6C0031234B: 6D 760031234C: 61 650031234D: 69 6C0031234E: 6E 00 Pet System Advanced quest: http-~~-//www.youtube.com/watch?v=Oc2C3jtjTDI Créditos pela dif BlackYuko. divertir-se by d3m0n3. Fonte: Epvpers.
  20. https://youtu.be/5uYPxIamkEM Fonte: Swerve Graphic Designer