public void AddComboInfo(uint magicid,MapServer.BaseObject attack, MapServer.BaseObject target, uint track_id, uint track_id2) { // byte head = 0; // byte tail = 0; //三位数的 针对怪物的.. //测试连击状态 if (MapServer.Program._Head > 0) { head = MapServer.Program._Head; tail = MapServer.Program._Tail; } byte dir = DIR.GetAgainstDir(target.GetDir()); String str = ""; byte[] data = null; count += 2; combo.WriteByte(head); str = Convert.ToString(target.GetTypeId()); data = Coding.GetUtf8Coding().GetBytes(str); combo.WriteBuff(data); combo.WriteByte(32); str = Convert.ToString(target.GetCurrentX()); data = Coding.GetUtf8Coding().GetBytes(str); combo.WriteBuff(data); combo.WriteByte(32); str = Convert.ToString(target.GetCurrentY()); data = Coding.GetUtf8Coding().GetBytes(str); combo.WriteBuff(data); combo.WriteByte(32); str = Convert.ToString(dir); data = Coding.GetUtf8Coding().GetBytes(str); combo.WriteBuff(data); combo.WriteByte(32); str = Convert.ToString(track_id2); data = Coding.GetUtf8Coding().GetBytes(str); combo.WriteBuff(data); combo.WriteByte(tail); //if (magicid != GameStruct.MagicTypeInfo.XUEYINGLUNHUI) //{ // //} //else if (count <= 20) //{ // combo.WriteByte(tail); //} //else //{ // combo.WriteByte(28); //} str = Convert.ToString(attack.GetTypeId()); data = Coding.GetUtf8Coding().GetBytes(str); combo.WriteBuff(data); combo.WriteByte(32); str = Convert.ToString(attack.GetCurrentX()); data = Coding.GetUtf8Coding().GetBytes(str); combo.WriteBuff(data); combo.WriteByte(32); str = Convert.ToString(attack.GetCurrentY()); data = Coding.GetUtf8Coding().GetBytes(str); combo.WriteBuff(data); combo.WriteByte(32); str = Convert.ToString(attack.GetDir()); data = Coding.GetUtf8Coding().GetBytes(str); combo.WriteBuff(data); combo.WriteByte(32); str = Convert.ToString(track_id); data = Coding.GetUtf8Coding().GetBytes(str); combo.WriteBuff(data);; }
//根据双飞类型与坐标计算出标记 public void CalcTag(uint magicid, MapServer.BaseObject attack, MapServer.BaseObject target) { if ((attack.GetCurrentX() < 999 && attack.GetCurrentY() < 999) || (target.GetCurrentX() < 999 && target.GetCurrentY() < 999)) { if (target.type == OBJECTTYPE.MONSTER) { switch (magicid) { case GameStruct.MagicTypeInfo.FEITIANZHAN: case GameStruct.MagicTypeInfo.XUEYINGQIANHUAN: // case GameStruct.MagicTypeInfo.XUEYINGLUNHUI: case GameStruct.MagicTypeInfo.XUEYINGXINGMANG: case GameStruct.MagicTypeInfo.LONGHUNFENGBAO: case GameStruct.MagicTypeInfo.XUEXI: case GameStruct.MagicTypeInfo.SHUNYINGJI: { head = 25; tail = 26; break; } case GameStruct.MagicTypeInfo.FEITIANLIANZHAN: case GameStruct.MagicTypeInfo.LONGQIANGLIEHUN: case GameStruct.MagicTypeInfo.LONGQIANGZANGHUN: case GameStruct.MagicTypeInfo.LONGQIANGSUIHUN: case GameStruct.MagicTypeInfo.SILIANZHAN: case GameStruct.MagicTypeInfo.LIULIANZHAN: { head = 26; tail = 27; break; } case GameStruct.MagicTypeInfo.XUEYINGLUNHUI: { head = 25; tail = 28; break; } case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 27; tail = 28; break; } } } //针对玩家对玩家 不同的符号分隔符 else if (target.type == OBJECTTYPE.PLAYER) { { switch (magicid) { case GameStruct.MagicTypeInfo.FEITIANZHAN: case GameStruct.MagicTypeInfo.LONGHUNFENGBAO: case GameStruct.MagicTypeInfo.XUEYINGQIANHUAN: case GameStruct.MagicTypeInfo.XUEYINGXINGMANG: case GameStruct.MagicTypeInfo.XUEXI: case GameStruct.MagicTypeInfo.SHUNYINGJI: { head = 26; tail = 26; break; } case GameStruct.MagicTypeInfo.FEITIANLIANZHAN: case GameStruct.MagicTypeInfo.LONGQIANGLIEHUN: case GameStruct.MagicTypeInfo.LONGQIANGZANGHUN: case GameStruct.MagicTypeInfo.LONGQIANGSUIHUN: case GameStruct.MagicTypeInfo.SILIANZHAN: case GameStruct.MagicTypeInfo.LIULIANZHAN: { head = 27; tail = 27; break; } case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 28; tail = 28; break; } } } } else if (target.type == OBJECTTYPE.EUDEMON) { switch (magicid) { case GameStruct.MagicTypeInfo.FEITIANZHAN: case GameStruct.MagicTypeInfo.LONGHUNFENGBAO: case GameStruct.MagicTypeInfo.XUEYINGQIANHUAN: case GameStruct.MagicTypeInfo.XUEYINGXINGMANG: case GameStruct.MagicTypeInfo.XUEXI: case GameStruct.MagicTypeInfo.SHUNYINGJI: { head = 29; tail = 26; break; } case GameStruct.MagicTypeInfo.FEITIANLIANZHAN: case GameStruct.MagicTypeInfo.LONGQIANGLIEHUN: case GameStruct.MagicTypeInfo.LONGQIANGZANGHUN: case GameStruct.MagicTypeInfo.LONGQIANGSUIHUN: case GameStruct.MagicTypeInfo.SILIANZHAN: case GameStruct.MagicTypeInfo.LIULIANZHAN: { head = 30; tail = 27; break; } case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 31; tail = 31; break; } } } } else //坐标大于四位数或者被攻击对象是玩家- 分隔符不一样 //遇到单个坐标为四位数还有问题--需要反汇编调试 2015.9.14 // //x y坐标都大于四位 if ( ((target.GetCurrentX() > 999 && target.GetCurrentY() > 999) || (attack.GetCurrentX() > 999 && attack.GetCurrentY() > 999))) { if (target.type == OBJECTTYPE.MONSTER) { switch (magicid) { case GameStruct.MagicTypeInfo.FEITIANLIANZHAN: case GameStruct.MagicTypeInfo.LONGQIANGLIEHUN: case GameStruct.MagicTypeInfo.LONGQIANGZANGHUN: case GameStruct.MagicTypeInfo.LONGQIANGSUIHUN: case GameStruct.MagicTypeInfo.SILIANZHAN: case GameStruct.MagicTypeInfo.LIULIANZHAN: { head = 28; tail = 29; break; } case GameStruct.MagicTypeInfo.FEITIANZHAN: case GameStruct.MagicTypeInfo.LONGHUNFENGBAO: case GameStruct.MagicTypeInfo.XUEYINGQIANHUAN: case GameStruct.MagicTypeInfo.XUEYINGXINGMANG: case GameStruct.MagicTypeInfo.XUEXI: case GameStruct.MagicTypeInfo.SHUNYINGJI: // case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 27; tail = 28; break; } case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 29; tail = 30; break; } } } else if (target.type == OBJECTTYPE.PLAYER) { switch (magicid) { case GameStruct.MagicTypeInfo.XUEYINGQIANHUAN: case GameStruct.MagicTypeInfo.XUEYINGXINGMANG: case GameStruct.MagicTypeInfo.XUEXI: case GameStruct.MagicTypeInfo.SHUNYINGJI: // case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 27; tail = 27; break; } case GameStruct.MagicTypeInfo.FEITIANZHAN: case GameStruct.MagicTypeInfo.LONGHUNFENGBAO: { head = 28; tail = 28; break; } case GameStruct.MagicTypeInfo.FEITIANLIANZHAN: case GameStruct.MagicTypeInfo.LONGQIANGLIEHUN: case GameStruct.MagicTypeInfo.LONGQIANGZANGHUN: case GameStruct.MagicTypeInfo.LONGQIANGSUIHUN: case GameStruct.MagicTypeInfo.SILIANZHAN: case GameStruct.MagicTypeInfo.LIULIANZHAN: case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 29; tail = 29; break; } } } else if (target.type == OBJECTTYPE.EUDEMON) { switch (magicid) { case GameStruct.MagicTypeInfo.XUEYINGQIANHUAN: case GameStruct.MagicTypeInfo.XUEYINGXINGMANG: case GameStruct.MagicTypeInfo.XUEXI: case GameStruct.MagicTypeInfo.SHUNYINGJI: // case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 31; tail = 28; break; } case GameStruct.MagicTypeInfo.FEITIANZHAN: case GameStruct.MagicTypeInfo.LONGHUNFENGBAO: { head = 31; tail = 28; break; } case GameStruct.MagicTypeInfo.FEITIANLIANZHAN: case GameStruct.MagicTypeInfo.LONGQIANGLIEHUN: case GameStruct.MagicTypeInfo.LONGQIANGZANGHUN: case GameStruct.MagicTypeInfo.LONGQIANGSUIHUN: case GameStruct.MagicTypeInfo.SILIANZHAN: case GameStruct.MagicTypeInfo.LIULIANZHAN: case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 32; tail = 29; break; } } } //一个四位坐标 一个三位坐标 } else if (target.GetCurrentX() > 999 || target.GetCurrentY() > 999 || attack.GetCurrentX() > 999 || attack.GetCurrentY() > 999) { if (target.type == OBJECTTYPE.MONSTER) { switch (magicid) { case GameStruct.MagicTypeInfo.LONGHUNFENGBAO: case GameStruct.MagicTypeInfo.FEITIANZHAN: case GameStruct.MagicTypeInfo.XUEYINGQIANHUAN: case GameStruct.MagicTypeInfo.XUEYINGXINGMANG: case GameStruct.MagicTypeInfo.XUEXI: case GameStruct.MagicTypeInfo.SHUNYINGJI: // case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 26; tail = 27; break; } case GameStruct.MagicTypeInfo.LONGQIANGSUIHUN: case GameStruct.MagicTypeInfo.LONGQIANGZANGHUN: case GameStruct.MagicTypeInfo.LONGQIANGLIEHUN: case GameStruct.MagicTypeInfo.FEITIANLIANZHAN: case GameStruct.MagicTypeInfo.SILIANZHAN: case GameStruct.MagicTypeInfo.LIULIANZHAN: { head = 27; tail = 28; break; } case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 28; tail = 29; break; } } } else if (target.type == OBJECTTYPE.PLAYER) { switch (magicid) { case GameStruct.MagicTypeInfo.FEITIANZHAN: case GameStruct.MagicTypeInfo.LONGHUNFENGBAO: case GameStruct.MagicTypeInfo.XUEYINGQIANHUAN: case GameStruct.MagicTypeInfo.XUEYINGXINGMANG: case GameStruct.MagicTypeInfo.XUEXI: case GameStruct.MagicTypeInfo.SHUNYINGJI: // case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 27; tail = 27; break; } case GameStruct.MagicTypeInfo.FEITIANLIANZHAN: case GameStruct.MagicTypeInfo.LONGQIANGLIEHUN: case GameStruct.MagicTypeInfo.LONGQIANGZANGHUN: case GameStruct.MagicTypeInfo.LONGQIANGSUIHUN: case GameStruct.MagicTypeInfo.SILIANZHAN: case GameStruct.MagicTypeInfo.LIULIANZHAN: { head = 28; tail = 28; break; } case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 30; tail = 30; break; } } } else if (target.type == OBJECTTYPE.EUDEMON) { switch (magicid) { case GameStruct.MagicTypeInfo.FEITIANZHAN: case GameStruct.MagicTypeInfo.LONGHUNFENGBAO: case GameStruct.MagicTypeInfo.XUEYINGQIANHUAN: case GameStruct.MagicTypeInfo.XUEYINGXINGMANG: case GameStruct.MagicTypeInfo.XUEXI: case GameStruct.MagicTypeInfo.SHUNYINGJI: // case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 20; tail = 27; break; } case GameStruct.MagicTypeInfo.FEITIANLIANZHAN: case GameStruct.MagicTypeInfo.LONGQIANGLIEHUN: case GameStruct.MagicTypeInfo.LONGQIANGZANGHUN: case GameStruct.MagicTypeInfo.LONGQIANGSUIHUN: case GameStruct.MagicTypeInfo.SILIANZHAN: case GameStruct.MagicTypeInfo.LIULIANZHAN: { head = 31; tail = 28; break; } case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 30; tail = 30; break; } } } //一个三位数 一个二位数 } else if (target.GetCurrentX() > 99 && target.GetCurrentY() < 99 || attack.GetCurrentX() < 99 && attack.GetCurrentY() > 99) { if (target.type == OBJECTTYPE.MONSTER) { switch (magicid) { case GameStruct.MagicTypeInfo.FEITIANZHAN: case GameStruct.MagicTypeInfo.LONGHUNFENGBAO: case GameStruct.MagicTypeInfo.XUEYINGQIANHUAN: case GameStruct.MagicTypeInfo.XUEYINGXINGMANG: case GameStruct.MagicTypeInfo.XUEXI: case GameStruct.MagicTypeInfo.SHUNYINGJI: // case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 24; tail = 25; break; } case GameStruct.MagicTypeInfo.FEITIANLIANZHAN: case GameStruct.MagicTypeInfo.LONGQIANGLIEHUN: case GameStruct.MagicTypeInfo.LONGQIANGZANGHUN: case GameStruct.MagicTypeInfo.LONGQIANGSUIHUN: case GameStruct.MagicTypeInfo.SILIANZHAN: case GameStruct.MagicTypeInfo.LIULIANZHAN: { head = 25; tail = 26; break; } case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 26; tail = 27; break; } } } else if (target.type == OBJECTTYPE.PLAYER) { switch (magicid) { case GameStruct.MagicTypeInfo.FEITIANZHAN: case GameStruct.MagicTypeInfo.LONGHUNFENGBAO: case GameStruct.MagicTypeInfo.XUEYINGQIANHUAN: case GameStruct.MagicTypeInfo.XUEYINGXINGMANG: case GameStruct.MagicTypeInfo.XUEXI: case GameStruct.MagicTypeInfo.SHUNYINGJI: // case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 25; tail = 25; break; } case GameStruct.MagicTypeInfo.FEITIANLIANZHAN: case GameStruct.MagicTypeInfo.LONGQIANGLIEHUN: case GameStruct.MagicTypeInfo.LONGQIANGZANGHUN: case GameStruct.MagicTypeInfo.LONGQIANGSUIHUN: case GameStruct.MagicTypeInfo.SILIANZHAN: case GameStruct.MagicTypeInfo.LIULIANZHAN: { head = 26; tail = 26; break; } case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 27; tail = 27; break; } } } else if (target.type == OBJECTTYPE.EUDEMON) { switch (magicid) { case GameStruct.MagicTypeInfo.FEITIANZHAN: case GameStruct.MagicTypeInfo.LONGHUNFENGBAO: case GameStruct.MagicTypeInfo.XUEYINGQIANHUAN: case GameStruct.MagicTypeInfo.XUEYINGXINGMANG: case GameStruct.MagicTypeInfo.XUEXI: case GameStruct.MagicTypeInfo.SHUNYINGJI: // case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 28; tail = 25; break; } case GameStruct.MagicTypeInfo.FEITIANLIANZHAN: case GameStruct.MagicTypeInfo.LONGQIANGLIEHUN: case GameStruct.MagicTypeInfo.LONGQIANGZANGHUN: case GameStruct.MagicTypeInfo.LONGQIANGSUIHUN: case GameStruct.MagicTypeInfo.SILIANZHAN: case GameStruct.MagicTypeInfo.LIULIANZHAN: { head = 29; tail = 26; break; } case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 30; tail = 27; break; } } } } else //二个二位数的 if (target.GetCurrentX() < 99 && target.GetCurrentY() < 99 || attack.GetCurrentX() < 99 && attack.GetCurrentY() < 99) { if (target.type == OBJECTTYPE.MONSTER) { switch (magicid) { case GameStruct.MagicTypeInfo.FEITIANZHAN: case GameStruct.MagicTypeInfo.LONGHUNFENGBAO: case GameStruct.MagicTypeInfo.XUEYINGQIANHUAN: case GameStruct.MagicTypeInfo.XUEYINGXINGMANG: case GameStruct.MagicTypeInfo.XUEXI: case GameStruct.MagicTypeInfo.SHUNYINGJI: // case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 23; tail = 24; break; } case GameStruct.MagicTypeInfo.FEITIANLIANZHAN: case GameStruct.MagicTypeInfo.LONGQIANGLIEHUN: case GameStruct.MagicTypeInfo.LONGQIANGZANGHUN: case GameStruct.MagicTypeInfo.LONGQIANGSUIHUN: case GameStruct.MagicTypeInfo.SILIANZHAN: case GameStruct.MagicTypeInfo.LIULIANZHAN: { head = 24; tail = 25; break; } case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 25; tail = 26; break; } } } else if (target.type == OBJECTTYPE.PLAYER) { switch (magicid) { case GameStruct.MagicTypeInfo.FEITIANZHAN: case GameStruct.MagicTypeInfo.LONGHUNFENGBAO: case GameStruct.MagicTypeInfo.XUEYINGQIANHUAN: case GameStruct.MagicTypeInfo.XUEYINGXINGMANG: case GameStruct.MagicTypeInfo.XUEXI: case GameStruct.MagicTypeInfo.SHUNYINGJI: // case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 24; tail = 24; break; } case GameStruct.MagicTypeInfo.FEITIANLIANZHAN: case GameStruct.MagicTypeInfo.LONGQIANGLIEHUN: case GameStruct.MagicTypeInfo.LONGQIANGZANGHUN: case GameStruct.MagicTypeInfo.LONGQIANGSUIHUN: case GameStruct.MagicTypeInfo.SILIANZHAN: case GameStruct.MagicTypeInfo.LIULIANZHAN: { head = 25; tail = 25; break; } case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 26; tail = 26; break; } } } else if (target.type == OBJECTTYPE.EUDEMON) { switch (magicid) { case GameStruct.MagicTypeInfo.FEITIANZHAN: case GameStruct.MagicTypeInfo.LONGHUNFENGBAO: case GameStruct.MagicTypeInfo.XUEYINGQIANHUAN: case GameStruct.MagicTypeInfo.XUEYINGXINGMANG: case GameStruct.MagicTypeInfo.XUEXI: case GameStruct.MagicTypeInfo.SHUNYINGJI: // case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 27; tail = 24; break; } case GameStruct.MagicTypeInfo.FEITIANLIANZHAN: case GameStruct.MagicTypeInfo.LONGQIANGLIEHUN: case GameStruct.MagicTypeInfo.LONGQIANGZANGHUN: case GameStruct.MagicTypeInfo.LONGQIANGSUIHUN: case GameStruct.MagicTypeInfo.SILIANZHAN: case GameStruct.MagicTypeInfo.LIULIANZHAN: { head = 28; tail = 25; break; } case GameStruct.MagicTypeInfo.LIEHUNSHAN: { head = 29; tail = 26; break; } } } } }