123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434 |
- using CommonAI.data;
- using CommonAI.Data;
- using CommonAI.Zone;
- using CommonAI.Zone.Instance;
- using CommonLang.IO;
- using CommonLang.IO.Attribute;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using XmdsCommon.Plugin;
- namespace XmdsCommon.Message
- {
- /// <summary>
- /// 战斗状态改变事件.
- /// </summary>
- [MessageType(0x9001001)]
- public class CombatStateChangeEvent : ObjectEvent
- {
- private BattleStatus mCurState = BattleStatus.None;
- public BattleStatus CurState { get { return mCurState; } }
- public CombatStateChangeEvent() { }
- public CombatStateChangeEvent(uint unit_id, BattleStatus state) : base(unit_id) { mCurState = state; }
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutEnum8(mCurState);
- }
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- mCurState = input.GetEnum8<BattleStatus>();
- }
- }
- /// <summary>
- /// 跳战斗数字.
- /// </summary>
- [MessageType(0xF000010)]
- public class BattleHintNumberB2C : PlayerEvent
- {
- public uint TargetObjID;
- public int Value;
- public byte State;
- public BattleHintNumberB2C() { }
- public BattleHintNumberB2C(uint objId, int hp, byte state)
- {
- TargetObjID = objId;
- Value = hp;
- State = state;
- }
- override public void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutU32(TargetObjID);
- output.PutS32(Value);
- output.PutU8(State);
- }
- override public void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- TargetObjID = input.GetU32();
- Value = input.GetS32();
- State = input.GetU8();
- }
- }
- /// <summary>
- /// 玩家外观变更消息
- /// </summary>
- [MessageType(0xF000001)]
- public class PlayAvatarEventB2C : ObjectEvent
- {
- public List<XmdsAvatarInfo> AvatarList = null;
- public PlayAvatarEventB2C() { }
- public PlayAvatarEventB2C(List<XmdsAvatarInfo> avatar)
- {
- AvatarList = avatar;
- }
- public PlayAvatarEventB2C(uint unit_id, List<XmdsAvatarInfo> avatar)
- : base(unit_id)
- {
- AvatarList = avatar;
- }
- override public void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutList<XmdsAvatarInfo>(AvatarList, output.PutExt);
- }
- override public void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- AvatarList = input.GetList<XmdsAvatarInfo>(input.GetExt<XmdsAvatarInfo>);
- }
- }
- /// <summary>
- /// 能够同步给给客户端的数据.
- /// </summary>
- [MessageType(0xF000008)]
- public class PlayerVisibleDataB2C : IExternalizable, CommonAI.ZoneClient.IUnitVisibleData
- {
- /// <summary>
- /// 单位基础信息.
- /// </summary>
- public XmdsUnitBaseInfo BaseInfo = new XmdsUnitBaseInfo();
- /// <summary>
- ///装备时装信息.
- /// </summary>
- public List<XmdsAvatarInfo> AvatarList = new List<XmdsAvatarInfo>();
- /// <summary>
- /// 单位PK相关数据.
- /// </summary>
- public PKInfo UnitPKInfo = null;
- /// <summary>
- ///动态场景相关信息.
- /// </summary>
- public SceneInfo UnitSceneInfo = null;
- public void WriteExternal(IOutputStream output)
- {
- output.PutExt(this.BaseInfo);
- output.PutList(this.AvatarList, output.PutExt);
- output.PutExt(this.UnitPKInfo);
- output.PutExt(this.UnitSceneInfo);
- }
- public void ReadExternal(IInputStream input)
- {
- this.BaseInfo = input.GetExt<XmdsUnitBaseInfo>();
- this.AvatarList = input.GetList<XmdsAvatarInfo>(input.GetExt<XmdsAvatarInfo>);
- this.UnitPKInfo = input.GetExt<PKInfo>();
- this.UnitSceneInfo = input.GetExt<SceneInfo>();
- }
- public void setVisibleName(String name) { }
- public void setVisibleCardData(ICardData datas) { }
- }
- [MessageType(0xF000023)]
- public class PlayerGotItemB2C : PlayerEvent
- {
- public string IconName;//tcCode
- public int Qty;//数量.
- public int Quality;//品质.
- public object Clone()
- {
- PlayerGotItemB2C ret = new PlayerGotItemB2C();
- ret.IconName = IconName;
- ret.Qty = Qty;
- ret.Quality = Quality;
- return ret;
- }
- override public void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutUTF(IconName);
- output.PutS32(Qty);
- output.PutS32(Quality);
- }
- override public void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- IconName = input.GetUTF();
- Qty = input.GetS32();
- Quality = input.GetS32();
- }
- }
- [MessageType(0xF000006)]
- public class DropItem : ICloneable, IExternalizable
- {
- public string ObjID;
- public string Name;
- public string FileName;//
- public int Qty;//数量.
- public int TTL;//存在时间.
- public int Quality;//品质.
- public int TemplateID;//模板ID
- public int FreezeTime;//不可捡时间时间.
- public int ProtectTime;//保护时间.
- public List<string> PlayerUUID;//哪个玩家掉的.
- public string IconName;//图标.
- public byte Mode;//拾取模式.
- public float OriginX;//初始坐标X.
- public float OriginY;//初始坐标Y.
- public int createTime; //创建时间
- public String code; //道具code
- //道具绑定玩家id,只有该玩家可见,可拾取
- public string bindPlayerId;
- public object Clone()
- {
- DropItem ret = new DropItem();
- ret.ObjID = ObjID;
- ret.Name = Name;
- ret.FileName = FileName;
- ret.Qty = Qty;
- ret.TTL = TTL;
- ret.Quality = Quality;
- ret.TemplateID = TemplateID;
- ret.FreezeTime = FreezeTime;
- ret.ProtectTime = ProtectTime;
- ret.PlayerUUID = PlayerUUID;
- ret.IconName = IconName;
- ret.Mode = Mode;
- ret.OriginX = OriginX;
- ret.OriginY = OriginY;
- ret.code = this.code;
- ret.bindPlayerId = this.bindPlayerId;
- ret.createTime = this.createTime;
- return ret;
- }
- public void WriteExternal(IOutputStream output)
- {
- output.PutUTF(ObjID);
- output.PutUTF(Name);
- output.PutUTF(FileName);
- output.PutS32(Qty);
- output.PutS32(TTL);
- output.PutS32(Quality);
- output.PutS32(TemplateID);
- output.PutS32(FreezeTime);
- output.PutS32(ProtectTime);
- output.PutList<string>(PlayerUUID, output.PutUTF);
- output.PutUTF(IconName);
- output.PutU8(Mode);
- output.PutF32(OriginX);
- output.PutF32(OriginY);
- output.PutUTF(this.code);
- output.PutS32(this.createTime);
- }
- public void ReadExternal(IInputStream input)
- {
- ObjID = input.GetUTF();
- Name = input.GetUTF();
- FileName = input.GetUTF();
- Qty = input.GetS32();
- TTL = input.GetS32();
- Quality = input.GetS32();
- TemplateID = input.GetS32();
- FreezeTime = input.GetS32();
- ProtectTime = input.GetS32();
- PlayerUUID = input.GetUTFList();
- IconName = input.GetUTF();
- Mode = input.GetU8();
- OriginX = input.GetF32();
- OriginY = input.GetF32();
-
- this.code = input.GetUTF();
- this.createTime = input.GetS32();
- }
- }
- [MessageType(0xF000011)]
- public class ScriptAddUnitEventsB2C : ZoneEvent
- {
- public uint ObjectID;
- public int TemplateID;
- public float X;
- public float Y;
- public ScriptAddUnitEventsB2C() { }
- public ScriptAddUnitEventsB2C(InstanceUnit unit)
- {
- this.ObjectID = unit.ID;
- this.TemplateID = unit.Info.ID;
- this.X = unit.X;
- this.Y = unit.Y;
- }
- public override void WriteExternal(IOutputStream output)
- {
- output.PutU32(this.ObjectID);
- output.PutS32(this.TemplateID);
- output.PutF32(this.X);
- output.PutF32(this.Y);
- }
- public override void ReadExternal(IInputStream input)
- {
- this.ObjectID = input.GetU32();
- this.TemplateID = input.GetS32();
- this.X = input.GetF32();
- this.Y = input.GetF32();
- }
- }
- [MessageType(0xF000012)]
- public class ScriptRemoveUnitEventsB2C : ZoneEvent
- {
- public uint ObjectID;
- public int TemplateID;
- public ScriptRemoveUnitEventsB2C() { }
- public ScriptRemoveUnitEventsB2C(InstanceUnit unit)
- {
- this.ObjectID = unit.ID;
- this.TemplateID = unit.Info.ID;
- }
- public override void WriteExternal(IOutputStream output)
- {
- output.PutU32(this.ObjectID);
- output.PutS32(this.TemplateID);
- }
- public override void ReadExternal(IInputStream input)
- {
- this.ObjectID = input.GetU32();
- this.TemplateID = input.GetS32();
- }
- }
- /// <summary>
- /// 基础数据更新主要是等级和VIP消息
- /// </summary>
- [MessageType(0xF000002)]
- public class XmdsUnitBaseInfoEventB2C : ObjectEvent
- {
- public XmdsUnitBaseInfo Props = null;
- public XmdsUnitBaseInfoEventB2C() { }
- public XmdsUnitBaseInfoEventB2C(XmdsUnitBaseInfo props)
- {
- Props = props;
- }
- public XmdsUnitBaseInfoEventB2C(uint unit_id, XmdsUnitBaseInfo props)
- : base(unit_id)
- {
- Props = props;
- }
- override public void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutExt(Props);
- }
- override public void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- Props = input.GetExt<XmdsUnitBaseInfo>();
- }
- }
- /// <summary>
- /// 属性更新的消息
- /// </summary>
- [MessageType(0xF000003)]
- public class XmdsUnitPropEventB2C : PlayerEvent
- {
- public XmdsUnitProp Props = null;
- public XmdsUnitPropEventB2C() { }
- public XmdsUnitPropEventB2C(XmdsUnitProp props)
- {
- Props = props;
- }
- public XmdsUnitPropEventB2C(uint unit_id, XmdsUnitProp props)
- : base(unit_id)
- {
- Props = props;
- }
- override public void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutExt(Props);
- }
- override public void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- Props = input.GetExt<XmdsUnitProp>();
- }
- }
- /// <summary>
- /// 战斗服提示信息.
- /// </summary>
- [MessageType(0xF000014)]
- public class ShowTipsEventB2C : PlayerEvent
- {
- public string Msg = null;
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutUTF(Msg);
- }
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- Msg = input.GetUTF();
- }
- }
- /// <summary>
- /// 怪物扩展数据.
- /// </summary>
- [MessageType(0xF000015)]
- public class MonsterVisibleDataB2C : IExternalizable, CommonAI.ZoneClient.IUnitVisibleData
- {
- /// <summary>
- /// 怪物类型:0:普通怪,1:稀有怪,2:首脑怪,3:精英怪,4:BOSS.
- /// </summary>
- public enum MonsterType : byte
- {
- MType0 = 0,
- MType1 = 1,
- MType2 = 2,
- MType3 = 3, //精英
- MType4 = 4, //boss
- MType5 = 5,
- MType6 = 6,
- }
- /// <summary>
- /// 怪物名字颜色:0:白色,默认颜色1:绿色,优秀2: 蓝色,精良3: 紫色,史诗4: 橙色,传说5: 红色,顶级.6:澄绿色
- /// </summary>
- public enum MonsterQcolor : byte
- {
- Q0 = 0,
- Q1 = 1,
- Q2 = 2,
- Q3 = 3,
- Q4 = 4,
- Q5 = 5,
- Q6 = 6,
- }
- /// <summary>
- /// 单位种族.
- /// </summary>
- public enum MonsterAtype : byte
- {
- Human = 0,
- Monster = 1,
- UnDead = 2,
- Evil = 3,
- Other = 9,
- }
- /// <summary>
- /// 攻击类型.
- /// </summary>
- public enum MonsterAttackType : byte
- {
- Passive = 0,//被动攻击.
- Active = 1,//主动攻击.
- }
- /// <summary>
- /// 归属者信息.
- /// </summary>
- [MessageType(0xF000030)]
- public class HeirInfo : IExternalizable
- {
- public string Name;
- public int hpPercent;
- public CommonAI.Data.XmdsUnitPro ProType;
- public void ReadExternal(IInputStream input)
- {
- Name = input.GetUTF();
- hpPercent = input.GetS32();
- ProType = input.GetEnum8<CommonAI.Data.XmdsUnitPro>();
- }
- public void WriteExternal(IOutputStream output)
- {
- output.PutUTF(Name);
- output.PutS32(hpPercent);
- output.PutEnum8<CommonAI.Data.XmdsUnitPro>(ProType);
- }
- }
- public int MonsterID;
- public string DisplayName;
- public string Title;
- public MonsterAtype Atype;
- public MonsterQcolor Qcolor;
- public MonsterType MType;
- public MonsterAttackType AttackType;
- public string SenceType = null;
- public HeirInfo UnitHeirInfo = null;
- //血条层数
- public byte hpPlies = 1;
- //卡牌数据
- private ICardData cardInterface;
- public CardType[] cardData; //0-3代表有
- public void setVisibleName(String name)
- {
- if(name != null && name.Length > 0)
- {
- this.DisplayName = name;
- }
- }
- public void setVisibleCardData(ICardData datas)
- {
- this.cardInterface = datas;
- }
- public void WriteExternal(IOutputStream output)
- {
- output.PutS32(MonsterID);
- output.PutUTF(DisplayName);
- output.PutEnum8(Atype);
- output.PutEnum8(Qcolor);
- output.PutEnum8(MType);
- output.PutEnum8(AttackType);
- output.PutUTF(SenceType);
- output.PutUTF(Title);
- output.PutExt(UnitHeirInfo);
- output.PutU8(hpPlies);
- if (this.MType >= MonsterType.MType4)
- {
- for (int i = 0; i < (int)CardType.Max; i++)
- {
- CardType testType = cardInterface == null ? CardType.Max : cardInterface.GetCardData(i);
- output.PutEnum8(cardInterface == null ? CardType.Max : cardInterface.GetCardData(i));
- //System.Console.WriteLine("boss数据:" + testType);
- }
- }
- }
- public void ReadExternal(IInputStream input)
- {
- MonsterID = input.GetS32();
- DisplayName = input.GetUTF();
- Atype = input.GetEnum8<MonsterAtype>();
- Qcolor = input.GetEnum8<MonsterQcolor>();
- MType = input.GetEnum8<MonsterType>();
- AttackType = input.GetEnum8<MonsterAttackType>();
- SenceType = input.GetUTF();
- Title = input.GetUTF();
- UnitHeirInfo = input.GetExt<HeirInfo>();
- hpPlies = input.GetU8();
-
- if (this.MType >= MonsterType.MType4)
- {
- cardData = new CardType[(int)CardType.Max];
- for (int i = 0; i < (int)CardType.Max; i++)
- {
- cardData[i] = input.GetEnum8<CardType>();
- //System.Console.WriteLine("boss数据:" + cardData[i]);
- }
- }
- }
- }
- /// <summary>
- /// 单位PK等级改变通知.
- /// </summary>
- [MessageType(0xF000019)]
- public class PlayerPKLvChangeEventB2C : ObjectEvent
- {
- public PKLevel CurLv = PKLevel.White;
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutEnum8(CurLv);
- }
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- CurLv = input.GetEnum8<PKLevel>();
- }
- }
- /// <summary>
- /// PK值变更通知.
- /// </summary>
- [MessageType(0xF00001E)]
- public class PlayerPKValueChangeEventB2C : PlayerEvent
- {
- /// <summary>
- /// 当前PK值.
- /// </summary>
- public int CurPKValue;
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutS32(CurPKValue);
- }
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- CurPKValue = input.GetS32();
- }
- }
- /// <summary>
- /// 召唤物客户端同步信息.
- /// </summary>
- [MessageType(0xF00001A)]
- public class SummonUnitVisibleDataB2C : IExternalizable, CommonAI.ZoneClient.IUnitVisibleData
- {
- /// <summary>
- /// 宿主ID.
- /// </summary>
- public uint MasterObjID = 0;
- //召唤物模型信息。如果不为空,则替换之前获取模型的逻辑
- public List<XmdsAvatarInfo> AvatarList = null;
- public void ReadExternal(IInputStream input)
- {
- this.MasterObjID = input.GetU32();
- this.AvatarList = input.GetList<XmdsAvatarInfo>(input.GetExt<XmdsAvatarInfo>);
- }
- public void WriteExternal(IOutputStream output)
- {
- output.PutU32(MasterObjID);
- output.PutList(this.AvatarList, output.PutExt);
- }
- public void setVisibleName(String name) {}
- public void setVisibleCardData(ICardData datas) { }
- }
- /// <summary>
- /// 同步队友信息.
- /// </summary>
- [MessageType(0xF00001C)]
- public class PlayerTeamIntoEventB2C : PlayerEvent
- {
- public List<string> Members;
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutList<string>(Members, output.PutUTF);
- }
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- Members = input.GetUTFList();
- }
- }
- /// <summary>
- /// 单位战斗属性同步.
- /// </summary>
- [MessageType(0xF00001D)]
- public class PlayerBattlePropChangeEventB2C : UnitAttrMaskType
- {
- public ulong Mask = 0;
- //最大血量.
- public int MaxHP = 100;
- //移动速度(最终值)
- public float MoveSpeed = 7;
- //移动速度加成
- public int MoveSpeedAddition = 0;
- //血量恢复值.
- public int HPReborn = 10;
- //同步Attribute
- //生命增加百分比
- public int HPPer = 0;
- //攻击
- public int Attack = 0;
- //攻击增加百分比
- public int AttackPer = 0;
- //防御
- public int Def = 0;
- //防御增加百分比
- public int DefPer = 0;
- //穿透增加百分比
- public int IgnoreDefensePer = 0;
- //暴击率
- public int CritRate = 0;
- //抗暴率
- public int ResCritRate = 0;
- //暴击伤害叠加百分比
- public int CritDamage = 0;
- //伤害增加百分比(玩家之间)
- public int IncAllDamage = 0;
- //伤害减免百分比(玩家之间)
- public int AllDamageReduce = 0;
- //韧性
- public int CtrlTimeReduce = 0;
- //冷却缩减
- public int SkillCD = 0;
- //治疗效果
- public int HealEffect = 0;
- //被治疗效果
- public int HealedEffect = 0;
- //技能加成
- public int SkillDamage = 0;
- //攻击速度
- public int AttackSpeed = 0;
- //控制增幅
- public int ControlUp = 0;
- //金属性攻击
- public int GoldAttack = 0;
- //金属性防御
- public int GoldDefense = 0;
- //木属性攻击
- public int WoodAttack = 0;
- //木属性防御
- public int WoodDefense = 0;
- //水属性攻击
- public int WaterAttack = 0;
- //水属性防御
- public int WaterDefense = 0;
- //火属性攻击
- public int FireAttack = 0;
- //火属性防御
- public int FireDefense = 0;
- //土属性攻击
- public int SoilAttack = 0;
- //土属性防御
- public int SoilDefense = 0;
- //对Boss额外暴击率
- public int ToBossCritRate = 0;
- //对Boss额外暴击伤害
- public int ToBossCritDamage = 0;
- //金克制
- public int GoldRestraint = 0;
- //木克制
- public int WoodRestraint = 0;
- //水克制
- public int WaterRestraint = 0;
- //火克制
- public int FireRestraint = 0;
- //土克制
- public int SoilRestraint = 0;
- //金抵御
- public int GoldResist = 0;
- //木抵御
- public int WoodResist = 0;
- //水抵御
- public int WaterResist = 0;
- //火抵御
- public int FireResist = 0;
- //土抵御
- public int SoilResist = 0;
- //杀意值
- public int PvpKillValue = 0;
- //妖气等级
- public int YaoQiLevel = 0;
- //普攻吸血
- public int NormalAtkLeech = 0;
- //技能吸血
- public int ActiveAtkLeech = 0;
- //神器主属性伤害加成
- public int ArtifactMainPer = 0;
- //最大生命值(ext, 暂时仅角色面板显示)
- public int MaxHPExt = 0;
- /// 野外boss伤害增益
- public int FieldBossDamageAdd;
- /// 副本小怪伤害增益
- public int DungeonMonsterDamageAdd;
- //妖兽破定效率
- public int breakShieldValue;
- public int[] MonsterRestraint = new int[(int)UnitFateType.Five];
- //猎妖属性
- public int monsterAtk; // 猎妖攻
- public int monsterDef; // 猎妖防
- public int monsterAtkPer; // 猎妖攻百分比
- public int monsterDefPer; // 猎妖防百分比
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutU64(Mask);
- if (Mask == 0) { return; }
- if ((Mask & MASK_MAX_HP) != 0) output.PutS32(MaxHP);
- if ((Mask & MASK_MOVE_SPEED) != 0) output.PutF32(MoveSpeed);
- if ((Mask & MASK_HP_REBORN) != 0) output.PutS32(HPReborn);
- //同步Attribute
- if ((Mask & MASK_HP_PER) != 0) output.PutS32(HPPer);
- if ((Mask & MASK_ATTACK) != 0) output.PutS32(Attack);
- if ((Mask & MASK_ATTACK_PER) != 0) output.PutS32(AttackPer);
- if ((Mask & MASK_DEF) != 0) output.PutS32(Def);
- if ((Mask & MASK_DEF_PER) != 0) output.PutS32(DefPer);
- if ((Mask & MASK_IGNORE_DEFENSE_PER) != 0) output.PutS32(IgnoreDefensePer);
- if ((Mask & MASK_CRIT_RATE) != 0) output.PutS32(CritRate);
- if ((Mask & MASK_CRIT_DAMAGE) != 0) output.PutS32(CritDamage);
- if ((Mask & MASK_INCALLDAMAGE) != 0) output.PutS32(IncAllDamage);
- if ((Mask & MASK_ALL_DAMAGE_REDUCE) != 0) output.PutS32(AllDamageReduce);
- if ((Mask & MASK_CTRLTIME_REDUCE) != 0) output.PutS32(CtrlTimeReduce);
- if ((Mask & MASK_SKILL_CD) != 0) output.PutS32(SkillCD);
- if ((Mask & MASK_HEALEFFECT) != 0) output.PutS32(HealEffect);
- if ((Mask & MASK_HEALEDEFFECT) != 0) output.PutS32(HealedEffect);
- if ((Mask & MASK_SKILLDAMAGE) != 0) output.PutS32(SkillDamage);
- if ((Mask & MASK_ATTACK_SPEED) != 0) output.PutS32(AttackSpeed);
- if ((Mask & MASK_CONTROL_UP) != 0) output.PutS32(ControlUp);
- if ((Mask & MASK_RES_CRIT_RATE) != 0) output.PutS32(this.ResCritRate);
- if ((Mask & MASK_GOLD_ATTACK) != 0) output.PutS32(GoldAttack);
- if ((Mask & MASK_GOLD_DEFENSE) != 0) output.PutS32(GoldDefense);
- if ((Mask & MASK_WOOD_ATTACK) != 0) output.PutS32(WoodAttack);
- if ((Mask & MASK_WOOD_DEFENSE) != 0) output.PutS32(WoodDefense);
- if ((Mask & MASK_WATER_ATTACK) != 0) output.PutS32(WaterAttack);
- if ((Mask & MASK_WATER_DEFENSE) != 0) output.PutS32(WaterDefense);
- if ((Mask & MASK_FIRE_ATTACK) != 0) output.PutS32(FireAttack);
- if ((Mask & MASK_FIRE_DEFENSE) != 0) output.PutS32(FireDefense);
- if ((Mask & MASK_SOIL_ATTACK) != 0) output.PutS32(SoilAttack);
- if ((Mask & MASK_SOIL_DEFENSE) != 0) output.PutS32(SoilDefense);
- if ((Mask & MASK_TOBOSS_CRIT_RATE) != 0) output.PutS32(ToBossCritRate);
- if ((Mask & MASK_TOBOSS_CRIT_DAMAGE) != 0) output.PutS32(ToBossCritDamage);
- if ((Mask & MASK_GOLD_RESTRAINT) != 0) output.PutS32(GoldRestraint);
- if ((Mask & MASK_WOOD_RESTRAINT) != 0) output.PutS32(WoodRestraint);
- if ((Mask & MASK_WATER_RESTRAINT) != 0) output.PutS32(WaterRestraint);
- if ((Mask & MASK_FIRE_RESTRAINT) != 0) output.PutS32(FireRestraint);
- if ((Mask & MASK_SOIL_RESTRAINT) != 0) output.PutS32(SoilRestraint);
- if ((Mask & MASK_GOLD_RESIST) != 0) output.PutS32(GoldResist);
- if ((Mask & MASK_WOOD_RESIST) != 0) output.PutS32(WoodResist);
- if ((Mask & MASK_WATER_RESIST) != 0) output.PutS32(WaterResist);
- if ((Mask & MASK_FIRE_RESIST) != 0) output.PutS32(FireResist);
- if ((Mask & MASK_SOIL_RESIST) != 0) output.PutS32(SoilResist);
- if ((Mask & MASK_PVP_KILLVALUE) != 0) output.PutS32(PvpKillValue);
- if ((Mask & MASK_YAOQI_LEVEL) != 0) output.PutS32(YaoQiLevel);
- if ((Mask & MASK_NORMAL_ATK_LEECH) != 0) output.PutS32(NormalAtkLeech);
- if ((Mask & MASK_ACTIVE_ATK_LEECH) != 0) output.PutS32(ActiveAtkLeech);
- if ((Mask & MASK_ARTIFACTMAIN_PER) != 0) output.PutS32(ArtifactMainPer);
- if ((Mask & MASK_FIELD_BOSS_DAMAGEADD) != 0) output.PutS32(FieldBossDamageAdd);
- if ((Mask & MASK_MAX_HP_EXT) != 0) output.PutS32(this.MaxHPExt);
- if ((Mask & MASK_DUNGEON_MONETER_DAMAGEADD) != 0) output.PutS32(DungeonMonsterDamageAdd);
- if ((Mask & MASK_MOVE_SPEED_ADDITION) != 0) output.PutS32(this.MoveSpeedAddition);
- //新增属性
- if ((Mask & MASK_MONSTER_RESTRAINT_1) != 0) output.PutS32(this.MonsterRestraint[0]);
- if ((Mask & MASK_MONSTER_RESTRAINT_2) != 0) output.PutS32(this.MonsterRestraint[1]);
- if ((Mask & MASK_MONSTER_RESTRAINT_3) != 0) output.PutS32(this.MonsterRestraint[2]);
- if ((Mask & MASK_MONSTER_RESTRAINT_4) != 0) output.PutS32(this.MonsterRestraint[3]);
- if ((Mask & MASK_MONSTER_RESTRAINT_5) != 0) output.PutS32(this.MonsterRestraint[4]);
- if ((Mask & MASK_MONSTER_ATK) != 0) output.PutS32(this.monsterAtk);
- if ((Mask & MASK_MONSTER_DEF) != 0) output.PutS32(this.monsterDef);
- if ((Mask & MASK_MONSTER_ATK_PER) != 0) output.PutS32(this.monsterAtkPer);
- if ((Mask & MASK_MONSTER_DEF_PER) != 0) output.PutS32(this.monsterDefPer);
- }
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- Mask = input.GetU64();
- if (Mask == 0) { return; }
- if ((Mask & MASK_MAX_HP) != 0) this.MaxHP = input.GetS32();
- if ((Mask & MASK_MOVE_SPEED) != 0) this.MoveSpeed = input.GetF32();
- if ((Mask & MASK_HP_REBORN) != 0) this.HPReborn = input.GetS32();
- //同步Attribute
- if ((Mask & MASK_HP_PER) != 0) this.HPPer = input.GetS32();
- if ((Mask & MASK_ATTACK) != 0) this.Attack = input.GetS32();
- if ((Mask & MASK_ATTACK_PER) != 0) this.AttackPer = input.GetS32();
- if ((Mask & MASK_DEF) != 0) this.Def = input.GetS32();
- if ((Mask & MASK_DEF_PER) != 0) this.DefPer = input.GetS32();
- if ((Mask & MASK_IGNORE_DEFENSE_PER) != 0) this.IgnoreDefensePer = input.GetS32();
- if ((Mask & MASK_CRIT_RATE) != 0) this.CritRate = input.GetS32();
- if ((Mask & MASK_CRIT_DAMAGE) != 0) this.CritDamage = input.GetS32();
- if ((Mask & MASK_INCALLDAMAGE) != 0) this.IncAllDamage = input.GetS32();
- if ((Mask & MASK_ALL_DAMAGE_REDUCE) != 0) this.AllDamageReduce = input.GetS32();
- if ((Mask & MASK_CTRLTIME_REDUCE) != 0) this.CtrlTimeReduce = input.GetS32();
- if ((Mask & MASK_SKILL_CD) != 0) this.SkillCD = input.GetS32();
- if ((Mask & MASK_HEALEFFECT) != 0) this.HealEffect = input.GetS32();
- if ((Mask & MASK_HEALEDEFFECT) != 0) this.HealedEffect = input.GetS32();
- if ((Mask & MASK_SKILLDAMAGE) != 0) this.SkillDamage = input.GetS32();
- if ((Mask & MASK_ATTACK_SPEED) != 0) this.AttackSpeed = input.GetS32();
- if ((Mask & MASK_CONTROL_UP) != 0) this.ControlUp = input.GetS32();
- if ((Mask & MASK_RES_CRIT_RATE) != 0) this.ResCritRate = input.GetS32();
- if ((Mask & MASK_GOLD_ATTACK) != 0) this.GoldAttack = input.GetS32();
- if ((Mask & MASK_GOLD_DEFENSE) != 0) this.GoldDefense = input.GetS32();
- if ((Mask & MASK_WOOD_ATTACK) != 0) this.WoodAttack = input.GetS32();
- if ((Mask & MASK_WOOD_DEFENSE) != 0) this.WoodDefense = input.GetS32();
- if ((Mask & MASK_WATER_ATTACK) != 0) this.WaterAttack = input.GetS32();
- if ((Mask & MASK_WATER_DEFENSE) != 0) this.WaterDefense = input.GetS32();
- if ((Mask & MASK_FIRE_ATTACK) != 0) this.FireAttack = input.GetS32();
- if ((Mask & MASK_FIRE_DEFENSE) != 0) this.FireDefense = input.GetS32();
- if ((Mask & MASK_SOIL_ATTACK) != 0) this.SoilAttack = input.GetS32();
- if ((Mask & MASK_SOIL_DEFENSE) != 0) this.SoilDefense = input.GetS32();
- if ((Mask & MASK_TOBOSS_CRIT_RATE) != 0) this.ToBossCritRate = input.GetS32();
- if ((Mask & MASK_TOBOSS_CRIT_DAMAGE) != 0) this.ToBossCritDamage = input.GetS32();
- if ((Mask & MASK_GOLD_RESTRAINT) != 0) this.GoldRestraint = input.GetS32();
- if ((Mask & MASK_WOOD_RESTRAINT) != 0) this.WoodRestraint = input.GetS32();
- if ((Mask & MASK_WATER_RESTRAINT) != 0) this.WaterRestraint = input.GetS32();
- if ((Mask & MASK_FIRE_RESTRAINT) != 0) this.FireRestraint = input.GetS32();
- if ((Mask & MASK_SOIL_RESTRAINT) != 0) this.SoilRestraint = input.GetS32();
- if ((Mask & MASK_GOLD_RESIST) != 0) this.GoldResist = input.GetS32();
- if ((Mask & MASK_WOOD_RESIST) != 0) this.WoodResist = input.GetS32();
- if ((Mask & MASK_WATER_RESIST) != 0) this.WaterResist = input.GetS32();
- if ((Mask & MASK_FIRE_RESIST) != 0) this.FireResist = input.GetS32();
- if ((Mask & MASK_SOIL_RESIST) != 0) this.SoilResist = input.GetS32();
- if ((Mask & MASK_PVP_KILLVALUE) != 0) this.PvpKillValue = input.GetS32();
- if ((Mask & MASK_YAOQI_LEVEL) != 0) this.YaoQiLevel = input.GetS32();
- if ((Mask & MASK_NORMAL_ATK_LEECH) != 0) this.NormalAtkLeech = input.GetS32();
- if ((Mask & MASK_ACTIVE_ATK_LEECH) != 0) this.ActiveAtkLeech = input.GetS32();
- if ((Mask & MASK_ARTIFACTMAIN_PER) != 0) this.ArtifactMainPer = input.GetS32();
- if ((Mask & MASK_FIELD_BOSS_DAMAGEADD) != 0) this.FieldBossDamageAdd = input.GetS32();
- if ((Mask & MASK_MAX_HP_EXT) != 0) this.MaxHPExt = input.GetS32();
- if ((Mask & MASK_DUNGEON_MONETER_DAMAGEADD) != 0) this.DungeonMonsterDamageAdd = input.GetS32();
- if ((Mask & MASK_MOVE_SPEED_ADDITION) != 0) this.MoveSpeedAddition = input.GetS32();
- //新增属性
- if ((Mask & MASK_MONSTER_RESTRAINT_1) != 0) this.MonsterRestraint[0] = input.GetS32();
- if ((Mask & MASK_MONSTER_RESTRAINT_2) != 0) this.MonsterRestraint[1] = input.GetS32();
- if ((Mask & MASK_MONSTER_RESTRAINT_3) != 0) this.MonsterRestraint[2] = input.GetS32();
- if ((Mask & MASK_MONSTER_RESTRAINT_4) != 0) this.MonsterRestraint[3] = input.GetS32();
- if ((Mask & MASK_MONSTER_RESTRAINT_5) != 0) this.MonsterRestraint[4] = input.GetS32();
- if ((Mask & MASK_MONSTER_ATK) != 0) this.monsterAtk = input.GetS32();
- if ((Mask & MASK_MONSTER_DEF) != 0) this.monsterDef = input.GetS32();
- if ((Mask & MASK_MONSTER_ATK_PER) != 0) this.monsterAtkPer = input.GetS32();
- if ((Mask & MASK_MONSTER_DEF_PER) != 0) this.monsterDefPer = input.GetS32();
- }
- }
- /// <summary>
- /// NPC治愈协议.
- /// </summary>
- [MessageType(0xF00001F)]
- public class NPCCureEventB2C : PlayerEvent
- {
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- }
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- }
- }
- /// <summary>
- /// Buff触发技能变更.
- /// </summary>
- [MessageType(0xF000020)]
- public class BuffActiveSkillEventB2C : PlayerEvent
- {
- public bool IsWorking;
- public int BuffID;
- public int ActiveSkillID;
- public int FreezeSkillID;
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutBool(IsWorking);
- output.PutS32(BuffID);
- output.PutS32(ActiveSkillID);
- output.PutS32(FreezeSkillID);
- }
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- IsWorking = input.GetBool();
- BuffID = input.GetS32();
- ActiveSkillID = input.GetS32();
- FreezeSkillID = input.GetS32();
- }
- }
- /// <summary>
- /// Buff触发技能变更.
- /// </summary>
- [MessageType(0xF000022)]
- public class BattleFloatTipsEventB2C : PlayerEvent
- {
- public CommonAI.XmdsConstConfig.BattleFloatTipsType Type;
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutEnum8<CommonAI.XmdsConstConfig.BattleFloatTipsType>(Type);
- }
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- Type = input.GetEnum8<CommonAI.XmdsConstConfig.BattleFloatTipsType>();
- }
- }
- /// <summary>
- /// 宠物同步客户端数据.
- /// </summary>
- [MessageType(0xF000024)]
- public class PetVisibleDataB2C : IExternalizable, CommonAI.ZoneClient.IUnitVisibleData
- {
- /// <summary>
- /// 单位基础信息.
- /// </summary>
- public PetBaseInfo BaseInfo = new PetBaseInfo();
- public void WriteExternal(IOutputStream output)
- {
- output.PutExt(this.BaseInfo);
- }
- public void ReadExternal(IInputStream input)
- {
- this.BaseInfo = input.GetExt<PetBaseInfo>();
- }
- public void setVisibleName(String name) { }
- public void setVisibleCardData(ICardData datas) { }
- }
- /// <summary>
- /// 宠物基础信息变更事件.
- /// </summary>
- [MessageType(0xF000025)]
- public class PetBaseInfoChangeEventB2C : ObjectEvent
- {
- public PetBaseInfo BaseInfo;
- override public void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutExt(BaseInfo);
- }
- override public void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- BaseInfo = input.GetExt<PetBaseInfo>();
- }
- }
- /// <summary>
- /// 单位遗言变更协议.
- /// </summary>
- [MessageType(0xF000026)]
- public class TestamentChangeEventB2C : ObjectEvent
- {
- public byte TestamentID;
- override public void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutU8(TestamentID);
- }
- override public void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- TestamentID = input.GetU8();
- }
- }
- /// <summary>
- /// 气泡框.
- /// </summary>
- [MessageType(0xF000027)]
- public class BubbleTipsEventB2C : ObjectEvent
- {
- /// <summary>
- /// 消息.
- /// </summary>
- public string Msg;
- override public void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutUTF(Msg);
- }
- override public void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- Msg = input.GetUTF();
- }
- }
- /// <summary>
- /// 向场景内单个单位发送播放音频通知.
- /// </summary>
- [MessageType(0xF000028)]
- public class PlaySoundEventB2CForOne : PlayerEvent
- {
- /// <summary>
- /// 音频文件名,不带后缀.
- /// </summary>
- public string SoundName = null;
- override public void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutUTF(SoundName);
- }
- override public void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- SoundName = input.GetUTF();
- }
- }
- /// <summary>
- /// 向场景内所有单位发送播放音频通知.
- /// </summary>
- [MessageType(0xF000029)]
- public class PlaySoundEventB2CForAll : ZoneEvent
- {
- /// <summary>
- /// 音频文件名,不带后缀.
- /// </summary>
- public string SoundName = null;
- override public void WriteExternal(IOutputStream output)
- {
- output.PutUTF(SoundName);
- }
- override public void ReadExternal(IInputStream input)
- {
- SoundName = input.GetUTF();
- }
- }
- /// <summary>
- /// 怪物归属权更改.
- /// </summary>
- [MessageType(0xF000031)]
- public class MonsterHeirInfoChangeEventB2C : ObjectEvent
- {
- public MonsterVisibleDataB2C.HeirInfo UnitHeirInfo;
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutExt(UnitHeirInfo);
- }
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- UnitHeirInfo = input.GetExt<MonsterVisibleDataB2C.HeirInfo>();
- }
- }
- /// <summary>
- /// 发送可否放置法器通知
- /// </summary>
- [MessageType(0xF000032)]
- public class PlayerPutRefineSoulItemB2c : PlayerEvent
- {
- public bool CanPut = true;
- public string QuestID = null;
- override public void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutBool(CanPut);
- output.PutUTF(QuestID);
- }
- override public void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- CanPut = input.GetBool();
- QuestID = input.GetUTF();
- }
- }
- /// <summary>
- /// 单位动态播放特效(非编辑器中的静态数据)
- /// </summary>
- [MessageType(0xF000033)]
- public class DynamicUnitEffectB2C : ObjectEvent
- {
- public string Name;
- public bool BindBody;
- public string BindPartName;
- public float ScaleToBodySize;
- public string SoundName;
- public int EarthQuakeMS;
- public float EarthQuakeXYZ;
- public string CameraAnimation;
- public int EffectTimeMS = 0;
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutUTF(this.Name);
- output.PutBool(this.BindBody);
- output.PutUTF(this.BindPartName);
- output.PutF32(this.ScaleToBodySize);
- output.PutUTF(this.SoundName);
- output.PutS32(this.EarthQuakeMS);
- output.PutF32(this.EarthQuakeXYZ);
- output.PutUTF(this.CameraAnimation);
- output.PutS32(this.EffectTimeMS);
- }
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- this.Name = input.GetUTF();
- this.BindBody = input.GetBool();
- this.BindPartName = input.GetUTF();
- this.ScaleToBodySize = input.GetF32();
- this.SoundName = input.GetUTF();
- this.EarthQuakeMS = input.GetS32();
- this.EarthQuakeXYZ = input.GetF32();
- this.CameraAnimation = input.GetUTF();
- this.EffectTimeMS = input.GetS32();
- }
- }
- [MessageType(0xF000034)]
- public class ChangeQuestSeekB2C : ObjectEvent
- {
- public string QuestID;
- // x,y or null or funid
- public string SeekInfo;
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutUTF(this.QuestID);
- output.PutUTF(this.SeekInfo);
- }
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- this.QuestID = input.GetUTF();
- this.SeekInfo = input.GetUTF();
- }
- }
- /// <summary>
- /// 单位遭受攻击提示.
- /// </summary>
- [MessageType(0xF000035)]
- public class UnderAttackNotifyB2C : PlayerEvent
- {
- /// <summary>
- /// 攻击者实例ID.
- /// </summary>
- public uint AttackerID = 0;
- /// <summary>
- /// 攻击者基础信息.
- /// </summary>
- public XmdsUnitBaseInfo AttackerInfo = null;
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutU32(AttackerID);
- output.PutExt(AttackerInfo);
- }
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- AttackerID = input.GetU32();
- AttackerInfo = input.GetExt<XmdsUnitBaseInfo>();
- }
- }
- /// <summary>
- /// 单位遭受伤害信息.
- /// </summary>
- [MessageType(0xF000036)]
- public class MonsterSufferDamageInfoB2C : PlayerEvent
- {
- /// <summary>
- /// 伤害集合.
- /// </summary>
- public List<PlayerDamageInfo> InfoList = null;
- /// <summary>
- /// 排名.
- /// </summary>
- public int PlayerRank = 0;
- /// <summary>
- /// 玩家伤害.
- /// </summary>
- public int PlayerDamage = 0;
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutExtList(InfoList);
- output.PutS32(PlayerRank);
- output.PutS32(PlayerDamage);
- }
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- InfoList = input.GetExtList<PlayerDamageInfo>();
- PlayerRank = input.GetS32();
- PlayerDamage = input.GetS32();
- }
- }
- /// <summary>
- /// 跟随状态变换
- /// </summary>
- [MessageType(0xF000037)]
- public class SetAutoFollowB2C : PlayerEvent
- {
- /// <summary>
- /// 是否跟随状态
- /// </summary>
- public int stateFollow;
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- stateFollow = input.GetS32();
- }
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutS32(stateFollow);
- }
- }
- /// <summary>
- /// 自动战斗状态变换
- /// </summary>
- [MessageType(0xF000038)]
- public class SetAutoBattleB2C : PlayerEvent
- {
- /// <summary>
- /// 是否自动战斗状态
- /// </summary>
- public int isAutoBattle;
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- isAutoBattle = input.GetS32();
- }
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutS32(isAutoBattle);
- }
- }
- /// <summary>
- /// 掉落物品飞
- /// </summary>
- [MessageType(0xF000039)]
- public class RemoveDropItemB2C : PlayerEvent
- {
- public uint objectId;
- public uint actor_id;
- public RemoveDropItemB2C() { }
- public RemoveDropItemB2C(uint object_id, uint actor_id)
- {
- this.objectId = object_id;
- this.actor_id = actor_id;
- }
- public override void ReadExternal(IInputStream input)
- {
- base.ReadExternal(input);
- objectId = input.GetU32();
- actor_id = input.GetU32();
- }
- public override void WriteExternal(IOutputStream output)
- {
- base.WriteExternal(output);
- output.PutU32(objectId);
- output.PutU32(actor_id);
- }
- }
- }
|