mirror of
https://github.com/islehorse/HISP.git
synced 2025-04-12 07:59:48 +12:00
Add Trading :D
This commit is contained in:
parent
507d8910dc
commit
ee3fc56839
7 changed files with 237 additions and 13 deletions
|
@ -226,13 +226,13 @@
|
||||||
"tag_button":"^B1X%PLAYERID%",
|
"tag_button":"^B1X%PLAYERID%",
|
||||||
"pm_button":"^B1P%PLAYERNAME%",
|
"pm_button":"^B1P%PLAYERNAME%",
|
||||||
"trade":{
|
"trade":{
|
||||||
"trading_with":"^ATTrading with %PLAYERNAME%^H",
|
"trading_with":"^ATTrading with %PLAYERNAME%",
|
||||||
|
|
||||||
"trade_wait_for_done":"^LWaiting for other player to click DONE.^R1",
|
"trade_wait_for_done":"^LWaiting for other player to click DONE.^R1",
|
||||||
"other_player_is_done":"^LOther player is DONE adding things to the offer.^R1",
|
"other_player_is_done":"^LOther player is DONE adding things to the offer.^R1",
|
||||||
"final_review":"<B>Final Trade Review - Only accept if you feel trade is 100% Fair!</B>",
|
"final_review":"^H<B>Final Trade Review - Only accept if you feel trade is 100% Fair!</B>",
|
||||||
|
|
||||||
"you_offering":"<B>You are offering %PLAYERNAME% the following:</B> ",
|
"you_offering":"^H<B>You are offering %PLAYERNAME% the following:</B> ",
|
||||||
|
|
||||||
"add_items":"^T6Add additional trade items:^D58|ADD^R1",
|
"add_items":"^T6Add additional trade items:^D58|ADD^R1",
|
||||||
"other_offering":"^H<B>%PLAYERNAME% is offering you the following:</B>",
|
"other_offering":"^H<B>%PLAYERNAME% is offering you the following:</B>",
|
||||||
|
@ -262,6 +262,8 @@
|
||||||
"money_offer_submenu":"<B>How much money do you want to OFFER player?</B>^PMAmount of money to offer:|%CURRENTMONEYOFFER%^PS3|Add to offer^R1",
|
"money_offer_submenu":"<B>How much money do you want to OFFER player?</B>^PMAmount of money to offer:|%CURRENTMONEYOFFER%^PS3|Add to offer^R1",
|
||||||
"object_offer_submenu":"^PMQuantity of item (%QUANTITY% max):|1^R1^PS3|Add to offer^R1",
|
"object_offer_submenu":"^PMQuantity of item (%QUANTITY% max):|1^R1^PS3|Add to offer^R1",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"waiting_for_other_to_accept":"Waiting for other player to Accept or Reject trade...",
|
"waiting_for_other_to_accept":"Waiting for other player to Accept or Reject trade...",
|
||||||
|
|
||||||
"requires_both_players":"Trade process requires other player to click TRADE with you also before it will start.",
|
"requires_both_players":"Trade process requires other player to click TRADE with you also before it will start.",
|
||||||
|
@ -282,6 +284,9 @@
|
||||||
"cant_handle_more_horses":"You cannot handle this many more horses!",
|
"cant_handle_more_horses":"You cannot handle this many more horses!",
|
||||||
"other_player_cant_handle_more_horses":"Player %PLAYERNAME% cannot handle this many more horses!",
|
"other_player_cant_handle_more_horses":"Player %PLAYERNAME% cannot handle this many more horses!",
|
||||||
|
|
||||||
|
"other_carry_more":"Buyer cannot carry that quantity of one of the items!",
|
||||||
|
"you_cant_carry_more":"You cannot carry that quantity of one of the items!",
|
||||||
|
|
||||||
"trade_spent":"You spent $%MONEY% in the trade.",
|
"trade_spent":"You spent $%MONEY% in the trade.",
|
||||||
"trade_received":"You received $%MONEY% in the trade.",
|
"trade_received":"You received $%MONEY% in the trade.",
|
||||||
|
|
||||||
|
@ -998,7 +1003,7 @@
|
||||||
"grab_all":"^T3^B4R^R1"
|
"grab_all":"^T3^B4R^R1"
|
||||||
},
|
},
|
||||||
"nearby":{
|
"nearby":{
|
||||||
"players_nearby":"<B>Players Nearby:</B>",
|
"players_nearby":"<B>Players Nearby:</B><BR>",
|
||||||
"east":"<B>East:</B>",
|
"east":"<B>East:</B>",
|
||||||
"west":"<B>West:</B>",
|
"west":"<B>West:</B>",
|
||||||
"south":"<B>South:</B>",
|
"south":"<B>South:</B>",
|
||||||
|
|
|
@ -77,6 +77,9 @@ namespace HISP.Game
|
||||||
public static string TradeYouSpentMoneyMessageFormat;
|
public static string TradeYouSpentMoneyMessageFormat;
|
||||||
public static string TradeYouReceivedMoneyMessageFormat;
|
public static string TradeYouReceivedMoneyMessageFormat;
|
||||||
|
|
||||||
|
public static string TradeYouCantCarryMoreItems;
|
||||||
|
public static string TradeOtherCantCarryMoreItems;
|
||||||
|
|
||||||
public static string TradeNotAllowedWhileBidding;
|
public static string TradeNotAllowedWhileBidding;
|
||||||
public static string TradeNotAllowedWhileOtherBidding;
|
public static string TradeNotAllowedWhileOtherBidding;
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,6 @@ namespace HISP.Game
|
||||||
User[] playersAt = GameServer.GetUsersAt(x, y, true, true);
|
User[] playersAt = GameServer.GetUsersAt(x, y, true, true);
|
||||||
if(playersAt.Length > 1)
|
if(playersAt.Length > 1)
|
||||||
{
|
{
|
||||||
playersHere += Messages.Seperator;
|
|
||||||
playersHere += Messages.PlayersHere;
|
playersHere += Messages.PlayersHere;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
foreach(User playerAt in playersAt)
|
foreach(User playerAt in playersAt)
|
||||||
|
@ -72,7 +71,7 @@ namespace HISP.Game
|
||||||
return playersHere;
|
return playersHere;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string buildNearbyString(int x, int y)
|
private static string buildNearbyString(int x, int y, bool showNearbyPlayersHeader=true)
|
||||||
{
|
{
|
||||||
string playersNearby = "";
|
string playersNearby = "";
|
||||||
|
|
||||||
|
@ -80,9 +79,10 @@ namespace HISP.Game
|
||||||
int count = 0;
|
int count = 0;
|
||||||
if (nearbyUsers.Length > 1)
|
if (nearbyUsers.Length > 1)
|
||||||
{
|
{
|
||||||
playersNearby += Messages.Seperator;
|
if(showNearbyPlayersHeader)
|
||||||
playersNearby += Messages.NearbyPlayers;
|
{
|
||||||
playersNearby += Messages.Seperator;
|
playersNearby += Messages.NearbyPlayers;
|
||||||
|
}
|
||||||
|
|
||||||
string usersWest = "";
|
string usersWest = "";
|
||||||
string usersNorth = "";
|
string usersNorth = "";
|
||||||
|
@ -956,7 +956,8 @@ namespace HISP.Game
|
||||||
|
|
||||||
public static string BuildNearbyList(User user)
|
public static string BuildNearbyList(User user)
|
||||||
{
|
{
|
||||||
string message = Messages.NearbyPlayersListHeader;
|
string message = "";
|
||||||
|
message += Messages.NearbyPlayersListHeader;
|
||||||
User[] nearbyUsers = GameServer.GetNearbyUsers(user.X, user.Y, false, true);
|
User[] nearbyUsers = GameServer.GetNearbyUsers(user.X, user.Y, false, true);
|
||||||
foreach (User nearbyUser in nearbyUsers)
|
foreach (User nearbyUser in nearbyUsers)
|
||||||
{
|
{
|
||||||
|
@ -2558,6 +2559,7 @@ namespace HISP.Game
|
||||||
|
|
||||||
if (specialTile.Description != null && specialTile.Description != "")
|
if (specialTile.Description != null && specialTile.Description != "")
|
||||||
message += specialTile.Description;
|
message += specialTile.Description;
|
||||||
|
message += Messages.Seperator; // <BR>
|
||||||
|
|
||||||
string npc = buildNpc(user, specialTile.X, specialTile.Y);
|
string npc = buildNpc(user, specialTile.X, specialTile.Y);
|
||||||
message += npc;
|
message += npc;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using HISP.Game;
|
using HISP.Game;
|
||||||
using HISP.Game.Horse;
|
using HISP.Game.Horse;
|
||||||
|
using HISP.Game.Inventory;
|
||||||
using HISP.Game.Items;
|
using HISP.Game.Items;
|
||||||
using HISP.Security;
|
using HISP.Security;
|
||||||
using HISP.Server;
|
using HISP.Server;
|
||||||
|
@ -41,6 +42,164 @@ namespace HISP.Player
|
||||||
GameServer.UpdateArea(OtherTrade.Trader.LoggedinClient);
|
GameServer.UpdateArea(OtherTrade.Trader.LoggedinClient);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void CompleteTrade()
|
||||||
|
{
|
||||||
|
bool fail = false;
|
||||||
|
// Check hell
|
||||||
|
if (OtherTrade.Trader.Money < 0)
|
||||||
|
{
|
||||||
|
byte[] otherNegativeMoneyNotAllowed = PacketBuilder.CreateChat(Messages.TradeOtherPlayerHasNegativeMoney, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
Trader.LoggedinClient.SendPacket(otherNegativeMoneyNotAllowed);
|
||||||
|
fail = true;
|
||||||
|
}
|
||||||
|
if (Trader.Money < 0)
|
||||||
|
{
|
||||||
|
byte[] negativeMoneyNotAllowed = PacketBuilder.CreateChat(Messages.TradeYouHaveNegativeMoney, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
Trader.LoggedinClient.SendPacket(negativeMoneyNotAllowed);
|
||||||
|
fail = true;
|
||||||
|
}
|
||||||
|
if (OtherTrade.Trader.Bids.Count > 0)
|
||||||
|
{
|
||||||
|
byte[] tradeNotAllowedWhileOtherBidding = PacketBuilder.CreateChat(Messages.TradeNotAllowedWhileOtherBidding, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
Trader.LoggedinClient.SendPacket(tradeNotAllowedWhileOtherBidding);
|
||||||
|
fail = true;
|
||||||
|
}
|
||||||
|
if (Trader.Bids.Count > 0)
|
||||||
|
{
|
||||||
|
byte[] tradeNotAllowedWhileBidding = PacketBuilder.CreateChat(Messages.TradeNotAllowedWhileBidding, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
Trader.LoggedinClient.SendPacket(tradeNotAllowedWhileBidding);
|
||||||
|
fail = true;
|
||||||
|
}
|
||||||
|
if (OtherTrade.Trader.HorseInventory.HorseList.Length > OtherTrade.Trader.MaxHorses)
|
||||||
|
{
|
||||||
|
byte[] tradeYouHaveTooManyHorses = PacketBuilder.CreateChat(Messages.TradeYouCantHandleMoreHorses, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
Trader.LoggedinClient.SendPacket(tradeYouHaveTooManyHorses);
|
||||||
|
fail = true;
|
||||||
|
}
|
||||||
|
if (Trader.HorseInventory.HorseList.Length > Trader.MaxHorses)
|
||||||
|
{
|
||||||
|
byte[] tradeYouHaveTooManyHorses = PacketBuilder.CreateChat(Messages.TradeYouCantHandleMoreHorses, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
Trader.LoggedinClient.SendPacket(tradeYouHaveTooManyHorses);
|
||||||
|
fail = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Item Checks
|
||||||
|
*/
|
||||||
|
|
||||||
|
bool itemYouFail = false;
|
||||||
|
foreach (ItemInstance[] inst in OtherTrade.ItemsOffered)
|
||||||
|
{
|
||||||
|
if (Trader.Inventory.HasItemId(inst[0].ItemId))
|
||||||
|
{
|
||||||
|
InventoryItem items = Trader.Inventory.GetItemByItemId(inst[0].ItemId);
|
||||||
|
if (items.ItemInstances.Count + inst.Length >= ConfigReader.MAX_STACK)
|
||||||
|
{
|
||||||
|
itemYouFail = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (itemYouFail)
|
||||||
|
{
|
||||||
|
fail = true;
|
||||||
|
byte[] tradeTooManyItems = PacketBuilder.CreateChat(Messages.TradeYouCantCarryMoreItems, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
Trader.LoggedinClient.SendPacket(tradeTooManyItems);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool itemOtherFail = false;
|
||||||
|
foreach (ItemInstance[] inst in ItemsOffered)
|
||||||
|
{
|
||||||
|
if (OtherTrade.Trader.Inventory.HasItemId(inst[0].ItemId))
|
||||||
|
{
|
||||||
|
InventoryItem items = OtherTrade.Trader.Inventory.GetItemByItemId(inst[0].ItemId);
|
||||||
|
if (items.ItemInstances.Count + inst.Length >= ConfigReader.MAX_STACK)
|
||||||
|
{
|
||||||
|
itemOtherFail = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (itemOtherFail)
|
||||||
|
{
|
||||||
|
fail = true;
|
||||||
|
byte[] tradeTooManyItems = PacketBuilder.CreateChat(Messages.TradeOtherCantCarryMoreItems, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
Trader.LoggedinClient.SendPacket(tradeTooManyItems);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fail)
|
||||||
|
goto cancelTrade;
|
||||||
|
else
|
||||||
|
goto acceptTrade;
|
||||||
|
|
||||||
|
|
||||||
|
acceptTrade:;
|
||||||
|
byte[] tradeAccepted = PacketBuilder.CreateChat(Messages.TradeAcceptedMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
Trader.LoggedinClient.SendPacket(tradeAccepted);
|
||||||
|
|
||||||
|
if (MoneyOffered > 0) // Transfer Money
|
||||||
|
{
|
||||||
|
Trader.Money -= MoneyOffered;
|
||||||
|
byte[] tradeSpentMoney = PacketBuilder.CreateChat(Messages.FormatTradeYouSpent(MoneyOffered), PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
Trader.LoggedinClient.SendPacket(tradeSpentMoney);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(OtherTrade.MoneyOffered > 0)
|
||||||
|
{
|
||||||
|
Trader.Money += OtherTrade.MoneyOffered;
|
||||||
|
byte[] tradeReceivedMoney = PacketBuilder.CreateChat(Messages.FormatTradeYouReceived(OtherTrade.MoneyOffered), PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
Trader.LoggedinClient.SendPacket(tradeReceivedMoney);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (HorseInstance inst in HorsesOffered) // Transfer Horses
|
||||||
|
{
|
||||||
|
inst.Owner = OtherTrade.Trader.Id;
|
||||||
|
Trader.HorseInventory.DeleteHorse(inst, false);
|
||||||
|
OtherTrade.Trader.HorseInventory.AddHorse(inst, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (ItemInstance[] item in ItemsOffered) // Transfer Items
|
||||||
|
{
|
||||||
|
foreach (ItemInstance itm in item)
|
||||||
|
{
|
||||||
|
Trader.Inventory.Remove(itm);
|
||||||
|
OtherTrade.Trader.Inventory.Add(itm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Trader.TrackedItems.GetTrackedItem(Tracking.TrackableItem.Trading).Count++;
|
||||||
|
|
||||||
|
|
||||||
|
if (Trader.TrackedItems.GetTrackedItem(Tracking.TrackableItem.Trading).Count >= 100)
|
||||||
|
Trader.Awards.AddAward(Award.GetAwardById(29)); // Trader
|
||||||
|
if (Trader.TrackedItems.GetTrackedItem(Tracking.TrackableItem.Trading).Count >= 1000)
|
||||||
|
Trader.Awards.AddAward(Award.GetAwardById(50)); // Pro Trader
|
||||||
|
|
||||||
|
endTrade();
|
||||||
|
return;
|
||||||
|
|
||||||
|
cancelTrade:;
|
||||||
|
byte[] tradeCanceled = PacketBuilder.CreateChat(Messages.TradeCanceledInterupted, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
Trader.LoggedinClient.SendPacket(tradeCanceled);
|
||||||
|
endTrade();
|
||||||
|
return;
|
||||||
|
|
||||||
|
}
|
||||||
|
public void AcceptTrade()
|
||||||
|
{
|
||||||
|
byte[] waitingForAccept = PacketBuilder.CreateChat(Messages.TradeWaitingForOthersToAcceptMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
Trader.LoggedinClient.SendPacket(waitingForAccept);
|
||||||
|
|
||||||
|
if (OtherTrade.Stage == "ACCEPTED")
|
||||||
|
{
|
||||||
|
CompleteTrade();
|
||||||
|
OtherTrade.CompleteTrade();
|
||||||
|
}
|
||||||
|
|
||||||
|
Stage = "ACCEPTED";
|
||||||
|
}
|
||||||
public void CancelTrade()
|
public void CancelTrade()
|
||||||
{
|
{
|
||||||
byte[] tradeCanceled = PacketBuilder.CreateChat(Messages.TradeCanceledByYouMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
byte[] tradeCanceled = PacketBuilder.CreateChat(Messages.TradeCanceledByYouMessage, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
|
|
@ -885,6 +885,9 @@ namespace HISP.Server
|
||||||
Messages.TradeYouCantHandleMoreHorses = gameData.messages.meta.player_interaction.trade.cant_handle_more_horses;
|
Messages.TradeYouCantHandleMoreHorses = gameData.messages.meta.player_interaction.trade.cant_handle_more_horses;
|
||||||
Messages.TradeOtherPlayerCantHandleMoreHorsesFormat = gameData.messages.meta.player_interaction.trade.other_player_cant_handle_more_horses;
|
Messages.TradeOtherPlayerCantHandleMoreHorsesFormat = gameData.messages.meta.player_interaction.trade.other_player_cant_handle_more_horses;
|
||||||
|
|
||||||
|
Messages.TradeOtherCantCarryMoreItems = gameData.messages.meta.player_interaction.trade.other_carry_more;
|
||||||
|
Messages.TradeYouCantCarryMoreItems = gameData.messages.meta.player_interaction.trade.you_cant_carry_more;
|
||||||
|
|
||||||
Messages.TradeYouSpentMoneyMessageFormat = gameData.messages.meta.player_interaction.trade.trade_spent;
|
Messages.TradeYouSpentMoneyMessageFormat = gameData.messages.meta.player_interaction.trade.trade_spent;
|
||||||
Messages.TradeYouReceivedMoneyMessageFormat = gameData.messages.meta.player_interaction.trade.trade_received;
|
Messages.TradeYouReceivedMoneyMessageFormat = gameData.messages.meta.player_interaction.trade.trade_received;
|
||||||
|
|
||||||
|
|
|
@ -207,6 +207,10 @@ namespace HISP.Server
|
||||||
if (sender.LoggedinUser.TradingWith != null)
|
if (sender.LoggedinUser.TradingWith != null)
|
||||||
sender.LoggedinUser.TradingWith.CancelTrade();
|
sender.LoggedinUser.TradingWith.CancelTrade();
|
||||||
break;
|
break;
|
||||||
|
case PacketBuilder.PLAYER_INTERACTION_ACCEPT:
|
||||||
|
if (sender.LoggedinUser.TradingWith != null)
|
||||||
|
sender.LoggedinUser.TradingWith.AcceptTrade();
|
||||||
|
break;
|
||||||
case PacketBuilder.PLAYER_INTERACTION_ADD_ITEM:
|
case PacketBuilder.PLAYER_INTERACTION_ADD_ITEM:
|
||||||
if (sender.LoggedinUser.TradingWith == null)
|
if (sender.LoggedinUser.TradingWith == null)
|
||||||
break;
|
break;
|
||||||
|
@ -228,6 +232,7 @@ namespace HISP.Server
|
||||||
}
|
}
|
||||||
|
|
||||||
sender.LoggedinUser.TradeMenuPriority = true;
|
sender.LoggedinUser.TradeMenuPriority = true;
|
||||||
|
sender.LoggedinUser.AttemptingToOfferItem = -1;
|
||||||
byte[] metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildTradeAddMoney(sender.LoggedinUser.TradingWith.MoneyOffered));
|
byte[] metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildTradeAddMoney(sender.LoggedinUser.TradingWith.MoneyOffered));
|
||||||
sender.SendPacket(metaPacket);
|
sender.SendPacket(metaPacket);
|
||||||
|
|
||||||
|
@ -252,8 +257,8 @@ namespace HISP.Server
|
||||||
sender.LoggedinUser.TradingWith.HorsesOffered.Add(horse);
|
sender.LoggedinUser.TradingWith.HorsesOffered.Add(horse);
|
||||||
|
|
||||||
UpdateArea(sender);
|
UpdateArea(sender);
|
||||||
if(!sender.LoggedinUser.TradingWith.Trader.TradeMenuPriority)
|
if (!sender.LoggedinUser.TradingWith.OtherTrade.Trader.TradeMenuPriority)
|
||||||
UpdateArea(sender.LoggedinUser.TradingWith.Trader.LoggedinClient);
|
UpdateArea(sender.LoggedinUser.TradingWith.OtherTrade.Trader.LoggedinClient);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case '1': // Item
|
case '1': // Item
|
||||||
|
@ -1879,10 +1884,40 @@ namespace HISP.Server
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3: // Add Item to Trade
|
case 3: // Add Item or Money to Trade
|
||||||
{
|
{
|
||||||
if (dynamicInput.Length >= 2)
|
if (dynamicInput.Length >= 2)
|
||||||
{
|
{
|
||||||
|
if(sender.LoggedinUser.AttemptingToOfferItem == -1) // Money
|
||||||
|
{
|
||||||
|
string answer = dynamicInput[1];
|
||||||
|
int amountMoney = -1;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
amountMoney = int.Parse(answer);
|
||||||
|
}
|
||||||
|
catch (FormatException)
|
||||||
|
{
|
||||||
|
Logger.ErrorPrint(sender.LoggedinUser.Username + " Tried to send a invalid dynamic input (Money TRADE, amount is NaN)");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(sender.LoggedinUser.Money <= amountMoney)
|
||||||
|
{
|
||||||
|
byte[] tooMuchMoney = PacketBuilder.CreateChat(Messages.TradeMoneyOfferTooMuch, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
sender.SendPacket(tooMuchMoney);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.LoggedinUser.TradingWith.MoneyOffered = amountMoney;
|
||||||
|
|
||||||
|
UpdateArea(sender);
|
||||||
|
if (!sender.LoggedinUser.TradingWith.OtherTrade.Trader.TradeMenuPriority)
|
||||||
|
UpdateArea(sender.LoggedinUser.TradingWith.OtherTrade.Trader.LoggedinClient);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (Item.ItemIdExist(sender.LoggedinUser.AttemptingToOfferItem))
|
if (Item.ItemIdExist(sender.LoggedinUser.AttemptingToOfferItem))
|
||||||
{
|
{
|
||||||
string answer = dynamicInput[1];
|
string answer = dynamicInput[1];
|
||||||
|
@ -2731,6 +2766,12 @@ namespace HISP.Server
|
||||||
sender.SendPacket(soldHorseMessage);
|
sender.SendPacket(soldHorseMessage);
|
||||||
|
|
||||||
sender.LoggedinUser.TrackedItems.GetTrackedItem(Tracking.TrackableItem.HorsePawn).Count++;
|
sender.LoggedinUser.TrackedItems.GetTrackedItem(Tracking.TrackableItem.HorsePawn).Count++;
|
||||||
|
if (sender.LoggedinUser.TrackedItems.GetTrackedItem(Tracking.TrackableItem.HorsePawn).Count >= 100)
|
||||||
|
sender.LoggedinUser.Awards.AddAward(Award.GetAwardById(44)); // Vendor
|
||||||
|
if (sender.LoggedinUser.TrackedItems.GetTrackedItem(Tracking.TrackableItem.HorsePawn).Count >= 1000)
|
||||||
|
sender.LoggedinUser.Awards.AddAward(Award.GetAwardById(45)); // Pro Vendor
|
||||||
|
if (sender.LoggedinUser.TrackedItems.GetTrackedItem(Tracking.TrackableItem.HorsePawn).Count >= 10000)
|
||||||
|
sender.LoggedinUser.Awards.AddAward(Award.GetAwardById(52)); // Top Vendor
|
||||||
|
|
||||||
UpdateArea(sender);
|
UpdateArea(sender);
|
||||||
|
|
||||||
|
@ -3400,6 +3441,16 @@ namespace HISP.Server
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
sender.LoggedinUser.TrackedItems.GetTrackedItem(Tracking.TrackableItem.WishingWell).Count++;
|
sender.LoggedinUser.TrackedItems.GetTrackedItem(Tracking.TrackableItem.WishingWell).Count++;
|
||||||
|
|
||||||
|
if(sender.LoggedinUser.TrackedItems.GetTrackedItem(Tracking.TrackableItem.WishingWell).Count >= 100)
|
||||||
|
sender.LoggedinUser.Awards.AddAward(Award.GetAwardById(30)); // Well Wisher
|
||||||
|
|
||||||
|
if (sender.LoggedinUser.TrackedItems.GetTrackedItem(Tracking.TrackableItem.WishingWell).Count >= 1000)
|
||||||
|
sender.LoggedinUser.Awards.AddAward(Award.GetAwardById(31)); // Star Wisher
|
||||||
|
|
||||||
|
if (sender.LoggedinUser.TrackedItems.GetTrackedItem(Tracking.TrackableItem.WishingWell).Count >= 10000)
|
||||||
|
sender.LoggedinUser.Awards.AddAward(Award.GetAwardById(51)); // Extraordanary Wisher
|
||||||
|
|
||||||
byte[] msg = PacketBuilder.CreateChat(message, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
byte[] msg = PacketBuilder.CreateChat(message, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
sender.SendPacket(msg);
|
sender.SendPacket(msg);
|
||||||
|
|
||||||
|
|
|
@ -54,6 +54,7 @@ namespace HISP.Server
|
||||||
|
|
||||||
public const byte PLAYER_INTERACTION_TRADE = 0x28;
|
public const byte PLAYER_INTERACTION_TRADE = 0x28;
|
||||||
public const byte PLAYER_INTERACTION_ADD_ITEM = 0x29;
|
public const byte PLAYER_INTERACTION_ADD_ITEM = 0x29;
|
||||||
|
public const byte PLAYER_INTERACTION_ACCEPT = 0x2A;
|
||||||
public const byte PLAYER_INTERACTION_TRADE_REJECT = 0x2B;
|
public const byte PLAYER_INTERACTION_TRADE_REJECT = 0x2B;
|
||||||
|
|
||||||
public const byte AUCTION_BID_100 = 0x29;
|
public const byte AUCTION_BID_100 = 0x29;
|
||||||
|
|
Loading…
Add table
Reference in a new issue