The following warnings occurred:
Warning [2] Use of undefined constant SAPI_NAME - assumed 'SAPI_NAME' (this will throw an Error in a future version of PHP) - Line: 3388 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3388 errorHandler->error
/showthread.php 116 build_archive_link
Warning [2] Use of undefined constant IN_ARCHIVE - assumed 'IN_ARCHIVE' (this will throw an Error in a future version of PHP) - Line: 3331 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3331 errorHandler->error
/inc/functions.php 3324 build_forum_breadcrumb
/showthread.php 195 build_forum_breadcrumb
Warning [2] Use of undefined constant IN_ARCHIVE - assumed 'IN_ARCHIVE' (this will throw an Error in a future version of PHP) - Line: 3331 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3331 errorHandler->error
/showthread.php 195 build_forum_breadcrumb






Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
New anim packet for Enhanced Client
Author Message
karma
Moderator
****

Posts: 178
Likes Given: 17
Likes Received: 32 in 29 posts
Joined: Jul 2012
Reputation: 3



Post: #1
New anim packet for Enhanced Client
Hi all, this is a question to the devs Big Grin
Have you planned to make ANIM, BARK, SALUTE, etc, send the new anim packet if the EC is detected?
Just to know, before i change all of that calls manually with a custom function Rolleyes
10-09-2014 02:20 AM
Find all posts by this user Like Post Quote this message in a reply
Coruja
Sphere Developer
*****

Posts: 987
Likes Given: 5
Likes Received: 226 in 187 posts
Joined: Jul 2012
Reputation: 7

Dimension Shard

Post: #2
RE: New anim packet for Enhanced Client
do you know the anim values/packets? it's a new packet or just the same ANIM packet with just new values?

maybe I can take a look on the source, but I can't guarantee you any change because I don't have EC here lol
10-09-2014 09:02 AM
Find all posts by this user Like Post Quote this message in a reply
karma
Moderator
****

Posts: 178
Likes Given: 17
Likes Received: 32 in 29 posts
Joined: Jul 2012
Reputation: 3



Post: #3
RE: New anim packet for Enhanced Client
It is a new packet (E2).
Long time ago i talked with XuN about this, he was working on it, but i don't know if he made progress.
He gave me this function:

Code:
[FUNCTION newanim]
sendpacket 0e2 D<uid> W<dargv0> W<qval <dargv1>?<dargv1>:0> <qval <argv2>?<dargv2>:0>

First argument is the Action Group, the second is Action Type and the third is variation (different animations regarding the same action). As you can see, the structure is very different from the old packet (6E i think). The most annoying thing is that you cannot set the "speed" of the animation, and i think this is why XuN did not use this packet with the Classic Client (yes, it works also on the CC, moreover i remember that EA uses this packet since SA launch).

In attachment there is a screenshot of an old xls i wrote, there are all the infos me and XuN gathered.


Attached File(s) Thumbnail(s)
   
10-09-2014 09:26 AM
Find all posts by this user Like Post Quote this message in a reply
Ben
Sphere Developer
*****

Posts: 612
Likes Given: 2
Likes Received: 123 in 70 posts
Joined: Mar 2010
Reputation: 18

SphereCommunity

Post: #4
RE: New anim packet for Enhanced Client
This packet is already in use for clients > 7.0.0.0...

AxisII's current version: 2.0.4j
AxisII SourceCode on Github
AxisII up to date changelog
10-09-2014 09:53 AM
Visit this user's website Find all posts by this user Like Post Quote this message in a reply
karma
Moderator
****

Posts: 178
Likes Given: 17
Likes Received: 32 in 29 posts
Joined: Jul 2012
Reputation: 3



Post: #5
RE: New anim packet for Enhanced Client
I tested it right now. With client 7.0.35.3, doing .anim 1 the packet sent is 6E.
With the CC, both 6E and E2 work, but with the EC only E2 works.
10-09-2014 08:51 PM
Find all posts by this user Like Post Quote this message in a reply
Coruja
Sphere Developer
*****

Posts: 987
Likes Given: 5
Likes Received: 226 in 187 posts
Joined: Jul 2012
Reputation: 7

Dimension Shard

Post: #6
RE: New anim packet for Enhanced Client
on the hardcoded behavior for the ANIM function it will always use this packet on enhanced clients
and it will be send on classic clients too, but only if the char is a gargoyle
Code:
if ( EnhancedClient )
    send new packet 0xE2
else if ( ClassicClient > 7.0.0 && IsGargoyle )
    send new packet 0xE2
else
    send old packet 0x6E
(This post was last modified: 10-10-2014 01:43 AM by Coruja.)
10-10-2014 01:41 AM
Find all posts by this user Like Post Quote this message in a reply
karma
Moderator
****

Posts: 178
Likes Given: 17
Likes Received: 32 in 29 posts
Joined: Jul 2012
Reputation: 3



Post: #7
RE: New anim packet for Enhanced Client
Hmm seems you are right. Anyways, the anim is not showed. That's why:
Code:
Packet structure:
BYTE E2
WORD UID
WORD action group
WORD action type
BYTE variation

E2 00 00 1C 6A FF FF 00 01 00 -> .anim 1
E2 00 00 1C 6A FF FF 00 02 00 -> .anim 2
E2 00 00 1C 6A 00 01 00 00 00 -> .newanim 1

Doing .anim 1 or 2, the ARGN is used as an action type, but the action group (0FFFF) remains the same and 0FFFF is not a valid action group, so no anim is showed.
Unfortunately, with E2 the anim data is not a sequential number like with 6E.. I'll make some tests and i'll write out which E2 anim corresponds with the 6E one.
10-10-2014 02:17 AM
Find all posts by this user Like Post Quote this message in a reply
karma
Moderator
****

Posts: 178
Likes Given: 17
Likes Received: 32 in 29 posts
Joined: Jul 2012
Reputation: 3



Post: #8
RE: New anim packet for Enhanced Client
Weird thing: i'm pretty sure that in the past 6E did not work with the EC, and now, it is working °_°
I use this function for testing.
Code:
[function oldanim]
sendpacket 06e D<UID> W<dargv0> W<qval <dargv1>?<dargv1>:0> W<qval <argv2>?<dargv2>:0> <qval <argv3>?<dargv3>:0> <qval <dargv4>?<dargv4>:0> <qval <argv5>?<dargv5>:0>
And, weirder thing.. the anims i took note of are not working anymore :/

I'll continue doing tests, stay tuned lol

Does anyone have a list describing which anim number corresponds to which type of animation?

I'm testing with EC 4.0.35.1 and these are my conclusions right now:
1) 0x6E still works (with my great surprise, as i said before, time ago the only anim packet working in the EC was the 0xE2). The animation IDs seems to be the same as those in the CC, to be sure i need the list i asked above (yes i can test it manually but it is a bit long and boring to do, maybe i'll do it tomorrow).
2) 0xE2 shows only few animations in the EC. Action group 9 and 10 are the new gargoyle flying anims. Using 9 and 10 with body = c_man don't do anything.
3) 0x6E works with humans, elfs and gargoyles.
4) With 0x6E, setting different frame count, repeat times, forward/backward, no repeat/repeat or delay is irrelevant: the anim showed use default, non-changeable parameters. The only thing you can change, of course, is the action.

Can any dev make a build where the anim packet sent to the EC is 0x6E and not 0xE2, so i can test it? Obviously, the gargoyle flying anims need 0xE2.
(This post was last modified: 10-10-2014 04:42 AM by karma.)
10-10-2014 03:46 AM
Find all posts by this user Like Post Quote this message in a reply
[+] 1 user Likes karma's post
Ben
Sphere Developer
*****

Posts: 612
Likes Given: 2
Likes Received: 123 in 70 posts
Joined: Mar 2010
Reputation: 18

SphereCommunity

Post: #9
RE: New anim packet for Enhanced Client
We are not gonna make some special build to test something that is already working fine.
I'm not sure what you are trying to accomplish here, but I'm pretty sure you're wasting your time...

AxisII's current version: 2.0.4j
AxisII SourceCode on Github
AxisII up to date changelog
10-10-2014 09:14 AM
Visit this user's website Find all posts by this user Like Post Quote this message in a reply
XuN
Sphere Developer
*****

Posts: 852
Likes Given: 102
Likes Received: 156 in 119 posts
Joined: Jul 2013
Reputation: 30



Post: #10
RE: New anim packet for Enhanced Client
What I did was convert all the animations in the UpdateAnimate function to the new style when proceed, each time this function is called it now generates 2 animation sets for the character calling it: one is generating the new animation (with some exceptions that i'll write later) and another one with the old and default behaviour.

In combat, I set Variation = 1, I can't remember why or if it made any difference, but its there for some reason.

I'm not converting the Bow and Salute animations because they were broken, so I had to do some workarounds to show the old one instead, which were still working .

Death animations are also converted.

Now the real trick of this subjet comes, this is how the packets are selected (scripted example to help understand):
Code:
forclients <serv.clients>
ref1=<serv.client.<dlocal._for>>
if !(<ref1>)
  continue
endif
if !(<CanSee <ref1>>)
  continue
endif
if (<ref1.IsClientEnhanced>) //this one is a hardcoded function
  send new anim
elseif (<ref1.cliver>>=700000 && <ref1.IsGargoyle>)
  send new anim
else
  send old anim
endif
endif


So, as you can see, new anims are being sent to everyone using Enhanced Client and only Gargoyles in Classic Client, AFAIR only gargoyles were using correct animations in Classic Clients plus the fact that new animation packet is not using delay anymore (and looks sooooooo ugly) was the reason because I made it this way.
10-10-2014 06:05 PM
Find all posts by this user Like Post Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)