//装备打洞 参数:玩家对象,要打洞的道具id,打的洞序号[0为第一个洞] public void OpenGem(PlayerObject play, uint srcid, uint destid) { const int YUEGUANGBAOHE = 723002; //月光宝盒id const int YUEGUANGBAOHEZENGQIANGBAN = 820300; //月光宝盒增强版 id const int SHENSHENGYUEGUANGBAOHE = 742178; //神圣月光宝盒 GameStruct.RoleItemInfo item = play.GetItemSystem().FindItem(destid); GameStruct.RoleItemInfo srcitem = play.GetItemSystem().FindItem(srcid); if (item == null || srcitem == null) { return; } byte index = 0; switch (srcitem.itemid) { case YUEGUANGBAOHE: { if (item.GetGemCount() != 0) { return; } index = 0; break; } case YUEGUANGBAOHEZENGQIANGBAN: { if (item.GetGemCount() != 1) { return; } index = 1; break; } //第三个洞 2015.11.21 道具协议有bug。 先不开 //11.21 开了 case SHENSHENGYUEGUANGBAOHE: { if (item.GetGemCount() != 2) { return; } index = 2; break; } //第三个洞其他协议打-- 这个不打。。-。- 2015.9.21 default: { return; } } play.GetItemSystem().DeleteItemByID(srcid); item.OpenGem(index); play.GetItemSystem().UpdateItemInfo(item.id); }
//宝石镶嵌 public void GemSet(PlayerObject play, uint srcid, uint destid, byte index) { GameStruct.RoleItemInfo item = play.GetItemSystem().FindItem(destid); GameStruct.RoleItemInfo srcitem = play.GetItemSystem().FindItem(srcid); if (item == null || srcitem == null) { return; } if (!srcitem.IsGem()) { return; } if (item.GetGemCount() < index) { return; } if (item.GetGemType(index) != 255) { return; //已有宝石-- 要先拆除再镶嵌 } play.GetItemSystem().DeleteItemByID(srcid); item.SetGemType(index, srcitem.GetGemType()); play.GetItemSystem().UpdateItemInfo(destid); }