Improve command system, add HELP command,

This commit is contained in:
Li 2022-11-26 22:57:46 +13:00
parent a2782fd35e
commit 9e69492e46
39 changed files with 1865 additions and 1620 deletions

View file

@ -203,8 +203,8 @@ namespace HISP.Game
byte[] startingUpEventPacket = PacketBuilder.CreateChat(message, PacketBuilder.CHAT_BOTTOM_RIGHT);
byte[] swfModulePacket = PacketBuilder.CreateSwfModule(swf, PacketBuilder.PACKET_SWF_MODULE_CUTSCENE);
Logger.DebugPrint(entry.EnteredUser.Username + " Loading swf: " + swf);
entry.EnteredUser.LoggedinClient.SendPacket(swfModulePacket);
entry.EnteredUser.LoggedinClient.SendPacket(startingUpEventPacket);
entry.EnteredUser.Client.SendPacket(swfModulePacket);
entry.EnteredUser.Client.SendPacket(startingUpEventPacket);
}
arenaTimeout = new Timer(new TimerCallback(arenaTimedOut), null, Timeout * 60 * 1000, Timeout * 60 * 1000);
@ -275,7 +275,7 @@ namespace HISP.Game
try
{
byte[] arenaResults = PacketBuilder.CreateChat(chatMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
entry.EnteredUser.LoggedinClient.SendPacket(arenaResults);
entry.EnteredUser.Client.SendPacket(arenaResults);
int expReward = expRewards[place];
@ -289,7 +289,7 @@ namespace HISP.Game
byte[] youWinMessage = PacketBuilder.CreateChat(Messages.FormatArenaYouWinMessage(prize, expReward), PacketBuilder.CHAT_BOTTOM_RIGHT);
entry.EnteredUser.LoggedinClient.SendPacket(youWinMessage);
entry.EnteredUser.Client.SendPacket(youWinMessage);
// Awards:
@ -327,7 +327,7 @@ namespace HISP.Game
entry.EnteredUser.Awards.AddAward(Award.GetAwardById(32)); // Perseverance
byte[] youDONTWinMessage = PacketBuilder.CreateChat(Messages.FormatArenaOnlyWinnerWinsMessage(expReward), PacketBuilder.CHAT_BOTTOM_RIGHT);
entry.EnteredUser.LoggedinClient.SendPacket(youDONTWinMessage);
entry.EnteredUser.Client.SendPacket(youDONTWinMessage);
}
place++;
}
@ -361,8 +361,8 @@ namespace HISP.Game
if (Entries.Length + 1 > Slots)
{
byte[] enterFailed = PacketBuilder.CreateChat(Messages.ArenaFullErrorMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(enterFailed);
GameServer.UpdateArea(user.LoggedinClient);
user.Client.SendPacket(enterFailed);
GameServer.UpdateArea(user.Client);
return;
}
}
@ -378,7 +378,7 @@ namespace HISP.Game
user.TakeMoney(EntryCost);
byte[] enteredIntoCompetition = PacketBuilder.CreateChat(Messages.ArenaEnteredInto, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(enteredIntoCompetition);
user.Client.SendPacket(enteredIntoCompetition);
GameServer.UpdateAreaForAll(user.X, user.Y, true);
return;

View file

@ -8,7 +8,7 @@ using HISP.Server;
namespace HISP.Game.Chat
{
public class Chat
public class ChatMsg
{
public struct Correction
{
@ -102,7 +102,7 @@ namespace HISP.Game.Chat
if (parsedMessage.ToUpper(CultureInfo.InvariantCulture).StartsWith(cmd.CmdName))
{
string[] args = parsedMessage.Substring(cmd.CmdName.Length).Trim().Split(' ');
return cmd.CmdCallback(messageToGive, args, user);
return cmd.Execute(messageToGive, args, user);
}
}
}
@ -197,9 +197,9 @@ namespace HISP.Game.Chat
foreach (GameClient client in GameClient.ConnectedClients)
{
if (client.LoggedIn)
if (!client.LoggedinUser.MuteGlobal && !client.LoggedinUser.MuteAll)
if (client.LoggedinUser.Id != user.Id)
if(!client.LoggedinUser.MutePlayer.IsUserMuted(user))
if (!client.User.MuteGlobal && !client.User.MuteAll)
if (client.User.Id != user.Id)
if(!client.User.MutePlayer.IsUserMuted(user))
recipiants.Add(client);
}
return recipiants.ToArray();
@ -211,9 +211,9 @@ namespace HISP.Game.Chat
foreach (GameClient client in GameClient.ConnectedClients)
{
if (client.LoggedIn)
if (!client.LoggedinUser.MuteAds && !client.LoggedinUser.MuteAll)
if (client.LoggedinUser.Id != user.Id)
if (!client.LoggedinUser.MutePlayer.IsUserMuted(user))
if (!client.User.MuteAds && !client.User.MuteAll)
if (client.User.Id != user.Id)
if (!client.User.MutePlayer.IsUserMuted(user))
recipiants.Add(client);
}
return recipiants.ToArray();
@ -225,10 +225,10 @@ namespace HISP.Game.Chat
foreach (GameClient client in GameClient.ConnectedClients)
{
if (client.LoggedIn)
if (!client.LoggedinUser.MuteBuddy && !client.LoggedinUser.MuteAll)
if (client.LoggedinUser.Id != user.Id)
if (client.LoggedinUser.Friends.List.Contains(user.Id))
if (!client.LoggedinUser.MutePlayer.IsUserMuted(user))
if (!client.User.MuteBuddy && !client.User.MuteAll)
if (client.User.Id != user.Id)
if (client.User.Friends.List.Contains(user.Id))
if (!client.User.MutePlayer.IsUserMuted(user))
recipiants.Add(client);
}
return recipiants.ToArray();
@ -245,7 +245,7 @@ namespace HISP.Game.Chat
if (user.Id != userInIsle.Id)
if(!userInIsle.MuteAll && !userInIsle.MuteIsland)
if(!userInIsle.MutePlayer.IsUserMuted(user))
recipiants.Add(userInIsle.LoggedinClient);
recipiants.Add(userInIsle.Client);
}
return recipiants.ToArray();
}
@ -265,7 +265,7 @@ namespace HISP.Game.Chat
if (user.Id != userHere.Id)
if (!userHere.MuteAll && !userHere.MuteHere)
if (!userHere.MutePlayer.IsUserMuted(user))
recipiants.Add(userHere.LoggedinClient);
recipiants.Add(userHere.Client);
}
return recipiants.ToArray();
}
@ -279,7 +279,7 @@ namespace HISP.Game.Chat
if (user.Id != nearbyUser.Id)
if (!nearbyUser.MuteAll && !nearbyUser.MuteNear)
if (!nearbyUser.MutePlayer.IsUserMuted(user))
recipiants.Add(nearbyUser.LoggedinClient);
recipiants.Add(nearbyUser.Client);
}
return recipiants.ToArray();
}
@ -296,8 +296,8 @@ namespace HISP.Game.Chat
foreach (GameClient client in GameClient.ConnectedClients)
{
if (client.LoggedIn)
if (client.LoggedinUser.Moderator)
if (client.LoggedinUser.Id != user.Id)
if (client.User.Moderator)
if (client.User.Id != user.Id)
recipiants.Add(client);
}
return recipiants.ToArray();
@ -316,8 +316,8 @@ namespace HISP.Game.Chat
foreach (GameClient client in GameClient.ConnectedClients)
{
if (client.LoggedIn)
if (client.LoggedinUser.Administrator)
if (client.LoggedinUser.Id != user.Id)
if (client.User.Administrator)
if (client.User.Id != user.Id)
recipiants.Add(client);
}
return recipiants.ToArray();
@ -332,9 +332,9 @@ namespace HISP.Game.Chat
{
if (client.LoggedIn)
{
if (!client.LoggedinUser.MutePrivateMessage && !client.LoggedinUser.MuteAll)
if (!client.User.MutePrivateMessage && !client.User.MuteAll)
{
if (client.LoggedinUser.Username.ToLower().StartsWith(to.ToLower()))
if (client.User.Username.ToLower().StartsWith(to.ToLower()))
{
recipiants.Add(client);
break;

View file

@ -8,6 +8,7 @@ using HISP.Game.Inventory;
using System.Linq;
using System;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace HISP.Game.Chat
{
@ -21,9 +22,9 @@ namespace HISP.Game.Chat
continue;
if (client.LoggedIn)
{
if (client.LoggedinUser.Username.ToLower().StartsWith(name.ToLower()))
if (client.User.Username.ToLower().StartsWith(name.ToLower()))
{
return client.LoggedinUser;
return client.User;
}
}
}
@ -33,41 +34,124 @@ namespace HISP.Game.Chat
public static void RegisterCommands()
{
// Admin Commands
new CommandRegister('%', "GIVE", "OBJECT <itemid / RANDOM> [username / ALL]\nMONEY <amount> [username]\nHORSE <breedid> [username]\nQUEST <questid> [FORCE]\nAWARD <awardid> [username]", Command.Give);
new CommandRegister('%', "SWF", "<swf> [username / ALL]", Command.Swf);
new CommandRegister('%', "GOTO", "<x>,<y>\nPLAYER <playername>\nAREA <locationname>\nNPC <npcname>", Command.Goto);
new CommandRegister('%', "JUMP", "<username> HERE", Command.Jump);
new CommandRegister('%', "KICK" , "<username> [reason]", Command.Kick);
new CommandRegister('%', "NOCLIP", "", Command.NoClip);
new CommandRegister('%', "MODHORSE", "<slot id> <stat> <value>", Command.ModHorse);
new CommandRegister('%', "DELITEM", "<item id> [username]", Command.DelItem);
new CommandRegister('%', "SHUTDOWN", "", Command.Shutdown);
new CommandRegister('%', "CALL", "HORSE", Command.CallHorse);
new CommandRegister('%', "MESSAGE", "<message>", Command.Message);
new CommandRegister('%', "GIVE", "OBJECT <itemid / RANDOM> [username / ALL]\nMONEY <amount> [username]\nHORSE <breedid> [username]\nQUEST <questid> [FORCE]\nAWARD <awardid> [username]", Command.Give, true, false);
new CommandRegister('%', "SWF", "<swf> [username / ALL]", Command.Swf, true, false);
new CommandRegister('%', "GOTO", "<x>,<y>\nPLAYER <playername>\nAREA <locationname>\nNPC <npcname>", Command.Goto, true, false);
new CommandRegister('%', "JUMP", "<username> HERE", Command.Jump, true, false);
new CommandRegister('%', "NOCLIP", "", Command.NoClip, true, false);
new CommandRegister('%', "MODHORSE", "<slot id> <stat> <value>", Command.ModHorse, true, false);
new CommandRegister('%', "DELITEM", "<item id> [username]", Command.DelItem, true, false);
new CommandRegister('%', "SHUTDOWN", "", Command.Shutdown, true, false);
new CommandRegister('%', "CALL", "HORSE", Command.CallHorse, true, false);
new CommandRegister('%', "MESSAGE", "<message>", Command.Message, true, false);
new CommandRegister('%', "PERMISSION", "<username> <admin / moderator / normal>", Command.Permission, true, false);
// Moderator commands
new CommandRegister('%', "RULES", "<username>", Command.Rules);
new CommandRegister('%', "PRISON", "<username>", Command.Prison);
new CommandRegister('%', "STEALTH", "", Command.Stealth);
new CommandRegister('%', "BAN", "<username> [reason]", Command.Ban);
new CommandRegister('%', "UNBAN", "<username>", Command.UnBan);
new CommandRegister('%', "ESCAPE", "", Command.Escape);
new CommandRegister('%', "RULES", "<username>", Command.Rules, false, true);
new CommandRegister('%', "PRISON", "<username>", Command.Prison, false, true);
new CommandRegister('%', "STEALTH", "", Command.Stealth, false, true);
new CommandRegister('%', "KICK", "<username> [reason]", Command.Kick, false, true);
new CommandRegister('%', "BAN", "<username> [reason]", Command.Ban, false, true);
new CommandRegister('%', "UNBAN", "<username>", Command.UnBan, false, true);
new CommandRegister('%', "ESCAPE", "", Command.Escape, false, true);
// User commands
new CommandRegister('!', "MUTE", "ALL\nGLOBAL\nISLAND\nNEAR\nHERE\nBUDDY\nPM\nBR\nSOCIALS\nLOGINS", Command.Mute);
new CommandRegister('!', "UNMUTE", "ALL\nGLOBAL\nISLAND\nNEAR\nHERE\nBUDDY\nPM\nBR\nSOCIALS\nLOGINS", Command.UnMute);
new CommandRegister('!', "HEAR", "ALL\nGLOBAL\nISLAND\nNEAR\nHERE\nBUDDY\nPM\nBR\nSOCIALS\nLOGINS", Command.UnMute);
new CommandRegister('!', "AUTOREPLY", "[message]", Command.AutoReply);
new CommandRegister('!', "QUIZ", "", Command.Quiz);
new CommandRegister('!', "WARP", "<username / location>", Command.Warp);
new CommandRegister('!', "DANCE", "<udlr>", Command.Dance);
new CommandRegister('!', "VERSION", "", Command.Version);
new CommandRegister('%', "VERSION", "", Command.Version, false, false);
new CommandRegister('%', "HELP", "", Command.Help, false, false);
new CommandRegister('!', "MUTE", "ALL\nGLOBAL\nISLAND\nNEAR\nHERE\nBUDDY\nPM\nBR\nSOCIALS\nLOGINS", Command.Mute, false, false);
new CommandRegister('!', "UNMUTE", "ALL\nGLOBAL\nISLAND\nNEAR\nHERE\nBUDDY\nPM\nBR\nSOCIALS\nLOGINS", Command.UnMute, false, false);
new CommandRegister('!', "HEAR", "ALL\nGLOBAL\nISLAND\nNEAR\nHERE\nBUDDY\nPM\nBR\nSOCIALS\nLOGINS", Command.UnMute, false, false);
new CommandRegister('!', "AUTOREPLY", "[message]", Command.AutoReply, false, false);
new CommandRegister('!', "QUIZ", "", Command.Quiz, false, false);
new CommandRegister('!', "WARP", "<username / location>", Command.Warp, false, false);
new CommandRegister('!', "DANCE", "<udlr>", Command.Dance, false, false);
}
public static bool Help(string message, string[] args, User user)
{
foreach (CommandRegister cmd in CommandRegister.RegisteredCommands)
{
if (!cmd.HasPermission(user)) continue;
user.Client.SendPacket(PacketBuilder.CreateChat(Messages.FormatHispHelpUsage(cmd.CmdLetter, cmd.CmdName, cmd.CmdUsage).Replace("\n", "<BR>\t"), PacketBuilder.CHAT_BOTTOM_LEFT));
}
user.Client.SendPacket(PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message), PacketBuilder.CHAT_BOTTOM_LEFT));
return true;
}
public static bool Permission(string message, string[] args, User user)
{
if (args.Length < 2)
return false;
string username = args[0].Trim();
string privledgeLevel = args[1].ToUpper().Trim();
try
{
User modifyUser = findNamePartial(username);
if (privledgeLevel == "NORMAL")
{
modifyUser.Administrator = false;
modifyUser.Moderator = false;
}
else if (privledgeLevel == "ADMIN")
{
modifyUser.Administrator = true;
modifyUser.Moderator = true;
}
else if (privledgeLevel == "MOD" || privledgeLevel == "MODERATOR")
{
modifyUser.Administrator = false;
modifyUser.Moderator = true;
}
else
{
return false;
}
}
catch (KeyNotFoundException)
{
try
{
int playerId = Database.GetUserid(username);
if (privledgeLevel == "NORMAL")
{
Database.SetUserAdmin(playerId, false);
Database.SetUserMod(playerId, false);
}
else if (privledgeLevel == "ADMIN")
{
Database.SetUserAdmin(playerId, true);
Database.SetUserMod(playerId, true);
}
else if (privledgeLevel == "MOD" || privledgeLevel == "MODERATOR")
{
Database.SetUserAdmin(playerId, false);
Database.SetUserMod(playerId, true);
}
else
{
return false;
}
}
catch (KeyNotFoundException) { return false; };
};
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message), PacketBuilder.CHAT_BOTTOM_LEFT);
user.Client.SendPacket(chatPacket);
return true;
}
public static bool Message(string message, string[] args, User user)
{
if (!user.Administrator)
return false;
string serverAnnoucement = String.Join(" ", args);
@ -86,12 +170,10 @@ namespace HISP.Game.Chat
return true;
}
public static bool Shutdown(string message, string[] args, User user)
{
if (!user.Administrator)
return false;
{
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
GameServer.ShutdownServer("Administrator initiated");
@ -101,8 +183,6 @@ namespace HISP.Game.Chat
{
if (args.Length <= 0)
return false;
if (!user.Administrator)
return false;
if(args[0].ToUpper() == "OBJECT")
{
int itemId = 0;
@ -137,7 +217,7 @@ namespace HISP.Game.Chat
if (itemId == Item.Present)
itmInstance.Data = Item.GetRandomItem().Id;
client.LoggedinUser.Inventory.AddIgnoringFull(itmInstance);
client.User.Inventory.AddIgnoringFull(itmInstance);
}
}
}
@ -246,7 +326,7 @@ namespace HISP.Game.Chat
}
msg:;
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
@ -255,8 +335,6 @@ namespace HISP.Game.Chat
if (args.Length <= 0)
return false;
if (!user.Administrator && !user.Moderator)
return false;
try
{
@ -277,7 +355,7 @@ namespace HISP.Game.Chat
else
{
User player = findNamePartial(swfUser);
player.LoggedinClient.SendPacket(packetBytes);
player.Client.SendPacket(packetBytes);
}
}
catch (Exception)
@ -286,7 +364,7 @@ namespace HISP.Game.Chat
}
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
@ -295,8 +373,6 @@ namespace HISP.Game.Chat
{
if(args.Length <= 0)
return false;
if(!user.Administrator && !user.Moderator)
return false;
try{
string userName = args[0];
@ -310,7 +386,7 @@ namespace HISP.Game.Chat
}
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
@ -319,18 +395,17 @@ namespace HISP.Game.Chat
{
// Get current version and send to client
byte[] versionPacket = PacketBuilder.CreateChat(ServerVersion.GetBuildString(), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(versionPacket);
user.Client.SendPacket(versionPacket);
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatPlayerCommandCompleteMessage(message), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
public static bool Ban(string message, string[] args, User user)
{
if (args.Length <= 0)
return false;
if (!user.Administrator && !user.Moderator)
return false;
try
{
string userName = args[0];
@ -350,53 +425,43 @@ namespace HISP.Game.Chat
}
try{
User bannedUser = GameServer.GetUserByName(args[0]);
bannedUser.LoggedinClient.Kick(Messages.KickReasonBanned);
bannedUser.Client.Kick(Messages.KickReasonBanned);
}
catch(KeyNotFoundException){};
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
public static bool Escape(string message, string[] args, User user)
{
if (!user.Administrator && !user.Moderator)
return false;
user.Teleport(Map.ModIsleX, Map.ModIsleY);
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message) + Messages.ModIsleMessage, PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
public static bool Stealth(string message, string[] args, User user)
{
if (!user.Administrator && !user.Moderator)
return false;
user.Stealth = !user.Stealth;
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
public static bool NoClip(string message, string[] args, User user)
{
if (!user.Administrator)
return false;
user.NoClip = !user.NoClip;
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
public static bool Rules(string message, string[] args, User user)
{
if (!user.Administrator && !user.Moderator)
return false;
if (args.Length <= 0)
return false;
@ -406,7 +471,7 @@ namespace HISP.Game.Chat
toSend.Teleport(Map.RulesIsleX, Map.RulesIsleY);
byte[] studyTheRulesMsg = PacketBuilder.CreateChat(Messages.RulesIsleSentMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
toSend.LoggedinClient.SendPacket(studyTheRulesMsg);
toSend.Client.SendPacket(studyTheRulesMsg);
}
catch (KeyNotFoundException)
{
@ -414,14 +479,12 @@ namespace HISP.Game.Chat
}
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message)+Messages.FormatRulesCommandMessage(args[0]), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
public static bool Prison(string message, string[] args, User user)
{
if (!user.Administrator && !user.Moderator)
return false;
if (args.Length <= 0)
return false;
@ -432,7 +495,7 @@ namespace HISP.Game.Chat
toSend.Teleport(Map.PrisonIsleX, Map.PrisonIsleY);
byte[] dontDoTheTime = PacketBuilder.CreateChat(Messages.PrisonIsleSentMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
toSend.LoggedinClient.SendPacket(dontDoTheTime);
toSend.Client.SendPacket(dontDoTheTime);
}
catch (KeyNotFoundException)
{
@ -440,14 +503,12 @@ namespace HISP.Game.Chat
}
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message) + Messages.FormatPrisonCommandMessage(args[0]), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
public static bool Kick(string message, string[] args, User user)
{
if (!user.Administrator && !user.Moderator)
return false;
if (args.Length <= 0)
return false;
@ -459,11 +520,11 @@ namespace HISP.Game.Chat
if (args.Length >= 2)
{
string reason = string.Join(" ", args, 1, args.Length - 1);
toKick.LoggedinClient.Kick(reason);
toKick.Client.Kick(reason);
}
else
{
toKick.LoggedinClient.Kick(Messages.KickReasonKicked);
toKick.Client.Kick(Messages.KickReasonKicked);
}
}
catch (KeyNotFoundException)
@ -472,15 +533,13 @@ namespace HISP.Game.Chat
}
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
public static bool Jump(string message, string[] args, User user)
{
if (args.Length <= 2)
return false;
if (!user.Administrator)
if (args.Length < 2)
return false;
@ -496,7 +555,7 @@ namespace HISP.Game.Chat
}
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
@ -504,8 +563,6 @@ namespace HISP.Game.Chat
{
if (args.Length <= 0)
return false;
if (!user.Administrator)
return false;
int itemId = 0;
try
@ -531,7 +588,7 @@ namespace HISP.Game.Chat
}
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
@ -539,8 +596,6 @@ namespace HISP.Game.Chat
{
if (args.Length <= 0)
return false;
if (!user.Administrator)
return false;
if(args[0].ToUpper() == "PLAYER")
{
if(args.Length < 2)
@ -629,16 +684,13 @@ namespace HISP.Game.Chat
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
public static bool ModHorse(string message, string[] args, User user)
{
if (!user.Administrator)
return false;
if (args.Length < 3)
return false;
@ -709,7 +761,7 @@ namespace HISP.Game.Chat
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message), PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
@ -768,20 +820,18 @@ namespace HISP.Game.Chat
playSwf:;
byte[] swfPacket = PacketBuilder.CreateSwfModule("warpcutscene", PacketBuilder.PACKET_SWF_MODULE_CUTSCENE);
user.LoggedinClient.SendPacket(swfPacket);
user.Client.SendPacket(swfPacket);
sendText:;
byte[] chatPacket = PacketBuilder.CreateChat(formattedmessage, PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
public static bool CallHorse(string message, string[] args, User user)
{
if (!user.Administrator)
return false;
if (args.Length <= 0)
return false;
@ -806,7 +856,7 @@ namespace HISP.Game.Chat
byte[] chatPacket = PacketBuilder.CreateChat(formattedmessage, PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
@ -820,16 +870,16 @@ namespace HISP.Game.Chat
if (replyMessage.Length > 1024)
{
byte[] tooLong = PacketBuilder.CreateChat(Messages.AutoReplyTooLong, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(tooLong);
user.Client.SendPacket(tooLong);
return false;
}
Object violationReason = Chat.FilterMessage(replyMessage);
Object violationReason = ChatMsg.FilterMessage(replyMessage);
if (violationReason != null)
{
byte[] hasVios = PacketBuilder.CreateChat(Messages.AutoReplyHasViolations, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(hasVios);
user.Client.SendPacket(hasVios);
return false;
}
@ -837,7 +887,7 @@ namespace HISP.Game.Chat
user.AutoReplyText = replyMessage;
byte[] chatPacket = PacketBuilder.CreateChat(formattedmessage, PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
public static bool Dance(string message, string[] args, User user)
@ -851,7 +901,7 @@ namespace HISP.Game.Chat
user.ActiveDance = new Dance(user, moves);
byte[] chatPacket = PacketBuilder.CreateChat(formattedmessage, PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
@ -862,7 +912,7 @@ namespace HISP.Game.Chat
if(user.InRealTimeQuiz)
{
byte[] cantEnterRealTimeQuiz = PacketBuilder.CreateChat(Messages.EventAlreadyEnteredRealTimeQuiz, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(cantEnterRealTimeQuiz);
user.Client.SendPacket(cantEnterRealTimeQuiz);
return false;
}
if (quizActive)
@ -874,24 +924,24 @@ namespace HISP.Game.Chat
if(participent.Quit)
{
byte[] quizQuit = PacketBuilder.CreateChat(Messages.EventQuitRealTimeQuiz, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(quizQuit);
user.Client.SendPacket(quizQuit);
return false;
}
participent.UpdateParticipent();
byte[] enteredRealTimeQuiz = PacketBuilder.CreateChat(Messages.EventEnteredRealTimeQuiz, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(enteredRealTimeQuiz);
user.Client.SendPacket(enteredRealTimeQuiz);
byte[] chatPacket = PacketBuilder.CreateChat(formattedmessage, PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
else
{
byte[] quizUnavailable = PacketBuilder.CreateChat(Messages.EventUnavailableRealTimeQuiz, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(quizUnavailable);
user.Client.SendPacket(quizUnavailable);
return false;
}
@ -970,7 +1020,7 @@ namespace HISP.Game.Chat
}
byte[] chatPacket = PacketBuilder.CreateChat(formattedmessage, PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}
@ -1048,7 +1098,7 @@ namespace HISP.Game.Chat
byte[] chatPacket = PacketBuilder.CreateChat(formattedmessage, PacketBuilder.CHAT_BOTTOM_LEFT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return true;
}

View file

@ -15,19 +15,43 @@ namespace HISP.Game.Chat
return registeredComamnds.ToArray();
}
}
private Func<string, string[], User, bool> commandCallback;
public bool CmdRequiresAdmin;
public bool CmdRequiresMod;
public char CmdLetter;
public string CmdName;
public string CmdUsage;
public Func<string,string[],User, bool> CmdCallback;
public CommandRegister(char cmdLetter, string cmdName, string cmdUsage, Func<string, string[], User, bool> cmdCallback)
public CommandRegister(char cmdLetter, string cmdName, string cmdUsage, Func<string, string[], User, bool> cmdCallback, bool cmdRequiresAdmin, bool cmdRequiresMod)
{
CmdLetter = cmdLetter;
CmdName = cmdName.ToUpper(CultureInfo.InvariantCulture);
CmdCallback = cmdCallback;
CmdUsage = cmdUsage;
this.CmdLetter = cmdLetter;
this.CmdName = cmdName.ToUpper(CultureInfo.InvariantCulture).Trim();
this.CmdUsage = cmdUsage;
this.CmdRequiresMod = cmdRequiresMod;
this.CmdRequiresAdmin = cmdRequiresAdmin;
this.commandCallback = cmdCallback;
registeredComamnds.Add(this);
}
public bool HasPermission(User user)
{
if (CmdRequiresAdmin && !(user.Administrator))
return false;
if (CmdRequiresMod && !(user.Moderator || user.Administrator))
return false;
return true;
}
public bool Execute(string message, string[] args, User user)
{
if(HasPermission(user))
return commandCallback(message, args, user);
return false;
}
}
}

View file

@ -54,16 +54,16 @@ namespace HISP.Game.Events
int totalTypes = 0;
foreach (int itemId in Item.TradingCards)
if (client.LoggedinUser.Inventory.HasItemId(itemId))
totalCards += client.LoggedinUser.Inventory.GetItemByItemId(itemId).ItemInstances.Length;
if (client.User.Inventory.HasItemId(itemId))
totalCards += client.User.Inventory.GetItemByItemId(itemId).ItemInstances.Length;
if (client.LoggedinUser.Inventory.HasItemId(Item.ColtTradingCard))
if (client.User.Inventory.HasItemId(Item.ColtTradingCard))
totalTypes++;
if (client.LoggedinUser.Inventory.HasItemId(Item.FillyTradingCard))
if (client.User.Inventory.HasItemId(Item.FillyTradingCard))
totalTypes++;
if (client.LoggedinUser.Inventory.HasItemId(Item.MareTradingCard))
if (client.User.Inventory.HasItemId(Item.MareTradingCard))
totalTypes++;
if (client.LoggedinUser.Inventory.HasItemId(Item.StallionTradingCard))
if (client.User.Inventory.HasItemId(Item.StallionTradingCard))
totalTypes++;
if(totalCards > 4)
@ -93,12 +93,12 @@ namespace HISP.Game.Events
}
else if (totalTypes == 4)
{
client.LoggedinUser.TrackedItems.GetTrackedItem(Tracking.TrackableItem.IsleCardsGameWin).Count++;
client.User.TrackedItems.GetTrackedItem(Tracking.TrackableItem.IsleCardsGameWin).Count++;
byte[] wonIsleCardGame = PacketBuilder.CreateChat(Messages.EventWonIsleTradingGame, PacketBuilder.CHAT_BOTTOM_RIGHT);
client.SendPacket(wonIsleCardGame);
client.LoggedinUser.AddMoney(25000);
client.User.AddMoney(25000);
}

View file

@ -148,8 +148,8 @@ namespace HISP.Game.Events
thrower.AddMoney(50);
throwAt.AddMoney(500);
thrower.LoggedinClient.SendPacket(youEarned);
throwAt.LoggedinClient.SendPacket(otherEarned);
thrower.Client.SendPacket(youEarned);
throwAt.Client.SendPacket(otherEarned);
throwCounter.AddThrownAt(throwAt);
}

View file

@ -59,7 +59,7 @@ namespace HISP.Game.Events
string msg = Messages.FormatRandomEvent(rngEvent.Text, moneyEarned, horseName);
byte[] chatPacket = PacketBuilder.CreateChat(Messages.RandomEventPrefix + msg, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(chatPacket);
user.Client.SendPacket(chatPacket);
return;
}

View file

@ -48,7 +48,7 @@ namespace HISP.Game.Events
return;
byte[] realTimeQuizQuestion = PacketBuilder.CreateMeta(Meta.BuildRealTimeQuiz(this));
this.UserInstance.LoggedinClient.SendPacket(realTimeQuizQuestion);
this.UserInstance.Client.SendPacket(realTimeQuizQuestion);
}
public void CheckAnswer(string answer)
@ -160,7 +160,7 @@ namespace HISP.Game.Events
Participent partcipent = getParticipent(user.Id);
partcipent.Quit = true;
user.InRealTimeQuiz = false;
GameServer.UpdateArea(user.LoggedinClient);
GameServer.UpdateArea(user.Client);
}
catch (KeyNotFoundException) { };
}
@ -219,7 +219,7 @@ namespace HISP.Game.Events
participent.UserInstance.InRealTimeQuiz = false;
GameServer.UpdateArea(participent.UserInstance.LoggedinClient);
GameServer.UpdateArea(participent.UserInstance.Client);
int money = 0;
@ -238,12 +238,12 @@ namespace HISP.Game.Events
if (participent.Won)
{
byte[] wonBonusMessage = PacketBuilder.CreateChat(Messages.FormatEventRealTimeQuizWinBonus(money), PacketBuilder.CHAT_BOTTOM_RIGHT);
participent.UserInstance.LoggedinClient.SendPacket(wonBonusMessage);
participent.UserInstance.Client.SendPacket(wonBonusMessage);
}
else
{
byte[] bonusMessage = PacketBuilder.CreateChat(Messages.FormatEventRealTimeQuizBonus(money), PacketBuilder.CHAT_BOTTOM_RIGHT);
participent.UserInstance.LoggedinClient.SendPacket(bonusMessage);
participent.UserInstance.Client.SendPacket(bonusMessage);
}
participent.UserInstance.AddMoney(money);

View file

@ -59,7 +59,7 @@ namespace HISP.Game.Events
if (Database.HasPlayerCompletedRealTimeRiddle(RiddleId, winner.Id))
{
byte[] alreadyWonRiddleMessage = PacketBuilder.CreateChat(Messages.EventAlreadySovledRealTimeRiddle, PacketBuilder.CHAT_BOTTOM_RIGHT);
winner.LoggedinClient.SendPacket(alreadyWonRiddleMessage);
winner.Client.SendPacket(alreadyWonRiddleMessage);
return;
}
@ -81,7 +81,7 @@ namespace HISP.Game.Events
foreach (GameClient client in GameClient.ConnectedClients)
{
if (client.LoggedIn)
if (client.LoggedinUser.Id != winner.Id)
if (client.User.Id != winner.Id)
client.SendPacket(riddleWonMessage);
else
client.SendPacket(riddleYouWonMessage);

View file

@ -80,7 +80,7 @@ namespace HISP.Game.Events
{
byte[] youWinMsg = PacketBuilder.CreateChat(Messages.EventWonWaterBallonGame, PacketBuilder.CHAT_BOTTOM_RIGHT);
winner.UserHit.AddMoney(20000);
winner.UserHit.LoggedinClient.SendPacket(youWinMsg);
winner.UserHit.Client.SendPacket(youWinMsg);
winner.UserHit.TrackedItems.GetTrackedItem(Tracking.TrackableItem.WaterbaloonGameWin).Count++;
}

View file

@ -150,7 +150,7 @@ namespace HISP.Game.Items
if (isle.Name == "Prison Isle")
{
byte[] dontWorkHere = PacketBuilder.CreateChat(Messages.RanchDorothyShoesPrisonIsleMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(dontWorkHere);
user.Client.SendPacket(dontWorkHere);
return;
}
}
@ -162,14 +162,14 @@ namespace HISP.Game.Items
return;
}
byte[] noPlaceLIke127001 = PacketBuilder.CreateChat(Messages.RanchDorothyShoesMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(noPlaceLIke127001);
user.Client.SendPacket(noPlaceLIke127001);
user.Teleport(user.OwnedRanch.X, user.OwnedRanch.Y);
}
else if (itm.ItemId == Item.Telescope)
{
byte[] birdMap = PacketBuilder.CreateBirdMap(user.X, user.Y);
user.LoggedinClient.SendPacket(birdMap);
user.Client.SendPacket(birdMap);
}
else
{

View file

@ -12,7 +12,14 @@ namespace HISP.Game
public string Type;
}
public static int[] OverlayTileDepth;
public struct TileDepth
{
public bool ShowPlayer;
public bool Passable;
}
public static TileDepth[] OverlayTileDepth;
public static TerrainTile[] TerrainTiles;
public static int Width;
public static int Height;
@ -20,8 +27,6 @@ namespace HISP.Game
public static byte[] MapData;
public static byte[] oMapData;
public static TerrainTile[] TerrainTiles;
public static int NewUserStartX;
public static int NewUserStartY;
@ -75,19 +80,9 @@ namespace HISP.Game
if (World.InIsle(x, y))
tileset = World.GetIsle(x, y).Tileset;
otileId = otileId + 64 * tileset;
}
int tileDepth = OverlayTileDepth[otileId];
bool overlayPassable = false;
if (tileDepth == 0)
overlayPassable = false;
if (tileDepth == 1)
overlayPassable = false;
if (tileDepth == 2)
overlayPassable = true;
if (tileDepth == 3)
overlayPassable = true;
}
bool overlayPassable = OverlayTileDepth[otileId].Passable;
if ((!terrainPassable && overlayPassable) && otileId == 0)
return false;

View file

@ -5,11 +5,16 @@ using System.Globalization;
using HISP.Security;
using HISP.Server;
using HISP.Util;
using HISP.Game.Chat;
namespace HISP.Game
{
public class Messages
{
// HISP specific
public static string HISPHelpCommandUsageFormat;
// extended config
public static int RequiredChatViolations;
// Message Queue
@ -1220,6 +1225,12 @@ namespace HISP.Game
// Click
public static string NothingInterestingHere;
// HISP Help Command
public static string FormatHispHelpUsage(char commandPrefix, string commandName, string commandUsage)
{
return HISPHelpCommandUsageFormat.Replace("%PREFIX%", commandPrefix.ToString()).Replace("%COMMANDNAME%", commandName).Replace("%USAGE%", ChatMsg.EscapeMessage(commandUsage));
}
// Violations
public static string FormatProfileSavedBlocked(string reasons)
{
@ -1345,6 +1356,7 @@ namespace HISP.Game
return PlayerIgnoringYourPrivateMessagesFormat.Replace("%USERNAME%", username);
}
// AUTO SELL
public static string FormatAutoSellSoldOffline(string horseName, int price, string toUsername)
@ -2798,7 +2810,7 @@ namespace HISP.Game
return NpcStartChatFormat.Replace("%ICONID%", iconId.ToString()).Replace("%NAME%", name).Replace("%DESCRIPTION%", shortDescription).Replace("%ID%", npcId.ToString());
}
public static string FormatGlobalChatViolationMessage(Chat.Chat.Reason violationReason)
public static string FormatGlobalChatViolationMessage(Chat.ChatMsg.Reason violationReason)
{
return ChatViolationMessageFormat.Replace("%AMOUNT%", RequiredChatViolations.ToString()).Replace("%REASON%", violationReason.Message);
}

View file

@ -1154,9 +1154,9 @@ namespace HISP.Game
{
if (client.LoggedIn)
{
if (client.LoggedinUser.Stealth)
if (client.User.Stealth)
continue;
onlineUsers.Add(client.LoggedinUser);
onlineUsers.Add(client.User);
}
}
@ -1189,17 +1189,17 @@ namespace HISP.Game
{
if (client.LoggedIn)
{
if (client.LoggedinUser.Stealth)
if (client.User.Stealth)
continue;
bool isYou = (client.LoggedinUser.Id == currentUser.Id);
bool isYou = (client.User.Id == currentUser.Id);
int icon = client.LoggedinUser.GetPlayerListIcon();
int icon = client.User.GetPlayerListIcon();
string iconFormat = "";
if (icon != -1)
iconFormat = Messages.FormatIconFormat(icon);
message += Messages.FormatPlayerEntry(iconFormat, client.LoggedinUser.Username, client.LoggedinUser.Id, Convert.ToInt32(Math.Round((DateTime.UtcNow - client.LoggedinUser.LoginTime).TotalMinutes)), client.LoggedinUser.X, client.LoggedinUser.Y, client.LoggedinUser.Idle, currentUser.MutePlayer.IsUserMuted(client.LoggedinUser), isYou);
message += Messages.FormatPlayerEntry(iconFormat, client.User.Username, client.User.Id, Convert.ToInt32(Math.Round((DateTime.UtcNow - client.User.LoginTime).TotalMinutes)), client.User.X, client.User.Y, client.User.Idle, currentUser.MutePlayer.IsUserMuted(client.User), isYou);
}
}
@ -1735,7 +1735,7 @@ namespace HISP.Game
string swfModule = ranch.GetSwf(mine);
byte[] moduleSwf = PacketBuilder.CreateSwfModule(swfModule, PacketBuilder.PACKET_SWF_MODULE_FORCE);
user.LoggedinClient.SendPacket(moduleSwf);
user.Client.SendPacket(moduleSwf);
if (mine) // This is My DS.
{

View file

@ -84,7 +84,7 @@ namespace HISP.Game
if (joinedUser.Id != user.Id)
if(!TwoPlayer.IsPlayerInGame(joinedUser))
if(!joinedUser.MajorPriority)
GameServer.UpdateArea(joinedUser.LoggedinClient);
GameServer.UpdateArea(joinedUser.Client);
}
}
@ -101,7 +101,7 @@ namespace HISP.Game
foreach (User joinedUser in JoinedUsers)
if (!TwoPlayer.IsPlayerInGame(joinedUser))
if (!joinedUser.MajorPriority)
GameServer.UpdateArea(joinedUser.LoggedinClient);
GameServer.UpdateArea(joinedUser.Client);
}
}

View file

@ -238,7 +238,7 @@ namespace HISP.Game
if (quest.SuccessMessage != null)
{
byte[] ChatPacket = PacketBuilder.CreateChat(quest.SuccessMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(ChatPacket);
user.Client.SendPacket(ChatPacket);
}
if (quest.SuccessNpcChat != null)
@ -246,7 +246,7 @@ namespace HISP.Game
if (!npcActivation)
{
byte[] ChatPacket = PacketBuilder.CreateChat(quest.SuccessNpcChat, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(ChatPacket);
user.Client.SendPacket(ChatPacket);
}
}
@ -265,7 +265,7 @@ namespace HISP.Game
if (quest.Id == CloudIslesQuest)
{
byte[] swfLoadPacket = PacketBuilder.CreateSwfModule("ballooncutscene", PacketBuilder.PACKET_SWF_MODULE_CUTSCENE);
user.LoggedinClient.SendPacket(swfLoadPacket);
user.Client.SendPacket(swfLoadPacket);
}
return res;
@ -290,7 +290,7 @@ namespace HISP.Game
if (!npcActivation)
{
byte[] ChatPacket = PacketBuilder.CreateChat(quest.FailNpcChat, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(ChatPacket);
user.Client.SendPacket(ChatPacket);
}
else
{
@ -371,7 +371,7 @@ namespace HISP.Game
if(result.NpcChat != null)
{
byte[] ChatPacket = PacketBuilder.CreateChat(result.NpcChat, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(ChatPacket);
user.Client.SendPacket(ChatPacket);
}
return true;
}
@ -383,7 +383,7 @@ namespace HISP.Game
if (result.NpcChat != null)
{
byte[] ChatPacket = PacketBuilder.CreateChat(result.NpcChat, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(ChatPacket);
user.Client.SendPacket(ChatPacket);
}
return true;
}

View file

@ -131,7 +131,7 @@ namespace HISP.Game
{
if(ownerId != -1)
{
if (ConfigReader.AllUsersSubbed || Database.IsUserAdmin(ownerId))
if (ConfigReader.AllUsersSubbed || Database.GetUserAdmin(ownerId))
return ownerId;
int subExp = Database.GetUserSubscriptionExpireDate(ownerId);
@ -474,7 +474,7 @@ namespace HISP.Game
throw new KeyNotFoundException("No Ranch found at x" + x + " y" + y);
}
public static bool IsRanchOwned(int playerId)
public static bool GetOwnedRanch(int playerId)
{
foreach (Ranch ranch in Ranches)
{

View file

@ -32,7 +32,7 @@ namespace HISP.Game
Database.CompleteRiddle(this.Id, user.Id);
byte[] riddleAnswerCorrectPacket = PacketBuilder.CreateChat(Messages.FormatRiddlerAnswerCorrect(this.Reason), PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(riddleAnswerCorrectPacket);
user.Client.SendPacket(riddleAnswerCorrectPacket);
user.AddMoney(10000);
if(HasCompletedAllRiddles(user))
@ -42,7 +42,7 @@ namespace HISP.Game
public void AnswerFail(User user)
{
byte[] riddleIncorrect = PacketBuilder.CreateChat(Messages.RiddlerIncorrectAnswer, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(riddleIncorrect);
user.Client.SendPacket(riddleIncorrect);
}
public bool CheckAnswer(User user, string txt)

View file

@ -38,7 +38,7 @@ namespace HISP.Game.Services
if(BidUser.HorseInventory.HorseList.Length >= BidUser.MaxHorses)
{
byte[] tooManyHorses = PacketBuilder.CreateChat(Messages.AuctionYouHaveTooManyHorses, PacketBuilder.CHAT_BOTTOM_RIGHT);
BidUser.LoggedinClient.SendPacket(tooManyHorses);
BidUser.Client.SendPacket(tooManyHorses);
return;
}
@ -47,7 +47,7 @@ namespace HISP.Game.Services
if(BidAmount >= MAX_BID)
{
byte[] maxBidReached = PacketBuilder.CreateChat(Messages.AuctionBidMax, PacketBuilder.CHAT_BOTTOM_RIGHT);
BidUser.LoggedinClient.SendPacket(maxBidReached);
BidUser.Client.SendPacket(maxBidReached);
return;
}
@ -56,7 +56,7 @@ namespace HISP.Game.Services
{
byte[] cantAffordBid = PacketBuilder.CreateChat(Messages.AuctionCantAffordBid, PacketBuilder.CHAT_BOTTOM_RIGHT);
BidUser.LoggedinClient.SendPacket(cantAffordBid);
BidUser.Client.SendPacket(cantAffordBid);
return;
}
@ -78,7 +78,7 @@ namespace HISP.Game.Services
if(entry.RandomId != AuctionItem.RandomId && entry.HighestBidder == BidUser.Id)
{
byte[] cantWinTooMuch = PacketBuilder.CreateChat(Messages.AuctionOnlyOneWinningBidAllowed, PacketBuilder.CHAT_BOTTOM_RIGHT);
BidUser.LoggedinClient.SendPacket(cantWinTooMuch);
BidUser.Client.SendPacket(cantWinTooMuch);
return;
}
}
@ -92,7 +92,7 @@ namespace HISP.Game.Services
{
User oldBidder = GameServer.GetUserById(AuctionItem.HighestBidder);
byte[] outbidMessage = PacketBuilder.CreateChat(Messages.FormatAuctionYourOutbidBy(BidUser.Username, AuctionItem.HighestBid), PacketBuilder.CHAT_BOTTOM_RIGHT);
oldBidder.LoggedinClient.SendPacket(outbidMessage);
oldBidder.Client.SendPacket(outbidMessage);
}
}
@ -105,7 +105,7 @@ namespace HISP.Game.Services
}
byte[] bidPlacedMsg = PacketBuilder.CreateChat(yourBidRaisedTo, PacketBuilder.CHAT_BOTTOM_RIGHT);
BidUser.LoggedinClient.SendPacket(bidPlacedMsg);
BidUser.Client.SendPacket(bidPlacedMsg);
}
@ -152,7 +152,7 @@ namespace HISP.Game.Services
User auctionRunner = GameServer.GetUserById(highestBidder);
auctionRunner.HorseInventory.UnHide(Horse.RandomId);
byte[] notSold = PacketBuilder.CreateChat(Messages.AuctionNoHorseBrought, PacketBuilder.CHAT_BOTTOM_RIGHT);
auctionRunner.LoggedinClient.SendPacket(notSold);
auctionRunner.Client.SendPacket(notSold);
}
return;
}
@ -162,7 +162,7 @@ namespace HISP.Game.Services
{
User userWon = GameServer.GetUserById(highestBidder);
byte[] wonAuction = PacketBuilder.CreateChat(Messages.FormatAuctionBroughtHorse(highestBid), PacketBuilder.CHAT_BOTTOM_RIGHT);
userWon.LoggedinClient.SendPacket(wonAuction);
userWon.Client.SendPacket(wonAuction);
userWon.TakeMoney(highestBid);
userWon.HorseInventory.AddHorse(Horse, false);
}
@ -175,7 +175,7 @@ namespace HISP.Game.Services
{
User userSold = GameServer.GetUserById(OwnerId);
byte[] horseSold = PacketBuilder.CreateChat(Messages.FormatAuctionHorseSold(highestBid), PacketBuilder.CHAT_BOTTOM_RIGHT);
userSold.LoggedinClient.SendPacket(horseSold);
userSold.Client.SendPacket(horseSold);
userSold.AddMoney(highestBid);
userSold.HorseInventory.DeleteHorse(Horse, false);
}

View file

@ -140,14 +140,14 @@ namespace HISP.Game
GenerateTreasure();
byte[] MovementPacket = PacketBuilder.CreateMovement(user.X, user.Y, user.CharacterId, user.Facing, PacketBuilder.DIRECTION_TELEPORT, true);
user.LoggedinClient.SendPacket(MovementPacket);
user.Client.SendPacket(MovementPacket);
user.AddMoney(Value);
if(this.Type == "BURIED")
{
byte[] treasureReceivedPacket = PacketBuilder.CreateChat(Messages.FormatPirateTreasure(this.Value), PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(treasureReceivedPacket);
user.Client.SendPacket(treasureReceivedPacket);
user.TrackedItems.GetTrackedItem(Tracking.TrackableItem.PirateTreasure).Count++;
if(user.TrackedItems.GetTrackedItem(Tracking.TrackableItem.PirateTreasure).Count >= 10)
@ -159,7 +159,7 @@ namespace HISP.Game
else if(this.Type == "RAINBOW")
{
byte[] treasureReceivedPacket = PacketBuilder.CreateChat(Messages.FormatPotOfGold(this.Value), PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(treasureReceivedPacket);
user.Client.SendPacket(treasureReceivedPacket);
user.TrackedItems.GetTrackedItem(Tracking.TrackableItem.PotOfGold).Count++;

View file

@ -86,8 +86,8 @@ namespace HISP.Game
byte[] youHaveInvited = PacketBuilder.CreateChat(Messages.Format2PlayerYouInvited(inviting.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
byte[] yourInvited = PacketBuilder.CreateChat(Messages.Format2PlayerYourInvited(invitee.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
Invitee.LoggedinClient.SendPacket(youHaveInvited);
Inviting.LoggedinClient.SendPacket(yourInvited);
Invitee.Client.SendPacket(youHaveInvited);
Inviting.Client.SendPacket(yourInvited);
deleteTimer = new Timer(new TimerCallback(deleteTwoPlayer), null, 2 * 60 * 1000, 2 * 60 * 1000);
@ -119,15 +119,15 @@ namespace HISP.Game
private void update()
{
GameServer.UpdateArea(Invitee.LoggedinClient);
GameServer.UpdateArea(Inviting.LoggedinClient);
GameServer.UpdateArea(Invitee.Client);
GameServer.UpdateArea(Inviting.Client);
}
private void updateOthers()
{
foreach(User user in this.Multiroom.JoinedUsers)
if (IsPlayerInGame(user))
if(user.Id != Invitee.Id && user.Id != Inviting.Id)
GameServer.UpdateArea(user.LoggedinClient);
GameServer.UpdateArea(user.Client);
}
public void UpdateAll()
@ -182,14 +182,14 @@ namespace HISP.Game
byte[] startingUpGameInvitee = PacketBuilder.CreateChat(Messages.Format2PlayerStartingGame(Inviting.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
byte[] startingUpGameInvited = PacketBuilder.CreateChat(Messages.Format2PlayerStartingGame(Invitee.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
Invitee.LoggedinClient.SendPacket(startingUpGameInvitee);
Inviting.LoggedinClient.SendPacket(startingUpGameInvited);
Invitee.Client.SendPacket(startingUpGameInvitee);
Inviting.Client.SendPacket(startingUpGameInvited);
byte[] loadSwfInvitee = PacketBuilder.CreateSwfModule(buildSwf(2), PacketBuilder.PACKET_SWF_MODULE_FORCE);
byte[] loadSwfInvited = PacketBuilder.CreateSwfModule(buildSwf(1), PacketBuilder.PACKET_SWF_MODULE_FORCE);
Invitee.LoggedinClient.SendPacket(loadSwfInvitee);
Inviting.LoggedinClient.SendPacket(loadSwfInvited);
Invitee.Client.SendPacket(loadSwfInvitee);
Inviting.Client.SendPacket(loadSwfInvited);
}
}
@ -207,13 +207,13 @@ namespace HISP.Game
if (userWhoClosed.Id == Inviting.Id)
{
Invitee.LoggedinClient.SendPacket(gameClosedByOther);
Inviting.LoggedinClient.SendPacket(gameClosed);
Invitee.Client.SendPacket(gameClosedByOther);
Inviting.Client.SendPacket(gameClosed);
}
else if (userWhoClosed.Id == Invitee.Id)
{
Invitee.LoggedinClient.SendPacket(gameClosed);
Inviting.LoggedinClient.SendPacket(gameClosedByOther);
Invitee.Client.SendPacket(gameClosed);
Inviting.Client.SendPacket(gameClosedByOther);
}
}

View file

@ -74,7 +74,7 @@ namespace HISP.Game
Database.SetWeather(Name, value);
foreach(User user in GameServer.GetUsersInIsle(this,true,true))
{
GameServer.UpdateWorld(user.LoggedinClient);
GameServer.UpdateWorld(user.Client);
}
}
}
@ -127,7 +127,7 @@ namespace HISP.Game
Database.SetWeather(Name, value);
foreach (User user in GameServer.GetUsersInTown(this, true, true))
{
GameServer.UpdateArea(user.LoggedinClient);
GameServer.UpdateArea(user.Client);
}
}