Jump to content

anacondaq

Members
  • Posts

    1096
  • Joined

  • Days Won

    40

Everything posted by anacondaq

  1. download opensetup, copy it to your game folder, and run. Then select your resolution and play.
  2. It is necessary to express gratitude not to me, but to the person who created this amazing package of tools called OpenServer. The site of his program is here: https://ospanel.io
  3. Download: https://www.dropbox.com/s/102dbick5t1nqaz/prepre modified bad files (extract to rathena folder).rar?dl=0 Extract to your rAthena folder Run again runserver_PRERE.bat
  4. First of all - this update has not yet been developed and is not implemented in the emulator. Second, this emulator comes without .git folder. Perhaps in future versions I will change the emulator a bit and I will provide a git clone of the repository from the github, but these changes will not be soon presented. The package of files presented in this topic was not created for updating and development, but for helping beginners to quickly start using the emulator for their own purposes. Read the official guides and bend the emulator branch to your PC and configure it for use with the gaming client and OpenServer from this package.
  5. My english is not good, can you explain with any example? I want understand =)
  6. no, sorry, i will not. What you and other people which is using this package must understand: This is package of ORIGINAL NOT MODIFIED RATHENA and all related to this rAthena files this is not support topic about all rAthena stuff, if you experience an issue, ask for a help at different topics on rAthena board client-side packed from https://github.com/zackdreaver/ , and it's not mine client, i just packed it, so if you experience issues with client, ask for help at topics related to game client i can help only with basic problems which related ONLY to this package i made this package for newbies, because it's time to bring new fresh blood to rAthena development and bring new wave of developers here, + need to help people who wish to play offline, but dunno how to do it. This is not "separate pack or project", it's just "tuned" things what you see around rAthena and developed only for saving time for people. everything here what you see were tested, and tuned, it's works in my opinion - perfect. Summarize: If you have any problems related to configs, databases, etc files in emulator, then try to search answer with google on board, just example: http://bfy.tw/ASwz If you have any problems related to client, then report about the problem to author of this client (https://github.com/zackdreaver/) If you have problems with OpenServer, then ask for help, or search for problem solving solution at official OpenServer forum board here: https://ospanel.io/forum/viewforum.php?f=9&sid=a803fa83e394b13b5b602acc0651e2d9 If you wish to build your own server, or modify any part of this package, read official documentation, you can start to read here: https://github.com/rathena/rathena/wiki then you can continue to read about frequent problems, or questions, or features in different categories at this board, usually such topics pinned to top. Like: https://rathena.org/board/forum/24-installation-support/ or https://rathena.org/board/forum/31-database-support/, etc
  7. @tepek already answered above, but all account data not use any hash algorithm, and all data in raw plain text in your database. Here is tables which you should to know: login = login details (userid / pass / account_id / email / lastlogin date/ etc), please see fields of this database and you will understand char = all data related to your character, like: name, job, level, your account_id,etc inventory / storage / cart = i hope you understand what is it etc tables important, but you better research them later with some experience. What should you do? At this package you have as i said before - full set of everything to easy managment EVERYTHING. So, in your case your problem related to database. Database hosted in mysql-server. So you need open edit editor to view database and read value from it. For this you need for example phpmyadmin (which you can already have) or adminer, or even HeidiSQL. I suggest you to use phpmyadmin. Run your OpenServer (green flag) Click on this green flag -> avanced -> phpmyadmin will be opened browser with page to login to phpmyadmin (phpmyadmin it's tool which allow you easy to edit your database) enter to login field "root", leave pass field empty (no password at all), and press login button or enter then you will load to your mysql server database storage at left pane select your game-server database (for main server where stored all important server data you need to click on rathena_db, for vieweing logs -> rathena_log) then when you will open it -> find in tables "login" table inside this database and click on it then you will see table with all accounts created by you find your user, and get your data, or even change it to your own pass or login like you wish xD restart game-server to apply effects.
  8. Mine package do not have GRF which has pallets what you have setted up in config file. If you wish add your own pallets, download grf which related to your pallets numbers in config, and add to data.ini file to load this grf file with pallets. Example Download this pallets uploaded by @KamiShi Add this grf to your kRO game client folder, open data.ini and add this grf your data.ini (say client to load this grf) Open your conf/battle/client.conf file and change parameters to: max_body_style to 553, max_hair_color to 251. About max hair styles - i do not added any hair styles to this grf, it uses default zacks files. So, default number is 29, so max_hair_style: 29 restart server run game client, have fun
  9. Disable your "old" mysql-server (mysqld-nt.exe) while you are using OpenServer (open-server has his own mysql server). I don't know what is "mysqld-nt.exe" and how to turn it off, but i guess if it comes from official installer of mysql-server for windows, that it already at your services. So find service (i can be wrong) called mysql and turn it off, and enable it only when you need it. Or move all your databases to OpenServer (if you wish) to avoid any confusion in future. I don't know what is it can be. You can use GRE Editor to catch all files which uses the word of error in client files. I guess it's something wrong with LUA files, but i don't know with which one.
  10. Maybe in next versions and updates (not soon) i will add raw git repository with hidden .git folder and portable git client, who knows. But for now i don't have a time for that. Just start with what you have, be sure, after some research how is configured, you will understand what setting is for, and when you decide to make your own server, you can always use rAthena folder from the pack as real example and compare with rathena taken from github repository to avoid mistakes or errors. About client side, it's not so easy at all, because client-side managed by 1 guy, and better if author of client-side will answer buy himself. about "how make your own server-side" which you will be able to update. First of all watch the video, to understand theory. then, download any normal git client, like: SmartGit, or SourceTree, or GitKraken then, with Git GUI Client clone official repo from github to your PC: https://github.com/rathena/rathena/ then, take Visual Studio Community Edition 2015 (yes, size of it 8GB (LOL)) and install it (C++ support must be added in installer) you will use it everytime when sources changed to recompile your server. then time to time just watch on rathena github repo, and if new updates comes, just grab them via "Pull" (see video above, and you will understand) configuration part how to setup rAthena you can read here at forum. And see examples of configs at configured by me rAthena folder in the pack. Rest guides how setting Up rAthena - you can find in official wiki or here at forum (use search) https://github.com/rathena/rathena/wiki OpenServer from the pack you will use as your MySQL server, because it's most powerful and most easiest solution what you can find at the market, which not bugged, and not complicated, and at the same time clean, stable, and effective with nice gui and set of tools which of course (at least phpmyadmin) you will use in your real life when you will learn rAthena. But the best what you can start to do, it's start to read complete documentation (yes, it's not good, and i hate it a lot, but i have bad english, and i can't suggest better documentation which available now at rA).
  11. I have added answers for your second question to main topic. See screenshow below: What do you see on screen please check for "numbers in cyan squares"? Server DB path depends on your mechanic (RENEWAL (runserver.bat) or PRE_RE (runserver_PRERE.bat)) you enter path via browse icon to your rathena items, in my case i'm using RE database, and as you see i have path to db/re/ files Then, you need drag'n' drop with next priority grfs to Resources files folder. Drag and drop in next priority. Btw, you can right click on grf and change order for loading grfs in that field Then, you need set for SDE where is located your Lua Files (it's item description for ro items), in my case see screenshot Then, do not forget to change Client Encoding and Server encoding to use always Korean characteres insteed of broken cp1251, or cp1252 encoding. Then do: File -> Save Project Info. (just to save all options and manipulations which you have done with SDE) Done. Now you can click on different tabs and edit your items \ etc in GUI (see screenshot below under spoiler) Btw, you can set even much more settings for your database if you will extract your lua files from rAthena2017.grf and will load lua files to "Lua Settings" window (see screenshot below)
  12. The topic has been removed because of rAthena staff double standards and hypocrisy things. (rA staff blame me that I made a money on this topic while it's not and never was) All that I did for the last 2.5 years with around ~1k answers from my side is help for free for newbies here, but to rA staff, my topic is a pain in the ass. Sorry guys, but the topic can't be maintained on such a community anymore because of its admins. Bye
  13. please wait some time, i will make 1click solution for you and for all newbies around here. i will post when it will be ready (today) done, here is it:
  14. Related to floor item data. My question related to subject. In other words we have favorite items (items which marked as favorite (they are placed to favorite tab)). Seems like there are some small bug, but i can't yet confirm it on official server. The problem related to next: If you add item to favorite tab, and then you drag'n'drop this item from favorite tab in inventory to the ground, and then you will pickup item, is this item will go back to favorite tab or not, or just to classic tabs in inventory (depends on item type)? Can anybody confirm this behavior? Everything looks like favorite items after drop to the ground should back to favorite tab in inventory list, but it's not working in rAthena.
  15. Overpriced Gepard Monopoly Only. There are no any other protection for game-server except Gepard in 2017... I heard something about ragnashield and Ring-0 Security About first one, i saw this protection if i remember at NovaRO some time ago, and at this server i saw how it were bypassed. So i have only negative reviews about this protection. But it was some time ago, not now, and maybe something changed with this protection. What about Ring-0 - i can't say anything for now, not tested yet, not even implemented. All of these protections easy to install for eAthena based server.
  16. Are there anyone to whom "such reading" helps? I think practice and playing with real server will help much more then any theory. But for that need to download rAthena starter pack or something like that. I already saw it here at forum somewhere (maybe links is broken) use search.
  17. @Tokei i have a problem with GRF Editor 1.7.9.5 When starting GRF Editor i receive notice window with next text: --------------------------- Information --------------------------- An error has been encountered before the application could load properly. An unhandled exception has been thrown : Failed to load the decompression library (Files.lzma.dll). --------------------------- ОК --------------------------- Win10x64, v1607 UAC Enabled. GRF Editor Installed to C:\Program Files (x86)\GRF Editor\ EDIT: Okay, after installing VC++ 2010 redistributable files (x86) problem solved.
  18. First of all thank you very much for really nice feature =)
  19. Your question very strange. In your message i do not see any information how to help you. Please provide much much more details about your problem, like: are you have any problems with your database right now (any performance, etc) how big player base? How many active players usually per day? Tell some info about your server customization (it's for array / variable optimizations only, but i think you have kamishi-like addons which uses millons of rows for just stupid pallets or something like that) total database size tables list with tables size what is your mysql --version? show your my.cnf (mysql configuration) how many ram using your mysql server for now with your db? show information about your CPU (model \ Ghz \ cpuinfo) show information about your current disk \ model \ what speed of drive, how many iops etc Only then depends on this information possible to walk to next step of understanding where is a problem and how optimize it. This issue very hard and complicated to be clear, but you can follow some basic recommendations for your server optimizations like: use latest up to date mysql version, and see benchmarks of it. For example 5.7.* version faster then 5.5, 5.6 proof. but at the same time mysql 5.7 has some compatibility issues, like: https://github.com/rathena/rathena/issues/1210 Usually when very large data available your disk drive (if your database not loaded to memory) will be bottleneck, so get only SSD / SSD NVMe disks for your database Then, it's not correct, but better if you will use some tools like mysqltunner to understand some basic guide where need to move next, or for example https://tools.percona.com/wizard to configure your database depends on your problem. Then, please start to analyze your database, and understand what table sizes are big, and check the most common tables, and find reason what thing generate it, maybe it's time to rewrite some of your scripts? What do you think? Then, please enable for some time slow querries log to understand what querries uses hell a lot of your server resources, and optimize it (do not forget to disable it) log database, maybe it's time to review logging things, maybe hell a lot of things at logs you are not using, or you can compress for example in seperate database? It's just few cents what need to do... But for sure, there can be hell a lot more optimizations, because this problem very actual and very popular, and very complicated. Ah, and last, don't try to switch your mysql server to percona / mariadb, they will not give any benefits for you, tested, and confirmed on large databases by me several times, + you can see different benches in internet about it. 5.7 mysql version very fast
  20. buy ddos protected hosting. There are no "free" or "cheap ways". Avarage price for normal ddos protection against common attacks starting from ~40-50$ / mo. If you see ddos protection price less then this range, be sure attachers will bypass it (if they are not dumb) and traffic to your server will be blackholed, or nullrouted. Depends on location, and ddos protection quality you will see different price for such VPS / Dedi, but it's always not cheap, even if you see 2$ / mo offers. Try to google ddos protected providers somewhere at USA, they are usually cheap.
  21. I have checked it, and a little bit edit it, + few tests. Looks like works fine, but not sure (because i have no time for now, but you can test it by yourself if you wish). Here is actual modified updated manual patch, just follow instructions, it's not "git patch", because my emulator very customized, and i do not have clean rA. ============================================================================ 1. add to /doc/script_commands.txt (anywhere, but better if to end of file): ============================================================================ *getitem_map <item id>,<amount>,"<mapname>"{,<type>,<ID for Type>}; This command will give a specific amount of specified items to the players on the specified map. Works similarly to getitem but for multiple players on certain map. Negative ID numbers also apply. However item name is currently not supported. Those parameters that are different from 'getitem' are: mapname - Map name of the players to give the item(s) too type - Optional. Type 0 = everyone on the map (default) 1 = specific party and their members on the map 2 = specific guild and their members on the map 3 = specific battleground team and their members on the map ID for Type - Only needed if type is not 0 If type = 1, ID is Party ID If type = 2, ID is Guild ID If type = 3, ID is Battleground ID If type is given, party members who are offline or are not on the specific map do not get the item. Same for guild members. If BG ID is not found, it will not give to any players. This transaction is logged if the log script generated transactions option is enabled. Created by Xantara --------------------------------------- ============================================================= 2. create npc at npc/test/npc_getitem_map.txt with next code: ============================================================= // Sample NPC to test the custom getitem_map script command // Script and command created by Xantara prontera,156,170,3 script getitem_map test 120,{ mes "input item id"; next; input .@id; mes "input item amount"; next; input .@amt; mes "input type:"; mes "0=everyone, 1=party, 2=guild 3=bg"; next; input .@t; //getitem_map .@id,.@amt,strcharinfo(3),.@t,((.@t==1) ? getcharid(1) : (.@t==2) ? getcharid(2) : getcharid(4)); switch(.@t) { case 1: set .@type_id, getcharid(1); break; case 2: set .@type_id, getcharid(2); break; case 3: set .@type_id, getcharid(4); break; } getitem_map .@id,.@amt,strcharinfo(3),.@t,.@type_id; mes "done"; close; } ================================================================ 3. open src/custom/atcommand.inc and add next code to this file: ================================================================ /*========================================== * 0 = @itemmap <item id/name> {<amount>} * 1 = @itemmap1 <item id/name> <amount>, <party name> * 2 = @itemmap2 <item id/name> <amount>, <guild name> * [Xantara] *------------------------------------------*/ ACMD_FUNC(itemmap) { char item_name[100], party_name[NAME_LENGTH], guild_name[NAME_LENGTH]; int amount, get_type = 0, flag = 0, get_count, i, map; struct item it; struct item_data *item_data; struct party_data *p; struct guild *g; struct s_mapiterator *iter = NULL; struct map_session_data *pl_sd = NULL; nullpo_retr(-1, sd); memset(item_name, '\0', sizeof(item_name)); memset(party_name, '\0', sizeof(party_name)); memset(guild_name, '\0', sizeof(guild_name)); if (strstr(command, "1") != NULL) get_type = 1; else if (strstr(command, "2") != NULL) get_type = 2; if (!message || !*message || get_type == 0 && sscanf(message, "\"%99[^\"]\" %d", item_name, &amount) < 1 && sscanf(message, "%99s %d", item_name, &amount) < 1 ) { clif_displaymessage(fd, "Please, enter an item name/id (usage: @itemmap <item name or ID> {amount})."); return -1; } if ( get_type == 1 && sscanf(message, "\"%99[^\"]\" %d, %23[^\n]", item_name, &amount, party_name) < 2 && sscanf(message, "%99s %d, %23[^\n]", item_name, &amount, party_name) < 2 ) { clif_displaymessage(fd, "Please, enter an item name/id (usage: @itemmap1 <item id/name> <amount>, <party name>)."); return -1; } if ( get_type == 2 && sscanf(message, "\"%99[^\"]\" %d, %23[^\n]", item_name, &amount, guild_name) < 2 && sscanf(message, "%99s %d, %23[^\n]", item_name, &amount, guild_name) < 2 ) { clif_displaymessage(fd, "Please, enter an item name/id (usage: @itemmap2 <item id/name> <amount>, <guild name>)."); return -1; } if ((item_data = itemdb_searchname(item_name)) == NULL && (item_data = itemdb_exists(atoi(item_name))) == NULL) { clif_displaymessage(fd, msg_txt(sd,19)); // Invalid item ID or name. return -1; } if (amount <= 0) amount = 1; map = sd->bl.m; memset(&it,0,sizeof(it)); it.nameid = item_data->nameid; if(!flag) it.identify = 1; else it.identify = itemdb_isidentified(item_data->nameid); if (!itemdb_isstackable(item_data->nameid)) get_count = 1; else get_count = amount; switch(get_type) { case 1: if( (p = party_searchname(party_name)) == NULL ) { clif_displaymessage(fd, msg_txt(sd,96)); // Incorrect name or ID, or no one from the party is online. return -1; } for( i=0; i < MAX_PARTY; i++ ) if( p->data[i].sd && map == p->data[i].sd->bl.m ) pc_getitem_map(p->data[i].sd,it,amount,get_count,LOG_TYPE_COMMAND); break; case 2: if( (g = guild_searchname(guild_name)) == NULL ) { clif_displaymessage(fd, msg_txt(sd,94)); // Incorrect name/ID, or no one from the guild is online. return -1; } for( i=0; i < g->max_member; i++ ) if( g->member[i].sd && map == g->member[i].sd->bl.m ) pc_getitem_map(g->member[i].sd,it,amount,get_count,LOG_TYPE_COMMAND); break; default: iter = mapit_getallusers(); for (pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter)) { if( map != pl_sd->bl.m ) continue; pc_getitem_map(pl_sd,it,amount,get_count,LOG_TYPE_COMMAND); } mapit_free(iter); break; } clif_displaymessage(fd, msg_txt(sd,18)); // Item created. return 0; } ==================================================================== 4. open src/custom/atcommand_def.inc and add next code to this file: ==================================================================== ACMD_DEF(itemmap), ACMD_DEF2("itemmap1", itemmap), ACMD_DEF2("itemmap2", itemmap), ACMD_DEF2("itemmap3", itemmap), ============================================================= 5. open src/custom/script.inc and add next code to this file: ============================================================= /*==================================================================== * [Xantara] * getitem_map <item id>,<amount>,"<mapname>"{,<type>,<ID for Type>}; * @param: type: 0=everyone, 1=party, 2=guild, 3=bg =====================================================================*/ static int buildin_getitem_map_sub(struct block_list *bl,va_list ap) { struct item it; struct guild *g = NULL; struct party_data *p = NULL; int amt,count; TBL_PC *sd = (TBL_PC *)bl; it = va_arg(ap,struct item); amt = va_arg(ap,int); count = va_arg(ap,int); pc_getitem_map(sd,it,amt,count,LOG_TYPE_SCRIPT); return 0; } BUILDIN_FUNC(getitem_map) { struct item it; struct guild *g = NULL; struct party_data *p = NULL; struct battleground_data *bg = NULL; struct script_data *data; int m,i,get_count,nameid,amount,flag=0,type=0,type_id=0; const char *mapname; data = script_getdata(st,2); get_val(st,data); if( data_isstring(data) ) { const char *name = conv_str(st,data); struct item_data *item_data = itemdb_searchname(name); if( item_data ) nameid = item_data->nameid; else nameid = UNKNOWN_ITEM_ID; } else nameid = conv_num(st,data); if( (amount = script_getnum(st,3)) <= 0 ) return 0; mapname = script_getstr(st,4); if( (m = map_mapname2mapid(mapname)) < 0 ) return 0; if( script_hasdata(st,5) ){ type = script_getnum(st,5); type_id = script_getnum(st,6); } if(nameid < 0) { nameid = itemdb_searchrandomid(1,-nameid); flag = 1; } if( nameid <= 0 || !itemdb_exists(nameid) ){ ShowError("buildin_getitem_map: Nonexistant item %d requested.\n", nameid); return 1; //No item created. } memset(&it,0,sizeof(it)); it.nameid = nameid; if(!flag) it.identify = 1; else it.identify = itemdb_isidentified(nameid); if (!itemdb_isstackable(nameid)) get_count = 1; else get_count = amount; switch(type) { case 1: if( (p = party_search(type_id)) != NULL ) { for( i=0; i < MAX_PARTY; i++ ) if( p->data[i].sd && m == p->data[i].sd->bl.m ) pc_getitem_map(p->data[i].sd,it,amount,get_count,LOG_TYPE_SCRIPT); } break; case 2: if( (g = guild_search(type_id)) != NULL ) { for( i=0; i < g->max_member; i++ ) if( g->member[i].sd && m == g->member[i].sd->bl.m ) pc_getitem_map(g->member[i].sd,it,amount,get_count,LOG_TYPE_SCRIPT); } break; case 3: if( (bg = bg_team_search(type_id)) != NULL ) { for( i=0; i < MAX_BG_MEMBERS; i++ ) if( bg->members[i].sd && m == bg->members[i].sd->bl.m ) pc_getitem_map(bg->members[i].sd,it,amount,get_count,LOG_TYPE_SCRIPT); } break; default: map_foreachinmap(buildin_getitem_map_sub,m,BL_PC,it,amount,get_count); break; } return 0; } ================================================================= 6. open src/custom/script_def.inc and add next code to this file: ================================================================= BUILDIN_DEF(getitem_map,"iis??"), ================================================================================================== 7. open src/map/pc.c and add next code to the file, (better if after function pc_job_can_entermap) ================================================================================================== /*------------------------------------------ * pc_getitem_map [Xantara] *------------------------------------------*/ int pc_getitem_map(struct map_session_data *sd,struct item it,int amt,int count,e_log_pick_type log_type) { int i, flag; nullpo_ret(sd); for ( i = 0; i < amt; i += count ) { if ( !pet_create_egg(sd,it.nameid) ) { // if not pet egg if ( flag = pc_additem(sd,&it,count,log_type) ) { clif_additem(sd, 0, 0, flag); if( pc_candrop(sd,&it) ) map_addflooritem(&it,count,sd->bl.m,sd->bl.x,sd->bl.y,0,0,0,0,0); } } } log_pick_pc(sd, log_type, -amt, &sd->inventory.u.items_inventory[i]); return 1; } ================================================================================================== 8. open src/map/pc.h and add next code to the file, (better if after declaration of pc_readparam): ================================================================================================== int pc_getitem_map(struct map_session_data *sd,struct item it,int amt,int count,e_log_pick_type log_type); // [Xantara] ================================================================================================== 9. open src/map/pc.h and add next code to the file, (better if after declaration of pc_readparam): ================================================================================================== Recompile, and have fun! atcommands, script commands has been a little bit tested, and looks like tested. Source updates date: 07 December 2016, by anacondaq for latest rAthena revision Original Author: [Xantara] Anyway, here is alternative link: MEGA | dropbox
  22. 2015-11-04a, it has some small issue with <ITEMLINK></ITEMLINK> in chat, but it support a lot of features. Will be really nice if you will use few clients at the same time (to avoid client/packet-based issues in sources) like: 2015-11-04a as your native client (lua based descriptions) 2013-08-07 as stable but old re/pre-re client (lua based item descriptions) 2012-04-10 as stable pre-re client (.txzt files in grf) 2010-06-18 or 2012-04 as stable pre-re client (.txt files in grf)
  23. Hi. What difference from your mode and classic RO skill_cast_db.txt cooldown delay?
×
×
  • Create New...