View source
From Iris2
for
Client v7 extensions
Jump to:
navigation
,
search
thanks to cougar for those infos === new anim packet animation 0xe2 === * http://docs.polserver.com/packets/index.php?Packet=0xE2 <pre> using System; namespace Server { #region AnimationType public enum AnimationType//table from debugged client.exe ;) { None = -1, Attack = 0, Parry = 1, Block = 2, Die = 3, Impact = 4, Fidget = 5, Eat = 6, Emote = 7, Alert = 8, TakeOff = 9, Land = 10, Spell = 11, StartCombat = 12, EndCombat = 13, Pillage = 14, Spawn = 15// 3D Only } #endregion #region SubTypes public enum AttackSubType { AttackBareHand = 0, AttackBow = 1, AttackCrossbow = 2, AttackSmashOverHead = 3, AttackSmash = 4, AttackStab = 5, AttackCrush = 6, AttackSwing = 7, AttackBackStab = 8, } public enum EmoteSubType { Bow = 0, Salute = 1, Walk = 2, } public enum FidgetSubType { Idle = 0, } public enum EatSubType { Eat = 0, } public enum ImpactSubType { GetHit = 0, } public enum SpellSubType { Cast = 0, WaveHands = 1, } public enum DieSubType { Die = 0, } public enum BlockSubType { Block = 0, } #endregion public class AnimationInfo { //private static readonly log4net.ILog log = log4net.LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType ); private AnimationType m_Action; private int m_SubAction; private int m_ActionType; public AnimationInfo( AnimationType action, int subAction, int actionType ) { m_Action = action; m_SubAction = subAction; m_ActionType = actionType; } public AnimationType Action { get { return m_Action; } set { m_Action = value; } } public int SubAction { get { return m_SubAction; } set { m_SubAction = value; } } public int ActionType { get { return m_ActionType; } set { m_ActionType = value; } } public static AnimationInfo GetNewAction( Body body, int oldAction ) { if( body.IsHuman || body.IsEquipment ) { switch( oldAction ) { case 05: return new AnimationInfo( AnimationType.Fidget, (int)FidgetSubType.Idle, 0 );//Idle look around case 06: return new AnimationInfo( AnimationType.Fidget, (int)FidgetSubType.Idle, 1 );//Idle fidle case 31: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackBareHand, 0 );//Attack bare hand case 18: case 27: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackBow, 0 );//Attack bow case 19: case 28: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackCrossbow, 0 );//Attack crossbow case 26: case 11: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackSmashOverHead, 0 );//Attack case 29: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackBareHand, 2 );//Horse Attack 2H case 09: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackSmash, 0 );//Attack case 10: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackStab, 0 );//Attack case 12: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackCrush, 0 );//Attack case 13: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackSwing, 0 );//Attack case 14: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackBackStab, 0 );//Attack case 16: return new AnimationInfo( AnimationType.Spell, (int)SpellSubType.Cast, 0 );//Cast case 17: return new AnimationInfo( AnimationType.Spell, (int)SpellSubType.WaveHands, 0 );//Cast hands up case 20: return new AnimationInfo( AnimationType.Impact, (int)ImpactSubType.GetHit, 0 );//Get Hit case 21: return new AnimationInfo( AnimationType.Die, (int)DieSubType.Die, 1 );//Die (backwards) case 22: return new AnimationInfo( AnimationType.Die, (int)DieSubType.Die, 0 );//Die (forwards) case 30: return new AnimationInfo( AnimationType.Block, (int)BlockSubType.Block, 0 );// OR (1, 0, 0) Block case 32: return new AnimationInfo( AnimationType.Emote, (int)EmoteSubType.Bow, 0 );//Bow case 33: return new AnimationInfo( AnimationType.Emote, (int)EmoteSubType.Salute, 0 );//Salute case 34: return new AnimationInfo( AnimationType.Eat, (int)EatSubType.Eat, 0 );//Eat/Drink case 38: return new AnimationInfo( AnimationType.Emote, (int)EmoteSubType.Walk, 0 );//walk 2D only default: Console.WriteLine( "Unhandled Human Animation {0}", oldAction ); break; } } else if( body.IsMonster ) { switch( oldAction ) { case 02: return new AnimationInfo( AnimationType.Die, (int)DieSubType.Die, 1 );//Die 1 case 03: return new AnimationInfo( AnimationType.Die, (int)DieSubType.Die, 0 );//Die 2 case 04: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackBareHand, 0 );//Attack 1 case 05: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackBareHand, 1 );//Attack 2 case 06: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackBareHand, 2 );//Attack 3 case 11: return new AnimationInfo( AnimationType.Pillage, (int)EatSubType.Eat, 0 );//Eat case 12: return new AnimationInfo( AnimationType.Spell, (int)SpellSubType.Cast, 0 );//Special Attack / Fire Breath case 15: return new AnimationInfo( AnimationType.Block, (int)BlockSubType.Block, 1 );//Block 1 case 16: return new AnimationInfo( AnimationType.Block, (int)BlockSubType.Block, 0 );//Block 2 case 17: return new AnimationInfo( AnimationType.Fidget, (int)FidgetSubType.Idle, 0 );//Idle 1 case 18: return new AnimationInfo( AnimationType.Fidget, (int)FidgetSubType.Idle, 1 );//Idle 2 case 20: return new AnimationInfo( AnimationType.TakeOff, 0, 0 );//Fly case 21: case 10: return new AnimationInfo( AnimationType.Impact, (int)ImpactSubType.GetHit, 0 );//Get Hit default: Console.WriteLine( "Unhandled Monster Animation {0}", oldAction ); break; } } else if( body.IsAnimal || body.IsSea ) { switch( oldAction ) { case 04: return new AnimationInfo( AnimationType.Alert, (int)AttackSubType.AttackBareHand, 0 );//Attack 3 case 03: return new AnimationInfo( AnimationType.Alert, (int)EatSubType.Eat, 0 );//Eat case 05: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackBareHand, 0 );//Attack 3 case 06: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackBareHand, 1 );//Attack 3 case 12: return new AnimationInfo( AnimationType.Attack, (int)AttackSubType.AttackBareHand, 2 );//Attack 3 case 07: return new AnimationInfo( AnimationType.Impact, (int)ImpactSubType.GetHit, 0 );//Get Hit case 08: return new AnimationInfo( AnimationType.Die, (int)DieSubType.Die, 1 );//Die case 09: return new AnimationInfo( AnimationType.Fidget, (int)FidgetSubType.Idle, 0 );//Idle 1 case 10: return new AnimationInfo( AnimationType.Fidget, (int)FidgetSubType.Idle, 1 );//Idle 2 case 15: return new AnimationInfo( AnimationType.Pillage, 0, 0 );// default: Console.WriteLine( "Unhandled Animal Animation {0}", oldAction ); break; } } return new AnimationInfo( AnimationType.None, 0, 0 ); } } } </pre> === spellids mysticism+bardic === <pre> </pre>
Return to
Client v7 extensions
.
Views
Page
Discussion
View source
History
Personal tools
Log in
main
Main Page
Screenshots
download
Install Guide
Forum
FAQ
Macros
Credits
dev
Developer Blog
A Guide for Artists
Development
Item Model List
Iris-Testshard
Bugreports
SvnLog
API C++
API Lua
wiki
Recent changes
Random page
Help
Search
Toolbox
What links here
Related changes
Special pages