Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 09/16/13 in all areas

  1. View File GRF Editor Hey everyone, This is a GRF tool I started to develop for my own personnal use, but I thought I'd share it since I've upgraded the UI. Its primary goal is to be easy to use while offering a wide variety of options and customizations. The software is quite stable and can handle large operations easily. How to install Download the zip archive provided from the download link at the bottom of this description or directly from there : http://www.mediafire.com/?aflylbhblrzpz0h Install the application with GRF Editor Installer.exe; if you are missing a .NET Framework you will be prompted to download it. Once you are done, you can start the program from the link on your desktop. Key features Overall speed is faster (or at least equal) than any GRF tool. Common operations : add, delete, merge, extract, preview, save. Undo and redo for any operation. It can open any GRF file. Clean and very interactive interface. Saving formats supported : 0x200, 0x103 and 0x102 (through the Settings page) and conversion to the Thor format. Instant filter and search options (example : "map .gat"). File association and context menus integration for .grf, .gpf, .rgz and .thor (through the Settings page). Can rebuild separated images into one file easily. Drag and drop (with the ALT key, can be modified in the Settings page). This is a big part of the software; most of the items can be moved around within the application itself or from/to Windows Explorer. Tools Sprite editor : a simple sprite editor with powerful features. Semi-transparent images can be added, you can easily change the order or replace images, etc. This tool can convert images in the wrong type by showing you multiple solutions (merging a new palette, dithering the image by using current palette, using the closest color, and a few more). Grf validation : allows you to validate a GRF with multiple settings. It can detect corrupted GRF entries, invalid sprites, empty files, non-GRF files, duplicate files and a lot more. Flat maps maker : generates flat maps from .gat and .rsw files. Useful to generate WoE maps or to fasten up the loading time. Patch maker : generates a GRF patch based on two different GRFs. Hash viewer : shows the hash code (both CRC32 and MD5) for files. Image converter : converts an image to any format requested (BMP, PNG, JPG, TGA). GrfCL : used to create batch files (.bat) which can automate tasks on GRF files. See the content in GrfCL.rar in the download for more information. This tool can be customized from the sources as well. Palette recolorer : creates new sprites by changing their colors (this tool is now deprecated). Client database editor : allows modifications of the database client files (txt and lua) with easy and simple tools. Work in progress. Grf encryption The encryption feature has been enabled again. It's similar to what it used to be and it has been tested on client versions ranging from 2012-08-01 to 2014-02-05. Some error messages will be displayed if necessary. If you have an issue, copy the error message (with the code, if there's one) and send me the client executable with the cps.dll file generated by GRF Editor. There shouldn't be compatibility issues anymore though! Thor files Thor files are patches used by Thor Patcher ( http://thor.aeomin.net/ ). Because of their similarity with the GRF file structure, they have been integrated within GRF Editor. The primary utility of this feature is that it allows you to add encrypted files to a Thor patch. All the other options can be achieved by using Thor Maker. You'll find the necessary steps below, but test your patches before sending them off to players (I've done a lot of testing on my end, but better be safe). If you're using SecureGRF, then make a new GRF, add the files and encrypt it. In GRF Editor, open the encrypted GRF you just made, use "Save as" and name the new file with a .thor extension. That's it, if you want to change the output directory, click on the root node of the project and select the tab "Container options". You can select the output mode and the GRF to merge the patch with. Simply save again if you change these properties. If you're using GRF Editor's encryption, then make a new Thor file (File > New > New Thor) and add the files you want to patch it with. Right-click on the files you want to encrypt and use Encryption > Encrypt. Technical stuff Requires .Net Framework 3.5 (SP1) Client Profile to run (3.5 or more will work as well). Automatically converts file name encoding to their proper values (you can change the encoding). Data virtualization is used as much as possible to preview files, meaning the files aren't completely loaded. Right-clicking an item will bring up the available options with that file. Preview file formats : txt, log, xml, lua, lub, bmp, png, tga, jpp, db, ebm, pal, gnd, rsw, gat, rsm, str, spr, act, imf, fna and wav. Services are "crash ready", meaning that you will be warned about a failed operation and no work will be lost (the application won't close and crash). It tries to continue operating even if it meets unsual conditions. Operations can be cancelled by clicking on the button near the progress bar. The warning level can be changed to avoid messages like "Please select a folder first." When prompted with an error, use Ctrl-C to copy the current dialog's content. Some screenshots! 1) Previewing an act file, while showing the search feature 2) Preview of a model file (rsm) 3) Preview of GrfCL with the MakeGrf command 4) Preview of maps 5) Preview of Grf validation 6) Search feature (press Ctrl-F or Ctrl-H to bring up within a text editor) Got a feedback? I'd gladly hear you out and fix issues you have with the program. Submitter Tokei Submitted 01/11/2013 Category GRF Files Video Content Author Tokeiburu  
    1 point
  2. We decided to change "Recent Revisions" to display the GitHub RSS feed instead of SVN because now GitHub is the primary repository (that all developers are committing to). SVN is a now a mirror. If you're looking for a timeline to follow that includes revision numbers, use the urls Euphy mentioned: Trac timeline (revision log, grouped by date) http://trac.rathena.org/timeline Trac log (revision log with full log messages) http://trac.rathena.org/log/rathena/?verbose=on SourceForge's SVN log http://sourceforge.net/p/rathena/svn/HEAD/log/ PS: you can also use a RSS feed reader, and import the RSS Feed links from the bottom of either Trac page.
    1 point
  3. It means exactly what it says. 30545 isn't a valid item ID, so it was skipped.
    1 point
  4. So you'd only get one item from this per lotto ticket? Did you maybe want more? If it's one you could do something like this maybe it's untested but yeah. Although your odds are still only as high as the item you land on... each item you land on would be rather random. Leaving the gap for failure pretty large... setarray .@answers$, "501|10|1", "501|1|5", "501|20|100"; set .@r, rand(getarraysize(.@answers$)); for (set .@i,getarraysize(.@answers$) - 1; .@i > 0;set .@i,.@i-1){ set .@n, rand(.@r,.@i); set .@temp$, .@answers$[.@i]; set .@answers$[.@i], .@answers$[.@n]; set .@answers$[.@n], .@temp$; } explode(.@array$,.@answers$[rand(getarraysize(.@answers$))],"|"); setarray .@array, atoi(.@array$[0]), atoi(.@array$[1]), atoi(.@array$[2]); set .@a, callfunc("package_func",.@array[0],.@array[1],.@array[2]); if(.@a) { if(atoi(.@array[2])<=10) announce strcharinfo(0)+" got "+.@array[1]+" "+getitemname(.@array[0])+" at "+.@array[2]+"%",bc_yellow|bc_all; mes "Wow you got "+.@array[1]+" "+getitemname(.@array[0])+"(s)"; close; } mes "Aww, better luck next time!"; close; function script package_func { set .@len, getargcount()-((getarg(getargcount()-1)>=2000000)?1:0); set .@id, ((getarg(getargcount()-1)>=2000000)?getarg(getargcount()-1):getcharid(3)); while(set(.@i,.@i+3)-3<.@len) if(rand(101)<=getarg(.@i-1)) getitem(set(@package_item[.@a++-1],getarg(.@i-3)),set(@package_amount[.@a-1],getarg(.@i-2)),.@id); return .@a; }
    1 point
  5. The rand() command is only so random... So to increase randomization you can shuffle the values. This can be done through an array. Example... // Randomize Answer Order set .@r, rand(0,getarraysize(.@answers$)-1); for (set .@i,getarraysize(.@answers$) - 1; .@i > 0;set .@i,.@i-1){ set .@n, rand(.@r,.@i); set .@temp$, .@answers$[.@i]; set .@answers$[.@i], .@answers$[.@n]; set .@answers$[.@n], .@temp$; } You could try a function I made awhile ago although I doubt the randomization of it. /// callfunc("package_func",<itemid>,<amount>,<chance>{,<itemid>,<amount>,<chance>{,<itemid>,<amount>,<chance>{,...},<accountid>}}) function script package_func { set .@len, getargcount()-((getarg(getargcount()-1)>=2000000)?1:0); set .@id, ((getarg(getargcount()-1)>=2000000)?getarg(getargcount()-1):getcharid(3)); while(set(.@i,.@i+3)-3<.@len) if(rand(101)<=getarg(.@i-1)) getitem(set(@package_item[.@a++-1],getarg(.@i-3)),set(@package_amount[.@a-1],getarg(.@i-2)),.@id); return .@a; } Works for rAthena/Hercules.
    1 point
  6. Hi Cold, They removed the *_sql at the end of map/char/login, so try running "login-server" instead.
    1 point
  7. The problem is you're selecting more columns than you assign to variables. For example query_sql("SELECT `account_id`, `name` FROM `char`", .@ids, .@names$); would not produce a warning, but query_sql("SELECT `account_id`, `name` FROM `char`", .@ids); will produce a warning as the number of variables does not match the number of columns selected.
    1 point
  8. They've been in correctly in sync for a few weeks now, and you can check revisions by clicking the "Timeline" link under "SVN".
    1 point
  9. Meu caro, primeiramente recomendo que saiba no minimo programar em C/C++. Se você soubesse isso, não acredito que estaria tendo problemas para montar um simples servidor de ragnarok. Não precisa ser um 'expert', mas deve saber o minimo possível. PS: Não estou dizendo que alguem que não saiba ao menos programar em C/C++ não consiga montar um servidor. No entanto um servidor de qualidade, nesse caso já tenho minhas dúvidas. Basicamente os passos serão o seguintes, caso esteja usando windows claro: ( Se você usasse linux, com certeza não estaria perguntando isso :-) ). 1. Baixar uma versão SVN do rAthena. Ex.: Use o TortoiseSVN e coloque o link do svn do rAthena. Espere baixar. 2. Instalar alguma versão do Microsoft Visual Studio para C/C++ (de preferência a 2012). 3. Decidir qual o cliente irá usar. Por que? Vários motivos, questão de gosto, facilidade para encontrar soluções de problemas e até mesmo estabilidade. Algo que percebi é que clientes após 2011-12-28a usam um novo sistema para criação de personagens, que é uma tremenda dor de cabeça para arrumar, por que você terá que fazer alterações no código fonte, e não são alterações simples. Então recomendo o cliente 2011-12-28a. 4. Executar as alterações necessárias no código fonte do servidor (rAthena). Ex. de alterações: mmo.h #define PACKETVER 20111228 map.h #define MAX_LEVEL 999 #define MAX_ZENY 2000000000 #define MAX_STORAGE 999 ... dentre diversas outras que serão necessárias para as configurações que você deseja usar. Uma que é extremamente importante para as novas versões é a edição do pacote máximo usado pelo servidor. clif.h o original tem: enum {// packet DB MAX_PACKET_DB = 0xA00, MAX_PACKET_VER = 30, MAX_PACKET_POS = 20, }; recomendo alterar para: enum {// packet DB MAX_PACKET_DB = 0xA70, MAX_PACKET_VER = 50, MAX_PACKET_POS = 20, }; 5. Após executar toda a confiração do servidor, no que diz respeito aos fontes, compile. 6. Diffe seu hexed. Se não sabe como fazer isso, de uma pesquisada, existem inumeros tópicos por ai sobre isto. 7. Mote sua pasta data. A pasta DATA deverá ter tudo que é necessário para o correto funcionamento do seu servidor. Uma forma que eu recomando é utilizar a versão mais atual do DATA.GRF que seus jogadores irão utilizar. Por ex. a versão mais atualizada do DATA.GRF do BRO. Para montar sua pasta DATA você irá precisar: GRF Builder (pode ser baixado no ratemyserver.net) GRF Factory (idem) Editor de texto descente (recomendo o TextPad) Use o GRF Builder para extrair do proprio DATA.GRF os seguintes arquivos: todos terminados em txt (coloque *.txt na caixa de pesquisa) todos terminados em xml (*.xml) coloque na pequisa 'lua files' e extraia tudo que for encontrado. se você quiser alterar ou ter em sua DATA os arquivos referentes as telas de login, criação de personagens e itens customizados, tera que extrair um pouco mais de arquivos para obter a árvore de diretório corretas. Caso não queira ficar extraindo partes por partes, extraia o arquivo DATA.GRF todo (isso irá demorar) e depois vá apagando o que considera inútil, por exemplo as pastas que contem imagens de mapas, de cartas, etc. Uma pasta extremamente importante atualmente é a que contem os arquivos LUA/LUB de dados/configurações do cliente. Como eu disse antes, você irá extrair todos os arquivos LUB, por exemplo, do DATA.GRF do BRO. Isso é importante porque ele irá fornecer arquivos que contém por exemplo, as descrições e nomes da habilidades no idioma que você deseja que seu cliente execute. No caso do informado acima, todas as habilidades e seus nomes estarão em PT-BR. (pasta skillinfoz) PS.: o lubs do BRO vem com um arquivo chamado 'msgstring_br.lub', recomendo que criar uma copia dele e renomea-lo para: msgstring_kr.lub No entanto você não irá usar todos. Irá depender da versão do seu cliente e principalmente de quais custumizações você deseja fazer. Caso queria fazer customizações de itens, como por exemplo adicionar novos 'hats', deverá usar a pasta 'datainfo' original para seu cliente em formato LUA (.lua) para fazer isso. accessoryid.lua -> contem o "VIEW ID" dos itens para cabeça; accname.lua -> contém o nome do arquivo SPR e ACT para monstrar o item no personagem do jogador.; npcidentity.lua -> usado para adicionar monstros personalizados; dentre outros. Após fazer as inclusões/alterações necessárias, é altamente recomendado que você compile todos os seus ".LUA" para ".LUB". No link abaixo você terá tudo que é necessário para o novo modelo de dados usado pelos clientes, que a cada dia que passa, vem abandonando cada vez mais os antigos arquivos ".txt". http://svn6.assembla...de/Lua_Project/ Lembre-se que novos clientes usam agora uma pasta chamada "System" e uma chamada "saveData". No link acima você tem os luas necessários para a pasta System, mas deverá compila-los para que funcionem corretamente. Essa pasta é necessária para o novo 'setup' (aplicativo de confurações do rag) que a partir da versão 2011-06-10 (se não me engano) está diferente. Ele não usa mais informações inseridas no registro do windows (já era hora). 8. Conforme for montando sua pasta DATA, vá abrindo seu hexed e conferindo quais erros ele informa e ir corrigindo-os, adicionando ou conferindo os arquivos das quais ele aponta erros. Para que isso sejá possível, na hora de 'diffar' você não podera escolher opções como 'ignore missing files', etc. 9. Agora você deve editar as confiurações do seu servidor. Essa configuração fica na pasta 'conf' do emulador. Você deve alterar inclusive as configurações do inter_eathena.conf, onde fica as confirações para conexão com o banco de dados. Sobre o banco, não irei informa nada. Acredito que isso você já sabe algo. Se não, recomendo pesquisar. 10. Outra alteração importante é adicionar as descrições de pacotes no seu 'packet_db.txt'. No link abaixo tem tudo que você irá precisar para diffar e montar seu hexed em conformidade com o seu emulador. Inclusive contém uma pasta com vários packet_db, contém todos os luas necessários para cada versão de cliente dentre outras coisas. http://svn6.assembla...svn/ClientSide/ Basicamente você terá que copiar o conteúdo do packet_db correspondente ao seu cliente e colar ao final do packet_db.txt do rAthena. Lembre-se de mudar o packet_version para 'default'. Caso use o cliente 2011-12-28a, o packet_db é esse: http://svn6.assembla...28aRagexeRE.txt 11. Daqui para frente serão configurações mais personalizadas, como por exemplo, a inclusão/exclusão de itens personalizados/originais, novos monstros, novos mapas, etc. Essas alterações ficam por sua conta. Qualquer dúvida, tentarei ajudar na medida do possível. Att, Etherion.
    1 point
  10. Good job! Is great to see that other people contribute their work based on official servers. We need more people like that.
    1 point
×
×
  • Create New...