/// <summary> /// Player receives this item (added to players inventory) /// </summary> /// <param name="player"></param> public override void OnReceive(GamePlayer player) { // for guild banners we don't actually add it to inventory but instead register // if it is rescued by a friendly player or taken by the enemy player.Inventory.RemoveItem(this); int trophyModel = 0; eRealm realm = eRealm.None; switch (Model) { case 3223: trophyModel = 3359; realm = eRealm.Albion; break; case 3224: trophyModel = 3361; realm = eRealm.Midgard; break; case 3225: trophyModel = 3360; realm = eRealm.Hibernia; break; } // if picked up by an enemy then turn this into a trophy if (realm != player.Realm) { ItemUnique template = new ItemUnique(Template); template.ClassType = ""; template.Model = trophyModel; template.IsDropable = true; template.IsIndestructible = false; GameServer.Database.AddObject(template); GameInventoryItem trophy = new GameInventoryItem(template); player.Inventory.AddItem(eInventorySlot.FirstEmptyBackpack, trophy); OwnerGuild.SendMessageToGuildMembers(player.Name + " of " + GlobalConstants.RealmToName(player.Realm) + " has captured your guild banner!", eChatType.CT_Guild, eChatLoc.CL_SystemWindow); OwnerGuild.GuildBannerLostTime = DateTime.Now; } else { m_status = eStatus.Recovered; // A friendly player has picked up the banner. if (OwnerGuild != null) { OwnerGuild.SendMessageToGuildMembers(player.Name + " has recovered your guild banner!", eChatType.CT_Guild, eChatLoc.CL_SystemWindow); } if (SummonPlayer != null) { SummonPlayer.GuildBanner = null; } } }
public override void OnRemoveFromWorld() { if (Status == eStatus.Dropped) { if (SummonPlayer != null) { SummonPlayer.GuildBanner = null; SummonPlayer = null; } if (OwnerGuild != null) { // banner was dropped and not picked up, must be re-purchased OwnerGuild.GuildBanner = false; OwnerGuild.SendMessageToGuildMembers("Your guild banner has been lost!", eChatType.CT_Guild, eChatLoc.CL_SystemWindow); OwnerGuild = null; } } base.OnRemoveFromWorld(); }