![]() |
| |||||||
| Home | GzP Upload | GzP Arcade | Register | vbBux / vbPlaza | All Albums | FAQ | Donate | Members List | Calendar | Mark Forums Read |
| Ragnarok Online Ragnarok Online Discussion. |
![]() |
| | Thread Tools | Display Modes |
| | #1 |
| Registered User | This thread will be for Basic setup of the eAthena server emulator,i will be adding misc. customization but not a whole lot...okay i lied im adding a lot :\ link to my old thread(html file,drag and drop into your web browser) [Only registered and activated users can see links. ] TABLE OF CONTENTS Introduction Links Setup of hamachi,eathena and the data folder Setup for SQL Recompile your eathena(Visual C) Updating your data folder(manually) Creating a grf file from your data folder Setting up a patcher Misc. Updates INTRODUCTION Why hello there! Dark_Silence here and this is my revised thread (more organized compared to my scattered step and vaguely detailed thread which you can refer to at the top of this post until i move or revise the content into this tutorial.) A long time ago a user named Alwaysfree posted here quite often with her tutorial on setting up a TXT & SQL(maybe?) and helped many people create their own private servers but now that shes more busy in life i thought i'd give a helping hand since i was one of many hopeful gzp users who wanted to make their own private RO server. and so this thread was made. And thats all,so lets begin the tutorial shall we? LINKS [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] Default packetver is 20071106 and max base level set in the source code is 1000 stable branch-more stable but with less features trunk-more features but less stable [Only registered and activated users can see links. ] compatible client(packetver 20071106) diff and sakexe are from [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] <--If the sakray or kro client close on you while patching you can use this,it downloads and does the patching without using the kro/sakray clients and works quite well i'll explain setups by download order so the first to setup is hamachi Hamachi: "First, click on the icon that looks like a gear and change your nickname to something you want otherwise you show up as Anonymous. Next, click on the icon that looks like the Hamachi symbol (3 dots connected together). You want to create a new network. Give your network a name preferably the name of your RO server. You can set the password as whatever you want but make sure to give it to everyone else who wants to connect to your server. I recommend having the password be the same as the network name. With all of that setup, you should now have an IP above where it shows your nickname. That will be the IP of your server. The IP given is static and will not change unless you reinstall Hamachi or you change the license of it." ^^from http://www.eathena.ws/board/index.php?showtopic=114681^^ Extract eathena to your desktop and you'll find a folder named 12255_eathena_stable_txt and inside it is another folder with that same name ![]() right click on the folder and cut/paste into your C: folder like so ![]() now that we're done moving go inside your eathena folder and find a subfolder named conf and look for the following files ![]() once you find them open packet athena first and look for //----- IP Rules Settings ----- // If IP's are checked when connecting. // This also enables DDoS protection. enable_ip_rules: yes its set to yes by default and for a good reason,however if you're just making a test server change it to no as this'll prevent further confusion later on now onto map athena and so on ![]() ![]() well then,this is what that portion of char_athena should look like login_ip: hamachi ip there,yes you uncomment it just like char ip ![]() NOTE: for a long while now eathena uses what's called a map cache,pre loaded maps (excuse my way of explaining it) this means there will be no map removal errors so long as its enabled. In fact, its a bonus for those who are not too up to date with their kro/sakray(but you should update anyways for items and whatnot...) if for some crazy reason you wish to disable it and depend on grfs again look at // Read map data from GATs and RSWs in GRF files or a data directory // as referenced by grf-files.txt rather than from the mapcache? use_grf: no change to yes and you're set,otherwise leave it alone DATA FOLDER AND SCLIENTINFO.xml download FullData_V3.rar and extract it to your desktop like so ![]() then do the following ![]() i thought i'd plop this bit of info onto your plate as doing it now will prevent future item related conflicts resulting in crashing your client Setup of SQL This is only recommended for those who are a bit more experienced and want to ditch text based servers,now onto the tutorial (taken in part from [Only registered and activated users can see links. ]) also i'll be including on how to configure inter_athena.conf later in the tutorial Here are the links to the files you need: [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] - Install MySQL 5.0.27 -Click Next. -Choose Typical and click Next. -Click Install. -When It's finished, just click Finish and don't uncheck the Configure the MySQL Server now. -Now,choose Standard Configuration and click Next. -In Service Name:, pick MySQL5 and click Next. -Just enter the password root,it's important to remember cause we need it later. Click Next. -Just click the Execute and when done, just click Finish. and if there were no errors the mysql server should now be running Now for the GUI tools Install mysql-gui-tools-5.0-r12. We only need MySQL Administrator and MySQL Query Browser start up mysql admin and a box will appear,put in the following information stored connection-leave blank server host-localhost username-root password-root port-leave alone click ok and you should be in mysql admin now [Only registered and activated users can see links. ] head to user administration and click "add new user" then put in the following information mysql user: ragnarok password: ragnarok pass confirm: ragnarok click "apply changes" In the user accounts box there should be two users,root and ragnarok. Right click on the ragnarok user and click "add host from which the user can connect" and a box will come up,type in localhost. Click ok and you're set for mysql admin In mysql admin click tools at the top then click mysql query browser. A new window will appear [Only registered and activated users can see links. ] Right click in the schemata box and click "create new schema" a box will appear,type in ragnarok as the name for this new schema. In the schemata box there will be a new schema,right click on it and select "make default schema",double click on the ragnarok schema and click on the file menu. Select "open script...",browse to where the sql-files directory is in your eathena folder and select the main.sql file then click open. After that click the big green button otherwise known as execute,a progress bar at the bottom of the window will appear like so [Only registered and activated users can see links. ] Next you'll repeat this process,however you'll be creating a "log" schema which you will then open the log script(which can also be found in the sql-files directory) should you ignore this step the login server will crash repeatedly until you do so. Now you can get make yourself an admin by modifying the login table's level row value(the level can be set to 99 for admin and lower numbers for GMs) Now that all of this is taken care of you'll need to tackle the inter_athena conf file in order for mysql and eathena to interact with eachother,inter athena can be found in the conf folder. If you've followed this tutorial and used the username+password root(for mysql) then all you have to do is this: sql.db_hostname: localhost sql.db_port: 3306 sql.db_username: root sql.db_password: root sql.db_database: ragnarok sql.codepage: // MySQL Character SQL server char_server_ip: localhost char_server_port: 3306 char_server_id: root char_server_pw: root char_server_db: ragnarok // MySQL Map SQL Server map_server_ip: localhost map_server_port: 3306 map_server_id: root map_server_pw: root map_server_db: ragnarok // MySQL Log SQL Database log_db_ip: localhost log_db_port: 3306 log_db_id: root log_db_pw: root log_db_db: log log_codepage: After doing the necessary editing save changes and leave,start up your server and no problems(other than the default server password issue) should arise. You don't have to use the same mysql username+password but it's easier(yet not safe) to use a short simple password and edit the appropriate files And i'm done Updating your data folder(manually) Okay i'd thought i'd show all of you how to update your data folder as its a relatively easy process go to [Only registered and activated users can see links. ] match the files in the repository with the ones in your data folder Example: idnum2itemdesctable.txt there's one in your data folder and one in the above mentioned link,do a right click on the text file(in the link) and choose "save link as..." a prompt will come up and just save it to your desktop as a text file. Next cut paste it into your data folder,a prompt will ask you if you want to replace it with the one we just downloaded,click ok/overwrite/yes Do the same for num2itemdesctable.txt and you're done updating the item descriptions! Find other text files that match to your own in the repository and just repeat the above process until all text files have been replaced with ones from the site,don't worry about ones you can't find(such as leveluseskillspamount.txt and so on,those you leave alone) Why do all this? because the data folder in the current links section is well...outdated (i remove out of date content,but they hardly ever update them themselves but with this you can update it manually and quite easily! now then, in your data folder look for ![]() right click and open with notepad to see <?xml version="1.0" encoding="euc-kr" ?> <clientinfo> <servicetype>korea</servicetype> <servertype>sakray</servertype> <connection> <display>YOUR SERVER DISPLAY NAME HERE</display> <desc>None</desc> <address>YOUR IP HERE</address> <port>6900</port> <version>20</version> <langtype>8</langtype> <registrationweb></registrationweb> <aid><admin></admin></aid> </connection> </clientinfo> <address>put your hamachi ip here</address> <aid><admin>your account ID here*</admin></aid> here's how you acquire your account ID: sql: go to the login table in mysql query browser and the very first column with the seven digit number(usually starts with 2) copy/paste into the necessary spot and you'll get gm clothes txt: go to account.txt in the save folder and and its basically its the same as sql :\ i might as well point it out now,how do you become a gm with @ commands and all? sql: go to the login table once more and find the level column,modify it to the gm level desired (99=admin) and relog txt: remember getting the account id from save.txt? simply keep the account id copy and go to the conf folder to find gm_account.txt,open it in notepad and go in the following format <account id>space<gm level> you can read the comments or even uncomment an example for it to work(as some examples are the first account you're already using download the client i linked to and save it in your custom RO folder(if you made one) and you're done with this bit,simple no? Regarding Rasgui Q. oh hay guiz where's mah rasgui? A. gone.got the boot.etc. Q. why? A. because i'm going to start encouraging you to use the command prompt by default i'm sure that command prompt windows are pretty small right? well that can be remedied by first running the appropriate runserver executable(depends on sql/txt users) and when all three windows are open go on ahead and right click on the top border then click properties,adjust the size of the window as you please. Enjoy,however should you dislike command prompts then pm me and i'll bring it back up(revising it too) but try to get used to command prompts if possible,they're neat :D now with this over i'll go on ahead and start with the battle folder BATTLE FOLDER ![]() note: too lazy to edit this image for clarity... to edit rates we'll edit the following files ![]() open up exp.conf and look for this line // Rate at which exp. is given. (Note 2) base_exp_rate: 100 // Rate at which job exp. is given. (Note 2) job_exp_rate: 100 by default rates are set at 1/1/1,but wait theres 100? i'll show you this: taken from my exp.conf // Rate at which exp. is given. (Note 2) base_exp_rate: 300000 // Rate at which job exp. is given. (Note 2) job_exp_rate: 300000 Basically i have 3k rates,guess some numbers and use @rates to get your rates. trial and error i suppose to make max level work check exp.txt in your db folder and find //Base - Normal and Baby Jobs 99 change 99 to whatever you want #define MAX_LEVEL X X represents the max level you desire,after changing it recompile your server for it to go into effect! but what about job exp? look for this in exp.txt //job 10/50/70 some classes vary but change the number to whatever job level desired and you're done with exp.txt now for setting up/installing a custom exp table,download one of the following exp tables [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] [Only registered and activated users can see links. ] Okay in my above tut i used exp.txt as an example for a few explanations,well we're going to use a different exp table text file that is meant for custom exp tables. The file to look for is exp2.txt Upon opening it you'll notice how much larger it is in comparison to the default exp table. more numbers=more exp required to gain a level while exp.txt has smaller numbers=less exp required to gain a level. //Base - Normal Jobs 99,0:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18: 19:20:21:23:24:25:26:4046:4047:4048:4049, For each exp table in the text file theres a list of jobs which you can see in the above example. You leave these numbers alone and delete the rest then copy the contents of the exp tables right after the job list and you're set so rename exp2.txt to exp.txt and click yes to any windows asking about an overwrite. and to level multiple times from one mob kill look up this line // Turn this on to allow a player to level up more than once from a kill. (Note 1) multi_level_up: no by default its set at no but i'll change it to yes and heres another line to look at // When a player dies, how should we penalize them? // 0 = No penalty. // 1 = Lose % of current level when killed. // 2 = Lose % of total experience when killed. death_penalty_type: 0 if you don't want any exp penalty just set it to 0 or whatever suits your needs the rest of exp.conf can be done by you as i only did the most important settings Now onto drops.conf take a look at the following options: // Item drop rates (Note 2) // The rate the common items are dropped (Items that are in the ETC tab, besides card) item_rate_common: 10000 item_rate_common_boss: 100 item_drop_common_min: 1 item_drop_common_max: 10000 // The rate healing items are dropped (items that restore HP or SP) item_rate_heal: 10000 item_rate_heal_boss: 100 item_drop_heal_min: 1 item_drop_heal_max: 10000 // The rate at which usable items (in the item tab) other then healing items are dropped. item_rate_use: 10000 item_rate_use_boss: 100 item_drop_use_min: 1 item_drop_use_max: 10000 // The rate at which equipment is dropped. item_rate_equip: 10000 item_rate_equip_boss: 100 item_drop_equip_min: 1 item_drop_equip_max: 10000 // The rate at which cards are dropped item_rate_card: 10000 item_rate_card_boss: 100 item_drop_card_min: 1 item_drop_card_max: 10000 // The rate adjustment for the MVP items that the MVP gets directly in their inventory item_rate_mvp: 10000 item_drop_mvp_min: 1 item_drop_mvp_max: 10000 // The rate adjustment for card-granted item drops. item_rate_adddrop: 100 item_drop_add_min: 1 item_drop_add_max: 10000 // Rate adjustment for Treasure Box drops (these override all other modifiers) item_rate_treasure: 100 item_drop_treasure_min: 1 item_drop_treasure_max: 10000 Pretty much everything(minus the last two options) will drop at 100% but wait you don't want that! ah? not everything drops at 100% despite the drop rates? taken from mob_db(poring entry) 512,150 the first number is the itemid and the second number is the drop rate(1.50% i think by iRO rates...) but with my rates(if you're using them) that'll translate to 100% with my rates items drop percentages can be set like so 512,1=1% 512,15=15% 512,50=50% 512,100=100% thats if you're using MY rates as seen above,you'll have to test for rates lower than mine Recompile your eathena (Visual C) First off,i will not be posting any download links to microsoft visual studio 2005(it's what i'm using and i recommend you do so as well) as the rules prevent me from doing so but hey this is the internet. Easy enough to find. NOTE- The file you'll need to open to modify source code with visual studio is eAthena-8.sln Mini Q & A: Q:Why not? A:well its easy enough to google also,see above explanation Q:but i can't find it! A: 1.[Only registered and activated users can see links. ] 2.use "microsoft visual studio 2005" as your search query 3.see first result 4.???? 5.PROFIT and there you go Now onto the tutorial itself... What you'll need(once you have visual C): tortise svn- see [Only registered and activated users can see links. ] and thats all once you've got an uncompiled eathena setup somewhere(it can be anywhere so long as you can manage it,for me i use my C: drive) export your uncompiled eathena to your desktop([Only registered and activated users can see links. ]) and [Only registered and activated users can see links. ] now i'm using sql as an example but for both sql and txt there is one thing about the uncompiled builds the save folder and import folder go under different names,therefore when the server is compiled the sql/batch files will not find either folders due to the current name and the necessary confs being unmodified therefore... IN THE CONF FOLDER... ![]() AND IN THE BASE EATHENA FOLDER... ![]() Now when compiling the servers the right folders will be found(actually,this can be done before or after compiling...don't know why i said that earlier...) now for actual compiling! go on ahead and open eathena-8.sln(if you're using the version of visual studio i suggested you to use) With visual C theres far less typing and knowledge of directories comapred to cygwin,but heres how the interface looks oh yeah i forgot to add: [Only registered and activated users can see links. ] now one last bit! [Only registered and activated users can see links. ] It must be set to release unless you want to learn how to debug :\ now depending on what you want(sql or txt) you'll right click on the executable and click "build" like so [Only registered and activated users can see links. ] and once you do wait and read the output at the bottom of the visual studio window until you see this message [Only registered and activated users can see links. ] its largely the same minus the executable names but until you see it don't close the program or do anything else and you'll get this as a result ![]() yes even with release you still get program debug database,kinda contradictory but hey i've used it :\ yes you can delete the debug database so long as visual studio is closed completely mini Q & A 2 Q:it won't show the svn version in the command prompt window! A: go to src/common/core.c open with notepad find #ifndef SVNVERSION static char eA_svn_version[10] = ""; when you've built your uncompiled eathena using tortise svn you may have gotten a "update completed at revision XXXXX" put the number inbetween the quotes like so #ifndef SVNVERSION static char eA_svn_version[10] = "XXXXX"; NOTE:only do this BEFORE compiling your server or expect to do the whole process over again if you've edited after compiling NOTE2: this process is also for recompiling,so if you've modified the source folder you'll have to build new executables that recognize that change and thats all there is to it,it may seem complicated at first but is a process that can be done by heart(eventually) here's a neat little tip for reverting recompiles by default theres three executables,char-server_sql,login-server_sql and map-server_sql,usually before i do a recompile after editing the source code i place them in a folder inside of my ea folder(name it whatever you want,so long as you'll remember it,for me i use sydata) and just edit the source code and recompile as you normally would. Creating three new _sql executables(if you're using it,otherwise it'd be _txt) However,should you mess up but know the error in the snippet of code you put in you can delete the tiny snippet of source code and just delete the three new executables previously made and bring out the old ones,thus the change has been reverted! Note: please backup your server before doing a recompile should the revert not work and or until you're confident enough about doing it without a backup. for example(source code snippet) before... i if(sc->data[SC_EDP] && skill_num != ASC_BREAKER && skill_num != ASC_METEORASSAULT && skill_num != AS_SPLASHER && skill_num != AS_VENOMKNIFE) ATK_ADDRATE(sc->data[SC_EDP]->val3); after... if(sc->data[SC_EDP] && skill_num != ASC_BREAKER && skill_num != ASC_METEORASSAULT) ATK_ADDRATE(sc->data[SC_EDP]->val3); } should it fail all i have to do is just revert the change to "before" and delete the three server executables and bring out the old ones again(for more info about this code snippet please see the Misc. section) Creating a grf file from your data folder What you'll need: 1. [Only registered and activated users can see links. ] (note:see [Only registered and activated users can see links. ] as i'm not the original creator of these tools or the method of grf creation,rather i'm simplifying it) 2.your already modified data folder Now you're set. first off put both the files from the above mentioned download into a new folder,name it anything as long as its simple Heres what you'll need inside of the new folder you've just made(extra files such as grf factory and ROunicode are not necessary but can be used for other purposes such as grf modifacation and whatnot) Now for a series of screencaps to do the rest of the work... Here's our grfstuffs folder,with the create,file lister and data folder we just modified in the earlier tutorial [Only registered and activated users can see links. ] Run File Lister.exe and browse to your data folder,DO NOT be lazy and keep your data folder in your ro folder! as this will affect later steps in this tutorial! (seriously,don't be lazy like i was, Create.exe slowed my comp down a tiny bit and i waited a good hour before i realized Create.exe didn't do anything as it doesn't like long paths :\) [Only registered and activated users can see links. ] After browsing to your data folder which should be with you in your grfstuffs type folder(using mine as an example) press create script file and after a bit of waiting this will be what awaits you [Only registered and activated users can see links. ] Lo and behold! the lovechild of File Lister.exe and your data folder! data.grf but wait its a text file? is this my grf? NO! now onto the next screencap! [Only registered and activated users can see links. ] Run Create.exe and you'll see a ton of gibberish fly in this command prompt window...remember data.grf? yeah its going through it,let it be and just wait it out. [Only registered and activated users can see links. ] As soon as Create.exe is done compiling your grf it will close by itself and leave you your very own grf file for your to use! [Only registered and activated users can see links. ] HA! we're not quite done yet How are you actually going to use it? read on... Well now that your grf file is created you can rename it to whatever you want,for me i'm gonna use test.grf(DO NOT remove the .grf extension!) go on ahead and cut/paste your newly named test.grf into your RO2 folder or wherever you want. In your RO2 folder or other folder of choice look for a file called DATA.ini screencap link-> [Only registered and activated users can see links. ] once you find it open it up with notepad and this is what you'll find [Data] 0=data.grf yeah this was mine by default Anyways this is how the client reads the grfs, the 0= thing is how the client prioritizes how the grfs will be read in what order(ex:0 gets read before 1 & 2) So now to modify it add in your newly created grf(and sdata.grf if you want) [Data] 0=test.grf 1=sdata.grf 2=data.grf If you use my clients everything should be a-ok! Remove your data folder from the RO folder with your new grf in it,the client will still read the data folder and you should keep it elsewhere. Use your data folder to make new grfs, you can modify DATA.ini to read more grfs as i have the current client set to read multiple grfs So now you can run your server without your data folder Setting up a patcher Yup, enjoy what you'll need: a webhost(free or pay) free webhost(s): [Only registered and activated users can see links. ] <-no filetype restrictions...yet ad free package: 10 GB bandwith and 300 MB of space with ad enhanced package: 100 MB to 2.5 GB storage and 3 GB bandwith to 45 GB [Only registered and activated users can see links. ] <-has filetype restrictions,especially .exe so if you expect to update your patcher skin you'll run into some trouble... 2 gigs storage and 35 gigs of bandwith pay webhost(s): [Only registered and activated users can see links. ] 500 GB storage and 1 TB bandwith jesus... an ftp client (your choice,i use filezilla) and that's all the patcher itself-> [Only registered and activated users can see links. ] download it,extract the rar on your desktop and there will be three subfolders: Patcher,tools and web take the contents of both the patcher/tools folder and place them in the main directory,leave the web folder alone for now. Your RO folder is now where you'll be creating patches,any other directory will not do as the destination of the patch will not be the RO folder (so all other servers including yours have to be in a different RO folder) create a data folder in your ro folder,then place an actual data folder inside that folder. Confused? screencap-> http://i189.photobucket.com/albums/z...Otut4/tiny.jpg thats only one file but since the thor patcher does not accept any other grfs other than 0x200(the create.exe from my earlier tutorial creates 0x103,thus incompatible) you will have to build a grf from scratch. Thus this little bit has to be done first, that is why there needs to be two data folders,one containing the real data folder and the contents of your soon to be 0x200 grf. If you get lazy and just use the data folder (i'm looking at your non grf users :\) the patcher will spew out the contents of your data folder all over your RO folder,thus a double data folder as shown in the above screencap needs to be used. now once you have a data folder setup like how it is shown in the photobucket link let us move onto setting up config.ini I'm currently using zymic so it'll look like this: base_url=http://bollocks.zxq.net/patch/ file_url=http://bollocks.zxq.net/patch/ and scroll down a tiny bit more to this: //grf_file - self explained grf_file=test.grf //client_file - self explained, it's GAME EXE not patcher's client_file=test.exe once you've set and modified config.ini use the config packer program and pack the config into the patcher itself Now use an ftp client and connect to your free/pay webhost and create a new directory named /patch/ in your home folder then drag and drop to upload the contents of the web folder(leave plist.txt alone for the moment) Next we move onto making an actual patch,run the thormaker.exe and for the input dir click select and go to the double data folder but DO NOT choose the second data folder,cilck on the first one. For the confused: screencap-> http://i189.photobucket.com/albums/z...nytinycopy.jpg For the output directory select your RO folder,select grf mode and for the target grf make a name for your grf+.grf extension target grf = mygrf.grf select acsii for if you unbolloxued it to show the gibberish unicode for native korean text name the .thor file something you'll remember,like today's date and upload it to your /patch/ directory after generating it and modify plist.txt with the filename 1 todaysdate.thor save changes and you're done,try out your patcher! note: a tad bit messy,so if theres any problems or anything missing from the tutorial tell me Misc. I look for various types of information from other users and apply it here as sometimes such good nuggets of info(that i like) go down the drain sometimes and never reappear(well,unless someone makes a thread about it :|) but i hope to retell said info for the sake of others wanting to know,i take no credit for these people's work and never will. Also,yes i mean eathena.ws,i'm sure some of you have seen me there by now Okay,content time Modifying Venom Splasher this is your first real venture into the eathena source code,what we'll be doing: 1.enable the custom timer 2.reversing the timer itself in skill_cast_db.txt 3.changing the description in the data folder 4.make the skill work on MVPs/boss mobs first off,the timer go to src\map\status.c do a control F of "case SC_SPLASHER" and you'll get case SC_SPLASHER: // custom Venom Splasher countdown timer //if (sce->val4 % 1000 == 0) { // char timer[10]; // snprintf (timer, 10, "%d", sce->val4/1000); // clif_message(bl, timer); //} if((sce->val4 -= 500) > 0) { sc_timer_next(500 + tick, status_change_timer, bl->id, data); return 0; } remove all the comments(except the legit comment :P) to make it look like case SC_SPLASHER: // custom Venom Splasher countdown timer if (sce->val4 % 1000 == 0) { char timer[10]; snprintf (timer, 10, "%d", sce->val4/1000); clif_message(bl, timer); } if((sce->val4 -= 500) > 0) { sc_timer_next(500 + tick, status_change_timer, bl->id, data); return 0; } recompile(backup! >:\) and you'll now see the timer when you cast venom splasher i am not the person who originally found out about this,rather you should thank MithBR for telling me about it when i asked for some help(I seek information,not create it :\) original topic of my noobishness: [Only registered and activated users can see links. ] oh wait,now you want to change the actual timer to start off differently or make it anew altogether? lets modify it then! go into your ea folder then to your db folder and finally look for skill_cast_db,here in this file are the various delays for all skills in the game. do a control f using the query "assa",now why this term? because theres nothing else named assassin in there and i just half type it to find it :\ and this is what you'll find: //===== Assassin =========================== //-- AS_CLOAKING 135,0,0,0,500:1000:2000:3000:4000:5000:6000:7000:8 000:9000,0 //-- AS_SONICBLOW 136,0,2000,2000,0,5000 //-- AS_GRIMTOOTH 137,0,0,0,0,1000 //-- AS_ENCHANTPOISON 138,0,0,0,30000:45000:60000:75000:90000:105000:120 000:135000:150000:165000,10000:20000:30000:40000:5 0000:60000:70000:80000:90000:100000 //-- AS_POISONREACT 139,0,0,0,20000:25000:30000:35000:40000:45000:5000 0:55000:60000:65000,0 //-- AS_VENOMDUST 140,0,0,0,5000:10000:15000:20000:25000:30000:35000 :40000:45000:50000,15000:20000:25000:30000:35000:4 0000:45000:50000:55000:60000 //-- AS_SPLASHER 141,1000,0,0,5000:5500:6000:6500:7000:7500:8000:85 00:9000:9500,15000:20000:25000:30000:35000:40000:4 5000:50000:55000:60000 what we really want: //-- AS_SPLASHER 141,1000,0,0,5000:5500:6000:6500:7000:7500:8000:85 00:9000:9500,15000:20000:25000:30000:35000:40000:4 5000:50000:55000:60000 now then: //-- AS_SPLASHER 141,1000,0,0,5000:5500:6000:6500:7000:7500:8000:8500:9000:9500,15000:20000:25000:30000:35000:40000:45000:50000:55 000:60000 the red is the the time in milliseconds per level(ex:5000=5 seconds at level 1) otherwise known as duration1 the blue is the amount of time afterwards you have to wait to use it again per level 15000=15 seconds, therefore level 1 venom splasher starts off at 5 seconds and with a 15 second delay. Or,i could be wrong...also known as duration2 now then,let's mess with it shall we? //-- AS_SPLASHER 141,1000,0,0,10000:9000:8000:7000:6000:5000:4000:3 000:2000:1000,15000:20000:25000:30000:35000:40000: 45000:50000:55000:60000 there,now venom splasher will start at 10 from level 1 and go down by one second per level.the duration2 i may be wrong about so it won't hurt for you to experiment and learn a little bit eh? but you want to edit the description too? lets do that as well then,go on ahead and go to your data folder(if you've been following this tut it'll be your source of future grfs) now in your data folder look for skilldesctable.txt,if this hasn't pinged in your head yet from the filename its the skill description table file,here you can modify skill descriptions as you please open it in notepad and do a control f for the skill tree name(AS_SPLASHER) and you'll get this: AS_SPLASHER# Venom Splasher Max Level:^777777 10^000000 Type:^33cc00 Active^000000 SP Cost:^777777 10 + 2*SkillLV^000000 Target:^777777 1 Enemy^000000 Range:^777777 1 cell^000000 Cast Time:^777777 1 sec^000000 Cool Down:^777777 7 + 0.5*SkillLV sec^000000 Duration:^777777 See below^000000 Catalyst:^ee0000 1 Red Gemstone^000000 Effect:^777777 Turns target into a poison bomb. Target must and have less than 3/4 HP in order to be effected. When the skill is used, a timer appears above the target. If the skill is successful, and the timer reaches 0 the target explodes and takes a poison property hit at an ATK of (500+50*SkillLV)%, the Poison React skill passively adds (30*SkillLV)% to this. The surrounding 5x5 area takes half of this as splash damage. Finally, weapon elements and weapon cards do not improve the damage.^000000 [LV 1]^777777 550% ATK + Bonus, timer starts at 11^000000 [LV 2]^777777 600% ATK + Bonus, timer starts at 10^000000 [LV 3]^777777 650% ATK + Bonus, timer starts at 9^000000 [LV 4]^777777 700% ATK + Bonus, timer starts at 8^000000 [LV 5]^777777 750% ATK + Bonus, timer starts at 7^000000 [LV 6]^777777 800% ATK + Bonus, timer starts at 6^000000 [LV 7]^777777 850% ATK + Bonus, timer starts at 5^000000 [LV 8]^777777 900% ATK + Bonus, timer starts at 4^000000 [LV 9]^777777 950% ATK + Bonus, timer starts at 3^000000 [LV 10]^777777 1000% ATK + Bonus, timer starts at 2^000000 change to AS_SPLASHER# Venom Splasher Max Level:^777777 10^000000 Type:^33cc00 Active^000000 SP Cost:^777777 10 + 2*SkillLV^000000 Target:^777777 1 Enemy^000000 Range:^777777 1 cell^000000 Cast Time:^777777 1 sec^000000 Cool Down:^777777 7 + 0.5*SkillLV sec^000000 Duration:^777777 See below^000000 Catalyst:^ee0000 1 Red Gemstone^000000 Effect:^777777 Turns target into a poison bomb. Target must and have less than 3/4 HP in order to be effected. When the skill is used, a timer appears above the target. If the skill is successful, and the timer reaches 0 the target explodes and takes a poison property hit at an ATK of (500+50*SkillLV)%, the Poison React skill passively adds (30*SkillLV)% to this. The surrounding 5x5 area takes half of this as splash damage. Finally, weapon elements and weapon cards do not improve the damage.^000000 [LV 1]^777777 550% ATK + Bonus, timer starts at 10^000000 [LV 2]^777777 600% ATK + Bonus, timer starts at 9^000000 [LV 3]^777777 650% ATK + Bonus, timer starts at 8^000000 [LV 4]^777777 700% ATK + Bonus, timer starts at 7^000000 [LV 5]^777777 750% ATK + Bonus, timer starts at 6^000000 [LV 6]^777777 800% ATK + Bonus, timer starts at 5^000000 [LV 7]^777777 850% ATK + Bonus, timer starts at 4^000000 [LV 8]^777777 900% ATK + Bonus, timer starts at 3^000000 [LV 9]^777777 950% ATK + Bonus, timer starts at 2^000000 [LV 10]^777777 1000% ATK + Bonus, timer starts at 1^000000 NOTE: the descriptions are kinda iffy but you can go with your own if you want now onto enabling this skill to work on an mvp yes? go to src/map/skill.c control f using "if(tstatus->mode&MD_BOSS" and you'll get (if not,try to find) case AS_SPLASHER: if(tstatus->mode&MD_BOSS || tstatus-> hp > tstatus->max_hp*3/4) { if (sd) clif_skill_fail(sd,skillid,0,0); map_freeblock_unlock(); return 1; notice the search query? that's the little bit of source code that keeps the skill from working(failing if used on an mvp) also the max hp required too to boot so let uschange it to case AS_SPLASHER: if(tstatus-> hp > tstatus->max_hp*3/4) { if (sd) clif_skill_fail(sd,skillid,0,0); map_freeblock_unlock(); return 1; save changes and recompile,enjoy using venom splasher on MVPs and there you go,your first fully modified skill(well,mostly modified :D?) you don't have to go with my description or delay,implement your own! Magnum Break (enabling the icon and fire property weapon enchant) By default the icon does not appear when the skill is used nor is the fire property enchant enabled,however this will be fixed in src/map/skill.c look for (ctrl+f) //Initiate 10% of your damage becomes fire element and you'll get if (skillid == SM_MAGNUM) { //Initiate 10% of your damage becomes fire element. sc_start4(src,SC_WATK_ELEMENT,100,3,20,0,0,skill_g et_time2(skillid, skilllv)); right below add //Enchants weapon with fire property sc_start(src,SC_FIREWEAPON,150,1,skill_get_time2(s killid,skilllv)); and it'll look like this -> [Only registered and activated users can see links. ] recompile(backup beforehand,last time i say this and you're on your own) your server and it'll be set credit goes to jadenyne of [Only registered and activated users can see links. ] fix your picklog! An unconfigured picklog will grow in excess of 100 MB or more depending on server size go to conf/log_athena and find log_filter and set it to 0 to log nothing at all(1 by default,logs everything) eAthena subversion links Here in this section i will be posting subversions of eathena as i move onto newer and newer revisions(not at an amazingly high rate,just when i deem it to be necessary) Now that i'm getting into sql and making sql versions of compiles i do heres a link to a tutorial for setting up a server(sql) [Only registered and activated users can see links. ] Sql is a bit more tricky than what you're currently working with so read slowly! i cannot stress this enough. VISUAL STUDIO [Only registered and activated users can see links. ] ONE LAST THING... log your changes why? well if you're like me and modifying the server every so often at random there's gonna be some trouble as i've just went through three sets of server_sql files each compiled from different changes in the source code. I had to think real hard on which was what and when they were made.... its real simple on making a log,just make a new text file in your eathena folder called "edit_log.txt" or something that'll jog your memory,then go with this format MM-DD-YYYY "blah blah blah etc." easy as pie,get in the habit of doing it so things can be made easier for you UPDATES 1/15/08- long time no see eh? i learned how to compile updated eathena revisions,more info at the links section and a new section(recompile your eathena) 1/21/08- moved testsakexe and the data folder to links old section(see said section for more info),added eAthena subversion links section(more info there), changed links around. 2/3/08- Now that i've gotten ahold of visual studio and learned how to use it i have split up the eathena subversion section into two sub sections,cygwin and visual studio. Also i can make sql with both visual studio and cygwin, And i've figured out how to make the char/map/login server command prompt windows display the svn revision(12082+12120 being exempt from this) however cygwin does not like me at the moment so i cannot get cygwin compiles to display the version number(visual studio likes me so i can get it to work with those compiles)...yet 2/27/08- Cygwin is now dropped,i'm not liking it that much while visual C is a lot better,i'll leave the tutorial and what i actually compiled here. Included a visual C tutorial on how to compile a server. Also added more personal compiles to the visual studio section,also i added dinput.dll in the current links section(see text by the file for more info) 3/2/08- Changed around some ea revision links,added a grf tutorial and other misc bits about em(see the index), also i've decided to add non basic setup stuff to this tutorial in a new section called Misc.(see index) where stuff i consider to better your server will be posted here,if i'm wrong or you want something added pm me about it. Oops,almost forgot to mention that i added a data folder updating tutorial as well... 3/10/08- Added actual content to the empty Misc. section,please see the bottom of the visual C compiling tut for a bit of info i added in. I also went ahead and fixed the rates(sort of) for drops and exp in the beginning of the tutorial. I hope its more clear than last time... 3/13/08- Hey GzP! 12k views! good lord am i that useful? well anyways i updated the Misc. section again on how to mostly/fully(depends on how you see it) modify venom splasher! and another thing...come on people! see an inconsistency in my tut? point it out! grammar? point it out! typo? POINT IT OUT! any correction you want seen or a fix needed please pm me and it'll be changed 3/14/08- Oops,looks like my compiles weren't set to allow levels past 99 but that has been fixed with my latest compiles(older ones won't be fixed) also i keep adding more and more stuff to this misc. section... 3/29/08- Moved sections around,removed sections,removed links,spring cleaning,etc. so take a look around 3/30/08-Monkeying around with the data folder tutorial removed due to a mistake in how to actually do it. if you've done it please revert back as i messed up somewhere. It'll be back up in a while 4/4/08-Added one new section,setting up a patcher it has only thor patcher. If you notice anything wrong about the tutorial or its missing something post about it and i'll get it fixed 4/10/08-WoE: Second Edition is out(been out...),new compiles containing it have been added(eAthena r12547) Enjoy. for those with control panels see [Only registered and activated users can see links. ] 7/9/08- After a while my interest came back, i'll be cleaning up the tutorial for now removing obsolete files and sections of the tutorial along with adding an sql tutorial(images included) soon. Update 4/25/08 no longer exists 8/9/08- Okay setup for sql is up as a new section,from now on stop posting long error messages into normal posts,use paste-it.net for logs/error messages/etc. seeing as how entire pages are hogged up by them and waste space. Last edited by Dark_silence; 09-29-2008 at 09:59 PM. |
| | |
| The Following 20 Users Say Thank You to Dark_silence For This Useful Post: | 03699 (03-05-2008), alwaysfree (09-29-2007), Blackbound (12-28-2007), cali559pianist (09-23-2007), cytrikx (05-01-2008), Dg1009 (11-03-2007), FlawlessWarrior (10-13-2007), freeL4nc3r (11-13-2007), grandsaga (02-28-2008), karimous (08-29-2007), Klorena (08-31-2007), logacion213 (09-23-2007), playadice22 (10-27-2007), qwertyqwertyqwerty (02-16-2008), Rivenby (10-25-2007), Semaione (06-20-2008), skinnyaznkid (01-16-2008), Tommy42 (09-02-2008), Wolfeh (03-28-2008) |
| Sponsored Links |
| |
| | #2 |
| Lurker | Re: Dark_Silence's private ro server tutorial with hamachi(and images!) yeah i tried hamachi and everythings running perfectly.. the only problem is when i double click my character to log into the game.. it says "can't connect server" This is my map log (23:00:03) Status: Memory manager initialised: log/map-server.exe.leaks (23:00:03) Status: Done loading plugin 'UPnP' (23:00:03) Info: Console Silent Setting: 0 (23:00:03) Error: Using the default user/password s1/p1 is NOT RECOMMENDED. (23:00:03) Notice: Please edit your save/account.txt file to create a proper inter-server user/password (gender 'S') (23:00:03) Notice: and then edit your user/password in conf/map_athena.conf (or conf/import/map_conf.txt) (23:00:03) Notice: Multiple interfaces detected... (23:00:03) Info: Defaulting to 222.152.179.126 as our IP address (23:00:03) Info: Map Server IP Address : '222.152.179.126' -> '222.152.179.126'. (23:00:03) Info: Char Server IP Address : '222.152.179.126' -> '222.152.179.126'. (23:00:03) Notice: Server running in 'Debug Mode'. (23:00:03) Notice: Logging Item Picks to file `log/picklog.log`.txt (23:00:03) Notice: Logging GM Level 40 Commands to file `log/atcommandlog.log`.txt (23:00:03) Info: GRF data file found: 'C:\Program Files\Gravity\RO\data.grf' (23:00:04) Info: GRF data file found: 'C:\Program Files\Gravity\RO\sdata.grf' (23:00:04) Status: Done reading 'conf/grf-files.txt'. (23:00:04) Status: Done reading '371' entries in 'data\resnametable.txt'. (23:00:04) Status: Loading Maps with... [cache] [gat] (23:00:05) Status: Done reading packet database from 'packet_db.txt'. Using default packet version: 21. (23:00:05) Status: Done reading '2960' entries in 'item_db.txt'. (23:00:05) Status: Done reading 'item_group_db.txt'. (23:00:05) Status: Done reading '1' entries in 'item_avail.txt'. (23:00:05) Status: Done reading '5' entries in 'item_noequip.txt'. (23:00:05) Status: Done reading '58' entries in 'item_trade.txt'. (23:00:05) Status: Done reading 'db/skill_db.txt'. (23:00:05) Status: Done reading 'db/skill_require_db.txt'. (23:00:05) Status: Done reading 'db/skill_cast_db.txt'. (23:00:05) Status: Done reading 'db/skill_unit_db.txt'. (23:00:05) Status: Done reading '145' entries in 'db/produce_db.txt'. (23:00:05) Status: Done reading '95' entries in 'db/create_arrow_db.txt'. (23:00:05) Status: Done reading '266' entries in 'db/abra_db.txt'. (23:00:05) Status: Done reading 'db/skill_castnodex_db.txt'. (23:00:05) Status: Done reading 'db/skill_nocast_db.txt'. (23:00:05) Status: Done reading '804' entries in 'mob_db.txt'. (23:00:05) Status: Done reading '37' entries in 'mob_db2.txt'. (23:00:05) Status: Done reading '37' entries in 'mob_avail.txt'. (23:00:05) Status: Done reading 'mob_branch.txt'. (23:00:05) Status: Done reading 'mob_poring.txt'. (23:00:05) Status: Done reading 'mob_boss.txt'. (23:00:05) Status: Done reading 'mob_pouch.txt'. (23:00:05) Status: Done reading 'mob_skill_db.txt'. (23:00:05) Status: Done reading 'mob_skill_db2.txt'. (23:00:05) Status: Done reading 'mob_race2_db.txt'. (23:00:05) Status: Done reading 'exp.txt'. (23:00:05) Status: Done reading 'skill_tree.txt'. (23:00:05) Status: Done reading 'attr_fix.txt'. (23:00:05) Status: Done reading 'statpoint.txt'. (23:00:05) Status: Done reading 'db/job_db1.txt'. (23:00:05) Status: Done reading 'db/job_db2.txt'. (23:00:05) Status: Done reading 'db/size_fix.txt'. (23:00:05) Status: Done reading 'db/refine_db.txt'. (23:00:05) Status: Done reading '24' entries in 'castle_db.txt'. (23:00:05) Status: Done reading '15' entries in 'guild_skill_tree.txt'. (23:00:05) Status: Done reading '29' pets in 'pet_db.txt'. (23:00:05) Status: Done reading '16' homunculus in 'db/homunculus_db.txt'. (23:00:05) Status: Done reading '99' levels in 'exp_homun.txt'. (23:00:05) Status: Done reading 'homun_skill_tree.txt'. (23:00:09) Status: Event 'OnInit' executed with '388' NPCs. (23:00:09) Status: Server is 'ready' and listening on port '5121'. (23:00:09) Status: Attempting to connect to Char Server. Please wait. (23:00:09) Status: Connecting to 222.152.179.126:6121 (23:00:09) Status: Logging in to char server... (23:00:09) Status: Successfully logged on to Char Server (Connection: '1624'). (23:00:09) Status: Sending maps to char server... (23:00:09) Status: Event 'OnCharIfInit' executed with '0' NPCs. (23:00:09) Status: Event 'OnInterIfInit' executed with '0' NPCs. (23:00:09) Status: Event 'OnInterIfInitOnce' executed with '24' NPCs. (23:00:09) Info: From login-server: receiving information of '0' GM accounts. (23:00:09) Status: Map sending complete. Map Server is now online. (23:00:09) Info: Received Fame List of '0' characters. (23:07:03) Info: Closed connection from '5.92.202.113'. (23:07:17) Info: Player AID:2000002/CID:150001 (not authenticated) logged off. (23:07:39) Notice: Character (aid: 2000002) not authed within 30 seconds of character select! My character log (23:00:03) Status: Memory manager initialised: log/char-server.exe.leaks (23:00:03) Status: Done loading plugin 'UPnP' (23:00:03) Info: Reading configuration file conf/char_athena.conf... (23:00:03) Status: eAthena server has been initialized (23:00:03) Info: Console Silent Setting: 0 (23:00:03) Info: Reading configuration file conf/import/char_conf.txt... (23:00:03) Info: Done reading conf/import/char_conf.txt. (23:00:03) Info: Done reading conf/char_athena.conf. (23:00:03) Info: Reading the configuration file conf/subnet_athena.conf... (23:00:03) Status: Read information about 1 subnetworks. (23:00:03) Error: Using the default user/password s1/p1 is NOT RECOMMENDED. (23:00:03) Notice: Please edit your save/account.txt file to create a proper inter-server user/password (gender 'S') (23:00:03) Notice: And then change the user/password to use in conf/char_athena.conf (or conf/import/char_conf.txt) (23:00:03) Status: Multiple interfaces detected.. using 222.152.179.126 as our IP address (23:00:03) Status: mmo_char_init: 1 character read in save/athena.txt. (23:00:03) Status: Loaded 0 saved status changes for 0 characters. (23:00:03) Status: The char-server is ready (Server is listening on the port 6121). (23:00:04) Info: Attempt to connect to login-server... (23:00:04) Status: Connecting to 222.152.179.126:6900 (23:00:04) Status: Connected to login-server (connection #1628). (23:00:04) Status: Awaiting maps from map-server. (23:00:04) Status: From login-server: receiving information of 0 GM accounts. (23:00:09) Status: Map-Server 0 connected: 595 maps, from IP 222.152.179.126 port 5121. (23:00:09) Status: Map-server 0 loading complete. (23:01:03) Info: Saving all files... (23:02:18) Info: Account Logged On; Account ID: 2000002. (23:03:03) Info: Saving all files... (23:05:55) Info: Account Logged On; Account ID: 2000002. (23:06:03) Info: Saving all files... (23:06:19) Info: Subnet check [5.92.202.113]: WAN (23:06:19) Info: Character selection 'Nani' (account: 2000002, slot: 1). (23:07:01) Info: Account Logged On; Account ID: 2000002. (23:07:02) Info: Subnet check [5.92.202.113]: WAN (23:07:02) Info: Character selection 'Nani' (account: 2000002, slot: 1). (23:07:03) Info: Saving all files... My login (23:00:03) Status: Memory manager initialised: log/login-server.exe.leaks (23:00:03) Status: Done loading plugin 'UPnP' (23:00:03) Info: Reading configuration file conf/login_athena.conf... (23:00:03) Info: Console Silent Setting: 0 (23:00:03) Info: Reading configuration file conf/import/login_conf.txt... (23:00:03) Info: Finished reading conf/import/login_conf.txt. (23:00:03) Info: Finished reading conf/login_athena.conf. (23:00:03) Info: Reading the configuration file conf/subnet_athena.conf... (23:00:03) Status: Read information about 1 subnetworks. (23:00:03) Status: mmo_auth_init: 3 accounts read in save/account.txt, (23:00:03) Status: of which is no GM account, and [Status]: read_gm_account: file 'conf/GM_account.txt' read (0 GM accounts found). (23:00:03) Status: The login-server is ready (Server is listening on the port 6900). (23:00:04) Status: Connection of the char-server 'eAthena' accepted. (23:01:51) Status: Connection of the account 'gabrielwoon' accepted. (23:06:56) Notice: User [2000002] is already online - Rejected. (23:07:01) Status: Connection of the account 'gabrielwoon' accepted. Last edited by gabrielwoon; 08-28-2007 at 04:10 AM. |
| | |
| | #3 |
| Registered User | Re: Dark_Silence's private ro server tutorial with hamachi(and images!) if im going to edit some items what would i do?? |
| | |