antiblock
Elveron

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. Adicionar + gold na Negociação Maioria dos Clients ( até dos oficiais ) só da para adicionar no maximo 9.999.999 Gold na negociação... para modificar isso é só ir na pasta do seu client achar o uiexchange abri-lo com bloco de notas ou notepad+++ procurar ## PickMoneyDialog dlgPickMoney = uiPickMoney.PickMoneyDialog() dlgPickMoney.LoadDialog() dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickMoney)) dlgPickMoney.SetTitleName(locale.EXCHANGE_MONEY) dlgPickMoney.SetMax(7) dlgPickMoney.Hide() self.dlgPickMoney = dlgPickMoney e mudar o dlgPickMoney.SetMax(7) por dlgPickMoney.SetMax(9) assim você podera adicionar 999.999.999 Gold na negociação Att: Estava Guardado no meu computador .. não lembro se estar certo ou não sry Att: a file esta no Root.eix , epk ! Obrigado Henrique Oliveira™, e ραcificαdør
  2. Reduzindo o lag Alguns já sabem, outros não portanto aqui vai: Muita gente não sabe que cada porta tem um ficheiro de registo onde fica registado a maioria dos bugs, esse ficheiro está guardado nas pastas game1_1; game1_2; game1_3; game2; game61 e game99. Dentro destas pastas estão os ficheiros syslog e syserr onde fica tudo registado. Enquanto andava a brincar com esses ficheiro notei num erro que se repete bastante na pasta game61 que se refere a grupos de mobs que não existem. Estes grupos de mobs são da Atlantida da cidade 1 de cada reino, este erro causa bastante lag no servidor pois cada vez que é suposto o grupo renascer este não existe e enche os ficheiros de registo com mensagens de erro. Para diminuir o lag e resolver este erro basta ir ao filezilla (cd /usr/rain/channel/share_data/locale/hongkong/map) e abrir as pastas das varias atlantidas que são: metin2_map_skipia_dungeon_011 metin2_map_skipia_dungeon_012 metin2_map_skipia_dungeon_013 metin2_map_skipia_dungeon_021 metin2_map_skipia_dungeon_022 metin2_map_skipia_dungeon_023 Uma vez dentro destas pasta vamos apagar tudo o que está dentro do ficheiro "regen". Caso queiram utilizar as atlantidas basta mudar o vnum que está nos ficheiros "regen" para um valido. Isto feito, basta dar reboot e vão notar que o servidor está com muito menos lag.
  3. Configurando evento OX Primeiramente você precisa ter um Software que FTP recomendo a usarem o Filezilla para se conectar nos arquivos; Agora você vai até a pasta /usr/rain/channel/share_data/locale/hongkong/ e procura pelo arquivo oxquiz.lua; Depois disso abra o arquivo oxquiz.lua e lá vai estar assim; add_ox_quiz(1," (Aqui vai está em chinês)",true); Ali onde eu coloquei "Aqui vai está em chinês" você apaga o que está escrito e coloca sua pergunta e ali na frente onde está escrito True é se está certo ou errado; True = O False= X Recomendo a não usarem acentos Depois disso é só salvar, dar reboot e entrar no jogo; Agora para ativar é o seguinte; Você vai e da o comando no jogo /go ox Depois disso você será teletransportado para o mapa OX; Depois disso você da /open e evoca o boss ID 20358 (No Metin2BR chamado de Flor sem nome) que é tipo uma planta rasteira que serve para iniciar ou parar o evento; Depois que você quiser fechar as entradas para iniciar o evento você clica na 1° opção e 1° opção novamente; Depois que as entradas se fecharem só clicar na planta e ir 1° opção novamente, isso irá fazer com que sejam lançadas as perguntas que você configurou; Quando quiser encerrar o evento é só clicar na 1° Opção que os jogadores serão retirados do mapa imediatamente.
  4. Boas cyber gamers venho vos postar um tutorial de como meter para subir montada com ctrl + h prints: A alternativa era CTRL + J, mas para mim o H e J estão muito longe http://cyber-gamers.org/public/style_emoticons/default/lol.gif. Então, o que eu fiz? Eu descompactado "root", abra o arquivo "game.py", e eu substituiu esta: CodiGO: def __PressHKey(self): if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL): net.SendChatPacket("/user_horse_ride") else: self.interface.OpenHelpWindow() Com esta: Codigo: def __PressHKey(self): if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL): if player.IsMountingHorse(): net.SendChatPacket("/unmount") else: net.SendChatPacket("/user_horse_ride") Espero ter ajudado se vos ajudei http://cyber-gamers.org/public/style_emoticons/default/451960.gif Fonte: InForge Obrigado e cumprimentos
  5. Disse e não falhei deixo aqui uma diff para retirar o requerimentos de ter 30 nivéis de difrença para fazer grupo. Cumprimentos e não se esqueçam do http://cyber-gamers.org/public/style_emoticons/default/451960.gif
  6. 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.
  7. Boas Venho deixar-vos uma pequena dica para aumentarem o número de channels do vosso servidor. Comecem por fazer download deste ficheiro: Link: http://dl.dropbox.com/u/24820542/Metin2/cores.zip Depois de terem feito o download, vão até ao directório das vossas Serverfiles onde estão localizados os channels. Criem um novo directório, com qualquer nome, channel2,channel3,ch2,ch3,canal2,canal3, não interessa o nome da pasta. Ou então colem as pastas que encontrarão no download. Se optarem por criarem vocês as pastas: Copiem o que está na pasta channel2_1 do download e colem por exemplo no vosso directório para o channel2, se quiserem ter o channel3, colem o que está em channel3_1, no directório para o channel3. E se quiserem por exemplo adicionar o channel 7, copiam o conteúdo de qualquer dos channels do download e colam no vosso directório do channel7, a única coisa que têm de fazer é mudar a port e p2p_port. As portas variam desta maneira: Channel 1: 13000 Channel 2: 16000 Channel 3: 19000 Channel 4: 22000 Channel 5: 25000 Channel 6: 28000 Channel 7: 31000 E por aí fora.. As portas têm intervalos de 3000. As portas p2p variam desta maneira: Channel 1: 14000 Channel 2: 17000 Channel 3: 20000 Channel 4: 23000 Channel 5: 26000 Channel 6: 29000 Channel 7: 32000 Variando também com intervalos de 3000. Depois de terem as pastas prontas devem ir até ao directório, no meu caso "home/script/iniciar", e adicionar mais channels, dependendo do número de channels que adicionaram. O ficheiro é algo como isto: #!/bin/shclearecho -e "A iniciar o servidor..."echo -e ""cd /nikie/conf../script/db/on &sleep 3cd auth../../script/auth/on &cd ../auth_admin../../script/auth_admin/on &cd ../channel99_1../../script/channel99_1/on &cd ../channel1_1../../script/channel1_1/on &cd ../channel2_1../../script/channel2_1/on &cd ../channel3_1../../script/channel3_1/on &cd ../channel4_1../../script/channel4_1/on &cd ../admin_1../../script/admin_1/on &É só seguirem a estrutura do ficheiro para adicionarem os outros channels, por exemplo, se quiserem adicionar um 5º channel, apenas têm de fazer isto: cd ../channel5_1../../script/channel5_1/on &Relembrando que devem ter os channels no servidor! Façam o mesmo processo para o ficheiro parar, actualizar,etc.. Poderá ser necessário que adicionem os Links para o locale, data, cores, mark, etc. Aconselho que usem o programa BitVise SSH, penso que no Filezilla não é possível criar Links. Devem ter reparado, e talvez estranhado, que tenho os channels deste modo: channel1_1 channel1_2 channel2_1 channel2_2 etc... Isto não quer dizer que há dois channels 2. Apenas tenho os channels com esta estrutura para ter a possibilidade de activar mais mapas, pois cada channel tem um certo limite de mapas no ficheiro CONFIG, deste modo é como se tivessem 2 ficheiros CONFIG para um mesmo channel o que permite terem mais mapas. Pronto, penso que é tudo, mas a fazer o tutorial a esta hora pode ter ficado com algo em falta e não ter reparado.. Obs. Façam backup do servidor antes de realizarem qualquer operação. Boa sorte. Cumprimentos, Moisés.
  8. Olá,Ontem eu escrevi um roteiro, que pode instalar 4 canais em sf2010.Mas ele está trabalhando apenas em arquivos do servidor alemão (que já tenha 2 channels).Observação:Faça backup antes de instalar os 4 channels.Ok, podemos começar. 1. Baixe este arquivo:Download CH4.tar.gz2. Coloque esse arquivo em:/usr/home3. Escreva na Virtual PC / Virtual Box:cd /usr/home/ && tar zxvf CH4.tar.gz4. Em seguida escrever:cd game && chmod -R 777 script*5. E depois:./script*6. Nenhuma instalação está funcionando ainda precisamodificar os scripts!START:Script de start.shSTOP:Script de stop.shDivirta-se!SCRIPT 100% POR sherer223.
  9. Existem muitos que já o sabem fazer mas para os que não sabem aqui vai: 1º passo : ligar o servidor no virtual pc ou virtual box. 2º passo : abrir o navicat conectar o navicat do vosso server. 3º passo : tabela account e escolher o ficheiro account. 4º passo : ir até há tabela web_admin escrevem o número 9. 5º passo: guardar e fazer login com a conta que adicionas-te como admin no site e ver se já está. Sei que muitos não precisam disto porque já sabem mas para quem precisa aqui tem simples e fácil. http://cyber-gamers.org/public/style_emoticons/default/451960.gif <-------- Dá-me um destes caso tenhas gostado. Cumpss [CoMa]2D
  10. Vou explicar como criar um server de Metin2, com Sistema Operativo: FreeBSD, sem as files já prontas! Primeiro devem baixar o .txt com todos os links de download que serão usados neste tutorial! Clicando aqui: http://www.4shared.c...a_download.html Todos os links para download deste tutorial vão estar dentro do arquivo de texto que devem baixar, ai em cima :)-- Dificuldade do tutorial: Média/Dificil, apenas para membros mais avançados. 1. Bem, primeiro devem de baixar umas server files, por exemplo as do Daroo 2010 2. Com o FileZilla ou algum outro programa de sftp, extraiem a pasta /home/game para o Vosso PC. 3. Devem agora de instalar o FreeBSD , de preferencia 8.2 (para as files 2010). 4. Vamos proceder ao upload do /home/game para o VPS ou Dedicado, ou PC onde instalaram o FreeBSD 5. Para este processo ser mais rápido podem compactar o game em tar.gz antes de o extrairem das Files para fora, usando o comando: tar -zcf nome_arq.tar nome_dir_ou_arq_a_ser_compactado6. Agora no upload para descompactarem usam o comando: tar -xvzf nomedoarquivo.tar 7. Vamos agora instalar as Ports no FreeBSD. 1º devem de verificar se têm as mesmas já instaladas, efetuando o comando: cd /usr && ls -a 8. Verifiquem agora se existem alguma pasta chamada Ports, caso contrário vamos instalar.em 9. Executem o seguinte comando: portsnap fetch extract 10. Agora vamos instalar o MYSQL Server executando o seguinte comando: cd /usr/ports/databases/mysql50-server && make WITH_XCHARSET=all install clean Assim que instalar vamos digitar o seguinte comando: ee /etc/rc.conf Agora no fim escrevemos o seguinte: mysql_enable="YES" Damos ESC, salvamos e damos reboot na máquina! 11. Agora temos de ter as DBs. No server do Vosso PC efetuem o Backup das mesmas no Navicat. 12. Vamos antes habilitar o Login no Navicat. Usamos a seguinte série de comandos: /usr/local/etc/rc.d/mysql-server stop[/color]depoischown -R mysql /var/db/mysql && chgrp -R mysql /var/db/mysqldepois voltar a ligar o MYSQL/usr/local/etc/rc.d/mysql-server start---------------+-------------+Gestão da conta MYSQLEscrever: mysqladmin -u root password tuapass [enter]mysql -p [ENTEER]GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'tuapass' WITH GRANT OPTION;[color=#ff0000]13. Agora entramos e repomos o Backup[/color][color=#FF0000]14. Caso ainda não consigam entrar, vamos digitar o seguinte comando:[/color][CODE]mysql -uroot -pgrant all on *.* to NOMEUSER@"ENDEREÇO IP" identified by "PALAVRA PASSE";flush privileges;[/CODE][color=#ff0000]15. Agora vamos configurar o usuario padrão do Metin2 no MYSQL, com o seguinte comando:[/color][CODE]mysql -uroot -pgrant all on *.* to mt2@"localhost" identified by "mt2!@#"; Onde diz mt2 e mt2!@# , é o user e senha, podem ser difereentes dependendo de files para files. Para verem isso basta irem no /home/game/auth, no CONFIG, e tem la os dados do vosso server :) 16. Vamos baixar as libs. O link de download encontra-se no arquivo de texto que baixaram acima. 17. Vamos coloca-las no diretorio Libs do FreeBSD usando o Filezilla.. 18. Pronto! Agora damos cd /home/game && sh start.sh e o servidor vai iniciar :) Créditos: 100% BloodSky
  11. Boas , Cyberianos! Hoje venho-vos apresentar um tutorial feito por mim! Limpar Log's de Files 2010: [*]Fazer download do ficheiro log2010.sh (Postado no fim do tópico) [*]Colocar o log2010.sh na pasta: game [*]Abrir o servidor e executar o comando: log2010.sh [*]Log's Limpos [*]Be Happy! Limpar Log's de Files 2007: [*]Fazer download do ficheiro log2007.sh (Postado no fim do tópico) [*]Colocar o log2007.sh na pasta: game [*]Abrir o servidor e executar o comando: log2007.sh [*]Log's Limpos [*]Be Happy! Download's: [*]log2010.sh [*]log2007.sh Não se esqueçam de mudar onde diz: "password do root" para a sua password! by: Luis Bizarro script: João Manuel aka .Revo Cumpz, Luis Bizarro
  12. Download (fazer download e colocar no cliente)
  13. 1º Após ligar seu servidor, abra o filezzila, winscp ow qualquer outro programa ftp que vc use, e logue-se. 2º Já dentro dos arquivos do servidor, vá até a pasta /usr/rain(ow o nome do usuario q usar)/auth/ 3º Abra o arquivo CONFIG 4º Depois da ultima linha, adicione a seguinte linha: adminpage_ip1: ip &--#60;-- coloque o ip do seu computador 5º Salve, reboot, e Pronto. Servidor seguro Obs: se vc usa aqueles files do alexandre, o caminho da pasta é esse: /usr/profizocker94/game/auth/ Créditos: Festudx
  14. Hj trago um tutotial que eu fiz especialmente pra cyber mostrar o poco que sei sobre cliente, bora ver entao. Alterar o nome da aplicação metin2. abre o ficheiro locale.py e vai até a linha 221.(se não encontrares o ficheiro tens de descompactar os ficheiros root.eix e root.epk) QUOTE APP_TITLE = "Às¾s" Coloca entre aspas o nome que queres para a aplicação. Altera o que está sublinhado a vermelho P.S. Ao alterares o nome vai fazer com que alguns hacks não funcionem. Alterar o nome do server no locale de 'select server'. Aqui abre o ficheiro serverinfo.py(se não encontrares o ficheiro tens de descompactar os ficheiros root.eix e root.epk) Vai até a linha 979. QUOTE REGION_DICT = { Altera no mesmo local . Coloca o nome do server, ou algo a teu gosto. Alterar o nevoeiro e zoom do cliente. abre agora o ficheiro constinfo.py. (se não encontrares o ficheiro tens de descompactar os ficheiros root.eix e root.epk) Vai até a linha 8. QUOTE FOG_LEVEL0 = Agora, para alterar a espessura do nevoeiro alteras o valor sublinhado a verde, tem em conta que existe três níveis de nevoeiro. Para o zoom, vai até a linha 14, do mesmo ficheiro. QUOTE CAMERA_MAX_DISTANCE_SHORT = Altera os valores sublinhados a azul, tem em conta que existem 2 níveis de zoom, e equilibra isso, pois se no max, colocares um número exagerado, poderás ver todo o mapa. QUOTE Como já deves ter reparado, o preços dos itens ficam com cor amarela a partir dos 500000(500k), podes aumentar ou diminuir a base para aparecer a cor em amarelo, modifica no mesmo local. Isto são pequenas alterações mas que te fazem ficar com um cliente Melhor... Não vou colocar aqui como se modifica a imagem da selecção de char se server e login, vão ao locale, de seguida entram na pasta 'ui' e modificam as 3 imagens que lá tem, convêm seguir o mesmo tamanho, e selecção da imagem, pois a parte negra(ou outra cor) que não entra na imagem é necessária.
  15. Boas galera da cyber. Venho aqui com meu primeiro tutorial. Hoje vo mostrar a vocês como colocar a dança na sexta icone. Extrair a root.epk substituir emotion.py pelo o que esta dentro do arquivo gangnam style.rar. i na pasta pack colar os arquivos metin2_patch_dance.epk metin2_patch_dance.eix adicionar no index metin2_patch_dance * Abrir o cliente e dançar :) Creditos dos arquivos: inforge Elitepvpers. Link dos arquivos: http://www.mediafire...6d54ed5bfoj6cxx
  16. "Olá, deixo aqui 3 novos mapas, e conosidos por alguns e eu não parecem compartilhar com qe conosen! Bem, eu gostei da última, eu tenho certeza que irá atendê-los (lembre-se a dar graças: D)! Vamos começar ...! Antes de baixar o seguinte: Comente para ver o download! junte os espaços h t t p : / / w w w . 4 s h a r e d . c o m / f i l e / _ J V b 1 T B z / F i l e s _ m a p a s _ i n e d i t o s _ u p l o a d _ b y .h t m l Fase 1 Nós vamos para / usr / chuva / channel / share_data / locale / Hong Kong / map / Em seguida, copie e cole em: gm_guild_build Kaiser_Palast metin2_map_ew02 monarch_room índice fase 2 Agora vá para / usr / chuva / channel / share_data / locale / Hong Kong / Copie e cole: settings.lua group.txt fase 3 Em seguida, vá para / usr / chuva / channel / Em jogo2 pasta conf o que você baixou para jogo2 Em game61 pasta conf o que você baixou para game61 Em game99 pasta conf o que você baixou para game99 fase 4 Baseado em que o cliente, copiar arquivos e npclist.txt atlasinfo.txt Em um PACK cliente, copiar arquivos e monster2.eix monster2.epk Nota: Os ficheiros monster2 texturas são add mobs no mapa gm_guild_build fase 5 Nós vamos para navicat jogador na mesa e importar nosso mob_proto.sql vamos baixar. Nota: Lembre-se de usar uma cópia instantânea para testar se esse erro, este é um processo delicado que exige grande precisão. fase 6 Com a GM, fará com que este teste: / Vá gmmap ou ainda / deformar 832 0 = mapa gm_guild_build / Vá mapempereur ou ainda / deformar 2560 512 = metin2_map_ew02 / Vá monarca ou ainda / deformar 9999 9999 = seria o mesmo mapa metin2_map_ew02 / Kaiser ou também ir / deformar = 8888 8888 ou pode ser Kaiser_Palast metin2_map_guildinside01 Para / go kaiser estas serão as coordenadas da entrada: (121, 171) Aqui temos imagens dos mapas Créditos [GA]Mega - ServidoresMt2 Não testei apenas postando!" Achei na elitecaos mais nao consigo por se alguem me ajudar ficarei grato e se aguem conseguir agradeça a min por te trazido pra ca e me ajude a por tb. Topico original : http://elitecaos.forumeiro.net/t6401p15-hot-3-mapas-metin2
  17. Muito boa tarde a todos! A pedido, venho aqui hoje explicar como implementar a 6ª Skill de Guerreiro, tanto no servidor como no client. No servidor Antes de mais temos que ligar o nosso servidor e abrir o Navicat. Depois disso, vamos à tabela Player > skill_proto. Agora, adicionamos uma linha e fazem tal e qual o que vou expôr agora: Depois de completarem a tabela, salvam e reiniciam o servidor*. No client Para implementarem esta Skill no client, também é muito fácil! Primeiro que tudo, temos de ir à pasta "Pack" do vosso client e descompactar os ficheiros "locale**". Depois de termos descompactado os ficheiros "locale" vamos à pasta: "Source/locale/**/" e abrimos o ficheiro "skilltable". Logo a seguir, adicionamos uma nova linha e colocamos o seguinte: Salvamos e fechamos o bloco de notas/notepad++. Agora vamos adicionar a descrição da Skill, algo também bastante fácil e rápido. Para isso, temos de abrir o ficheiro "skilldesc"(Encontra-se na pasta "Source/locale/**/"), adicionamos uma linha e colocamos lá isto: Salvamos o ficheiro e voltamos a compactar os ficheiros "locale". E pronto, aqui temos a Aura Mística implementada no vosso servidor e client! Disfrutem e tenham um bom jogo! Observações: * - Reiniciar o servidor é a mesma coisa que escrever "/Reboot" na consola. Coloquem a Aura Mística a M10, a Perfect Master ela não dá qualquer dano! Créditos: đŗaѵєη - Tutorial exclusivo para a Cyber-Gamers! Cumprimentos, đŗaѵєη
  18. Olá Cyber Games Resolvi faser um video dé como Implementar diffs no seu Game, então tá ai Qual Quer Dúvidas ,só Postar , séra um Prazer Respondelo Espero ter Ajudado , se ajudei http://cyber-gamers.org/public/style_emoticons/default/451960.gif ;) TUTORIAL SIMPLES , MAIS úTIL , O VIDEO NAO FICO MUITO BOM , POS FOI RAPIDO MAIS OQUE VALE éA INTENÇAO ;) http-~~-//www.youtube.com/watch?v=3eTt0Pa2TDU&feature=youtu.be Dowloand -> http://www.4shared.c...lementador.html By Ruan Sombra --> Vídeo xOcCan --> Programa
  19. Bom dia Cybers ! Vi a algum tempo, tanto aqui quanto em outras comunidades pedidos de um tutorial a respeito. Até mesmo eu durante meses tive problemas com isto me forçando a substituir penteados pelos oficiais para dar certo. Nunca vi um que explique detalhadamente sobre isto, por isso resolvi me dedicar em um. Vamos ver se consigo explicar claramente pra BRs e PTs entendam. Destaco que este tutorial é de minha autoria (obetuno) e de exclusividade da Cyber-Gamers ! Não copie seu conteúdo sem os devidos créditos meus e local da fonte. Para se implementar voce precisa basicamente estas ações: - Ficheiros GR2 e DDS (ou TGA depende da textura que quer implementar), para o Pack "PC" ou "PC2". - Direcionamento nos ficheiros MSM da pack "ROOT" - Implementar no Banco de Dados (ícone que ao clicar muda o penteado). - Desposição do Item também no ITEM_PROTO do cliente. - Quest "hair.quest" PERFEITAMENTE CONFIGURADA ! é o mais importante. - Configuração dos ficheiros SUB da Pack "ICONE" (Na qual mostra a miniatura com o penteado). - Item_List da pack LOCALE, que vai definir o icone do item que vai mudar o cabelo. A maiora dos erros que encontramos está na quest instalada. é nesta quest que iremos dizer ao servidor qual item que ao clicar mudas a textura do cabelo no personagem. Também é nela que se configura algum bonus do cabelo se necessario. Outro erro que encontramos com frequencia está nos ficheiros MSM da root do client. Um pequeno ponto incorreto levas ao não funcionamento, (Penteados brancos sem textura ou até invisiveis). Devido a quantidade de etapas e também ao detalhe das ações que todos encontram tantos erros ao implementar. 1º PASSO - Implementar Ficheiros GR2 e Textura em "PC ou PC2" Estes 2 ficheiros são o penteado em si. O com a terminação GR2 leva sua forma em 3D, caso queiram abri-los para visualizar, utilizem um programa chamado Granny! Muito leve e útil este programa, pois além de visualizar as formas 3D, ele também reproduz ficheiros com dados de movimento e texturas. é essencial que qualquer administrador ou designer de client o tenha como ferramenta. O com a terminação DDS é a textura (no caso a cor). Pode também ter a terminação TGA, BPM e até mesmo JPG em alguns casos. Juntos esses 2 formam o penteado :) Ao terminar de baixar os penteados, provavelmente eles virão somente assim: Primeira coisa a se fazer é colocar os 2 ficheiros nos arquivos "PC" e "PC2" da pasta PACK do client. FATO A SE RECORDAR: Os ficheiros PC e PC2 armazenam várias coisas, por isso é o pack com maior tamanho do client - No PC irão: Armaduras e Penteados de Guerreiro(M) Shura(M) Ninja(F) e Shaman(F), Brilhos, Formas dos Personagens, Designer das Skills, Designer de Ações do Personagem. - No PC2 irão: Armaduras e Penteados de Guerreiro(F) Shura(F) Ninja(M) e Shaman(M), Formas dos Personagens, Designer de Ações do Personagem. Coloque os ficheiros GR2 na pack descompactada em \ymir work\pc\warrior\hair ! Atenção na hora de colocar a textura na pasta! Ela deve estar na pasta que estiver configurada na GR2. Como saber ??? Abram a GR2 na Granny para saberem, vejam: Após colocar os 2 ou mais arquivos, compacte a pack (PC ou PC2) com algum programa de compactação. PS: Não se esqueça de editar as linhas XML com os novos arquivos!!! Se não especificar as linhas com os novos arquivos eles não serão compactados junto dos outros. 2º PASSO - Direcionamento dos Ficheiros MSM na pack "ROOT" Ai que devem prestar atenção, na pack root tem um ficheiro responsável por direcionar as texturas das armaduras e penteados! Cada classe tem um arquivo com seus direcionamentos. vejam um exemplo de um arquivo MSM: Percebam que cada linha tem uma informação sobre a textura e o local onde ela está. Linhas iniciais do ficheiro: *BaseModelFileName = Local onde se encontra a forma do Personagem - Não alteramos nada neste local. *Group HairData { = Marca o inicio da listagem dos penteados. Finaliza com "}" no arquivo - Não se altera nada neste local. *PathName = Local onde estão os penteados da classe do ficheiro. No caso do exemplo, sendo guerreiro(M): "d:/ymir Work/pc/warrior/" - Não convém mexer nesta linha *HairDataCount = Este sim devemos alterar ! é onde as pessoas mais erram ! - Deve colocar aki o numero da quantidade de cabelos que voce tem nesta classe. Por default vem 18 em alguns ficheiros. Recomendo por 28 ! Ou melhor ainda, ponha a quantidade exata que você tem de cabelos (conte todos os Group HairDataXX que vem abaixo contando pelo Group HairData00 que se inicia). Se você colocar errado este local, ou colocar um valor menor que a quantidade de cabelos que voce tem, eles firarão invisíveis no jogo. Linhas representadas por cada penteado: *Group HairData00 = Número do Direcionamento - Pode por qualquer um, desde que não não se repita em outro direcionamento. *HairIndex = Número do Penteado - Este é importante, é a ligação entre o penteado e a quest dos cabelos. Respeite a ordem que ele segue. *Model = Direção da forma em GR2. - Normalmente é no mesmo lugar: "hair/Nome_do_Penteado.gr2" *SourceSkin = Direção da textura principal. - Neste caso, há muitos penteados que têm a mesma forma, só altera a cor. Ai colocamos neste local a direção da textura principal. Se só houver 1 textura para a forma coloque a direção dela mesma. *TargetSkin = Direção da Textura. - Coloque a direção da textura. Em 90% dos casos se encontra junto da forma GR2: "hair/textura_do_pentado.dds" Após configurar os campos corretamente, compacte a root e ponha de volta no client. PS: Você deve fazer isto para cada classe dos penteados! Como disse anteriormente, cada classe possui um arquivo de direcionamentos. 3º PASSO - Impementar no Banco de dados. Claro que para usar um penteado precisamos de um item pra clicar e ele trocar o cabelo do personagem. Existem regras pra esta etapa tambem! Não saia por ai usando querys sem antes ver se estão como voces querem. EXEMPLO DE UMA QUERY PARA PENTEADO: São poucas zonas na query que interessam quando o item é apenas um de uso de cabelos. Vejam os locais que devem prestar atenção nos valores (da esquerda para direita): *Valor "74001" = No caso aqui é o ID do item ! - Muito importante você colocar o ID exato que se encontra na quest "hair.quest" vnum, mais na frente vemos como ela é. *Valor "0xBFECBCF6BFA120C2F920BCF4C4C628BAD3C0BABBF629" = Aqui é o nome do penteado em formato encriptado MySQL5. - Não convém mudar... Não fará diferença a não ser que depois você queira que os penteados sejam dropados de Mobs no jogo. *Valor "0x436162656C6F2064652043617368" = Aqui é o nome proto do item em formato encriptado MySQL5. - No caso, o nome que vai aparecer em menssagem do sistema quando você adquirir o item. Ponha o que desejar. *Valor "18" = Tipo de item ! Type ! - Aqui OBRIGATORIAMENTE tem que ser 18! Colocando este número você especifica para a BD que é um penteado de cabelo e que o item deve sumir depois de clicado. *Valor "10" = Tipo do tipo de item! Subtype - Pode por 0 ou 10. Normalmente os com valor "0" são penteados comuns, os com valor "10" são penteados com bonus, comprados em loja por exemplo. Recomendo por "10" pois sempre usei assim. *Valor "0" = Flag Deixe o valor "0". - Não convém mexer. Deixe sempre ZERO. *Valor "1" = Size, ou quantos espaços ele gasta no inventário. - SEMPRE 1 ! Sempre 1 para penteados. *Valor "106936" = Antiflag, Que classe irá usar o item ou que genero. - Este é o local mais importante de todos! Exite uma regra, na qual posso explicar em outro tutorial que este número especifica que classe, que gênero e quando usa o item. Dependendo do que colocar nessa região, ao clicar aparecerá uma menssagem do sistema dizendo "Sua classe não permite usar este item" ou "Este item só pode ser usado por personagens Masculinos". Vou passar pra vocês os Antiflags corretos para cada penteado, sem especificar genero(Masculinos e femininos da mesma classe poderão usar). *Valores seguintes = Sempre "0" - Com exceção do GOLD ou SHOP_BUY, pois nesse você especifica os valores de compra e venda nos NPCs. PS: Em GOLD e SHOP_BUY NUNCA DEVE SER "ZERO", coloque "1" se não quiser preço. A não ser que você tenha implementado uma diff no ficheiro game para permitir itens a preço ZERO nas lojas dos NPCs. Tendo colocado a query, você já terá o ID do cabelo que quer mudar. O ID do item que é ligado a quest "hair.quest". 4º PASSO - Adicionar a linha no ITEM_PROTO do client Nesta região não tem segredo. Meta na linha os mesmos valores que você pos na DB. Após o termino ponha na pack do LOCALE e recompacte. 5º PASSO - Quest "Hair.quest" Aqui está a mágica de tudo ! Neste script é onde acontece a referência de cada penteado pra cada item e seu bonus ! Aqui tem um exemplo de uma quest para vocês usarem que possui 22 penteados para cada classe e genero! Vejam os locais onde você pode atribuir o bonus desejado pelo cabelo. é importante que esta quest esteja perfeita! Recomendo que use esta que mandei, pois uso ela normal em meu servidor. Salve-a no bloco de notas, renomeie para "hair.quest" e ative a quest no FreeBSD. Dependendo das files tem um jeito diferente, aqui na minha usamos o ./qc "NOME_DA_QUEST.QUEST". Exemplo comandos para files Daroo r1678: # cd /usr/home/game/share/locale/germany/quest [ENTER] # ./qc hair.quest [ENTER] Caso queiram colocar outros penteados, deve acrescentar as seguintes linhas: hair_list [74006] = {1006, apply.ATTBONUS_ASSASSIN, 0, 2592000} ID, Numero do Penteado, Bonus, Valor do Bonus, Tempo do Bonus when 74001.use or Abaixo de todos coloque NUMERO_DO_ITEM.use or ! IMPORTANTE que cada classe tem um local ! Veja esta linha de comando no final do script: with pc.get_job()==0 begin Esta especifica a classe que vai usar, no caso "0" é para guerreiros ! Respeite essa regra. 6º PASSO - Configuração dos ficheiros SUB Não vou me aprofundar muito nesta parte. Somente os penteados oficiais possuem uma miniatura de exemplo pra usar. A não ser que você trabalhe em uma! Caso queirão fazer a propria, sigam o padrão das outras que não tem segredo, siga como os já feitos mudando apenas o ID do item do cabelo. Ao final compacte acrescentando as linhas adicionais do XML. 7º PASSO - Item-List da pasta LOCALE Para finalizar, aqui você especifica o icone que o item do cabelo irá usar. Exemplo: Comece pelo ID do item e depois separe a linha com [TAB] ETC = Significa que não é armadura nem arma. é um item comum do jogo. icon/item/73001.tga = Local e nome do icone do cabelo. Normalmente, por default usamos estes IDs dos icones: Compacte a LOCALE com a item_list com as linhas configuradas. Recomendo que coloque IDs a mais, caso um dia você precise colocar mais penteados! Sei que envolve muitas etapas, mas se seguir a risca com certeza dará certo. Caso precisem de ajuda e eu tiver um tempo posso ajudar ^^ Coloquei as dúvidas neste mesmo tópico e eu respondo. Caso queiram baixar penteados, existem bons aki na comunidade na área de RECURSOS ! Opte por colocar os Oficiais primeiro... São desbugados, texturas de qualidade... As texturas em TGA podem apresentar problemas in game ou baixa qualidade que não sei explicar. Como todos aqui estou aprendendo também. Obrigado, espero que tenha sido claro e que tenha ajudado muita gente. Créditos: OBETUNO - Cyber-Gamers Se lhe foi útil... um clique no http://cyber-gamers.org/public/style_emoticons/default/451960.gif ai do lado e eu estou grato
  20. Olá, amigos hoje trago as diff's para adicionar na db e fixa o evento monarch. Primeiro vamos ligar o servidor no virtualbox >> login >> /etc/rc.d/netif restart Depois vamos mudar o nome da tabela monarch_candidicy para monarch_candid em seguida vamos no filezilla >> login e na pasta db copiamos o file db para uma área de trabalho para podemos inserir as diff's. Codigo para versão DB 1667er. This difference file is created by aNNdiidb_r16670009298B: 65 610009298C: 6D 2E0009298D: 70 650009298E: 69 6D0009298F: 72 7000092990: 65 6900092991: 2C 7200092992: 20 6500092993: 70 2C00092994: 69 6100092995: 64 2E00092996: 2C 7000092997: 20 6900092998: 6E 6400092999: 61 2C0009299A: 6D 620009299B: 65 2E0009299C: 2C 6E0009299D: 20 610009299F: 6F 65000929A0: 6E 2C000929A1: 65 61000929A2: 79 2E000929A3: 2C 6D000929A4: 20 6F000929A5: 77 6E000929A6: 69 65000929A7: 6E 79000929A8: 64 2C000929AA: 74 2E000929AB: 65 77000929AC: 20 69000929AD: 46 6E000929AE: 52 64000929AF: 4F 61000929B0: 4D 74000929B1: 20 65000929B2: 6D 20000929B3: 6F 46000929B4: 6E 52000929B5: 61 4F000929B6: 72 4D000929B7: 63 20000929B8: 68 6D000929B9: 20 6F000929BA: 61 6E000929BB: 2C 61000929BC: 20 72000929BD: 70 63000929BE: 6C 68000929BF: 61 20000929C0: 79 61000929C1: 65 2C000929C2: 72 20000929C3: 25 70000929C4: 73 6C000929C5: 20 61000929C6: 62 79000929C7: 20 65000929C8: 77 72000929C9: 68 25000929CA: 65 73000929CB: 72 20000929CC: 65 62000929CE: 61 57000929CF: 2E 48000929D0: 70 45000929D1: 69 52000929D2: 64 45000929D3: 3D 20000929D4: 62 61000929D6: 69 70000929D7: 64 69000929D8: 00 64000929D9: 00 20000929DA: 00 3D000929DB: 00 20000929DC: 5B 62000929DD: 4C 2E000929DE: 4F 69000929DF: 41 64000929E0: 44 00000929E1: 5F 5B00092ADF: 70 6100092AE0: 69 2E00092AE1: 64 7000092AE2: 2C 6900092AE3: 20 6400092AE4: 6E 2C00092AE5: 61 6200092AE6: 6D 2E00092AE7: 65 6E00092AE8: 2C 6100092AE9: 20 6D00092AEA: 64 6500092AEB: 61 2C00092AEC: 74 6100092AED: 65 2E00092AEE: 20 6400092AEF: 46 6100092AF0: 52 7400092AF1: 4F 6500092AF2: 4D 2000092AF3: 20 4600092AF4: 6D 5200092AF5: 6F 4F00092AF6: 6E 4D00092AF7: 61 2000092AF8: 72 6D00092AF9: 63 6F00092AFA: 68 6E00092AFB: 5F 6100092AFC: 63 7200092AFD: 61 6300092AFE: 6E 6800092AFF: 64 5F00092B00: 69 6300092B01: 64 6100092B02: 61 6E00092B03: 63 6400092B04: 79 6900092B05: 20 6400092B07: 2C 6300092B08: 20 7900092B09: 70 2000092B0A: 6C 6100092B0B: 61 2C00092B0C: 79 2000092B0D: 65 7000092B0E: 72 6C00092B0F: 25 6100092B10: 73 7900092B11: 20 6500092B12: 62 7200092B13: 20 2500092B14: 77 7300092B15: 68 2000092B16: 65 6200092B17: 72 2000092B18: 65 5700092B19: 20 4800092B1A: 61 4500092B1B: 2E 5200092B1C: 70 4500092B1D: 69 2000092B1E: 64 6100092B1F: 20 2E00092B20: 3D 7000092B21: 20 6900092B22: 62 6400092B23: 2E 2000092B24: 69 3D00092B25: 64 2000092B26: 00 6200092B27: 00 2E00092B28: 5B 6900092B29: 4C 6400092B2A: 4F 0000092B2B: 41 0000092B2C: 44 0000092B2D: 5F 5BCodigo para versão DB 1866er. This difference file is created by aNNdii and Hazeldb_186600092873: 65 6100092874: 6D 2E00092875: 70 6500092876: 69 6D00092877: 72 7000092878: 65 6900092879: 2C 720009287A: 20 650009287B: 70 2C0009287C: 69 610009287D: 64 2E0009287E: 2C 700009287F: 20 6900092880: 6E 6400092881: 61 2C00092882: 6D 6200092883: 65 2E00092884: 2C 6E00092885: 20 6100092887: 6F 6500092888: 6E 2C00092889: 65 610009288A: 79 2E0009288B: 2C 6D0009288C: 20 6F0009288D: 77 6E0009288E: 69 650009288F: 6E 7900092890: 64 2C00092892: 74 2E00092893: 65 7700092894: 20 6900092895: 46 6E00092896: 52 6400092897: 4F 6100092898: 4D 7400092899: 20 650009289A: 6D 200009289B: 6F 460009289C: 6E 520009289D: 61 4F0009289E: 72 4D0009289F: 63 20000928A0: 68 6D000928A1: 20 6F000928A2: 61 6E000928A3: 2C 61000928A4: 20 72000928A5: 70 63000928A6: 6C 68000928A7: 61 20000928A8: 79 61000928A9: 65 2C000928AA: 72 20000928AB: 25 70000928AC: 73 6C000928AD: 20 61000928AE: 62 79000928AF: 20 65000928B0: 77 72000928B1: 68 25000928B2: 65 73000928B3: 72 20000928B4: 65 62000928B6: 61 57000928B7: 2E 48000928B8: 70 45000928B9: 69 52000928BA: 64 45000928BB: 3D 20000928BC: 62 61000928BE: 69 70000928BF: 64 69000928C0: 00 64000928C1: 00 20000928C2: 00 3D000928C3: 00 20000928C4: 5B 62000928C5: 4C 2E000928C6: 4F 69000928C7: 41 64000928C8: 44 00000928C9: 5F 5B000929C7: 70 61000929C8: 69 2E000929C9: 64 70000929CA: 2C 69000929CB: 20 64000929CC: 6E 2C000929CD: 61 62000929CE: 6D 2E000929CF: 65 6E000929D0: 2C 61000929D1: 20 6D000929D2: 64 65000929D3: 61 2C000929D4: 74 61000929D5: 65 2E000929D6: 20 64000929D7: 46 61000929D8: 52 74000929D9: 4F 65000929DA: 4D 20000929DB: 20 46000929DC: 6D 52000929DD: 6F 4F000929DE: 6E 4D000929DF: 61 20000929E0: 72 6D000929E1: 63 6F000929E2: 68 6E000929E3: 5F 61000929E4: 63 72000929E5: 61 63000929E6: 6E 68000929E7: 64 5F000929E8: 69 63000929E9: 64 61000929EA: 61 6E000929EB: 63 64000929EC: 79 69000929ED: 20 64000929EF: 2C 63000929F0: 20 79000929F1: 70 20000929F2: 6C 61000929F3: 61 2C000929F4: 79 70000929F5: 65 6C000929F6: 72 61000929F7: 25 79000929F8: 73 65000929F9: 20 72000929FA: 62 25000929FB: 20 73000929FC: 77 20000929FD: 68 62000929FE: 65 20000929FF: 72 5700092A00: 65 4800092A01: 20 4500092A02: 61 5200092A03: 2E 4500092A04: 70 2000092A05: 69 6100092A06: 64 2E00092A07: 20 7000092A08: 3D 6900092A09: 20 6400092A0A: 62 2000092A0B: 2E 3D00092A0C: 69 2000092A0D: 64 6200092A0E: 00 2E00092A0F: 00 6900092A10: 5B 6400092A11: 4C 0000092A12: 4F 5B00092A13: 41 4D00092A14: 44 4FQuest Monarch.quest quest monarch begin state start begin when electionman1.chat."GM: Emperor election adjustments" or electionman2.chat."GM: Emperor election adjustments" or electionman3.chat."GM: Emperor election adjustments" with pc.is_gm() begin if game.get_event_flag("Emperor Election") == 1 then say("Here you can end the Emperor election.") say("Do you want to end the Emperor election now?") local s = select("End.","Don't end") if s == 1 then game.set_event_flag("Emperor",0) end else say("Here you can start the Emperor election.") say("Do you want to start the Emperor election now?") local s = select("Start","Don't start") if s == 1 then game.set_event_flag("Emperor",1) end end end when electionman1.chat."GM: Emperor election adjustments" or electionman2.chat."GM: Emperor election adjustments" or electionman3.chat."GM: Emperor election adjustments" with pc.is_gm() begin if game.get_event_flag("Emperor election") == 1 then say("Here you can end the Emperor election.") say("Do you want to end the Emperor election now?") local s = select("End.","Don't end") if s == 1 then game.set_event_flag("Emperor election",0) end else say("Here you can start the Emperor election.") say("Do you want to start the Emperor election now?") local s = select("Start","Don't start") if s == 1 then game.set_event_flag("Emperor election",1) end end end when electionman1.chat."Select an Emperor" or electionman2.chat."Select an Emperor" or electionman3.chat."Select an Emperor" begin if game.get_event_flag("Emperor election") != 1 then say("The election has not started yet.") say("Please try again when the elections have started.") return end local g = oh.candidacy_list() local gname_table = {} table.foreachi(g, function(n, p) gname_table[n] = n.."."..oh.candidacy_name(n-1) end) if table.getn(g) == 0 then -- no currently war say("There are no candidates") else gname_table[table.getn(g)[img]http://cyber-gamers.org/public/style_emoticons/<#EMO_DIR#>/451960.gif[/img]] = locale.cancel say("Here you can vote for an Emperor.") say("During the Emperor elections the nations leave aside their own differences.") say("Please vote carefully.") say("You can only vote once.") say("Please vote on one of the candidates") wait() local s = select_table(gname_table) if s == table.getn(gname_table) then return; else ret = oh.election( s -1 ) say(oh.candidacy_name(s-1).."You voted") end end end when electionman1.chat."Show the Emperor candidates" or electionman2.chat."Show the Emperor candidates" or electionman3.chat."Show the Emperor candidates" begin if game.get_event_flag("Emperor") != 1 then say("The following requirements are necessary for") say("an Emperor.") say("") say_reward("1. An election fee of 1 million Gold.") say_reward("2. You have to be Guild leader or 2nd Guild leader") say_reward("3. Level 50 must be reached.") say("") say("But the election period has not yet started.") say("Return when it has begun.") return end say("You are able to participate in the elections,") say("but as a candidate you need the following requirements:") say("") say_reward("1. An election fee of 1 million Gold.") say_reward("2. You have to be Guild leader or 2nd Guild leader") say_reward("3. Level 50 must be reached.") say("") say("Do you want to participate in the election?") local s = select("Yes, I want to participate. ","No thanks") local NEED_MONEY = 10000000 if s == 1 then if oh.candidacycount() >= 8 then say("We are sorry.") say("We have enough candidates.") say("Try again at the next election.") return end if pc.get_gold() >= NEED_MONEY and pc.get_level() >= 50 and oh.isguildmaster() == 1 then pc.change_gold(-NEED_MONEY); oh.candidacy(); end end end endend Creditos: aNNdii, Hazel e TheDestroyer™.
  21. Olá galera venho aqui postar meu script de troca de itens, tem muitos por ai mais deixei o meu organizado e melhor. [*]Nessa linha devem modificar "NOME DO ITEM" para o nome do seu item e o "101" para o ID do seu item. [*]say_item ( "NOME DO ITEM" , 101 , "" ) [*]Nessa linha devem mudar ( 11972 ) para o ID do premio na troca. [*]pc.give_item2( 11972 ) [*]Na linha 1° linha o "101" é a quantidade de item do ID "101" que é para ter na hora da troca [*]e o " 1 then " é a quantidade de item [*]Na 2° linha é a quantidade de itens para ser retirada conforme o ID que vai por [*]e onde esta ( 101 , 1 ) "101" ID do item para retirar e o " 1 " é a quantidade [*]if pc . count_item ( 101 ) >= 1 then [*]pc . remove_item ( 101 , 1 ) Caso alguém fico com duvida não exite em me contactar por aqui ok. Por favor não retirem os créditos =/
  22. Olá, amigos hoje vou ensinar a vocês a fixa a sexta habilidade do guerreiro e do ninja das duas força.Primeiramente precisamos de um cliente com as novas habilidades fixed, para pode fixa no servidor.Depois disso precisamos adicionar isso que vou posta abaixo corretamente para que tudo corra bem e sem bug.Vamos lá:virtualbox >> login >> /etc/rc.d/netif restartAgora vamos no navicat >> player >> new query >> query >>Adicione a query das novas habilidades fixed por rancoroso: INSERT INTO `skill_proto` VALUES ('6', 0xB1E2B0F8C2FC, '1', '1', '1', '0', 'HP', '-(2.3*atk + (4*atk + str*4 + con)*k)', '60+120*k', '', '', '15', '-(2.3*atk + (4*atk + str*4 + con)*k)', '', 'ATTACK,USE_MELEE_DAMAGE', '', 'NONE', '', '', '', '', '', '', '60+120*k', '0', '0', 'MELEE', '4', '1', '0', '100');INSERT INTO `skill_proto` VALUES ('21', 0xB1E2B0F8C2FC, '1', '1', '1', '0', 'HP', '-(2.3*atk + (4*atk + str*4 + con)*k)', '60+120*k', '', '', '15', '-(2.3*atk + (4*atk + str*4 + con)*k)', '', 'ATTACK,USE_MELEE_DAMAGE', '', 'NONE', '', '', '', '', '', '', '60+120*k', '0', '0', 'MELEE', '4', '1', '0', '100');INSERT INTO `skill_proto` VALUES ('36', 0xB1C3BDC5C5BABFB5, '2', '1', '1', '0', 'HP', '-(atk + (1.6* atk + number(200,300) + dex*7 + str*7)*k)', '40+160*k', '', '', '20', '-(atk + (1.6* atk + number(200,300) + dex*7 + str*7)*k)', '', 'ATTACK,USE_MELEE_DAMAGE', '', 'NONE', '', '', '', '', '', '', '40+160*k', '0', '0', 'MELEE', '6', '0.8', '800', '0');INSERT INTO `skill_proto` VALUES ('51', 0xB1C3BDC5C5BABFB5, '2', '1', '1', '0', 'HP', '-(atk + (1.6* atk + number(200,300) + dex*7 + str*7)*k)', '40+160*k', '', '', '20', '-(atk + (1.6* atk + number(200,300) + dex*7 + str*7)*k)', '', 'ATTACK,USE_MELEE_DAMAGE', '', 'NONE', '', '', '', '', '', '', '40+160*k', '0', '0', 'MELEE', '6', '0.8', '800', '0');run.Pronto o primeiro passo já foi vamos pro segundo passo que é o filezilla.FileZilla >> login:Agora vamos na pasta germany e copiamos o skill_power.txt para a área de trabalho ou onde você achar melhor.Abrimos ele e adicionamos isso que vou posta abaixo:Adicione em ordem cada habilidade exemplo 1,2,3,4,5,6.6 ±â°øâü 5 7 9 11 13 15 17 19 20 22 24 26 28 30 32 34 36 38 40 50 52 55 58 61 63 66 69 72 75 80 82 84 87 90 95 100 110 120 130 15021 ±â°øâü 5 7 9 11 13 15 17 19 20 22 24 26 28 30 32 34 36 38 40 50 52 55 58 61 63 66 69 72 75 80 82 84 87 90 95 100 110 120 130 15036 ±Ã½Åź¿µ 5 7 9 11 13 15 17 19 20 22 24 26 28 30 32 34 36 38 40 50 52 55 58 61 63 66 69 72 75 80 82 84 87 90 95 100 110 120 130 15051 ±Ã½Åź¿µ 5 7 9 11 13 15 17 19 20 22 24 26 28 30 32 34 36 38 40 50 52 55 58 61 63 66 69 72 75 80 82 84 87 90 95 100 110 120 130 150Depois de adicionar substituimos o do servidor pelo nosso editado com a novas habilidades.Proximo passo e adicionar as novas skills ao locale.lua ou locale_big5 que fica na pasta quest, para que o item de reinicio de uma skill mostre a nova habilidade a lista de skills, entÃo vamos lá, precure a linha GM_SKILL_NAME_DICT e adicionamos o nome e id da nova habilidade:Adicione em ordem cada habilidade exemplo 1,2,3,4,5,6.[6] = "Novo Habilidade",[21] = "Novo Habilidade",[36] = "Novo Habilidade",[51] = "Novo Habilidade",Bom eu ainda nÃo add um nome a elas entÃo fica ao seu critério.Agora é o passo final vamos no questlib.lua e precuramos a linha active_skill_list e adicionamos o id de cada habilidade em sua ordem:special.active_skill_list = { { { 1, 2, 3, 4, 5, 6}, { 16, 17, 18, 19, 20, 21}, }, { {31, 32, 33, 34, 35, 36}, {46, 47, 48, 49, 50, 51}, }, { {61, 62, 63, 64, 65, 66}, {76, 77, 78, 79, 80, 81}, }, { {91, 92, 93, 94, 95, 96}, {106, 107, 108, 109, 110, 111}, },}ObservaçÃo para editar os arquivos citado acima é necessário copiar para uma área de trabalho e depois de editado adicionar novamente ao servidor.Bom galera é isso skills novas fixed espero que vocês goste.Creditos: Rancoroso.
  23. Boas pessoal este é o meu primeiro tutorial xD espero que gostem! Para começar devem ter o servidor ligado, o Filizilla e o navicat conectado ao servidor. Vou dar um exemplo de instalar uma quest para uma loja, a loja vai ser o NPC "idosa" com o ID "9006" Vamos lá, vão ao directório "/home/game/share/locale/germany/quest" e arrastem de lá um ficheiro qualquer ".quet" para o vosso ambiente de trabalho, alterem o nome do ficheiro para um a vossa escolha, eu vou dar-lhe o nome de "mining.quest" para depois reconhecer outros ficheiros que estão dentro da pasta chat de outros NPC's com o nome de "mining" os quais são .arg , .script , .when, mas iss o agora não interessa, depois de darem o nome ao ficheiro metam isto lá dentro: quest mining begin state start begin when 9006.chat."Item’s para o Casamento" begin npc . open_shop (9) setskin ( NOWINDOW ) end end end Vou vos explicar como funciona, onde diz "quest mining begin" "mining" é o nome da quest dentro no chat do NPC vai ficar assim: mining.start.0.arg mining.start.0.script mining.start.0.when Onde diz "when 9006.chat."Item’s para o Casamento" begin" "9006" é o ID do NPC, "Itens para o Casamento" é o que vai aparecer na lista depois de clicarem no NPC; Onde diz "npc . open_shop (9)" "9" é o ID da loja no navicat, na tabela shop, fica aqui um link com um bom Tut de como criar lojas no navicat; http://cyber-gamers.org/index.php?/topic/1599-colocar-todos-npc-com-varias-janelas-pedido-para-elite/ e isto "setskin ( NOWINDOW )" é para abrir a janela, se não tiver isso vai ficar tipo bugado =/ mas se quiserem que apareça um texto quando se abre a loja no lugar de "setskin ( NOWINDOW )" metam isto: say ( "Tens aqui todas os Itens para o Casamento." ) entre as aspas metam o que quiserem. Depois disso tudo guardem e arrastem o ficheiro para o directório "/home/game/share/locale/germany/quest", e procurem um ficheiro chamado "locale_list" nesse mesmo directório, abram-no e metam o nome da quest na ultima linha, no meu caso será "mining.quest" sem as aspas -.-' Depois guardem o ficheiro e vão a máquina virtual e escrevam: cd /home/game/share/locale/germany/quest ./qc nomedaquest.quest que no meu saco será ./qc mining.quest deem [ENTER] Depois vão a este directório: "/home/game/share/locale/germany/quest/object/9006/chat" e vejam se esta lá os ficheiros: mining.start.0.arg mining.start.0.script mining.start.0.when Depois dêem reboot, entrem no jogo e vão testar no NPC!!!! and be happy!!! xD Créditos: DarkWolf
  24. Boas pessoal, venho aqui trazer uns novos fumos![download][/download] Fumo Azul com Bolhas Azuis Fumo Vermelho com Bolhas Vermelhas Fumo Rosa Leve com Bolhas Rosa Leve Fumo Branco com Bolhas Brancas Fumo Azul Claro com Bolhas Azul Claro Fumo Azul Claro com Bolhas Azul Claro Fumo Rosa Forte com Bolhas Rosa Forte Fumo Verde Claro com Bolhas Verde Claro Fumo Amarelo com Bolhas Amarelas Fumo Verde Escuro com Bolhas Verde Escuro playersettingmodule.py XML Credits do tópico e dos codigos .mse 100% de ρэdяø™ λκλ јuηκĩэ (Eu falta mudar nome aqui <.<)
  25. Boas people ;3Andava me a apetecer meter background na minha Quest tipo o pergaminho que aparece nas missões e decidi investigar ir tentado com cods.Para ter o pergaminho atras no background basta adicionarem setbgimage('level_bg.tga')Se quiserem meter o background com o texto e opções e etc de lado como nas missões tem que meter por baixosetskin(SCROLL)PS: O código acima só suporta 2 opções ou seja, se meter mais que 2 butoes ele em vez de meter os butoes em baixo mete de ladoé tudo, por agorahttp://cyber-gamers.org/public/style_emoticons/default/451960.gif se foi util e comments se precisarem help