Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 03/02/13 in all areas

  1. Xantara's FluxCP Everyone knows of FluxCP. However, with the creation of rAthena, there became a need to support renewal changes and other features such as the new group system. This is where my Control Panel comes in. Xantara's FluxCP is a free and open source control panel to work with rAthena. Forked from FluxCP by Paradox924X and Byteflux at r1121. I will continually merge updates from the original FluxCP. Demo: http://web.artistic-coder.com/fluxcp-rA Note: this site is used to test new functionality and custom addons so it may not always be functioning properly Features The original/base FluxCP already comes with a lot of features. Here I will only highlight those that came after the fork. For a full list, click here. Updated Ragnarok Data Full Birthdate Functionality Working GM Group System Mob Skills SQLized Zeny Log Page Specific Item Drop Rates Toggle for Pre-Renewal or Renewal SQL Data Alchemist Ranking Blacksmith Ranking Paginated Item Shop Character/job images (static) WIP Account management system (link one or more in-game accounts to one CP account) Queued Accepted Suggestions (have suggestions? post them here!) Search in logs page Pin code functionality Character sprites with palettes (would replace static images) Requirements Apache webserver with PHP 5.2 or greater PDO extension with MySQL support (http://www.php.net/pdo) PHP GD2 for security images (Optional) Enabled Zip extension for exporting guild emblems (Optional) Apache/mod_rewrite for using the "Clean URLs" feature Download There are three ways to get a copy of this Control Panel. For detailed installation instructions, click here (TBD). 1. GIT Clone git clone https://github.com/missxantara/fluxcp-ra.git * For Windows, you can take a look at using TortoiseGit with its friendly user interface. 2. SVN Checkout svn checkout https://github.com/missxantara/fluxcp-ra/trunk/ * For Windows, you can take a look at using TortoiseSVN with its friendly user interface. 3. ZIP Download https://github.com/missxantara/fluxcp-ra/archive/master.zip Extra Downloads Extract to the root folder of your FluxCP system Job Image Files: http://missxantara.github.io/fluxcp-ra/downloads/FluxCP_Jobs_Images_2012-04-28.zip Updated details: April 28, 2013 Credits: Xantara Monster Image Files: http://missxantara.github.io/fluxcp-ra/downloads/FluxCP_Monsters_Eclage_14.2.zip Updated details: Mob ID #2380 of Eclage (Episode 14.2) Credits: Brynner Item Icon Files: http://missxantara.github.io/fluxcp-ra/downloads/FluxCP_Item_Icons_2012-04-08.zip Updated details: April 8, 2013 Credits: Latheesan's Extractor Item Image Files: http://missxantara.github.io/fluxcp-ra/downloads/FluxCP_Item_Images_2012-04-08.zip Updated details: April 8, 2013 Credits: Latheesan's Extractor Quick Links Wiki: https://github.com/missxantara/fluxcp-ra/wiki Bug/Suggestion Reports: https://github.com/missxantara/fluxcp-rA/issues GitPage: http://missxantara.github.io/fluxcp-ra Misc. Feel free to post any suggestions here. If suitable, they may be polled by general users before being decided to be implemented or not. If you have a feature already coded that you would like to share, please do send a GIT pull request or send me an SVN diff of the work - I'd love to take a look at it! Please note that working on this open-source project will furthermore serve as a learning opportunity for me. If you find that I've implemented something that could be improved, I urge you to let me know - your knowledge on this subject would be greatly appreciated! Like my work? Rep up the topic first post
    1 point
  2. Original topic and code here: link Idea: link You can enable or disable the cash / item in file db/item_vending.txt Vending title can be looks like: "[ITEM_ID] name" Version 1.8 preview: Changelog conf/battle/feature.conf db/item_vending.txt Modify your client data files: idnum2itemdisplaynametable.txt idnum2itemresnametable.txt Enjoy. New: rAthena only: ExtendedVendingSystem_1.8.1.patch ExtendedVendingSystem_1.8.patch Old:
    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. I think you shouldn't set a prize for this script, because everyone on your server can join the PVP room everytime they want, if you insist to set a prize, then you should make a limitation, for example by time limit. Imagine that I have 2 different accounts, then account #1 joins the room then idle there, while I login using my second account, killing the #1 nonstop. Then, by a week, your server's economy will collapse... Because virtually they can get unlimited SOGs by doing PVP.
    1 point
  5. But, regarding your first post, I think it's unwise to set prizes on this script because people could just stand still and be the victim, while the other character get items nonstop for free..
    1 point
  6. 1 point
  7. prontera,148,166,6 script Arena Master 808,{ if( select("PVP Room [ "+getmapusers("pvp_n_8-5")+"/50 ]:Cancel") == 1 ) { if( getmapusers("pvp_n_8-5") >= 50 ) { mes "[Arena Master]", "I'm sorry but the PVP Room is already full!"; close; } warp "pvp_n_8-5",0,0; } close; OnPCDieEvent: if(strcharinfo(3) == "pvp_n_8-5") { dispbottom "You will respawn in 3 Seconds."; sleep2 3000; atcommand "@alive"; atcommand "@heal"; warp "pvp_n_8-5",0,0; } end; }
    1 point
  8. Yep, just use the script on post #16.
    1 point
  9. prontera,148,166,6 script Arena Master 808,{ if( select("PVP Room [ "+getmapusers("pvp_n_8-5")+"/50 ]:Cancel") == 1 ) { if( getmapusers("pvp_n_8-5") < 50 ) warp "prontera",0,0; } close; OnPCDieEvent: if(strcharinfo(3) == "pvp_n_8-5") { dispbottom "You will respawn in 3 Seconds."; sleep2 3000; atcommand "@alive"; atcommand "@heal"; warp "pvp_n_8-5",0,0; } end; } But I don't quite understand, on line "if( getmapusers("pvp_n_8-5") < 50 ) warp "prontera",0,0;" why would you warp to prontera if the players in pvp room is less than 50? I think it should warp you IN to the pvp map, right?
    1 point
  10. Ahh.. You have 2 commas on the header. It should be "808,{" with a single comma. And the map isn't the same --> if(strcharinfo(3) == "pvp_y_2-2") ?? i think you'll want to edit to match with the current pvp map --> pvp_n_8-5
    1 point
  11. Post your whole script, maybe there's some typo on it.
    1 point
  12. Are you using rAthena?
    1 point
  13. File Name: Scribbling Kid 3 File Submitter: Kurca File Submitted: 12 Feb 2013 File Category: Skins Content Author: Kurca Hello everyone! I'm glad to introduce you to Scribbling Kid 3 [or Scribbling Kid Renewal if you want]! When I was start playing Ragnarok Online, this skin was thing I used pretty much everytime [it's been about 7 years since I started]. And from time renewal is out, skin structure is always changing. This is basically reedited my pre-renewal version. Hope you'll like it Click here to download this file
    1 point
  14. Refining is up to +12, can't go further? There you go 1201,Knife,Knife,4,50,,400,17,,1,3,0xFE9F7EEF,7,2,2,1,1,1,1,{if (getrefine <= 12) {bonus bAtkRate,getrefine()*3;}},{},{}
    1 point
  15. prt_in,63,60,4 script Refiner 85,{ set .Scroll,7199;//'Protection Scroll' item id set .back,0; //when use 'Protection Scroll' //-1,-2,-3... -->back to level 1,2,3...(MAX:10) if refine fail //1,2,3... --> reduce level 1,2,3.... if refine fail set @use2,0; set @rate,0; set @typr,0; set @menu2,0; set @use3,0; function CHose; function nZeny { switch(getequipweaponlv(getarg(0))) { case 1: return 500; case 2: return 2000; case 0: case 3: case 4: return 5000; default: return 0; } } function nItem { if(getarg(1)==1){ switch(getequipweaponlv(getarg(0))) { case 0: return 985; case 1: return 1010; case 2: return 1011; case 3: case 4: return 984; default: return 0; } }else{ switch(getequipweaponlv(getarg(0))) { case 0: return 6241; case 1: case 2: case 3: case 4: return 6240; default: return 0; } } } function nRate { function aRate { return getarg(getarg(0,0)+1,0); } switch(getequipweaponlv(getarg(0))) { case 0: return aRate(getarg(1), 100,100,100,100,60, 40,40,20,20,10, 50,30,20,10,10, 10,10,10,10,10); case 1: return aRate(getarg(1), 100,100,100,100,100, 100,100,60,40,20, 70,70,50,50,30, 30,20,20,10,10); case 2: return aRate(getarg(1), 100,100,100,100,100, 100,60,40,20,20, 70,50,50,30,30, 20,20,10,10,10); case 3: return aRate(getarg(1), 100,100,100,100,100, 60,50,20,20,20, 50,50,30,30,20, 20,10,10,10,10); case 4: return aRate(getarg(1), 100,100,100,100,60, 40,40,20,20,10, 50,30,30,20,20, 10,10,10,10,10); } } function sRater { mes "[Successful rate]["+set(@rate,(nRate(@typr,getequiprefinerycnt(@typr))+(@use2>6000?10:0)))+"%]"; return; } if(select("Refine","Close")==2) close; set @typr,select(""+getequipname(1),""+getequipname(2),""+getequipname(3),""+getequipname(4),""+getequipname(5),""+getequipname(6)); callsub OnCon; sRater; if(select("^000088Refine now^000000","^FF3355Don't refine^000000")==2) close; callsub OnCon2; OnCon: if(!getequipisenableref(@typr)) { mes "I can't refine this !..."; close; } if(getequiprefinerycnt(@typr)>=10) { mes "It's not possible to refine this better than +10."; close; } if(Zeny<nZeny(@typr)) { mes "You don't have enough Zeny. Your Zeny is lower than "+nZeny(@typr)+"."; close; } if( @use3 ) { if( !countitem(@use3) ) { mes "You don't have any "+getitemname(@use3)+"."; close; } }else{ if( !countitem(set(@use2,nItem(@typr,select("^FF3355Use normal Ore!^000000","^000088Use purified Ore!^000000"))))) { mes "You don't have any "+getitemname(@use2)+"."; close; } set @use3,@use2; } return; OnCon2: if(.Scroll) { if( @menu2==2 ) { if(!countitem(.Scroll)) { mes "You don't have a Protection Scroll."; close; } }else{ if( select("^FF3355Go ahead without protection Scroll!^000000.","^000088Use Protection Scroll!^000000.")==2) { if(!countitem(.Scroll)) { mes "your don't have Protection Scroll."; close; } }else mes " "; } } set Zeny,Zeny-nZeny(@typr); if(.Scroll) { if( @menu==2 || @menu2==2 ) if( @rate >= 100 ) mes "100% of success, so automatically cancel using the protection scroll"; else delitem .Scroll,1; } delitem @use2,1; if(.Scroll) { if( @menu==2 || @menu2==2 ) { if(@rate<rand(1,100)) { if(.back<0) { getitem2 getequipid(@typr),1,1,-(.back<-10?-10:.back),0,getequipcardid(@typr,0),getequipcardid(@typr,1),getequipcardid(@typr,2),getequipcardid(@typr,3); failedrefitem @typr; announce strcharinfo(0)+" tried to refine a +"+getequiprefinerycnt(@typr)+" "+getequipname(@typr)+" to +"+(getequiprefinerycnt(@typr)+1)+" and FAILED!"; close; }else{ set .@D,set(.@D,getequiprefinerycnt(@typr)-.back)<0?0:.@D; if(getequiprefinerycnt(@typr)<=10) { getitem2 getequipid(@typr),1,1,.@D,0,getequipcardid(@typr,0),getequipcardid(@typr,1),getequipcardid(@typr,2),getequipcardid(@typr,3); failedrefitem @typr; announce strcharinfo(0)+" tried to refine a +"+getequiprefinerycnt(@typr)+" "+getequipname(@typr)+" to +"+(getequiprefinerycnt(@typr)+1)+" and FAILED!"; close; }else while(getequiprefinerycnt(@typr)!=.@D) { successrefitem @typr; announce strcharinfo(0)+" tried to refine a +"+getequiprefinerycnt(@typr)+" "+getequipname(@typr)+" to +"+(getequiprefinerycnt(@typr)+1)+" and SUCCEED!"; } } }else successrefitem @typr; CHose(@use2,@menu); } } if(@rate<rand(1,100)) { announce strcharinfo(0)+" tried to refine a +"+getequiprefinerycnt(@typr)+" "+getequipname(@typr)+" to +"+(getequiprefinerycnt(@typr)+1)+" and FAILED!"; failedrefitem @typr; close; }else successrefitem @typr; announce strcharinfo(0)+" tried to refine a +"+getequiprefinerycnt(@typr)+" "+getequipname(@typr)+" to +"+(getequiprefinerycnt(@typr)+1)+" and SUCCEED!"; CHose(@use2,@menu); function CHose { set @menu2,@menu2?@menu2:@menu; set @use3,@use3?@use3:@use2; next; sRater; if( select("[^000088continue^000000]","[^FF3355End^000000]") == 2 ) close; else callsub OnCon,1; callsub OnCon2; } }
    1 point
  16. Save the script as ANSI not Unicode.
    1 point
  17. just 1. open msg_conf.c -> CTRL+END -> ENTER 2. open cli.c -> CTRL+END -> ENTER
    1 point
  18. thanks a lot. appreciate it.
    1 point
  19. Yes, every single map needs the loadevent mapflag in order to trigger OnPCLoadMapEvent ... unless you did one of these source edits 1) when maps are loaded, loadevent mapflag is added to every map 2) change OnPCLoadMapEvent to trigger on all maps, even if they don't have the loadevent mapflag It looks like (almost) all your maps in .@mapname$[] are already listed in trunk/conf/mapflag/town.txt right? Then you could just check mapflag#town. - script undisguise_me -1,{ OnPCLoadMapEvent: if (!getmapflag(strcharinfo(3), mf_town)) { undisguise; } end; }
    1 point
  20. You can always check the downloads section. There's a lot already. http://rathena.org/board/files/file/2839-drawmove-free-animated-fluxcp-design-coded/ (Recent) Browse through the Web Resources Category
    1 point
  21. What you need is a statpointcount() function that would count their StatusPoint, including points they already put into stats (similar to skillpointcount). Here you go! statpointcount.txt The script functions are based on trunk/src/map/pc.c::pc_need_status_point() ~line 5900 /// Returns the number of stat points needed to change the specified stat by val. /// If val is negative, returns the number of stat points that would be needed to /// raise the specified stat from (current value - val) to current value. int pc_need_status_point(struct map_session_data* sd, int type, int val) { PS: yes, we could have just created a 'statpointcount' script command with about 25 lines of code from pc_resetstate() (vs 600 lines of script) but writing the script was more fun!You could trigger this script with OnPCLoginEvent by replacing lines 3-40 with this: - script check_statpoints -1,{ OnPCLoginEvent: if (getgmlevel() > 50) end; function pc_need_status_point; // src/map/pc.c function pc_maxparameter; function read_statpoint_table; // db/re/statpoint.txt OR db/pre-re/statpoint.txt set .@should_have, read_statpoint_table(BaseLevel) + ( Class&EAJ_UPPERMASK ? 52 : 0 ); //==== statpointcount() ==================================================== set .@actual_statpoint, pc_need_status_point(bStr, 1-readparam(bStr)) + pc_need_status_point(bAgi, 1-readparam(bAgi)) + pc_need_status_point(bVit, 1-readparam(bVit)) + pc_need_status_point(bInt, 1-readparam(bInt)) + pc_need_status_point(bDex, 1-readparam(bDex)) + pc_need_status_point(bLuk, 1-readparam(bLuk)) + StatusPoint; //========================================================================== if (.@actual_statpoint > .@should_have) { set .@name$, strcharinfo(0); mes "We have detected your stats are over the limit."; mes "You will be disconnected shortly. Please contact a GM."; atcommand "@kick " + .@name$; atcommand "@block " + .@name$; debugmes .@name$ + " was blocked for having more stat points than normal."; atcommand "@request <-- was blocked for having more stat points than normal."; } end;
    1 point
  22. They're given directly by default. Don't enable bit 2 (mail) in .Options. setarray .Reward[0],itemID1,amount1,itemID2,amount2,...;
    1 point
  23. Alright, so I found out that GitHub has an SVN mirror, however, it has its pros and cons. Pros: My current setup is doing a commit on a local copy of GIT, git svn to the Google Code, then a remove svn2git to push to GitHub. This is quite tedious and not exactly a "mirror". This causes me to guess if something will work or not (eg. making a branch - which did not work). No extra work for me to update links, content, etc Cons: Revision numbers on GitHub are different than the ones currently on GoogleCode thus "svn switch --relocate" may not work No web interface that shows the linear use of revision numbers Changes: Due to the lack of revision numbers, I plan to change the schema update files to dates instead of relying on revision numbers (eg. /data/schemas/charmapdb/cp_charprefs.20090425.sql). I am thinking of using the GitHub SVN mirror and delete the Google Code repository so that I can start to work on the Account Management feature on a separate branch. However, it'd be great to get other's input, Perhaps I am forgetting an important pro/con? Maybe you like/dislike the proposed changes? Or, you have knowledge in this GIT/SVN stuff and have recommendations/ideas/suggestions/etc. Oh, and if anyone knows how to make it so that a git push/commit message include the svn revision number, that'd be great!
    1 point
  24. Think your the 2nd or 3rd person ive seen that thinks that. I don't see how their running out of idea's when level expansions is a normal thing in modern MMO's. Level caps are raised, more stats can be gained, newer skills can be learned (or higher levels of existing skills is accessible), and higher level monsters and equips are added. This is the first time ive seen something about them maybe increasing the max job cap for some jobs. This kind of stuff was goina happen sooer or later. I wonder what the level 175 aura will look like. 99 is normal feeling, 150 is big blue annoying, 160 is big yellow even more shinny and annoying, 175 will be big greyish white and sooooo easy to spot, and 200 will be big "Omg so bright and shinny white that looking at it will blind you".
    1 point
  25. I can almost see the 999/800 expansion... Gravity is really running out of ideas. I guess that there is about 90% of chance of a ton of formulas about to be changed. But those new skills seems to be really nice. I'm anxious to take a look at 'em. :3
    1 point
  26. oops! I forgot to attachrid back to the invoking character. To fix, add these 2 lines so the fixed script looks like this: http://rathena.kpaste.net/60f0ec?raw
    1 point
  27. DAMN! I watched the whole movie! Awesome! O_O I never knew you two were Borflings!
    1 point
  28. Stuff like this is goina be a issue.... Sura's Gate of Hell Damage Formula ATK [(Skill Level x 500) x Caster’s Base Level / 100] % + (Caster’s Max HP - Caster’s Current HP) + (Caster’s SP x Damage modifier) + (Caster’s Base Level x 10) If used as a combo skill, ATK [(Skill Level x 800) x Caster’s Base Level / 100] % + (Caster’s Max HP - Caster’s Current HP) + (Caster’s Max SP x Damage Modifier) + (Caster’s Base Level x 40) A regular level 10 casted by a level 175 player will do 8750% easly and doing it in a combo will do a wippering 11000%!!!! 11k percent of damage. Thats just the base ratio part alone. Higher max HP and SP with higher levels, as well as additional fixed damage added from higher base levels will bring this skill to a insanely powerful skill. I honestly dont like the fact that they made so many skills damage be affected by the caster's base level.
    1 point
  29. its a server problem bro check mo kung may error message na lumalabas sa Server. Kng SQL ka check mo kng yong storage dun e meron sa mySQL server mo.
    1 point
×
×
  • Create New...