Character Deletion Time | closed | |
newfolderman 2013-08-08 18:16:14 | rAthena SVN version 17442 tried ragexes: 2013-03-20a,2013-05-15a,2013-05,29,2013-06-05,2013-07,17c (all xdiffed) tried langtype: 0,10,1 Problem: We cant delete the characters,character selection shows incorrect date/time(even logging in from the server's computer) tried changing the char_athena.conf. char_del_delay: 86400 to 1 hour and even 2 minutes Local server time is +8GMT(Philippines) Attached: screenshot of actual timestamp from sql server,windows time and coverted date/time of the timestamp. Please advice... Thank you in advance | |
williamII 2013-08-11 17:56:09 | after completing the time you pressed the delete button? | |
newfolderman 2013-08-12 02:38:07 | [quote name="williamII" post="21769" timestamp="1376243769"] after completing the time you pressed the delete button?[/quote] I can't press the delete button... if you look closely at the attached screenshot of the character selection window, you can see that the date is invalid.. (1/1 8:0:0, which is january 1 i think o.O) | |
KianIshie 2013-08-16 16:35:04 | I have experiencing the same problem too, even though i change the char_del_delay in [color=#008000]char_athena.conf[/color] // Amount of time in seconds by which the character deletion is delayed. // Default: 86400 (24 hours) // NOTE: Requires client 2010-08-03aragexeRE or newer. char_del_delay: 0 <------ i already changed it and recompiled it Still, I can't click the del button. | |
thecandymachine 2013-08-19 06:21:54 | i am having the same problem, and it is really frustrating. Please anyone , help me :( | |
x13th 2013-08-20 10:13:50 | Confirmed using 2013 client | |
newfolderman 2013-08-23 06:45:31 | *bump* | |
Talaysen 2013-08-23 18:36:04 | Confirmed with all current version of the 2013 client. Mine has the date 12/31, but it's still equally incorrect. char_del_delay is set to 0 for my server (made this change yesterday), issue persists. Character deletion worked fine with the 2012 client, I have to assume this is a packet related issue. | |
Tochirou 2013-08-27 18:21:19 | got the same issue with my 2013 client | |
x13th 2013-08-29 17:18:36 | bump | |
ivanyan 2013-08-30 21:30:04 | Mb packet was changed, because I was trying to change 828 packet in an any way, but without success... :( | |
ivanyan 2013-09-01 16:31:55 | Found solution!!! in char.c [color=#ff0000]Sorry, this solution is out of date, look further....[/color] | |
Talaysen 2013-09-07 23:48:44 | will this proposed fix work if you have a delay set? I prefer having a 15 minute delay, but can disable it if necessary. Figured I'd ask before I implement it in my code. | |
ivanyan 2013-09-08 16:18:23 | Yes, it works with delay. | |
ivanyan 2013-09-19 14:00:50 | Sorry, I was wrong... The next solution (WORKED!!!) is to modify function char_delete2_ack in char.c find WFIFOL(fd,10) = TOL(delete_date); replace with #if PACKETVER >= 20130320 WFIFOL(fd,10) = delete_date > 0 ? TOL(delete_date) - time(NULL) : 0; #else WFIFOL(fd,10) = TOL(delete_date); #endif Also need to modify function mmo_char_tobuf find #if PACKETVER >= 20100803 WBUFL(buf,124) = TOL(p->delete_date); offset += 4; #endif replace with #if PACKETVER >= 20100803 WBUFL(buf,124) = #if PACKETVER >= 20130320 (p->delete_date > 0) ? TOL(p->delete_date) - time(NULL) : 0; #else TOL(p->delete_date); #endif offset += 4; #endif | |
ivanyan 2013-09-19 14:27:24 | [attachment=8400:char.jpg] But I've fount that it's still a problem with char_delete2_accept_ack, I think that packet 0x82a was changed to something else.... need more info... Now you can delete the character, but you need relogin, because client don't receive proper packet after deletion. Temporary solution: replace function char_delete2_accept_ack with void char_delete2_accept_ack(int fd, int char_id, uint32 result) {// HC: <082a>.W <char id>.L <Msg:0-5>.L if(result == 1) { struct char_session_data* sd; sd = (struct char_session_data*)session[fd]->session_data; mmo_char_send(fd, sd); } else { WFIFOHEAD(fd,10); WFIFOW(fd,0) = 0x82a; WFIFOL(fd,2) = char_id; WFIFOL(fd,6) = result; WFIFOSET(fd,10); } } | |
Talaysen 2013-09-19 21:13:25 | Will this fix the issue where it would freeze after deleting a character? It would say "Please wait", but would never do anything. | |
ivanyan 2013-09-19 21:26:52 | Yes! Exactly! | |
Lighta 2013-09-25 01:07:21 | ivanyan have a correct solution imo, i,m searching the accept_ack result as well but beside this all sound ok. (you could do a pull request if you wish too =) | |
Talaysen 2013-09-25 02:20:01 | Worked perfectly. Thanks so much ivan. /no1 | |
alkhaleej 2013-09-28 04:55:02 | this is very good. Thanks! | |
sanosan33 2013-10-07 00:12:46 | can someone told me which line i have to put this fix please.? :p | |
ivanyan 2013-10-07 08:56:45 | Message 6 & 7 from the bottom of the 1st page | |
ivanyan 2013-10-08 10:08:25 | For those who has problems with modifying char.c [color=rgb(40,40,40)] modified char.c revision 17539 [/color] [color=rgb(40,40,40)] [url="http://truero.ru/char.c"]http://truero.ru/char.c[/url] [/color] | |
Lighta 2013-10-09 06:53:57 | tmp fix added in 9a5a6b9 | |
Kichi 2013-10-09 10:33:45 | not only the time, when your server run at long time periode more than 3 days when you try delete the char in blue (ready to delete, there are always pop up "your email was incorrect". Most people not experience this, because they run new fresh server to test "delete char" | |
ivanyan 2013-10-11 10:54:02 | Lighta: I guess you've missed some part in this part of diff #if PACKETVER >= 20100803 - WBUFL(buf,124) = TOL(p->delete_date); + WBUFL(buf,124) = (p->delete_date?TOL(p->delete_date)-time(NULL):0); offset += 4; #endif it should be #if PACKETVER >= 20100803 #if PACKETVER > 20130000 WBUFL(buf,124) = (p->delete_date?TOL(p->delete_date)-time(NULL):0); #else WBUFL(buf,124) = TOL(p->delete_date); #endif offset += 4; #endif otherwise it will cause problems with older clients |