Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/12/14 in all areas

  1. Euphy's Scripts Disclaimer You may use, modify, and host all of my released scripts. You may not sell them, re-release them in any way (modified or otherwise), or remove the credits. < Event Manager > < Hunting Missions > < Queue System > < Euphy's WOE Controller > < All-In-One NPC > < Euphy's Quest Shop > < Euphy's Warper > < Item Rewards > < Custom Currency Multi-Shop > < Build Manager + > < Class Mastery System > < Class Specialization > < Badge System > < Guarantee Refine Ticket > < Item Fusion > < Euphy's MVP Ladder > < Card Trader > < NPC Duplicate Generator > < Auto-Potion >
    1 point
  2. I make a continuation of this topic this topic mainly concern about unpopular but useful scripting techniques ... should wiki this up someday Randomize item reward Method 1: use F_Rand function. Method 2: use temporary variables. Method 3: use array. Method 1: use F_Rand function Method 2: use temporary variables Method 3: use array sigh ... I seriously need someone to make the english better, my explanation always sux any staff member here feels like can make this topic better, please do so
    1 point
  3. -[Client Hexing Tutorial by nkwz*]- Hi! This is a tutorial for those who are interested in learning how to edit your client.exe from beginning. This tutorial will be divided into several topics: 1. Introduction 2. Basic Knowledge 3. Tools 4. Client Editing 5. Help the rA Community! 6. Credits I want to share my knowledge about client hexing, and I'd like to make this project as an rA Community Project. It's better to have more people joining this project, because it needs lots of effort for making a fully translated client. Suggestion and questions are always welcomed, and sorry for my poor English 1. INTRODUCTION rAthena is one of the popular Ragnarok Online emulator, some of you maybe already know about other emulators such as eAthena or 3CeAM. In order to play RO, we need something named as server and client. rA, eA and the others are Server. kRO, Miruku and the others are Client. Actually you can find another custom client package, just search throughout this forum and you'll find some. Most of rA codes based from kRO, not iRO. And that's why some of the original client (not hexed yet) comes with lots of Korean words hardcoded inside them, although some part of it is already translated into English but we still need to convert Korean letters into Latin first. I recommend to translate the client from Korean into English first, because it'll be easier if you want to translate your own client.exe into your native language later. 2. BASIC KNOWLEDGE 2a. Numeral System In our daily life we use a "Base 10" numeral system, called as Decimal. It goes from 0,1,2,3....10,11,12.... But in programming world, there's also other numerical bases such as: Binary (Base 2), Octal (Base 8), Hexadecimal (Base 16). In Decimal, we count from 0-9, when we add another 1 into 9, the result is 10. In Binary, it only have 2 numbers, 1 and 0. 1 Decimal = 1 Binary, 2 Decimal = 10 Binary. 3 --> 11, 4 --> 100, 5 --> 101, 6 --> 110, 7 --> 111, 8 --> 1000. In Octal is the same, they only have 0-7, there is no '8' in this numeral system. What about Hex? It's Base 16 right? How many numbers do they have in this numeral system? Of course 16. But what to come after 10? Hex has a special case, because Hex borrows 10 numbers from Decimal (That is 0-9) and also borrows 6 letters from Latin (A-F). So if you add 1 into 9, it doesn't become 10, instead it will becomes A. 0,1,2,3.....9,10,A,B,C... What to expect if you add 1 into F? Guess what, it becomes 10! So, 9 Decimal --> 9 Hex, 10 --> A, 15 --> F, 16 --> 10, 50 --> 32, 100 --> 64. That's why they are called as "Base x", x means how many numbers they have in their numeral system. 2b. File Structure This topic isn't necessary though, but I just want to help you to understand how executable file works. There are numerous of file types in nowadays computing world, starting with the widely known txt, mp3, avi, jpg, bmp, xls, exe. This time, what we need to know is only about exe files. In Windows, almost all of applications are 'exe' files. Coders/Developers write out codes in either Low Level Language or High Level one, and after that the codes are compiled into something that we (computer user) could use without knowing anything about programming language. When the exe file is being compiled, it also store something which called as "Header" in it's beginning lines. Different compiler generates different header too. One of the header contains filesize checksum, so that's why we can't edit exe file freely as we want to, because if we're not aware about this problem, our exe file won't work at all... 2c. Hardcode vs Softcode What on earth is that? Hardcode means the code is read from the file itself. So if we want to alter the code, we need some special tools. The case is different for some codes (that some people prefer to call as 'Softcode'), those type of code can be altered because the exe file reads them from outside of the file, the notable example is 'msgstringtable.txt', when you alter the word in that file, you can see the changes when you run your client.exe So when next time someone replied in a post "It's hardcoded in the client", you know exactly what it means 3. TOOLS If we want to edit our client.exe we need some tools, such as: - Hex Editor (Obviously ;P) - Text Processor (I use Notepad++ [set encoding to UTF-8]) - Calculator (Optional) - nkwz rA Toolkit --> http://rathena.org/b...kwz-ra-toolkit/ - Charmap.exe (Can be found in every PC that uses Windows) You can get those tools in the internet. Freeware is okay too.. 4. CLIENT EDITING Phew... After reading those exhausting topics, here we are.. (Afterall I guess that's why you're reading up to this point). First, get some 2012 client.exe. For example here, I use '2012-04-10aRagexeRE.exe', any 2012 version will do, as long as the client developer doesn't change the file structure (>_<') Then open your client.exe in hex editor, you'll notice 3 sections. The leftmost part is called Offset, the middle part is Hex stream/data, the right part is ASCII data. Offset is like a location pointer, and they're increasing if we scroll down. Still remember about Hex numeral system on previous topic? Well.. here they are, the heart of every exe files, hex! The right part is just a translated code from hex into Latin characters, so some of the data can be more understandable to human eye. The problem is the client.exe comes from Korean developers, so they use their native language, Koreans! That's a nightmare for those who doesn't live in Korea... (Yes it is! ) But if the developer creates an English version, then why am I writing this tutorial? Anyway back to the topic... Hmm.. Make a copy of your client.exe, open one client.exe in hex editor, and run the other one. After you login with correct username and password, there's the Char Selection window, go create a new char. Look, our first Korean word has appeared! If you hasn't install the Korean Language pack, you'll see this "Äɸ¯Å͸¸µé±â" (Note: I uninstall my Korean Language pack in order to see those letters). Open charmap.exe, use Arial font (or another font if you want), and find that strange letters one by one. (I know this is exhausting, that's why I want to make this project as a Community Project). After you double click each letter found in charmap, you should have all (or some) of the strange letters, well this part is a little tricky because your eye have to be good to see the correct letter, if you picked a wrong letter in charmap, then your conversion process won't be a success. After you collect the letters in charmap, then open 'nkwz rA Toolkit.exe', and you'll see 2 boxes, one is Input Hex, and the other is Input Latin. Paste the letters into 'Input Latin' and voila! You have those secret codes showing in Output Hex! Äɸ¯Å͸¸µé±â --> C4C9B8AFC5CD20B8B8B5E9B1E2 Then go back to your hex editor, search for 'C4C9B8AFC5CD20B8B8B5E9B1E2' (or some part of it), and if you're lucky, then you'll find the position, if not then you'll need to meet an Arch Bishop and request Gloria for Luk+30... Please note that some hex editor can't highlight all of the code even when it's found, so you'll have to see carefully. Look at the nkwz rA Toolkit, at the bottom of the program I also have write a simple line about how many chars that has been converted in the process. Then think about some name that would fit in the game, in http://rathena.org/b...r-2012-clients/ Razor X and Judas picked 'Create Player'. Back at the nkwz rA Toolkit, type Create Player in the Input Latin, and voila again! Suddenly some magical numbers appeared in Output Hex! Important: Look at the bottom part, 'Latin: 13 char'. Make sure you use same amount of chars as the replacement! If you plan to use other name that is shorter that the original, just add some space to the end at Input Latin, so the char amount is the same like hex chars. The next thing after your convert 'Create Player' or 'Create a Char' into hex, let's go back at the hex editor and edit the value according to the generated value in nkwz rA Toolkit in Output Hex. After that, save it and run the file to see if your changes has been made correctly into the client.exe Congratulations! Now you can make your own 2012 client.exe.. ^________^ And that's a wrap! 5. HELP THE rA COMMUNITY! As like I said earlier in this tutorial, I'd like to make this as a Community Project. How to join? Just post a decent and readable screenshot of Korean garbled letters, and also the location of the window/skill/item/chat window info so it's easy to find it in the game, then help us to find the letter in charmap.exe and paste it here, just follow the example post. After that, think of a good name as the replacement (in English please) If you can't think about it now, don't worry, someone may have a good name for it. 6. CREDITS This tutorial is written by me, after I read this post --> http://rathena.org/b...r-2012-clients/ I got inspired to write this tutorial. I wrote down the codes which floating in my head last night, and that's how 'nkwz rA Toolkit' was made. Umm.. I compress the exe file with UPX, and some antivirus app doesn't like a file with UPX compression D: Thanks to Razor X for his inspiring post Thanks to Utada Hikaru, Ayumi Hamasaki and also Winamp! ^^ You can call me as nkwz* too, and btw I don't have any Twitter/Facebook account ;P Thanks for reading this tutorial and let's add more power to rA! Example: Image: Location: Login --> Create a new char Korean: Äɸ¯ÅÍ ¸¸µé±â Hex code: C4C9B8AFC5CD20B8B8B5E9B1E2 English Suggestion: Create Player / Create a Char
    1 point
  4. Sage's Awesome Map Package 1.0 Sup homies! I won't bore you all with some unnecessary convoluted introduction, so we go: This is a package of some of my better work, mostly made over the course of the last year and a half or so. This is not everything I have ever mapped: The maps in this package are mostly just the ones I've finished that are functional and do not possess incredibad errors or problems. What you'll get: 7 Towns: Port Aquitaine, Carnivale, Dorado Harbor, Tortuga Bay, North & South New Alberta, and Zhunan. 2 Ancient ruins maps: The swampy city of Lafayette, or the bright and open Lumina. Several fields for Aquitaine, a satellite village for Dorado. Several interiors for Aquitaine, Dorado, Lumina and Zhunan. Dungeon maps for Lumina and Tortuga. A badass airship somewhere in there. It's crazy big. In total, there are over 20 maps here, of rather good quality. This map release is by no means perfect. I will be open and honest about this. Flaws you can expect: Not every town has interior maps, and those that do, do not always have many. I may or may not add more in the future. Not every town has field maps. I will definitely add more fields in the future. This package currently lacks a data file to organize warps/exits between maps. One will be added in future releases. Mini-maps will also be included in a future release. Sorry! Why this release is still awesome: It's completely free. I am not charging for this release, nor do I plan to charge for future releases. The only credit I ask for is that you link back to this forum thread and mention my name. Just 'Sage' is fine. You have my permission to modify and tinker with these maps to your heart's content. They're yours to do with as you please: That said, do still give credit for using them as a starting point. I will add to this in the future, as I've many half-finished projects and new things in the works, including fields, dungeons, interiors, and the like which will augment the maps currently available. Some of these maps use objects from the recently released town of Verus. I highly recommend you keep your kRO client up to date, or else some of these maps will have missing objects and textures. Additional notes, because I love making lists: Do not ask me to map for your server. I will say no. That said, if there is something in this map package you like and want more of (ie, "More Dorado fields, please!") then feel free to comment and I will consider working on it. If you find any functional errors on these maps (such as objects you can walk through because I messed up the GAT,) then don't hesitate to comment about it in this thread. Even if it is something you can easily fix yourself, this allows me to save others the trouble in future releases. I am not asking for money for this release, but if you really want to make a donation, then drop me a forum PM and we can talk from there. Previews of Maps: Previously posted Showcase threads: http://rathena.org/board/topic/78212-showcase-el-dorado-harbor/ http://rathena.org/board/topic/73564-showcase-the-swamp-city-of-aquitaine I'll add more previews shortly. Download: Aren't I Nice? Enjoy. <3
    1 point
  5. Hello rA, We decided to release our old flux cp that's worth 40-50$ (design+coded). Hope this helps the developers to start on their own customization (For all who bought this before, Thanks for the support. This is released for good) Thanks for all the support! Good Luck and Enjoy! Note : Feel Free to rate the CP from 1-10. Links : http://rathena.org/board/files/file/3111-dark-ice-castle-flux-cp-theme-pre-re/
    1 point
  6. 8/21: Sup all! hope you like my releases Note: No 3ceam patches for now. Please convert them by manually looking at the whole patch file. changelog: 8/15 original script [no patch file] 8/16 8/17 8/21 credits to Lighta for methods of improvements My MODS: [0] Read Custom Conf Framework Description: This is a prerequisite to all of my mods. allows reading of conf/custom.conf upon runtime. download: custom framework.zip Instructions: [1]EDP+SL MOD Description: A Mod for enabling/disabling EDP+SL via conf/custom.conf download: sl + edp.patch download: additional.patch Instructions: screenshots: [2]GUILD MOD: Description: A Mod for adjusting Min/Max/GuildExtension Guild options via conf/custom.conf download: guild mod.patch Instructions: screenshots: [3]HARDCORE MODE: Description: A Mod similar to the Diablo's HARDCORE Mode mechanics. In this Mod, you will be teleported to a certain pvp map if you die, you'll get [HC] tag in your name if you choose to be a hardcore char, @hardcoreon/@hardcoreoff commands, and script functions f_hardcoreon/f_hardcoreoff. Settings are inside custom.conf. Side Note: I'd really appreciate if someone can redo the scripting of the NPC's >_< I admit that I really suck at it. by the way, I used scripting for the new atcommand so you really need it. download: hardcore_mode.patch download: hardcore_mode.txt Instructions: screenshots:
    1 point
  7. source modification http://rathena.org/board/topic/72571-battleground-system-without-waitingroom/ shuffle function function script rand__ { .@range = getarg(0); .@count = getarg(2, 0); if ( !.@count || .@count > .@range ) .@count = .@range; else if ( .@count > 128 ) .@count = 128; while ( .@i < .@count ) { .@r = .@save = rand( .@i, .@range -1 ) ; if ( !getd( ".@tmp1_"+ .@i ) ) { .@r = ( getd(".@tmp1_"+ .@r ) )? getd( ".@tmp2_"+ .@r ) : .@r; setd ".@tmp2_"+ .@i, .@r; setd ".@tmp2_"+ .@save , .@i; setd ".@tmp1_"+ .@save , 1; set getelementofarray( getarg(1), .@i ), .@r; if ( .@save < .@count ) set getelementofarray( getarg(1), .@save ), .@i; } .@i++; } return .@count; }and the scripthttp://rathena.org/board/pastebin/36ijhtnn876m/ @chromus28 only compatible with rathena or hercules eathena or 3ceam is not supported @kido propose in hercules script request section, I'll definitely make it because writing battleground script is my hobby now
    1 point
  8. 1. Open the src files that has an errors 2. Look for the Line ( Core.c:259 <= 259 is the line,search the line 259 in core.c file) 3. Once you found it, put "//" from the start ( Example : //harmony_funcs <bla bla: sd=>val> ; ) 4. Save it 5. Recompile.
    1 point
  9. replace the if statement with this.. if(@map$ != instance_mapname("abyss_03")) end; Sorry if I can't test it, I don't have a functioning SVN anymore
    1 point
  10. .@guild_id = 100; setarray .@name_list$, "Apple", "Orange", "Watermelon", "Banana", "Strawberry"; .@name_list_size = getarraysize( .@name_list$ ); query_sql( "SELECT `name`,`position` FROM `guild_member` WHERE `guild_id` = "+.@guild_id+" ORDER BY `position` LIMIT "+.@name_list_size,.@name$,.@position ); .@name_size = getarraysize( .@name$ ); mes "["+getguildname( .@guild_id )+"]"; for( .@i = 0; .@i < .@name_size; .@i++ ) mes .@name$[.@i]+" | "+.@name_list$[ .@position[.@i] ]; close;
    1 point
  11. Added the Getguildmember command in eba1539. Please update (or cherry-pick the commit) to be able to use the command. set .@gid, 100; mes "[ " + getguildname(.@gid) + " ]"; mes "Members:"; getguildmember .@gid; if ($@guildmembercount == 0) mes "- none - "; else { for (.@i = 0; .@i < $@guildmembercount; .@i++) mes $@guildmembername$[.@i]; } close;
    1 point
  12. Here's the code, commented: // The 'while' statement will loop infinitely (since '1' is always true) // until a 'break' statement is reached, or the server detects an infinite // loop (related to check_gotocount). while (1) { // This tries to pick a random party name that is unlikely to exist // ("i50928", "i18735", etc.). .@name$ = "i" + rand(100000); // 'party_create' returns '1' if the party was successfully created. // If it succeeds, break out of the loop. // If it fails, try again with a different party name. if (party_create(.@name$) > 0) break; }
    1 point
  13. Ma'am annie, i followed everything and it is working great!! http://rathena.org/b...&attach_id=5375 <---(battleground random) Please i have a couple of requests, 1. Could you please edit this by making the match score adjustable from 10 to 50? Like if the score was set to 50. If the Red team reaches 50 kills, the game is over and Red team wins! Thanks! 2. Please have the losing team get items too. say, 10 red potions for the winning team and 2 red potions for the losing team! Thank you very much!
    1 point
  14. [rand__] function is inside my script release topic, under shuffle algorithm http://rathena.org/board/topic/78269-annieruru-lame-script-collection/?hl=rand__ I move to hercules because they have better script engine and better source coders rathena emulator took about 4~8 seconds to load the mapcache, hercules took only 1 second etc etc ... well this is not the place to discuss about this so how you want the modification be ? the one inside SVN doesn't has any features ... if I put back all the custom stuffs (including source modifications), the script will be unreadable you still haven't tell me you want 1, 2 or 3
    1 point
  15. I just load rathena and see my name on the recent topics you should either post the topic in hercules board or send me a PM here now that you say you wanna have the other battleground script yeah, I actually made 2 of them bg_pvp and bg_emp I give you 3 solutions 1. in this script, the maximum player can play is 9vs9 because of the max chatroom size in the source https://github.com/rathena/rathena/blob/master/src/map/chat.h#L27 you can change [20] into [61] to allow 30vs30 2. I made bg_emp, but I haven't made bg_emp_random script that can host by a GM think make one ? 3. I make another bg_pvp_random just with using another map ? xD
    1 point
  16. The way I was able to fix this was; instead of me trying to start all servers together using ./athena-start I started them individually... so ./char-server start ./login-server start ./map-server start
    1 point
  17. Please note that RMS shows the Flee/Hit REQUIRED (player must have) to hit/evade the monster by a chance, while @mi shows the monster's raw stats. They are not the same
    1 point
×
×
  • Create New...