1) Guard die Message 2) Character Parking
PostPosted: Sun Dec 21, 2014 1:31 am
I think it will be good to add this source with <server_property> DB option
1) Guard die Message
If guard are killed by other realm, the message is sent to the realm players.
gamekeepguard.cs
ABUSE : Some player creates multiple account , park the character in some location ,and use the character for scouting.(RvR scouting or watching for Boss mob respawn)
SOLUTION : If one logout, the location will be shift to the binding location.
gameserver.cs
1) Guard die Message
If guard are killed by other realm, the message is sent to the realm players.
gamekeepguard.cs
- Code: Select all
/// <summary> /// When guards Die and it isnt a keep reset (this killer) we call GuardSpam function /// </summary> /// <param name="killer"></param> public override void Die(GameObject killer) { if (killer != this) { GuardSpam(this); // WHRIA START if (killer is GamePlayer) { if (killer.Realm != this.Realm) { int inArea = this.GetEnemyCountInArea(); eChatType messageType; switch ((eRealm)killer.Realm) { case eRealm.Albion: messageType = eChatType.CT_KilledByAlb; break; case eRealm.Midgard: messageType = eChatType.CT_KilledByMid; break; case eRealm.Hibernia: messageType = eChatType.CT_KilledByHib; break; default: messageType = eChatType.CT_PlayerDied; break; // killed by mob } string message = LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "GameKeepGuard.GuardSpam.Killed", this.Name, this.Component.AbstractKeep.Name, inArea); foreach (GameClient thisClient in WorldMgr.GetAllPlayingClients()) { if (thisClient.Player.Realm == this.Realm) thisClient.Player.Out.SendMessage(message, messageType, eChatLoc.CL_SystemWindow); } } } // WHRIA END } base.Die(killer); if (RespawnInterval == -1) Delete(); } #region Guard Spam /// <summary> /// Sends message to guild for guard death with enemy count in area /// </summary> /// <param na
ABUSE : Some player creates multiple account , park the character in some location ,and use the character for scouting.(RvR scouting or watching for Boss mob respawn)
SOLUTION : If one logout, the location will be shift to the binding location.
gameserver.cs
- Code: Select all
public void LoadPlayer(int accountindex, string playerClass) { m_activeCharIndex = accountindex; GamePlayer player = null; // refreshing Account to load any changes from the DB GameServer.Database.FillObjectRelations(m_account); DOLCharacters dolChar = m_account.Characters[m_activeCharIndex]; // WHRIA dolChar.Xpos = dolChar.BindXpos; dolChar.Ypos = dolChar.BindYpos; dolChar.Zpos = dolChar.BindZpos; // WHRIA Assembly gasm = Assembly.GetAssembly(typeof(GameServer));