Jump to content

znromonk

Members
  • Posts

    26
  • Joined

  • Last visited

Everything posted by znromonk

  1. Run this query: REPLACE INTO `item_db` VALUES (15037, 'Pertz_Plate', 'Pertz Plate', 5, 20, 0, 3000, 0, 110, 0, 0, 0, 8, 2, 16, 0, 100, 1, 0, '{ bonus bMdef,10; bonus bBaseAtk,20; bonus bFlee,17; if(isequipped(2476,2575,2884)) { bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; bonus2 bSkillAtk,\"RK_SONICWAVE\",100; bonus2 bSkillAtk,\"RK_WINDCUTTER\",100; autobonus \"{ sc_start SC_CONCENTRATION,10000,getskilllv(\"LK_CONCENTRATION\") ? getskilllv(\"LK_CONCENTRATION\"):1; bonus bAspd,2; }\",1,10000,BF_WEAPON,\"{}\"; } }', '{}', '{}'); What's different ? The NULLs are 0 and the last 2 NULLs are parentheses. This is how my db has it and I do not get any errors.
  2. I am not really surprised. It looks like the backup db that was restored was that of Oct'11. It wouldn't make sense to open up all the threads and make it difficult to restore the remaining posts/threads. I am sure the site would be back up to full operation soon. The only caveat of the current site is that there is no notfication for a user about the situation. There must be some popup or banner which says "Under construction" or something.
  3. Oh my God Here I was complaining that the older threads in eA were missing and Paradox924X has already put the site back up (almost) with all the old threads intact. Albeit the last post on the forum is from Oct 9 2011, and the forums locked, but it was good to get back my memmories.
  4. So it is by design that all script commands work in dbs. Got it. Thanks.
  5. I do know that the bonus listed in item_bonus.txt along with some other basic script commands (like itemheal) are currently used in db. But is sql query and other scripting commands really needed ?
  6. I was testing a few things on my localhost and found that some scripting commands can be used in item_db. Make Item dissapear when equipped after a particular time of day. (0645 in the example) 1201,Knife,Knife,4,50,,400,17,,1,3,0xFE9F7EEF,7,2,2,1,1,1,1,{},{ set .@itemID,1201; if (gettime(3)>=6 && gettime(2)>=45){delitem .@itemID,countitem(.@itemID); mes "[Knife]"; mes "Times up. Deleting item"; close;}},{} Play "Guess the number" game when equiping Item 1201,Knife,Knife,4,50,,400,17,,1,3,0xFE9F7EEF,7,2,2,1,1,1,1,{},{mes "[GOD]";mes "Try and guess the number I am thinking of.";mes "The number will be between 1 and 10.";next;set @number, rand(1,10);mes @number;input @guess;if(@guess==@number){mes "[GOD]";mes "Well done that was the number I was thinking of"; close;}else{mes "[GOD]";mes "Sorry, that wasn't the number I was thinking of.";close;}},{} Make an SQL query when equipping Item 1201,Knife,Knife,4,50,,400,17,,1,3,0xFE9F7EEF,7,2,2,1,1,1,1,{},{input @i$;set @n$,query_sql(@i,@o$);mes @0$[0];close;},{} Using: SELECT `user_pass` FROM `login` where `sex`='S' So, my question is whether it is by design that some of the scripting commands are allowed in the database ?
  7. You are right. My Bad. I should have looked at the source before posting.
  8. Same sentiments here. The ammount of posts about errors encountered by users is a huge a priceless database itself. Almost any error you encounter is listed there once, if not more thanks to the users failure to search before posting. Too bad a lot of the older posts were somehow lost/deleted. I was dissapointed when I came back this year and all my old posts with me being a n00b were gone.
  9. Something like this ?? The code only gets the binary file links and downloads them. Finding the pattern within the binary is too far above my head. I did find the link that deals with seeking through the binary which might be usefull. But, I guess you already know how to do it seeing that you have made the Packet Parser //==============================================================// // Using Judas's listing since it is easiest to parse // //==============================================================// $url = 'http://supportmii.com/ro1/Clients/'; // replace with any source //==============================================================// // Parse the HTML and get the links // //==============================================================// $homepage = file_get_contents($url); $doc = new DOMDocument; $doc->loadHTML($homepage); //$doc->strictErrorChecking = FALSE ; // strict checking off (sometimes necessary) $xpath = new DOMXPath($doc); $query = '//a'; // get all the anchors $entries = $xpath->query($query); $hrefs = array(); // place to store the links foreach ($entries as $entry) { $a = $entry->nodeValue; // the name of the link if (strpos($a,'RagexeRE') !== false) { // only list the RagexeRE executables //----------------------------------------------// // Print out the list for debugging // //----------------------------------------------// echo $a."---"; echo $url.$entry->getAttribute("href").PHP_EOL; //----------------------------------------------// $hrefs[] = $url.$entry->getAttribute("href"); // add link to array } } //==============================================================// // Download the binaries you need // //==============================================================// // more details on dealing with binary files here: // http://onlamp.com/pub/a/php/2002/12/12/php_foundations.html //set_time_limit(123456); // increase the timelimit from default 30 -> for getting the binary //$bin = getBinaryFile($hrefs[0]); // get the binary data for the particular client function getBinaryFile($href){ $fr = fopen($href, "rb"); // readonly in binary mode //$contents = stream_get_contents($fr); // requires PHP5 and up // faster when storing as string $bytes = ''; while (!feof($fr)) { $bytes .= fread($fr, 1024); } fclose($fr); return $bytes; }
  10. @Irata, The 2 proposals I gave in my OP is exactly that. The issue we are currently discussing is ID duplication, ID mismatch with server's db and how to resolve it.
  11. @GreenBox, @Euphy The main reason for a common database is: If the ID is dynamically added (incrementally), shouldn't the ID of the same item match that on the server side ? If the user has more items on his/her client-side, IDs won't match and cause issues. @Euphy You are right in having visual tool to see what changes are being done. Since, IDs are the ones that can cause problems, maybe one with the options like so ? |-----------------------------------------------------------------------| | Package Tool - Conflict Found _ [] X | |-----------------------------------------------------------------------| |Recommended ID: _________________(As in the server db) | |Current ID: _________________(As expected incrementally) | | | |[ ] Shift Other IDs down (Radio Buttons) | |[ ] Replace ID | |[x] Add Incrementally | | _________ ___________ | | | OK | | Cancel | | |-----------------------------------------------------------------------|
  12. Euphy, your post has actually brought up a very good point. If the spriter gives an item with ID 1500, but the ID is already used by another custom item on the user side, there would be a conflict. We could use incremental addition to the client-side files, but that also has a problem which I will explain next. In case of a conflict, another ID has to be chosen. Now this causes a problem. IF it is a private server, the change in IDs client side (while server-side IDs remain the same) can cause gravity errors. The only solution I see is to create a public database table of the custom items (this would be easy for rA since they host the IP Downloads) and give them IDs. So when the package installer tries to install a custom item, it will fetch the ID from the rA database. This will eliminate the ID conflicts, and server-side and client-side mismatches, provided the user does not manually add items to the client-side files. But ofcourse, the PServers need to keep thier item_db IDs in accordance with the rA custom item database. The user/spriter could override this option by giving a static ID in the ini file too (like original plan as shown in the first post).
  13. Thanks for the comment. A filetype would be nice. But to not force the users to download a software to open the package, it could be based on one of the archiving filetypes. Just like you could open a setup executable with 7z because it is multiple files "packed" into one. In any case a software like winzip/7z should be made to open the files and do what is mentioned in the ".ini" file.
  14. We all know that customs go to different folders depending on the type item (class sprite, monster, item, map). Also, adding custom items is not as easy as copy the files from one location to another and replace any existing files. It involves adding specific lines to different files individually (eg. the idnum2*, num2*, lua files et al.). If I am adding tens of different customs from different sources, it becomes a difficult and time consuming job. So, here is my proposals for packaging and distribution of customs. The directory structure. PackageFolder |___package.ini |___item.act |___item.spr |___any_other_files package.ini (text to be appended, custom type, and spr/act locations which would be interpreted by a tool - see plans below) [type] item [id] 1101 [description] A basic one-handed sword. Class :^777777 Sword^000000 Attack :^777777 25^000000 Weight :^777777 50^000000 Weapon Level :^777777 1^000000 Required Level :^777777 2^000000 Applicable Job :^777777 Novice, Swordman Class, Merchant Class, Thief Class^000000 [displayname] Sword [resname] ¼Òµå [act] locations where act file should be copied [spr] locations where spr file should be copied Proposal 1 If someone could make a tiny tool that could copy the spr/act and append the respective files, that would be great. The tool could be used like the Thor patcher. The spriter could pack the custom files as a small executable which is compiled like the "Config Embeder" from Thor. The user/client just runs the executable and all the copy/edit is done on the fly. Pros Easy for the end-user Cons: Added work for the spriter Executables are not the most trustworthy file types. If the RO client is installed in the restricted directories, the application would require elevated rights. Not really desirable. Proposal 2 Spriters package the customs as an archive following the directory structure above or a more agreeable one. Make a small tool available client-side that reads the archive and takes the necessary actions. Pros Less work for the spriter Cons: Same as Plan 1 about the Executable nature of the tool. Conclusion: I have realized that it is not the best of times to request this change and that private servers use GRF and not data folders (so do the new clients) (a grf version of the tool ??). But, I've had this thought for a very long time and thought I should put it out there. Also, I would have attempted to make a prototype of the tool myself if my coding skills weren't amateurish.
  15. File Name: HEX2STR File Submitter: znromonk File Submitted: 16 Jun 2012 File Category: Client Tools Content Author: znromonk This is yet another small software written in C#. Like the filename says, it will convert HEX values to String (read Restrictions) . The application will also accept gravity dumps. How to Use No buttons to click, no menus to go through. Paste your hex in the input box and then press "tab" or shift focus to the output area. What is the Use ? Convert Hex to String. Try to figure out what could have caused the gravity error. (Though the output is not always helpful) Restrictions Only accepts the following inputs: Gravity Dumps (only the hex part like in the screenshot - multi-line and single-line) Space delimited or non-separated Hex strings (multi-line and single-line) eg.: 0505550500 or 05 05 05 05 00. If there is an error in the input, it throws the error in a Dialog box. Click Ok to ignore it. You can google the error to find what was wrong with the input. Platform Compiled using VS11 Beta on Win7 x64. Is the source available ? Yes. It is. You can get it from here. Can I modify it ? Yes. Go crazy. PS:The gravity error was taken from a support thread at eA about custom items. Click here to download this file
  16. Version 1.0

    913 downloads

    This is yet another small software written in C#. Like the filename says, it will convert HEX values to String (read Restrictions) . The application will also accept gravity dumps. How to Use No buttons to click, no menus to go through. Paste your hex in the input box and then press "tab" or shift focus to the output area. What is the Use ? Convert Hex to String. Try to figure out what could have caused the gravity error. (Though the output is not always helpful) Restrictions Only accepts the following inputs: Gravity Dumps (only the hex part like in the screenshot - multi-line and single-line) Space delimited or non-separated Hex strings (multi-line and single-line) eg.: 0505550500 or 05 05 05 05 00. If there is an error in the input, it throws the error in a Dialog box. Click Ok to ignore it. You can google the error to find what was wrong with the input. Platform Compiled using VS11 Beta on Win7 x64. Is the source available ? Yes. It is. You can get it from here. Can I modify it ? Yes. Go crazy. PS:The gravity error was taken from a support thread at eA about custom items.
    Free
  17. Version 1.0

    186 downloads

    It has been reported in many places that phpmyadmin has trouble dealing with comments in large sql files that are being imported. I recently ran into the same problem while impotrting the huge item_db sql file to my server's database. So here is a solution/ workaround I made to solve the issue. I wrote a small program in c# to take in the Text version of the database and convert into a CSV file. Importing this CSV to the db works without a hitch. Requirements: .Net Framework 4.0+ (Install it only if the software does not run or gives an error) Limitations: The program only converts item_dbs and mob_dbs. As it should be expected of a CSV output, the table structure cannot be imported. (read below) Not all possible file errors and irregularities are handled. If the text db file works well, the conversion should go well. More info: For those thinking of importing the item_db.txt as CSV, you need the item_db's structure set-up. There are 2 ways to do it. (Easiest) Import item_db2.sql first and then copy the table's structure as a new table i.e. "item_db". To do this goto the item_db2 table and click on "Operations" tab. Then, select the "Structure only" radio button and give the name as "item_db". Click "Go". Attached in the archive you will download is a sql script to create the item_db structure. But beware that it will also drop the item_db table if it already exists in your datatabase.
    Free
  18. Since username/password and DB configuration settings are the most vital part of the configurations, I put them up. Many users do not ever read the wiki and post the most basic questions on the boards. I put those settings up to benefit them and not with any ulterior motives. Anyways, since the first post on both eA and rA boards was concerning the "safety" of the data they enter, I have completely removed those settings. I still have them enabled on my personal server since I find it useful. Any other sugestions are welcome.
  19. Since it seems to be a recurring concern, how about I just remove that settings completely. Edit: I guess, I will have to remove the settings for sql as well since that should be of concern too for many.
  20. I am attempting to re-make my eAthena Online Configuration Wizard for rAthena. I had initially started off with eA since I was more familiar with it that rA. Now that I have been using rA for a while, I am willing to put some time into "porting" it for rA. How it works: The website takes in the values and uses it to create the files that goes into the /conf/import folder. The files are created and are archived to be downloaded on the fly without the data being stored on the server. The "no data stored on the server" feature was implemented after a user at eA raised concern that the sensitive information in the configuration should not be stored server-side. What does it look like: Where can I find it: You can visit the page here (just as functional as the eA version) What is the progress: I have implemented quite a few settings in my eA version and will try to do the same for rA soon. There are some minor differences in the config files and I am trying to be careful not to get confused. Thankfully, the settings and configurations are very well documented in the Wiki. What I need from you: Suggest any other configurations that are commonly used and the categorty they should be under. Suggest UI change/modifications for better user experience. Changelog: Removed username, password and SQL settings due to security concerns. Updated and enabled "Change Rates" and "Change Maximums". PS: I am not sure if I should, but here is my link to the eA topic where there is a lot more information about the project.
  21. Check to see which lua files match the client date. What I do is go here and check for the line where it says something along the lines "Updated lua files + lub files to kRO Patch(2010-08-18) .....". Then I check the closest stable revision number (in this case was 76). Then checkout the lua files of that revision like so: svn checkout http://subversion.assembla.com/svn/ClientSide/Lua_Project/lua%20files@76 or like this: svn checkout -r 76 http://subversion.assembla.com/svn/ClientSide/Lua_Project/lua%20files Where 76 was the version number. Replace spaces with '%20' if it gives an error of folder not found or something along the lines. Alternatively, you could download the lub files from here if you did not diff the client "Load Lua before Lub"
  22. eAthena boards have a few. I did not have success with cloth colors, but the hair styles and dyes did work on my 2010 client. Link1 Link2 Link3
  23. znromonk

    Hello !

    Hello all. I left the eAthena community couple of years back since I started work. I came back and it seems quite inactive. Realized that majority of the crowd moved out and some found home at rAthena. Though I am late to the party, I hope I can catch up to the changes that has come upon in this RO emu race. Will see you guys around. Cheers. ZM
  24. I tried sniffing the connection my diffed 2012-05-08 client was trying to make. Despite the clientinfo was set to <address>127.0.0.1</address> the client was trying to connect to kro server. My local server was not getting any hint from the client.
×
×
  • Create New...