Hastener give only Speed if Player not in Combat and NPC Realm same as Player Realm, if Server rules PVP he give every one !
- Code: Select all
Index: trunk/GameServer/keeps/Gameobjects/Guards/Hastener.cs
===================================================================
--- trunk/GameServer/keeps/Gameobjects/Guards/Hastener.cs (revision 2676)
+++ trunk/GameServer/keeps/Gameobjects/Guards/Hastener.cs (working copy)
@@ -24,40 +24,53 @@
namespace DOL.GS.Keeps
{
- /// <summary>
- /// Represents a keep hastener
- /// </summary>
- public class FrontierHastener : GameKeepGuard
- {
- public override eFlags Flags
- {
- get { return eFlags.PEACE; }
- }
+ /// <summary>
+ /// Represents a keep hastener
+ /// </summary>
+ public class FrontierHastener : GameKeepGuard
+ {
+ public override eFlags Flags
+ {
+ get { return eFlags.PEACE; }
+ }
- #region Examine/Interact Message
+ #region Examine/Interact Message
- /// <summary>
- /// Adds messages to ArrayList which are sent when object is targeted
- /// </summary>
- /// <param name="player">GamePlayer that is examining this object</param>
- /// <returns>list with string messages</returns>
- public override IList GetExamineMessages(GamePlayer player)
- {
- IList list = new ArrayList();
- list.Add("You examine " + GetName(0, false) + ". " + GetPronoun(0, true) + " is " + GetAggroLevelString(player, false) + " and is a hastener.");
- return list;
- }
+ /// <summary>
+ /// Adds messages to ArrayList which are sent when object is targeted
+ /// </summary>
+ /// <param name="player">GamePlayer that is examining this object</param>
+ /// <returns>list with string messages</returns>
+ public override IList GetExamineMessages(GamePlayer player)
+ {
+ IList list = new ArrayList();
+ list.Add("You examine " + GetName(0, false) + ". " + GetPronoun(0, true) + " is " + GetAggroLevelString(player, false) + " and is a hastener.");
+ return list;
+ }
- public override bool Interact(GamePlayer player)
- {
- if (!base.Interact(player))
- return false;
+ public override bool Interact(GamePlayer player)
+ {
+ if (!base.Interact(player))
+ return false;
- TurnTo(player, 5000);
- TargetObject = this;
- CastSpell(SkillBase.GetSpellByID(GameHastener.SPEEDOFTHEREALMID), SkillBase.GetSpellLine(GlobalSpellsLines.Mob_Spells));
- return true;
- }
- #endregion Examine/Interact Message
- }
-}
\ No newline at end of file
+ TurnTo(player, 5000);
+ if (player.InCombat)
+ {
+ player.Out.SendMessage("You are currently in Combat!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
+ return false;
+ }
+ // Hastener give only Speed if NPC Realm = Player Realm, if Server rules PVP he give every one !
+ if (Realm != player.Realm && GameServer.Instance.Configuration.ServerType == eGameServerType.GST_Normal ||
+ GameServer.Instance.Configuration.ServerType == eGameServerType.GST_Roleplay || GameServer.Instance.Configuration.ServerType == eGameServerType.GST_PvE ||
+ GameServer.Instance.Configuration.ServerType == eGameServerType.GST_Roleplay || GameServer.Instance.Configuration.ServerType == eGameServerType.GST_Casual)
+ {
+ player.Out.SendMessage("You are crazy ?", eChatType.CT_System, eChatLoc.CL_SystemWindow);
+ return false;
+ }
+ TargetObject = this;
+ CastSpell(SkillBase.GetSpellByID(GameHastener.SPEEDOFTHEREALMID), SkillBase.GetSpellLine(GlobalSpellsLines.Mob_Spells));
+ return true;
+ }
+ #endregion Examine/Interact Message
+ }
+ }
Greetings, Schnitte