Leaderboard
Popular Content
Showing content with the highest reputation on 06/16/14 in all areas
-
View File GRF Editor Hello everyone, GRF Editor is an open-source tool for editing GRF files (https://github.com/Tokeiburu/GRFEditor). It offers a wide variety of features and customizations. The software is very stable and responsive, it can handle large operations without lagging your computer. 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 format. Clean and very interactive interface. Saving formats supported : 0x300, 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. If drag and drop does not work, it is most likely because you've started the program using administrator privileges. GRF Editor does not requires administrator privileges to run. Tools 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. 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 2024-01-01. 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 ( https://github.com/rathena/rathena/wiki/Thor-Patcher ). 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 Edit > Edit Grf/Thor settings. 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 4.0 to run (4.0 or more will work as well). Automatically converts file name encoding to the currently selected encoding (you can change the encoding in the Settings page). 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, bson, csv, ezv 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 or rsm2) 3) Preview of GrfCL 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/13 Category GRF Files Video Content Author Tokeiburu1 point
-
LessGRF What? LessGRF (LGRF) is an extension to the GRF format which adds a new algorithm for file compression. Normally the GRF will compress files using the DEFLATE algorithm which is the compression method typically used in ZIP files, but LessGRF adds the LZMA algorithm as an option. Why? Ragnarok's GRF files can get quite big. Back in the days the game data used to take up a few hundred megabytes, but today the GRF archives are about 2GB and contain tens of thousands of files. Since the data is starting to get pretty big it's possible to save quite a bit of space simply by re-compressing the game files with a more efficient algorithm. In my test on a full data.grf the file was reduced to about 60% of its former size. Maybe someone will find it useful if they want to make a mini client or something? Honestly, this was just a little experiment I did out of curiosity. How? Two simple steps are all that's necessary to use the LGRF format. First, download this file. 1. Installation To upgrade your client, replace the cps.dll in your Ragnarok folder with the one from the download. (Make a backup of the old DLL file first.) 2. Recompression Extract GRFCrush.exe somewhere. Run it from command line or just drag and drop your GRF file onto it. It will generate a new GRF file which you can use instead of the old one. The recompression process will likely take about 20 minutes on a moderately powerful computer. Q&A Q: Since the compression rate is better, will files load slower? A: I've not notice any different in map load times. LZMA is more expensive to decompress, but modern processors are so fast the load time might just as well be reduced since less data has to be read from the hard disk. Q: Can I use both GRF files and LGRF files at the same time? A: Yes. The new cps.dll supports the old GRF compression as well. You can mix LGRF and GRF Q: Can patchers or GRF tools update LGRF archives? A: Very likely, but only if they don't attempt to decode the data in the process. Q: Can current GRF tools extract files from LGRF archives? A: No. Q: ...Does that mean it can also be used for GRF protection? A: I wouldn't recommend it. (That being said I guess this is no less "secure" than GRF protectors like SecureGRF.) Q: Are there any penalties involved with using this format? A: Incompatibility with GRF extractors is currently the only thing I've been able to think of. Let me know if you notice something else.1 point
-
how can i disable the hp bars? Solved Thanks Mootie and RyotoRyo How? look for this at clif.c then comment/remove == post #4 void clif_monster_hp_bar( struct mob_data* md, int fd ) { #if PACKETVER >= 20120404 WFIFOHEAD(fd,packet_len(0x977)); WFIFOW(fd,0) = 0x977; WFIFOL(fd,2) = md->bl.id; WFIFOL(fd,6) = md->status.hp; WFIFOL(fd,10) = md->status.max_hp; WFIFOSET(fd,packet_len(0x977)); #endif } next look for this still at clif.c then comment #if PACKETVER >= 20120404 if( !(md->status.mode&MD_BOSS) ){ int i; for(i = 0; i < DAMAGELOG_SIZE; i++)// must show hp bar to all char who already hit the mob. if( md->dmglog[i].id == sd->status.char_id ) //clif_monster_hp_bar(md, sd->fd); } #endif then look for this at mob.c then comment #if PACKETVER >= 20120404 if( !(md->status.mode&MD_BOSS) ){ int i; for(i = 0; i < DAMAGELOG_SIZE; i++){ // must show hp bar to all char who already hit the mob. struct map_session_data *sd = map_charid2sd(md->dmglog[i].id); if( sd && check_distance_bl(&md->bl, &sd->bl, AREA_SIZE) ) // check if in range clif_monster_hp_bar(md, sd->fd); } } #endif save then recompile.1 point
-
Item Bound System r17351 adds in a new feature which allows characters to have specific items bounded to their account, guild, or party. Suggestion topic: http://rathena.org/board/topic/70372-item-account-bound-proposal/ Features: Items can be bounded 3 different ways. New script commands 'getitembound' and 'getitembound2' creates bounded items. New script command 'countbound' counts number of bounded items, also placing them automatically into an array. New at commands @itembound and @itembound2 used to create bounded items on the fly. Account bound items can be stored in account storage and in cart. Guild bound items can be stored in guild storage and traded to other guild members.When a character leaves or is expelled from the guild, these bounded items are automatically returned to guild storage. Party bound items cannot be stored but only traded to other party members. These are temporary and will be deleted on party deletion or when leaving the party. Credits to Xantara for the initial diff and Lighta for helping with the guild bound system. Please report all issues/bugs in the proper bug report section. Don't forget to update your SQL tables with upgrade_svn17351.sql!1 point
-
Script: Poring's Blessing Ver: 1.0 Idioma: Coreano (Official Korean Text) Scripter: Ziu Requisitos: Nivel base 1 hasta un máximo de 10 (sólo para novices). Lo pongo en la sección de español porque no existe sección de scripts en coreano. Los textos son los oficiales del servidor baphomet kRO. Solo teneis que traducirlos y añadirlos al script quién quiera. NoTa: Todos los NPC's se aplican a todos los mapas duplicados de izlude © pero no merece la pena duplicarlos mientras kisuka no liberé el script de izlude novice training. Download Script: Poring's Blessing Rev 1.01 point
-
server owners are still: using phpmyadmin. allowing remote root logins and using root/superuser level access on everything. using no firewalls You know it to be true. I know from seeing it myself it is true.1 point
-
Replace your Char_Athena with userid: root passwd: teste // Server name, use alternative character such as ASCII 160 for spaces. // NOTE: Do not use spaces or any of these characters which are not allowed in // Windows filenames \/:*?"<>| // ... or else guild emblems won't work client-side! server_name: Ragnarok Teste // Wisp name for server: used to send wisp from server to players (between 4 to 23 characters) wisp_server_name: Teste-RO // Login Server IP // The character server connects to the login server using this IP address. // NOTE: This is useful when you are running behind a firewall or are on // a machine with multiple interfaces. login_ip: 127.0.0.1 // The character server listens on the interface with this IP address. // NOTE: This allows you to run multiple servers on multiple interfaces // while using the same ports for each server. //bind_ip: 127.0.0.1 // Login Server Port login_port: 6900 // Character Server IP // The IP address which clients will use to connect. // Set this to what your server's public IP address is. char_ip: 189.1.164.194 // Character Server Port char_port: 6121 Replace your Map_Athena with userid: root passwd: teste // Character Server IP // The map server connects to the character server using this IP address. // NOTE: This is useful when you are running behind a firewall or are on // a machine with multiple interfaces. char_ip: 189.1.164.194 // The map server listens on the interface with this IP address. // NOTE: This allows you to run multiple servers on multiple interfaces // while using the same ports for each server. //bind_ip: 127.0.0.1 // Character Server Port char_port: 6121 // Map Server IP // The IP address which clients will use to connect. // Set this to what your server's public IP address is. map_ip: 127.0.0.1 // Map Server Port map_port: 5121 Check this - http://rathena.org/board/topic/94785-failed-to-connect-to-server/?p=254378 EDIT: Solved already? Gratz!1 point
-
1. try to use 127.0.0.1 everywhere... u should modify it only when u want to play with friends online 2. did you port forwarded? (somewhy it solve this problem(yea i know that it works only online but sometime it solves it) 3 in inter_athena.conf u added "ragnarok" to the "log_db_db." it usually an individual database that u generate in the mysql server called "log" or "logs". check it out. 4 u should use 127.0.0.1 in clientinfo.xml too.... maybe thats why u have to portforward... so try theese... and good luck =) if it still doesnt work look up eAthena.ws's server making guide: http://eathena.ws/wiki/index.php/Main_Page it worked for me1 point
-
so looks the oktoberfest but not out , the map is from Harry Potter xD adde a attraction z.b roller coaster etc. and mice around the tents and npc lying on the ground xD and Breast Girls1 point
-
• FontColor=$000000 •Color of the text. Change $000000 to $FFFFFF http://rathena.org/wiki/Thor_Patcher#.5BLabel:Status.5D Not sure about how to add Patch Complete though.1 point
-
http://rathena.org/board/topic/93814-whitesmith-weapon-refine-skill/1 point
-
I find better to learn how to install a server by yourself and hire a real hosting company. These guys are just individuals, with no real terms or disclaimers to keep on the line. With that being said, I've noticed that a lot of people that offers paid services, tends to show an exagerated "professional" presentation of theirselves. Even so, lying, when they refer as a group and they talk in terms of -plural- (like saying, -we- instead of -me-) I'm sure they could lie to even say, that they run an office of their "professional" business. I don't find why people has to lie to show a professional service. You can say, they are scamming you already by doing that.1 point
-
Kind of relieved that I wasn't the only one who's been treated like that, I thought he was just racist about pinoys, turns out he was rude to everyone.1 point
-
its obviously unprofessional. the way he manage his customer and for missing in action while his customers is looking for news or updates regarding on his hosting.1 point
-
Name : Frog_Hat Categorie : Upper Headgear File Size: 327 KB Author: Gravity Download : Hat - Frog_Hat [ToZorMan].zip Link : www.green-peach.net ----------------------------------------------------------------- Name : Merman_Ale Game : Trickster Online File Size: 672 KB Author: ToZorMan Download : Mob - Merman_Ale [ToZorMan].zip Link : www.green-peach.net ----------------------------------------------------------------- Name : Pinguicula Game : Ragnarok Online File Size: 764 KB Author: Gravity Download : Mob - Pinguicula [ToZorMan].zip Link : www.green-peach.net1 point
-
Thank you =D Name : Fire_Moth Game : Trickster Online File Size: 539 KB Author: ToZorMan Download : Mob - Fire_Moth [ToZorMan].zip Link : www.green-peach.net ----------------------------------------------------------------- Name : Baphomet Game : Ragnarok Online File Size: 1321 KB Author: Gravity Download : Mob - Baphomet [ToZorMan].zip Link : www.green-peach.net ----------------------------------------------------------------- Name : Beer_Hat Categorie : Upper Headgear File Size: 330 KB Author: Gravity Download : Hat - Beer_Hat [ToZorMan].zip Link : www.green-peach.net1 point
-
I have a Test Breaker Script and i dont own this zhakastia,82,69,5 script Emperium Breaker 743,{ // What Map will be used set .Map$,"job3_arch01"; // How many Top Breaker will be Recorded set .TopRank,10; // Message to Inform Players while inside the Room setarray .Instruction$[0], "Please Listen here carefully.", "This is Emperium Breaker Test Room , which is use to test your Breaking Time.", "Prepare youself...and do your best to Break it...", "Okay that's All i want to say , get Ready yourself and it will Start Soon."; while( 1 ){ mes "This is Emperium Breaker test Room. "; mes "You are able to calculate your Emperium Breaking Speed in this Room."; next; switch( select( ( getmapusers( .Map$ ) )?"^FF0000NOT Available":"^0000FFAvailable^000000", "Top ^FF0000"+.TopRank+"^000000 Breaker Ladder", ( getgmlevel() < 90 )?"":"^FF0000[GM]^000000 Reset Room", ( getgmlevel() < 90 )?"":"^FF0000[GM]^000000 Reset Ladder" )){ Case 1: if( getmapusers( .Map$ ) ){ mes "There is another player inside it now."; next; break; } warp .Map$,0,0; killmonster .Map$,"All"; // removemapflag .Map$,mf_noskill; donpcevent strnpcinfo(0)+"::OnReady"; end; Case 2: mes "^ED1ADCLatest Record^000000 : "+LatestRecord/1000+"."+LatestRecord%1000+" Seconds."; for( set .@i,0; .@i < .TopRank; set .@i,.@i + 1 ){ if( !$TopRankTime[.@i] ) break; mes "^FF0000Top "+( .@i + 1 )+" : ^0000FF"+$TopName$[.@i]+" "; mes "^FF0000Time Taken : ^ED1ADC[ "+$TopRankTime[.@i]/1000+"."+$TopRankTime[.@i]%1000+" Sec. ]^000000 "; } next; break; Case 3: mapannounce .Map$,"A GM has RESET the Breaker Test Room.",0,0x00FF00; killmonster .Map$,"All"; sleep2 3000; mapwarp .Map$,"prontera",156,175; mes "Done Reset. and Player who are inside are warped out."; next; break; Case 4: switch( select( "^0000FFAll Player^000000:^FF0000One Player^000000" ) ){ Case 1: deletearray $TopRankTime[0],getarraysize( $TopRankTime ); deletearray $TopName$[0],getarraysize( $TopName$ ); mes "RESETED WHOLE LADDER."; break; Case 2: mes "Please input the ^FF0000EXACT NAME^000000 of player you want to delete."; input .Name$; for( set .@i,0; .@i < .TopRank; set .@i,.@i + 1 ){ if( .Name$ == $TopName$[.@i] ){ deletearray $TopName$[.@i],1; deletearray $TopRankTime[.@i],1; mes "Removed ^FF0000"+.Name$+"^000000 from the List."; } } } next; break; } } OnReady: sleep2 3000; for( set .@i,0; .@i < getarraysize( .Instruction$ ); set .@i,.@i + 1 ){ mapannounce .Map$,.Instruction$[.@i],0,0x00FF00; sleep2 2500; } for( set .@i,5; .@i > 0; set .@i,.@i - 1 ){ mapannounce .Map$,"Count Down : "+.@i+" Seconds.",0,0x00FF00; sleep2 1000; } //mapannounce .Map$,"Hit the Emperium Now and Skills Disabled.",0,0x00FF00; setmapflag .Map$,mf_noskill; monster .Map$,29,27,"Breaker Test",1288,1,strnpcinfo(0)+"::OnBreaked"; set .Record,0; sleep2 500; initnpctimer; end; OnTimer600000: if( !mobcount( .Map$,strnpcinfo(0)+"::OnBreaked" ) ) end; mapannounce .Map$,"You spent too much time. i think you are AFK , so you are out.",0,0xED1ADC; sleep2 3000; mapwarp .Map$,"prontera",156,175; stopnpctimer; end; OnBreaked: set .Time,getnpctimer(0); copyarray .@tempName$[0],$TopName$[0],getarraysize( $TopName$ ); copyarray .@tempRecord[0],$TopRankTime[0],getarraysize( $TopRankTime[0] ); set LatestRecord,.Time; for( set .@i,0; .@i < .TopRank; set .@i,.@i + 1 ){ if( .Time < $TopRankTime[.@i] || !$TopRankTime[.@i] ){ set $TopRankTime[.@i],.Time; set $TopName$[.@i],strcharinfo(0); copyarray $TopRankTime[.@i + 1],.@tempRecord[0],getarraysize( .@tempRecord ); copyarray $TopName$[.@i + 1],.@tempName$[0],getarraysize( .@tempName$ ); announce "[ "+strcharinfo(0)+" ] Achieved Top "+( .@i + 1 )+" in Emperium Breaking with "+.Time/1000+"."+.Time%1000+" Seconds !!!",bc_all,0xED1ADC; break; } } stopnpctimer; announce "Current Time Taken : "+.Time/1000+"."+.Time%1000+" Seconds. ",bc_self,0xED1ADC; // removemapflag .Map$,mf_noskill; sleep2 5000; mapwarp .Map$,"prontera",156,175; end; } job3_arch01 mapflag nocommand 50 job3_arch01 mapflag gvg on job3_arch01 mapflag gvg_castle job3_arch01 mapflag monster_noteleport job3_arch01 mapflag nosave SavePoint1 point