-
Posts
1096 -
Joined
-
Days Won
40
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by anacondaq
-
Thor patcher downloads but doesn't apply patch
anacondaq replied to nicoscene's question in Client-side Support
Check grf name in thor generator. Check write permissions to the file which you wanna to patch. Run patcher with admin privileges. -
It feels weird to mention my own tool as a suggestion though! But yeah, CDE can do it as well it's just not as straightforward as ItemConverter however. GRF Editor > Tools > Client database editor. Settings > Drop your data or GRF files with your .txt files. Click on a tab to load the databases, File > Export > Export project to lua files > Select a folder. cause you have ID sort! That's why, and not only.
-
You can use ItemConverter. Btw, your CDE is much better then your suggest tool. This one have few bugs with parsing files with alot of korean symbols.
-
30k concurrent players RO private server, is this possible?
anacondaq replied to Pyromanix's topic in rAthena General
Interesting. How are server owners manage and distrubute emulator loads by big amount of connected players? eAthena not multicored. And it eats CPU very well. Packet per second at any active event is very high ( > 80k pps with online > 400 at WOE ) I can not imagine how administrators handle the load on the servers of 10k live players. (2012, 2013, 2014 Asian Servers) -
Hi Tokei! Your patcher is awesome. As i know, all of us trying to connect to official kRO patch server which located somewhere in South Korea. Am i right? If yes, the speed is very bad. I'm planning to do some mirroring of all files in kRO and replace it to Europe with fast internet. So, my question is Is it possible to change link of patch server to my own? (sorry i was read the topic, but i'm don't understand it a little bit)
-
skill_unit_move_sub: Reached limit of unit objects per cell!
anacondaq replied to PapaZola's question in Source Support
Hi, i time to time have the same issue. But at last time (~ 1 month) i have not any errors like these in my map server. What revision of your emulator? And how big online? (i required it, because i guess it's happened with songs + gospel + on the same cell) -
how to add check mac address [ i have harmony ]
anacondaq replied to sumano's question in Scripting Support
select `mac` FROM `login` WHERE account_id='"+getcharid(3)+"' -
sorry, not tested yet, but i guess i know where is the problem: https://github.com/rathena/rathena/commit/a16701f33afc7ca186810919814bdf0f54742e4e (maybe i'm incorrent). Some time ago, i spend around 48 hours to disable accinfo, but nothing complete, and (maybe i'm wrong sorry), your "disabling" for this is incorrent. As you know, this bug with reqaccinfo happened at 2010-07-30... Try to back changes in clif.c back to like it was, or like i was said to you in issues...
-
First Way If you are using 2010-07-30, all what you need to do: Open clif.c, and find this function, and make it my own: /// GM requesting account name (for right-click gm menu) (CZ_REQ_ACCOUNTNAME). /// 01df <account id>.L /// @CHECKME void clif_parse_GMReqAccountName(int fd, struct map_session_data *sd) { int account_id = RFIFOL(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[0]); char query[30]; safesnprintf(query,sizeof(query),"%d", account_id); intif_request_accinfo(sd->fd, sd->bl.id, pc_get_group_level(sd), query, 1); //will call clif_account_name at return clif_account_name(fd, account_id, ""); } SECOND WAY https://github.com/rathena/rathena/commit/a16701f33afc7ca186810919814bdf0f54742e4e
-
Not working Because problem not in these lines. The problem only in one line, what was commented in december 2013 by lighta, and nobody care and wont to listen me about this bug... Before december 2013 there are no problems at all. Fast fix (but if you are using the latest revision -> DONT CHANGE): clif.c make your function to looks like this one: /// GM requesting account name (for right-click gm menu) (CZ_REQ_ACCOUNTNAME). /// 01df <account id>.L void clif_parse_GMReqAccountName(int fd, struct map_session_data *sd) { if (sd->bl.type&BL_PC) { // Only show for players char command[30]; int account_id = RFIFOL(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[0]); //tmp get all display safesnprintf(command,sizeof(command),"%caccinfo %d", atcommand_symbol, account_id); is_atcommand(fd, sd, command, 1); clif_account_name(sd, account_id, ""); //! TODO request to login-serv } }
-
https://github.com/rathena/rathena/issues/123
-
When you Log In this will check you if you are BOT or NOT.
anacondaq replied to Renji Abarai's question in Script Requests
Is there any proven cases of this? Sure. -
Hi! I have a question. Is it possible to add multilanguage support to FluxCP? Or if is it already implemented, how to use it? Anyone can explain me? For example, i wanna to add 2 buttons on the website: EN ES If visitor click on "EN" button, website (default phrases) will be in english If visitor click on "ES" button, website (default phrases) will be in spanish. I saw that feature on few servers with flux, but i did't found how to organize it. Anyone, can explain about this feature?
-
Short answer: latest revision is stable Details: Learn what is GIT and branches Make in Master the original rAthena, in your custom branch your RO server. When update comes you just "pull" the origin repository, then you merge official changes with your custom changes on the server. Use /import folders.
-
When you Log In this will check you if you are BOT or NOT.
anacondaq replied to Renji Abarai's question in Script Requests
Hi man. That is stupid. Why? Because it will make unhappy players at your server via 100500 times per day popup message from NPC antibot. And do you know the most bad thing? This is NOT WORK against bosts. Why? https://svn.code.sf.net/p/openkore/code/plugins/responseOnASCIInumber/trunk/ + i wanna add: harmony WONT WORK against bots too:) Funny, but that is real truth. Solution to fix? bump a hashield or internalguard development, or build yours., Sad, but true.. -
@Playtester did are fix most dangerous and important bugs in code. Awesome!
-
How will normal and newbie users like me report about bugs? Why are you removing cathegorizations (sorted bugs via cathehories)? Where i need to post about bugs founded in rA? What will be happened with 100500 NOT FIXED YET bugs? Are we all will duplicate them? For what? Where is reason? Can anyone explain for me: What we are all win with this new bug reports system? How newbies like me will report about bugs? What will be happened with unresolved yet bugs since 2008?
-
http://rathena.org/wiki/GDB http://rathena.org/board/topic/53447-how-to-enable-crashcore-dumps-in-your-server-linux/
-
[SOLVED]./configure error (mysql not found)
anacondaq replied to Niktout's question in Linux Support
apt-get install mysql-server -
There are two parameters: - Crash - Not enough Memory to launch server (rAthena required without changes ~ 1.2GB Ram to start servers, and ~ 600-800MB to run it)
-
Hi, i'm using +- latest rAmod (did't apply last 2 commits only) I need to understand, what is provoke server to crash by this core dump output, and i can't understand. Here is core dump output step by step. Who understand in this code, help me please to understand where is a problem what make map-server crash. step 0 #0 0x000000000042f5aa in status_get_party_id.part.38.116024 ( bl=0x7ff49d4edb64) at status.c:6877 No locals. Source Code from this part: int status_get_party_id(struct block_list *bl) { ... ... 6876 case BL_SKILL: 6877 return ((TBL_SKILL*)bl)->group->party_id; Step 1 #1 0x0000000000450fe5 in status_get_party_id (bl=0x7ff49d4edb64) at status.c:6848 No locals. Source: 6841 /** 6842 * Gets the party ID of the given bl 6843 * @param bl: Object whose party ID to get [PC|MOB|PET|HOM|MER|SKILL|ELEM] 6844 * @return party ID 6845 */ 6846 int status_get_party_id(struct block_list *bl) 6847 { 6848 nullpo_ret(bl); 6849 switch (bl->type) { 6850 case BL_PC: 6851 STEP 2 #2 0x0000000000602d6f in battle_check_target.part.25 (src=0x7ff49d4edb64, target=0x1114b5f0, flag=131072) at battle.c:7607 s_party = 32756 m = 497 strip_enemy = 1 Source Code: int battle_check_target( struct block_list *src, struct block_list *target,int flag) { .. .. 7605 if( flag&BCT_PARTY || state&BCT_ENEMY ) 7606 { 7607 int s_party = status_get_party_id(s_bl); 7608 if(s_party && s_party == status_get_party_id(t_bl)) 7609 state |= BCT_PARTY; 7610 } STEP 3 #3 0x00000000005f6d96 in battle_check_target (src=0x7ff49d4edb64, target=0x1114b5f0, flag=131072) at battle.c:7223 No locals. Source Code: 7215 int battle_check_target( struct block_list *src, struct block_list *target,int flag) 7216 { 7217 int16 m; //map 7218 int state = 0; //Initial state none 7219 int strip_enemy = 1; //Flag which marks whether to remove the BCT_ENEMY status if it's also friend/ally. 7220 struct block_list *s_bl = src, *t_bl = target; 7221 7222 nullpo_ret(src); 7223 nullpo_ret(target); 7224 7225 m = target->m; 7226 if( flag&BCT_ENEMY && (map_getcell(m,src->x,src->y,CELL_CHKBASILICA) || map_getcell(m,target->x,target->y,CELL_CHKBASILICA)) ) 7227 return -1; STEP 4 #4 0x000000000045a706 in skill_unit_onplace.part.60.110668 ( unit=0x7ff49d4ede3c, bl=0x1114b5f0, tick=32079193) at skill.c:12829 sg = 0x117a4008 ss = 0x7ff493f16a24 sc = 0x1114b960 sce = 0x0 type = SC_QUAGMIRE skill_id = 92 Source code 12825 } 12826 break; 12827 12828 case UNT_QUAGMIRE: 12829 if( !sce && battle_check_target(&sg->unit->bl,bl,sg->target_flag) > 0 ) 12830 sc_start4(ss, bl,type,100,sg->skill_lv,sg->group_id,0,0,sg->limit); 12831 break; Step 5: #5 0x00000000004b1f10 in skill_unit_onplace.110673 (unit=0x7ff49d4ede3c, ---Type <return> to continue, or q <return> to quit--- bl=0x1114b5f0, tick=32079193) at skill.c:12726 No locals. Source Code: 12714 static int skill_unit_onplace(struct skill_unit *unit, struct block_list *bl, unsigned int tick) 12715 { 12716 struct skill_unit_group *sg; 12717 struct block_list *ss; // Actual source that cast the skill unit 12718 struct status_change *sc; 12719 struct status_change_entry *sce; 12720 enum sc_type type; 12721 uint16 skill_id; 12722 12723 nullpo_ret(unit); 12724 nullpo_ret(bl); 12725 12726 if(bl->prev == NULL || !unit->alive || status_isdead(bl)) 12727 return 0; 12728 12729 nullpo_ret(sg = unit->group); 12730 STEP 6 #6 0x0000000000491632 in skill_unit_move_sub (bl=0x7ff49d4ede3c, ap=0x7fff7a67dd90) at skill.c:18195 result = 10006 group = 0x117a4008 target = 0x1114b5f0 tick = 32079193 flag = 3 dissonance = 0 '\000' skill_id = 92 i = 4 Source Code: 18193 } else { 18194 if( flag&1 ) { 18195 int result = skill_unit_onplace(unit,target,tick); 18196 18197 if( flag&2 && result ) { //Clear skill ids we have stored in onout. 18198 ARR_FIND( 0, ARRAYLENGTH(skill_unit_temp), i, skill_unit_temp[i] == result ); 18199 if( i < ARRAYLENGTH(skill_unit_temp) ) 18200 skill_unit_temp[i] = 0; 18201 } 18202 } else { 18203 Step 7 #7 0x0000000000577c75 in map_foreachincell ( func=0x491258 <skill_unit_move_sub>, m=497, x=158, y=137, type=64) at map.c:1023 bx = 19 by = 17 returnCount = 4 bl = 0x0 ap = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7fff7a67dea0, reg_save_area = 0x7fff7a67ddd0}} Source Code 1020 for( i = blockcount; i < bl_list_count; i++ ) 1021 if( bl_list[ i ]->prev ) { //func() may delete this bl_list[] slot, checking for prev ensures it wasn't queued for deletion. 1022 va_start(ap, type); 1023 returnCount += func(bl_list[ i ], ap); 1024 va_end(ap); 1025 } 1026 Step 8 #8 0x0000000000491872 in skill_unit_move (bl=0x1114b5f0, tick=32079193, ---Type <return> to continue, or q <return> to quit--- flag=3) at skill.c:18245 No locals. Source Code: 18235 int skill_unit_move(struct block_list *bl, unsigned int tick, int flag) 18235 { 18235 nullpo_ret(bl); 18235 18235 if( bl->prev == NULL ) 18235 return 0; 18235 18235 if( flag&2 && !(flag&1) ) //Onout, clear data 18235 memset(skill_unit_temp, 0, sizeof(skill_unit_temp)); 18235 18235 map_foreachincell(skill_unit_move_sub,bl->m,bl->x,bl->y,BL_SKILL,bl,tick,flag); 18235 Step 9 #9 0x0000000000574a54 in map_moveblock (bl=0x1114b5f0, x1=158, y1=137, tick=32079193) at map.c:435 x0 = 157 y0 = 136 sc = 0x1114b960 moveblock = 0 Source Code: 429 #ifdef CELL_NOSTACK 430 else map_addblcell(bl); 431 #endif 432 433 if (bl->type&BL_CHAR) { 434 435 skill_unit_move(bl,tick,3); 436 437 if( bl->type == BL_PC && ((TBL_PC*)bl)->shadowform_id ) {//Shadow Form Target Moving 438 Step 10: #10 0x0000000000418691 in unit_walktoxy_timer (tid=942, tick=32079193, id=2002662, data=210) at unit.c:378 i = 224 x = 158 y = 137 dx = 1 dy = 1 dir = 7 '\a' bl = 0x1114b5f0 ud = 0x1114b610 sd = 0x1114b5f0 md = 0x0 Source Code: 373 // Refresh view for all those we lose sight 374 map_foreachinmovearea(clif_outsight, bl, AREA_SIZE, dx, dy, sd?BL_ALL:BL_PC, bl); 375 376 x += dx; 377 y += dy; 378 map_moveblock(bl, x, y, tick); 379 ud->walk_count++; // Walked cell counter, to be used for walk-triggered skills. [Skotlex] 380 status_change_end(bl, SC_ROLLINGCUTTER, INVALID_TIMER); // If you move, you lose your counters. [malufett] 381 Help me please, understand what is wrong, what did provoke to crash a map server? Thank you very much! Technical information: rAthena with latest updates (except 3 latest), pre-re. 20100730 Full Core dump: #0 0x000000000042f5aa in status_get_party_id.part.38.116024 ( bl=0x7ff49d4edb64) at status.c:6877 No locals. #1 0x0000000000450fe5 in status_get_party_id (bl=0x7ff49d4edb64) at status.c:6848 No locals. #2 0x0000000000602d6f in battle_check_target.part.25 (src=0x7ff49d4edb64, target=0x1114b5f0, flag=131072) at battle.c:7607 s_party = 32756 m = 497 strip_enemy = 1 #3 0x00000000005f6d96 in battle_check_target (src=0x7ff49d4edb64, target=0x1114b5f0, flag=131072) at battle.c:7223 No locals. #4 0x000000000045a706 in skill_unit_onplace.part.60.110668 ( unit=0x7ff49d4ede3c, bl=0x1114b5f0, tick=32079193) at skill.c:12829 sg = 0x117a4008 ss = 0x7ff493f16a24 sc = 0x1114b960 sce = 0x0 type = SC_QUAGMIRE skill_id = 92 #5 0x00000000004b1f10 in skill_unit_onplace.110673 (unit=0x7ff49d4ede3c, ---Type <return> to continue, or q <return> to quit--- bl=0x1114b5f0, tick=32079193) at skill.c:12726 No locals. #6 0x0000000000491632 in skill_unit_move_sub (bl=0x7ff49d4ede3c, ap=0x7fff7a67dd90) at skill.c:18195 result = 10006 group = 0x117a4008 target = 0x1114b5f0 tick = 32079193 flag = 3 dissonance = 0 '\000' skill_id = 92 i = 4 #7 0x0000000000577c75 in map_foreachincell ( func=0x491258 <skill_unit_move_sub>, m=497, x=158, y=137, type=64) at map.c:1023 bx = 19 by = 17 returnCount = 4 bl = 0x0 ap = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7fff7a67dea0, reg_save_area = 0x7fff7a67ddd0}} #8 0x0000000000491872 in skill_unit_move (bl=0x1114b5f0, tick=32079193, ---Type <return> to continue, or q <return> to quit--- flag=3) at skill.c:18245 No locals. #9 0x0000000000574a54 in map_moveblock (bl=0x1114b5f0, x1=158, y1=137, tick=32079193) at map.c:435 x0 = 157 y0 = 136 sc = 0x1114b960 moveblock = 0 #10 0x0000000000418691 in unit_walktoxy_timer (tid=942, tick=32079193, id=2002662, data=210) at unit.c:378 i = 224 x = 158 y = 137 dx = 1 dy = 1 dir = 7 '\a' bl = 0x1114b5f0 ud = 0x1114b610 sd = 0x1114b5f0 md = 0x0 #11 0x0000000000428cd8 in do_timer (tick=32079202) at timer.c:371 tid = 942 diff = -9 ---Type <return> to continue, or q <return> to quit--- #12 0x0000000000424575 in main (argc=1, argv=0x7fff7a67e178) at core.c:375 next = 50
-
How to kick player by aid, after expel him from guild and if he offline?
anacondaq replied to anacondaq's question in Source Requests
I did ask about sources) Not script. Thank you very much. But this is not what i need) I just need a function like clif_GM_kick(), what can i easly add to sources, and not get crashes) -
Hi guys, can anyone show me example, because i something can't to recognize and understand. Here is code example, if player in game -> do something If player not in game -> do another. I found some bug in that system, and i request for a way to kick from the map server & the game a player with aid (account id) if he is in game, but on another character on account. #ifdef BOUND_ITEMS void guild_retrieveitembound(int char_id,int aid,int guild_id) { TBL_PC *sd = map_id2sd(aid); if(sd){ //Character is online int idxlist[MAX_INVENTORY]; int j; j = pc_bound_chk(sd,2,idxlist); if(j) { struct guild_storage* stor = guild2storage(sd->status.guild_id); int i; for(i=0;i<j;i++) { //Loop the matching items, guild_storage_additem takes care of opening storage if(stor) guild_storage_additem(sd,stor,&sd->status.inventory[idxlist[i]],sd->status.inventory[idxlist[i]].amount); pc_delitem(sd,idxlist[i],sd->status.inventory[idxlist[i]].amount,0,4,LOG_TYPE_GSTORAGE); } storage_guild_storageclose(sd); //Close and save the storage } ShowError( "Player is ONLINE! sd= %d aid= %d char_id= %d \n", sd, aid, char_id ); // need to remove this line } else { //Character is offline, ask char server to do the job struct guild_storage* stor = guild2storage2(guild_id); struct guild *g = guild_search(guild_id); nullpo_retv(g); if(stor && stor->storage_status == 1) { //Someone is in guild storage, close them int i; for(i=0; i<g->max_member; i++){ TBL_PC *pl_sd = g->member[i].sd; if(pl_sd && pl_sd->state.storage_flag == 2) storage_guild_storageclose(pl_sd); } } ShowError( "Player is OFFLINE!!! sd= %d aid= %d char_id= %d \n", sd, aid, char_id ); // need to remove this line intif_itembound_req(char_id,aid,guild_id); } } #endif
-
Hi, after this commit https://github.com/rathena/rathena/commit/9b4d922ef4ab11c76ce9e73dd18ac2c4aed9cb79 And this commit is good, you make emulator closer to official behavior. But players what are playing on the old pre-re servers, and what "used to the old" want to back showing AUTOGUARD and REFLECT shield icon to them. Can you please make a option in sources to enable/disable official behavior in sources? Thank you very much:) For example in /conf/battle/skill.conf // Show AUTOGUARD and REFLECT SHIELD skill icons for players under devotion. devo_show_icons: no