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

@ -74,7 +74,7 @@ namespace HISP.Player
baseUser.AddMoney(award.MoneyBonus);
byte[] chatPacket = PacketBuilder.CreateChat(award.CompletionText, PacketBuilder.CHAT_BOTTOM_RIGHT);
baseUser.LoggedinClient.SendPacket(chatPacket);
baseUser.Client.SendPacket(chatPacket);
}

View file

@ -63,7 +63,7 @@ namespace HISP.Player
baseUser.Facing = direction + (onHorse * 5);
byte[] moveResponse = PacketBuilder.CreateMovement(baseUser.X, baseUser.Y, baseUser.CharacterId, baseUser.Facing, PacketBuilder.DIRECTION_NONE, false);
baseUser.LoggedinClient.SendPacket(moveResponse);
baseUser.Client.SendPacket(moveResponse);
GameServer.UpdateUserFacingAndLocation(baseUser);

View file

@ -77,19 +77,19 @@ namespace HISP.Player
if(baseUser.MuteBuddy)
{
byte[] cantFriend = PacketBuilder.CreateChat(Messages.CantSendBuddyRequestWhileMuted, PacketBuilder.CHAT_BOTTOM_RIGHT);
baseUser.LoggedinClient.SendPacket(cantFriend);
baseUser.Client.SendPacket(cantFriend);
return;
}
else if(userToFriend.MuteBuddyRequests)
{
byte[] cantFriend = PacketBuilder.CreateChat(Messages.PlayerIgnoringAllBuddyRequests, PacketBuilder.CHAT_BOTTOM_RIGHT);
baseUser.LoggedinClient.SendPacket(cantFriend);
baseUser.Client.SendPacket(cantFriend);
return;
}
else if(userToFriend.MutePlayer.IsUserMuted(userToFriend))
{
byte[] cantFriend = PacketBuilder.CreateChat(Messages.PlayerIgnoringYourBuddyRequests, PacketBuilder.CHAT_BOTTOM_RIGHT);
baseUser.LoggedinClient.SendPacket(cantFriend);
baseUser.Client.SendPacket(cantFriend);
return;
}
@ -102,23 +102,23 @@ namespace HISP.Player
byte[] nowFriendsMsg = PacketBuilder.CreateChat(Messages.FormatAddBuddyConfirmed(userToFriend.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
byte[] nowFriendsOther = PacketBuilder.CreateChat(Messages.FormatAddBuddyConfirmed(baseUser.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
userToFriend.LoggedinClient.SendPacket(nowFriendsOther);
baseUser.LoggedinClient.SendPacket(nowFriendsMsg);
userToFriend.Client.SendPacket(nowFriendsOther);
baseUser.Client.SendPacket(nowFriendsMsg);
if(!baseUser.MajorPriority)
GameServer.UpdateArea(baseUser.LoggedinClient);
GameServer.UpdateArea(baseUser.Client);
if (!userToFriend.MajorPriority)
GameServer.UpdateArea(userToFriend.LoggedinClient);
GameServer.UpdateArea(userToFriend.Client);
}
else
{
baseUser.PendingBuddyRequestTo = userToFriend;
byte[] pendingMsg = PacketBuilder.CreateChat(Messages.AddBuddyPending, PacketBuilder.CHAT_BOTTOM_RIGHT);
byte[] pendingMsgOther = PacketBuilder.CreateChat(Messages.FormatAddBuddyPendingOther(baseUser.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
baseUser.LoggedinClient.SendPacket(pendingMsg);
baseUser.Client.SendPacket(pendingMsg);
if(!userToFriend.MuteBuddyRequests && !userToFriend.MuteAll)
userToFriend.LoggedinClient.SendPacket(pendingMsgOther);
userToFriend.Client.SendPacket(pendingMsgOther);
}
}

View file

@ -68,8 +68,8 @@ namespace HISP.Player
}
byte[] rippedUpMessage = PacketBuilder.CreateChat(Messages.MailRippedMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
baseUser.LoggedinClient.SendPacket(rippedUpMessage);
GameServer.UpdateInventory(baseUser.LoggedinClient);
baseUser.Client.SendPacket(rippedUpMessage);
GameServer.UpdateInventory(baseUser.Client);
}
public void ReadAllMail()
@ -87,7 +87,7 @@ namespace HISP.Player
mails[i].Read = true;
}
GameServer.UpdatePlayer(baseUser.LoggedinClient);
GameServer.UpdatePlayer(baseUser.Client);
}
public void AddMail(Mail mailMessage)
{

View file

@ -68,8 +68,8 @@ namespace HISP.Player
OtherTrade.Trader.PendingTradeTo = 0;
OtherTrade.Trader.TradingWith = null;
GameServer.UpdateArea(Trader.LoggedinClient);
GameServer.UpdateArea(OtherTrade.Trader.LoggedinClient);
GameServer.UpdateArea(Trader.Client);
GameServer.UpdateArea(OtherTrade.Trader.Client);
}
public bool Fail = false;
@ -84,7 +84,7 @@ namespace HISP.Player
if (MoneyOffered > 0 && OtherTrade.Trader.Money < 0)
{
byte[] otherNegativeMoneyNotAllowed = PacketBuilder.CreateChat(Messages.TradeOtherPlayerHasNegativeMoney, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(otherNegativeMoneyNotAllowed);
Trader.Client.SendPacket(otherNegativeMoneyNotAllowed);
Fail = true;
OtherTrade.Fail = true;
}
@ -93,7 +93,7 @@ namespace HISP.Player
if (OtherTrade.MoneyOffered > 0 && Trader.Money < 0)
{
byte[] negativeMoneyNotAllowed = PacketBuilder.CreateChat(Messages.TradeYouHaveNegativeMoney, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(negativeMoneyNotAllowed);
Trader.Client.SendPacket(negativeMoneyNotAllowed);
Fail = true;
OtherTrade.Fail = true;
}
@ -102,7 +102,7 @@ namespace HISP.Player
if (OtherTrade.Trader.Bids.Length > 0)
{
byte[] tradeNotAllowedWhileOtherBidding = PacketBuilder.CreateChat(Messages.TradeNotAllowedWhileOtherBidding, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(tradeNotAllowedWhileOtherBidding);
Trader.Client.SendPacket(tradeNotAllowedWhileOtherBidding);
Fail = true;
OtherTrade.Fail = true;
}
@ -111,7 +111,7 @@ namespace HISP.Player
if (Trader.Bids.Length > 0)
{
byte[] tradeNotAllowedWhileBidding = PacketBuilder.CreateChat(Messages.TradeNotAllowedWhileBidding, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(tradeNotAllowedWhileBidding);
Trader.Client.SendPacket(tradeNotAllowedWhileBidding);
Fail = true;
OtherTrade.Fail = true;
}
@ -120,7 +120,7 @@ namespace HISP.Player
if (MoneyOffered > 0 && OtherTrade.Trader.Money + MoneyOffered > 2100000000)
{
byte[] tradeOtherHasTooMuchMoney = PacketBuilder.CreateChat(Messages.TradeWillGiveOtherTooMuchMoney, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(tradeOtherHasTooMuchMoney);
Trader.Client.SendPacket(tradeOtherHasTooMuchMoney);
Fail = true;
OtherTrade.Fail = true;
}
@ -129,7 +129,7 @@ namespace HISP.Player
if (OtherTrade.MoneyOffered > 0 && Trader.Money + OtherTrade.MoneyOffered > 2100000000)
{
byte[] tradeYouHasTooMuchMoney = PacketBuilder.CreateChat(Messages.TradeWillGiveYouTooMuchMoney, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(tradeYouHasTooMuchMoney);
Trader.Client.SendPacket(tradeYouHasTooMuchMoney);
Fail = true;
OtherTrade.Fail = true;
}
@ -143,7 +143,7 @@ namespace HISP.Player
if (HorsesOffered.Length > 0 && OtherTrade.Trader.HorseInventory.HorseList.Length + HorsesOffered.Length > OtherTrade.Trader.MaxHorses)
{
byte[] tradeYouHaveTooManyHorses = PacketBuilder.CreateChat(Messages.TradeYouCantHandleMoreHorses, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(tradeYouHaveTooManyHorses);
Trader.Client.SendPacket(tradeYouHaveTooManyHorses);
Fail = true;
OtherTrade.Fail = true;
}
@ -152,7 +152,7 @@ namespace HISP.Player
if (OtherTrade.HorsesOffered.Length > 0 && Trader.HorseInventory.HorseList.Length + OtherTrade.HorsesOffered.Length > Trader.MaxHorses)
{
byte[] tradeYouHaveTooManyHorses = PacketBuilder.CreateChat(Messages.TradeYouCantHandleMoreHorses, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(tradeYouHaveTooManyHorses);
Trader.Client.SendPacket(tradeYouHaveTooManyHorses);
Fail = true;
OtherTrade.Fail = true;
}
@ -171,7 +171,7 @@ namespace HISP.Player
if (items.ItemInstances.Length + inst.Length > Item.MAX_STACK)
{
byte[] tradeTooManyItems = PacketBuilder.CreateChat(Messages.TradeYouCantCarryMoreItems, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(tradeTooManyItems);
Trader.Client.SendPacket(tradeTooManyItems);
Fail = true;
OtherTrade.Fail = true;
}
@ -189,7 +189,7 @@ namespace HISP.Player
if (items.ItemInstances.Length + inst.Length > Item.MAX_STACK)
{
byte[] tradeTooManyItems = PacketBuilder.CreateChat(Messages.TradeOtherCantCarryMoreItems, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(tradeTooManyItems);
Trader.Client.SendPacket(tradeTooManyItems);
Fail = true;
OtherTrade.Fail = true;
}
@ -206,7 +206,7 @@ namespace HISP.Player
acceptTrade:;
byte[] tradeAccepted = PacketBuilder.CreateChat(Messages.TradeAcceptedMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(tradeAccepted);
Trader.Client.SendPacket(tradeAccepted);
// Transfer Money
@ -214,14 +214,14 @@ namespace HISP.Player
{
Trader.TakeMoney(MoneyOffered);
byte[] tradeSpentMoney = PacketBuilder.CreateChat(Messages.FormatTradeYouSpent(MoneyOffered), PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(tradeSpentMoney);
Trader.Client.SendPacket(tradeSpentMoney);
}
if(OtherTrade.MoneyOffered > 0)
{
Trader.AddMoney(OtherTrade.MoneyOffered);
byte[] tradeReceivedMoney = PacketBuilder.CreateChat(Messages.FormatTradeYouReceived(OtherTrade.MoneyOffered), PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(tradeReceivedMoney);
Trader.Client.SendPacket(tradeReceivedMoney);
}
foreach (HorseInstance inst in HorsesOffered) // Transfer Horses
@ -236,7 +236,7 @@ namespace HISP.Player
byte[] disMounted = PacketBuilder.CreateChat(Messages.TradeRiddenHorse, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.Facing %= 5;
Trader.CurrentlyRidingHorse = null;
Trader.LoggedinClient.SendPacket(disMounted);
Trader.Client.SendPacket(disMounted);
}
}
@ -273,13 +273,13 @@ namespace HISP.Player
public void InteruptTrade()
{
byte[] tradeCanceled = PacketBuilder.CreateChat(Messages.TradeCanceledInterupted, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(tradeCanceled);
Trader.Client.SendPacket(tradeCanceled);
endTrade();
}
public void AcceptTrade()
{
byte[] waitingForAccept = PacketBuilder.CreateChat(Messages.TradeWaitingForOthersToAcceptMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(waitingForAccept);
Trader.Client.SendPacket(waitingForAccept);
if (OtherTrade.Stage == "ACCEPTED")
{
@ -292,18 +292,18 @@ namespace HISP.Player
public void CancelTrade()
{
byte[] tradeCanceled = PacketBuilder.CreateChat(Messages.TradeCanceledByYouMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(tradeCanceled);
Trader.Client.SendPacket(tradeCanceled);
byte[] tradeCanceledOther = PacketBuilder.CreateChat(Messages.FormatTradeCanceledByPlayer(Trader.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
OtherTrade.Trader.LoggedinClient.SendPacket(tradeCanceledOther);
OtherTrade.Trader.Client.SendPacket(tradeCanceledOther);
endTrade();
}
public void CancelTradeMoved()
{
byte[] playerMoved = PacketBuilder.CreateChat(Messages.TradeCanceledBecuasePlayerMovedMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
Trader.LoggedinClient.SendPacket(playerMoved);
OtherTrade.Trader.LoggedinClient.SendPacket(playerMoved);
Trader.Client.SendPacket(playerMoved);
OtherTrade.Trader.Client.SendPacket(playerMoved);
endTrade();
}

View file

@ -34,6 +34,8 @@ namespace HISP.Player
private int thirst;
private int tired;
private bool noClip = false;
private bool administrator = false;
private bool moderator = false;
public bool NoClip
{
@ -60,6 +62,36 @@ namespace HISP.Player
noClip = true;
}
}
public bool Administrator
{
get
{
return administrator;
}
set
{
administrator = value;
Database.SetUserAdmin(Id, administrator);
}
}
public bool Moderator
{
get
{
if (administrator)
return true;
return moderator;
}
set
{
moderator = value;
Database.SetUserMod(Id, moderator);
}
}
public Trade TradingWith = null;
public int AttemptingToOfferItem;
public bool TradeMenuPriority = false;
@ -68,10 +100,8 @@ namespace HISP.Player
public int SecCodeCount = 0;
public int Id;
public string Username;
public bool Administrator = false;
public bool Moderator = false;
public bool NewPlayer = false;
public GameClient LoggedinClient;
public GameClient Client;
public CompetitionGear EquipedCompetitionGear;
public Jewelry EquipedJewelry;
public bool MuteAds = false;
@ -182,13 +212,13 @@ namespace HISP.Player
int money = Money;
money -= amount;
Database.SetPlayerMoney(money, Id);
GameServer.UpdatePlayer(LoggedinClient);
GameServer.UpdatePlayer(Client);
}
public void SetMoney(int amount)
{
Database.SetPlayerMoney(amount, Id);
GameServer.UpdatePlayer(LoggedinClient);
GameServer.UpdatePlayer(Client);
}
public void AddMoney(int amount)
@ -207,7 +237,7 @@ namespace HISP.Player
}
Database.SetPlayerMoney(money, Id);
GameServer.UpdatePlayer(LoggedinClient);
GameServer.UpdatePlayer(Client);
}
public string GetWeatherSeen()
{
@ -565,8 +595,8 @@ namespace HISP.Player
Y = newY;
byte[] MovementPacket = PacketBuilder.CreateMovement(X, Y, CharacterId, Facing, PacketBuilder.DIRECTION_TELEPORT, true);
LoggedinClient.SendPacket(MovementPacket);
GameServer.UpdateWeather(LoggedinClient);
Client.SendPacket(MovementPacket);
GameServer.UpdateWeather(Client);
User[] goneOffScreen = onScreenBefore.Except(onScreenNow).ToArray();
@ -580,7 +610,7 @@ namespace HISP.Player
continue;
byte[] playerInfoBytes = PacketBuilder.CreatePlayerInfoUpdateOrCreate(1000 + 4, 1000 + 1, this.Facing, this.CharacterId, this.Username);
offScreenUsers.LoggedinClient.SendPacket(playerInfoBytes);
offScreenUsers.Client.SendPacket(playerInfoBytes);
}
// Tell players now on screen there locations
@ -590,11 +620,11 @@ namespace HISP.Player
continue;
byte[] playerInfoBytes = PacketBuilder.CreatePlayerInfoUpdateOrCreate(onScreenUsers.X, onScreenUsers.Y, onScreenUsers.Facing, onScreenUsers.CharacterId, onScreenUsers.Username);
LoggedinClient.SendPacket(playerInfoBytes);
Client.SendPacket(playerInfoBytes);
}
GameServer.Update(LoggedinClient);
GameServer.Update(Client);
}
// Insert LGBT Patch here
@ -640,18 +670,16 @@ namespace HISP.Player
{
Database.CreateUserExt(UserId);
NewPlayer = true;
}
EquipedCompetitionGear = new CompetitionGear(UserId);
EquipedJewelry = new Jewelry(UserId);
Id = UserId;
Username = Database.GetUsername(UserId);
Administrator = Database.CheckUserIsAdmin(Username);
Moderator = Database.CheckUserIsModerator(Username);
administrator = Database.GetUserModerator(Id);
moderator = Database.GetUserAdmin(Id);
chatViolations = Database.GetChatViolations(UserId);
x = Database.GetPlayerX(UserId);
@ -663,7 +691,7 @@ namespace HISP.Player
bankMoney = Database.GetPlayerBankMoney(UserId);
questPoints = Database.GetPlayerQuestPoints(UserId);
subscribed = Database.IsUserSubscribed(UserId);
subscribed = Database.GetUserSubscribed(UserId);
subscribedUntil = Database.GetUserSubscriptionExpireDate(UserId);
profilePage = Database.GetPlayerProfile(UserId);
privateNotes = Database.GetPlayerNotes(UserId);
@ -671,7 +699,7 @@ namespace HISP.Player
thirst = Database.GetPlayerThirst(UserId);
tired = Database.GetPlayerTiredness(UserId);
if(Ranch.IsRanchOwned(this.Id))
if(Ranch.GetOwnedRanch(this.Id))
OwnedRanch = Ranch.GetRanchOwnedBy(this.Id);
Gender = Database.GetGender(UserId);
@ -693,7 +721,7 @@ namespace HISP.Player
Friends = new Friends(this);
LoginTime = DateTime.UtcNow;
LoggedinClient = baseClient;
Client = baseClient;
Inventory = new PlayerInventory(this);
Quests = new PlayerQuests(this);