Jump to content

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
×
×
  • Create New...