Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
184
Scripts/Services/City Loyalty System/Items/CityMessageBoard.cs
Normal file
184
Scripts/Services/City Loyalty System/Items/CityMessageBoard.cs
Normal file
@@ -0,0 +1,184 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Mobiles;
|
||||
using System.Collections.Generic;
|
||||
using Server.Engines.CityLoyalty;
|
||||
using System.Linq;
|
||||
using Server.Prompts;
|
||||
using Server.ContextMenus;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class CityMessageBoard : BasePlayerBB
|
||||
{
|
||||
public City City { get; set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public CityLoyaltySystem CitySystem { get { return CityLoyaltySystem.GetCityInstance(City); } set { } }
|
||||
|
||||
public override int LabelNumber { get { return 1027774; } } // bulletin board
|
||||
public override bool Public { get { return true; } }
|
||||
public override bool ForceShowProperties { get { return true; } }
|
||||
|
||||
[Constructable]
|
||||
public CityMessageBoard(City city, int id) : base(id)
|
||||
{
|
||||
Movable = false;
|
||||
City = city;
|
||||
}
|
||||
|
||||
public override bool CanPostGreeting(Server.Multis.BaseHouse house, Mobile m)
|
||||
{
|
||||
var sys = CitySystem;
|
||||
|
||||
return sys != null && (m.AccessLevel >= AccessLevel.GameMaster || sys.Governor == m);
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (!CityLoyaltySystem.Enabled || CitySystem == null)
|
||||
return;
|
||||
|
||||
if (CitySystem.IsCitizen(from, true))
|
||||
{
|
||||
if (from.InRange(this.Location, 3))
|
||||
{
|
||||
from.SendGump(new PlayerBBGump(from, null, this, 0));
|
||||
}
|
||||
else
|
||||
{
|
||||
from.PrivateOverheadMessage(Server.Network.MessageType.Regular, 0x3B2, 1019045, from.NetState);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage(1154275); // Only Citizens of this City may use this.
|
||||
}
|
||||
}
|
||||
|
||||
/*public override void GetContextMenuEntries(Mobile from, List<ContextMenuEntry> list)
|
||||
{
|
||||
base.GetContextMenuEntries(from, list);
|
||||
|
||||
if (!CityLoyaltySystem.Enabled || CitySystem == null || !CitySystem.IsGovernor(from))
|
||||
return;
|
||||
|
||||
list.Add(new SimpleContextMenuEntry(from, 1154912, m => // Set New Announcement
|
||||
{
|
||||
if (m.Prompt != null)
|
||||
m.SendLocalizedMessage(1079166); // You already have a text entry request pending.
|
||||
else if (CitySystem.Herald != null)
|
||||
{
|
||||
m.SendMessage("Enter message board headline:");
|
||||
m.BeginPrompt(
|
||||
(mob, text) =>
|
||||
{
|
||||
if (Server.Guilds.BaseGuildGump.CheckProfanity(text, 150))
|
||||
{
|
||||
CitySystem.Herald.Announcement = text;
|
||||
}
|
||||
else
|
||||
mob.SendLocalizedMessage(1112587); // Invalid entry.
|
||||
},
|
||||
(mob, text) =>
|
||||
{
|
||||
mob.SendMessage("Herald message unchanged.");
|
||||
});
|
||||
}
|
||||
}, enabled: CitySystem.Herald != null));
|
||||
|
||||
list.Add(new SimpleContextMenuEntry(from, 1154913, m => // Set Headline
|
||||
{
|
||||
if (m.Prompt != null)
|
||||
m.SendLocalizedMessage(1079166); // You already have a text entry request pending.
|
||||
else
|
||||
{
|
||||
m.SendMessage("Enter message board headline:");
|
||||
m.BeginPrompt(
|
||||
(mob, text) =>
|
||||
{
|
||||
if (Server.Guilds.BaseGuildGump.CheckProfanity(text, 150))
|
||||
{
|
||||
if (String.IsNullOrEmpty(text))
|
||||
{
|
||||
CitySystem.Headline = null;
|
||||
CitySystem.Body = null;
|
||||
CitySystem.PostedOn = DateTime.Now;
|
||||
mob.SendMessage("{0} message board headline removed!", CitySystem.Definition.Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
CitySystem.Headline = text;
|
||||
CitySystem.PostedOn = DateTime.Now;
|
||||
mob.SendMessage("{0} message board headline changed!", CitySystem.Definition.Name);
|
||||
}
|
||||
}
|
||||
else
|
||||
mob.SendLocalizedMessage(1112587); // Invalid entry.
|
||||
},
|
||||
(mob, text) =>
|
||||
{
|
||||
mob.SendMessage("Message headline unchanged.");
|
||||
});
|
||||
}
|
||||
}));
|
||||
|
||||
list.Add(new SimpleContextMenuEntry(from, 1154914, m => // Set Body
|
||||
{
|
||||
if (m.Prompt != null)
|
||||
m.SendLocalizedMessage(1079166); // You already have a text entry request pending.
|
||||
else
|
||||
{
|
||||
m.SendMessage("Enter message board body:");
|
||||
m.BeginPrompt(
|
||||
(mob, text) =>
|
||||
{
|
||||
if (Server.Guilds.BaseGuildGump.CheckProfanity(text, 150))
|
||||
{
|
||||
if (String.IsNullOrEmpty(text))
|
||||
{
|
||||
CitySystem.Body = null;
|
||||
CitySystem.PostedOn = DateTime.Now;
|
||||
mob.SendMessage("{0} message board body removed!", CitySystem.Definition.Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
CitySystem.Body = text;
|
||||
CitySystem.PostedOn = DateTime.Now;
|
||||
mob.SendMessage("{0} message board body removed!", CitySystem.Definition.Name);
|
||||
}
|
||||
}
|
||||
else
|
||||
mob.SendLocalizedMessage(1112587); // Invalid entry.
|
||||
},
|
||||
(mob, text) =>
|
||||
{
|
||||
mob.SendMessage("Message body unchanged.");
|
||||
});
|
||||
}
|
||||
}));
|
||||
}*/
|
||||
|
||||
public CityMessageBoard(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
|
||||
writer.Write((int)City);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
|
||||
City = (City)reader.ReadInt();
|
||||
CitySystem.Board = this;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user