Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Program Announcements / Enhanced Animation - 1.6 released (9-Feb-09)

Author
Message
dark coder
21
Years of Service
User Offline
Joined: 6th Oct 2002
Location: Japan
Posted: 16th May 2007 10:41
Yeah, the installer doesn't seem to like overwriting the previous ones.

Anyway, I can't replicate the bug :/, I just know that using 1.3 my animations don't always transition but under 1.1 they work without a single change.

dark coder
21
Years of Service
User Offline
Joined: 6th Oct 2002
Location: Japan
Posted: 20th May 2007 12:13
Sorry for the double post but I don't suppose you'd notice an edit.

I found the issue of my bug! after a rewrite and lots of head scratching. In my game I use a distance based animation update system, so if an object is far away from the camera it doesn't get up updated in real time. I noticed that objects far from the camera get frozen on a particular animation and don't transition. I just did a test by downgrading to 1.1 and it transitions back to the default animation fine, but 1.3 gets stuck. So the issue is likely that it doesn't like having update times of around 0.5 Sec ish.

Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 20th May 2007 14:26
Dark Coder,
Thanks for the info. I'll look into it! The difference in the new version is that it doesn't allow an object to transition to an animation if the object is already transitioning to that animation. So, if you are already transitioning to a run animation, then it will ignore other requests to transition to a run animation. Once the transition is complete and the run animation becomes the "play" animation, then the object can receive a request to transition to the run animation as normal. Note that if you are transitioning to a run animation and you request the object to transition to a walk animation, that WILL work.
So, the question is... how are you actually stopping the animation from being updated? Are you just not sending the OAC update? What happens when it comes back into range? Do you send a new transition request? When an object comes back into range, you may want to try using the EnAn_oacPlayAnim command. Maybe I need to add a command: EnAn_oacStopAnims that would completely reset the object. You could then call it when your object goes out of range.

I'll do some testing to see if I can re-create your scenario.

Thanks!
Ron

dark coder
21
Years of Service
User Offline
Joined: 6th Oct 2002
Location: Japan
Posted: 20th May 2007 20:14
Basically in realtime I have a check to see which animation the object should be playing, I then use some failsafes(as seen in the code above) to make sure the animation isn't already playing, or it isn't transitioning. if it isn't for both cases then I send the transition request. I'm updating the OACs based on distance, so close up objects will get updated every 0Ms(realtime) and far away objects get updated every 500Ms(every 35 frames ish). The issue isn't with going to animations as it does that fine, but it seems to start of that animation and never reverts back to the default one. For example in my game my characters always run an idle animation(breathing) and when I press spacebar I'm switching them to the animation for when they get hit by an object / weapon, this works great up close but my distance objects just don't update. They seem to transition into the recoil animation for one update cycle then they just hold that pose despite the update call being sent in realtime. The only main difference between the animations is that the recoil one isn't set to loop, the idle one is.

Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 21st May 2007 21:56
Dark Coder,
Thanks for the input. I'll see if I can find what is going on! I probably won't have much coding time over the next week, but I'll try to find a fix before 1.3 becomes official. Thanks again for your input.

Ron

Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 29th May 2007 19:40
Dark Coder,
I have not been able to reproduce this problem. I have made some changes that I would like you to try, but since I have never been able to see the problem, I don't know if it will fix it. If you don't mind, I'd like to send you an updated version of the dll for you to test with your code.

dark coder
21
Years of Service
User Offline
Joined: 6th Oct 2002
Location: Japan
Posted: 30th May 2007 09:55
Hey, yeah go ahead.

Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 30th May 2007 14:37
@ Wolf,

On a marginally related topic, is a WIP post justified yet on 3DCM ie. the utility that will finally allow me to put together a decent 3d game>?

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
dark coder
21
Years of Service
User Offline
Joined: 6th Oct 2002
Location: Japan
Posted: 30th May 2007 22:53 Edited at: 30th May 2007 22:55
Hey,

Yes I tested 1.1, the first 1.3 beta and this one. It now works just at should .

[Edit] Also I noticed the bug only happens with one animation that I'm testing it with, the animation in question is very short in duration, possibly one frame but I'm not sure.

Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 30th May 2007 23:07
Quote: "It now works just at should"


Yeah! I killed a bug without even seeing it in action

So, 1.3 is now ready to go. I'll send it over to Mike so he can build the installer. Hopefully it will be officially released June 1st. I'll post again once it is uploaded to your order history.

Quote: "On a marginally related topic, is a WIP post justified yet on 3DCM ie. the utility that will finally allow me to put together a decent 3d game>?"

Nope. lol
Soon.... soon

Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 31st May 2007 21:31 Edited at: 31st May 2007 21:35
Enhanced Animations version 1.3 is now available in your order history!

So... what is next???
Of coarse, I am going to continue work on the global limb rotations. Maybe that will actually get done this month. But, I had another groovey idea the I want to implement first.

MODIFIERS
So, what the hell is that? Well, it is whole second layer of animation data that can be applied to your objects in addition to the animations that are currently playing on the object. How is this useful? Here are a couple of quick examples:

Breathing: Most idle animations include some kind of breathing animation. You know, the chest expands and retracts in some way to make it look like the character is breathing. As soon as the the character starts to do something though, the breathing stops. Not with this addition. You would now be able to continuously apply a breathing animation to the character's chest. In fact, you could even speed it up or slow it down depending on what he is doing. It would all be dynamic and blend nicely

Facial Expressions:
So, your character is mad, and he puts on his angry facial expression. He then starts to talk, and the angry face goes away until he is finished speaking. Then he is alowed to be angry again. This feature would allow you to transition to an "angry face" and hold the expression even while playing your talking animations.

There are many things that this could be used for. After this functionality is added and the global rotation stuff is complete, it should add up to one POWERFUL animation system!

Mike Inel
21
Years of Service
User Offline
Joined: 14th Feb 2003
Location: Sa upuan ko po...
Posted: 1st Jun 2007 00:05
Cool! I should update now!
I don't get much about the modifiers though, but maybe it's just me anyway... Keep it up!

Mike Inel
21
Years of Service
User Offline
Joined: 14th Feb 2003
Location: Sa upuan ko po...
Posted: 1st Jun 2007 03:03
I did noticed though... Even after compiling all animations using 1.3, some animations get a shaking result... Here's a comparison of DBPro and Enan animations:
http://s151.photobucket.com/albums/s141/mike_inel/?action=view¤t=DBProEnAn.flv
You can easily tell the bug by observing her... um... You get the point...
Any ideas how this happens?

Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 1st Jun 2007 05:00
Mike,
It almost seems as if you have an extra frame of animation in there somewhere. Can you try to chop off a frame from the beginning or one frame from the end and re-export the animation?
If this does not resolve it, please send me the model file with animation data in it. That would help me find the problem.
By the way, I couldn't do much with the last model that you sent me. The animation data was from an earlier version of EnAn and I couldn't load it properly. If you sent the model file (.x) with animation data inside it, there is a lot more I can work with. Don't worry, I will not redistribute in any way. What modeling package do you use and which exporter?

Thanks,
Ron

Mike Inel
21
Years of Service
User Offline
Joined: 14th Feb 2003
Location: Sa upuan ko po...
Posted: 1st Jun 2007 05:56
I'll try that tomorrow... If it fails, i'll send the x file... I use 3dsmax with pandasoft...
Thanks for the help!

Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 1st Jun 2007 06:26
Ok... sounds good.
By the way, another hint. If you are using the panda exporter for 3dsMax, make sure that you export the animation data in matrix form (not position/scale/rotation). Then EnAn doesn't have to convert this data to matrices when saving the .anim files. Not only will it be faster, you will get more accurate results.

Mike Inel
21
Years of Service
User Offline
Joined: 14th Feb 2003
Location: Sa upuan ko po...
Posted: 1st Jun 2007 06:38
Oh? Thanks for the tip!!!

Mike Inel
21
Years of Service
User Offline
Joined: 14th Feb 2003
Location: Sa upuan ko po...
Posted: 2nd Jun 2007 17:04 Edited at: 2nd Jun 2007 17:11
Um, matrix makes the shaking bug, while the position/scale/rotation doesn't... While seeing no difference in the speed so far...
Although I think some rotation axis were changed... (Cuz the breasts bounces the other way...)

One thing i've discovered though... Uncheck the "materials" in Pandasoft or the enan_objextractanimation will crash...

I guess my problem has been solved now... Thanks!
Well, except for the slow down of the "EnAn_oacanimtransition" when there are many limbs... I'll send you the .x file to your email...

Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 29th Aug 2007 21:58
@ Wolf,

Hiya, as a kean-o potential punter, how goes development of 3DCM, MeshTools and WolfExtra? (in that order of priority) And, any more screenies or vids of 3DCM development?

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 30th Aug 2007 18:26
Hello Duffer!

Things are going well with 3DCM. The other two things have not been touched in a while. Lately I have been concentrating more on a super-secret un-announced project that will soon be released. I can't give any details on that at the moment though. I am also planning a very deep upgrade to EZrotate. I hear it is going to have some competition soon and I want to make sure my customers have the very best! I am still planning to make another WIP thread for 3DCM, but not until I get some of this other stuff cleared off my plate. I have been trying to stay away from message boards lately to maximize how productive my time is

LOL!
You didn't have to respond to ALL of my project threads with your message. I would have found it and responded!

Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 31st Aug 2007 15:33
@ Wolf, thanks for responding with update and sorry for the multi post thing - hadnt heard anything for a while and was getting {unnecessarily} concerned.

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 31st Aug 2007 16:02
Quote: "@ Wolf, thanks for responding with update and sorry for the multi post thing - hadnt heard anything for a while and was getting {unnecessarily} concerned."


LOL
No problem man. I just got word today that the super-secret unannounced project that I am working on passed some tests. There are a couple of bugs to squash, then it is DONE! While I was waiting, I already started my update to EZrotate. That is also going VERY well. Expect big things from that.
You will be the FIRST to know when I get things closer on 3DCM. In fact, I'll probably ask you to do some testing (if you are interested) when the time comes.

flashing snall
18
Years of Service
User Offline
Joined: 8th Oct 2005
Location: Boston
Posted: 1st Sep 2007 01:46 Edited at: 1st Sep 2007 04:04
EDIT: sorry. my bad.


"these shoes are 300 hundred dollars"-Shoes by Kelly http://smallgroupproductions.com/
jasonhtml
20
Years of Service
User Offline
Joined: 20th Mar 2004
Location: OC, California, USA
Posted: 1st Sep 2007 01:57
Quote: "While I was waiting, I already started my update to EZrotate. That is also going VERY well. Expect big things from that."


ooo! *gets excited*

Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 1st Sep 2007 03:30
Quote: "hmm, still cant get this to work, defintly uninsalled the older version"


What can't you get to work? I don't recall any reports of problems from you with this.

flashing snall
18
Years of Service
User Offline
Joined: 8th Oct 2005
Location: Boston
Posted: 1st Sep 2007 04:03
oh my god, i feel like a complete idiot. um, how to explain, short and simple i guess. i misread the title, and thought this was the enhanced AUDIO plugin, witch i cant get to work. i dont even have enhanced animation. sorry. feel like a dope...... my bad.
ill go edit my other post.


"these shoes are 300 hundred dollars"-Shoes by Kelly http://smallgroupproductions.com/
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 1st Sep 2007 04:33
Quote: "oh my god, i feel like a complete idiot. um, how to explain, short and simple i guess. i misread the title, and thought this was the enhanced AUDIO plugin, witch i cant get to work. i dont even have enhanced animation. sorry. feel like a dope...... my bad.
ill go edit my other post."


I know what you should do. Just BUY enhanced animations. Then you can see if you have any problems with it. If you do, then you would have ABSOLUTELY no reason to feel like an idiot. If you don't have any problems, then we can just assume that I have already fixed them and we can both still be happy. Come on, no one wants to see anyone look like an idiot. There is only one solution

Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 2nd Sep 2007 20:43
@ Wolf,

Definitely, count me in on the beta....

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
ID_OK
16
Years of Service
User Offline
Joined: 3rd Sep 2007
Location:
Posted: 3rd Sep 2007 21:36
hi,

Load an animated model into DBpro
- xtract the animation data to a *.anim file using one of the EnAn commands, load the *.anim file and apply the animation data.

Loads the also the hierachic-data-model x-file AnimationKey() correctly into a *.anim file?

Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 4th Sep 2007 16:41
ID_OK,

I don't understand your question?

The purpose of extracting the animation data from a .x file is so that you can keep the animation seperate from your model. That way the animation can be applied to any similar structured model. Your models can be then saved with no animation data in them, which will make them load MUCH faster. This would all be done as part of your media preparation while creating your game, not at run time when someone is playing your game.

-Ron

ID_OK
16
Years of Service
User Offline
Joined: 3rd Sep 2007
Location:
Posted: 4th Sep 2007 17:50
@Wolf


The Enhansed animation plug in is very good

All me known model editors save the animation in the x-file format in a AnimationSet with names.

The *.anim file in Enhansed animation plug will not working with AnimationSet names.
Continuous Frame number create the *anim file.

Do you think certain that I the AnimationSet names in the x-file format by using a code extracting and in continuous Frame number transform must, with it Enhansed animation plug in a correct readable *.anim file create can.
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 5th Sep 2007 17:34
ID_OK,

I am having a really hard time understanding you.
Sorry...

Right now all of your model animation data should be in one continuous AnimationSet. I will look add reading multiple animation sets in the future.

Chenak
21
Years of Service
User Offline
Joined: 13th Sep 2002
Location: United Kingdom
Posted: 5th Sep 2007 19:32
This plugin is brilliant, it is 250% worth the money. The things you can do with it now are so fantastic, its made my game making life so much easier. It drastically increased the frame rate of my project, of which is rather heavy on animations from 40 to over 300.

It is a fantastic piece of work. Looking forward to your next secret plugin o.o

Just a small question. I have a large animation on a human object which extends around 500 frames, the animation program that I am using is filled with quite a few bugs which make creating large animations on objects extremely difficult.

So could I have the same model with the same bone structure saved as different x models with say 40 frames each, then extract the data from each of them and then use it on a single object?
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 5th Sep 2007 20:22
Thanks for the nice comments Chenak

Quote: "It drastically increased the frame rate of my project, of which is rather heavy on animations from 40 to over 300"
.

I have some ideas to speed things up further. I've learned some tricks over the past few months. I am now applying this to EZrotate. The "speed" portion of the EZrotate update is almost done. Most commands are in the area of 20X FASTER! The orbit command is testing to be about 60X FASTER! When I apply these changes to EnAn, I don't quite expect that kind of increase, but it should improve things.

Quote: "So could I have the same model with the same bone structure saved as different x models with say 40 frames each, then extract the data from each of them and then use it on a single object? "


Yes. That should work without any trouble.

Quote: "It is a fantastic piece of work. Looking forward to your next secret plugin o.o"

The "secret" thing that I have been working on isn't a plugin. Most people here won't find any use for it. Some people will be really happy though

SimSmall
19
Years of Service
User Offline
Joined: 7th Aug 2004
Location: United Kingdom
Posted: 5th Sep 2007 21:54
Can I just ask, does it support global limb rotation yet?

From what I've read, I don't think it does, and it's all that's holding me back from buying the plugin. Its main feature, of playing multiple animations simultaneously would be a nice extra
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 5th Sep 2007 22:13
Quote: "Can I just ask, does it support global limb rotation yet?"

Not yet. I was really close to having this solved, but for some reason I just couldn't get it to work 100% right. I think I looked at it too long. It is definately a feature that I still plan to add. I'll take another swing at it when I do my next update to EnAn, which shouldn't be too far down the road.

Lover of games
19
Years of Service
User Offline
Joined: 17th Apr 2005
Location:
Posted: 13th Sep 2007 06:20
I bought ur plug in a few months ago and didn't really spend the time learning it, i started to now and all I did was use a few simple commands and the game crashed on me. Not sure what I did wrong but here it is:



I've also included the media i'm using which is some models from FPSC and the anim file

"Originally I was going to have a BS on it but you know how that would be. I can't walk around with the letters BS on me." More or less a qoute by Syndrome from Jack, Jack, attack

Attachments

Login to view attachments
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 13th Sep 2007 12:10
Lover of Games,

It took me a long time to figure out what was wrong here. Frankly, I was getting worried! I thoght maybe something was really broken.

I found the problem though!

In your for loop, you are not using a valid OAC object. In both the EnAn_OACPLAYANIM and EnAn_OACUpdate command, you misspelled the OAC object as "NurceOAC" instead of "NurseOAC"!

Fix that and your problem will go away!


a.k.a WOLF!
Lover of games
19
Years of Service
User Offline
Joined: 17th Apr 2005
Location:
Posted: 13th Sep 2007 14:50
strange, now the animation wont play.

"Originally I was going to have a BS on it but you know how that would be. I can't walk around with the letters BS on me." More or less a qoute by Syndrome from Jack, Jack, attack
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 13th Sep 2007 15:15
Oh yeah...

I forgot to mention. You need to apply the animation to limb 1, not limb 0.

EnAn_OACPLAYANIM NurseOAC, 1,Move, 0,0,-1,1,0

The animation plays for me (although it is a swim animation, not walking )


a.k.a WOLF!
Lover of games
19
Years of Service
User Offline
Joined: 17th Apr 2005
Location:
Posted: 14th Sep 2007 01:25
it worked, but when i press up nothing happens, only when I let go of the key does the animation play, any thoughts?

"Originally I was going to have a BS on it but you know how that would be. I can't walk around with the letters BS on me." More or less a qoute by Syndrome from Jack, Jack, attack
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 14th Sep 2007 04:15
Yes.
It is because in your code, as long as you are pressing the up key, you are re-running the EnAn_OACPLAYANIM command. This is resetting the current frame to the first frame of the animation. Have a look at the sample that came with EnAn to see how to properly do this.


a.k.a WOLF!
Lover of games
19
Years of Service
User Offline
Joined: 17th Apr 2005
Location:
Posted: 14th Sep 2007 13:10
thanks, i'll try. BTW, i love this plug- in. U must get that alot.... :-P

"Originally I was going to have a BS on it but you know how that would be. I can't walk around with the letters BS on me." More or less a qoute by Syndrome from Jack, Jack, attack
Lover of games
19
Years of Service
User Offline
Joined: 17th Apr 2005
Location:
Posted: 16th Sep 2007 01:12
I need some more help, i've tried to save alot of animations at once and the program crashes. here is the code with the files again, any idea why this is happening will be grealy appreciated it.



P.S. hope u can help me with this

"Originally I was going to have a BS on it but you know how that would be. I can't walk around with the letters BS on me." More or less a qoute by Syndrome from Jack, Jack, attack

Attachments

Login to view attachments
game lover
16
Years of Service
User Offline
Joined: 27th Apr 2007
Location:
Posted: 16th Sep 2007 01:17
Sorry for Offtopic.

@ Lover of games
Well this seems awkward, our names seems really alike, lol

We all want to be awesome, but does awesome want to be us?
Lover of games
19
Years of Service
User Offline
Joined: 17th Apr 2005
Location:
Posted: 16th Sep 2007 01:26
haha, yea, i saw that i few days ago, oh well

"Originally I was going to have a BS on it but you know how that would be. I can't walk around with the letters BS on me." More or less a qoute by Syndrome from Jack, Jack, attack
Lover of games
19
Years of Service
User Offline
Joined: 17th Apr 2005
Location:
Posted: 16th Sep 2007 03:16
NM.........fixed it.

"Originally I was going to have a BS on it but you know how that would be. I can't walk around with the letters BS on me." More or less a qoute by Syndrome from Jack, Jack, attack
Lover of games
19
Years of Service
User Offline
Joined: 17th Apr 2005
Location:
Posted: 20th Sep 2007 06:02 Edited at: 20th Sep 2007 06:34
I thought i could extract an animation from any FPSC model and then apply that animation to every other FPSC model but i guess i can't since i tried and it didn't come out right. I've uploaded an image about the problem. I'm not sure if it's because the model is shorter then the original model i used to extract the animation from but it should be able to be applied to the model effortlessly since all the FPSC models have the same animations and I think the same limb counts

EDIT: just figured out why, i guess not all the models have the same limb count. I figured it was like that since all the models have the same animations when u open them in DirectX viewer

"Originally I was going to have a BS on it but you know how that would be. I can't walk around with the letters BS on me." More or less a qoute by Syndrome from Jack, Jack, attack

Attachments

Login to view attachments
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 20th Sep 2007 16:02 Edited at: 20th Sep 2007 16:03
Lover of Games,
You can try messing with some of the commands that I added in the last update to accomplish this. They will allow you to re-assign the limbs stored in your animations to a different reference limb of your model.

EnAn_oacSetLimbReference oacID, Limb, RefLimb
RefLimb = EnAn_oacGetLimbReference( oacID, Limb )

It will take some work on your part to make sure that you are applying the right limbs to the right places, but it could be worth the effort.

Let me know how this works for you


a.k.a WOLF!
Lover of games
19
Years of Service
User Offline
Joined: 17th Apr 2005
Location:
Posted: 20th Sep 2007 22:59
I'll see what i can do, although my coding skills aren't so very good.......

"Originally I was going to have a BS on it but you know how that would be. I can't walk around with the letters BS on me." More or less a qoute by Syndrome from Jack, Jack, attack

Login to post a reply

Server time is: 2024-04-19 06:56:58
Your offset time is: 2024-04-19 06:56:58